/* 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-capulet-feast-invitation { background: linear-gradient(180deg, #f5e6c8 0%, #e0c898 40%, #c8a870 100%); }
.scn-capulet-feast-invitation .interior-bg { position:absolute; inset:0; background: linear-gradient(135deg, #f0dbb0 0%, #d8b880 100%); border-radius: 20px; box-shadow: inset 0 0 60px rgba(0,0,0,0.15); animation: cfi-room 16s ease-in-out infinite; }
.scn-capulet-feast-invitation .window-festive { position:absolute; top:12%; left:30%; width:40%; height:45%; background: radial-gradient(ellipse at 50% 60%, #ffd68a 0%, #ffb347 30%, #8b5e2a 60%, #3a2a1a 100%); border-radius: 50% 50% 30% 30%; box-shadow: inset 0 0 40px rgba(255,180,60,0.4), 0 0 30px rgba(255,200,100,0.3); animation: cfi-window-glow 5s ease-in-out infinite alternate; }
.scn-capulet-feast-invitation .lady-capulet { position:absolute; bottom:18%; left:20%; width:40px; height:70px; background: linear-gradient(180deg, #6b4c3a 0%, #4a3224 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: cfi-figure-sway 7s ease-in-out infinite; }
.scn-capulet-feast-invitation .nurse { position:absolute; bottom:16%; left:32%; width:45px; height:60px; background: linear-gradient(180deg, #7a5a44 0%, #4a3424 100%); border-radius: 45% 45% 35% 35% / 50% 50% 35% 35%; animation: cfi-figure-sway 8s ease-in-out infinite 0.5s; }
.scn-capulet-feast-invitation .juliet { position:absolute; bottom:22%; left:50%; width:28px; height:50px; background: linear-gradient(180deg, #8a6a54 0%, #5a4030 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; animation: cfi-girl-bob 4s ease-in-out infinite; }
.scn-capulet-feast-invitation .lamp-glow { position:absolute; bottom:28%; left:65%; width:12px; height:12px; background: radial-gradient(circle, #ffe080 0%, #d4a040 70%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(255,224,128,0.5); animation: cfi-lamp-pulse 3s ease-in-out infinite alternate; }
@keyframes cfi-room { 0%,100% { opacity:0.95; } 50% { opacity:1; } }
@keyframes cfi-window-glow { 0% { opacity:0.7; transform: scale(0.98) rotate(-0.5deg); } 50% { opacity:1; transform: scale(1) rotate(0deg); } 100% { opacity:0.85; transform: scale(0.99) rotate(0.3deg); } }
@keyframes cfi-figure-sway { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes cfi-girl-bob { 0%,100% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-4px) rotate(0.5deg); } }
@keyframes cfi-lamp-pulse { 0% { box-shadow: 0 0 20px 5px rgba(255,224,128,0.4); } 50% { box-shadow: 0 0 40px 12px rgba(255,224,128,0.7); } 100% { box-shadow: 0 0 25px 6px rgba(255,224,128,0.5); } }

/* street-mercutio-teases-nurse */
.scn-street-mercutio-teases-nurse {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 100%), radial-gradient(ellipse at 20% 80%, #F5DEB3 0%, transparent 70%);
}
.scn-street-mercutio-teases-nurse .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #B0E0E6 0%, transparent 80%);
  animation: smt-sky 12s ease-in-out infinite alternate;
}
.scn-street-mercutio-teases-nurse .building-left {
  position:absolute; bottom:20%; left:0; width:45%; height:80%;
  background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%);
  border-radius: 4px 0 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.3);
}
.scn-street-mercutio-teases-nurse .building-right {
  position:absolute; bottom:20%; right:0; width:40%; height:75%;
  background: linear-gradient(180deg, #DEB887 0%, #8B4513 100%);
  border-radius: 0 4px 0 0;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.3);
}
.scn-street-mercutio-teases-nurse .archway {
  position:absolute; bottom:30%; left:40%; width:20%; height:35%;
  background: radial-gradient(ellipse at 50% 100%, #2F4F4F 0%, #8B4513 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
}
.scn-street-mercutio-teases-nurse .mercutio {
  position:absolute; bottom:22%; left:38%; width:20px; height:60px;
  background: linear-gradient(180deg, #556B2F 0%, #3B5323 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smt-mercutio 2s ease-in-out infinite;
}
.scn-street-mercutio-teases-nurse .nurse {
  position:absolute; bottom:20%; right:35%; width:30px; height:55px;
  background: linear-gradient(180deg, #B8860B 0%, #8B6508 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  animation: smt-nurse 3s ease-in-out infinite alternate;
}
.scn-street-mercutio-teases-nurse .market-stall {
  position:absolute; bottom:22%; left:10%; width:25%; height:30%;
  background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 50%, #A0522D 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.3);
}
.scn-street-mercutio-teases-nurse .sunbeam {
  position:absolute; top:10%; left:30%; width:40%; height:70%;
  background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 60%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: smt-sun 20s ease-in-out infinite alternate;
}
@keyframes smt-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes smt-mercutio { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(5deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes smt-nurse { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-8px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes smt-sun { 0% { opacity:0.2; transform: skewX(0deg) } 100% { opacity:0.5; transform: skewX(-5deg) } }

/* street-nurse-seeks-romeo */
.scn-street-nurse-seeks-romeo {
  background: linear-gradient(180deg, #B0C4DE 0%, #87CEEB 50%, #F0E68C 100%), radial-gradient(ellipse at 80% 30%, #FFD700 0%, transparent 60%);
}
.scn-street-nurse-seeks-romeo .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #D6EAF8 0%, transparent 100%);
  animation: snr-sky 15s ease-in-out infinite alternate;
}
.scn-street-nurse-seeks-romeo .street-bg {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%);
}
.scn-street-nurse-seeks-romeo .palazzo {
  position:absolute; bottom:30%; left:15%; width:30%; height:60%;
  background: linear-gradient(180deg, #DEB887 0%, #8B4513 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.4);
}
.scn-street-nurse-seeks-romeo .fountain {
  position:absolute; bottom:20%; left:50%; width:40px; height:40px;
  background: radial-gradient(circle at 50% 30%, #4682B4 0%, #1E90FF 50%, #000080 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(30,144,255,0.5);
  animation: snr-fountain 4s ease-in-out infinite;
}
.scn-street-nurse-seeks-romeo .nurse-walking {
  position:absolute; bottom:18%; left:60%; width:25px; height:50px;
  background: linear-gradient(180deg, #8B6508 0%, #6B4226 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  animation: snr-walk 3s ease-in-out infinite;
}
.scn-street-nurse-seeks-romeo .romeo-figure {
  position:absolute; bottom:20%; right:15%; width:18px; height:55px;
  background: linear-gradient(180deg, #2F4F4F 0%, #1C1C1C 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: snr-romeo 5s ease-in-out infinite alternate;
}
.scn-street-nurse-seeks-romeo .crowd-silhouette {
  position:absolute; bottom:15%; left:5%; width:15%; height:40%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.5) 100%);
  filter: blur(3px);
}
.scn-street-nurse-seeks-romeo .shadow {
  position:absolute; bottom:0; left:0; right:0; height:5%;
  background: rgba(0,0,0,0.2);
}
@keyframes snr-sky { 0% { opacity:0.6 } 100% { opacity:0.9 } }
@keyframes snr-fountain { 0% { transform: scale(1) } 50% { transform: scale(1.1) rotate(10deg) } 100% { transform: scale(1) } }
@keyframes snr-walk { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(-2deg) } 50% { transform: translateX(10px) rotate(0deg) } 75% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes snr-romeo { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(0deg) translateY(0) } }

/* street-nurse-vexed */
.scn-street-nurse-vexed {
  background: linear-gradient(180deg, #B0C4DE 0%, #F0E68C 100%), radial-gradient(ellipse at 50% 100%, #D2691E 0%, transparent 60%);
}
.scn-street-nurse-vexed .sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #D6EAF8 0%, transparent 80%);
  animation: snv-sky 8s ease-in-out infinite alternate;
}
.scn-street-nurse-vexed .wall-back {
  position:absolute; bottom:0; left:0; right:0; height:65%;
  background: linear-gradient(180deg, #C4A882 0%, #9C7A5A 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-street-nurse-vexed .wall-front {
  position:absolute; bottom:0; left:10%; right:10%; height:70%;
  background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-street-nurse-vexed .nurse-angry {
  position:absolute; bottom:18%; left:40%; width:30px; height:60px;
  background: linear-gradient(180deg, #8B6508 0%, #5C4033 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: snv-angry 1.5s ease-in-out infinite;
}
.scn-street-nurse-vexed .jacks {
  position:absolute; bottom:20%; left:55%; width:12px; height:20px;
  background: linear-gradient(180deg, #6B4226 0%, #3E2723 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: snv-jacks 3s ease-in-out infinite alternate;
}
.scn-street-nurse-vexed .hand-gesture {
  position:absolute; bottom:30%; left:42%; width:8px; height:12px;
  background: #8B6508;
  border-radius: 50%;
  box-shadow: 0 -5px 0 #5C4033;
  animation: snv-hand 0.8s ease-in-out infinite;
}
.scn-street-nurse-vexed .dust-particles {
  position:absolute; bottom:15%; left:30%; right:30%; height:10%;
  background: radial-gradient(circle at 20% 50%, rgba(255,255,255,0.2) 0%, transparent 70%);
  filter: blur(3px);
  animation: snv-dust 4s ease-in-out infinite;
}
@keyframes snv-sky { 0% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes snv-angry { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(5deg) translateY(-3px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-5deg) translateY(-3px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes snv-jacks { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-5px) scale(1.1) } }
@keyframes snv-hand { 0% { transform: rotate(0deg) } 25% { transform: rotate(15deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-15deg) } 100% { transform: rotate(0deg) } }
@keyframes snv-dust { 0% { opacity:0.2; transform: translateY(0) } 50% { opacity:0.6; transform: translateY(-5px) } 100% { opacity:0.2; transform: translateY(0) } }

/* street-nurse-message */
.scn-street-nurse-message {
  background: linear-gradient(180deg, #B0C4DE 0%, #F0E68C 100%), radial-gradient(ellipse at 70% 50%, #FFD700 0%, transparent 50%);
}
.scn-street-nurse-message .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #D6EAF8 0%, transparent 80%);
  animation: snm-sky 10s ease-in-out infinite alternate;
}
.scn-street-nurse-message .column-left {
  position:absolute; bottom:0; left:0; width:12%; height:80%;
  background: linear-gradient(180deg, #D2B48C 0%, #8B4513 100%);
  border-radius: 0 10px 0 0;
}
.scn-street-nurse-message .column-right {
  position:absolute; bottom:0; right:0; width:12%; height:80%;
  background: linear-gradient(180deg, #D2B48C 0%, #8B4513 100%);
  border-radius: 10px 0 0 0;
}
.scn-street-nurse-message .nurse-whisper {
  position:absolute; bottom:20%; left:45%; width:28px; height:55px;
  background: linear-gradient(180deg, #8B6508 0%, #6B4226 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  animation: snm-nurse 4s ease-in-out infinite;
}
.scn-street-nurse-message .romeo-profile {
  position:absolute; bottom:22%; right:40%; width:20px; height:58px;
  background: linear-gradient(180deg, #2F4F4F 0%, #1C1C1C 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: snm-romeo 2s ease-in-out infinite alternate;
}
.scn-street-nurse-message .scroll {
  position:absolute; top:30%; left:40%; width:20%; height:15%;
  background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%);
  border-radius: 10px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.3);
  animation: snm-scroll 6s ease-in-out infinite;
}
.scn-street-nurse-message .shadow-floor {
  position:absolute; bottom:0; left:0; right:0; height:8%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
}
@keyframes snm-sky { 0% { opacity:0.7 } 100% { opacity:0.9 } }
@keyframes snm-nurse { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes snm-romeo { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes snm-scroll { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }

.scn-tybalt-recognizes-romeo {
  background:
    linear-gradient(180deg, #4a2a1a 0%, #6a3a2a 30%, #8a5a3a 100%),
    radial-gradient(ellipse at 50% 20%, #d4a050 0%, transparent 70%);
}
.scn-tybalt-recognizes-romeo .bg-wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #8a6a4a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.4);
  animation: trr-wall 12s ease-in-out infinite alternate;
}
.scn-tybalt-recognizes-romeo .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-top: 2px solid #5a3a2a;
  animation: trr-floor 8s ease-in-out infinite;
}
.scn-tybalt-recognizes-romeo .chandelier {
  position:absolute; top:5%; left:50%; width:80px; height:60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #e0b060 0%, #8a5a2a 60%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px #d4a050, 0 0 60px 20px rgba(212,160,80,0.3);
  animation: trr-chandelier 4s ease-in-out infinite alternate;
}
.scn-tybalt-recognizes-romeo .crowd-silhouette {
  position:absolute; bottom:25%; left:5%; right:5%; height:30%;
  background: linear-gradient(180deg, transparent 0%, #1a0a0a 50%);
  mask: radial-gradient(circle at 20% 50%, #000 0%, transparent 20%),
        radial-gradient(circle at 40% 50%, #000 0%, transparent 20%),
        radial-gradient(circle at 60% 50%, #000 0%, transparent 20%),
        radial-gradient(circle at 80% 50%, #000 0%, transparent 20%);
  -webkit-mask: radial-gradient(circle at 20% 50%, #000 0%, transparent 20%),
               radial-gradient(circle at 40% 50%, #000 0%, transparent 20%),
               radial-gradient(circle at 60% 50%, #000 0%, transparent 20%),
               radial-gradient(circle at 80% 50%, #000 0%, transparent 20%);
  animation: trr-crowd 6s ease-in-out infinite alternate;
}
.scn-tybalt-recognizes-romeo .tybalt-figure {
  position:absolute; bottom:22%; left:30%; width:30px; height:70px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: trr-tybalt 1.5s ease-in-out infinite;
}
.scn-tybalt-recognizes-romeo .tybalt-arm {
  position:absolute; bottom:60%; left:34%; width:20px; height:8px;
  background: #1a0a0a;
  border-radius: 50% 50% 0 0;
  transform: rotate(30deg);
  transform-origin: bottom left;
  animation: trr-arm 1.5s ease-in-out infinite;
}
.scn-tybalt-recognizes-romeo .romeo-figure {
  position:absolute; bottom:28%; left:65%; width:25px; height:55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: trr-romeo 5s ease-in-out infinite;
}
@keyframes trr-wall { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes trr-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes trr-chandelier { 0% { transform: translateX(-50%) rotate(-2deg) scale(1) } 50% { transform: translateX(-50%) rotate(2deg) scale(1.02) } 100% { transform: translateX(-50%) rotate(-1deg) scale(1) } }
@keyframes trr-crowd { 0% { opacity:0.6; transform: translateY(0) } 50% { opacity:0.8; transform: translateY(-2px) } 100% { opacity:0.7; transform: translateY(0) } }
@keyframes trr-tybalt { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(3deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes trr-arm { 0% { transform: rotate(30deg) } 50% { transform: rotate(40deg) } 100% { transform: rotate(30deg) } }
@keyframes trr-romeo { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }

.scn-capulet-restrains-tybalt {
  background:
    linear-gradient(180deg, #5a3a2a 0%, #7a4a3a 40%, #4a2a1a 100%),
    radial-gradient(ellipse at 60% 30%, #d4a050 0%, transparent 60%);
}
.scn-capulet-restrains-tybalt .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #6a4a3a 0%, #8a5a4a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
  animation: crt-wall 10s ease-in-out infinite alternate;
}
.scn-capulet-restrains-tybalt .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-top: 2px solid #5a3a2a;
}
.scn-capulet-restrains-tybalt .capulet {
  position:absolute; bottom:20%; left:25%; width:35px; height:72px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crt-capulet 3s ease-in-out infinite;
}
.scn-capulet-restrains-tybalt .tybalt {
  position:absolute; bottom:22%; left:40%; width:30px; height:68px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crt-tybalt 2s ease-in-out infinite;
}
.scn-capulet-restrains-tybalt .capulet-arm {
  position:absolute; bottom:50%; left:35%; width:28px; height:6px;
  background: #2a1a0a;
  border-radius: 50% 50% 0 0;
  transform: rotate(20deg);
  transform-origin: right center;
  animation: crt-arm 2s ease-in-out infinite;
}
.scn-capulet-restrains-tybalt .pillar {
  position:absolute; bottom:0; left:10%; width:12px; height:80%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: crt-pillar 15s linear infinite alternate;
}
@keyframes crt-wall { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes crt-capulet { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes crt-tybalt { 0% { transform: translateX(0) rotate(0deg) scaleY(1) } 50% { transform: translateX(3px) rotate(4deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(0deg) scaleY(1) } }
@keyframes crt-arm { 0% { transform: rotate(20deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(20deg) } }
@keyframes crt-pillar { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.02) } }

.scn-romeo-juliet-first-kiss {
  background:
    linear-gradient(180deg, #5a2a1a 0%, #8a4a3a 50%, #c07040 100%),
    radial-gradient(ellipse at 50% 50%, #e0b060 0%, transparent 70%);
}
.scn-romeo-juliet-first-kiss .bg-soft {
  position:absolute; inset:0;
  background: radial-gradient(circle at 50% 40%, #d4a050 0%, #6a3a2a 80%);
  animation: rjk-bg 8s ease-in-out infinite alternate;
}
.scn-romeo-juliet-first-kiss .glow-halo {
  position:absolute; top:20%; left:50%; width:60px; height:60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe0a0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffcc80, 0 0 80px 40px rgba(255,204,128,0.3);
  animation: rjk-glow 4s ease-in-out infinite alternate;
}
.scn-romeo-juliet-first-kiss .romeo-head {
  position:absolute; bottom:40%; left:35%; width:40px; height:45px;
  background: linear-gradient(135deg, #1a0a0a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: rjk-headR 3s ease-in-out infinite;
}
.scn-romeo-juliet-first-kiss .juliet-head {
  position:absolute; bottom:42%; right:35%; width:36px; height:42px;
  background: linear-gradient(225deg, #1a0a0a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: rjk-headJ 3s ease-in-out infinite;
}
.scn-romeo-juliet-first-kiss .hands-palm {
  position:absolute; bottom:28%; left:50%; width:30px; height:14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: rjk-hands 2s ease-in-out infinite alternate;
}
@keyframes rjk-bg { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes rjk-glow { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes rjk-headR { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(1px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes rjk-headJ { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(8deg) translateX(-1px) } 100% { transform: rotate(10deg) translateX(0) } }
@keyframes rjk-hands { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.9) } 100% { transform: translateX(-50%) scaleY(1) } }

.scn-nurse-interrupts {
  background:
    linear-gradient(180deg, #5a3a2a 0%, #7a4a3a 50%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 30%, #d4a050 0%, transparent 60%);
}
.scn-nurse-interrupts .bg-wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #6a4a3a 0%, #8a5a4a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
}
.scn-nurse-interrupts .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
}
.scn-nurse-interrupts .nurse-figure {
  position:absolute; bottom:18%; left:15%; width:32px; height:72px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: niq-nurse 4s ease-in-out infinite;
}
.scn-nurse-interrupts .nurse-arm {
  position:absolute; bottom:60%; left:20%; width:22px; height:6px;
  background: #2a1a0a;
  border-radius: 50% 0 0 50%;
  transform: rotate(-10deg);
  transform-origin: right center;
  animation: niq-arm 3s ease-in-out infinite alternate;
}
.scn-nurse-interrupts .romeo {
  position:absolute; bottom:20%; left:45%; width:28px; height:60px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: niq-romeo 2s ease-in-out infinite;
}
.scn-nurse-interrupts .juliet {
  position:absolute; bottom:22%; right:25%; width:26px; height:56px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: niq-juliet 2s ease-in-out infinite;
}
@keyframes niq-nurse { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes niq-arm { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-10deg) } }
@keyframes niq-romeo { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes niq-juliet { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }

.scn-romeo-melancholy { background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 40%, #4a5a4a 100%), radial-gradient(ellipse at 30% 20%, #5a7a6a 0%, transparent 60%); }
.scn-romeo-melancholy .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%); animation: rm-sky 15s ease-in-out infinite alternate; }
.scn-romeo-melancholy .trees-back { position:absolute; bottom:30%; left:-10%; right:10%; height:40%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; filter: blur(4px); opacity:0.6; animation: rm-trees-b 20s ease-in-out infinite; }
.scn-romeo-melancholy .trees-mid { position:absolute; bottom:25%; left:10%; right:0; height:50%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0 / 80% 70% 0 0; filter: blur(2px); animation: rm-trees-m 25s ease-in-out infinite; }
.scn-romeo-melancholy .figure { position:absolute; bottom:20%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rm-figure 6s ease-in-out infinite; }
.scn-romeo-melancholy .light-ray { position:absolute; top:8%; left:20%; width:120px; height:250px; background: linear-gradient(180deg, rgba(180,200,180,0.4) 0%, transparent 100%); clip-path: polygon(50% 0%, 100% 100%, 0% 100%); animation: rm-ray 12s ease-in-out infinite alternate; }
.scn-romeo-melancholy .leaves-drift { position:absolute; top:15%; right:5%; width:12px; height:8px; background: #6a7a5a; border-radius: 0 50% 50% 0; filter: blur(2px); animation: rm-leaf 20s linear infinite; }
@keyframes rm-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes rm-trees-b { 0% { transform: translateX(-5px) scale(1) } 50% { transform: translateX(5px) scale(1.02) } 100% { transform: translateX(-5px) scale(1) } }
@keyframes rm-trees-m { 0% { transform: translateX(8px) scale(0.95) } 50% { transform: translateX(-8px) scale(1) } 100% { transform: translateX(8px) scale(0.95) } }
@keyframes rm-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(1deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes rm-ray { 0% { opacity:0.3; transform: scaleX(0.8) } 50% { opacity:0.6; transform: scaleX(1.2) } 100% { opacity:0.4; transform: scaleX(0.9) } }
@keyframes rm-leaf { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(-15px,10px) rotate(45deg) } 50% { transform: translate(-30px,20px) rotate(90deg) } 75% { transform: translate(-45px,30px) rotate(135deg) } 100% { transform: translate(-60px,40px) rotate(180deg) opacity:0; } }

.scn-romeo-sadness { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #4a3a3a 100%), radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%); }
.scn-romeo-sadness .tower { position:absolute; bottom:0; left:50%; width:80px; height:70%; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 0 20px rgba(0,0,0,0.6); animation: rs-tower 10s ease-in-out infinite; }
.scn-romeo-sadness .clock-face { position:absolute; bottom:55%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #6a6a7a 0%, #4a4a5a 50%, #2a2a3a 100%); border-radius:50%; border:2px solid #5a5a6a; box-shadow: 0 0 12px rgba(100,100,120,0.5); animation: rs-clock 6s ease-in-out infinite alternate; }
.scn-romeo-sadness .pendulum { position:absolute; bottom:45%; left:50%; width:4px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #8a8a9a 0%, #5a5a6a 100%); border-radius: 2px; transform-origin: top center; animation: rs-pend 3s ease-in-out infinite; }
.scn-romeo-sadness .figure-sad { position:absolute; bottom:10%; left:45%; width:22px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 45% 55% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rs-fig 8s ease-in-out infinite; }
.scn-romeo-sadness .shadow-sweep { position:absolute; bottom:0; left:-10%; right:10%; height:20%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 50%, transparent 100%); animation: rs-shadow 18s linear infinite; }
.scn-romeo-sadness .dust-motes { position:absolute; top:20%; left:30%; width:4px; height:4px; background: rgba(180,180,190,0.6); border-radius:50%; filter: blur(2px); animation: rs-dust 25s linear infinite; }
@keyframes rs-tower { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.98) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes rs-clock { 0% { box-shadow: 0 0 8px rgba(100,100,120,0.3); } 50% { box-shadow: 0 0 20px rgba(100,100,120,0.7); } 100% { box-shadow: 0 0 12px rgba(100,100,120,0.4); } }
@keyframes rs-pend { 0% { transform: translateX(-50%) rotate(-15deg); } 25% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(15deg); } 75% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(-15deg); } }
@keyframes rs-fig { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-3px) rotate(1deg); } 50% { transform: translateX(6px) translateY(0) rotate(-1deg); } 75% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes rs-shadow { 0% { transform: translateX(-20px); } 50% { transform: translateX(20px); } 100% { transform: translateX(-20px); } }
@keyframes rs-dust { 0% { transform: translate(0,0) scale(1); opacity:0.6; } 25% { transform: translate(10px,-20px) scale(1.5); opacity:0.3; } 50% { transform: translate(20px,-40px) scale(1); opacity:0.6; } 75% { transform: translate(30px,-60px) scale(0.5); opacity:0.4; } 100% { transform: translate(40px,-80px) scale(1.2); opacity:0.7; } }

.scn-romeo-love-sorrow { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3a 40%, #3a2a4a 100%), radial-gradient(ellipse at 70% 30%, #4a2a5a 0%, transparent 60%); }
.scn-romeo-love-sorrow .bg-blind { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%); animation: rl-bg 12s ease-in-out infinite alternate; }
.scn-romeo-love-sorrow .bandage { position:absolute; top:20%; left:50%; width:80px; height:20px; transform:translateX(-50%) rotate(-10deg); background: linear-gradient(180deg, #6a5a7a 0%, #4a3a5a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: rl-band 5s ease-in-out infinite; }
.scn-romeo-love-sorrow .heart { position:absolute; bottom:30%; left:50%; width:40px; height:40px; transform:translateX(-50%) rotate(-45deg); background: radial-gradient(circle at 40% 40%, #a0461a 0%, #5e1a1d 100%); clip-path: polygon(50% 0%, 100% 30%, 100% 60%, 50% 100%, 0% 60%, 0% 30%); animation: rl-heart 4s ease-in-out infinite; }
.scn-romeo-love-sorrow .chain { position:absolute; bottom:25%; left:35%; width:50px; height:4px; background: #5a4a6a; border-radius: 2px; box-shadow: 0 8px 0 #4a3a5a, 0 16px 0 #5a4a6a, 0 24px 0 #4a3a5a; animation: rl-chain 6s ease-in-out infinite; }
.scn-romeo-love-sorrow .spark { position:absolute; top:45%; left:20%; width:6px; height:6px; background: #c8a068; border-radius:50%; box-shadow: 0 0 10px 2px rgba(200,160,104,0.5); animation: rl-spark 3s ease-in-out infinite; }
.scn-romeo-love-sorrow .tear-drop { position:absolute; bottom:15%; left:50%; width:8px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; animation: rl-tear 8s ease-in-out infinite; }
@keyframes rl-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes rl-band { 0% { transform: translateX(-50%) rotate(-10deg) scaleX(1); } 50% { transform: translateX(-50%) rotate(10deg) scaleX(0.9); } 100% { transform: translateX(-50%) rotate(-10deg) scaleX(1); } }
@keyframes rl-heart { 0% { transform: translateX(-50%) rotate(-45deg) scale(1); } 50% { transform: translateX(-50%) rotate(-45deg) scale(1.1); box-shadow: 0 0 10px #c8553d; } 100% { transform: translateX(-50%) rotate(-45deg) scale(1); } }
@keyframes rl-chain { 0% { transform: translateY(0); } 50% { transform: translateY(8px); } 100% { transform: translateY(0); } }
@keyframes rl-spark { 0% { transform: translate(0,0) scale(1); opacity:0.7; } 33% { transform: translate(10px,-15px) scale(1.5); opacity:0.9; } 66% { transform: translate(20px,5px) scale(0.8); opacity:0.6; } 100% { transform: translate(30px,-10px) scale(1.2); opacity:0.8; } }
@keyframes rl-tear { 0% { transform: translateX(-50%) translateY(0) scaleY(1); } 50% { transform: translateX(-50%) translateY(20px) scaleY(1.2); opacity:0.5; } 100% { transform: translateX(-50%) translateY(40px) scaleY(0.8); opacity:0; } }

.scn-item-rosaline-chastity { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #4a3a4a 100%), radial-gradient(ellipse at 40% 60%, #3a2a3a 0%, transparent 70%); }
.scn-item-rosaline-chastity .bg-iron { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); animation: rc-bg 18s ease-in-out infinite alternate; }
.scn-item-rosaline-chastity .bars { position:absolute; top:10%; left:20%; width:60%; height:80%; border:6px solid #4a4a5a; border-radius: 2px; box-shadow: inset 0 0 40px rgba(0,0,0,0.5); animation: rc-bars 6s ease-in-out infinite; }
.scn-item-rosaline-chastity .bars::before { content:''; position:absolute; top:0; left:25%; width:4px; height:100%; background: #4a4a5a; }
.scn-item-rosaline-chastity .bars::after { content:''; position:absolute; top:0; left:65%; width:4px; height:100%; background: #4a4a5a; } /* Additional bars as pseudo-elements, but we need a separate div? We'll use a pseudo for bar lines. Make a separate .bar-lines div? Actually we have only 6 divs, we can use a .bars div with pseudo. */
.scn-item-rosaline-chastity .flower { position:absolute; bottom:30%; left:50%; width:16px; height:20px; transform:translateX(-50%); background: radial-gradient(circle at 50% 60%, #6a4a5a 0%, #3a2a3a 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 6px #5a3a4a; animation: rc-flower 5s ease-in-out infinite; }
.scn-item-rosaline-chastity .figure-feme { position:absolute; bottom:20%; left:45%; width:22px; 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: rc-fig 7s ease-in-out infinite; }
.scn-item-rosaline-chastity .veil { position:absolute; top:30%; left:42%; width:40px; height:30px; background: linear-gradient(180deg, rgba(200,180,200,0.3) 0%, transparent 100%); border-radius: 50% 50% 0 0; filter: blur(3px); animation: rc-veil 9s ease-in-out infinite; }
.scn-item-rosaline-chastity .shadow-bar { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); animation: rc-shad 12s ease-in-out infinite alternate; }
@keyframes rc-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes rc-bars { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes rc-flower { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 50% { transform: translateX(-50%) rotate(5deg) scale(0.9); } 100% { transform: translateX(-50%) rotate(0deg) scale(1); } }
@keyframes rc-fig { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(4px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes rc-veil { 0% { transform: translateX(0) scaleX(1); opacity:0.5; } 50% { transform: translateX(5px) scaleX(0.9); opacity:0.7; } 100% { transform: translateX(-5px) scaleX(1); opacity:0.4; } }
@keyframes rc-shad { 0% { transform: scaleY(0.8); } 50% { transform: scaleY(1); } 100% { transform: scaleY(0.9); } }

/* Scene: watch-discovers-bodies (tense, firelit) */
.scn-watch-discovers-bodies {
  background: linear-gradient(180deg, #1a0f0a 0%, #3a1a0a 40%, #5a2a1a 70%, #2a0f0a 100%),
              radial-gradient(ellipse at 30% 60%, #8a4a2a 0%, transparent 50%);
}
.scn-watch-discovers-bodies .churchyard-ground { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; animation: wdb-ground 20s ease infinite alternate; }
.scn-watch-discovers-bodies .torch-bracket { position: absolute; bottom: 55%; left: 20%; width: 6px; height: 40px; background: linear-gradient(180deg, #5a3a1a, #2a1a0a); border-radius: 2px; transform: rotate(-10deg); }
.scn-watch-discovers-bodies .torch-flame { position: absolute; bottom: 68%; left: 20%; width: 20px; height: 30px; background: radial-gradient(circle at 50% 100%, #ff8a4a 0%, #c8553d 40%, #5a2a1a 70%, transparent 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 40px 20px rgba(200,85,61,0.5), 0 0 80px 40px rgba(200,85,61,0.2); animation: wdb-flame 0.8s ease-in-out infinite alternate; }
.scn-watch-discovers-bodies .watchman-back { position: absolute; bottom: 30%; left: 60%; width: 30px; height: 60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(5deg); animation: wdb-watch 6s ease-in-out infinite; }
.scn-watch-discovers-bodies .watchman-front { position: absolute; bottom: 30%; left: 55%; width: 28px; height: 58px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(-3deg); animation: wdb-watch 6s ease-in-out infinite reverse; }
.scn-watch-discovers-bodies .body-juliet { position: absolute; bottom: 12%; left: 38%; width: 40px; height: 20px; background: linear-gradient(180deg, #b87878 0%, #8a5050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: 0.6; animation: wdb-body 12s ease-in-out infinite; }
.scn-watch-discovers-bodies .body-paris { position: absolute; bottom: 15%; left: 55%; width: 38px; height: 18px; background: linear-gradient(180deg, #a06850 0%, #704030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: 0.5; animation: wdb-body 12s ease-in-out infinite reverse; }
.scn-watch-discovers-bodies .blood-pool { position: absolute; bottom: 8%; left: 35%; width: 60px; height: 10px; background: radial-gradient(ellipse, #6a1a0a 0%, #3a0a0a 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 10px 5px rgba(106,26,10,0.3); animation: wdb-blood 4s ease-in-out infinite alternate; }
@keyframes wdb-ground { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes wdb-flame { 0% { transform: scaleY(0.8) translateY(2px); opacity: 0.9; } 50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.85) translateY(1px); opacity: 0.8; } }
@keyframes wdb-watch { 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 wdb-body { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes wdb-blood { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.1); opacity: 0.8; } 100% { transform: scaleX(0.9); opacity: 0.5; } }

/* Scene: prince-arrives (tense, dawn) */
.scn-prince-arrives {
  background: linear-gradient(180deg, #b0a8a0 0%, #f0e8d0 20%, #c0b8a0 60%, #908070 100%),
              radial-gradient(ellipse at 70% 20%, #f5e6c8 0%, transparent 40%);
}
.scn-prince-arrives .dawn-sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #e8dcc0 0%, #b8a890 40%, #807060 100%); animation: pra-sky 30s ease-in-out infinite alternate; }
.scn-prince-arrives .monument-arch { position: absolute; bottom: 20%; left: 30%; width: 200px; height: 120px; border: 4px solid #706050; border-bottom: none; border-radius: 40% 40% 0 0 / 60% 60% 0 0; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); animation: pra-arch 20s ease-in-out infinite; }
.scn-prince-arrives .prince-figure { position: absolute; bottom: 30%; left: 45%; width: 40px; height: 80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(0deg); animation: pra-prince 8s ease-in-out infinite; }
.scn-prince-arrives .friar-figure { position: absolute; bottom: 25%; left: 55%; width: 30px; height: 70px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(-5deg); animation: pra-friar 6s ease-in-out infinite; }
.scn-prince-arrives .attendant-1 { position: absolute; bottom: 28%; left: 35%; width: 25px; height: 60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; opacity: 0.7; animation: pra-attendant 10s ease-in-out infinite; }
.scn-prince-arrives .attendant-2 { position: absolute; bottom: 28%; left: 65%; width: 25px; height: 60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; opacity: 0.7; animation: pra-attendant 10s ease-in-out infinite reverse; }
.scn-prince-arrives .dawn-mist { position: absolute; bottom: 20%; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, rgba(200,180,160,0.1) 0%, rgba(150,130,110,0.2) 50%, rgba(100,80,70,0.1) 100%); filter: blur(20px); animation: pra-mist 20s ease-in-out infinite alternate; }
@keyframes pra-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pra-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes pra-prince { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(0.5deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes pra-friar { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-7deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes pra-attendant { 0% { transform: translateY(0) scale(0.95); } 50% { transform: translateY(-3px) scale(1); } 100% { transform: translateY(0) scale(0.95); } }
@keyframes pra-mist { 0% { opacity: 0.3; filter: blur(15px); } 50% { opacity: 0.6; filter: blur(25px); } 100% { opacity: 0.2; filter: blur(20px); } }

/* Scene: families-confront (dark, dawn) */
.scn-families-confront {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 30%, #4a4a5a 60%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 10%, #5a5a6a 0%, transparent 50%);
}
.scn-families-confront .murky-sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 80%, #1a1a2a 100%); animation: fco-sky 25s ease-in-out infinite alternate; }
.scn-families-confront .monument-base { position: absolute; bottom: 20%; left: 30%; width: 160px; height: 100px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: fco-monument 18s ease-in-out infinite; }
.scn-families-confront .montague-figure { position: absolute; bottom: 30%; left: 35%; width: 35px; height: 75px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(10deg); animation: fco-mont 8s ease-in-out infinite; }
.scn-families-confront .capulet-figure { position: absolute; bottom: 30%; left: 60%; width: 35px; height: 75px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(-10deg); animation: fco-cap 8s ease-in-out infinite; }
.scn-families-confront .crowd-shape { position: absolute; bottom: 15%; left: 20%; width: 60px; height: 40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; opacity: 0.6; animation: fco-crowd 12s ease-in-out infinite; }
.scn-families-confront .crowd-shape-2 { position: absolute; bottom: 18%; left: 65%; width: 50px; height: 35px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; opacity: 0.5; animation: fco-crowd 12s ease-in-out infinite reverse; }
.scn-families-confront .outcry-ripple { position: absolute; bottom: 40%; left: 45%; width: 30px; height: 30px; border: 2px solid rgba(200,180,160,0.3); border-radius: 50%; animation: fco-ripple 3s ease-out infinite; }
@keyframes fco-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes fco-monument { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes fco-mont { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-3px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes fco-cap { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes fco-crowd { 0% { transform: scale(0.95); opacity: 0.5; } 50% { transform: scale(1.05); opacity: 0.7; } 100% { transform: scale(0.95); opacity: 0.5; } }
@keyframes fco-ripple { 0% { transform: scale(0.5); opacity: 0.8; } 50% { transform: scale(1.5); opacity: 0.3; } 100% { transform: scale(2); opacity: 0; } }

/* Scene: lamentation (dark, dawn) */
.scn-lamentation {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #3a3a4a 60%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 10%, #4a4a5a 0%, transparent 60%);
}
.scn-lamentation .pale-sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #5a5a6a 0%, #2a2a3a 80%, #1a1a2a 100%); animation: lam-sky 30s ease-in-out infinite alternate; }
.scn-lamentation .tomb-entrance { position: absolute; bottom: 15%; left: 40%; width: 100px; height: 130px; border: 4px solid #6a5a4a; border-bottom: none; border-radius: 30% 30% 0 0 / 50% 50% 0 0; background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); animation: lam-tomb 20s ease-in-out infinite; }
.scn-lamentation .father-figure { position: absolute; bottom: 30%; left: 30%; width: 35px; height: 80px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(-15deg); animation: lam-father 8s ease-in-out infinite; }
.scn-lamentation .mother-figure { position: absolute; bottom: 25%; left: 55%; width: 30px; height: 70px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(10deg); animation: lam-mother 8s ease-in-out infinite; }
.scn-lamentation .juliet-body { position: absolute; bottom: 10%; left: 45%; width: 45px; height: 25px; background: linear-gradient(180deg, #b87878 0%, #8a5050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: 0.6; animation: lam-body 15s ease-in-out infinite; }
.scn-lamentation .dagger-fall { position: absolute; bottom: 60%; left: 48%; width: 4px; height: 20px; background: linear-gradient(180deg, #908070, #504030); border-radius: 2px; animation: lam-dagger 4s ease-in-out infinite; }
.scn-lamentation .tear-drop { position: absolute; bottom: 45%; left: 35%; width: 6px; height: 10px; background: radial-gradient(circle at 50% 100%, #a0a0b0 0%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lam-tear 3s ease-in-out infinite; }
@keyframes lam-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes lam-tomb { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.96); } 100% { transform: scaleY(1); } }
@keyframes lam-father { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes lam-mother { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes lam-body { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes lam-dagger { 0% { transform: translateY(0) rotate(10deg); } 50% { transform: translateY(15px) rotate(-5deg); } 100% { transform: translateY(30px) rotate(15deg); opacity: 0; } }
@keyframes lam-tear { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(20px) scale(0.8); opacity: 0.5; } 100% { transform: translateY(40px) scale(0.5); opacity: 0; } }

.scn-friar-rosaline-question {
  background: linear-gradient(180deg, #c8b28a 0%, #a68c6a 40%, #7a6548 100%), radial-gradient(ellipse at 50% 100%, #d4c2a0 0%, transparent 70%);
}
.scn-friar-rosaline-question .bg-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #d6c4a8 0%, #b8a080 100%); opacity:0.6;
}
.scn-friar-rosaline-question .window {
  position:absolute; top:8%; left:20%; width:120px; height:160px; background: radial-gradient(ellipse at 50% 50%, #f5e8c0 0%, #c8b080 60%, transparent 100%); border-radius:40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 0 40px rgba(200,180,130,0.3); animation: frq-window 12s ease-in-out infinite alternate;
}
.scn-friar-rosaline-question .light-beam {
  position:absolute; top:12%; left:22%; width:80px; height:300px; background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%); filter: blur(8px); transform: rotate(-5deg); animation: frq-beam 8s ease-in-out infinite alternate;
}
.scn-friar-rosaline-question .friar-figure {
  position:absolute; bottom:15%; left:30%; width:50px; height:110px; background: linear-gradient(180deg, #6a4a2a 0%, #4a3220 100%); border-radius:50% 50% 40% 40% / 60% 50% 40% 40%; transform: rotate(-5deg); box-shadow: 2px 0 8px rgba(0,0,0,0.3); animation: frq-friar 6s ease-in-out infinite;
}
.scn-friar-rosaline-question .romeo-figure {
  position:absolute; bottom:12%; left:55%; width:45px; height:105px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 50% 40% 40%; transform: rotate(3deg); box-shadow: -2px 0 6px rgba(0,0,0,0.3); animation: frq-romeo 5s ease-in-out infinite;
}
.scn-friar-rosaline-question .lectern {
  position:absolute; bottom:10%; left:42%; width:30px; height:50px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 4px 6px rgba(0,0,0,0.4); animation: frq-lectern 10s ease-in-out infinite;
}
.scn-friar-rosaline-question .candle-glow {
  position:absolute; bottom:30%; left:45%; width:20px; height:20px; background: radial-gradient(circle, #ffc870 0%, #d09030 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #e0a040; animation: frq-glow 3s ease-in-out infinite alternate;
}
.scn-friar-rosaline-question .dust {
  position:absolute; inset:0; background: radial-gradient(circle at 20% 50%, rgba(255,255,240,0.2) 0%, transparent 60%); filter: blur(4px); animation: frq-dust 15s linear infinite;
}
@keyframes frq-window { 0% { opacity:0.9; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:0.85; transform: scaleY(0.98) } }
@keyframes frq-beam { 0% { opacity:0.3; width:60px } 50% { opacity:0.5; width:100px } 100% { opacity:0.2; width:70px } }
@keyframes frq-friar { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-7deg) translateY(-2px) } }
@keyframes frq-romeo { 0%,100% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-1px) } }
@keyframes frq-lectern { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes frq-glow { 0% { box-shadow: 0 0 20px 6px #d09030; opacity:0.8 } 50% { box-shadow: 0 0 40px 14px #e0a050; opacity:1 } 100% { box-shadow: 0 0 25px 8px #c08020; opacity:0.9 } }
@keyframes frq-dust { 0% { background-position: 0% 0% } 100% { background-position: 100% 100% } }

.scn-friar-marriage-request {
  background: linear-gradient(180deg, #d4b080 0%, #b09070 30%, #8a6a50 70%, #6a4a30 100%), radial-gradient(ellipse at 50% 80%, #e0c090 0%, transparent 80%);
}
.scn-friar-marriage-request .bg-arch {
  position:absolute; inset:0; background: linear-gradient(180deg, #c8a870 0%, #a08050 100%); opacity:0.5;
}
.scn-friar-marriage-request .altar-step {
  position:absolute; bottom:8%; left:20%; right:20%; height:16%; background: linear-gradient(180deg, #8a6a40 0%, #6a4a30 100%); border-radius:10% 10% 0 0 / 30% 30% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
}
.scn-friar-marriage-request .friar-figure {
  position:absolute; bottom:14%; left:35%; width:55px; height:120px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3220 100%); border-radius:50% 50% 40% 40% / 60% 50% 40% 40%; transform: rotate(-2deg); animation: fmr-friar 5s ease-in-out infinite;
}
.scn-friar-marriage-request .romeo-kneeling {
  position:absolute; bottom:2%; left:55%; width:45px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform: rotate(5deg) scale(0.9); animation: fmr-romeo 4s ease-in-out infinite;
}
.scn-friar-marriage-request .book {
  position:absolute; bottom:15%; left:50%; width:25px; height:18px; background: linear-gradient(180deg, #a08050 0%, #806030 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: fmr-book 6s ease-in-out infinite;
}
.scn-friar-marriage-request .candle-bracket {
  position:absolute; bottom:40%; left:20%; width:10px; height:60px; background: linear-gradient(180deg, #8a6a40 0%, #6a4a20 100%); border-radius:20% 20% 5% 5%; animation: fmr-candle 8s ease-in-out infinite;
}
.scn-friar-marriage-request .warm-light {
  position:absolute; bottom:30%; left:15%; width:120px; height:120px; background: radial-gradient(circle, #ffc070 0%, #e09030 40%, transparent 100%); filter: blur(10px); animation: fmr-warm 4s ease-in-out infinite alternate;
}
@keyframes fmr-friar { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-3px) } }
@keyframes fmr-romeo { 0%,100% { transform: rotate(5deg) scale(0.9) } 50% { transform: rotate(7deg) scale(0.92) } }
@keyframes fmr-book { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } }
@keyframes fmr-candle { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes fmr-warm { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:0.9; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(1) } }

.scn-friar-surprise-change {
  background: linear-gradient(180deg, #b89870 0%, #8a6a50 40%, #5a4030 80%, #3a2a20 100%), radial-gradient(ellipse at 50% 90%, #c8a080 0%, transparent 70%);
}
.scn-friar-surprise-change .bg-stone {
  position:absolute; inset:0; background: linear-gradient(90deg, #5a4a38 0%, #7a5a40 50%, #5a4a38 100%); opacity:0.6;
}
.scn-friar-surprise-change .sunray {
  position:absolute; top:5%; left:30%; width:40px; height:250px; background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%); filter: blur(6px); transform: rotate(15deg); animation: fsc-ray 3s ease-in-out infinite alternate;
}
.scn-friar-surprise-change .friar-gesture {
  position:absolute; bottom:10%; left:28%; width:50px; height:115px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a18 100%); border-radius:50% 50% 40% 40% / 60% 50% 40% 40%; transform: rotate(-10deg); animation: fsc-friar 2s ease-in-out infinite;
}
.scn-friar-surprise-change .romeo-startled {
  position:absolute; bottom:8%; left:55%; width:40px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(15deg); animation: fsc-romeo 1.5s ease-in-out infinite;
}
.scn-friar-surprise-change .dropped-rosary {
  position:absolute; bottom:2%; left:40%; width:8px; height:20px; background: linear-gradient(180deg, #a08050 0%, #6a4a20 100%); border-radius:50% 50% 20% 20%; animation: fsc-rosary 4s ease-in-out infinite;
}
.scn-friar-surprise-change .shadow-stain {
  position:absolute; bottom:0; left:20%; right:20%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); filter: blur(6px); animation: fsc-shadow 3s ease-in-out infinite alternate;
}
.scn-friar-surprise-change .dust-swirl {
  position:absolute; inset:0; background: radial-gradient(circle at 40% 30%, rgba(255,240,220,0.15) 0%, transparent 40%); filter: blur(4px); animation: fsc-dust 8s linear infinite;
}
@keyframes fsc-ray { 0% { opacity:0.2; transform: rotate(12deg) } 50% { opacity:0.6; transform: rotate(18deg) } 100% { opacity:0.3; transform: rotate(14deg) } }
@keyframes fsc-friar { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-4px) } }
@keyframes fsc-romeo { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(20deg) translateX(-2px) } }
@keyframes fsc-rosary { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(10deg) } }
@keyframes fsc-shadow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }
@keyframes fsc-dust { 0% { background-position: 0% 0% } 100% { background-position: 100% 100% } }

.scn-friar-rebuke-consent {
  background: linear-gradient(180deg, #7a6548 0%, #5a4a30 40%, #3a2a18 80%, #1a1008 100%), radial-gradient(ellipse at 50% 70%, #8a6a40 0%, transparent 80%);
}
.scn-friar-rebuke-consent .bg-dark {
  position:absolute; inset:0; background: linear-gradient(180deg, #4a3828 0%, #2a1a0a 100%); opacity:0.5;
}
.scn-friar-rebuke-consent .window-grill {
  position:absolute; top:5%; left:10%; width:100px; height:140px; border:8px solid #4a3828; background: radial-gradient(ellipse at 50% 50%, #d0b080 0%, transparent 70%); border-radius:30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 0 30px rgba(200,180,130,0.2); animation: frc-window 10s ease-in-out infinite alternate;
}
.scn-friar-rebuke-consent .friar-silhouette {
  position:absolute; bottom:15%; left:30%; width:55px; height:130px; background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%); border-radius:50% 50% 40% 40% / 60% 50% 40% 40%; transform: rotate(-3deg); animation: frc-friar 4s ease-in-out infinite;
}
.scn-friar-rebuke-consent .romeo-bowed {
  position:absolute; bottom:5%; left:55%; width:40px; height:90px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform: rotate(10deg) scale(0.85); animation: frc-romeo 3s ease-in-out infinite;
}
.scn-friar-rebuke-consent .prayer-beads {
  position:absolute; bottom:12%; left:45%; width:6px; height:30px; background: linear-gradient(180deg, #a08050 0%, #6a4a20 100%); border-radius:50% 50% 10% 10%; animation: frc-beads 5s ease-in-out infinite;
}
.scn-friar-rebuke-consent .flicker-light {
  position:absolute; bottom:20%; left:35%; width:30px; height:30px; background: radial-gradient(circle, #ffc870 0%, #d09030 50%, transparent 100%); filter: blur(6px); animation: frc-light 2s ease-in-out infinite alternate;
}
.scn-friar-rebuke-consent .shadow-pool {
  position:absolute; bottom:0; left:5%; right:5%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); filter: blur(8px); animation: frc-pool 6s ease-in-out infinite alternate;
}
@keyframes frc-window { 0% { opacity:0.7; transform: scaleY(1) } 50% { opacity:0.9; transform: scaleY(1.03) } 100% { opacity:0.6; transform: scaleY(0.97) } }
@keyframes frc-friar { 0%,100% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } }
@keyframes frc-romeo { 0%,100% { transform: rotate(10deg) scale(0.85) } 50% { transform: rotate(12deg) scale(0.87) } }
@keyframes frc-beads { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(5deg) } }
@keyframes frc-light { 0% { box-shadow: 0 0 20px 6px #d09030; opacity:0.8 } 50% { box-shadow: 0 0 40px 14px #e0a050; opacity:1 } 100% { box-shadow: 0 0 25px 8px #c08020; opacity:0.9 } }
@keyframes frc-pool { 0% { opacity:0.3; height:10% } 50% { opacity:0.6; height:18% } 100% { opacity:0.4; height:12% } }

.scn-street-fantasticoes-rant {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 40%, #DAA520 100%), radial-gradient(ellipse at 50% 100%, #DAA520 0%, transparent 70%);
}
.scn-street-fantasticoes-rant .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #B0E0FF 0%, #FFF5CC 100%);
  animation: sf-sky 20s ease-in-out infinite alternate;
}
.scn-street-fantasticoes-rant .wall {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-street-fantasticoes-rant .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #B8860B 0%, #8B4513 100%);
  border-radius: 30% 30% 0 0;
}
.scn-street-fantasticoes-rant .figure {
  position: absolute; bottom: 28%; left: 40%; width: 25px; height: 70px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sf-figure 2.5s ease-in-out infinite;
}
.scn-street-fantasticoes-rant .hat {
  position: absolute; bottom: 68%; left: 38%; width: 35px; height: 20px;
  background: linear-gradient(180deg, #2F4F2F 0%, #1C301C 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(-5deg);
  animation: sf-hat 3s ease-in-out infinite alternate;
}
.scn-street-fantasticoes-rant .stick {
  position: absolute; bottom: 30%; left: 55%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #8B7355 0%, #6B4F3A 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  transform-origin: bottom;
  animation: sf-stick 1.5s ease-in-out infinite alternate;
}
.scn-street-fantasticoes-rant .shadow {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 10px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: sf-shadow 2.5s ease-in-out infinite;
}
.scn-street-fantasticoes-rant .cloud {
  position: absolute; top: 10%; left: 20%; 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(6px);
  animation: sf-cloud 25s linear infinite;
}
@keyframes sf-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes sf-figure {
  0%,100% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(3deg); }
  50% { transform: translateX(0) translateY(-4px) rotate(-2deg); }
  75% { transform: translateX(-6px) translateY(-1px) rotate(2deg); }
}
@keyframes sf-hat {
  0% { transform: rotate(-5deg) translateY(0); }
  100% { transform: rotate(5deg) translateY(-3px); }
}
@keyframes sf-stick {
  0% { transform: rotate(15deg); }
  100% { transform: rotate(25deg); }
}
@keyframes sf-shadow {
  0%,100% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.2); opacity: 0.5; }
}
@keyframes sf-cloud {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(calc(100vw + 40px)); }
}

.scn-street-romeo-appearance {
  background: linear-gradient(180deg, #FDE089 0%, #FFF8DC 40%, #F5DEB3 100%), radial-gradient(ellipse at 50% 100%, #FFD700 0%, transparent 70%);
}
.scn-street-romeo-appearance .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #FFEFD5 0%, #FFFACD 100%);
  animation: sr-sky 18s ease-in-out infinite alternate;
}
.scn-street-romeo-appearance .wall {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #E8D5B7 0%, #C4A882 100%);
  border-radius: 3% 3% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.15);
}
.scn-street-romeo-appearance .doorway {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2F1E0E 0%, #1A0F06 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-street-romeo-appearance .romeo {
  position: absolute; bottom: 35%; left: 48%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #F4A460 0%, #D2691E 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sr-romeo 1.8s ease-in-out infinite;
}
.scn-street-romeo-appearance .sunbeam {
  position: absolute; top: 10%; left: 45%; width: 30px; height: 300px;
  background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, rgba(255,255,200,0) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: sr-sunbeam 5s ease-in-out infinite alternate;
}
.scn-street-romeo-appearance .flower {
  position: absolute; bottom: 38%; left: 55%; width: 10px; height: 15px;
  background: radial-gradient(circle, #FFB6C1 0%, #FF69B4 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,105,180,0.4);
  animation: sr-flower 3s ease-in-out infinite alternate;
}
.scn-street-romeo-appearance .cloud {
  position: absolute; top: 15%; right: 10%; width: 70px; height: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: sr-cloud 30s linear infinite reverse;
}
.scn-street-romeo-appearance .shadow {
  position: absolute; bottom: 33%; left: 42%; width: 30px; height: 8px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(3px);
  animation: sr-shadow 1.8s ease-in-out infinite;
}
@keyframes sr-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sr-romeo {
  0%,100% { transform: translateX(0) scaleY(1); }
  25% { transform: translateX(10px) scaleY(0.9) rotate(-5deg); }
  50% { transform: translateX(0) scaleY(1.1) rotate(0deg); }
  75% { transform: translateX(-5px) scaleY(0.95) rotate(3deg); }
}
@keyframes sr-sunbeam {
  0% { transform: translateX(0) scaleX(1); opacity: 0.4; }
  100% { transform: translateX(10px) scaleX(1.3); opacity: 0.7; }
}
@keyframes sr-flower {
  0% { transform: scale(1) rotate(0deg); }
  100% { transform: scale(1.2) rotate(15deg) translateY(-3px); }
}
@keyframes sr-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}
@keyframes sr-shadow {
  0%,100% { transform: scaleX(1); opacity: 0.25; }
  50% { transform: scaleX(1.5); opacity: 0.4; }
}

.scn-street-counterfeit-banter {
  background: linear-gradient(180deg, #FFF8DC 0%, #F5DEB3 40%, #D2B48C 100%), radial-gradient(ellipse at 50% 100%, #C4A882 0%, transparent 70%);
}
.scn-street-counterfeit-banter .wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.2);
}
.scn-street-counterfeit-banter .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #CD853F 0%, #8B4513 100%);
  border-radius: 20% 20% 0 0;
}
.scn-street-counterfeit-banter .figure-left {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #8B7355 0%, #5C4033 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: sc-left 2.2s ease-in-out infinite;
}
.scn-street-counterfeit-banter .figure-right {
  position: absolute; bottom: 25%; left: 55%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #A0522D 0%, #6B3A2A 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: sc-right 2.2s ease-in-out infinite;
}
.scn-street-counterfeit-banter .coin {
  position: absolute; bottom: 40%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #FFD700 0%, #DAA520 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(218,165,32,0.5);
  animation: sc-coin 1.5s ease-in-out infinite alternate;
}
.scn-street-counterfeit-banter .shadow-left {
  position: absolute; bottom: 22%; left: 27%; width: 30px; height: 8px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(3px);
  animation: sc-shadow-left 2.2s ease-in-out infinite;
}
.scn-street-counterfeit-banter .shadow-right {
  position: absolute; bottom: 22%; left: 52%; width: 30px; height: 8px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(3px);
  animation: sc-shadow-right 2.2s ease-in-out infinite;
}
.scn-street-counterfeit-banter .awning {
  position: absolute; bottom: 68%; left: 15%; right: 15%; height: 12px;
  background: linear-gradient(180deg, #F08080 0%, #CD5C5C 100%);
  border-radius: 3px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sc-awning 4s ease-in-out infinite alternate;
}
.scn-street-counterfeit-banter .cloud {
  position: absolute; top: 10%; left: 10%; width: 90px; height: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: sc-cloud 35s linear infinite;
}
@keyframes sc-left {
  0%,100% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(8px) rotate(-8deg) scaleY(0.9); }
  50% { transform: translateX(0) rotate(0deg) scaleY(1.1); }
  75% { transform: translateX(-6px) rotate(5deg) scaleY(0.95); }
}
@keyframes sc-right {
  0%,100% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(-8px) rotate(8deg) scaleY(0.9); }
  50% { transform: translateX(0) rotate(0deg) scaleY(1.1); }
  75% { transform: translateX(6px) rotate(-5deg) scaleY(0.95); }
}
@keyframes sc-coin {
  0% { transform: translateY(0) scale(1) rotate(0deg); }
  100% { transform: translateY(-10px) scale(1.3) rotate(360deg); }
}
@keyframes sc-shadow-left {
  0%,100% { transform: scaleX(1); opacity: 0.25; }
  50% { transform: scaleX(1.3); opacity: 0.4; }
}
@keyframes sc-shadow-right {
  0%,100% { transform: scaleX(1); opacity: 0.25; }
  50% { transform: scaleX(1.2); opacity: 0.4; }
}
@keyframes sc-awning {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(0.9) translateY(2px); }
}
@keyframes sc-cloud {
  0% { transform: translateX(-50px); }
  100% { transform: translateX(120vw); }
}

.scn-street-pump-flower-jest {
  background: linear-gradient(180deg, #FFFACD 0%, #FFE4B5 40%, #DEB887 100%), radial-gradient(ellipse at 50% 100%, #F5DEB3 0%, transparent 70%);
}
.scn-street-pump-flower-jest .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #CD853F 0%, #8B7355 40%, #6B4423 100%);
  border-radius: 40% 40% 0 0;
}
.scn-street-pump-flower-jest .pump {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate(-15deg);
  animation: sp-pump 3s ease-in-out infinite alternate;
}
.scn-street-pump-flower-jest .flower {
  position: absolute; bottom: 48%; left: 40%; width: 12px; height: 25px;
  background: linear-gradient(180deg, #32CD32 0%, #228B22 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom;
  animation: sp-flower 2.5s ease-in-out infinite alternate;
}
.scn-street-pump-flower-jest .flower::before {
  content: '';
  position: absolute; top: -8px; left: -6px; width: 20px; height: 16px;
  background: radial-gradient(circle, #FF69B4 0%, #FF1493 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(255,20,147,0.4);
}
.scn-street-pump-flower-jest .legs {
  position: absolute; bottom: 35%; left: 55%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #F4A460 0%, #D2691E 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: sp-legs 1.6s ease-in-out infinite;
}
.scn-street-pump-flower-jest .jester-hat {
  position: absolute; bottom: 72%; left: 55%; width: 30px; height: 25px;
  background: linear-gradient(180deg, #FFD700 0%, #FFA500 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(10deg);
  animation: sp-hat 2s ease-in-out infinite alternate;
}
.scn-street-pump-flower-jest .shadow {
  position: absolute; bottom: 23%; left: 38%; width: 35px; height: 8px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(3px);
  animation: sp-shadow 3s ease-in-out infinite alternate;
}
.scn-street-pump-flower-jest .cloud {
  position: absolute; top: 12%; right: 20%; width: 65px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: sp-cloud 40s linear infinite reverse;
}
.scn-street-pump-flower-jest .sparkle {
  position: absolute; top: 50%; left: 50%; width: 6px; height: 6px;
  background: radial-gradient(circle, #FFD700 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(255,215,0,0.6);
  animation: sp-sparkle 0.8s ease-in-out infinite alternate;
}
@keyframes sp-pump {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-3px); }
  100% { transform: rotate(-20deg) translateY(2px); }
}
@keyframes sp-flower {
  0% { transform: rotate(0deg) scaleY(1); }
  100% { transform: rotate(15deg) scaleY(1.3); }
}
@keyframes sp-legs {
  0%,100% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(8px) rotate(-8deg) scaleY(0.9); }
  50% { transform: translateX(0) rotate(0deg) scaleY(1.1); }
  75% { transform: translateX(-6px) rotate(5deg) scaleY(0.95); }
}
@keyframes sp-hat {
  0% { transform: rotate(10deg) translateY(0); }
  100% { transform: rotate(-5deg) translateY(-5px); }
}
@keyframes sp-shadow {
  0% { transform: scaleX(1); opacity: 0.2; }
  100% { transform: scaleX(1.4); opacity: 0.35; }
}
@keyframes sp-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(-130vw); }
}
@keyframes sp-sparkle {
  0% { transform: scale(0.5); opacity: 0.3; }
  100% { transform: scale(1.5); opacity: 1; }
}

.scn-orchard-romeo-banished { background: linear-gradient(180deg, #e8c88a 0%, #d4a56d 40%, #8a5a30 100%), radial-gradient(ellipse at 70% 20%, #f0d6a8 0%, transparent 60%); }
.scn-orchard-romeo-banished .bgtop { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #9ac0d4 0%, #c2d6a8 40%, #d4c080 100%); }
.scn-orchard-romeo-banished .wall { position:absolute; bottom:10%; left:0; right:30%; height:90%; background: linear-gradient(180deg, #b08848 0%, #7a5e2e 100%); border-radius: 0 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-orchard-romeo-banished .window-frame { position:absolute; top:20%; left:15%; width:30%; height:50%; border: 6px solid #5a3a1a; background: linear-gradient(180deg, #f0e0c0 0%, #d4b888 100%); border-radius: 12% 12% 0 0; box-shadow: 0 0 20px rgba(255,200,100,.3); }
.scn-orchard-romeo-banished .juliet-silhouette { position:absolute; top:22%; left:20%; width:14%; height:40%; background: radial-gradient(ellipse at 50% 30%, #0a0a14 40%, #1a1a2a 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: orb-figure 5s ease-in-out infinite; }
.scn-orchard-romeo-banished .sunbeam { position:absolute; top:10%; left:25%; width:8%; height:80%; background: linear-gradient(180deg, rgba(255,240,200,.4) 0%, transparent 100%); filter: blur(8px); transform: skewX(-10deg); animation: orb-beam 8s ease-in-out infinite alternate; }
.scn-orchard-romeo-banished .tree-canopy { position:absolute; top:0; right:0; width:40%; height:100%; background: radial-gradient(ellipse at 80% 80%, #3a5a2a 0%, #2a4a1a 60%, transparent 100%); filter: blur(4px); }
.scn-orchard-romeo-banished .falling-petal { position:absolute; top:-2%; left:50%; width:4px; height:4px; background: radial-gradient(circle, #f0c4a0 0%, #c07040 100%); border-radius: 50%; animation: orb-petal 12s linear infinite; }
@keyframes orb-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes orb-beam { 0% { opacity: .3; } 50% { opacity: .8; } 100% { opacity: .4; } }
@keyframes orb-petal { 0% { transform: translateY(0) translateX(0) rotate(0deg); opacity:1; } 50% { transform: translateY(50vh) translateX(10px) rotate(180deg); opacity:.6; } 100% { transform: translateY(100vh) translateX(-5px) rotate(360deg); opacity:0; } }

.scn-orchard-nurse-curses-romeo { background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 50%, #3a2a1a 100%), radial-gradient(ellipse at 30% 60%, #c0a070 0%, transparent 70%); }
.scn-orchard-nurse-curses-romeo .bgfloor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a3e2a 0%, #3a2a1a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-orchard-nurse-curses-romeo .wall-shadow { position:absolute; top:0; left:40%; width:60%; height:100%; background: linear-gradient(90deg, #1a1a1a 0%, transparent 100%); }
.scn-orchard-nurse-curses-romeo .nurse-figure { position:absolute; bottom:30%; left:10%; width:20%; height:55%; background: radial-gradient(ellipse at 50% 30%, #1a1a2a 20%, #0a0a14 70%); border-radius: 60% 40% 40% 60% / 70% 50% 50% 40%; transform-origin: bottom center; animation: onc-nurse 6s ease-in-out infinite; }
.scn-orchard-nurse-curses-romeo .nurse-hand { position:absolute; bottom:50%; left:25%; width:6%; height:15%; background: #1a1a2a; border-radius: 30% 30% 10% 10%; transform: rotate(30deg); transform-origin: bottom center; animation: onc-hand 3s ease-in-out infinite alternate; }
.scn-orchard-nurse-curses-romeo .aqua-vitae-bottle { position:absolute; bottom:35%; left:28%; width:4%; height:10%; background: linear-gradient(180deg, #c0a070 0%, #8a6a3a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 8px rgba(192,160,112,.3); animation: onc-bottle 4s ease-in-out infinite; }
.scn-orchard-nurse-curses-romeo .dust-mote { position:absolute; top:20%; left:30%; width:4px; height:4px; background: rgba(255,240,200,.4); border-radius:50%; filter: blur(2px); animation: onc-dust 15s linear infinite; }
@keyframes onc-nurse { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes onc-hand { 0% { transform: rotate(20deg); } 100% { transform: rotate(45deg); } }
@keyframes onc-bottle { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(10deg); } }
@keyframes onc-dust { 0% { transform: translate(0, 0) scale(1); opacity:0; } 20% { opacity:.8; } 80% { opacity:.6; } 100% { transform: translate(30px, -60px) scale(0.5); opacity:0; } }

.scn-orchard-juliet-defends { background: linear-gradient(180deg, #e6c488 0%, #cba168 40%, #8a5e34 100%), radial-gradient(ellipse at 50% 80%, #f0d6a0 0%, transparent 60%); }
.scn-orchard-juliet-defends .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #9ac8d0 0%, #b8d4a8 50%, #e0d4a0 100%); }
.scn-orchard-juliet-defends .orchard-wall { position:absolute; bottom:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3e1a 100%); border-radius: 20% 80% 0 0 / 30% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-orchard-juliet-defends .juliet-standing { position:absolute; bottom:20%; left:35%; width:18%; height:60%; background: radial-gradient(ellipse at 50% 30%, #1a1a2a 30%, #0a0a14 70%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ojd-standing 5s ease-in-out infinite; }
.scn-orchard-juliet-defends .arm-raise { position:absolute; bottom:55%; left:48%; width:6%; height:20%; background: #1a1a2a; border-radius: 30% 30% 10% 10%; transform: rotate(-40deg); transform-origin: bottom center; animation: ojd-arm 3s ease-in-out infinite alternate; }
.scn-orchard-juliet-defends .sunburst { position:absolute; top:10%; left:45%; width:20%; height:20%; background: radial-gradient(circle, #f0e0a0 0%, #e0c880 30%, transparent 70%); filter: blur(12px); animation: ojd-sunburst 6s ease-in-out infinite alternate; }
.scn-orchard-juliet-defends .shadow-on-wall { position:absolute; bottom:0; left:20%; width:30%; height:60%; background: rgba(0,0,0,.2); transform: skewX(-15deg); animation: ojd-shadow 8s ease-in-out infinite; }
.scn-orchard-juliet-defends .flower-vine { position:absolute; bottom:0; left:60%; width:10%; height:80%; background: radial-gradient(ellipse at 50% 100%, #6a4a2a 0%, transparent 80%); border-radius: 50% 50% 0 0; animation: ojd-vine 12s ease-in-out infinite; }
@keyframes ojd-standing { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ojd-arm { 0% { transform: rotate(-45deg); } 100% { transform: rotate(-30deg); } }
@keyframes ojd-sunburst { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .7; transform: scale(1); } }
@keyframes ojd-shadow { 0% { transform: skewX(-15deg) translateX(0); } 50% { transform: skewX(-10deg) translateX(5px); } 100% { transform: skewX(-15deg) translateX(0); } }
@keyframes ojd-vine { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }

.scn-orchard-banished-word { background: linear-gradient(180deg, #c0a070 0%, #8a6a3a 40%, #4a2a0a 100%), radial-gradient(ellipse at 40% 30%, #f0d6a8 0%, transparent 50%); }
.scn-orchard-banished-word .bground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a3e2a 0%, #3a1a0a 100%); border-radius: 60% 40% 0 0 / 80% 20% 0 0; }
.scn-orchard-banished-word .road-path { position:absolute; bottom:25%; left:0; right:0; height:15%; background: linear-gradient(180deg, #7a5e3a 0%, #4a2a1a 100%); transform: scaleY(0.4); }
.scn-orchard-banished-word .romeo-figure { position:absolute; bottom:28%; left:30%; width:14%; height:45%; background: radial-gradient(ellipse at 50% 30%, #1a1a2a 20%, #0a0a14 80%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: obw-walk 7s ease-in-out infinite; }
.scn-orchard-banished-word .scroll-hand { position:absolute; bottom:45%; left:38%; width:5%; height:12%; background: #1a1a2a; border-radius: 20% 20% 10% 10%; transform: rotate(20deg); transform-origin: bottom center; animation: obw-scroll 4s ease-in-out infinite alternate; }
.scn-orchard-banished-word .cipher-shape { position:absolute; top:10%; left:55%; width:20%; height:20%; background: radial-gradient(circle, #f0c068 0%, #c08040 40%, transparent 80%); border-radius: 50%; filter: blur(12px); animation: obw-cipher 6s ease-in-out infinite alternate; }
.scn-orchard-banished-word .bird-flee { position:absolute; top:15%; right:10%; width:3%; height:3%; background: #1a1a2a; border-radius: 50% 50% 0 0; transform: rotate(-20deg); animation: obw-bird 14s linear infinite; }
.scn-orchard-banished-word .leaf-swirl { position:absolute; top:20%; left:10%; width:6px; height:6px; background: #d4a56d; border-radius: 50%; filter: blur(2px); animation: obw-leaf 18s linear infinite; }
@keyframes obw-walk { 0% { transform: translateX(0) rotate(-1deg); } 20% { transform: translateX(8px) rotate(1deg); } 40% { transform: translateX(16px) rotate(-1deg); } 60% { transform: translateX(24px) rotate(1deg); } 80% { transform: translateX(32px) rotate(-1deg); } 100% { transform: translateX(40px) rotate(0deg); } }
@keyframes obw-scroll { 0% { transform: rotate(15deg); } 100% { transform: rotate(30deg); } }
@keyframes obw-cipher { 0% { opacity: .3; transform: scale(0.8); } 50% { opacity: .8; transform: scale(1.2); } 100% { opacity: .4; transform: scale(0.9); } }
@keyframes obw-bird { 0% { transform: translate(0, 0) rotate(-20deg); } 50% { transform: translate(-60px, -40px) rotate(-10deg); } 100% { transform: translate(-120px, -80px) rotate(-20deg); } }
@keyframes obw-leaf { 0% { transform: translate(0, 0) rotate(0deg) scale(1); opacity:0; } 20% { opacity:.7; } 80% { opacity:.5; } 100% { transform: translate(40px, 60px) rotate(360deg) scale(0.2); opacity:0; } }

/* juliet-chamber-alone – dim chamber, bed & candle */
.scn-juliet-chamber-alone {
  background: linear-gradient(180deg, #1a1820 0%, #2a2430 50%, #1e1a26 100%), radial-gradient(ellipse at 50% 20%, #2a2430 0%, transparent 80%);
}
.scn-juliet-chamber-alone .walls { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2430 0%, transparent 100%); }
.scn-juliet-chamber-alone .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a303a 0%, #1a1820 100%); }
.scn-juliet-chamber-alone .window { position:absolute; top:18%; left:55%; width:60px; height:90px; background: linear-gradient(180deg, #4a5060 0%, #2a3038 100%); border-radius:4px; box-shadow: inset 0 0 12px #1a1820; }
.scn-juliet-chamber-alone .moon-beam { position:absolute; top:20%; left:58%; width:40px; height:180px; background: linear-gradient(180deg, rgba(200,210,230,0.3) 0%, rgba(200,210,230,0.05) 100%); border-radius:2px; filter:blur(2px); animation: jca-moon 12s ease-in-out infinite alternate; }
.scn-juliet-chamber-alone .bed { position:absolute; bottom:20%; left:20%; width:120px; height:60px; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius:8px 8px 4px 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); transform-origin: center bottom; animation: jca-bed 8s ease-in-out infinite; }
.scn-juliet-chamber-alone .figure { position:absolute; bottom:24%; left:35%; width:20px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jca-figure 5s ease-in-out infinite; }
.scn-juliet-chamber-alone .candle { position:absolute; bottom:28%; right:30%; width:8px; height:16px; background: linear-gradient(180deg, #b08040 0%, #604020 100%); border-radius:2px; box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,0.3); animation: jca-candle 3s ease-in-out infinite alternate; }
.scn-juliet-chamber-alone .curtain { position:absolute; top:15%; left:10%; width:30px; height:120px; background: linear-gradient(180deg, #4a2a3a 0%, #2a1a2a 100%); border-radius:4px; filter:blur(1px); animation: jca-curtain 10s ease-in-out infinite alternate; }

@keyframes jca-moon { 0% { opacity:0.4; transform: scaleY(1); } 50% { opacity:0.7; transform: scaleY(1.05); } 100% { opacity:0.5; transform: scaleY(0.95); } }
@keyframes jca-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes jca-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-1px) rotate(0); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(0); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes jca-candle { 0% { opacity:0.6; box-shadow: 0 0 12px 3px #b08040; } 50% { opacity:1; box-shadow: 0 0 24px 8px #d0a060, 0 0 48px 16px rgba(208,160,96,0.3); } 100% { opacity:0.7; box-shadow: 0 0 16px 4px #b08040; } }
@keyframes jca-curtain { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(-1px) rotate(-1deg); } }

/* juliet-chamber-doubt – standing figure, bottle, doubt */
.scn-juliet-chamber-doubt {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1820 100%), radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 70%);
}
.scn-juliet-chamber-doubt .bg-dark { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-juliet-chamber-doubt .floor-slab { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); }
.scn-juliet-chamber-doubt .table { position:absolute; bottom:20%; left:20%; width:80px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 6px rgba(0,0,0,0.5); }
.scn-juliet-chamber-doubt .figure-stand { position:absolute; bottom:25%; right:35%; width:22px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jcd-figure 6s ease-in-out infinite; }
.scn-juliet-chamber-doubt .bottle { position:absolute; bottom:38%; right:25%; width:12px; height:24px; background: linear-gradient(180deg, #4a6a5a 0%, #2a4a3a 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 10px 2px rgba(60,100,80,0.3); animation: jcd-bottle 4s ease-in-out infinite; }
.scn-juliet-chamber-doubt .hand-shadow { position:absolute; bottom:30%; right:28%; width:16px; height:8px; background: rgba(0,0,0,0.4); border-radius:50%; filter:blur(2px); animation: jcd-shadow 5s ease-in-out infinite; }
.scn-juliet-chamber-doubt .candle-flicker { position:absolute; bottom:28%; left:15%; width:6px; height:14px; background: linear-gradient(180deg, #b08040 0%, #604020 100%); border-radius:2px; box-shadow: 0 0 18px 4px #b08040, 0 0 36px 8px rgba(176,128,64,0.2); animation: jcd-candle 2.5s ease-in-out infinite alternate; }

@keyframes jcd-figure { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(0); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes jcd-bottle { 0% { transform: translate(0,0) rotate(0); } 25% { transform: translate(1px, -1px) rotate(3deg); } 50% { transform: translate(0,0) rotate(0); } 75% { transform: translate(-1px, -1px) rotate(-3deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes jcd-shadow { 0%,100% { opacity:0.6; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.05); } }
@keyframes jcd-candle { 0% { opacity:0.7; box-shadow: 0 0 10px 2px #b08040; } 50% { opacity:1; box-shadow: 0 0 24px 6px #d0a060; } 100% { opacity:0.8; box-shadow: 0 0 14px 3px #b08040; } }

/* juliet-chamber-horror – vault, bones, shroud */
.scn-juliet-chamber-horror {
  background: linear-gradient(180deg, #0e101a 0%, #1a1828 50%, #0e0e14 100%), radial-gradient(ellipse at 30% 50%, #1a1a2a 0%, transparent 80%);
}
.scn-juliet-chamber-horror .vault { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #101020 60%, #080810 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 20%, 20% 20%); }
.scn-juliet-chamber-horror .bones { position:absolute; bottom:20%; left:15%; width:30px; height:10px; background: #2a2a38; border-radius:50% 50% 0 0; transform: rotate(20deg); box-shadow: 0 0 4px #3a3a4a; animation: jch-bones 7s ease-in-out infinite; }
.scn-juliet-chamber-horror .shroud { position:absolute; bottom:10%; right:20%; width:60px; height:80px; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); border-radius:20% 40% 10% 40% / 60% 40% 30% 30%; filter:blur(1px); animation: jch-shroud 9s ease-in-out infinite alternate; }
.scn-juliet-chamber-horror .figure-cringe { position:absolute; bottom:25%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jch-figure 4s ease-in-out infinite; }
.scn-juliet-chamber-horror .shadow-creep { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); animation: jch-shadow 8s ease-in-out infinite; }
.scn-juliet-chamber-horror .skull { position:absolute; bottom:30%; left:50%; width:24px; height:20px; background: #3a3a4a; border-radius:50% 50% 40% 40%; box-shadow: inset 0 -2px 4px #1a1a2a; transform: translateX(-50%); animation: jch-skull 6s ease-in-out infinite; }

@keyframes jch-bones { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-2px); } }
@keyframes jch-shroud { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.05) translateX(2px); } 100% { transform: scaleY(0.95) translateX(-1px); } }
@keyframes jch-figure { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes jch-shadow { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes jch-skull { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-5deg); } }

/* juliet-chamber-madness – kitchen, spinning, spices */
.scn-juliet-chamber-madness {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 50%, #1a0e0a 100%), radial-gradient(ellipse at 60% 80%, #4a3020 0%, transparent 70%);
}
.scn-juliet-chamber-madness .kitchen-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); }
.scn-juliet-chamber-madness .table-wide { position:absolute; bottom:10%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:6px; box-shadow: 0 2px 8px rgba(0,0,0,0.6); }
.scn-juliet-chamber-madness .bowl { position:absolute; bottom:16%; left:30%; width:40px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:40% 40% 20% 20%; animation: jcm-bowl 5s ease-in-out infinite; }
.scn-juliet-chamber-madness .spice-particles { position:absolute; bottom:22%; left:40%; width:10px; height:10px; background: #8a6a3a; border-radius:50%; box-shadow: 0 0 6px #a08050; filter:blur(1px); animation: jcm-spice 3s ease-in-out infinite; }
.scn-juliet-chamber-madness .figure-spin { position:absolute; bottom:18%; left:55%; width:24px; 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: jcm-figure 3s ease-in-out infinite; }
.scn-juliet-chamber-madness .oven-fire { position:absolute; bottom:5%; right:15%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 60%, #ff8030 0%, #a04020 60%, transparent 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 30px 10px #ff8030, 0 0 60px 20px rgba(255,128,48,0.3); animation: jcm-fire 2s ease-in-out infinite alternate; }
.scn-juliet-chamber-madness .utensil { position:absolute; bottom:14%; left:60%; width:30px; height:6px; background: #4a3a2a; border-radius:2px; transform: rotate(-30deg); animation: jcm-utensil 4s ease-in-out infinite; }

@keyframes jcm-bowl { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } }
@keyframes jcm-spice { 0% { transform: translate(0,0) rotate(0); opacity:0.8; } 50% { transform: translate(8px, -10px) rotate(180deg); opacity:1; } 100% { transform: translate(-4px, -6px) rotate(360deg); opacity:0.6; } }
@keyframes jcm-figure { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-4px) rotate(8deg); } 50% { transform: translateY(0) rotate(-5deg); } 75% { transform: translateY(-2px) rotate(6deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes jcm-fire { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.8; transform: scaleY(0.9); } }
@keyframes jcm-utensil { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-2px); } 100% { transform: rotate(-35deg) translateY(0); } }

/* Scene: friar-cell-juliet-vows */
.scn-friar-cell-juliet-vows { background: linear-gradient(145deg, #1e1a28 0%, #2b2535 40%, #1a1620 100%), radial-gradient(ellipse at 60% 70%, #3a2a20 0%, transparent 60%); }
.scn-friar-cell-juliet-vows .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2c2636 0%, #1f1a26 50%, #15101c 100%); border-radius:0; box-shadow: inset 0 0 40px rgba(0,0,0,.6); animation: fcjv-wall 15s ease-in-out infinite; }
.scn-friar-cell-juliet-vows .candle { position:absolute; bottom:45%; left:15%; width:8px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%); border-radius:2px 2px 4px 4px; box-shadow: -2px 2px 6px rgba(0,0,0,.4); }
.scn-friar-cell-juliet-vows .flame { position:absolute; bottom:68%; left:15.5%; width:6px; height:14px; background: radial-gradient(ellipse at 50% 60%, #ffd080 0%, #ff8030 60%, #802010 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 16px 6px #ff803060, 0 0 32px 12px #ff803030; animation: fcjv-flame .8s ease-in-out infinite alternate; }
.scn-friar-cell-juliet-vows .crucifix { position:absolute; bottom:35%; left:35%; width:16px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%); border-radius:2px; transform:translate(-50%,0) rotate(2deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-friar-cell-juliet-vows .crucifix::before { content:''; position:absolute; top:-4px; left:-8px; width:32px; height:4px; background: inherit; border-radius:2px; }
.scn-friar-cell-juliet-vows .juliet { position:absolute; bottom:20%; left:45%; width:24px; height:48px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fcjv-bow 6s ease-in-out infinite; box-shadow: 0 4px 10px rgba(0,0,0,.3); }
.scn-friar-cell-juliet-vows .shadow { position:absolute; bottom:15%; left:40%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); border-radius:50%; filter: blur(6px); animation: fcjv-shadow-pulse 8s ease-in-out infinite; }
.scn-friar-cell-juliet-vows .prayer-beads { position:absolute; bottom:25%; left:40%; width:20px; height:6px; background: radial-gradient(circle at 30% 50%, #a08060 0%, #604020 100%); border-radius:50%; box-shadow: 4px 0 0 #604020, 8px 0 0 #a08060; transform:rotate(-20deg); animation: fcjv-beads 4s ease-in-out infinite; }
@keyframes fcjv-wall { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes fcjv-flame { 0% { height:12px; opacity:.9; transform:scaleY(.9) translateY(0); } 50% { height:15px; opacity:1; transform:scaleY(1) translateY(-1px); } 100% { height:13px; opacity:.85; transform:scaleY(.95) translateY(.5px); } }
@keyframes fcjv-bow { 0% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(2px) rotate(0deg); } 50% { transform:translateX(0) rotate(2deg); } 75% { transform:translateX(-2px) rotate(0deg); } 100% { transform:translateX(0) rotate(-2deg); } }
@keyframes fcjv-shadow-pulse { 0% { opacity:.3; transform:scaleX(1); } 50% { opacity:.5; transform:scaleX(1.2); } 100% { opacity:.3; transform:scaleX(1); } }
@keyframes fcjv-beads { 0% { transform:rotate(-20deg) translateY(0); } 50% { transform:rotate(-15deg) translateY(-2px); } 100% { transform:rotate(-20deg) translateY(0); } }

/* Scene: friar-cell-potion-instructions */
.scn-friar-cell-potion-instructions { background: linear-gradient(160deg, #1a1a2a 0%, #2a2436 50%, #0e0e1a 100%), radial-gradient(ellipse at 40% 30%, #3a2a2a 0%, transparent 70%); }
.scn-friar-cell-potion-instructions .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #222130 0%, #1a1825 50%, #0f0d18 100%); box-shadow: inset 0 0 50px rgba(0,0,0,.7); animation: fcpf-wall 12s ease-in-out infinite; }
.scn-friar-cell-potion-instructions .table { position:absolute; bottom:15%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius:4px; box-shadow: 0 -4px 10px rgba(0,0,0,.4); }
.scn-friar-cell-potion-instructions .potion-vial { position:absolute; bottom:28%; left:48%; width:18px; height:32px; background: linear-gradient(180deg, #2a5030 0%, #1a3018 100%); border-radius:6px 6px 4px 4px; transform:translateX(-50%); border:1px solid #3a5a3a; box-shadow: inset 0 -4px 6px #0a1a0a; animation: fcpf-vial 6s ease-in-out infinite; }
.scn-friar-cell-potion-instructions .potion-glow { position:absolute; bottom:28%; left:48%; width:22px; height:35px; background: radial-gradient(ellipse at 50% 50%, #40b06030 0%, transparent 80%); border-radius:50%; filter: blur(6px); transform:translateX(-50%); animation: fcpf-glow 4s ease-in-out infinite alternate; }
.scn-friar-cell-potion-instructions .friar-hand { position:absolute; bottom:22%; left:38%; width:22px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform:rotate(15deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: fcpf-hand 3s ease-in-out infinite; }
.scn-friar-cell-potion-instructions .skull { position:absolute; bottom:30%; left:60%; width:20px; height:24px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-friar-cell-potion-instructions .herb-bundle { position:absolute; bottom:26%; left:32%; width:16px; height:20px; background: linear-gradient(180deg, #6a7a3a 0%, #3a4a1a 100%); border-radius:30% 30% 20% 20%; transform:rotate(-10deg); box-shadow: 0 2px 4px #00000040; }
@keyframes fcpf-wall { 0% { opacity:.8; } 50% { opacity:.95; } 100% { opacity:.85; } }
@keyframes fcpf-vial { 0% { transform:translateX(-50%) rotate(0deg); } 33% { transform:translateX(-50%) rotate(2deg); } 66% { transform:translateX(-50%) rotate(-1deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes fcpf-glow { 0% { opacity:.3; transform:translateX(-50%) scale(1); } 100% { opacity:.7; transform:translateX(-50%) scale(1.3); } }
@keyframes fcpf-hand { 0% { transform:rotate(12deg) translate(0,0); } 50% { transform:rotate(18deg) translate(2px,-2px); } 100% { transform:rotate(12deg) translate(0,0); } }

/* Scene: friar-cell-plan-revealed */
.scn-friar-cell-plan-revealed { background: linear-gradient(145deg, #2a2020 0%, #3a2a20 40%, #1a1010 100%), radial-gradient(ellipse at 30% 50%, #5a3a2a 0%, transparent 70%); }
.scn-friar-cell-plan-revealed .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a22 0%, #2a1a12 50%, #1a0a08 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: fcrv-wall 18s ease-in-out infinite; }
.scn-friar-cell-plan-revealed .candle { position:absolute; bottom:42%; left:65%; width:8px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%); border-radius:2px; box-shadow: -2px 2px 6px rgba(0,0,0,.4); }
.scn-friar-cell-plan-revealed .flame { position:absolute; bottom:65%; left:65.5%; width:5px; height:12px; background: radial-gradient(ellipse at 50% 60%, #ffd080 0%, #ff8030 60%, #802010 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 16px 6px #ff803060, 0 0 32px 12px #ff803030; animation: fcrv-flame .9s ease-in-out infinite alternate; }
.scn-friar-cell-plan-revealed .letter { position:absolute; bottom:20%; left:25%; width:40px; height:50px; background: linear-gradient(180deg, #c0a070 0%, #8a6a40 100%); border-radius:2px; transform:rotate(-5deg); box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: fcrv-letter 7s ease-in-out infinite; }
.scn-friar-cell-plan-revealed .romeo-figure { position:absolute; bottom:18%; left:38%; width:20px; height:44px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fcrv-romeo 5s ease-in-out infinite; }
.scn-friar-cell-plan-revealed .friar-figure { position:absolute; bottom:18%; left:55%; width:22px; height:46px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fcrv-friar 6s ease-in-out infinite; }
.scn-friar-cell-plan-revealed .inkwell { position:absolute; bottom:24%; left:28%; width:10px; height:12px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e00 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
@keyframes fcrv-wall { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes fcrv-flame { 0% { height:11px; opacity:.9; transform:scaleY(.9); } 50% { height:13px; opacity:1; transform:scaleY(1.1); } 100% { height:12px; opacity:.85; transform:scaleY(.95); } }
@keyframes fcrv-letter { 0% { transform:rotate(-5deg) translateY(0); } 25% { transform:rotate(-3deg) translateY(-2px); } 50% { transform:rotate(-6deg) translateY(0); } 75% { transform:rotate(-4deg) translateY(-1px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes fcrv-romeo { 0% { transform:translateX(0) rotate(0deg); } 33% { transform:translateX(2px) rotate(2deg); } 66% { transform:translateX(-1px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes fcrv-friar { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-2px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }

/* Scene: capulet-hall-preparations */
.scn-capulet-hall-preparations { background: linear-gradient(180deg, #3a2a20 0%, #5a3a2a 30%, #2a1a10 100%), radial-gradient(ellipse at 50% 60%, #7a4a2a 0%, transparent 70%); }
.scn-capulet-hall-preparations .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 60%, #1a0a00 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.5); animation: chp-wall 10s ease-in-out infinite; }
.scn-capulet-hall-preparations .fireplace { position:absolute; bottom:10%; left:10%; width:80px; height:60px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: inset 0 -10px 20px #1a0a00; }
.scn-capulet-hall-preparations .fire-glow { position:absolute; bottom:10%; left:10%; width:80px; height:60px; background: radial-gradient(ellipse at 50% 80%, #ff803060 0%, #ff803010 50%, transparent 80%); border-radius:50%; filter: blur(12px); animation: chp-fire 2s ease-in-out infinite alternate; }
.scn-capulet-hall-preparations .table-wood { position:absolute; bottom:18%; left:40%; right:5%; height:6%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 -2px 6px rgba(0,0,0,.3); }
.scn-capulet-hall-preparations .cook-1 { position:absolute; bottom:16%; left:45%; width:18px; height:32px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform:rotate(5deg); animation: chp-cook1 4s ease-in-out infinite; }
.scn-capulet-hall-preparations .cook-2 { position:absolute; bottom:16%; left:55%; width:18px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform:rotate(-5deg); animation: chp-cook2 3.5s ease-in-out infinite; animation-delay: .5s; }
.scn-capulet-hall-preparations .steam-1 { position:absolute; bottom:28%; left:52%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(255,255,200,.15) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: chp-steam1 6s linear infinite; }
.scn-capulet-hall-preparations .steam-2 { position:absolute; bottom:28%; left:40%; width:16px; height:24px; background: radial-gradient(ellipse at 50% 100%, rgba(255,255,200,.12) 0%, transparent 70%); border-radius:50%; filter: blur(6px); animation: chp-steam2 8s linear infinite; animation-delay: 3s; }
@keyframes chp-wall { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes chp-fire { 0% { opacity:.4; transform:scaleY(1); } 50% { opacity:.7; transform:scaleY(1.1); } 100% { opacity:.5; transform:scaleY(.95); } }
@keyframes chp-cook1 { 0% { transform:rotate(3deg) translate(0,0); } 25% { transform:rotate(6deg) translate(2px,-1px); } 50% { transform:rotate(4deg) translate(0,0); } 75% { transform:rotate(1deg) translate(-1px,1px); } 100% { transform:rotate(3deg) translate(0,0); } }
@keyframes chp-cook2 { 0% { transform:rotate(-3deg) translate(0,0); } 25% { transform:rotate(-6deg) translate(-2px,-1px); } 50% { transform:rotate(-4deg) translate(0,0); } 75% { transform:rotate(-1deg) translate(1px,1px); } 100% { transform:rotate(-3deg) translate(0,0); } }
@keyframes chp-steam1 { 0% { transform:translateY(0) scale(1); opacity:0; } 10% { opacity:.6; transform:translateY(-10px) scale(1.2); } 50% { opacity:.3; transform:translateY(-30px) scale(1.5); } 100% { transform:translateY(-60px) scale(2); opacity:0; } }
@keyframes chp-steam2 { 0% { transform:translateY(0) scale(1); opacity:0; } 10% { opacity:.5; transform:translateY(-8px) scale(1.1); } 50% { opacity:.2; transform:translateY(-25px) scale(1.4); } 100% { transform:translateY(-50px) scale(1.8); opacity:0; } }

.scn-balcony-moonlight { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%); }
.scn-balcony-moonlight .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%); animation: blmo-sky 12s ease-in-out infinite alternate; }
.scn-balcony-moonlight .moon { position:absolute; top:8%; right:18%; width:60px; height:60px; background: radial-gradient(circle, #f5f0c0 0%, #d0c894 70%); border-radius:50%; box-shadow: 0 0 40px 10px #c8b878; animation: blmo-moon 6s ease-in-out infinite; }
.scn-balcony-moonlight .clouds { position:absolute; top:12%; left:0; right:0; height:20%; background: linear-gradient(90deg, rgba(255,255,255,0.2) 0%, transparent 50%, rgba(255,255,255,0.15) 100%); filter: blur(8px); animation: blmo-clouds 40s linear infinite; }
.scn-balcony-moonlight .wall { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-balcony-moonlight .balcony { position:absolute; bottom:40%; left:30%; width:120px; height:40px; background: #4a3a3a; border-radius: 10px 10px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-balcony-moonlight .juliet { position:absolute; bottom:45%; left:35%; width:30px; height:50px; background: linear-gradient(180deg, #5a4a72 0%, #3a2a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: blmo-juliet 8s ease-in-out infinite; }
.scn-balcony-moonlight .romeo { position:absolute; bottom:18%; left:42%; width:24px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: blmo-romeo 10s ease-in-out infinite; }
.scn-balcony-moonlight .vine { position:absolute; bottom:20%; left:25%; right:55%; height:30%; background: radial-gradient(ellipse at 50% 100%, #2a4a2a 0%, transparent 60%); border-radius: 40%; opacity:0.6; animation: blmo-vine 15s ease-in-out infinite alternate; }
.scn-balcony-moonlight .glow { position:absolute; bottom:45%; left:30%; width:120px; height:60px; background: radial-gradient(ellipse, rgba(200,180,120,0.3) 0%, transparent 70%); animation: blmo-glow 4s ease-in-out infinite alternate; }

@keyframes blmo-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes blmo-moon { 0% { transform: scale(1); box-shadow: 0 0 40px 10px #c8b878; } 50% { transform: scale(0.95); box-shadow: 0 0 30px 5px #b0a868; } 100% { transform: scale(1); box-shadow: 0 0 40px 10px #c8b878; } }
@keyframes blmo-clouds { 0% { transform: translateX(-100%); } 100% { transform: translateX(100vw); } }
@keyframes blmo-juliet { 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 blmo-romeo { 0% { transform: translateY(0) rotate(0deg) scaleX(1); } 30% { transform: translateY(-2px) rotate(2deg) scaleX(0.98); } 70% { transform: translateY(0) rotate(-1deg) scaleX(1); } 100% { transform: translateY(0) rotate(0deg) scaleX(1); } }
@keyframes blmo-vine { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes blmo-glow { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

.scn-balcony-vows { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%); }
.scn-balcony-vows .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%); animation: blvo-sky 10s ease-in-out infinite alternate; }
.scn-balcony-vows .moon { position:absolute; top:10%; right:20%; width:55px; height:55px; background: radial-gradient(circle, #f5f0c0 0%, #d0c894 70%); border-radius:50%; box-shadow: 0 0 35px 8px #c8b878; animation: blvo-moon 5s ease-in-out infinite; }
.scn-balcony-vows .clouds { position:absolute; top:14%; left:0; right:0; height:18%; background: linear-gradient(90deg, rgba(255,255,255,0.2) 0%, transparent 50%, rgba(255,255,255,0.15) 100%); filter: blur(8px); animation: blvo-clouds 45s linear infinite; }
.scn-balcony-vows .wall { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-balcony-vows .balcony { position:absolute; bottom:40%; left:30%; width:120px; height:40px; background: #4a3a3a; border-radius: 10px 10px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-balcony-vows .juliet { position:absolute; bottom:45%; left:35%; width:30px; height:50px; background: linear-gradient(180deg, #5a4a72 0%, #3a2a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: blvo-juliet 6s ease-in-out infinite; }
.scn-balcony-vows .romeo { position:absolute; bottom:18%; left:42%; width:24px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: blvo-romeo 8s ease-in-out infinite; }
.scn-balcony-vows .lantern { position:absolute; bottom:50%; left:28%; width:10px; height:16px; background: radial-gradient(circle, #ffd680 0%, #b08040 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #c08040; animation: blvo-lantern 3s ease-in-out infinite alternate; }
.scn-balcony-vows .stars { position:absolute; top:4%; left:0; right:0; height:15%; background: radial-gradient(circle at 20% 20%, white 0%, transparent 1%) repeat; background-size: 3px 3px; animation: blvo-stars 4s ease-in-out infinite alternate; }

@keyframes blvo-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes blvo-moon { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(0.97) rotate(5deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes blvo-clouds { 0% { transform: translateX(-100%); } 100% { transform: translateX(100vw); } }
@keyframes blvo-juliet { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(3deg); } 70% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes blvo-romeo { 0% { transform: translateY(0) scaleY(1); } 25% { transform: translateY(-1px) scaleY(0.95); } 50% { transform: translateY(0) scaleY(1); } 75% { transform: translateY(-1px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes blvo-lantern { 0% { opacity:0.7; box-shadow: 0 0 15px 4px #c08040; } 50% { opacity:1; box-shadow: 0 0 25px 8px #ffd060; } 100% { opacity:0.8; box-shadow: 0 0 18px 5px #c08040; } }
@keyframes blvo-stars { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.6; } }

.scn-balcony-romeo-alone { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%); }
.scn-balcony-romeo-alone .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%); animation: blro-sky 14s ease-in-out infinite alternate; }
.scn-balcony-romeo-alone .moon { position:absolute; top:8%; right:18%; width:60px; height:60px; background: radial-gradient(circle, #f5f0c0 0%, #d0c894 70%); border-radius:50%; box-shadow: 0 0 40px 10px #c8b878; animation: blro-moon 7s ease-in-out infinite; }
.scn-balcony-romeo-alone .clouds { position:absolute; top:12%; left:0; right:0; height:20%; background: linear-gradient(90deg, rgba(255,255,255,0.2) 0%, transparent 50%, rgba(255,255,255,0.15) 100%); filter: blur(8px); animation: blro-clouds 50s linear infinite; }
.scn-balcony-romeo-alone .wall { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-balcony-romeo-alone .balcony { position:absolute; bottom:40%; left:30%; width:120px; height:40px; background: #4a3a3a; border-radius: 10px 10px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-balcony-romeo-alone .romeo { position:absolute; bottom:16%; left:42%; width:24px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: blro-romeo 12s ease-in-out infinite; }
.scn-balcony-romeo-alone .juliet-appear { position:absolute; bottom:45%; left:35%; width:30px; height:50px; background: linear-gradient(180deg, #5a4a72 0%, #3a2a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; opacity:0; animation: blro-juliet 8s ease-in-out 4s infinite; }
.scn-balcony-romeo-alone .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }

@keyframes blro-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes blro-moon { 0% { transform: scale(1); filter: brightness(1); } 50% { transform: scale(0.96); filter: brightness(0.9); } 100% { transform: scale(1); filter: brightness(1); } }
@keyframes blro-clouds { 0% { transform: translateX(-100%); } 100% { transform: translateX(100vw); } }
@keyframes blro-romeo { 0% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(2px) rotate(2deg); } 80% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes blro-juliet { 0% { opacity:0; transform: translateY(10px) scale(0.9); } 30% { opacity:1; transform: translateY(0) scale(1); } 70% { opacity:1; transform: translateY(0) scale(1); } 100% { opacity:0; transform: translateY(-5px) scale(0.9); } }

.scn-balcony-calling-back { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%); }
.scn-balcony-calling-back .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%); animation: blca-sky 12s ease-in-out infinite alternate; }
.scn-balcony-calling-back .moon { position:absolute; top:8%; right:18%; width:60px; height:60px; background: radial-gradient(circle, #f5f0c0 0%, #d0c894 70%); border-radius:50%; box-shadow: 0 0 40px 10px #c8b878; animation: blca-moon 6s ease-in-out infinite; }
.scn-balcony-calling-back .clouds { position:absolute; top:12%; left:0; right:0; height:20%; background: linear-gradient(90deg, rgba(255,255,255,0.2) 0%, transparent 50%, rgba(255,255,255,0.15) 100%); filter: blur(8px); animation: blca-clouds 45s linear infinite; }
.scn-balcony-calling-back .wall { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-balcony-calling-back .balcony { position:absolute; bottom:40%; left:30%; width:120px; height:40px; background: #4a3a3a; border-radius: 10px 10px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-balcony-calling-back .juliet { position:absolute; bottom:45%; left:35%; width:30px; height:50px; background: linear-gradient(180deg, #5a4a72 0%, #3a2a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: blca-juliet 5s ease-in-out infinite; }
.scn-balcony-calling-back .romeo { position:absolute; bottom:18%; left:42%; width:24px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: blca-romeo 8s ease-in-out infinite; }
.scn-balcony-calling-back .echo { position:absolute; bottom:35%; left:20%; right:20%; height:10%; background: radial-gradient(ellipse, rgba(200,180,160,0.3) 0%, transparent 60%); animation: blca-echo 4s ease-in-out infinite; }
.scn-balcony-calling-back .garden { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 60% 40% 0 0 / 50% 50% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.3); }

@keyframes blca-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes blca-moon { 0% { transform: scale(1); filter: brightness(1); } 50% { transform: scale(0.98); filter: brightness(1.1); } 100% { transform: scale(1); filter: brightness(1); } }
@keyframes blca-clouds { 0% { transform: translateX(-100%); } 100% { transform: translateX(100vw); } }
@keyframes blca-juliet { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-3px) rotate(4deg); } 50% { transform: translateY(0) rotate(0deg); } 80% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes blca-romeo { 0% { transform: translateY(0); } 30% { transform: translateY(-2px); } 60% { transform: translateY(0); } 100% { transform: translateY(0); } }
@keyframes blca-echo { 0% { opacity:0.1; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.2); } 100% { opacity:0.1; transform: scale(1); } }

.scn-street-romeo-protests { background: linear-gradient(180deg, #f9e4b7 0%, #e8cfa0 40%, #c9a96e 100%), radial-gradient(ellipse at 30% 20%, #fff5d0 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-street-romeo-protests .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #d4e8f0 0%, #b8d4e0 100%); opacity: 0.6; }
.scn-street-romeo-protests .wall { position: absolute; bottom: 25%; left: 20%; width: 60%; height: 40%; background: linear-gradient(180deg, #b5855a 0%, #8b6843 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.3); }
.scn-street-romeo-protests .romeo-fig { position: absolute; bottom: 28%; left: 35%; width: 20px; height: 50px; background: linear-gradient(180deg, #a0522d 0%, #6b3a1f 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: srp-fig 6s ease-in-out infinite; }
.scn-street-romeo-protests .nurse-fig { position: absolute; bottom: 28%; left: 52%; width: 22px; height: 48px; background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: srp-fig 6s ease-in-out infinite 0.5s; }
.scn-street-romeo-protests .hand-romeo { position: absolute; bottom: 40%; left: 40%; width: 10px; height: 6px; background: #a0522d; border-radius: 50% 50% 0 0; transform: rotate(20deg); animation: srp-hand 4s ease-in-out infinite alternate; }
.scn-street-romeo-protests .hand-nurse { position: absolute; bottom: 40%; left: 50%; width: 10px; height: 6px; background: #c8553d; border-radius: 50% 50% 0 0; transform: rotate(-15deg); animation: srp-hand 4s ease-in-out infinite alternate 2s; }
.scn-street-romeo-protests .sun-ray { position: absolute; top: 10%; left: 60%; width: 80%; height: 60%; background: linear-gradient(135deg, rgba(255,235,180,0.4) 0%, transparent 70%); filter: blur(15px); animation: srp-sun 8s ease-in-out infinite alternate; }
.scn-street-romeo-protests .shadow { position: absolute; bottom: 25%; left: 30%; width: 40%; height: 10%; background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(8px); animation: srp-shadow 6s ease-in-out infinite; }
.scn-street-romeo-protests .cloud { position: absolute; top: 5%; left: -10%; width: 90px; height: 20px; background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(200,220,240,0.2) 100%); border-radius: 50%; filter: blur(6px); animation: srp-cloud 30s linear infinite; }
@keyframes srp-fig { 0% { transform: translateY(0); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes srp-hand { 0% { transform: rotate(20deg) scale(1); opacity: 0.9; } 50% { transform: rotate(25deg) scale(1.1); opacity: 1; } 100% { transform: rotate(15deg) scale(0.95); opacity: 0.8; } }
@keyframes srp-sun { 0% { transform: translateX(0) scale(1); opacity: 0.6; } 50% { transform: translateX(-10px) scale(1.05); opacity: 0.8; } 100% { transform: translateX(5px) scale(0.95); opacity: 0.5; } }
@keyframes srp-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.1); opacity: 0.5; } 100% { transform: scaleX(0.9); opacity: 0.2; } }
@keyframes srp-cloud { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }

.scn-street-nurse-refuses-penny { background: linear-gradient(180deg, #f6e0b5 0%, #d4b882 50%, #b8925a 100%), radial-gradient(ellipse at 70% 40%, #fff8e0 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-street-nurse-refuses-penny .bg { position: absolute; inset: 0; background: linear-gradient(180deg, #ded1b3 0%, #c6ad82 100%); }
.scn-street-nurse-refuses-penny .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #b98c5a 0%, #7a5e3a 100%); border-radius: 60% 40% 0 0; }
.scn-street-nurse-refuses-penny .nurse-arm { position: absolute; bottom: 38%; left: 40%; width: 14px; height: 40px; background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 100%); border-radius: 40% 40% 20% 20%; transform-origin: 70% 30%; animation: snrp-arm 5s ease-in-out infinite; }
.scn-street-nurse-refuses-penny .romeo-hand { position: absolute; bottom: 30%; left: 46%; width: 16px; height: 12px; background: linear-gradient(180deg, #a0522d 0%, #7a3d1a 100%); border-radius: 50%; transform: rotate(-30deg); animation: snrp-hand 5s ease-in-out infinite 2.5s; }
.scn-street-nurse-refuses-penny .coin { position: absolute; bottom: 34%; left: 50%; width: 8px; height: 8px; background: radial-gradient(circle at 30% 30%, #f0d080 0%, #b89540 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(200,160,60,0.7); animation: snrp-coin 3s ease-in-out infinite alternate; }
.scn-street-nurse-refuses-penny .gown { position: absolute; bottom: 30%; left: 35%; width: 34px; height: 40px; background: linear-gradient(180deg, #6b3a2a 0%, #3a1a10 100%); border-radius: 30% 30% 20% 20%; }
.scn-street-nurse-refuses-penny .hat { position: absolute; bottom: 46%; left: 36%; width: 26px; height: 8px; background: #4a2a1a; border-radius: 40% 40% 0 0; transform: rotate(-5deg); animation: snrp-hat 6s ease-in-out infinite; }
.scn-street-nurse-refuses-penny .dust { position: absolute; bottom: 20%; left: 45%; width: 10px; height: 10px; background: rgba(200,180,120,0.4); border-radius: 50%; filter: blur(3px); animation: snrp-dust 7s ease-in-out infinite alternate; }
@keyframes snrp-arm { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(-20deg) translateY(-2px); } 60% { transform: rotate(10deg) translateY(0); } 100% { transform: rotate(0deg); } }
@keyframes snrp-hand { 0% { transform: rotate(-30deg) scale(1); } 50% { transform: rotate(-20deg) scale(1.1); } 100% { transform: rotate(-40deg) scale(0.9); } }
@keyframes snrp-coin { 0% { transform: translateY(0) rotate(0deg); opacity: 0.9; } 50% { transform: translateY(-3px) rotate(15deg); opacity: 1; } 100% { transform: translateY(0) rotate(-15deg); opacity: 0.7; } }
@keyframes snrp-hat { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes snrp-dust { 0% { transform: translateY(0) scale(1); opacity: 0.4; } 50% { transform: translateY(-8px) scale(1.5); opacity: 0; } 100% { transform: translateY(0) scale(0.8); opacity: 0.2; } }

.scn-street-nurse-secrecy { background: linear-gradient(180deg, #d6c7a8 0%, #b89f78 50%, #9a7d54 100%), radial-gradient(ellipse at 20% 80%, #fce4c0 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-street-nurse-secrecy .wall-left { position: absolute; bottom: 20%; left: 0; width: 25%; height: 70%; background: linear-gradient(90deg, #8b7355 0%, #6b563a 100%); border-radius: 0 20% 20% 0; box-shadow: 4px 0 12px rgba(0,0,0,0.3); }
.scn-street-nurse-secrecy .wall-right { position: absolute; bottom: 20%; right: 0; width: 25%; height: 70%; background: linear-gradient(90deg, #6b563a 0%, #8b7355 100%); border-radius: 20% 0 0 20%; box-shadow: -4px 0 12px rgba(0,0,0,0.3); }
.scn-street-nurse-secrecy .nurse-head { position: absolute; bottom: 50%; left: 38%; width: 18px; height: 20px; background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 100%); border-radius: 50%; animation: sns-head 5s ease-in-out infinite; }
.scn-street-nurse-secrecy .romeo-head { position: absolute; bottom: 50%; left: 48%; width: 18px; height: 20px; background: linear-gradient(180deg, #a0522d 0%, #6b3a1f 100%); border-radius: 50%; animation: sns-head 5s ease-in-out infinite 0.5s; }
.scn-street-nurse-secrecy .shadow-arch { position: absolute; bottom: 30%; left: 30%; width: 40%; height: 50%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 70%); filter: blur(10px); animation: sns-shadow 7s ease-in-out infinite; }
.scn-street-nurse-secrecy .secret-hand { position: absolute; bottom: 44%; left: 44%; width: 8px; height: 10px; background: #c8553d; border-radius: 40% 40% 0 0; transform: rotate(90deg); animation: sns-hand 4s ease-in-out infinite alternate; }
.scn-street-nurse-secrecy .cobble { position: absolute; bottom: 15%; left: 20%; width: 60%; height: 15%; background: repeating-linear-gradient(90deg, #85705a 0px, #6b543a 10px, #9a856a 20px); border-radius: 30% 30% 0 0; opacity: 0.4; }
.scn-street-nurse-secrecy .lamp-glow { position: absolute; bottom: 35%; left: 30%; width: 20px; height: 20px; background: radial-gradient(circle, #f0d080 0%, #b88a40 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,160,80,0.3); animation: sns-glow 4s ease-in-out infinite alternate; }
@keyframes sns-head { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0); } }
@keyframes sns-shadow { 0% { transform: scaleY(1); opacity: 0.3; } 50% { transform: scaleY(1.2); opacity: 0.5; } 100% { transform: scaleY(0.9); opacity: 0.2; } }
@keyframes sns-hand { 0% { transform: rotate(90deg) scale(1); } 50% { transform: rotate(80deg) scale(1.2); } 100% { transform: rotate(100deg) scale(0.8); } }
@keyframes sns-glow { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.3); opacity: 0.9; } 100% { transform: scale(0.9); opacity: 0.4; } }

.scn-street-nurse-rosemary-joke { background: linear-gradient(180deg, #ffe680 0%, #f0d060 40%, #d4b040 100%), radial-gradient(ellipse at 50% 20%, #fff7d0 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-street-nurse-rosemary-joke .table { position: absolute; bottom: 20%; left: 10%; width: 80%; height: 10%; background: linear-gradient(180deg, #c8a060 0%, #9a7a45 100%); border-radius: 10% 10% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.2); }
.scn-street-nurse-rosemary-joke .rosemary-bush { position: absolute; bottom: 30%; left: 25%; width: 30px; height: 40px; background: radial-gradient(ellipse at 50% 80%, #4c8c4a 0%, #2a5a28 70%, #1a3a18 100%); border-radius: 50% 50% 40% 40%; animation: snrj-bush 8s ease-in-out infinite; }
.scn-street-nurse-rosemary-joke .letter-r { position: absolute; bottom: 35%; left: 45%; width: 20px; height: 28px; background: linear-gradient(180deg, #d45030 0%, #a03820 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 20%, 60% 20%, 60% 40%, 90% 40%, 90% 60%, 60% 60%, 60% 80%, 100% 80%, 100% 100%, 0% 100%, 0% 80%, 20% 80%, 20% 20%, 0% 20%); animation: snrj-r 5s ease-in-out infinite alternate; }
.scn-street-nurse-rosemary-joke .dog-silhouette { position: absolute; bottom: 15%; left: 60%; width: 30px; height: 20px; background: #3a2a1a; border-radius: 50% 50% 30% 30%; clip-path: polygon(10% 0%, 90% 0%, 100% 40%, 85% 40%, 80% 100%, 60% 100%, 55% 60%, 40% 60%, 35% 100%, 15% 100%, 10% 40%, 0% 40%); animation: snrj-dog 3s ease-in-out infinite; }
.scn-street-nurse-rosemary-joke .nurse-hand-joke { position: absolute; bottom: 40%; left: 30%; width: 12px; height: 8px; background: #c8553d; border-radius: 50% 50% 0 0; transform: rotate(-10deg); animation: snrj-hand 2s ease-in-out infinite; }
.scn-street-nurse-rosemary-joke .romeo-arm { position: absolute; bottom: 35%; left: 55%; width: 10px; height: 20px; background: linear-gradient(180deg, #a0522d 0%, #6b3a1f 100%); border-radius: 30% 30% 20% 20%; transform-origin: top; animation: snrj-arm 3s ease-in-out infinite; }
.scn-street-nurse-rosemary-joke .sun-spots { position: absolute; top: 10%; left: 20%; width: 30%; height: 30%; background: radial-gradient(circle, rgba(255,240,180,0.5) 0%, transparent 70%); filter: blur(20px); animation: snrj-spots 10s ease-in-out infinite alternate; }
.scn-street-nurse-rosemary-joke .bouncing-ball { position: absolute; bottom: 20%; left: 15%; width: 10px; height: 10px; background: radial-gradient(circle at 30% 30%, #f0a050 0%, #d07030 100%); border-radius: 50%; animation: snrj-ball 2s ease-in-out infinite; }
@keyframes snrj-bush { 0%,100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } }
@keyframes snrj-r { 0% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(10deg) scale(1.1); } 50% { transform: rotate(-5deg) scale(0.9); } 75% { transform: rotate(8deg) scale(1.05); } 100% { transform: rotate(0deg); } }
@keyframes snrj-dog { 0% { transform: translateY(0); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes snrj-hand { 0% { transform: rotate(-10deg) translateY(0); } 25% { transform: rotate(-20deg) translateY(-2px); } 50% { transform: rotate(-5deg) translateY(0); } 75% { transform: rotate(-15deg) translateY(-1px); } 100% { transform: rotate(-10deg); } }
@keyframes snrj-arm { 0% { transform: rotate(0deg); } 30% { transform: rotate(15deg); } 60% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes snrj-spots { 0% { transform: translate(0,0) scale(1); opacity: 0.5; } 50% { transform: translate(10px,-5px) scale(1.2); opacity: 0.8; } 100% { transform: translate(-5px,5px) scale(0.9); opacity: 0.3; } }
@keyframes snrj-ball { 0% { transform: translateY(0) scale(1); } 30% { transform: translateY(-15px) scale(1.2); } 50% { transform: translateY(-20px) scale(1); } 70% { transform: translateY(-10px) scale(0.9); } 100% { transform: translateY(0) scale(1); } }

/* Scene 1: friar-cell-farewell */
.scn-friar-cell-farewell {
  background:
    linear-gradient(180deg, #2b1e0e 0%, #3d2b15 40%, #4a351f 100%),
    radial-gradient(ellipse at 50% 30%, #6b4a2a 0%, transparent 70%);
}
.scn-friar-cell-farewell .cell-wall {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, #5a3f22 0%, #2b1e0e 100%);
  animation: fcf-wall 12s ease-in-out infinite alternate;
}
.scn-friar-cell-farewell .arch-window {
  position: absolute; top: 12%; left: 60%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #4a351f 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 30px rgba(139, 90, 43, 0.3);
  animation: fcf-window 8s ease-in-out infinite;
}
.scn-friar-cell-farewell .table {
  position: absolute; bottom: 24%; left: 25%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #5a3f22 0%, #3d2b15 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  transform: perspective(200px) rotateX(10deg);
}
.scn-friar-cell-farewell .candle {
  position: absolute; bottom: 35%; left: 45%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #b8864e 0%, #8b5e3c 40%, #4a351f 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(255, 165, 0, 0.5), 0 0 40px 15px rgba(255, 140, 0, 0.3);
  animation: fcf-candle 3s ease-in-out infinite alternate;
}
.scn-friar-cell-farewell .friar-figure {
  position: absolute; bottom: 24%; left: 18%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #3d2b15 0%, #1c1408 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcf-friar 5s ease-in-out infinite;
}
.scn-friar-cell-farewell .shadow {
  position: absolute; bottom: 22%; left: 15%; width: 30%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: fcf-shadow 4s ease-in-out infinite alternate;
}

@keyframes fcf-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes fcf-window {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.02); opacity: 0.9; }
  100% { transform: scaleY(1); opacity: 0.8; }
}
@keyframes fcf-candle {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 20px 8px rgba(255,165,0,0.5); }
  50% { transform: translateY(-1px) scale(1.01); box-shadow: 0 0 25px 10px rgba(255,180,20,0.6); }
  100% { transform: translateY(0) scale(1); box-shadow: 0 0 18px 6px rgba(255,165,0,0.4); }
}
@keyframes fcf-friar {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-1deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fcf-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  100% { transform: scaleX(0.95); opacity: 0.4; }
}

/* Scene 2: capulet-room-paris */
.scn-capulet-room-paris {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 50%, #3a2820 100%),
    radial-gradient(ellipse at 30% 60%, #4a3028 0%, transparent 70%);
}
.scn-capulet-room-paris .room-wall {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 20% 30%, #3a2820 0%, #1a1210 100%);
  animation: crp-wall 10s ease-in-out infinite alternate;
}
.scn-capulet-room-paris .fireplace {
  position: absolute; bottom: 20%; left: 5%; width: 35%; height: 55%;
  background: linear-gradient(135deg, #4a3028 0%, #2a1e1a 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-capulet-room-paris .fireplace::before {
  content: ''; position: absolute; bottom: 10%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #b96f4a 0%, #8b4f30 50%, #3a2010 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(185, 111, 74, 0.4);
  animation: crp-fire 3s ease-in-out infinite alternate;
}
.scn-capulet-room-paris .chair {
  position: absolute; bottom: 15%; left: 45%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #4a3028 0%, #2a1e1a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
}
.scn-capulet-room-paris .capulet-figure {
  position: absolute; bottom: 14%; left: 40%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #3a2820 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crp-capulet 6s ease-in-out infinite;
}
.scn-capulet-room-paris .paris-shadow {
  position: absolute; bottom: 16%; right: 15%; width: 15%; height: 35%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(6px);
  animation: crp-shadow 8s ease-in-out infinite alternate;
}
.scn-capulet-room-paris .moon-window {
  position: absolute; top: 8%; right: 10%; width: 20%; height: 25%;
  background: linear-gradient(135deg, #4a6570 0%, #2a3a40 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 0 20px rgba(100, 140, 160, 0.3);
  animation: crp-moon 15s ease-in-out infinite alternate;
}

@keyframes crp-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes crp-fire {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.03) translateY(-2px); opacity: 1; }
  100% { transform: scale(1) translateY(0); opacity: 0.8; }
}
@keyframes crp-capulet {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes crp-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.6; }
  100% { transform: translateX(5px) scaleX(0.9); opacity: 0.3; }
}
@keyframes crp-moon {
  0% { transform: scaleY(1); opacity: 0.7; }
  50% { transform: scaleY(1.02); opacity: 0.9; }
  100% { transform: scaleY(1); opacity: 0.7; }
}

/* Scene 3: capulet-room-arrangement */
.scn-capulet-room-arrangement {
  background:
    linear-gradient(180deg, #1c1412 0%, #2c201c 50%, #3c2c24 100%),
    radial-gradient(ellipse at 60% 40%, #4a3528 0%, transparent 70%);
}
.scn-capulet-room-arrangement .desk {
  position: absolute; bottom: 22%; left: 20%; width: 55%; height: 14%;
  background: linear-gradient(180deg, #4a3528 0%, #2c201c 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 5px 12px rgba(0,0,0,0.5);
  transform: perspective(150px) rotateX(8deg);
}
.scn-capulet-room-arrangement .paper-scroll {
  position: absolute; bottom: 30%; left: 30%; width: 30%; height: 12%;
  background: linear-gradient(135deg, #c8b07a 0%, #a08860 50%, #7a684a 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 10% 10%;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: cra-scroll 7s ease-in-out infinite;
}
.scn-capulet-room-arrangement .candle {
  position: absolute; bottom: 35%; left: 50%; width: 5%; height: 18%;
  background: linear-gradient(180deg, #b08050 0%, #8a6040 40%, #4a3020 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(255, 180, 80, 0.5), 0 0 40px 12px rgba(255, 150, 60, 0.3);
  animation: cra-candle 4s ease-in-out infinite alternate;
}
.scn-capulet-room-arrangement .hand-reach {
  position: absolute; bottom: 28%; left: 38%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #7a684a 0%, #3c2c24 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: cra-hand 5s ease-in-out infinite;
}
.scn-capulet-room-arrangement .inkwell {
  position: absolute; bottom: 28%; right: 30%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #2a1c14 0%, #1a100c 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: cra-inkwell 6s ease-in-out infinite alternate;
}
.scn-capulet-room-arrangement .chair {
  position: absolute; bottom: 14%; right: 20%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #3c2c24 0%, #1c1412 100%);
  border-radius: 10% 10% 5% 5% / 15% 15% 10% 10%;
}

@keyframes cra-scroll {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cra-candle {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 20px 8px rgba(255,180,80,0.5); }
  50% { transform: translateY(-1px) scale(1.01); box-shadow: 0 0 25px 10px rgba(255,200,100,0.6); }
  100% { transform: translateY(0) scale(1); box-shadow: 0 0 18px 6px rgba(255,180,80,0.4); }
}
@keyframes cra-hand {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cra-inkwell {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(1); }
}

/* Scene 4: capulet-room-thursday */
.scn-capulet-room-thursday {
  background:
    linear-gradient(180deg, #1e1a14 0%, #2e2420 50%, #40302a 100%),
    radial-gradient(ellipse at 40% 50%, #5a4030 0%, transparent 70%);
}
.scn-capulet-room-thursday .window-frame {
  position: absolute; top: 8%; left: 8%; width: 40%; height: 50%;
  background: linear-gradient(135deg, #302a24 0%, #1a1612 100%);
  border-radius: 10% 10% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
}
.scn-capulet-room-thursday .dawn-light {
  position: absolute; top: 10%; left: 10%; width: 36%; height: 46%;
  background: linear-gradient(135deg, #c8a868 0%, #8a7040 40%, transparent 100%);
  border-radius: 10% 10% 0 0 / 15% 15% 0 0;
  opacity: 0.5;
  animation: crt-dawn 12s ease-in-out infinite alternate;
}
.scn-capulet-room-thursday .figure {
  position: absolute; bottom: 20%; left: 30%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #3c2c24 0%, #1c1412 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crt-figure 8s ease-in-out infinite;
}
.scn-capulet-room-thursday .table {
  position: absolute; bottom: 22%; left: 50%; width: 35%; height: 10%;
  background: linear-gradient(180deg, #5a4030 0%, #3c2c24 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(10deg);
}
.scn-capulet-room-thursday .chair {
  position: absolute; bottom: 16%; right: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #3c2c24 0%, #1c1412 100%);
  border-radius: 10% 10% 5% 5% / 15% 15% 10% 10%;
}
.scn-capulet-room-thursday .candle-gutter {
  position: absolute; bottom: 30%; left: 60%; width: 5%; height: 15%;
  background: linear-gradient(180deg, #b08050 0%, #8a6040 40%, #4a3020 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 0 15px 5px rgba(255, 180, 80, 0.4), 0 0 30px 10px rgba(255, 150, 60, 0.2);
  animation: crt-candle 5s ease-in-out infinite alternate;
}

@keyframes crt-dawn {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.02); opacity: 0.6; }
  100% { transform: scaleX(1); opacity: 0.3; }
}
@keyframes crt-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes crt-candle {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 15px 5px rgba(255,180,80,0.4); }
  50% { transform: translateY(-1px) scale(1.01); box-shadow: 0 0 20px 8px rgba(255,200,100,0.5); }
  100% { transform: translateY(0) scale(1); box-shadow: 0 0 12px 4px rgba(255,180,80,0.3); }
}

.scn-street-peter-fan {
  background:
    linear-gradient(180deg, #fceabb 0%, #f8b500 100%),
    radial-gradient(ellipse at 50% 100%, #f8b500 0%, transparent 70%);
}
.scn-street-peter-fan .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #fceabb 100%);
  animation: s1-sky 20s ease-in-out infinite alternate;
}
.scn-street-peter-fan .sun {
  position: absolute; top: 8%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff7b0 0%, #ffd700 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,215,0,0.3);
  animation: s1-sun 30s ease-in-out infinite alternate;
}
.scn-street-peter-fan .building {
  position: absolute; bottom: 30%; left: 10%; width: 35%; height: 55%;
  background: linear-gradient(180deg, #d4a373 0%, #b08968 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.2);
  animation: s1-breathe 8s ease-in-out infinite;
}
.scn-street-peter-fan .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c9a96e 0%, #a67c52 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.1);
}
.scn-street-peter-fan .fan {
  position: absolute; bottom: 38%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(135deg, #e8c99b 0%, #d4a373 50%, #b08968 100%);
  border-radius: 60% 60% 40% 40% / 30% 30% 60% 60%;
  transform-origin: 50% 100%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: s1-fan-flip 4s ease-in-out infinite;
}
.scn-street-peter-fan .figure {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3b2f2f 0%, #1c1313 100%);
  border-radius: 45% 45% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: s1-walk 6s ease-in-out infinite;
}
.scn-street-peter-fan .leaf {
  position: absolute; top: 25%; left: 20%; width: 12px; height: 12px;
  background: radial-gradient(circle, #8b5e3c 0%, #5c3a1e 100%);
  border-radius: 50% 0 50% 0;
  filter: blur(1px);
  animation: s1-fall 12s linear infinite;
}
@keyframes s1-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes s1-sun { 0% { transform:translate(0,0) scale(1) } 50% { transform:translate(10px,-5px) scale(1.05) } 100% { transform:translate(-5px,2px) scale(0.95) } }
@keyframes s1-breathe { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes s1-fan-flip { 0% { transform:rotate(-10deg) } 50% { transform:rotate(15deg) scaleY(0.9) } 100% { transform:rotate(-5deg) } }
@keyframes s1-walk { 0% { transform:translateX(0) rotate(-2deg) } 25% { transform:translateX(8px) rotate(2deg) } 50% { transform:translateX(16px) rotate(-1deg) } 75% { transform:translateX(24px) rotate(3deg) } 100% { transform:translateX(32px) rotate(0) } }
@keyframes s1-fall { 0% { transform:translate(0,0) rotate(0) } 50% { transform:translate(30px,40px) rotate(180deg) } 100% { transform:translate(60px,80px) rotate(360deg) } }

.scn-orchard-waiting-nurse {
  background:
    linear-gradient(180deg, #f5d78e 0%, #e8b85a 50%, #d49a3b 100%),
    radial-gradient(ellipse at 40% 60%, #f5d78e 0%, transparent 70%);
}
.scn-orchard-waiting-nurse .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #f0c27a 100%);
  animation: s2-sky-tilt 15s ease-in-out infinite alternate;
}
.scn-orchard-waiting-nurse .sunrays {
  position: absolute; top: 0; left: 30%; width: 70%; height: 100%;
  background: linear-gradient(135deg, rgba(255,215,0,0.15) 0%, transparent 50%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%);
  animation: s2-rays 8s ease-in-out infinite alternate;
}
.scn-orchard-waiting-nurse .tree-trunk {
  position: absolute; bottom: 25%; left: 15%; width: 25px; height: 60%;
  background: linear-gradient(90deg, #6b4c3b 0%, #4a3327 50%, #3b281e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
}
.scn-orchard-waiting-nurse .leaves-canopy {
  position: absolute; bottom: 60%; left: 5%; width: 55%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #7a9e6b 0%, #4a6b3e 60%, transparent 100%);
  border-radius: 70% 70% 40% 40%;
  filter: blur(3px);
  animation: s2-canopy-sway 12s ease-in-out infinite;
}
.scn-orchard-waiting-nurse .juliet {
  position: absolute; bottom: 28%; left: 50%; width: 32px; height: 75px;
  background: linear-gradient(180deg, #d4a373 0%, #b08968 60%, #7a5340 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 6px rgba(0,0,0,0.2);
  animation: s2-juliet-restless 5s ease-in-out infinite;
}
.scn-orchard-waiting-nurse .fence {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 12%;
  background: repeating-linear-gradient(90deg, #8b5e3c 0px, #8b5e3c 8px, transparent 8px, transparent 18px);
  border-top: 3px solid #6b4c3b;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));
}
.scn-orchard-waiting-nurse .shadow {
  position: absolute; bottom: 12%; left: 44%; width: 40px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 100%);
  animation: s2-shadow-pulse 4s ease-in-out infinite;
}
@keyframes s2-sky-tilt { 0% { background-position: 0 0 } 50% { background-position: 20px -10px } 100% { background-position: -10px 5px } }
@keyframes s2-rays { 0% { opacity:0.3; transform:scaleX(1) } 50% { opacity:0.8; transform:scaleX(1.2) } 100% { opacity:0.4; transform:scaleX(0.9) } }
@keyframes s2-canopy-sway { 0% { transform:rotate(-2deg) } 50% { transform:rotate(4deg) } 100% { transform:rotate(-1deg) } }
@keyframes s2-juliet-restless { 0% { transform:translateX(0) rotate(-1deg) } 30% { transform:translateX(5px) rotate(2deg) } 70% { transform:translateX(-3px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes s2-shadow-pulse { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }

.scn-orchard-nurse-returns {
  background:
    linear-gradient(180deg, #f4d03f 0%, #e67e22 100%),
    radial-gradient(ellipse at 30% 50%, #f4d03f 0%, transparent 80%);
}
.scn-orchard-nurse-returns .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #85c1e9 0%, #f9e79f 100%);
  animation: s3-sky-bright 10s ease-in-out infinite alternate;
}
.scn-orchard-nurse-returns .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c9a96e 0%, #a67c52 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.2);
}
.scn-orchard-nurse-returns .archway {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #e0c295 0%, #b08968 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3), 0 0 10px rgba(0,0,0,0.1);
  animation: s3-arch-pulse 7s ease-in-out infinite;
}
.scn-orchard-nurse-returns .nurse {
  position: absolute; bottom: 18%; left: 45%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #7a5340 0%, #4a3327 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: s3-nurse-pant 3s ease-in-out infinite;
}
.scn-orchard-nurse-returns .juliet {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #d4a373 0%, #b08968 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: s3-juliet-lean 5s ease-in-out infinite;
}
.scn-orchard-nurse-returns .gate {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 30%;
  background: repeating-linear-gradient(90deg, #5c3a1e 0px, #5c3a1e 6px, transparent 6px, transparent 20px);
  border-radius: 0 0 10% 10%;
  filter: drop-shadow(0 4px 6px rgba(0,0,0,0.3));
  animation: s3-gate-shake 4s ease-in-out infinite;
}
.scn-orchard-nurse-returns .dust {
  position: absolute; bottom: 12%; left: 40%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: s3-dust-drift 6s ease-in-out infinite;
}
@keyframes s3-sky-bright { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes s3-arch-pulse { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.02) scaleY(1.01) } 100% { transform:scaleX(0.98) } }
@keyframes s3-nurse-pant { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-6px) rotate(4deg) scaleX(0.95) } 100% { transform:translateY(0) rotate(0) } }
@keyframes s3-juliet-lean { 0% { transform:translateX(0) rotate(0) } 50% { transform:translateX(8px) rotate(6deg) } 100% { transform:translateX(0) rotate(2deg) } }
@keyframes s3-gate-shake { 0% { transform:rotate(0) } 25% { transform:rotate(3deg) } 75% { transform:rotate(-2deg) } 100% { transform:rotate(0) } }
@keyframes s3-dust-drift { 0% { transform:translateX(0) opacity:0.3 } 50% { transform:translateX(20px) opacity:0.6 } 100% { transform:translateX(40px) opacity:0.1 } }

.scn-orchard-nurse-teases {
  background:
    linear-gradient(180deg, #f9e79f 0%, #f4d03f 100%),
    radial-gradient(ellipse at 50% 30%, #f9e79f 0%, transparent 70%);
}
.scn-orchard-nurse-teases .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #85c1e9 0%, #f9e79f 100%);
  animation: s4-sky-play 12s ease-in-out infinite alternate;
}
.scn-orchard-nurse-teases .sun {
  position: absolute; top: 10%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff7b0 0%, #ffd700 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,215,0,0.4);
  animation: s4-sun-bounce 6s ease-in-out infinite;
}
.scn-orchard-nurse-teases .tree {
  position: absolute; bottom: 25%; left: 5%; width: 30px; height: 65%;
  background: linear-gradient(90deg, #6b4c3b 0%, #4a3327 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.2);
  animation: s4-tree-sway 8s ease-in-out infinite;
}
.scn-orchard-nurse-teases .nurse {
  position: absolute; bottom: 22%; left: 40%; width: 38px; height: 60px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s4-nurse-taunt 2.5s ease-in-out infinite;
}
.scn-orchard-nurse-teases .juliet {
  position: absolute; bottom: 25%; left: 55%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #d4a373 0%, #b08968 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: s4-juliet-implore 4s ease-in-out infinite;
}
.scn-orchard-nurse-teases .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a9e6b 0%, #4a6b3e 100%);
  clip-path: polygon(0 30%, 20% 0, 40% 25%, 60% 0, 80% 30%, 100% 0, 100% 100%, 0 100%);
  animation: s4-grass-wind 3s ease-in-out infinite alternate;
}
.scn-orchard-nurse-teases .sparkle {
  position: absolute; top: 20%; left: 30%; width: 8px; height: 8px;
  background: #fff7b0;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,215,0,0.6);
  animation: s4-sparkle-pop 2s ease-in-out infinite;
}
@keyframes s4-sky-play { 0% { background-position: 0 0 } 50% { background-position: 30px -15px } 100% { background-position: -15px 10px } }
@keyframes s4-sun-bounce { 0% { transform:translate(0,0) scale(1) } 50% { transform:translate(5px,-10px) scale(1.1) } 100% { transform:translate(-5px,5px) scale(0.95) } }
@keyframes s4-tree-sway { 0% { transform:rotate(-3deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(-2deg) } }
@keyframes s4-nurse-taunt { 0% { transform:translateY(0) rotate(-5deg) } 50% { transform:translateY(-12px) rotate(10deg) scaleY(0.9) } 100% { transform:translateY(0) rotate(0) } }
@keyframes s4-juliet-implore { 0% { transform:translateX(0) rotate(0) } 30% { transform:translateX(5px) rotate(3deg) } 70% { transform:translateX(-5px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes s4-grass-wind { 0% { clip-path: polygon(0 30%, 20% 0, 40% 25%, 60% 0, 80% 30%, 100% 0, 100% 100%, 0 100%) } 100% { clip-path: polygon(0 20%, 20% 10%, 40% 35%, 60% 5%, 80% 20%, 100% 10%, 100% 100%, 0 100%) } }
@keyframes s4-sparkle-pop { 0%,100% { opacity:0.2; transform:scale(0.5) } 50% { opacity:1; transform:scale(1.5) } }

/* juliet-marriage-thoughts */
.scn-juliet-marriage-thoughts {
  background:
    linear-gradient(180deg, #fcf6e8 0%, #f0e0c0 40%, #d8c8a8 100%),
    radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 70%);
}
.scn-juliet-marriage-thoughts .bg-warm { position:absolute; inset:0; background:linear-gradient(180deg, #fcf6e8 0%, #e8d8b8 100%); animation: jmt-bg 12s ease-in-out infinite alternate; }
.scn-juliet-marriage-thoughts .window-frame { position:absolute; top:5%; left:15%; width:70%; height:75%; border: 12px solid #8a6e4a; border-radius: 8% 8% 0 0 / 12% 12% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.2); background: transparent; }
.scn-juliet-marriage-thoughts .window-glass { position:absolute; top:8%; left:18%; width:64%; height:68%; background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, rgba(200,220,255,0.15) 100%); border-radius: 4% 4% 0 0; backdrop-filter: blur(2px); animation: jmt-glass 8s ease-in-out infinite alternate; }
.scn-juliet-marriage-thoughts .curtain-left { position:absolute; top:5%; left:15%; width:18%; height:75%; background: linear-gradient(90deg, #c8a078 0%, #a08050 40%, #705030 100%); border-radius: 0 60% 40% 0; animation: jmt-curtain 15s ease-in-out infinite; }
.scn-juliet-marriage-thoughts .curtain-right { position:absolute; top:5%; right:15%; width:18%; height:75%; background: linear-gradient(270deg, #c8a078 0%, #a08050 40%, #705030 100%); border-radius: 60% 0 0 40%; animation: jmt-curtain 15s ease-in-out infinite reverse; }
.scn-juliet-marriage-thoughts .juliet-silhouette { position:absolute; bottom:8%; left:38%; width:16%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jmt-figure 4s ease-in-out infinite; }
.scn-juliet-marriage-thoughts .book-stand { position:absolute; bottom:5%; left:34%; width:8%; height:6%; background: #5a3a1a; border-radius: 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); }
.scn-juliet-marriage-thoughts .candle-glow { position:absolute; bottom:22%; left:28%; width:8px; height:12px; background: radial-gradient(circle at 50% 0%, #ffe080 0%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,224,128,0.6), 0 0 80px 40px rgba(255,224,128,0.2); animation: jmt-candle 3s ease-in-out infinite alternate; }
@keyframes jmt-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes jmt-glass { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes jmt-curtain { 0% { transform: translateX(0px); } 50% { transform: translateX(-4px); } 100% { transform: translateX(0px); } }
@keyframes jmt-figure { 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 jmt-candle { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.9; transform: scale(0.95); } }

/* paris-praised */
.scn-paris-praised {
  background:
    linear-gradient(180deg, #fff4e0 0%, #f5dbb0 40%, #e0c090 100%),
    radial-gradient(ellipse at 30% 70%, #f5dbb0 0%, transparent 60%);
}
.scn-paris-praised .wall-panel { position:absolute; inset:0; background: linear-gradient(180deg, #fdf8f0 0%, #e8d4b0 100%); animation: pp-wall 10s ease-in-out infinite alternate; }
.scn-paris-praised .hearth-glow { position:absolute; bottom:5%; left:10%; width:40%; height:60%; background: radial-gradient(ellipse at 50% 80%, #ffb060 0%, #ff8040 30%, transparent 60%); border-radius: 50%; filter: blur(40px); animation: pp-hearth 4s ease-in-out infinite; }
.scn-paris-praised .lady-capulet { position:absolute; bottom:10%; left:20%; width:20%; height:55%; background: linear-gradient(180deg, #684a30 0%, #3a2818 100%); border-radius: 50% 50% 30% 30% / 70% 60% 40% 40%; transform-origin: bottom center; animation: pp-figure 5s ease-in-out infinite; }
.scn-paris-praised .juliet-seated { position:absolute; bottom:8%; right:25%; width:15%; height:35%; background: linear-gradient(180deg, #584028 0%, #2a1a10 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pp-figure 5s ease-in-out infinite reverse; }
.scn-paris-praised .cushion { position:absolute; bottom:8%; left:22%; width:20%; height:6%; background: #8a6040; border-radius: 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-paris-praised .portrait-frame { position:absolute; top:12%; right:12%; width:18%; height:30%; border: 8px solid #7a5a3a; border-radius: 6%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); box-shadow: 0 6px 14px rgba(0,0,0,0.15); animation: pp-portrait 20s ease-in-out infinite; }
.scn-paris-praised .vase { position:absolute; bottom:10%; right:8%; width:8%; height:15%; background: linear-gradient(180deg, #906840 0%, #604020 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
@keyframes pp-wall { 0% { opacity:0.92; } 50% { opacity:1; } 100% { opacity:0.88; } }
@keyframes pp-hearth { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes pp-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pp-portrait { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }

/* feast-preparations */
.scn-feast-preparations {
  background:
    linear-gradient(180deg, #faf0e0 0%, #e8d0b0 50%, #d0b090 100%),
    radial-gradient(ellipse at 60% 40%, #faf0e0 0%, transparent 70%);
}
.scn-feast-preparations .kitchen-wall { position:absolute; inset:0; background: linear-gradient(180deg, #f5e8d0 0%, #dcc8a8 100%); animation: fp-wall 14s ease-in-out infinite alternate; }
.scn-feast-preparations .table-plank { position:absolute; bottom:15%; left:10%; width:80%; height:10%; background: linear-gradient(180deg, #b08860 0%, #886040 100%); border-radius: 8%; box-shadow: 0 6px 14px rgba(0,0,0,0.3); }
.scn-feast-preparations .platter-meat { position:absolute; bottom:18%; left:30%; width:30%; height:14%; background: radial-gradient(ellipse at 50% 40%, #c8a070 0%, #a07850 60%, #705030 100%); border-radius: 50%; box-shadow: 0 4px 10px rgba(0,0,0,0.2); }
.scn-feast-preparations .candle-flicker { position:absolute; bottom:22%; left:20%; width:12px; height:18px; background: radial-gradient(circle at 50% 0%, #ffd090 0%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(255,208,144,0.6), 0 0 60px 30px rgba(255,208,144,0.2); animation: fp-candle 3s ease-in-out infinite alternate; }
.scn-feast-preparations .servant-figure { position:absolute; bottom:12%; left:5%; width:14%; height:40%; background: linear-gradient(180deg, #4a3a28 0%, #2a1a10 100%); border-radius: 50% 40% 30% 40% / 70% 60% 40% 50%; transform-origin: bottom center; animation: fp-servant 6s ease-in-out infinite; }
.scn-feast-preparations .juliet-waiting { position:absolute; bottom:15%; right:12%; width:16%; height:35%; background: linear-gradient(180deg, #503828 0%, #301e10 100%); border-radius: 40% 50% 30% 40% / 60% 70% 40% 50%; transform-origin: bottom center; animation: fp-juliet 5s ease-in-out infinite; }
.scn-feast-preparations .steam-cloud { position:absolute; bottom:30%; left:28%; width:40%; height:18%; background: radial-gradient(ellipse, rgba(255,255,240,0.4) 0%, rgba(255,255,240,0.1) 70%); filter: blur(12px); border-radius: 50%; animation: fp-steam 7s ease-in-out infinite; }
@keyframes fp-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes fp-candle { 0% { opacity:0.8; transform: scale(1) rotate(0deg); } 50% { opacity:1; transform: scale(1.2) rotate(-3deg); } 100% { opacity:0.7; transform: scale(0.9) rotate(3deg); } }
@keyframes fp-servant { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(0deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes fp-juliet { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes fp-steam { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-12px) scale(1.3); opacity:0.3; } 100% { transform: translateY(-24px) scale(1); opacity:0; } }

/* verona-street-maskers */
.scn-verona-street-maskers {
  background:
    linear-gradient(180deg, #2b1a3e 0%, #5a3a5a 30%, #c07050 60%, #f0a050 100%),
    radial-gradient(ellipse at 50% 100%, #f0a050 0%, transparent 60%);
}
.scn-verona-street-maskers .dusk-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a2a4a 0%, #c07050 60%, #f0a050 100%); animation: vsm-sky 20s ease-in-out infinite alternate; }
.scn-verona-street-maskers .building-left { position:absolute; bottom:0; left:0; width:30%; height:70%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 0 0 8% 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-verona-street-maskers .building-right { position:absolute; bottom:0; right:0; width:30%; height:70%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 0 0 0 8%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-verona-street-maskers .street-cobble { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-verona-street-maskers .torch-glow-a { position:absolute; bottom:40%; left:15%; width:20px; height:30px; background: radial-gradient(circle at 50% 0%, #ffa060 0%, transparent 80%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,160,96,0.6), 0 0 120px 60px rgba(255,160,96,0.2); animation: vsm-torch 2.5s ease-in-out infinite alternate; }
.scn-verona-street-maskers .torch-glow-b { position:absolute; bottom:35%; right:20%; width:16px; height:24px; background: radial-gradient(circle at 50% 0%, #ffa060 0%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,160,96,0.6), 0 0 80px 40px rgba(255,160,96,0.2); animation: vsm-torch 3s ease-in-out infinite alternate-reverse; }
.scn-verona-street-maskers .masker-romeo { position:absolute; bottom:18%; left:20%; width:12%; height:36%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 40% 30% 40% / 70% 60% 40% 50%; transform-origin: bottom center; animation: vsm-walk 4s ease-in-out infinite; }
.scn-verona-street-maskers .masker-mercutio { position:absolute; bottom:18%; left:38%; width:12%; height:34%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 40% 50% 30% 40% / 60% 70% 40% 50%; transform-origin: bottom center; animation: vsm-walk 4s ease-in-out infinite 0.5s; }
.scn-verona-street-maskers .masker-benvolio { position:absolute; bottom:18%; right:25%; width:12%; height:34%; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 50% 40% 40% 30% / 70% 60% 40% 50%; transform-origin: bottom center; animation: vsm-walk 4s ease-in-out infinite 1s; }
@keyframes vsm-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes vsm-torch { 0% { opacity:0.9; transform: scale(1) rotate(0deg); } 50% { opacity:1; transform: scale(1.15) rotate(-2deg); } 100% { opacity:0.8; transform: scale(0.9) rotate(2deg); } }
@keyframes vsm-walk { 0% { transform: translateX(0) translateY(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(-2deg); } 100% { transform: translateX(24px) translateY(0) rotate(0deg); } }

.scn-capulet-feast-invitation {
  background: linear-gradient(180deg, #ffeebb 0%, #ffcc77 40%, #c08030 70%, #8a6a2a 100%),
              radial-gradient(ellipse at 50% 0%, #fff5cc 0%, transparent 60%);
}
.scn-capulet-feast-invitation .sky { position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #aac8ff 0%, #ddeeff 100%); animation: cf-sky 30s ease-in-out infinite alternate; }
.scn-capulet-feast-invitation .sun { position: absolute; top: 8%; left: 70%; width: 60px; height: 60px; background: radial-gradient(circle, #fff5a0 0%, #ffe080 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,224,128,.3); animation: cf-sun 12s ease-in-out infinite; }
.scn-capulet-feast-invitation .building { position: absolute; bottom: 20%; left: 25%; width: 50%; height: 40%; background: linear-gradient(180deg, #d4b080 0%, #a07040 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.2); }
.scn-capulet-feast-invitation .door-glow { position: absolute; bottom: 20%; left: 48%; width: 8%; height: 18%; background: radial-gradient(ellipse, #ffdd88 0%, #b08040 70%); border-radius: 20% 20% 0 0; box-shadow: 0 0 30px 10px #ffcc66; animation: cf-door 4s ease-in-out infinite alternate; }
.scn-capulet-feast-invitation .servant { position: absolute; bottom: 18%; left: 42%; width: 5%; height: 12%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: cf-servant 6s ease-in-out infinite; }
.scn-capulet-feast-invitation .path { position: absolute; bottom: 0; left: 30%; width: 40%; height: 20%; background: linear-gradient(180deg, #b08050 0%, #8a6a40 100%); border-radius: 40% 60% 0 0 / 100% 100% 0 0; }
.scn-capulet-feast-invitation .bush { position: absolute; bottom: 22%; width: 14%; height: 16%; background: radial-gradient(ellipse at 50% 100%, #5a7a3a 0%, #3a5a2a 100%); border-radius: 50% 50% 0 0; }
.scn-capulet-feast-invitation .bush-left { left: 8%; animation: cf-bush 10s ease-in-out infinite; }
.scn-capulet-feast-invitation .bush-right { right: 8%; animation: cf-bush 12s ease-in-out infinite reverse; }
@keyframes cf-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes cf-sun { 0% { transform: scale(1) translateY(0); opacity: .9; } 50% { transform: scale(1.05) translateY(-2px); opacity: 1; } 100% { transform: scale(.98) translateY(0); opacity: .85; } }
@keyframes cf-door { 0% { opacity: .8; box-shadow: 0 0 20px 8px #ffcc66; } 50% { opacity: 1; box-shadow: 0 0 40px 15px #ffdd88; } 100% { opacity: .85; box-shadow: 0 0 25px 10px #ffcc66; } }
@keyframes cf-servant { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(5px) translateY(0) rotate(-1deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes cf-bush { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-benvolio-romeo-plan {
  background: linear-gradient(180deg, #cce0ff 0%, #aaccdd 40%, #88aabb 100%),
              radial-gradient(ellipse at 30% 10%, #fff8cc 0%, transparent 50%);
}
.scn-benvolio-romeo-plan .bg-sky { position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #bbd9ff 0%, #d4e8ff 100%); animation: br-sky 20s ease-in-out infinite alternate; }
.scn-benvolio-romeo-plan .sunlight { position: absolute; top: 5%; left: 20%; width: 30%; height: 50%; background: linear-gradient(135deg, rgba(255,240,180,.4) 0%, transparent 100%); transform: rotate(20deg); animation: br-light 10s ease-in-out infinite; }
.scn-benvolio-romeo-plan .bench { position: absolute; bottom: 32%; left: 30%; width: 18%; height: 6%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius: 10px; box-shadow: 0 4px 10px rgba(0,0,0,.3); }
.scn-benvolio-romeo-plan .benvolio { position: absolute; bottom: 33%; left: 34%; width: 6%; height: 20%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: br-benv 5s ease-in-out infinite; }
.scn-benvolio-romeo-plan .romeo { position: absolute; bottom: 33%; left: 44%; width: 6%; height: 20%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: br-romeo 7s ease-in-out infinite; }
.scn-benvolio-romeo-plan .grass { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #4a7a3a 0%, #6a9a5a 40%, #8aba6a 100%); border-radius: 40% 60% 0 0 / 100% 100% 0 0; }
.scn-benvolio-romeo-plan .leaf { position: absolute; top: 30%; width: 8px; height: 14px; background: radial-gradient(ellipse, #5a8a3a 0%, #3a6a2a 100%); border-radius: 50%; animation: br-leaf 8s ease-in-out infinite; }
.scn-benvolio-romeo-plan .leaf-a { left: 15%; animation-delay: 0s; }
.scn-benvolio-romeo-plan .leaf-b { right: 20%; animation-delay: 2s; }
@keyframes br-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes br-light { 0% { opacity: .6; transform: rotate(20deg) scale(1); } 50% { opacity: 1; transform: rotate(25deg) scale(1.05); } 100% { opacity: .7; transform: rotate(18deg) scale(.98); } }
@keyframes br-benv { 0% { transform: rotate(-5deg) translateX(0); } 25% { transform: rotate(0deg) translateX(2px); } 50% { transform: rotate(5deg) translateX(0); } 75% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes br-romeo { 0% { transform: rotate(2deg) translateY(0); } 30% { transform: rotate(0deg) translateY(-2px); } 60% { transform: rotate(-2deg) translateY(0); } 100% { transform: rotate(1deg) translateY(-1px); } }
@keyframes br-leaf { 0% { transform: translateY(0) rotate(0deg); opacity: .8; } 50% { transform: translateY(15px) rotate(90deg); opacity: .5; } 100% { transform: translateY(0) rotate(180deg); opacity: .8; } }

.scn-romeo-rosaline-devotion {
  background: linear-gradient(180deg, #ffcc44 0%, #ffe080 30%, #fff5a0 60%, #ffffcc 100%),
              radial-gradient(ellipse at 30% 0%, #fff0b0 0%, transparent 60%);
}
.scn-romeo-rosaline-devotion .sky-bright { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #ddeeff 0%, #fff8dd 100%); animation: rr-sky 10s ease-in-out infinite alternate; }
.scn-romeo-rosaline-devotion .sun-burst { position: absolute; top: 0; left: 40%; width: 20%; height: 40%; background: radial-gradient(ellipse, #fffac0 0%, #ffeb80 40%, transparent 80%); animation: rr-sun 15s ease-in-out infinite; }
.scn-romeo-rosaline-devotion .romeo-silhouette { position: absolute; bottom: 30%; left: 30%; width: 8%; height: 25%; background: #2a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -10px 0 20px rgba(0,0,0,.5); transform-origin: bottom center; animation: rr-romeo 6s ease-in-out infinite; }
.scn-romeo-rosaline-devotion .rosaline-shadow { position: absolute; bottom: 35%; left: 45%; width: 6%; height: 18%; background: rgba(42,26,26,.5); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(4px); animation: rr-shadow 8s ease-in-out infinite alternate; }
.scn-romeo-rosaline-devotion .ground-dark { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #1a1212 0%, #2a1a1a 40%, #3a2a2a 100%); border-radius: 30% 70% 0 0 / 80% 100% 0 0; }
.scn-romeo-rosaline-devotion .halo-glow { position: absolute; bottom: 50%; left: 28%; width: 12%; height: 12%; background: radial-gradient(circle, rgba(255,200,100,.4) 0%, transparent 70%); border-radius: 50%; animation: rr-halo 5s ease-in-out infinite alternate; }
@keyframes rr-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes rr-sun { 0% { transform: scale(1) translateY(0); opacity: .8; } 50% { transform: scale(1.1) translateY(-5px); opacity: 1; } 100% { transform: scale(.95) translateY(2px); opacity: .7; } }
@keyframes rr-romeo { 0% { transform: rotate(2deg) translateY(0); } 30% { transform: rotate(-2deg) translateY(-3px); } 60% { transform: rotate(1deg) translateY(0); } 100% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes rr-shadow { 0% { opacity: .3; transform: translateY(0); } 50% { opacity: .5; transform: translateY(-5px); } 100% { opacity: .2; transform: translateY(3px); } }
@keyframes rr-halo { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: .7; transform: scale(.9); } }

.scn-capulet-room-preparations {
  background: linear-gradient(180deg, #f8e4c0 0%, #e8cc90 30%, #d4a870 60%, #b08040 100%);
  background-color: #f0d8a8; /* fallback */
}
.scn-capulet-room-preparations .bg-wall { position: absolute; inset: 0 10% 0 10%; background: linear-gradient(180deg, #f0d8b0 0%, #d4b080 100%); border-radius: 0 0 20% 20%; }
.scn-capulet-room-preparations .arch { position: absolute; top: 0; left: 30%; width: 40%; height: 40%; background: linear-gradient(180deg, #c8a070 0%, #a08050 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-capulet-room-preparations .window-light { position: absolute; top: 8%; left: 35%; width: 30%; height: 25%; background: radial-gradient(ellipse at 50% 50%, #fffde0 0%, #ffe8a0 60%, transparent 100%); animation: cr-light 6s ease-in-out infinite alternate; }
.scn-capulet-room-preparations .lady-capulet { position: absolute; bottom: 18%; left: 35%; width: 8%; height: 22%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-lady 5s ease-in-out infinite; }
.scn-capulet-room-preparations .nurse { position: absolute; bottom: 18%; left: 50%; width: 9%; height: 20%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-nurse 4s ease-in-out infinite; }
.scn-capulet-room-preparations .curtain { position: absolute; top: 0; width: 15%; height: 60%; background: linear-gradient(180deg, #a06040 0%, #704020 100%); border-radius: 0 0 30% 30%; box-shadow: 2px 0 8px rgba(0,0,0,.2); }
.scn-capulet-room-preparations .curtain-left { left: 8%; transform-origin: top left; animation: cr-curtain-l 8s ease-in-out infinite; }
.scn-capulet-room-preparations .curtain-right { right: 8%; transform-origin: top right; animation: cr-curtain-r 8s ease-in-out infinite reverse; }
.scn-capulet-room-preparations .chair { position: absolute; bottom: 10%; left: 42%; width: 12%; height: 10%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,.3); }
@keyframes cr-light { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .8; transform: scale(.98); } }
@keyframes cr-lady { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cr-nurse { 0% { transform: translateX(0) translateY(0); } 20% { transform: translateX(4px) translateY(-2px); } 40% { transform: translateX(8px) translateY(0); } 60% { transform: translateX(12px) translateY(-1px); } 80% { transform: translateX(8px) translateY(0); } 100% { transform: translateX(0) translateY(0); } }
@keyframes cr-curtain-l { 0% { transform: rotate(0deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes cr-curtain-r { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }

.scn-item-letter {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0f0f1a 100%),
    radial-gradient(ellipse at 50% 60%, #a06040 0%, transparent 60%);
}

.scn-item-letter .vault {
  position: absolute;
  top: 0; left: 0; right: 0;
  bottom: 35%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 20% 20% / 30% 30% 20% 20%;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.7);
}

.scn-item-letter .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}

.scn-item-letter .torch-glow {
  position: absolute;
  bottom: 45%;
  left: 50%;
  width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d08040 0%, #a06030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #803020, 0 0 60px 20px rgba(128,48,32,0.4);
  animation: itm-flicker 0.8s ease-in-out infinite alternate;
}

.scn-item-letter .figure {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: itm-tremor 3s ease-in-out infinite;
}

.scn-item-letter .letter {
  position: absolute;
  bottom: 38%;
  left: 42%;
  width: 24px; height: 14px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b080 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: itm-float 4s ease-in-out infinite;
}

.scn-item-letter .vial {
  position: absolute;
  bottom: 32%;
  left: 46%;
  width: 10px; height: 18px;
  background: linear-gradient(180deg, #408080 0%, #206060 100%);
  border-radius: 30% 30% 20% 20% / 20% 20% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: itm-drift 6s ease-in-out infinite alternate;
}

.scn-item-letter .shadow {
  position: absolute;
  bottom: 26%;
  left: 38%;
  width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: itm-shape 3s ease-in-out infinite alternate;
}

@keyframes itm-flicker {
  0% { opacity: 0.8; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.9; transform: translateX(-50%) scale(0.95); }
}
@keyframes itm-tremor {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(0.5deg); }
  50% { transform: translateX(-1px) rotate(-0.5deg); }
  75% { transform: translateX(1px) rotate(0.5deg); }
}
@keyframes itm-float {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes itm-drift {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-2px) translateY(2px); }
  100% { transform: translateX(2px) translateY(-1px); }
}
@keyframes itm-shape {
  0%,100% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
  50% { transform: scaleX(1.2) scaleY(0.8); opacity: 0.4; }
}

.scn-reconciliation-begin {
  background:
    linear-gradient(180deg, #4a6a8a 0%, #8a9a7a 40%, #c0a060 100%),
    radial-gradient(ellipse at 50% 30%, #e0c080 0%, transparent 60%);
}

.scn-reconciliation-begin .sky {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 70%;
  background: linear-gradient(180deg, #7a9a7a 0%, #c0a060 100%);
}

.scn-reconciliation-begin .sun {
  position: absolute;
  top: 15%;
  left: 50%;
  width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe0a0 0%, #e0c060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #e0c060, 0 0 80px 30px rgba(224,192,96,0.3);
  animation: rcb-sunrise 12s ease-in-out infinite alternate;
}

.scn-reconciliation-begin .hand-left {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #d0a080 0%, #a07050 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: rcb-reach 6s ease-in-out infinite alternate;
}

.scn-reconciliation-begin .hand-right {
  position: absolute;
  bottom: 30%;
  right: 30%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #d0a080 0%, #a07050 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: rcb-reach 6s ease-in-out infinite alternate-reverse;
}

.scn-reconciliation-begin .statue {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e0c080 0%, #b09050 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: rcb-glow 8s ease-in-out infinite alternate;
}

.scn-reconciliation-begin .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 20%;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}

.scn-reconciliation-begin .light-rays {
  position: absolute;
  top: 5%;
  left: 50%;
  width: 200px; height: 200px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, rgba(255,224,160,0.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: rcb-shimmer 14s linear infinite;
}

@keyframes rcb-sunrise {
  0% { transform: translateX(-50%) scale(0.9); opacity: 0.8; box-shadow: 0 0 20px 5px #e0c060; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 1; box-shadow: 0 0 60px 20px #ffe0a0; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.9; box-shadow: 0 0 40px 15px #e0c060; }
}
@keyframes rcb-reach {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-10px) rotate(0deg); }
  100% { transform: translateY(0) rotate(5deg); }
}
@keyframes rcb-glow {
  0% { box-shadow: 0 4px 8px rgba(0,0,0,0.3); opacity: 0.9; }
  50% { box-shadow: 0 8px 16px rgba(224,192,128,0.5); opacity: 1; }
  100% { box-shadow: 0 4px 8px rgba(0,0,0,0.3); opacity: 0.95; }
}
@keyframes rcb-shimmer {
  0% { transform: translateX(-50%) rotate(0deg); opacity: 0.3; }
  50% { transform: translateX(-50%) rotate(180deg); opacity: 0.6; }
  100% { transform: translateX(-50%) rotate(360deg); opacity: 0.3; }
}

.scn-reconciliation-end {
  background:
    linear-gradient(180deg, #5a6a7a 0%, #7a8a7a 50%, #a09a70 100%),
    radial-gradient(ellipse at 50% 20%, #b0a080 0%, transparent 70%);
}

.scn-reconciliation-end .sky {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 75%;
  background: linear-gradient(180deg, #6a7a8a 0%, #8a9a7a 100%);
}

.scn-reconciliation-end .sun-haze {
  position: absolute;
  top: 18%;
  left: 50%;
  width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d0c0a0 0%, #a09070 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(160,144,112,0.2);
  animation: rce-pulse 10s ease-in-out infinite alternate;
}

.scn-reconciliation-end .clouds {
  position: absolute;
  top: 10%; left: 0; right: 0;
  height: 40%;
  background: 
    radial-gradient(ellipse at 20% 30%, rgba(200,190,170,0.3) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 40%, rgba(200,190,170,0.2) 0%, transparent 50%);
  filter: blur(8px);
  animation: rce-drift 40s linear infinite;
}

.scn-reconciliation-end .figure-left {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rce-sway 7s ease-in-out infinite;
}

.scn-reconciliation-end .figure-right {
  position: absolute;
  bottom: 20%;
  right: 30%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rce-sway 7s ease-in-out infinite alternate;
}

.scn-reconciliation-end .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 20%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
}

.scn-reconciliation-end .monument {
  position: absolute;
  bottom: 15%;
  left: 50%;
  width: 20px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 5% 5% 2% 2% / 10% 10% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: rce-shadow 8s ease-in-out infinite alternate;
}

@keyframes rce-pulse {
  0% { opacity: 0.5; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 0.8; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.6; transform: translateX(-50%) scale(1); }
}
@keyframes rce-drift {
  0% { transform: translateX(0); }
  50% { transform: translateX(5%); }
  100% { transform: translateX(0); }
}
@keyframes rce-sway {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes rce-shadow {
  0% { box-shadow: 0 4px 8px rgba(0,0,0,0.3); opacity: 0.9; }
  50% { box-shadow: 0 8px 16px rgba(0,0,0,0.5); opacity: 1; }
  100% { box-shadow: 0 4px 8px rgba(0,0,0,0.3); opacity: 0.95; }
}

.scn-orchard-capulet-mocks { background: linear-gradient(180deg, #3a2a3a 0%, #5a4a5a 35%, #8a7a6a 70%), radial-gradient(ellipse at 50% 100%, #2a1a1a 0%, transparent 60%); }
.scn-orchard-capulet-mocks .sky { position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #4a3a4a 0%, #7a6a5a 50%, #c0a080 100%); opacity: 0.6; animation: ocm-sky 12s ease-in-out infinite alternate; }
.scn-orchard-capulet-mocks .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #1a1a0a 0%, #2a2a1a 100%); border-radius: 30% 40% 0 0 / 20% 30% 0 0; }
.scn-orchard-capulet-mocks .wall { position: absolute; bottom: 30%; left: 20%; width: 60%; height: 50%; background: linear-gradient(135deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 8px; box-shadow: inset 0 0 30px #1a1a1a; }
.scn-orchard-capulet-mocks .window { position: absolute; bottom: 45%; left: 35%; width: 30%; height: 25%; background: radial-gradient(circle at 30% 20%, #c0a080 0%, #6a4a3a 60%, transparent 100%); border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: 0 0 40px #8a6a4a; animation: ocm-window 6s ease-in-out infinite alternate; }
.scn-orchard-capulet-mocks .figure-capulet { position: absolute; bottom: 25%; left: 40%; width: 12%; height: 30%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ocm-figure 4s ease-in-out infinite; }
.scn-orchard-capulet-mocks .table { position: absolute; bottom: 15%; left: 45%; width: 15%; height: 8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; }
.scn-orchard-capulet-mocks .cup { position: absolute; bottom: 18%; left: 48%; width: 4%; height: 6%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; animation: ocm-cup 5s ease-in-out infinite; }
@keyframes ocm-sky { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes ocm-window { 0% { box-shadow: 0 0 20px #6a4a3a; } 50% { box-shadow: 0 0 60px #c0a080; } 100% { box-shadow: 0 0 30px #8a6a4a; } }
@keyframes ocm-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8%) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ocm-cup { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }

.scn-orchard-capulet-final-threat { background: linear-gradient(180deg, #2a1a2a 0%, #4a3a4a 40%, #6a5a4a 80%), radial-gradient(ellipse at 50% 100%, #1a0a0a 0%, transparent 70%); }
.scn-orchard-capulet-final-threat .sky-threat { position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #3a2a3a 0%, #5a4a3a 50%, #9a7a5a 100%); opacity: 0.5; animation: ocf-sky 15s ease-in-out infinite alternate; }
.scn-orchard-capulet-final-threat .ground-threat { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #1a1a0a 0%, #2a2a1a 100%); border-radius: 40% 30% 0 0 / 30% 20% 0 0; }
.scn-orchard-capulet-final-threat .wall-threat { position: absolute; bottom: 30%; left: 15%; width: 70%; height: 55%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 6px; box-shadow: inset 0 0 40px #0a0a0a; }
.scn-orchard-capulet-final-threat .window-threat { position: absolute; bottom: 45%; left: 30%; width: 25%; height: 20%; background: radial-gradient(circle at 20% 20%, #b08060 0%, #5a3a2a 60%, transparent 100%); border: 3px solid #2a1a0a; box-shadow: 0 0 30px #7a4a2a; animation: ocf-window 4s ease-in-out infinite alternate; }
.scn-orchard-capulet-final-threat .figure-threat { position: absolute; bottom: 22%; left: 38%; width: 14%; height: 35%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ocf-figure 3s ease-in-out infinite; }
.scn-orchard-capulet-final-threat .arm-threat { position: absolute; bottom: 32%; left: 45%; width: 12%; height: 5%; background: linear-gradient(90deg, #1a0a0a 0%, #2a1a1a 100%); border-radius: 40% 40% 10% 10%; transform-origin: left center; animation: ocf-arm 1.5s ease-in-out infinite alternate; }
.scn-orchard-capulet-final-threat .door-threat { position: absolute; bottom: 15%; left: 70%; width: 15%; height: 35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border: 2px solid #2a1a0a; border-radius: 4px; }
.scn-orchard-capulet-final-threat .shadow-threat { position: absolute; bottom: 0; left: 30%; width: 60%; height: 20%; background: linear-gradient(180deg, #000 0%, transparent 100%); opacity: 0.3; animation: ocf-shadow 5s ease-in-out infinite; }
@keyframes ocf-sky { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.5; } }
@keyframes ocf-window { 0% { box-shadow: 0 0 15px #5a3a2a; } 50% { box-shadow: 0 0 50px #b08060; } 100% { box-shadow: 0 0 25px #8a5a3a; } }
@keyframes ocf-figure { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(10%) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ocf-arm { 0% { transform: rotate(-30deg) scaleX(1); } 100% { transform: rotate(30deg) scaleX(1.2); } }
@keyframes ocf-shadow { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.3; } }

.scn-orchard-juliet-pleads { background: linear-gradient(180deg, #2a2a4a 0%, #4a4a6a 40%, #7a6a5a 80%), radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%); }
.scn-orchard-juliet-pleads .sky-pleads { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #3a3a5a 0%, #6a5a4a 50%, #a08060 100%); opacity: 0.5; animation: ojp-sky 18s ease-in-out infinite alternate; }
.scn-orchard-juliet-pleads .window-frame { position: absolute; top: 10%; left: 20%; width: 60%; height: 50%; background: radial-gradient(circle at 30% 30%, #b08060 0%, #4a3a2a 70%); border: 6px solid #2a1a0a; border-radius: 10px; box-shadow: 0 0 40px #8a5a3a; animation: ojp-window 8s ease-in-out infinite; }
.scn-orchard-juliet-pleads .juliet-figure { position: absolute; bottom: 15%; left: 35%; width: 12%; height: 35%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ojp-juliet 5s ease-in-out infinite; }
.scn-orchard-juliet-pleads .mother-figure { position: absolute; bottom: 20%; right: 25%; width: 13%; height: 40%; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: ojp-mother 7s ease-in-out infinite; }
.scn-orchard-juliet-pleads .tear { position: absolute; bottom: 28%; left: 38%; width: 2%; height: 3%; background: radial-gradient(circle, #a0c0d0 0%, #7090a0 100%); border-radius: 50%; animation: ojp-tear 3s ease-in-out infinite; }
.scn-orchard-juliet-pleads .ray-light { position: absolute; bottom: 30%; left: 30%; width: 10%; height: 50%; background: linear-gradient(135deg, #c0a080 0%, transparent 80%); opacity: 0.3; animation: ojp-ray 10s ease-in-out infinite alternate; }
@keyframes ojp-sky { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes ojp-window { 0% { box-shadow: 0 0 20px #4a3a2a; } 50% { box-shadow: 0 0 60px #b08060; } 100% { box-shadow: 0 0 30px #8a5a3a; } }
@keyframes ojp-juliet { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ojp-mother { 0% { transform: translateX(0); } 50% { transform: translateX(-5%); } 100% { transform: translateX(0); } }
@keyframes ojp-tear { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(10px) scale(1.2); opacity: 0.8; } 100% { transform: translateY(20px) scale(0.8); opacity: 0; } }
@keyframes ojp-ray { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.25; } }

.scn-orchard-nurse-counsel { background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 40%, #9a7a6a 80%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }
.scn-orchard-nurse-counsel .wall-counsel { position: absolute; top: 0; left: 0; width: 100%; height: 70%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 0 20% 20% / 0 0 40% 40%; }
.scn-orchard-nurse-counsel .hearth { position: absolute; bottom: 10%; left: 10%; width: 25%; height: 25%; background: radial-gradient(circle at 50% 60%, #c08040 0%, #8a4a2a 60%, #3a1a0a 100%); border-radius: 50%; box-shadow: 0 0 30px #c06030; animation: onc-hearth 6s ease-in-out infinite alternate; }
.scn-orchard-nurse-counsel .nurse-figure { position: absolute; bottom: 20%; left: 25%; width: 15%; height: 38%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: onc-nurse 8s ease-in-out infinite; }
.scn-orchard-nurse-counsel .juliet-figure-counsel { position: absolute; bottom: 18%; right: 20%; width: 12%; height: 34%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: onc-juliet 6s ease-in-out infinite; }
.scn-orchard-nurse-counsel .candle { position: absolute; bottom: 28%; left: 18%; width: 3%; height: 8%; background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%); border-radius: 2px; box-shadow: 0 0 20px #e0c080; animation: onc-candle 4s ease-in-out infinite alternate; }
.scn-orchard-nurse-counsel .rug { position: absolute; bottom: 0; left: 10%; width: 80%; height: 15%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; }
.scn-orchard-nurse-counsel .window-counsel { position: absolute; top: 15%; right: 15%; width: 20%; height: 25%; background: radial-gradient(circle at 30% 20%, #a08060 0%, #6a5a4a 70%); border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: 0 0 20px #8a6a4a; animation: onc-window 10s ease-in-out infinite alternate; }
@keyframes onc-hearth { 0% { transform: scale(1); box-shadow: 0 0 20px #c06030; } 50% { transform: scale(1.05); box-shadow: 0 0 50px #e08040; } 100% { transform: scale(1); box-shadow: 0 0 30px #c06030; } }
@keyframes onc-nurse { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4%) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes onc-juliet { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-5px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes onc-candle { 0% { box-shadow: 0 0 10px #e0c080; } 50% { box-shadow: 0 0 30px #ffd090; } 100% { box-shadow: 0 0 15px #e0c080; } }
@keyframes onc-window { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* ——— montague-arrives ——— */
.scn-montague-arrives { background: linear-gradient(180deg, #4a5a7a 0%, #6a7a9a 30%, #8a9aba 60%, #b8c4d8 100%), radial-gradient(ellipse at 50% 0%, #d8e0f0 0%, transparent 60%); }
.scn-montague-arrives .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a4a6a 0%, #6a8aaa 50%, #a0b8d0 100%); animation: mta-sky 12s ease-in-out infinite alternate; }
.scn-montague-arrives .mountains { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.5); animation: mta-mts 18s ease-in-out infinite alternate; }
.scn-montague-arrives .path { position:absolute; bottom:22%; left:20%; width:60%; height:6%; background: linear-gradient(90deg, transparent 0%, #6a5a3a 20%, #8a7a5a 50%, #6a5a3a 80%, transparent 100%); border-radius: 40%; opacity:.7; animation: mta-path 20s ease-in-out infinite; }
.scn-montague-arrives .gate { position:absolute; bottom:20%; left:45%; width:50px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,.6); transform: rotate(2deg); animation: mta-gate 4s ease-in-out infinite; }
.scn-montague-arrives .figure { position:absolute; bottom:22%; left:15%; width:16px; height:40px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mta-walk 6s ease-in-out infinite; }
.scn-montague-arrives .lantern { position:absolute; bottom:32%; left:18%; width:8px; height:8px; background: radial-gradient(circle, #d0b080 0%, #a08050 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(160,128,80,.6); animation: mta-latern 4s ease-in-out infinite; }
.scn-montague-arrives .cloud-a { position:absolute; top:10%; left:10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(200,210,230,.6) 0%, rgba(200,210,230,.1) 100%); border-radius: 50%; filter: blur(8px); animation: mta-drift-a 40s linear infinite; }
.scn-montague-arrives .cloud-b { position:absolute; top:25%; right:5%; width:70px; height:14px; background: linear-gradient(180deg, rgba(200,210,230,.5) 0%, rgba(200,210,230,.05) 100%); border-radius: 50%; filter: blur(6px); animation: mta-drift-b 55s linear infinite reverse; }
@keyframes mta-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mta-mts { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes mta-path { 0% { background-position: 0 0 } 100% { background-position: 60% 0 } }
@keyframes mta-gate { 0%,100% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(-1deg) scale(1.02) } }
@keyframes mta-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes mta-latern { 0%,100% { transform: translate(0,0) rotate(-5deg) } 50% { transform: translate(3px,-1px) rotate(5deg) } }
@keyframes mta-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes mta-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

/* ——— prince-investigation ——— */
.scn-prince-investigation { background: linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 30%, #7a8a9a 60%, #9aacbe 100%), radial-gradient(ellipse at 40% 60%, #b0c0d0 0%, transparent 70%); }
.scn-prince-investigation .ground { position:absolute; inset:auto 0 0 0; height:45%; background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); animation: pin-ground 20s ease-in-out infinite; }
.scn-prince-investigation .body { position:absolute; bottom:15%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: pin-body 6s ease-in-out infinite; }
.scn-prince-investigation .cloth { position:absolute; bottom:18%; left:48%; width:50px; height:20px; transform:rotate(-5deg); background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 60% 40% 30% 70%; animation: pin-cloth 8s ease-in-out infinite alternate; }
.scn-prince-investigation .prince { position:absolute; bottom:20%; left:30%; width:18px; height:45px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pin-prince 5s ease-in-out infinite; }
.scn-prince-investigation .sword { position:absolute; bottom:30%; left:34%; width:30px; height:4px; background: linear-gradient(90deg, #a0a0b0 0%, #c0c0d0 100%); border-radius: 10px; transform: rotate(70deg); animation: pin-sword 7s ease-in-out infinite; }
.scn-prince-investigation .dawn-light { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(ellipse at 30% 20%, #d0d8e8 0%, transparent 60%); mix-blend-mode: overlay; animation: pin-light 15s ease-in-out infinite alternate; }
.scn-prince-investigation .bird-small { position:absolute; top:8%; left:70%; width:12px; height:8px; background: #3a4a5a; border-radius: 50% 50% 0 0; clip-path: polygon(0 0,100% 0,100% 60%,60% 80%,40% 80%,0 60%); animation: pin-bird 12s ease-in-out infinite; }
@keyframes pin-ground { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pin-body { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes pin-cloth { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(-8deg) scale(1.03) } 100% { transform: rotate(-2deg) scale(1) } }
@keyframes pin-prince { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(-2deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pin-sword { 0% { transform: rotate(70deg) scaleX(1) } 50% { transform: rotate(65deg) scaleX(1.05) } 100% { transform: rotate(75deg) scaleX(1) } }
@keyframes pin-light { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.4 } }
@keyframes pin-bird { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-8px) scale(1.1) } }

/* ——— friar-explanation-start ——— */
.scn-friar-explanation-start { background: linear-gradient(180deg, #2a2a1a 0%, #4a3a2a 40%, #5a4a3a 70%, #7a6a5a 100%), radial-gradient(ellipse at 50% 20%, #6a5a4a 0%, transparent 70%); }
.scn-friar-explanation-start .cell-wall { position:absolute; inset:0; background: linear-gradient(45deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; }
.scn-friar-explanation-start .window { position:absolute; top:15%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #6a7a8a 0%, #8a9aaa 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 10px rgba(200,200,220,.3); animation: fes-window 15s ease-in-out infinite alternate; }
.scn-friar-explanation-start .friar { position:absolute; bottom:25%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: fes-friar 8s ease-in-out infinite; }
.scn-friar-explanation-start .romeo { position:absolute; bottom:8%; left:30%; width:18px; height:30px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 10% 10%; transform: rotate(-10deg); animation: fes-body 10s ease-in-out infinite; }
.scn-friar-explanation-start .juliet { position:absolute; bottom:8%; right:30%; width:16px; height:28px; background: linear-gradient(180deg, #5a4a6a 0%, #3a2a4a 100%); border-radius: 50% 50% 10% 10%; transform: rotate(10deg); animation: fes-body 10s ease-in-out infinite 2s; }
.scn-friar-explanation-start .candle { position:absolute; bottom:35%; left:60%; width:8px; height:20px; background: linear-gradient(180deg, #a08060 0%, #604030 100%); border-radius: 10%; animation: fes-candle 6s ease-in-out infinite; }
.scn-friar-explanation-start .glow { position:absolute; bottom:38%; left:60%; width:30px; height:30px; background: radial-gradient(circle, #d0b080 0%, transparent 70%); border-radius: 50%; animation: fes-glow 4s ease-in-out infinite alternate; }
.scn-friar-explanation-start .shadow { position:absolute; bottom:5%; left:20%; width:60%; height:15%; background: rgba(0,0,0,.3); border-radius: 40%; filter: blur(6px); animation: fes-shadow 12s ease-in-out infinite; }
@keyframes fes-window { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes fes-friar { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-4px) rotate(1deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fes-body { 0%,100% { opacity:.8 } 50% { opacity:.6 } }
@keyframes fes-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } }
@keyframes fes-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.2) } 100% { opacity:.5; transform: scale(.9) } }
@keyframes fes-shadow { 0% { opacity:.3; transform: translateY(0) } 50% { opacity:.2; transform: translateY(4px) } 100% { opacity:.3; transform: translateY(-2px) } }

/* ——— friar-explanation-part2 ——— */
.scn-friar-explanation-part2 { background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #5a4a3a 60%, #7a6a5a 100%), radial-gradient(ellipse at 80% 30%, #8a7a6a 0%, transparent 60%); }
.scn-friar-explanation-part2 .bg-potion { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, #6a5a4a 0%, transparent 70%); }
.scn-friar-explanation-part2 .bottle { position:absolute; bottom:30%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: linear-gradient(135deg, #8a9a8a 0%, #6a7a6a 50%, #4a5a4a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: fep-bottle 10s ease-in-out infinite; }
.scn-friar-explanation-part2 .liquid { position:absolute; bottom:33%; left:50%; width:22px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #7a8a5a 0%, #5a6a3a 100%); border-radius: 10% 10% 20% 20%; animation: fep-liquid 12s ease-in-out infinite; }
.scn-friar-explanation-part2 .hand { position:absolute; bottom:25%; left:44%; width:14px; height:30px; transform:rotate(-60deg); transform-origin: 50% 100%; background: linear-gradient(180deg, #c0b0a0 0%, #a09070 100%); border-radius: 30% 30% 40% 40%; animation: fep-hand 8s ease-in-out infinite; }
.scn-friar-explanation-part2 .drop-a { position:absolute; bottom:50%; left:52%; width:4px; height:6px; background: radial-gradient(circle, #8a9a6a 0%, #5a6a3a 100%); border-radius: 50%; animation: fep-drop-a 3s ease infinite; }
.scn-friar-explanation-part2 .drop-b { position:absolute; bottom:50%; left:56%; width:3px; height:5px; background: radial-gradient(circle, #8a9a6a 0%, #5a6a3a 100%); border-radius: 50%; animation: fep-drop-b 3.5s ease infinite 0.5s; }
.scn-friar-explanation-part2 .vapor { position:absolute; top:45%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, rgba(200,220,200,.3) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: fep-vapor 15s ease-in-out infinite; }
@keyframes fep-bottle { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes fep-liquid { 0% { opacity:.8 } 50% { opacity:.6; transform: translateX(-50%) scaleY(.95) } 100% { opacity:.8 } }
@keyframes fep-hand { 0% { transform: rotate(-60deg) translateY(0) } 25% { transform: rotate(-55deg) translateY(-2px) } 50% { transform: rotate(-65deg) translateY(0) } 75% { transform: rotate(-50deg) translateY(-1px) } 100% { transform: rotate(-60deg) translateY(0) } }
@keyframes fep-drop-a { 0% { opacity:0; transform: translateY(0) } 20% { opacity:1 } 80% { opacity:1 } 100% { opacity:0; transform: translateY(60px) } }
@keyframes fep-drop-b { 0% { opacity:0; transform: translateY(0) } 20% { opacity:1 } 80% { opacity:1 } 100% { opacity:0; transform: translateY(60px) } }
@keyframes fep-vapor { 0% { opacity:.1; transform: translateX(-50%) scale(.8) } 50% { opacity:.4; transform: translateX(-50%) scale(1.2) translateY(-10px) } 100% { opacity:.1; transform: translateX(-50%) scale(.8) } }

.scn-friar-alliance-hope {
  background: linear-gradient(180deg, #c8a476 0%, #a07850 40%, #7a5a3a 100%),
              radial-gradient(ellipse at 40% 30%, #e8c888 0%, transparent 60%);
}
.scn-friar-alliance-hope .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #b8906a 0%, #8a6a48 100%);
  animation: fah-wall 30s ease-in-out infinite alternate;
}
.scn-friar-alliance-hope .window-arch {
  position: absolute; top: 8%; left: 22%; width: 90px; height: 130px;
  background: radial-gradient(ellipse at 50% 30%, #f0d8a0 0%, #c8a870 70%, #6a4a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.4);
  animation: fah-window 12s ease-in-out infinite;
}
.scn-friar-alliance-hope .altar {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 50px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3220 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: fah-altar 20s ease-in-out infinite alternate;
}
.scn-friar-alliance-hope .candle {
  position: absolute; bottom: 32%; left: 44%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #e0c080 0%, #b09860 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #f0c860, 0 0 40px 12px rgba(240,200,96,0.4);
  animation: fah-candle 3s ease-in-out infinite alternate;
}
.scn-friar-alliance-hope .book {
  position: absolute; bottom: 22%; left: 54%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #a07050 0%, #6a4830 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(-8deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: fah-book 8s ease-in-out infinite;
}
.scn-friar-alliance-hope .friar-figure {
  position: absolute; bottom: 20%; left: 34%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: fah-friar 6s ease-in-out infinite alternate;
}
.scn-friar-alliance-hope .glow-ray {
  position: absolute; top: 10%; left: 25%; width: 80px; height: 100px;
  background: linear-gradient(135deg, rgba(240,216,160,0.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: fah-ray 5s ease-in-out infinite alternate;
}
@keyframes fah-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes fah-window { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes fah-altar { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(1px) } }
@keyframes fah-candle { 0% { box-shadow:0 0 15px 4px #f0c860,0 0 30px 8px rgba(240,200,96,0.3); opacity:0.85 } 50% { box-shadow:0 0 25px 8px #ffd870,0 0 50px 16px rgba(255,216,112,0.5); opacity:1 } 100% { box-shadow:0 0 18px 5px #f0c860,0 0 35px 10px rgba(240,200,96,0.35); opacity:0.9 } }
@keyframes fah-book { 0% { transform: rotate(-8deg) scale(1) } 50% { transform: rotate(-6deg) scale(1.02) } 100% { transform: rotate(-10deg) scale(0.98) } }
@keyframes fah-friar { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(1px) rotate(-1deg) } }
@keyframes fah-ray { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.7; transform: scale(1.1) rotate(2deg) } 100% { opacity:0.5; transform: scale(0.95) rotate(-1deg) } }

.scn-friar-haste-warning {
  background: linear-gradient(180deg, #b89870 0%, #8a6a48 40%, #5a3a22 100%),
              radial-gradient(ellipse at 60% 20%, #d8b888 0%, transparent 60%);
}
.scn-friar-haste-warning .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3220 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.5);
  animation: fhw-floor 25s ease-in-out infinite alternate;
}
.scn-friar-haste-warning .door-frame {
  position: absolute; bottom: 25%; left: 60%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a3a28 0%, #2a1a10 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
  animation: fhw-door 10s ease-in-out infinite;
}
.scn-friar-haste-warning .sundial {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 30px;
  background: radial-gradient(circle, #c0a070 0%, #907050 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: fhw-dial 20s linear infinite;
}
.scn-friar-haste-warning .romeo-figure {
  position: absolute; bottom: 18%; left: 44%; width: 20px; height: 58px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: fhw-romeo 4s ease-in-out infinite alternate;
}
.scn-friar-haste-warning .friar-hand {
  position: absolute; bottom: 30%; left: 38%; width: 14px; height: 12px;
  background: #8a6a48;
  border-radius: 50% 40% 30% 30%;
  transform: rotate(15deg);
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
  animation: fhw-hand 2s ease-in-out infinite;
}
.scn-friar-haste-warning .shadow-dash {
  position: absolute; bottom: 12%; left: 20%; width: 80px; height: 4px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: fhw-shadow 5s ease-in-out infinite alternate;
}
.scn-friar-haste-warning .dust-mote {
  position: absolute; top: 15%; left: 10%; width: 12px; height: 12px;
  background: rgba(200,180,140,0.2);
  border-radius: 50%;
  filter: blur(3px);
  animation: fhw-dust 18s linear infinite;
}
@keyframes fhw-floor { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes fhw-door { 0% { transform: scaleX(1) } 25% { transform: scaleX(1.03) } 75% { transform: scaleX(0.97) } 100% { transform: scaleX(1) } }
@keyframes fhw-dial { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes fhw-romeo { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(10px) rotate(1deg) } 50% { transform: translateX(20px) rotate(-1deg) } 75% { transform: translateX(10px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fhw-hand { 0% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(25deg) scale(1.1) } 100% { transform: rotate(10deg) scale(0.95) } }
@keyframes fhw-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.5) } 100% { transform: scaleX(0.8) } }
@keyframes fhw-dust { 0% { transform: translate(0,0) scale(1); opacity:0 } 10% { opacity:0.3 } 90% { opacity:0.3 } 100% { transform: translate(120px,60px) scale(0.5); opacity:0 } }

.scn-street-tybalt-letter {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 40%, #a09070 100%),
              radial-gradient(ellipse at 70% 50%, #f0e8d0 0%, transparent 50%);
}
.scn-street-tybalt-letter .sky-bright {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8a8 100%);
  animation: stl-sky 15s ease-in-out infinite alternate;
}
.scn-street-tybalt-letter .wall-shadow {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: stl-wall 20s ease-in-out infinite alternate;
}
.scn-street-tybalt-letter .tybalt-silhouette {
  position: absolute; bottom: 18%; left: 35%; width: 24px; height: 72px;
  background: #1a1a1a;
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px 4px rgba(0,0,0,0.6);
  animation: stl-tybalt 3s ease-in-out infinite alternate;
}
.scn-street-tybalt-letter .letter-glint {
  position: absolute; bottom: 40%; left: 28%; width: 16px; height: 12px;
  background: radial-gradient(circle, #f0e0b0 0%, #d0b880 70%);
  border-radius: 10%;
  box-shadow: 0 0 12px 4px rgba(240,224,176,0.5);
  animation: stl-letter 4s ease-in-out infinite;
}
.scn-street-tybalt-letter .sword-tip {
  position: absolute; bottom: 20%; left: 44%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(30deg);
  animation: stl-sword 2s ease-in-out infinite alternate;
}
.scn-street-tybalt-letter .dust-devil {
  position: absolute; bottom: 10%; left: 10%; width: 30px; height: 30px;
  background: rgba(180,160,120,0.15);
  border-radius: 50%;
  filter: blur(6px);
  animation: stl-dust 12s linear infinite;
}
@keyframes stl-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes stl-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes stl-tybalt { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(6px) rotate(2deg) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(6px) rotate(4deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes stl-letter { 0% { opacity:0.6; transform: scale(1) rotate(0deg) } 25% { opacity:1; transform: scale(1.2) rotate(10deg) } 75% { opacity:1; transform: scale(1.1) rotate(-5deg) } 100% { opacity:0.7; transform: scale(0.95) rotate(0deg) } }
@keyframes stl-sword { 0% { transform: rotate(30deg) scaleY(1) } 50% { transform: rotate(45deg) scaleY(1.1) } 100% { transform: rotate(25deg) scaleY(0.9) } }
@keyframes stl-dust { 0% { transform: translate(0,0) scale(1); opacity:0 } 10% { opacity:0.2 } 90% { opacity:0.2 } 100% { transform: translate(80px,-40px) scale(2); opacity:0 } }

.scn-street-mercutio-mockery {
  background: linear-gradient(135deg, #f8f0e0 0%, #d8c8a8 40%, #b8a888 100%),
              radial-gradient(ellipse at 30% 60%, #ffe8b0 0%, transparent 60%);
}
.scn-street-mercutio-mockery .sun-flare {
  position: absolute; top: 5%; left: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  animation: smm-flare 6s ease-in-out infinite alternate;
}
.scn-street-mercutio-mockery .cobble-stones {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a09070 0%, #7a6a4a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: smm-cobble 30s linear infinite alternate;
}
.scn-street-mercutio-mockery .mercutio-pose {
  position: absolute; bottom: 18%; left: 48%; width: 28px; height: 66px;
  background: #3a2a1a;
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: smm-merc 2s ease-in-out infinite;
}
.scn-street-mercutio-mockery .cat-shadow {
  position: absolute; bottom: 12%; left: 20%; width: 40px; height: 24px;
  background: #2a1a0a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: smm-cat 4s ease-in-out infinite alternate;
}
.scn-street-mercutio-mockery .jest-ring {
  position: absolute; bottom: 32%; left: 34%; width: 16px; height: 16px;
  background: radial-gradient(circle, #c0a070 0%, #8a6a48 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(192,160,112,0.5);
  animation: smm-ring 3s ease-in-out infinite;
}
.scn-street-mercutio-mockery .comic-burst {
  position: absolute; top: 15%; left: 35%; width: 50px; height: 40px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 60%);
  filter: blur(10px);
  animation: smm-burst 5s ease-in-out infinite alternate;
}
.scn-street-mercutio-mockery .mocking-arm {
  position: absolute; bottom: 24%; left: 55%; width: 10px; height: 28px;
  background: #3a2a1a;
  border-radius: 20% 20% 40% 40%;
  transform-origin: bottom left;
  animation: smm-arm 1.5s ease-in-out infinite;
}
@keyframes smm-flare { 0% { transform: scale(1); opacity:0.5 } 50% { transform: scale(1.3); opacity:1 } 100% { transform: scale(0.9); opacity:0.6 } }
@keyframes smm-cobble { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes smm-merc { 0% { transform: translateX(0) rotate(0deg) scaleY(1) } 25% { transform: translateX(8px) rotate(-8deg) scaleY(1.1) } 50% { transform: translateX(16px) rotate(5deg) scaleY(0.9) } 75% { transform: translateX(8px) rotate(-3deg) scaleY(1.05) } 100% { transform: translateX(0) rotate(0deg) scaleY(1) } }
@keyframes smm-cat { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(12px) scale(1.1) rotate(5deg) } 100% { transform: translateX(-4px) scale(0.9) rotate(-3deg) } }
@keyframes smm-ring { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(90deg) translateY(-2px) } 50% { transform: rotate(180deg) translateY(0) } 75% { transform: rotate(270deg) translateY(-1px) } 100% { transform: rotate(360deg) translateY(0) } }
@keyframes smm-burst { 0% { opacity:0.2; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.5) } 100% { opacity:0.3; transform: scale(0.8) } }
@keyframes smm-arm { 0% { transform: rotate(10deg) scaleX(1) } 25% { transform: rotate(-30deg) scaleX(1.2) } 50% { transform: rotate(20deg) scaleX(0.8) } 75% { transform: rotate(-15deg) scaleX(1.1) } 100% { transform: rotate(10deg) scaleX(1) } }

/* item-rose */
.scn-item-rose { background: linear-gradient(180deg, #1a1a3e 0%, #2c2a4e 40%, #3a2a4e 70%, #4a3a5e 100%), radial-gradient(ellipse at 70% 20%, #6a5a7e 0%, transparent 60%); }
.scn-item-rose .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a2a5e 0%, #1a1a3a 100%); animation: ros-sky 12s ease-in-out infinite alternate; }
.scn-item-rose .moon { position:absolute; top:8%; right:15%; width:60px; height:60px; background: radial-gradient(circle, #e8e0c0 0%, #c8c0a0 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(200,200,160,0.3); animation: ros-moon 8s ease-in-out infinite; }
.scn-item-rose .balcony-wall { position:absolute; bottom:35%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); }
.scn-item-rose .rose-stem { position:absolute; bottom:30%; left:50%; width:6px; height:80px; background: linear-gradient(180deg, #4a5a2a 0%, #2a3a1a 100%); border-radius: 3px; transform: translateX(-50%); animation: ros-stem 6s ease-in-out infinite; }
.scn-item-rose .rose-blossom { position:absolute; bottom:57%; left:50%; width:40px; height:40px; transform: translateX(-50%); background: radial-gradient(ellipse at 40% 30%, #c8786a 0%, #a0483a 60%, #702230 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 30px 8px rgba(168,72,58,0.3), 0 0 60px 15px rgba(168,72,58,0.15); animation: ros-bloom 9s ease-in-out infinite; }
.scn-item-rose .leaf { position:absolute; bottom:45%; left:48%; width:20px; height:10px; background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%); border-radius: 60% 20% 40% 40%; transform: rotate(-20deg); animation: ros-leaf 7s ease-in-out infinite; }
.scn-item-rose .shadow-overlay { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,0.3) 100%); pointer-events:none; animation: ros-shadow 14s ease-in-out infinite alternate; }
.scn-item-rose .stars { position:absolute; top:5%; left:10%; width:80%; height:30%; background: radial-gradient(2px 2px at 10% 20%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 30% 60%, #ddd 0%, transparent 100%), radial-gradient(2px 2px at 60% 10%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 80% 40%, #ccc 0%, transparent 100%); animation: ros-stars 20s linear infinite; }
@keyframes ros-sky { 0% { opacity:0.9; background-position:0% 0%; } 50% { opacity:1; background-position:50% 0%; } 100% { opacity:0.85; background-position:100% 0%; } }
@keyframes ros-moon { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.03); opacity:1; } 100% { transform: scale(0.98); opacity:0.92; } }
@keyframes ros-stem { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes ros-bloom { 0% { transform: translateX(-50%) scale(1) rotate(-5deg); } 50% { transform: translateX(-50%) scale(1.05) rotate(5deg); } 100% { transform: translateX(-50%) scale(0.98) rotate(-3deg); } }
@keyframes ros-leaf { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes ros-shadow { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes ros-stars { 0% { opacity:0.7; background-position:0 0; } 100% { opacity:1; background-position:40px 20px; } }

/* balcony-romeo-declares */
.scn-balcony-romeo-declares { background: linear-gradient(180deg, #1a1a3e 0%, #2c2a4e 40%, #3a2a4e 70%, #4a3a5e 100%), radial-gradient(ellipse at 80% 30%, #5a4a6e 0%, transparent 70%); }
.scn-balcony-romeo-declares .night-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a5e 0%, #1a1a3a 100%); animation: dec-sky 15s ease-in-out infinite alternate; }
.scn-balcony-romeo-declares .moon-glow { position:absolute; top:6%; left:70%; width:70px; height:70px; background: radial-gradient(circle, #e8e0c0 0%, #c8c0a0 40%, transparent 75%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(200,200,160,0.25); animation: dec-moon 10s ease-in-out infinite; }
.scn-balcony-romeo-declares .wall-vertical { position:absolute; bottom:20%; left:20%; width:60%; height:60%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 10px 10px 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); }
.scn-balcony-romeo-declares .vine { position:absolute; bottom:20%; left:35%; width:8px; height:55%; background: linear-gradient(180deg, #4a5a2a 0%, #2a3a1a 100%); border-radius: 4px; transform: rotate(10deg); animation: dec-vine 7s ease-in-out infinite; }
.scn-balcony-romeo-declares .figure-climbing { position:absolute; bottom:25%; left:38%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dec-climb 4s ease-in-out infinite; }
.scn-balcony-romeo-declares .balcony-ledge { position:absolute; bottom:60%; left:15%; width:70%; height:8px; background: linear-gradient(90deg, #4a4a5a 0%, #3a3a4a 50%, #4a4a5a 100%); border-radius: 4px; box-shadow: 0 2px 10px rgba(0,0,0,0.3); animation: dec-ledge 6s ease-in-out infinite; }
.scn-balcony-romeo-declares .stars-scattered { position:absolute; top:3%; left:5%; width:90%; height:40%; background: radial-gradient(2px 2px at 15% 25%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 40% 10%, #ddd 0%, transparent 100%), radial-gradient(2px 2px at 65% 35%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 90% 15%, #ccc 0%, transparent 100%); animation: dec-stars 25s linear infinite; }
@keyframes dec-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes dec-moon { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.04); opacity:1; } 100% { transform: scale(0.97); opacity:0.85; } }
@keyframes dec-vine { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes dec-climb { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-8px) rotate(1deg); } 50% { transform: translateY(-15px) rotate(-1deg); } 75% { transform: translateY(-8px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes dec-ledge { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes dec-stars { 0% { opacity:0.6; background-position:0 0; } 100% { opacity:1; background-position:30px 15px; } }

/* balcony-juliet-confesses */
.scn-balcony-juliet-confesses { background: linear-gradient(180deg, #1a1a3e 0%, #2c2a4e 40%, #3a2a4e 70%, #4a3a5e 100%), radial-gradient(ellipse at 50% 100%, #4a3a5e 0%, transparent 80%); }
.scn-balcony-juliet-confesses .sky-night { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a5e 0%, #1a1a3a 100%); animation: con-sky 14s ease-in-out infinite alternate; }
.scn-balcony-juliet-confesses .moonlight-beam { position:absolute; top:10%; left:40%; width:30px; height:100%; background: linear-gradient(180deg, rgba(200,200,160,0.15) 0%, transparent 100%); transform: skewX(-10deg); animation: con-beam 8s ease-in-out infinite; }
.scn-balcony-juliet-confesses .balcony-rail { position:absolute; bottom:35%; left:10%; width:80%; height:15%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,0.4); animation: con-rail 6s ease-in-out infinite; }
.scn-balcony-juliet-confesses .juliet-silhouette { position:absolute; bottom:30%; left:40%; width:40px; 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: con-figure 5s ease-in-out infinite; }
.scn-balcony-juliet-confesses .juliet-arm { position:absolute; bottom:45%; left:43%; width:20px; height:12px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 0 0; transform-origin: right bottom; animation: con-arm 4s ease-in-out infinite; }
.scn-balcony-juliet-confesses .warm-flow { position:absolute; bottom:30%; left:35%; width:60px; height:100px; background: radial-gradient(ellipse at 50% 100%, rgba(200,150,100,0.2) 0%, transparent 70%); animation: con-warm 12s ease-in-out infinite; }
.scn-balcony-juliet-confesses .window-glow { position:absolute; bottom:50%; left:55%; width:30px; height:40px; background: radial-gradient(circle, #c8a06a 0%, transparent 70%); border-radius: 10px; box-shadow: 0 0 40px 20px rgba(200,160,106,0.3); animation: con-glow 3s ease-in-out infinite alternate; }
.scn-balcony-juliet-confesses .drapes { position:absolute; bottom:50%; left:52%; width:40px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 5px 5px 0 0; opacity:0.7; animation: con-drape 9s ease-in-out infinite; }
@keyframes con-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes con-beam { 0% { opacity:0.5; transform: skewX(-10deg) translateX(0); } 50% { opacity:0.8; transform: skewX(-8deg) translateX(5px); } 100% { opacity:0.5; transform: skewX(-10deg) translateX(0); } }
@keyframes con-rail { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes con-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(-5px) rotate(-2deg); } 75% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes con-arm { 0% { transform: rotate(0); } 25% { transform: rotate(15deg); } 50% { transform: rotate(20deg); } 75% { transform: rotate(10deg); } 100% { transform: rotate(0); } }
@keyframes con-warm { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes con-glow { 0% { opacity:0.7; box-shadow: 0 0 30px 10px rgba(200,160,106,0.2); } 100% { opacity:1; box-shadow: 0 0 60px 30px rgba(200,160,106,0.4); } }
@keyframes con-drape { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }

/* balcony-romeo-swear */
.scn-balcony-romeo-swear { background: linear-gradient(180deg, #1a1a3e 0%, #2c2a4e 40%, #3a2a4e 70%, #4a3a5e 100%), radial-gradient(ellipse at 30% 70%, #5a4a6e 0%, transparent 60%); }
.scn-balcony-romeo-swear .deep-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a5e 0%, #1a1a3a 100%); animation: swr-sky 16s ease-in-out infinite alternate; }
.scn-balcony-romeo-swear .moon-circle { position:absolute; top:5%; left:60%; width:80px; height:80px; background: radial-gradient(circle, #f0e8d0 0%, #d0c8a8 50%, transparent 75%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(208,200,168,0.2); animation: swr-moon 10s ease-in-out infinite; }
.scn-balcony-romeo-swear .tree-tops { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: swr-trees 18s ease-in-out infinite; }
.scn-balcony-romeo-swear .balcony-above { position:absolute; bottom:45%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 10px 10px 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,0.4); animation: swr-ledge 7s ease-in-out infinite; }
.scn-balcony-romeo-swear .romeo-figure { position:absolute; bottom:22%; left:45%; width:30px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: swr-figure 5s ease-in-out infinite; }
.scn-balcony-romeo-swear .hand-raised { position:absolute; bottom:38%; left:47%; width:12px; height:16px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: swr-hand 4s ease-in-out infinite; }
.scn-balcony-romeo-swear .cloud-streak { position:absolute; top:18%; left:-10%; width:120%; height:20px; background: linear-gradient(90deg, transparent, rgba(200,200,200,0.08), transparent); filter: blur(8px); animation: swr-cloud 35s linear infinite; }
@keyframes swr-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes swr-moon { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.02) translateX(0); opacity:1; } 100% { transform: scale(0.98) translateX(-3px); opacity:0.85; } }
@keyframes swr-trees { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes swr-ledge { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes swr-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-4px) rotate(1deg); } 50% { transform: translateY(-8px) rotate(-2deg); } 75% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes swr-hand { 0% { transform: rotate(0); } 25% { transform: rotate(20deg); } 50% { transform: rotate(10deg); } 75% { transform: rotate(30deg); } 100% { transform: rotate(0); } }
@keyframes swr-cloud { 0% { transform: translateX(-100px); } 100% { transform: translateX(100vw); } }

.scn-public-place-romeo-arrives {
  background: linear-gradient(180deg, #ffdb9a 0%, #ffe4b5 30%, #c5a058 100%), radial-gradient(ellipse at 30% 20%, #fff3d6 0%, transparent 70%);
}
.scn-public-place-romeo-arrives .sunny-sky {
  position: absolute; inset: 0 0 45% 0;
  background: radial-gradient(ellipse at 60% 20%, #fff7e0 0%, #c7924a 80%);
  animation: pr1-fade 8s ease-in-out infinite alternate;
}
.scn-public-place-romeo-arrives .building-left {
  position: absolute; left: 0; bottom: 30%; width: 35%; height: 65%;
  background: linear-gradient(180deg, #8b6b3a 0%, #5a4422 100%);
  border-radius: 0 8% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: pr1-breathe 12s ease-in-out infinite;
}
.scn-public-place-romeo-arrives .building-right {
  position: absolute; right: 0; bottom: 30%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #7a5c30 0%, #4a351a 100%);
  border-radius: 8% 0 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: pr1-breathe 14s ease-in-out infinite reverse;
}
.scn-public-place-romeo-arrives .archway {
  position: absolute; left: 50%; bottom: 40%; width: 120px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #c9ad7a 0%, #73552a 80%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: pr1-arch 10s ease-in-out infinite;
}
.scn-public-place-romeo-arrives .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b28a4a 0%, #8b6b30 100%);
  border-top: 4px solid #5a4420;
  animation: pr1-ground 6s ease-in-out infinite alternate;
}
.scn-public-place-romeo-arrives .romeo-figure {
  position: absolute; bottom: 20%; left: 20%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pr1-walk 4s ease-in-out infinite, pr1-fadein 2s ease-out;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
}
.scn-public-place-romeo-arrives .shadow-sharp {
  position: absolute; bottom: 18%; left: 18%; width: 30px; height: 4px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  animation: pr1-shadow 4s ease-in-out infinite;
}
@keyframes pr1-fade { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pr1-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes pr1-arch { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.02); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes pr1-ground { 0% { background-position: 0% 0%; } 100% { background-position: 0% 5%; } }
@keyframes pr1-walk { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(2deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes pr1-fadein { 0% { opacity: 0; } 100% { opacity: 1; } }
@keyframes pr1-shadow { 0% { transform: scaleX(0.8); opacity: 0.3; } 50% { transform: scaleX(1.2); opacity: 0.5; } 100% { transform: scaleX(0.8); opacity: 0.3; } }

.scn-public-place-tybalt-insults {
  background: linear-gradient(180deg, #fce8b0 0%, #e0c080 40%, #b58a3a 100%), radial-gradient(ellipse at 70% 30%, #fff5d0 0%, transparent 70%);
}
.scn-public-place-tybalt-insults .sunny-sky {
  position: absolute; inset: 0 0 40% 0;
  background: radial-gradient(ellipse at 40% 10%, #fff3cc 0%, #d6b060 90%);
  animation: pti-fade 7s ease-in-out infinite alternate;
}
.scn-public-place-tybalt-insults .colonnade {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 50%;
  background: repeating-linear-gradient(90deg, #7a5a2e 0px, #7a5a2e 20px, transparent 20px, transparent 40px);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: pti-colonnade 12s ease-in-out infinite;
}
.scn-public-place-tybalt-insults .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b0883a 0%, #8b6828 100%);
  border-top: 3px solid #6a4e1e;
}
.scn-public-place-tybalt-insults .tybalt-figure {
  position: absolute; bottom: 15%; right: 30%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #1e1e34 0%, #0e0e1e 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: pti-figures 3s ease-in-out infinite, pti-sway 8s ease-in-out infinite;
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
}
.scn-public-place-tybalt-insults .romeo-figure {
  position: absolute; bottom: 15%; left: 30%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%;
  transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: pti-figures 3s ease-in-out infinite reverse, pti-sway 8s ease-in-out infinite reverse;
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
}
.scn-public-place-tybalt-insults .shadow-sharp {
  position: absolute; bottom: 12%; left: 28%; width: 50px; height: 6px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  animation: pti-shadow-shift 3s ease-in-out infinite;
}
.scn-public-place-tybalt-insults .dust-particles {
  position: absolute; bottom: 40%; left: 10%; width: 100%; height: 20%;
  background: radial-gradient(circle at 20% 30%, rgba(255,240,180,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: pti-dust 10s ease-in-out infinite;
}
@keyframes pti-fade { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pti-colonnade { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pti-figures { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes pti-sway { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-2px); } }
@keyframes pti-shadow-shift { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.3); } 100% { transform: scaleX(0.9); } }
@keyframes pti-dust { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.2; } }

.scn-public-place-mercutio-draws {
  background: linear-gradient(180deg, #fce8b0 0%, #e0c080 40%, #b58a3a 100%), radial-gradient(ellipse at 30% 40%, #fff5d0 0%, transparent 70%);
}
.scn-public-place-mercutio-draws .sunny-sky {
  position: absolute; inset: 0 0 40% 0;
  background: radial-gradient(ellipse at 50% 0, #fff3cc 0%, #d6b060 90%);
  animation: pmd-fade 6s ease-in-out infinite alternate;
}
.scn-public-place-mercutio-draws .wall-back {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #8b6b30 0%, #5a441a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-public-place-mercutio-draws .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b0883a 0%, #8b6828 100%);
  border-top: 4px solid #6a4e1e;
}
.scn-public-place-mercutio-draws .mercutio-figure {
  position: absolute; bottom: 10%; left: 30%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #1e1e34 0%, #0e0e1e 100%);
  border-radius: 50% 45% 45% 50% / 60% 50% 50% 60%;
  transform: rotate(-20deg) scaleX(-1);
  transform-origin: bottom center;
  animation: pmd-draw 2s ease-in-out infinite, pmd-sway 4s ease-in-out infinite;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
}
.scn-public-place-mercutio-draws .tybalt-figure {
  position: absolute; bottom: 10%; right: 25%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: pmd-stand 3s ease-in-out infinite, pmd-sway 5s ease-in-out infinite reverse;
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
}
.scn-public-place-mercutio-draws .romeo-figure {
  position: absolute; bottom: 10%; left: 10%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #18182c 0%, #080818 100%);
  border-radius: 45% 50% 50% 45% / 55% 55% 45% 45%;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: pmd-back 4s ease-in-out infinite;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
}
.scn-public-place-mercutio-draws .sword-flash {
  position: absolute; bottom: 45%; left: 38%; width: 40px; height: 4px;
  background: linear-gradient(90deg, transparent, #fff7d0 50%, transparent);
  border-radius: 2px;
  filter: blur(1px);
  animation: pmd-flash 0.8s ease-in-out infinite;
  transform: rotate(30deg) translateX(20px);
}
@keyframes pmd-fade { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pmd-draw { 0% { transform: rotate(-15deg) scaleX(-1) translateY(0); } 50% { transform: rotate(-30deg) scaleX(-1) translateY(-3px); } 100% { transform: rotate(-15deg) scaleX(-1) translateY(0); } }
@keyframes pmd-stand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes pmd-back { 0% { transform: rotate(5deg) translateY(0); } 30% { transform: rotate(8deg) translateY(-1px); } 70% { transform: rotate(3deg) translateY(1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes pmd-sway { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(-2px); } }
@keyframes pmd-flash { 0% { opacity: 0; } 30% { opacity: 1; } 70% { opacity: 1; } 100% { opacity: 0; } }

.scn-public-place-mercutio-wounded {
  background: linear-gradient(180deg, #b59a5a 0%, #8b6b30 40%, #5a4420 100%), radial-gradient(ellipse at 50% 50%, #ea7 0%, transparent 70%);
}
.scn-public-place-mercutio-wounded .dusk-sky {
  position: absolute; inset: 0 0 45% 0;
  background: radial-gradient(ellipse at 50% 20%, #d4b86a 0%, #7a5a2a 90%);
  animation: pmw-fade 12s ease-in-out infinite alternate;
}
.scn-public-place-mercutio-wounded .wall-back {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a4e20 0%, #3a2a12 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-public-place-mercutio-wounded .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a4e20 0%, #4a3a18 100%);
  border-top: 3px solid #2a1e0a;
}
.scn-public-place-mercutio-wounded .mercutio-fallen {
  position: absolute; bottom: 5%; left: 30%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #1e1e34 0%, #0e0e1e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(80deg);
  transform-origin: left bottom;
  animation: pmw-fall 8s ease-in-out infinite, pmw-breathe 4s ease-in-out infinite;
  box-shadow: 0 0 6px rgba(0,0,0,0.5);
}
.scn-public-place-mercutio-wounded .romeo-kneeling {
  position: absolute; bottom: 8%; left: 20%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%;
  transform: rotate(10deg) scaleY(0.6);
  transform-origin: bottom center;
  animation: pmw-kneel 6s ease-in-out infinite;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
}
.scn-public-place-mercutio-wounded .blood-stain {
  position: absolute; bottom: 0%; left: 32%; width: 20px; height: 6px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #5e1a1d 50%, transparent 70%);
  border-radius: 50%;
  animation: pmw-spread 10s ease-in-out infinite;
  box-shadow: 0 0 4px #3a0e10;
}
.scn-public-place-mercutio-wounded .shadow-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: pmw-shadow 15s ease-in-out infinite alternate;
}
@keyframes pmw-fade { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes pmw-fall { 0% { transform: rotate(80deg) translateY(0); } 50% { transform: rotate(85deg) translateY(-2px); } 100% { transform: rotate(80deg) translateY(0); } }
@keyframes pmw-breathe { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes pmw-kneel { 0% { transform: rotate(10deg) scaleY(0.6) translateY(0); } 50% { transform: rotate(12deg) scaleY(0.65) translateY(-2px); } 100% { transform: rotate(10deg) scaleY(0.6) translateY(0); } }
@keyframes pmw-spread { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.3) scaleY(1.1); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes pmw-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

.scn-churchyard-paris-flowers {
  background: linear-gradient(180deg, #0B0D2E 0%, #1B1D4E 40%, #2A2F5A 100%),
              radial-gradient(ellipse at 50% 30%, #3A4F7A 0%, transparent 60%);
}
.scn-churchyard-paris-flowers .moon {
  position: absolute; top: 8%; left: 65%; width: 60px; height: 60px;
  background: radial-gradient(circle at 40% 30%, #E8E8F0 0%, #C0C8E0 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 80px 20px rgba(192,200,224,0.3);
  animation: cpf-moon 30s ease-in-out infinite alternate;
}
.scn-churchyard-paris-flowers .yew-tree {
  position: absolute; bottom: 20%; left: 10%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 30%, #1A2A1A 0%, #0A1A0A 80%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: scaleX(0.8); filter: blur(2px);
  animation: cpf-yew 20s ease-in-out infinite;
}
.scn-churchyard-paris-flowers .tomb {
  position: absolute; bottom: 15%; left: 35%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #5A5A6A 0%, #3A3A4A 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.6);
  animation: cpf-tomb 12s ease-in-out infinite alternate;
}
.scn-churchyard-paris-flowers .figure {
  position: absolute; bottom: 22%; left: 48%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1A1A2A 0%, #0A0A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: cpf-figure 8s ease-in-out infinite;
}
.scn-churchyard-paris-flowers .flowers {
  position: absolute; bottom: 25%; left: 40%; width: 20px; height: 20px;
  background: radial-gradient(circle, #C8A0B0 0%, #90607A 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 10px 3px rgba(200,160,176,0.4);
  animation: cpf-flowers 6s ease-in-out infinite alternate;
}
.scn-churchyard-paris-flowers .torch {
  position: absolute; bottom: 20%; left: 55%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #6B4A2A 0%, #3A2A1A 100%);
  border-radius: 20% 20% 10% 10%;
  animation: cpf-torch 4s ease-in-out infinite;
}
.scn-churchyard-paris-flowers .torch-glow {
  position: absolute; bottom: 40%; left: 54%; width: 20px; height: 30px;
  background: radial-gradient(ellipse, #E8B860 0%, #B07830 50%, transparent 80%);
  border-radius: 50%; filter: blur(4px);
  animation: cpf-glow 3s ease-in-out infinite alternate;
}
@keyframes cpf-moon { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(0.98); } }
@keyframes cpf-yew { 0% { transform: scaleX(0.8) translateY(0); } 50% { transform: scaleX(0.82) translateY(-3px); } 100% { transform: scaleX(0.78) translateY(2px); } }
@keyframes cpf-tomb { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes cpf-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(1px) rotate(1deg); } }
@keyframes cpf-flowers { 0% { transform: scale(0.9); opacity:0.7; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes cpf-torch { 0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes cpf-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:0.7; transform: scale(0.9); } }

.scn-churchyard-paris-ritual {
  background: linear-gradient(180deg, #080810 0%, #101018 30%, #18182A 100%),
              radial-gradient(ellipse at 30% 20%, #20203A 0%, transparent 70%);
}
.scn-churchyard-paris-ritual .yew-tree-a {
  position: absolute; bottom: 5%; left: 5%; width: 100px; height: 160px;
  background: radial-gradient(ellipse at 50% 40%, #0A1A0A 0%, #020802 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%;
  filter: blur(3px);
  animation: cpr-yew-a 40s ease-in-out infinite;
}
.scn-churchyard-paris-ritual .yew-tree-b {
  position: absolute; bottom: 10%; right: 8%; width: 80px; height: 130px;
  background: radial-gradient(ellipse at 50% 40%, #0A1A0A 0%, #020802 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%;
  filter: blur(2px); transform: scaleX(1.2);
  animation: cpr-yew-b 50s ease-in-out infinite;
}
.scn-churchyard-paris-ritual .figure-prone {
  position: absolute; bottom: 8%; left: 30%; width: 40px; height: 18px;
  background: linear-gradient(180deg, #1A1A2A 0%, #0A0A1A 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: cpr-prone 10s ease-in-out infinite alternate;
}
.scn-churchyard-paris-ritual .grave-mound {
  position: absolute; bottom: 2%; left: 45%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #2A2A3A 0%, #0A0A10 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
}
.scn-churchyard-paris-ritual .church-wall {
  position: absolute; bottom: 10%; right: 20%; width: 80px; height: 200px;
  background: linear-gradient(180deg, #1A1A2A 0%, #0A0A1A 100%);
  border-radius: 5% 5% 0 0;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}
.scn-churchyard-paris-ritual .hollow-ground {
  position: absolute; bottom: 0; left: 50%; width: 100px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, #020208 0%, #000000 100%);
  border-radius: 50% 50% 0 0;
}
.scn-churchyard-paris-ritual .star {
  position: absolute; top: 10%; left: 20%; width: 4px; height: 4px;
  background: #E0E0F0;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(224,224,240,0.3);
  animation: cpr-star 15s ease-in-out infinite alternate;
}
@keyframes cpr-yew-a { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(2px); } }
@keyframes cpr-yew-b { 0% { transform: scaleX(1.2) translateY(0); } 50% { transform: scaleX(1.15) translateY(-3px); } 100% { transform: scaleX(1.25) translateY(4px); } }
@keyframes cpr-prone { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(1px); } }
@keyframes cpr-star { 0% { opacity:0.3; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

.scn-item-flowers {
  background: linear-gradient(180deg, #0A0A14 0%, #14141E 40%, #1E1E2E 100%),
              radial-gradient(ellipse at 40% 60%, #2A2A3A 0%, transparent 70%);
}
.scn-item-flowers .tomb-wide {
  position: absolute; bottom: 10%; left: 20%; width: 180px; height: 80px;
  background: linear-gradient(180deg, #4A4A5A 0%, #2A2A3A 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: inset 0 -12px 20px rgba(0,0,0,0.7);
}
.scn-item-flowers .flowers-a {
  position: absolute; bottom: 20%; left: 25%; width: 14px; height: 14px;
  background: radial-gradient(circle, #A08090 0%, #705060 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 6px 1px rgba(160,128,144,0.3);
  animation: if-flowers-a 7s ease-in-out infinite alternate;
}
.scn-item-flowers .flowers-b {
  position: absolute; bottom: 22%; left: 35%; width: 12px; height: 12px;
  background: radial-gradient(circle, #B090A0 0%, #806070 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 6px 1px rgba(176,144,160,0.3);
  animation: if-flowers-b 7s ease-in-out infinite alternate 0.5s;
}
.scn-item-flowers .figure-paris {
  position: absolute; bottom: 15%; left: 50%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #1A1A2A 0%, #0A0A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: if-figure 12s ease-in-out infinite;
}
.scn-item-flowers .tear-drop {
  position: absolute; bottom: 35%; left: 52%; width: 8px; height: 12px;
  background: radial-gradient(ellipse at 50% 30%, #A0B8D0 0%, #607890 80%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  animation: if-tear 8s ease-in-out infinite;
}
.scn-item-flowers .dew-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(30,30,46,0) 0%, #0A0A14 100%);
}
@keyframes if-flowers-a { 0% { transform: scale(0.9) translateY(0); opacity:0.7; } 50% { transform: scale(1.2) translateY(-2px); opacity:1; } 100% { transform: scale(1) translateY(1px); opacity:0.8; } }
@keyframes if-flowers-b { 0% { transform: scale(0.8) translateY(0); opacity:0.6; } 50% { transform: scale(1.1) translateY(-3px); opacity:0.9; } 100% { transform: scale(0.9) translateY(2px); opacity:0.7; } }
@keyframes if-figure { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-2px) rotate(-2deg); } 60% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes if-tear { 0% { transform: translateY(0) scaleY(1); opacity:0.5; } 30% { transform: translateY(4px) scaleY(1.2); opacity:0.8; } 60% { transform: translateY(2px) scaleY(0.9); opacity:0.6; } 100% { transform: translateY(0) scaleY(1); opacity:0.5; } }

.scn-romeo-enters-churchyard {
  background: linear-gradient(180deg, #2A1A0A 0%, #3A2A1A 30%, #1A0E06 100%),
              radial-gradient(ellipse at 60% 40%, #6B3A1A 0%, transparent 70%);
}
.scn-romeo-enters-churchyard .torch-large {
  position: absolute; bottom: 10%; left: 25%; width: 10px; height: 70px;
  background: linear-gradient(180deg, #7A4A2A 0%, #3A2A1A 100%);
  border-radius: 15% 15% 8% 8%;
  animation: rec-torch 3s ease-in-out infinite;
}
.scn-romeo-enters-churchyard .torch-flame {
  position: absolute; bottom: 50%; left: 24%; width: 25px; height: 35px;
  background: radial-gradient(ellipse at 50% 70%, #E8A040 0%, #C07020 50%, #8A4010 80%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: rec-flame 1.5s ease-in-out infinite alternate;
}
.scn-romeo-enters-churchyard .figure-romeo {
  position: absolute; bottom: 12%; left: 30%; width: 32px; 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: rec-walk 5s ease-in-out infinite;
}
.scn-romeo-enters-churchyard .figure-balthasar {
  position: absolute; bottom: 12%; left: 45%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #1A1A2A 0%, #0A0A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: rec-walk 5s ease-in-out infinite 0.3s;
}
.scn-romeo-enters-churchyard .tomb-cracked {
  position: absolute; bottom: 8%; right: 15%; width: 90px; height: 50px;
  background: linear-gradient(180deg, #5A4A3A 0%, #3A2A1A 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -6px 10px rgba(0,0,0,0.5);
}
.scn-romeo-enters-churchyard .church-wall-mossy {
  position: absolute; bottom: 0; left: 60%; width: 100px; height: 300px;
  background: linear-gradient(180deg, #2A2A1A 0%, #1A1A0A 100%);
  border-radius: 5% 5% 0 0;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}
.scn-romeo-enters-churchyard .mattock {
  position: absolute; bottom: 15%; left: 38%; width: 8px; height: 35px;
  background: linear-gradient(180deg, #6A5A3A 0%, #3A2A1A 100%);
  border-radius: 5% 5% 20% 20%;
  transform: rotate(-20deg);
  animation: rec-mattock 6s ease-in-out infinite;
}
@keyframes rec-torch { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes rec-flame { 0% { transform: scaleY(0.8) scaleX(0.9); opacity:0.8; } 50% { transform: scaleY(1.3) scaleX(1.1); opacity:1; } 100% { transform: scaleY(0.9) scaleX(0.95); opacity:0.7; } }
@keyframes rec-walk { 0% { transform: translateX(0) rotate(0); } 20% { transform: translateX(3px) rotate(2deg); } 40% { transform: translateX(-2px) rotate(-1deg); } 60% { transform: translateX(4px) rotate(1deg); } 80% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rec-mattock { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-2px); } 100% { transform: rotate(-22deg) translateY(1px); } }

.scn-cell-nurse-finds-romeo {
  background:
    linear-gradient(180deg, #0a0a14 0%, #1a1428 40%, #2a1e38 70%, #1a1018 100%),
    radial-gradient(ellipse at 30% 40%, #2a1e38 0%, transparent 60%),
    radial-gradient(ellipse at 70% 20%, #1a1428 0%, transparent 50%);
}
.scn-cell-nurse-finds-romeo .wall-back { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #1a1428 0%, #2a1e38 50%, #1a1018 100%); }
.scn-cell-nurse-finds-romeo .wall-side { position:absolute; left:0; top:0; bottom:35%; width:25%; background: linear-gradient(90deg, #0a0a14 0%, #1a1428 50%, transparent 100%); }
.scn-cell-nurse-finds-romeo .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1e38 0%, #1a1018 50%, #0e0a12 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; }
.scn-cell-nurse-finds-romeo .window-light { position:absolute; top:12%; right:18%; width:40px; height:60px; background: radial-gradient(ellipse at center, rgba(200,180,220,0.15) 0%, rgba(200,180,220,0.05) 40%, transparent 70%); border-radius: 8% 8% 4% 4%; box-shadow: 0 0 60px 20px rgba(200,180,220,0.08), 0 0 120px 40px rgba(100,80,120,0.1); animation: cnf-light 8s ease-in-out infinite alternate; }
.scn-cell-nurse-finds-romeo .shadow-arch { position:absolute; top:0; left:15%; right:15%; bottom:35%; background: radial-gradient(ellipse at 50% 0%, transparent 0%, rgba(0,0,0,0.4) 60%, rgba(0,0,0,0.6) 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; }
.scn-cell-nurse-finds-romeo .figure-romeo { position:absolute; bottom:22%; left:35%; width:50px; height:34px; background: linear-gradient(180deg, #2a1e30 0%, #1a1020 60%, #0e0812 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: center bottom; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5); animation: cnf-romeo 6s ease-in-out infinite; }
.scn-cell-nurse-finds-romeo .hand-nurse { position:absolute; bottom:28%; right:28%; width:14px; height:20px; background: linear-gradient(180deg, #3a2a3e 0%, #2a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(20deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: cnf-hand 4s ease-in-out infinite alternate; }
.scn-cell-nurse-finds-romeo .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 20% 30%, rgba(220,200,240,0.02) 0%, transparent 50%), radial-gradient(circle at 60% 20%, rgba(220,200,240,0.01) 0%, transparent 40%); animation: cnf-dust 20s linear infinite; pointer-events: none; }
@keyframes cnf-light { 0% { opacity:0.4; transform: scale(0.95); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.5; transform: scale(0.98); } }
@keyframes cnf-romeo { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-2px) translateY(1px) rotate(-2deg); } 50% { transform: translateX(0) translateY(-1px) rotate(1deg); } 75% { transform: translateX(2px) translateY(1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes cnf-hand { 0% { transform: rotate(15deg) translateX(0); opacity:0.6; } 50% { transform: rotate(25deg) translateX(-3px); opacity:1; } 100% { transform: rotate(18deg) translateX(0); opacity:0.7; } }
@keyframes cnf-dust { 0% { background-position: 0 0, 0 0; opacity:0.3; } 50% { background-position: 30px 20px, -20px 10px; opacity:0.6; } 100% { background-position: 60px 40px, -40px 20px; opacity:0.3; } }

.scn-friar-cell-rebuke {
  background:
    linear-gradient(180deg, #1e1a26 0%, #2a2438 35%, #3a304a 65%, #2a2030 100%),
    radial-gradient(ellipse at 50% 20%, #3a304a 0%, transparent 60%),
    radial-gradient(ellipse at 80% 60%, #1e1a26 0%, transparent 50%);
}
.scn-friar-cell-rebuke .wall-cell { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2438 0%, #3a304a 40%, #2a2030 100%); }
.scn-friar-cell-rebuke .floor-planks { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a304a 0%, #2a2030 60%, #1a1420 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-friar-cell-rebuke .friar-standing { position:absolute; bottom:20%; left:58%; width:32px; height:70px; background: linear-gradient(180deg, #4a3a48 0%, #3a2a38 50%, #2a1a28 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: -2px 0 8px rgba(0,0,0,0.4); animation: fcr-friar 5s ease-in-out infinite alternate; }
.scn-friar-cell-rebuke .romeo-kneeling { position:absolute; bottom:18%; left:36%; width:40px; height:46px; background: linear-gradient(180deg, #2a1e30 0%, #1a1020 60%, #0e0812 100%); border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%; transform-origin: center bottom; animation: fcr-romeo 4s ease-in-out infinite; }
.scn-friar-cell-rebuke .friar-arm { position:absolute; bottom:42%; left:60%; width:8px; height:36px; background: linear-gradient(180deg, #4a3a48 0%, #3a2a38 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; transform: rotate(-30deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: fcr-arm 3s ease-in-out infinite alternate; }
.scn-friar-cell-rebuke .candle-glow { position:absolute; bottom:35%; left:22%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 80%, #ffc870 0%, #b08030 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(200,160,80,0.3), 0 0 80px 30px rgba(200,160,80,0.1); animation: fcr-candle 2s ease-in-out infinite alternate; }
.scn-friar-cell-rebuke .crucifix-shadow { position:absolute; top:8%; left:50%; width:30px; height:50px; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); border-radius: 4px; transform: translateX(-50%); box-shadow: 0 0 20px 5px rgba(0,0,0,0.2); }
.scn-friar-cell-rebuke .prayer-desk { position:absolute; bottom:20%; left:44%; width:40px; height:18px; background: linear-gradient(180deg, #4a3a30 0%, #3a2a20 100%); border-radius: 6% 6% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
@keyframes fcr-friar { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fcr-romeo { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(-3px) translateY(1px) rotate(-3deg); } 60% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes fcr-arm { 0% { transform: rotate(-35deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-2px); } 100% { transform: rotate(-30deg) translateY(0); } }
@keyframes fcr-candle { 0% { transform: scale(0.95); opacity:0.7; box-shadow: 0 0 30px 10px rgba(200,160,80,0.2); } 50% { transform: scale(1.08); opacity:1; box-shadow: 0 0 50px 20px rgba(200,160,80,0.4); } 100% { transform: scale(1); opacity:0.85; box-shadow: 0 0 35px 12px rgba(200,160,80,0.25); } }

.scn-friar-cell-nurse-report {
  background:
    linear-gradient(180deg, #1e1a24 0%, #2a2638 30%, #38304a 60%, #2a2030 100%),
    radial-gradient(ellipse at 40% 25%, #38304a 0%, transparent 55%),
    radial-gradient(ellipse at 70% 70%, #1e1a24 0%, transparent 40%);
}
.scn-friar-cell-nurse-report .wall-stone { position:absolute; inset:0 0 32% 0; background: linear-gradient(180deg, #2a2638 0%, #38304a 50%, #2a2030 100%); }
.scn-friar-cell-nurse-report .floor-slate { position:absolute; bottom:0; left:0; right:0; height:32%; background: linear-gradient(180deg, #38304a 0%, #2a2030 50%, #1a1420 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-friar-cell-nurse-report .nurse-figure { position:absolute; bottom:28%; left:32%; width:40px; height:56px; background: linear-gradient(180deg, #5a4a48 0%, #4a3a38 50%, #3a2a28 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 2px 0 8px rgba(0,0,0,0.4); animation: fcn-nurse 6s ease-in-out infinite alternate; }
.scn-friar-cell-nurse-report .friar-listening { position:absolute; bottom:22%; left:55%; width:30px; height:64px; background: linear-gradient(180deg, #4a3a48 0%, #3a2a38 50%, #2a1a28 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: -2px 0 6px rgba(0,0,0,0.3); animation: fcn-friar 5s ease-in-out infinite; }
.scn-friar-cell-nurse-report .nurse-cloak { position:absolute; bottom:30%; left:30%; width:52px; height:30px; background: radial-gradient(ellipse at 50% 100%, #4a3a38 0%, #5a4a48 50%, transparent 100%); border-radius: 50% 50% 30% 30% / 100% 100% 40% 40%; transform: rotate(-5deg); }
.scn-friar-cell-nurse-report .lantern-light { position:absolute; bottom:36%; left:44%; width:16px; height:22px; background: radial-gradient(ellipse at 50% 60%, #ffd090 0%, #c09050 30%, transparent 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 50px 15px rgba(200,160,100,0.25), 0 0 100px 30px rgba(200,160,100,0.08); animation: fcn-lantern 3s ease-in-out infinite alternate; }
.scn-friar-cell-nurse-report .archway { position:absolute; top:0; left:20%; right:20%; bottom:32%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 60%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; }
.scn-friar-cell-nurse-report .desk-scroll { position:absolute; bottom:25%; left:50%; width:28px; height:8px; background: linear-gradient(180deg, #6a5a48 0%, #5a4a38 100%); border-radius: 20% 20% 10% 10%; transform: translateX(-50%) rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: fcn-scroll 8s ease-in-out infinite; }
@keyframes fcn-nurse { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-1px) rotate(0deg); } }
@keyframes fcn-friar { 0% { transform: translateY(0) rotate(1deg); } 30% { transform: translateY(-1px) rotate(-1deg); } 60% { transform: translateY(1px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes fcn-lantern { 0% { transform: translateY(0) scale(0.95); opacity:0.7; box-shadow: 0 0 30px 10px rgba(200,160,100,0.15); } 50% { transform: translateY(-2px) scale(1.05); opacity:1; box-shadow: 0 0 60px 20px rgba(200,160,100,0.35); } 100% { transform: translateY(1px) scale(0.98); opacity:0.8; box-shadow: 0 0 40px 12px rgba(200,160,100,0.2); } }
@keyframes fcn-scroll { 0%,100% { transform: translateX(-50%) rotate(-10deg); } 50% { transform: translateX(-50%) rotate(-6deg) translateY(-1px); } }

.scn-friar-cell-romeo-despair {
  background:
    linear-gradient(180deg, #0e0a14 0%, #1a1428 30%, #2a1e3a 55%, #1a0e18 100%),
    radial-gradient(ellipse at 50% 15%, #2a1e3a 0%, transparent 50%),
    radial-gradient(ellipse at 30% 80%, #1a0e18 0%, transparent 40%);
}
.scn-friar-cell-romeo-despair .wall-cell-dark { position:absolute; inset:0 0 32% 0; background: linear-gradient(180deg, #1a1428 0%, #2a1e3a 40%, #1a0e18 100%); }
.scn-friar-cell-romeo-despair .floor-dark { position:absolute; bottom:0; left:0; right:0; height:32%; background: linear-gradient(180deg, #2a1e3a 0%, #1a0e18 50%, #0a0610 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-friar-cell-romeo-despair .romeo-figure { position:absolute; bottom:22%; left:40%; width:44px; height:62px; background: linear-gradient(180deg, #2a1e30 0%, #1a1020 50%, #0e0812 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fcd-romeo 3s ease-in-out infinite; }
.scn-friar-cell-romeo-despair .sword-blade { position:absolute; bottom:48%; left:48%; width:4px; height:44px; background: linear-gradient(180deg, #6a6a7a 0%, #8a8a9a 30%, #6a6a7a 60%, #4a4a5a 100%); border-radius: 1px 1px 10% 10%; transform-origin: bottom center; transform: rotate(25deg); box-shadow: 0 0 6px 2px rgba(150,150,180,0.15), inset 0 0 4px rgba(200,200,220,0.1); animation: fcd-sword 1.5s ease-in-out infinite alternate; }
.scn-friar-cell-romeo-despair .friar-restraining { position:absolute; bottom:26%; left:52%; width:30px; height:60px; background: linear-gradient(180deg, #4a3a48 0%, #3a2a38 50%, #2a1a28 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; transform: rotate(8deg); animation: fcd-friar 2s ease-in-out infinite alternate; }
.scn-friar-cell-romeo-despair .torch-flicker { position:absolute; bottom:38%; left:18%; width:18px; height:28px; background: radial-gradient(ellipse at 50% 70%, #ffa040 0%, #b06020 30%, #4a2010 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(200,120,50,0.25), 0 0 100px 40px rgba(200,120,50,0.1), 0 0 160px 60px rgba(200,80,30,0.05); animation: fcd-torch 0.8s ease-in-out infinite alternate; }
.scn-friar-cell-romeo-despair .pillar { position:absolute; top:0; left:72%; width:24px; bottom:32%; background: linear-gradient(180deg, #2a2438 0%, #3a2e48 30%, #2a2034 70%, #1a1420 100%); border-radius: 6% 6% 4% 4%; box-shadow: 2px 0 8px rgba(0,0,0,0.3), -2px 0 4px rgba(0,0,0,0.2); }
.scn-friar-cell-romeo-despair .shadow-bars { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 20px, rgba(0,0,0,0.25) 20px, rgba(0,0,0,0.25) 22px), repeating-linear-gradient(90deg, transparent, transparent 30px, rgba(0,0,0,0.15) 30px, rgba(0,0,0,0.15) 32px); pointer-events: none; animation: fcd-bars 12s linear infinite; }
.scn-friar-cell-romeo-despair .sparks { position:absolute; inset:0; background: radial-gradient(circle at 18% 40%, rgba(200,120,50,0.2) 0%, transparent 30%), radial-gradient(circle at 22% 46%, rgba(200,120,50,0.1) 0%, transparent 20%); animation: fcd-sparks 1.2s ease-in-out infinite alternate; pointer-events: none; }
@keyframes fcd-romeo { 0% { transform: translateX(0) rotate(0deg) scale(1); } 25% { transform: translateX(-3px) rotate(-3deg) scale(0.98); } 50% { transform: translateX(0) rotate(1deg) scale(1); } 75% { transform: translateX(3px) rotate(2deg) scale(0.99); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes fcd-sword { 0% { transform: rotate(20deg) scaleY(1); opacity:0.8; } 50% { transform: rotate(30deg) scaleY(1.02); opacity:1; } 100% { transform: rotate(25deg) scaleY(0.98); opacity:0.9; } }
@keyframes fcd-friar { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(10deg) translateX(2px); } 100% { transform: rotate(6deg) translateX(-1px); } }
@keyframes fcd-torch { 0% { transform: scale(0.9) translateY(0); opacity:0.7; box-shadow: 0 0 40px 15px rgba(200,120,50,0.15); } 50% { transform: scale(1.1) translateY(-2px); opacity:1; box-shadow: 0 0 70px 25px rgba(200,120,50,0.35); } 100% { transform: scale(0.95) translateY(1px); opacity:0.8; box-shadow: 0 0 50px 18px rgba(200,120,50,0.2); } }
@keyframes fcd-bars { 0% { background-position: 0 0; } 100% { background-position: 0 30px; } }
@keyframes fcd-sparks { 0% { opacity:0.3; transform: translateY(0); } 50% { opacity:0.8; transform: translateY(-4px); } 100% { opacity:0.4; transform: translateY(2px); } }

/* Scene 1: orchard-nurse-praises-romeo */
.scn-orchard-nurse-praises-romeo {
  background:
    linear-gradient(180deg, #f5d79e 0%, #e6b86e 40%, #c48a45 100%),
    radial-gradient(ellipse at 30% 80%, #f5e6b0 0%, transparent 60%);
}
.scn-orchard-nurse-praises-romeo .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0cd8a 0%, #e8bb6a 100%);
  animation: onp-sky 14s ease-in-out infinite alternate;
}
.scn-orchard-nurse-praises-romeo .sun {
  position: absolute; top: 10%; left: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #f5d060 60%, transparent 80%);
  border-radius: 50%;
  animation: onp-sun 8s ease-in-out infinite;
}
.scn-orchard-nurse-praises-romeo .tree {
  position: absolute; bottom: 20%; left: 10%; width: 120px; height: 180px;
  background: linear-gradient(90deg, #5a3e1a 0%, #7a5630 40%, #5a3e1a 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(-5deg);
  animation: onp-tree 20s ease-in-out infinite alternate;
}
.scn-orchard-nurse-praises-romeo .branch {
  position: absolute; bottom: 50%; left: 18%; width: 80px; height: 12px;
  background: linear-gradient(90deg, #5a3e1a 0%, #6a4a2a 100%);
  border-radius: 50%;
  transform: rotate(25deg);
  animation: onp-branch 12s ease-in-out infinite;
}
.scn-orchard-nurse-praises-romeo .figure {
  position: absolute; bottom: 10%; left: 50%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20%;
  transform: translateX(-60%);
  animation: onp-fig 5s ease-in-out infinite;
}
.scn-orchard-nurse-praises-romeo .arm {
  position: absolute; bottom: 35%; left: 46%; width: 40px; height: 8px;
  background: #2a1a0a;
  border-radius: 50%;
  transform-origin: right center;
  transform: rotate(-30deg);
  animation: onp-arm 3s ease-in-out infinite alternate;
}
@keyframes onp-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes onp-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes onp-tree { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-2px) } 100% { transform: rotate(-6deg) translateY(0) } }
@keyframes onp-branch { 0% { transform: rotate(25deg) } 50% { transform: rotate(27deg) } 100% { transform: rotate(23deg) } }
@keyframes onp-fig { 0% { transform: translateX(-60%) translateY(0) } 50% { transform: translateX(-58%) translateY(-3px) } 100% { transform: translateX(-62%) translateY(0) } }
@keyframes onp-arm { 0% { transform: rotate(-30deg) } 100% { transform: rotate(-20deg) } }

/* Scene 2: orchard-nurse-complains */
.scn-orchard-nurse-complains {
  background:
    linear-gradient(180deg, #f5d79e 0%, #d9a84a 30%, #a07a2a 100%),
    radial-gradient(ellipse at 80% 20%, #fff0c0 0%, transparent 70%);
}
.scn-orchard-nurse-complains .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.2) 100%);
  animation: onc-bg 9s ease-in-out infinite alternate;
}
.scn-orchard-nurse-complains .tree-trunk {
  position: absolute; left: 20%; bottom: 0; width: 100px; height: 100%;
  background: linear-gradient(90deg, #4a3010 0%, #6a4a1a 40%, #4a3010 100%);
  border-radius: 10% 10% 0 0;
  animation: onc-trunk 18s ease-in-out infinite alternate;
}
.scn-orchard-nurse-complains .figure {
  position: absolute; bottom: 5%; left: 50%; width: 70px; height: 150px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 15% 15%;
  transform: translateX(-50%);
  animation: onc-fig 4s ease-in-out infinite;
}
.scn-orchard-nurse-complains .head {
  position: absolute; bottom: 60%; left: 50%; width: 50px; height: 55px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: onc-head 2.5s ease-in-out infinite alternate;
}
.scn-orchard-nurse-complains .hand {
  position: absolute; bottom: 45%; left: 42%; width: 12px; height: 30px;
  background: #2a1a0a;
  border-radius: 50%;
  transform-origin: top center;
  transform: rotate(15deg);
  animation: onc-hand 1.8s ease-in-out infinite;
}
.scn-orchard-nurse-complains .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: onc-shadow 6s ease-in-out infinite alternate;
}
@keyframes onc-bg { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes onc-trunk { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes onc-fig { 0% { transform: translateX(-50%) translateY(0) } 25% { transform: translateX(-48%) translateY(-2px) } 50% { transform: translateX(-50%) translateY(-4px) } 75% { transform: translateX(-52%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes onc-head { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-48%) rotate(2deg) } 100% { transform: translateX(-52%) rotate(-2deg) } }
@keyframes onc-hand { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes onc-shadow { 0% { opacity: 1 } 50% { opacity: 0.7 } 100% { opacity: 1 } }

/* Scene 3: orchard-juliet-impatient */
.scn-orchard-juliet-impatient {
  background:
    linear-gradient(180deg, #f5d79e 0%, #e0b86a 40%, #c8904a 100%),
    radial-gradient(ellipse at 70% 30%, #ffe8c0 0%, transparent 60%);
}
.scn-orchard-juliet-impatient .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f5d79e 0%, transparent 100%);
  animation: oji-sky 10s ease-in-out infinite alternate;
}
.scn-orchard-juliet-impatient .wall {
  position: absolute; left: 10%; top: 20%; width: 15px; height: 80%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 30% 30% 0 0;
  animation: oji-wall 20s ease-in-out infinite;
}
.scn-orchard-juliet-impatient .figure {
  position: absolute; bottom: 10%; left: 50%; width: 60px; height: 140px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 15% 15%;
  transform: translateX(-50%);
  animation: oji-fig 3s ease-in-out infinite;
}
.scn-orchard-juliet-impatient .dress {
  position: absolute; bottom: 10%; left: 45%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 10% 10%;
  transform: translateX(-5%);
  animation: oji-dress 4s ease-in-out infinite alternate;
}
.scn-orchard-juliet-impatient .foot {
  position: absolute; bottom: 0; left: 48%; width: 20px; height: 12px;
  background: #2a1a0a;
  border-radius: 50%;
  animation: oji-foot 0.8s ease-in-out infinite;
}
.scn-orchard-juliet-impatient .shadow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: oji-shadow 5s ease-in-out infinite alternate;
}
@keyframes oji-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes oji-wall { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes oji-fig { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-52%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes oji-dress { 0% { transform: translateX(-5%) scaleX(1) } 50% { transform: translateX(-5%) scaleX(1.02) } 100% { transform: translateX(-5%) scaleX(0.98) } }
@keyframes oji-foot { 0% { transform: translateY(0) } 25% { transform: translateY(-4px) } 50% { transform: translateY(0) } 75% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes oji-shadow { 0% { opacity: 1 } 50% { opacity: 0.6 } 100% { opacity: 1 } }

/* Scene 4: orchard-good-news */
.scn-orchard-good-news {
  background:
    linear-gradient(180deg, #f5d79e 0%, #e8c07a 30%, #d0a05a 100%),
    radial-gradient(ellipse at 50% 80%, #ffe0a0 0%, transparent 70%);
}
.scn-orchard-good-news .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f5d79e 0%, #f0c86a 100%);
  animation: ogn-sky 12s ease-in-out infinite alternate;
}
.scn-orchard-good-news .sun {
  position: absolute; top: 5%; right: 15%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff0c0 0%, #f5d060 50%, transparent 80%);
  border-radius: 50%;
  animation: ogn-sun 6s ease-in-out infinite;
}
.scn-orchard-good-news .path {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 15%;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 50% 50% 0 0;
  animation: ogn-path 15s ease-in-out infinite alternate;
}
.scn-orchard-good-news .figure-a {
  position: absolute; bottom: 15%; left: 35%; width: 45px; height: 110px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 15% 15%;
  animation: ogn-figa 4s ease-in-out infinite;
}
.scn-orchard-good-news .figure-b {
  position: absolute; bottom: 15%; left: 55%; width: 45px; height: 110px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 15% 15%;
  animation: ogn-figb 4s ease-in-out infinite 0.5s;
}
.scn-orchard-good-news .flowers {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 20px;
  background: radial-gradient(circle at 20% 50%, #f08050 0%, transparent 20%),
              radial-gradient(circle at 80% 50%, #f0a060 0%, transparent 20%);
  animation: ogn-flowers 7s ease-in-out infinite alternate;
}
@keyframes ogn-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes ogn-sun { 0% { transform: scale(1) } 50% { transform: scale(1.04) } 100% { transform: scale(0.96) } }
@keyframes ogn-path { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ogn-figa { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-5px) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 75% { transform: translateY(-5px) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes ogn-figb { 0% { transform: translateY(-2px) rotate(2deg) } 25% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-5px) rotate(-2deg) } 75% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(-2px) rotate(2deg) } }
@keyframes ogn-flowers { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }

/* capulet-hall-morning-bustle – night, warm firelight */
.scn-capulet-hall-morning-bustle {
  background: linear-gradient(180deg, #2c1e16 0%, #3a251a 40%, #4d3020 100%), radial-gradient(ellipse at 50% 70%, #ffa04a 0%, transparent 70%);
}
.scn-capulet-hall-morning-bustle .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a12 100%);
}
.scn-capulet-hall-morning-bustle .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1c100a 0%, #3a2215 100%);
  border-radius: 20% 20% 0 0;
}
.scn-capulet-hall-morning-bustle .fireplace {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 100px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1a0e 100%);
  border-radius: 12% 12% 4% 4%;
  box-shadow: inset 0 0 30px #1a0e06;
}
.scn-capulet-hall-morning-bustle .fire-glow {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 70px;
  background: radial-gradient(circle, #ffb04a 0%, #ff8030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ff8030, 0 0 80px 40px rgba(255,128,48,0.5);
  animation: cmb-fire 1.2s ease-in-out infinite alternate;
}
.scn-capulet-hall-morning-bustle .table {
  position: absolute; bottom: 30%; left: 20%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  transform: translateY(0);
  animation: cmb-table 8s ease-in-out infinite;
}
.scn-capulet-hall-morning-bustle .servant-1 {
  position: absolute; bottom: 26%; left: 15%; 
  width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cmb-walk 5s ease-in-out infinite;
}
.scn-capulet-hall-morning-bustle .servant-2 {
  composes: servant-1; left: 72%;
  animation-delay: -2.5s;
  animation: cmb-walk 5s ease-in-out infinite reverse;
}
.scn-capulet-hall-morning-bustle .servant-3 {
  composes: servant-1; left: 42%; bottom: 28%;
  width: 16px; height: 34px;
  animation: cmb-bustle 3s ease-in-out infinite;
}
@keyframes cmb-fire {
  0% { transform: translateX(-50%) scale(1) rotate(-2deg); opacity: 0.9; box-shadow: 0 0 30px 15px #ff8030; }
  50% { transform: translateX(-50%) scale(1.08) rotate(3deg); opacity: 1; box-shadow: 0 0 60px 30px #ffa04a; }
  100% { transform: translateX(-50%) scale(0.95) rotate(-1deg); opacity: 0.85; box-shadow: 0 0 25px 10px #ff6010; }
}
@keyframes cmb-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes cmb-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(10px) rotate(1deg); }
  50% { transform: translateX(20px) rotate(-1deg); }
  75% { transform: translateX(30px) rotate(2deg); }
  100% { transform: translateX(40px) rotate(0); }
}
@keyframes cmb-bustle {
  0%,100% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-4px) rotate(5deg); }
  60% { transform: translateY(2px) rotate(-3deg); }
}

/* capulet-hall-preparations-continued – night, warm, kitchen */
.scn-capulet-hall-preparations-continued {
  background: linear-gradient(180deg, #2d2015 0%, #3b281a 40%, #4a3020 100%), radial-gradient(ellipse at 50% 75%, #df7a30 0%, transparent 70%);
}
.scn-capulet-hall-preparations-continued .bg-kitchen {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3d2a1a 0%, #2a1a0e 100%);
}
.scn-capulet-hall-preparations-continued .hearth {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 80px;
  background: linear-gradient(0deg, #3a2210 0%, #5a3820 100%);
  border-radius: 20% 20% 6% 6%;
  box-shadow: inset 0 8px 20px #1a0e06;
}
.scn-capulet-hall-preparations-continued .fire-logs {
  position: absolute; bottom: 34%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 40px;
  background: radial-gradient(circle, #ffa04a 0%, #ff6020 40%, transparent 60%);
  box-shadow: 0 0 30px 15px #ff8030, 0 0 60px 30px rgba(255,128,48,0.3);
  animation: cpc-fire 1.5s ease-in-out infinite alternate;
}
.scn-capulet-hall-preparations-continued .spit {
  position: absolute; bottom: 36%; left: 35%;
  width: 80px; height: 6px;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a3a 50%, #6a4a2a 100%);
  border-radius: 30%;
  transform-origin: 50% 50%;
  animation: cpc-spit 4s linear infinite;
}
.scn-capulet-hall-preparations-continued .cook {
  position: absolute; bottom: 24%; left: 30%; 
  width: 20px; height: 38px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cpc-cook 6s ease-in-out infinite;
}
.scn-capulet-hall-preparations-continued .pot {
  position: absolute; bottom: 30%; left: 45%;
  width: 30px; height: 24px;
  background: radial-gradient(circle at 50% 30%, #4a3a22 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: cpc-pot 8s ease-in-out infinite;
}
.scn-capulet-hall-preparations-continued .shelf {
  position: absolute; bottom: 60%; left: 10%; right: 60%; height: 8px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
}
@keyframes cpc-fire {
  0% { transform: translateX(-50%) scale(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.1) rotate(4deg); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.9) rotate(-2deg); opacity: 0.7; }
}
@keyframes cpc-spit {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes cpc-cook {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(8px) rotate(3deg); }
  50% { transform: translateX(16px) rotate(-2deg); }
  75% { transform: translateX(24px) rotate(4deg); }
}
@keyframes cpc-pot {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}

/* capulet-hall-rouse-juliet – dawn, warm mood, corridor */
.scn-capulet-hall-rouse-juliet {
  background: linear-gradient(180deg, #2a3a4a 0%, #3a4a5a 30%, #5a6a6a 100%), radial-gradient(ellipse at 80% 20%, #c0b0a0 0%, transparent 60%);
}
.scn-capulet-hall-rouse-juliet .corridor-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #3a3a3a 0%, #4a4a4a 50%, #3a3a3a 100%);
}
.scn-capulet-hall-rouse-juliet .corridor-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #2a2018 0%, #3a3028 100%);
}
.scn-capulet-hall-rouse-juliet .door {
  position: absolute; bottom: 25%; left: 65%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,0.5), 0 4px 8px rgba(0,0,0,0.4);
  animation: crj-door 12s ease-in-out infinite;
}
.scn-capulet-hall-rouse-juliet .nurse-silhouette {
  position: absolute; bottom: 22%; left: 35%;
  width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: crj-nurse 5s ease-in-out infinite;
}
.scn-capulet-hall-rouse-juliet .dawn-window {
  position: absolute; top: 15%; right: 10%; width: 40px; height: 50px;
  background: radial-gradient(circle at 50% 50%, #f0e0c0 0%, #b0a090 60%, transparent 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 0 20px 10px rgba(240,224,192,0.3);
  animation: crj-dawn 6s ease-in-out infinite alternate;
}
.scn-capulet-hall-rouse-juliet .candle-sconce {
  position: absolute; bottom: 50%; left: 30%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd060 0%, #ff8030 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(255,208,96,0.5), 0 0 32px 12px rgba(255,208,96,0.2);
  animation: crj-candle 2s ease-in-out infinite alternate;
}
@keyframes crj-door {
  0%,90%,100% { transform: rotateY(0); }
  95% { transform: rotateY(20deg); }
}
@keyframes crj-nurse {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(10px) rotate(2deg); }
  50% { transform: translateX(20px) rotate(-1deg); }
  75% { transform: translateX(30px) rotate(3deg); }
  100% { transform: translateX(40px) rotate(0); }
}
@keyframes crj-dawn {
  0% { opacity: 0.6; box-shadow: 0 0 10px 5px rgba(240,224,192,0.2); }
  50% { opacity: 0.9; box-shadow: 0 0 30px 15px rgba(240,224,192,0.4); }
  100% { opacity: 0.7; box-shadow: 0 0 20px 10px rgba(240,224,192,0.3); }
}
@keyframes crj-candle {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}

/* juliet-chamber-nurse-discovery – dawn, dark mood */
.scn-juliet-chamber-nurse-discovery {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #3a3a4e 100%), radial-gradient(ellipse at 50% 40%, #40405a 0%, transparent 70%);
}
.scn-juliet-chamber-nurse-discovery .chamber-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1e2a 0%, #2a2a36 100%);
}
.scn-juliet-chamber-nurse-discovery .bed-frame {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 40%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a12 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-juliet-chamber-nurse-discovery .curtain-left {
  position: absolute; bottom: 12%; left: 15%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 20% 60% 10% 10%;
  transform-origin: left top;
  animation: jnc-curtain 10s ease-in-out infinite alternate;
}
.scn-juliet-chamber-nurse-discovery .curtain-right {
  composes: curtain-left; left: auto; right: 15%;
  border-radius: 60% 20% 10% 10%;
  animation-delay: -5s;
}
.scn-juliet-chamber-nurse-discovery .juliet-lying {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 60% 60% / 40% 40% 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: jnc-juliet 2s ease-in-out infinite;
}
.scn-juliet-chamber-nurse-discovery .nurse-recoil {
  position: absolute; bottom: 22%; left: 70%;
  width: 22px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jnc-nurse 0.8s ease-in-out infinite alternate;
}
.scn-juliet-chamber-nurse-discovery .dawn-light {
  position: absolute; top: 5%; left: 30%; right: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, #b0a0c0 0%, transparent 80%);
  opacity: 0.2;
  animation: jnc-dawn 8s ease-in-out infinite alternate;
}
@keyframes jnc-curtain {
  0% { transform: rotate(0deg) scaleY(1); }
  100% { transform: rotate(8deg) scaleY(1.05); }
}
@keyframes jnc-juliet {
  0%,100% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(4deg); }
}
@keyframes jnc-nurse {
  0% { transform: translateY(0) rotate(-5deg); }
  100% { transform: translateY(-3px) rotate(5deg); }
}
@keyframes jnc-dawn {
  0% { opacity: 0.1; transform: scaleY(1); }
  50% { opacity: 0.25; transform: scaleY(1.2); }
  100% { opacity: 0.15; transform: scaleY(0.9); }
}

.scn-balcony-appointment { background: linear-gradient(180deg, #0b0b2e 0%, #1a1a4e 40%, #2a2a5e 70%, #1a1a4e 100%), radial-gradient(ellipse at 50% 120%, #3a3a6e 0%, transparent 60%); }
.scn-balcony-appointment .sky    { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #12123a 0%, transparent 100%); animation: ba1-sky 15s ease-in-out infinite; }
.scn-balcony-appointment .moon   { position:absolute; top:12%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #e0e8ff 0%, #a0b0e0 60%, transparent 85%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(160,176,224,.5), 0 0 80px 20px rgba(160,176,224,.2); animation: ba1-moon 8s ease-in-out infinite alternate; }
.scn-balcony-appointment .stars  { position:absolute; top:8%; left:20%; width:4px; height:4px; background:#fff; border-radius:50%; box-shadow: 0 0 6px #fff; animation: ba1-stars 3s ease-in-out infinite alternate; }
.scn-balcony-appointment .balcony{ position:absolute; bottom:30%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius:4px; box-shadow:0 -4px 8px rgba(0,0,0,.4); animation: ba1-balcony 12s ease-in-out infinite; }
.scn-balcony-appointment .figure { position:absolute; bottom:30%; left:45%; width:16px; height:48px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius:50% 50% 40% 40% / 50% 50% 30% 30%; transform-origin:bottom center; animation: ba1-figure 5s ease-in-out infinite; }
.scn-balcony-appointment .cloud-a{ position:absolute; top:18%; left:10%; width:70px; height:14px; background: rgba(200,210,240,.15); border-radius:50%; filter:blur(5px); animation: ba1-cloud-a 40s linear infinite; }
.scn-balcony-appointment .cloud-b{ position:absolute; top:25%; right:6%; width:50px; height:10px; background: rgba(200,210,240,.1); border-radius:50%; filter:blur(4px); animation: ba1-cloud-b 55s linear infinite reverse; }
@keyframes ba1-sky     { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ba1-moon    { 0% { transform: scale(1); box-shadow: 0 0 30px 8px rgba(160,176,224,.4); } 50% { transform: scale(1.02); box-shadow: 0 0 50px 15px rgba(160,176,224,.6); } 100% { transform: scale(1); box-shadow: 0 0 30px 8px rgba(160,176,224,.4); } }
@keyframes ba1-stars   { 0% { opacity:.3; transform: scale(1); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:.3; transform: scale(1); } }
@keyframes ba1-balcony { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ba1-figure  { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(3px) rotate(1deg); } 60% { transform: translateX(6px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ba1-cloud-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes ba1-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-balcony-bird-metaphor { background: linear-gradient(180deg, #0a0a28 0%, #1a1a48 50%, #2a2a58 80%, #1a1a48 100%), radial-gradient(ellipse at 50% 100%, #3a3a68 0%, transparent 60%); }
.scn-balcony-bird-metaphor .sky     { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #121232 0%, transparent 100%); animation: ba2-sky 18s ease-in-out infinite; }
.scn-balcony-bird-metaphor .moon    { position:absolute; top:10%; left:72%; width:55px; height:55px; background: radial-gradient(circle, #d0d8f0 0%, #a0a8d0 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 8px rgba(160,168,208,.4); animation: ba2-moon 10s ease-in-out infinite alternate; }
.scn-balcony-bird-metaphor .balcony { position:absolute; bottom:30%; left:15%; right:15%; height:10%; background: linear-gradient(180deg, #3a3a52 0%, #2a2a42 100%); border-radius:4px; box-shadow:0 -4px 8px rgba(0,0,0,.4); }
.scn-balcony-bird-metaphor .hand    { position:absolute; bottom:30%; left:45%; width:14px; height:28px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom; animation: ba2-hand 4s ease-in-out infinite; }
.scn-balcony-bird-metaphor .bird    { position:absolute; bottom:38%; left:47%; width:12px; height:10px; background: radial-gradient(circle, #b0b0c0 0%, #808090 100%); border-radius:50% 50% 40% 40% / 50% 50% 30% 30%; animation: ba2-bird 2s ease-in-out infinite alternate; }
.scn-balcony-bird-metaphor .thread  { position:absolute; bottom:30%; left:45%; width:1px; height:20px; background: linear-gradient(180deg, #c0c0d0 0%, #a0a0b0 100%); opacity:.6; transform:rotate(10deg); transform-origin:top; animation: ba2-thread 3s ease-in-out infinite; }
.scn-balcony-bird-metaphor .window  { position:absolute; bottom:28%; right:12%; width:24px; height:30px; background: linear-gradient(180deg, #3a3a52 0%, #2a2a42 100%); border-radius:2px; box-shadow: inset 0 0 0 2px #4a4a62; animation: ba2-window 6s ease-in-out infinite; }
@keyframes ba2-sky     { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ba2-moon    { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes ba2-hand    { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(4deg); } }
@keyframes ba2-bird    { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(-10deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ba2-thread  { 0%,100% { transform: rotate(10deg); } 50% { transform: rotate(6deg); } }
@keyframes ba2-window  { 0%,100% { opacity:.8; } 50% { opacity:1; } }

.scn-balcony-parting { background: linear-gradient(180deg, #0c0c30 0%, #1c1c50 40%, #2c2c60 70%, #1c1c50 100%), radial-gradient(ellipse at 50% 110%, #3c3c70 0%, transparent 60%); }
.scn-balcony-parting .sky    { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #14143c 0%, transparent 100%); animation: ba3-sky 20s ease-in-out infinite; }
.scn-balcony-parting .moon   { position:absolute; top:10%; left:65%; width:70px; height:70px; background: radial-gradient(circle, #e0e8ff 0%, #b0b8e0 50%, transparent 85%); border-radius:50%; box-shadow: 0 0 60px 15px rgba(176,184,224,.5); animation: ba3-moon 12s ease-in-out infinite alternate; }
.scn-balcony-parting .balcony{ position:absolute; bottom:30%; left:22%; right:22%; height:12%; background: linear-gradient(180deg, #3a3a5c 0%, #2a2a4c 100%); border-radius:6px; box-shadow:0 -6px 12px rgba(0,0,0,.3); }
.scn-balcony-parting .fig-l  { position:absolute; bottom:30%; left:35%; width:14px; height:45px; background: linear-gradient(180deg, #1a1a30 0%, #0a0a20 100%); border-radius:45% 45% 35% 35% / 50% 50% 30% 30%; transform-origin:bottom; animation: ba3-fig-l 6s ease-in-out infinite; }
.scn-balcony-parting .fig-r  { position:absolute; bottom:30%; right:35%; width:14px; height:45px; background: linear-gradient(180deg, #1a1a30 0%, #0a0a20 100%); border-radius:45% 45% 35% 35% / 50% 50% 30% 30%; transform-origin:bottom; animation: ba3-fig-r 6s ease-in-out infinite; }
.scn-balcony-parting .glow   { position:absolute; bottom:32%; left:40%; right:40%; height:10px; background: radial-gradient(ellipse, rgba(200,200,240,.3) 0%, transparent 70%); filter:blur(6px); animation: ba3-glow 4s ease-in-out infinite alternate; }
.scn-balcony-parting .cloud  { position:absolute; top:15%; left:20%; width:80px; height:16px; background: rgba(200,210,240,.1); border-radius:50%; filter:blur(6px); animation: ba3-cloud 45s linear infinite; }
@keyframes ba3-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ba3-moon   { 0% { transform: scale(1); box-shadow: 0 0 40px 10px rgba(176,184,224,.4); } 50% { transform: scale(1.02); box-shadow: 0 0 80px 25px rgba(176,184,224,.6); } 100% { transform: scale(1); box-shadow: 0 0 40px 10px rgba(176,184,224,.4); } }
@keyframes ba3-fig-l  { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(2px) rotate(-2deg); } }
@keyframes ba3-fig-r  { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(2deg); } }
@keyframes ba3-glow   { 0% { opacity:.2; } 50% { opacity:.5; } 100% { opacity:.3; } }
@keyframes ba3-cloud  { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }

.scn-friar-dawn-soliloquy { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 70%, #2a2a3e 100%), radial-gradient(ellipse at 50% 100%, #4a4a5e 0%, transparent 60%); }
.scn-friar-dawn-soliloquy .wall   { position:absolute; inset:0; background: linear-gradient(180deg, #1e1e32 0%, #2e2e42 100%); animation: fds-wall 10s ease-in-out infinite; }
.scn-friar-dawn-soliloquy .window { position:absolute; top:15%; left:35%; right:35%; bottom:40%; background: linear-gradient(180deg, #4a6a8a 0%, #6a8aaa 30%, #8aaaca 60%, #aacaea 100%); border-radius:4px 4px 50% 50% / 10% 10% 40% 40%; box-shadow: inset 0 0 30px 10px rgba(170,202,234,.3); animation: fds-window 15s ease-in-out infinite alternate; }
.scn-friar-dawn-soliloquy .friar  { position:absolute; bottom:20%; left:45%; width:18px; height:50px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius:45% 45% 35% 35% / 50% 50% 30% 30%; transform-origin:bottom; animation: fds-friar 6s ease-in-out infinite; }
.scn-friar-dawn-soliloquy .basket { position:absolute; bottom:10%; left:40%; width:40px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:30% 30% 40% 40% / 40% 40% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-friar-dawn-soliloquy .herbs  { position:absolute; bottom:15%; left:43%; width:24px; height:6px; background: linear-gradient(90deg, #3a6a3a 0%, #5a8a5a 50%, #3a6a3a 100%); border-radius:50%; filter:blur(1px); animation: fds-herbs 8s ease-in-out infinite; }
.scn-friar-dawn-soliloquy .table  { position:absolute; bottom:8%; left:35%; right:35%; height:4px; background: #3a3a4e; border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); }
.scn-friar-dawn-soliloquy .streak { position:absolute; top:14%; left:35%; right:35%; height:12%; background: linear-gradient(180deg, transparent 0%, rgba(255,220,150,.15) 40%, transparent 100%); filter:blur(8px); animation: fds-streak 20s ease-in-out infinite alternate; }
@keyframes fds-wall    { 0%,100% { opacity:.9; } 50% { opacity:1; } }
@keyframes fds-window  { 0% { opacity:.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:.7; transform: scale(1); } }
@keyframes fds-friar   { 0%,100% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } }
@keyframes fds-herbs   { 0%,100% { transform: rotate(0); } 50% { transform: rotate(5deg); } }
@keyframes fds-streak  { 0% { opacity:.1; } 50% { opacity:.4; } 100% { opacity:.1; } }

/* feast-ends */
.scn-feast-ends {
  background: 
    linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 30%, #7a3a2a 60%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 60%, #8a4a2a 0%, transparent 70%);
}
.scn-feast-ends .wall-back { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a2a1a 0%, #6a3a2a 100%); }
.scn-feast-ends .wall-side { position:absolute; top:10%; right:0; width:25%; height:70%; background: linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 100%); border-radius: 10% 0 0 10%; box-shadow: -10px 0 20px rgba(0,0,0,.5); }
.scn-feast-ends .table { position:absolute; bottom:20%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.4); }
.scn-feast-ends .torch-1 { position:absolute; bottom:35%; left:20%; width:8px; height:40px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 20%; }
.scn-feast-ends .torch-1::after { content:''; position:absolute; top:-12px; left:-4px; width:16px; height:20px; background: radial-gradient(circle, #ffc080 0%, #ff8020 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #ff8020; animation: fe-torch-flicker 2s ease-in-out infinite alternate; }
.scn-feast-ends .torch-2 { position:absolute; bottom:35%; right:15%; width:8px; height:40px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:20%; animation-delay:0.5s; }
.scn-feast-ends .torch-2::after { content:''; position:absolute; top:-12px; left:-4px; width:16px; height:20px; background: radial-gradient(circle, #ffc080 0%, #ff8020 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #ff8020; animation: fe-torch-flicker 2s ease-in-out infinite alternate-reverse; }
.scn-feast-ends .figure-exit { position:absolute; bottom:24%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fe-walk-left 6s ease-in-out infinite; }
.scn-feast-ends .figure-stay { position:absolute; bottom:22%; left:60%; width:22px; height:55px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fe-stand 8s ease-in-out infinite; }
.scn-feast-ends .glow-ambient { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(255,180,80,0.15) 0%, transparent 70%); pointer-events:none; animation: fe-glow-pulse 4s ease-in-out infinite alternate; }
@keyframes fe-torch-flicker {
  0% { transform: scale(1); opacity:0.9; }
  50% { transform: scale(1.1); opacity:1; }
  100% { transform: scale(0.95); opacity:0.8; }
}
@keyframes fe-walk-left {
  0% { transform: translateX(0) rotate(-2deg); opacity:1; }
  25% { transform: translateX(-10px) rotate(1deg); opacity:0.8; }
  50% { transform: translateX(-20px) rotate(-1deg); opacity:0.6; }
  75% { transform: translateX(-30px) rotate(2deg); opacity:0.4; }
  100% { transform: translateX(-40px) rotate(0); opacity:0; }
}
@keyframes fe-stand {
  0%,100% { transform: translateY(0); }
  25% { transform: translateY(-2px); }
  50% { transform: translateY(0); }
  75% { transform: translateY(-1px); }
}
@keyframes fe-glow-pulse {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}

/* juliet-asks-about-romeo */
.scn-juliet-asks-about-romeo {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%),
    radial-gradient(ellipse at 50% 70%, #4a4a5e 0%, transparent 70%);
}
.scn-juliet-asks-about-romeo .window-frame { position:absolute; top:10%; left:20%; right:20%; bottom:20%; border: 8px solid #4a3a2a; border-radius: 4% 4% 0 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-juliet-asks-about-romeo .curtain-left { position:absolute; top:8%; left:18%; width:12%; height:65%; background: linear-gradient(90deg, #6a3a2a 0%, #4a2a1a 100%); border-radius: 0 20% 20% 0; transform-origin: left; animation: ja-curtain-sway 7s ease-in-out infinite alternate; }
.scn-juliet-asks-about-romeo .curtain-right { position:absolute; top:8%; right:18%; width:12%; height:65%; background: linear-gradient(270deg, #6a3a2a 0%, #4a2a1a 100%); border-radius: 20% 0 0 20%; transform-origin: right; animation: ja-curtain-sway 7s ease-in-out infinite alternate-reverse; }
.scn-juliet-asks-about-romeo .juliet-silhouette { position:absolute; bottom:25%; left:35%; width:18px; height:55px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ja-juliet-turn 6s ease-in-out infinite; }
.scn-juliet-asks-about-romeo .nurse-silhouette { position:absolute; bottom:23%; left:55%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ja-nurse-nod 8s ease-in-out infinite; }
.scn-juliet-asks-about-romeo .lamp-glow { position:absolute; bottom:40%; left:28%; width:12px; height:12px; background: radial-gradient(circle, #ffd080 0%, #b07040 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(255,208,128,0.4); animation: ja-lamp-flicker 3s ease-in-out infinite alternate; }
.scn-juliet-asks-about-romeo .distant-guests { position:absolute; bottom:20%; left:10%; width:10px; height:40px; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: ja-guests-move 12s linear infinite; }
.scn-juliet-asks-about-romeo .shadow-column { position:absolute; top:10%; left:40%; width:6%; height:75%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); border-radius: 10%; }
@keyframes ja-curtain-sway {
  0% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(1.05) rotate(2deg); }
  100% { transform: scaleX(0.95) rotate(-1deg); }
}
@keyframes ja-juliet-turn {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(5deg); }
  50% { transform: translateX(-5px) rotate(-5deg); }
  75% { transform: translateX(2px) rotate(2deg); }
}
@keyframes ja-nurse-nod {
  0%,100% { transform: translateY(0); }
  30% { transform: translateY(-3px); }
  60% { transform: translateY(-1px); }
  80% { transform: translateY(2px); }
}
@keyframes ja-lamp-flicker {
  0% { transform: scale(1); opacity:0.8; box-shadow: 0 0 30px 10px rgba(255,208,128,0.3); }
  50% { transform: scale(1.1); opacity:1; box-shadow: 0 0 50px 20px rgba(255,208,128,0.5); }
  100% { transform: scale(0.95); opacity:0.9; box-shadow: 0 0 35px 12px rgba(255,208,128,0.35); }
}
@keyframes ja-guests-move {
  0% { transform: translateX(0); opacity:0.4; }
  50% { transform: translateX(-20px); opacity:0.2; }
  100% { transform: translateX(0); opacity:0.4; }
}

/* act2-prologue */
.scn-act2-prologue {
  background: 
    linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 30%, #2a2a4e 60%, #1a1a3e 100%),
    radial-gradient(ellipse at 50% 20%, #3a3a5e 0%, transparent 70%);
}
.scn-act2-prologue .moon { position:absolute; top:12%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #d0d0e0 0%, #a0a0b0 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(160,160,176,0.3), 0 0 120px 40px rgba(160,160,176,0.15); animation: ap-moon-glide 30s linear infinite; }
.scn-act2-prologue .wall-garden { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,.5); }
.scn-act2-prologue .romeo-silhouette { position:absolute; bottom:30%; left:25%; width:18px; height:55px; background: linear-gradient(180deg, #0a0a1a 0%, #00000a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ap-romeo-reach 8s ease-in-out infinite; }
.scn-act2-prologue .juliet-shadow { position:absolute; bottom:38%; right:30%; width:16px; height:45px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; opacity:0.6; animation: ap-juliet-appear 10s ease-in-out infinite; }
.scn-act2-prologue .vines { position:absolute; bottom:25%; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #2a4a2a 0px, #1a3a1a 8px, transparent 8px, transparent 20px); animation: ap-vine-sway 15s ease-in-out infinite alternate; }
.scn-act2-prologue .dew-drops { position:absolute; top:18%; left:30%; width:4px; height:4px; background: radial-gradient(circle, #e0e0f0 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(224,224,240,0.4); animation: ap-dew-fall 20s linear infinite; }
.scn-act2-prologue .fog-mist { position:absolute; inset:0; background: linear-gradient(180deg, rgba(160,160,176,0.1) 0%, transparent 50%, rgba(160,160,176,0.05) 100%); pointer-events:none; animation: ap-fog-drift 40s ease-in-out infinite; }
@keyframes ap-moon-glide {
  0% { transform: translateX(0) scale(1); }
  25% { transform: translateX(10px) scale(1.02); }
  50% { transform: translateX(0) scale(0.98); }
  75% { transform: translateX(-10px) scale(1.01); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes ap-romeo-reach {
  0%,100% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(8px) translateY(-4px) rotate(10deg); }
  40% { transform: translateX(-4px) translateY(-2px) rotate(-5deg); }
  60% { transform: translateX(12px) translateY(-6px) rotate(15deg); }
  80% { transform: translateX(-8px) translateY(0) rotate(-8deg); }
}
@keyframes ap-juliet-appear {
  0% { opacity:0; transform: scale(0.8); }
  20% { opacity:0.6; transform: scale(1); }
  40% { opacity:0.3; transform: scale(0.9); }
  60% { opacity:0.8; transform: scale(1.05); }
  80% { opacity:0.2; transform: scale(0.85); }
  100% { opacity:0; transform: scale(0.8); }
}
@keyframes ap-vine-sway {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-10px) rotate(2deg); }
  100% { transform: translateX(10px) rotate(-2deg); }
}
@keyframes ap-dew-fall {
  0% { transform: translateY(0); opacity:0; }
  10% { opacity:1; }
  90% { opacity:1; }
  100% { transform: translateY(80px); opacity:0; }
}
@keyframes ap-fog-drift {
  0% { opacity:0.3; transform: translateX(-20px); }
  50% { opacity:0.5; transform: translateX(20px); }
  100% { opacity:0.3; transform: translateX(-20px); }
}

/* orchard-wall-climb */
.scn-orchard-wall-climb {
  background: 
    linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 40%, #2a2a4e 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 70%);
}
.scn-orchard-wall-climb .moon { position:absolute; top:8%; left:15%; width:55px; height:55px; background: radial-gradient(circle, #d8d8e8 0%, #a8a8b8 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 50px 15px rgba(168,168,184,0.3), 0 0 100px 30px rgba(168,168,184,0.15); animation: ow-moon-rise 40s ease-in-out infinite; }
.scn-orchard-wall-climb .wall-stone { position:absolute; bottom:10%; left:10%; right:20%; height:60%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 0 20% 20% 0; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-orchard-wall-climb .ivy { position:absolute; bottom:10%; left:12%; width:30%; height:60%; background: repeating-linear-gradient(0deg, #2a4a2a 0px, #1a3a1a 12px, transparent 12px, transparent 24px); animation: ow-ivy-sway 14s ease-in-out infinite alternate; }
.scn-orchard-wall-climb .romeo-climbing { position:absolute; bottom:20%; left:20%; width:18px; height:55px; background: linear-gradient(180deg, #0a0a1a 0%, #00000a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ow-climb-move 10s ease-in-out infinite; }
.scn-orchard-wall-climb .juliet-window { position:absolute; top:15%; right:10%; width:40px; height:50px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border: 4px solid #3a2a1a; border-radius: 5% 5% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.4); }
.scn-orchard-wall-climb .juliet-window::after { content:''; position:absolute; bottom:-8px; left:10px; width:20px; height:8px; background: #3a2a1a; border-radius: 0 0 20% 20%; }
.scn-orchard-wall-climb .lantern-hanging { position:absolute; top:18%; right:20%; width:10px; height:14px; background: radial-gradient(circle, #ffc080 0%, #ff8020 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,128,32,0.4); animation: ow-lantern-swing 5s ease-in-out infinite alternate; }
.scn-orchard-wall-climb .ground-shadows { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%); }
.scn-orchard-wall-climb .stars { position:absolute; inset:0; background: radial-gradient(2px 2px at 20% 10%, #e0e0f0, transparent), radial-gradient(2px 2px at 60% 15%, #e0e0f0, transparent), radial-gradient(1px 1px at 40% 25%, #e0e0f0, transparent), radial-gradient(2px 2px at 80% 5%, #e0e0f0, transparent); animation: ow-star-twinkle 3s ease-in-out infinite alternate; }
@keyframes ow-moon-rise {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-10px) scale(1.02); }
  100% { transform: translateY(0) scale(0.98); }
}
@keyframes ow-ivy-sway {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-5px) rotate(2deg); }
  100% { transform: translateX(5px) rotate(-2deg); }
}
@keyframes ow-climb-move {
  0%,100% { transform: translateX(0) translateY(0) rotate(0deg); }
  15% { transform: translateX(8px) translateY(-6px) rotate(10deg); }
  30% { transform: translateX(-4px) translateY(-2px) rotate(-5deg); }
  45% { transform: translateX(12px) translateY(-10px) rotate(15deg); }
  60% { transform: translateX(-8px) translateY(-4px) rotate(-8deg); }
  75% { transform: translateX(6px) translateY(-12px) rotate(12deg); }
}
@keyframes ow-lantern-swing {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(4px); }
  100% { transform: rotate(-12deg) translateX(-3px); }
}
@keyframes ow-star-twinkle {
  0% { opacity:0.5; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}

.scn-friar-explanation-part3 {
  background:
    linear-gradient(180deg, #1c1c3a 0%, #3a2a4e 40%, #6a4a5a 70%, #b87a5a 100%),
    radial-gradient(ellipse at 30% 100%, #b87a5a 0%, transparent 70%);
}
.scn-friar-explanation-part3 .dawn-sky {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #5a3a4a 0%, #9a6a5a 60%, #c88a5a 100%);
  animation: fe3-sky 18s ease-in-out infinite alternate;
}
.scn-friar-explanation-part3 .tomb-arch {
  position:absolute; bottom:15%; left:20%; width:60%; height:65%;
  background: radial-gradient(ellipse 70% 50% at 50% 100%, #1a1a2a 0%, transparent 70%),
              linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.6);
  animation: fe3-arch 9s ease-in-out infinite;
}
.scn-friar-explanation-part3 .friar-silhouette {
  position:absolute; bottom:18%; left:32%; width:20px; height:60px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fe3-friar 4s ease-in-out infinite;
}
.scn-friar-explanation-part3 .juliet-silhouette {
  position:absolute; bottom:16%; left:50%; width:22px; height:50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: fe3-juliet 6s ease-in-out infinite;
}
.scn-friar-explanation-part3 .lantern-glow {
  position:absolute; bottom:28%; left:42%; width:8px; height:8px;
  background: radial-gradient(circle, #ffd060 0%, #d09040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,208,96,.5), 0 0 40px 16px rgba(255,208,96,.2);
  animation: fe3-lantern 3s ease-in-out infinite alternate;
}
.scn-friar-explanation-part3 .mist-layer-a {
  position:absolute; bottom:10%; left:0; width:100%; height:20%;
  background: linear-gradient(90deg, rgba(255,200,180,.15) 0%, rgba(200,150,120,.1) 50%, transparent 100%);
  filter: blur(8px);
  animation: fe3-mist-a 25s linear infinite;
}
.scn-friar-explanation-part3 .mist-layer-b {
  position:absolute; bottom:5%; left:-10%; width:120%; height:15%;
  background: linear-gradient(90deg, transparent 0%, rgba(180,140,120,.1) 30%, rgba(200,160,140,.15) 70%, transparent 100%);
  filter: blur(6px);
  animation: fe3-mist-b 20s linear infinite reverse;
}
@keyframes fe3-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fe3-arch { 0%,100% { transform: scale(1) } 50% { transform: scale(1.01) translateY(-2px) } }
@keyframes fe3-friar { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(0) } 75% { transform: translateX(9px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(12px) translateY(0) rotate(2deg) } }
@keyframes fe3-juliet { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(.98) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes fe3-lantern { 0% { opacity:.8; box-shadow: 0 0 15px 5px rgba(255,208,96,.4); } 50% { opacity:1; box-shadow: 0 0 25px 10px rgba(255,208,96,.6); } 100% { opacity:.9; box-shadow: 0 0 20px 6px rgba(255,208,96,.5); } }
@keyframes fe3-mist-a { 0% { transform: translateX(-10%) } 100% { transform: translateX(10%) } }
@keyframes fe3-mist-b { 0% { transform: translateX(0) } 100% { transform: translateX(-20%) } }

.scn-friar-explanation-end {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2a2244 30%, #4a3a5a 60%, #8a6a4a 100%),
    radial-gradient(ellipse at 70% 100%, #8a6a4a 0%, transparent 70%);
}
.scn-friar-explanation-end .dawn-sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #4a3a5a 0%, #7a5a4a 50%, #b87a5a 100%);
  animation: fend-sky 20s ease-in-out infinite alternate;
}
.scn-friar-explanation-end .stone-wall {
  position:absolute; bottom:20%; left:10%; width:80%; height:60%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
  animation: fend-wall 15s ease-in-out infinite;
}
.scn-friar-explanation-end .friar-figure {
  position:absolute; bottom:22%; left:35%; width:22px; height:65px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fend-friar 5s ease-in-out infinite;
}
.scn-friar-explanation-end .juliet-prone {
  position:absolute; bottom:18%; left:50%; width:30px; height:12px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  transform: translateX(-50%);
  animation: fend-prone 7s ease-in-out infinite;
}
.scn-friar-explanation-end .stone-slab {
  position:absolute; bottom:17%; left:45%; width:50px; height:6px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: fend-slab 10s ease-in-out infinite;
}
.scn-friar-explanation-end .candle-light {
  position:absolute; bottom:30%; left:46%; width:4px; height:10px;
  background: radial-gradient(circle, #eedd88 0%, #ccaa44 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #ccaa44, 0 0 24px 8px rgba(204,170,68,.3);
  animation: fend-candle 2s ease-in-out infinite alternate;
}
.scn-friar-explanation-end .mist-curtain {
  position:absolute; bottom:0; left:0; width:100%; height:25%;
  background: linear-gradient(180deg, rgba(180,140,120,.2) 0%, transparent 100%);
  filter: blur(10px);
  animation: fend-mist 30s linear infinite;
}
@keyframes fend-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fend-wall { 0%,100% { transform: scale(1) } 50% { transform: scale(1.005) translateY(-2px) } }
@keyframes fend-friar { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(5px) rotate(0) } 50% { transform: translateX(10px) rotate(2deg) } 75% { transform: translateX(15px) rotate(0) } 100% { transform: translateX(20px) rotate(-3deg) } }
@keyframes fend-prone { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes fend-slab { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes fend-candle { 0% { opacity:.7; transform: scaleY(.9) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.8; transform: scaleY(1) } }
@keyframes fend-mist { 0% { transform: translateX(-5%) } 100% { transform: translateX(5%) } }

.scn-prince-questions-balthasar {
  background:
    linear-gradient(180deg, #1c1c3a 0%, #2a2244 30%, #4a3a5a 60%, #7a5a4a 100%),
    radial-gradient(ellipse at 50% 100%, #7a5a4a 0%, transparent 70%);
}
.scn-prince-questions-balthasar .dawn-sky {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #3a2a4a 0%, #6a4a4a 50%, #a86a4a 100%);
  animation: prq-sky 16s ease-in-out infinite alternate;
}
.scn-prince-questions-balthasar .monument {
  position:absolute; bottom:15%; left:10%; width:55%; height:70%;
  background: radial-gradient(ellipse 80% 60% at 50% 100%, #2a2a3a 0%, transparent 70%),
              linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,.6);
  animation: prq-monument 12s ease-in-out infinite;
}
.scn-prince-questions-balthasar .prince-throne {
  position:absolute; bottom:20%; left:30%; width:28px; height:55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prq-prince 5s ease-in-out infinite;
}
.scn-prince-questions-balthasar .balthasar-kneel {
  position:absolute; bottom:18%; left:48%; width:20px; height:45px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: prq-balthasar 6s ease-in-out infinite;
}
.scn-prince-questions-balthasar .guard-spear {
  position:absolute; bottom:20%; left:58%; width:14px; height:60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-5deg);
  animation: prq-guard 7s ease-in-out infinite;
}
.scn-prince-questions-balthasar .ground-shadow {
  position:absolute; bottom:0; left:0; width:100%; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%);
  animation: prq-ground 20s ease-in-out infinite alternate;
}
.scn-prince-questions-balthasar .dawn-cloud {
  position:absolute; top:12%; left:60%; width:70px; height:16px;
  background: linear-gradient(90deg, rgba(255,200,180,.3) 0%, rgba(200,160,140,.15) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: prq-cloud 40s linear infinite;
}
@keyframes prq-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes prq-monument { 0%,100% { transform: scale(1) } 50% { transform: scale(1.005) translateY(-1px) } }
@keyframes prq-prince { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(0) } 50% { transform: translateX(4px) rotate(1deg) } 75% { transform: translateX(6px) rotate(0) } 100% { transform: translateX(8px) rotate(-1deg) } }
@keyframes prq-balthasar { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(.98) } 100% { transform: translateY(0) scale(1) } }
@keyframes prq-guard { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) translateY(-2px) } }
@keyframes prq-ground { 0% { opacity:.4 } 100% { opacity:.6 } }
@keyframes prq-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-100%) } }

.scn-page-testifies {
  background:
    linear-gradient(180deg, #1c1c3a 0%, #2a2244 30%, #4a3a5a 60%, #8a6a4a 100%),
    radial-gradient(ellipse at 60% 100%, #8a6a4a 0%, transparent 70%);
}
.scn-page-testifies .dawn-sky {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #3a2a4a 0%, #6a4a4a 50%, #b87a5a 100%);
  animation: pgt-sky 18s ease-in-out infinite alternate;
}
.scn-page-testifies .tomb-steps {
  position:absolute; bottom:0; left:5%; width:90%; height:40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
  animation: pgt-steps 14s ease-in-out infinite;
}
.scn-page-testifies .prince-standing {
  position:absolute; bottom:25%; left:25%; width:26px; height:58px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: pgt-prince 5s ease-in-out infinite;
}
.scn-page-testifies .page-bow {
  position:absolute; bottom:22%; left:42%; width:18px; height:40px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pgt-page 4s ease-in-out infinite;
}
.scn-page-testifies .watchman-1 {
  position:absolute; bottom:26%; left:55%; width:20px; height:50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: pgt-watch1 6s ease-in-out infinite;
}
.scn-page-testifies .watchman-2 {
  position:absolute; bottom:28%; left:68%; width:18px; height:48px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: pgt-watch2 7s ease-in-out infinite;
  animation-delay: .5s;
}
.scn-page-testifies .torch-flame {
  position:absolute; bottom:40%; left:62%; width:10px; height:18px;
  background: radial-gradient(circle, #ffd060 0%, #d08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,208,96,.5), 0 0 40px 16px rgba(255,208,96,.2);
  animation: pgt-torch 2s ease-in-out infinite alternate;
}
.scn-page-testifies .morning-mist {
  position:absolute; bottom:0; left:0; width:100%; height:20%;
  background: linear-gradient(180deg, rgba(180,140,120,.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: pgt-mist 28s linear infinite;
}
@keyframes pgt-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes pgt-steps { 0%,100% { transform: scale(1) } 50% { transform: scale(1.003) translateY(-1px) } }
@keyframes pgt-prince { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(4px) rotate(0) } 75% { transform: translateX(6px) rotate(-1deg) } 100% { transform: translateX(8px) rotate(0) } }
@keyframes pgt-page { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes pgt-watch1 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pgt-watch2 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes pgt-torch { 0% { opacity:.8; box-shadow: 0 0 15px 5px rgba(255,208,96,.4); } 50% { opacity:1; box-shadow: 0 0 25px 10px rgba(255,208,96,.6); } 100% { opacity:.9; box-shadow: 0 0 20px 6px rgba(255,208,96,.5); } }
@keyframes pgt-mist { 0% { transform: translateX(-5%) } 100% { transform: translateX(5%) } }

.scn-orchard-cords-orphaned { background: linear-gradient(180deg, #f0c27a 0%, #d4a55a 20%, #7a5a2a 60%, #3a2a1a 100%), radial-gradient(ellipse at 30% 20%, #f0d080 0%, transparent 60%); }
.scn-orchard-cords-orphaned .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #a8c4e0 0%, #f0d8a0 60%, transparent 100%); animation: sco-sky 12s ease-in-out infinite alternate; }
.scn-orchard-cords-orphaned .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 40%, #1a2a1a 100%); border-radius:60% 40% 0 0 / 30% 20% 0 0; box-shadow:inset 0 12px 24px rgba(0,0,0,.5); animation: sco-ground 20s ease-in-out infinite; }
.scn-orchard-cords-orphaned .tree.trunk { position:absolute; bottom:38%; left:30%; width:14px; height:45%; background: linear-gradient(90deg, #5a3a2a 0%, #7a5a3a 50%, #4a2a1a 100%); border-radius:20% 20% 10% 10%; transform:rotate(-4deg); box-shadow:inset -2px 0 4px rgba(0,0,0,.3); }
.scn-orchard-cords-orphaned .tree.canopy { position:absolute; bottom:60%; left:24%; width:40%; height:30%; background: radial-gradient(ellipse at 40% 40%, #3a5a2a 0%, #1a3a1a 70%, transparent 100%); border-radius:50%; filter: blur(2px); animation: sco-canopy 15s ease-in-out infinite alternate; }
.scn-orchard-cords-orphaned .rope.rope-left { position:absolute; bottom:50%; left:28%; width:3px; height:30%; background: linear-gradient(180deg, #a08060 0%, #6a5030 100%); border-radius:50%; transform:rotate(6deg); transform-origin: top center; animation: sco-rope-l 4s ease-in-out infinite; }
.scn-orchard-cords-orphaned .rope.rope-right { position:absolute; bottom:50%; left:34%; width:3px; height:30%; background: linear-gradient(180deg, #a08060 0%, #6a5030 100%); border-radius:50%; transform:rotate(-8deg); transform-origin: top center; animation: sco-rope-r 5s ease-in-out infinite; }
.scn-orchard-cords-orphaned .sun-shard { position:absolute; top:10%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,.3) 50%, transparent 80%); border-radius:50%; filter: blur(4px); animation: sco-sun 6s ease-in-out infinite alternate; }
.scn-orchard-cords-orphaned .shadow-figure { position:absolute; bottom:35%; left:38%; width:24px; 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: sco-figure 5s ease-in-out infinite; }
.scn-orchard-cords-orphaned .falling-leaf { position:absolute; top:30%; left:50%; width:10px; height:18px; background: radial-gradient(ellipse at 50% 30%, #8a6a3a 0%, #5a3a1a 100%); border-radius:50% 50% 0 0 / 100% 100% 0 0; transform:rotate(20deg); animation: sco-leaf 7s ease-in infinite; }
@keyframes sco-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sco-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sco-canopy { 0% { transform: scale(1) } 50% { transform: scale(1.02) translateX(2px) } 100% { transform: scale(.98) } }
@keyframes sco-rope-l { 0% { transform: rotate(4deg) } 25% { transform: rotate(8deg) } 50% { transform: rotate(2deg) } 75% { transform: rotate(10deg) } 100% { transform: rotate(4deg) } }
@keyframes sco-rope-r { 0% { transform: rotate(-6deg) } 25% { transform: rotate(-10deg) } 50% { transform: rotate(-4deg) } 75% { transform: rotate(-12deg) } 100% { transform: rotate(-6deg) } }
@keyframes sco-sun { 0% { opacity:.4; transform: scale(.9) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.5; transform: scale(.95) } }
@keyframes sco-figure { 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(-2px) rotate(2deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes sco-leaf { 0% { transform: translate(0,0) rotate(20deg); opacity:1 } 50% { transform: translate(-20px,80px) rotate(80deg); opacity:.8 } 100% { transform: translate(-40px,160px) rotate(140deg); opacity:0 } }

.scn-orchard-ring-farewell { background: linear-gradient(180deg, #f0a060 0%, #d08040 30%, #a06030 60%, #4a2a1a 100%), radial-gradient(ellipse at 70% 20%, #ffc080 0%, transparent 50%); }
.scn-orchard-ring-farewell .bg-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #a8c8e0 0%, #f0c080 50%, transparent 100%); animation: srf-sky 10s ease-in-out infinite alternate; }
.scn-orchard-ring-farewell .bg-orchard { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 50%, #1a2a1a 100%); border-radius:40% 60% 0 0 / 50% 40% 0 0; box-shadow:inset 0 10px 20px rgba(0,0,0,.4); animation: srf-orchard 18s ease-in-out infinite; }
.scn-orchard-ring-farewell .ring-large { position:absolute; top:35%; left:50%; width:70px; height:70px; transform:translate(-50%,-50%); border:6px solid #c8a060; border-radius:50%; background: transparent; box-shadow: 0 0 20px 4px rgba(200,160,96,.4), inset 0 0 16px 2px rgba(200,160,96,.3); animation: srf-ring 8s ease-in-out infinite; }
.scn-orchard-ring-farewell .ring-stone { position:absolute; top:35%; left:50%; width:16px; height:16px; transform:translate(-50%,-50%); background: radial-gradient(circle, #e0a050 0%, #b07030 70%); border-radius:50%; box-shadow:0 0 12px 4px #d09040, 0 0 24px 8px rgba(208,144,64,.5); animation: srf-stone 4s ease-in-out infinite alternate; }
.scn-orchard-ring-farewell .sunset-glow { position:absolute; bottom:40%; right:15%; width:100px; height:80px; background: radial-gradient(ellipse at 60% 50%, rgba(255,180,80,.6) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: srf-glow 7s ease-in-out infinite alternate; }
.scn-orchard-ring-farewell .shadow-hand { position:absolute; bottom:25%; left:38%; width:30px; height:44px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: srf-hand 6s ease-in-out infinite; }
.scn-orchard-ring-farewell .petal.petal-a { position:absolute; top:20%; left:20%; width:8px; height:12px; background: radial-gradient(ellipse at 40% 30%, #d8a0b0 0%, #a06070 100%); border-radius:50% 50% 0 0; animation: srf-petal-a 9s ease-in infinite; }
.scn-orchard-ring-farewell .petal.petal-b { position:absolute; top:30%; left:60%; width:6px; height:10px; background: radial-gradient(ellipse at 40% 30%, #c890a0 0%, #905060 100%); border-radius:50% 50% 0 0; animation: srf-petal-b 11s ease-in infinite; animation-delay: -4s; }
@keyframes srf-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes srf-orchard { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes srf-ring { 0% { transform: translate(-50%,-50%) rotate(0deg) scale(1) } 50% { transform: translate(-50%,-50%) rotate(180deg) scale(1.05) } 100% { transform: translate(-50%,-50%) rotate(360deg) scale(1) } }
@keyframes srf-stone { 0% { box-shadow: 0 0 8px 2px #d09040, 0 0 16px 4px rgba(208,144,64,.4); opacity:.9 } 50% { box-shadow: 0 0 20px 6px #e0a050, 0 0 40px 12px rgba(224,160,80,.6); opacity:1 } 100% { box-shadow: 0 0 10px 3px #d09040, 0 0 20px 6px rgba(208,144,64,.4); opacity:.85 } }
@keyframes srf-glow { 0% { opacity:.4; transform: scale(.9) } 50% { opacity:.8; transform: scale(1.15) } 100% { opacity:.5; transform: scale(1) } }
@keyframes srf-hand { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(6px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(12px) translateY(0) rotate(2deg) } 75% { transform: translateX(18px) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(24px) translateY(0) rotate(3deg) } }
@keyframes srf-petal-a { 0% { transform: translate(0,0) rotate(0deg); opacity:1 } 50% { transform: translate(30px,60px) rotate(90deg); opacity:.7 } 100% { transform: translate(60px,120px) rotate(180deg); opacity:0 } }
@keyframes srf-petal-b { 0% { transform: translate(0,0) rotate(0deg); opacity:1 } 50% { transform: translate(-20px,70px) rotate(-60deg); opacity:.7 } 100% { transform: translate(-40px,140px) rotate(-120deg); opacity:0 } }

.scn-cell-romeo-doom { background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 30%, #3a2a1a 60%, #1a0a0a 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%); }
.scn-cell-romeo-doom .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 50%, #0a0505 100%); box-shadow:inset 0 0 40px rgba(0,0,0,.7); animation: crd-wall 20s ease-in-out infinite alternate; }
.scn-cell-romeo-doom .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:0 0 20% 20%; box-shadow:inset 0 6px 12px rgba(0,0,0,.6); }
.scn-cell-romeo-doom .candle { position:absolute; bottom:28%; left:45%; width:12px; height:40px; background: linear-gradient(180deg, #d0a070 0%, #806040 100%); border-radius:20% 20% 10% 10%; transform:rotate(2deg); animation: crd-candle 6s ease-in-out infinite; }
.scn-cell-romeo-doom .flame { position:absolute; bottom:62%; left:45.5%; width:8px; height:20px; background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #ff8040 40%, #c04020 70%, transparent 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: crd-flame 0.8s ease-in-out infinite alternate; box-shadow:0 0 16px 8px rgba(255,128,64,.4), 0 0 32px 16px rgba(192,64,32,.2); }
.scn-cell-romeo-doom .friar-shadow { position:absolute; bottom:20%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:.6; animation: crd-friar 12s ease-in-out infinite; }
.scn-cell-romeo-doom .romeo-figure { position:absolute; bottom:18%; left:55%; width:28px; height:64px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: crd-romeo 5s ease-in-out infinite; }
.scn-cell-romeo-doom .doom-shadow { position:absolute; top:10%; left:60%; width:80px; height:60px; background: radial-gradient(ellipse at 50% 50%, rgba(40,20,20,.5) 0%, transparent 70%); filter: blur(6px); animation: crd-doom 9s ease-in-out infinite alternate; }
.scn-cell-romeo-doom .chain { position:absolute; top:5%; left:20%; width:4px; height:80px; background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #4a3a2a 100%); border-radius:50%; transform:rotate(10deg); animation: crd-chain 7s ease-in-out infinite; }
@keyframes crd-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes crd-candle { 0% { transform: rotate(0deg) } 50% { transform: rotate(4deg) } 100% { transform: rotate(-2deg) } }
@keyframes crd-flame { 0% { transform: scaleY(.8) scaleX(1.1) translateY(0) } 50% { transform: scaleY(1.1) scaleX(.9) translateY(-2px) } 100% { transform: scaleY(.9) scaleX(1) translateY(0) } }
@keyframes crd-friar { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(8px) rotate(-3deg) } }
@keyframes crd-romeo { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(-2px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(-4px) translateY(0) rotate(-2deg) } 75% { transform: translateX(-6px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-8px) translateY(0) rotate(0) } }
@keyframes crd-doom { 0% { opacity:.2; transform: scale(.8) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.3; transform: scale(.9) } }
@keyframes crd-chain { 0% { transform: rotate(8deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(6deg) } }

.scn-cell-romeo-exile-rant { background: linear-gradient(180deg, #0a0a15 0%, #1a0a0a 30%, #2a1515 60%, #0a0505 100%), radial-gradient(ellipse at 50% 30%, #2a1515 0%, transparent 70%); }
.scn-cell-romeo-exile-rant .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 60%, #000 100%); box-shadow:inset 0 0 60px rgba(0,0,0,.8); animation: rer-deep 15s ease-in-out infinite alternate; }
.scn-cell-romeo-exile-rant .cell-window { position:absolute; top:12%; left:50%; transform:translateX(-50%); width:40px; height:60px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border:3px solid #3a2a1a; border-radius:30% 30% 10% 10%; box-shadow:inset 0 0 12px rgba(0,0,0,.5); animation: rer-window 20s ease-in-out infinite; }
.scn-cell-romeo-exile-rant .light-ray { position:absolute; top:15%; left:50%; transform:translateX(-50%); width:30px; height:100px; background: linear-gradient(180deg, rgba(180,200,220,.3) 0%, rgba(180,200,220,.05) 50%, transparent 100%); filter: blur(4px); animation: rer-ray 8s ease-in-out infinite alternate; }
.scn-cell-romeo-exile-rant .romeo-silhouette { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:36px; height:70px; background: #000; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 0 20px 6px rgba(0,0,0,.6); animation: rer-silhouette 6s ease-in-out infinite; }
.scn-cell-romeo-exile-rant .chain-left { position:absolute; top:5%; left:30%; width:3px; height:90px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50%; transform:rotate(-15deg); transform-origin: top center; animation: rer-chain-l 5s ease-in-out infinite; }
.scn-cell-romeo-exile-rant .chain-right { position:absolute; top:5%; right:30%; width:3px; height:90px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50%; transform:rotate(15deg); transform-origin: top center; animation: rer-chain-r 6s ease-in-out infinite; }
.scn-cell-romeo-exile-rant .dust-mote.dust-a { position:absolute; top:30%; left:40%; width:3px; height:3px; background: rgba(220,230,240,.6); border-radius:50%; filter: blur(1px); animation: rer-dust-a 9s ease-in infinite; }
.scn-cell-romeo-exile-rant .dust-mote.dust-b { position:absolute; top:40%; left:60%; width:2px; height:2px; background: rgba(220,230,240,.5); border-radius:50%; filter: blur(1px); animation: rer-dust-b 12s ease-in infinite; animation-delay: -4s; }
.scn-cell-romeo-exile-rant .dust-mote.dust-c { position:absolute; top:50%; left:50%; width:4px; height:4px; background: rgba(220,230,240,.4); border-radius:50%; filter: blur(1px); animation: rer-dust-c 15s ease-in infinite; animation-delay: -8s; }
@keyframes rer-deep { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes rer-window { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rer-ray { 0% { transform: translateX(-50%) rotate(-3deg); opacity:.3 } 50% { transform: translateX(-50%) rotate(2deg); opacity:.6 } 100% { transform: translateX(-50%) rotate(-1deg); opacity:.4 } }
@keyframes rer-silhouette { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 25% { transform: translateX(-50%) translateY(-1px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 75% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes rer-chain-l { 0% { transform: rotate(-12deg) } 50% { transform: rotate(-18deg) } 100% { transform: rotate(-14deg) } }
@keyframes rer-chain-r { 0% { transform: rotate(12deg) } 50% { transform: rotate(18deg) } 100% { transform: rotate(14deg) } }
@keyframes rer-dust-a { 0% { transform: translate(0,0); opacity:.6 } 50% { transform: translate(-10px,-20px); opacity:.3 } 100% { transform: translate(-20px,-40px); opacity:0 } }
@keyframes rer-dust-b { 0% { transform: translate(0,0); opacity:.5 } 50% { transform: translate(12px,-24px); opacity:.2 } 100% { transform: translate(24px,-48px); opacity:0 } }
@keyframes rer-dust-c { 0% { transform: translate(0,0); opacity:.4 } 50% { transform: translate(-8px,-16px); opacity:.2 } 100% { transform: translate(-16px,-32px); opacity:0 } }

.scn-orchard-farewell {
  background: linear-gradient(180deg, #f7e9c8 0%, #d4a373 40%, #9b7a4a 60%, #4a6b3a 100%), radial-gradient(ellipse at 50% 0%, #ffeec2 0%, transparent 60%);
}
.scn-orchard-farewell .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #87ceeb 0%, #f6d48a 100%); animation: or-sky 14s ease-in-out infinite alternate; }
.scn-orchard-farewell .sun { position:absolute; top:6%; left:20%; width:60px; height:60px; background: radial-gradient(circle, #fff5c0 0%, #f0c27a 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px #f0c27a, 0 0 120px 40px rgba(240,194,122,.3); animation: or-sun 8s ease-in-out infinite alternate; }
.scn-orchard-farewell .tree-left { position:absolute; bottom:40%; left:10%; width:30px; height:180px; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius:20% 20% 10% 10%; transform-origin: bottom center; animation: or-tree 12s ease-in-out infinite; }
.scn-orchard-farewell .tree-right { position:absolute; bottom:38%; right:12%; width:28px; height:160px; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius:20% 20% 10% 10%; transform-origin: bottom center; animation: or-tree 12s ease-in-out infinite reverse; }
.scn-orchard-farewell .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7a9b5e 0%, #4a6b3a 50%, #2d4a22 100%); border-radius:40% 60% 0 0 / 30% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: or-ground 20s ease-in-out infinite alternate; }
.scn-orchard-farewell .figure-left { position:absolute; bottom:35%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #2c1e16 0%, #1a110c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: or-fig-left 6s ease-in-out infinite; }
.scn-orchard-farewell .figure-right { position:absolute; bottom:34%; right:22%; width:22px; height:42px; background: linear-gradient(180deg, #2c1e16 0%, #1a110c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: or-fig-right 6s ease-in-out infinite 0.3s; }
.scn-orchard-farewell .leaf { position:absolute; top:20%; width:8px; height:8px; background: radial-gradient(circle, #b8860b 0%, #8b6508 70%); border-radius:50%; filter: blur(1px); }
.scn-orchard-farewell .leaf-a { left:15%; animation: or-leaf 18s linear infinite; }
.scn-orchard-farewell .leaf-b { left:70%; animation: or-leaf 22s linear infinite 3s; }

@keyframes or-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes or-sun { 0% { transform: scale(0.95); box-shadow: 0 0 40px 15px #f0c27a; } 50% { transform: scale(1.05); box-shadow: 0 0 80px 30px #f0c27a; } 100% { transform: scale(0.95); box-shadow: 0 0 40px 15px #f0c27a; } }
@keyframes or-tree { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.02); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes or-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes or-fig-left { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes or-fig-right { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(3px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes or-leaf { 0% { transform: translateY(0) rotate(0deg); opacity:0.8; } 25% { transform: translateY(30px) rotate(90deg); opacity:1; } 50% { transform: translateY(60px) rotate(180deg); opacity:0.8; } 75% { transform: translateY(90px) rotate(270deg); opacity:0.6; } 100% { transform: translateY(120px) rotate(360deg); opacity:0; } }

.scn-friar-wedding-warning {
  background: linear-gradient(180deg, #c8c0b0 0%, #9e9482 40%, #6b6358 100%), radial-gradient(ellipse at 50% 30%, #e8e0d0 0%, transparent 70%);
  position:relative;
}
.scn-friar-wedding-warning .stone-wall { position:absolute; inset:0; background: linear-gradient(90deg, #5c5548 0%, #7a7265 30%, #5c5548 50%, #7a7265 70%, #5c5548 100%); background-size: 60px 100%; animation: fw-wall 8s linear infinite; }
.scn-friar-wedding-warning .candle { position:absolute; bottom:28%; left:35%; width:8px; height:60px; background: linear-gradient(180deg, #f0d8a0 0%, #c8a060 100%); border-radius:4px; transform-origin: bottom center; animation: fw-candle 4s ease-in-out infinite; }
.scn-friar-wedding-warning .flame { position:absolute; bottom:70%; left:34.8%; width:12px; height:20px; background: radial-gradient(circle at 50% 80%, #ffe080 0%, #f0a030 50%, transparent 80%); border-radius:50%; animation: fw-flame 0.8s ease-in-out infinite alternate; }
.scn-friar-wedding-warning .friar-silhouette { position:absolute; bottom:10%; left:20%; width:30px; height:100px; background: linear-gradient(180deg, #2a2622 0%, #0e0d0b 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fw-friar 6s ease-in-out infinite; }
.scn-friar-wedding-warning .romeo-juliet { position:absolute; bottom:12%; right:22%; width:40px; height:80px; background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: fw-couple 8s ease-in-out infinite 1s; }
.scn-friar-wedding-warning .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.5) 100%); animation: fw-shadow 6s ease-in-out infinite alternate; }

@keyframes fw-wall { 0% { transform: translateX(0); } 100% { transform: translateX(-60px); } }
@keyframes fw-candle { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes fw-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.9; } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1; } 100% { transform: scaleY(1) translateY(0); opacity:0.9; } }
@keyframes fw-friar { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fw-couple { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-3px) rotate(1deg); } 66% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fw-shadow { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.6; } }

.scn-friar-wedding-meeting {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #a09070 100%), radial-gradient(ellipse at 40% 20%, #f0e8d8 0%, transparent 60%);
}
.scn-friar-wedding-meeting .cell-wall { position:absolute; inset:0; background: linear-gradient(90deg, #b8a898 0%, #d0c0b0 50%, #b8a898 100%); animation: fm-wall 20s linear infinite; }
.scn-friar-wedding-meeting .window { position:absolute; top:12%; left:40%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 50%, #f0e8d8 0%, #c8b898 100%); border:4px solid #7a6b5a; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,240,200,0.5); animation: fm-window 10s ease-in-out infinite; }
.scn-friar-wedding-meeting .light-ray { position:absolute; top:12%; left:40%; width:60px; height:80px; background: linear-gradient(135deg, rgba(255,240,200,0.4) 0%, rgba(255,240,200,0) 60%); animation: fm-ray 6s ease-in-out infinite alternate; }
.scn-friar-wedding-meeting .friar { position:absolute; bottom:15%; left:20%; width:35px; height:90px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius:60% 40% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: fm-friar 7s ease-in-out infinite; }
.scn-friar-wedding-meeting .romeo { position:absolute; bottom:18%; left:45%; width:30px; height:85px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fm-romeo 8s ease-in-out infinite 0.5s; }
.scn-friar-wedding-meeting .juliet { position:absolute; bottom:17%; right:15%; width:28px; height:80px; background: linear-gradient(180deg, #4a2a1a 0%, #2a120a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fm-juliet 9s ease-in-out infinite 1s; }
.scn-friar-wedding-meeting .altar { position:absolute; bottom:10%; left:50%; width:80px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 -4px 12px rgba(0,0,0,0.2); animation: fm-altar 12s ease-in-out infinite; }

@keyframes fm-wall { 0% { transform: translateX(0); } 100% { transform: translateX(-100px); } }
@keyframes fm-window { 0% { transform: scale(0.98); opacity:0.9; } 50% { transform: scale(1.02); opacity:1; } 100% { transform: scale(0.98); opacity:0.9; } }
@keyframes fm-ray { 0% { transform: rotate(-5deg) translateX(-5px); opacity:0.6; } 50% { transform: rotate(0deg) translateX(0); opacity:0.8; } 100% { transform: rotate(5deg) translateX(5px); opacity:0.6; } }
@keyframes fm-friar { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fm-romeo { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-3px) rotate(1deg); } 66% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fm-juliet { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(2px) rotate(-2deg); } 40% { transform: translateX(0) rotate(0deg); } 60% { transform: translateX(-2px) rotate(2deg); } 80% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fm-altar { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01); } 100% { transform: translateX(-50%) scale(1); } }

.scn-friar-wedding-ceremony {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 40%, #a09070 100%), radial-gradient(ellipse at 50% 40%, #f0e8d8 0%, transparent 70%);
}
.scn-friar-wedding-ceremony .bg-ceremony { position:absolute; inset:0; background: linear-gradient(90deg, #b8a898 0%, #d0c0b0 50%, #b8a898 100%); animation: fc-bg 25s linear infinite; }
.scn-friar-wedding-ceremony .altar-top { position:absolute; bottom:15%; left:50%; width:100px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 -6px 20px rgba(0,0,0,0.2); animation: fc-altar 10s ease-in-out infinite; }
.scn-friar-wedding-ceremony .hand-left { position:absolute; bottom:28%; left:38%; width:20px; height:30px; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fc-hand-l 5s ease-in-out infinite; }
.scn-friar-wedding-ceremony .hand-right { position:absolute; bottom:28%; right:38%; width:20px; height:30px; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fc-hand-r 5s ease-in-out infinite 0.2s; }
.scn-friar-wedding-ceremony .robe { position:absolute; bottom:0; left:40%; width:60px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; animation: fc-robe 12s ease-in-out infinite; }
.scn-friar-wedding-ceremony .light-beam { position:absolute; top:0; left:40%; width:60px; height:60%; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, rgba(255,240,200,0) 100%); transform-origin: top center; animation: fc-beam 7s ease-in-out infinite alternate; }
.scn-friar-wedding-ceremony .glow { position:absolute; bottom:25%; left:50%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,230,180,0.4) 0%, transparent 70%); transform:translateX(-50%); animation: fc-glow 6s ease-in-out infinite alternate; }

@keyframes fc-bg { 0% { transform: translateX(0); } 100% { transform: translateX(-100px); } }
@keyframes fc-altar { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes fc-hand-l { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes fc-hand-r { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-2px) rotate(0deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes fc-robe { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes fc-beam { 0% { transform: scaleX(0.95) rotate(-3deg); opacity:0.7; } 50% { transform: scaleX(1.05) rotate(0deg); opacity:1; } 100% { transform: scaleX(0.95) rotate(3deg); opacity:0.7; } }
@keyframes fc-glow { 0% { opacity:0.6; transform:translateX(-50%) scale(0.9); } 50% { opacity:1; transform:translateX(-50%) scale(1.1); } 100% { opacity:0.6; transform:translateX(-50%) scale(0.9); } }

/* mantua-street-poison-demand */
.scn-mantua-street-poison-demand {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a3a6e 70%, #8a5a3a 100%),
    radial-gradient(ellipse at 30% 100%, #8a5a3a 0%, transparent 60%);
}
.scn-mantua-street-poison-demand .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #6a4a3a 100%);
  animation: ms1-sky 14s ease-in-out infinite alternate;
}
.scn-mantua-street-poison-demand .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.5);
  animation: ms1-street 20s ease-in-out infinite alternate;
}
.scn-mantua-street-poison-demand .shop {
  position: absolute; bottom: 25%; left: 20%; width: 35%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
}
.scn-mantua-street-poison-demand .sign {
  position: absolute; bottom: 54%; left: 30%; width: 12%; height: 8%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 40% 40%;
  transform-origin: top center;
  animation: ms1-sign 4s ease-in-out infinite;
}
.scn-mantua-street-poison-demand .figure-romeo {
  position: absolute; bottom: 28%; left: 25%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms1-walk 5s ease-in-out infinite;
}
.scn-mantua-street-poison-demand .figure-apoth {
  position: absolute; bottom: 28%; left: 45%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ms1-stand 6s ease-in-out infinite;
}
.scn-mantua-street-poison-demand .lantern {
  position: absolute; bottom: 52%; left: 42%; width: 8px; height: 10px;
  background: radial-gradient(circle, #ffd680 0%, #b08040 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,214,128,.5), 0 0 40px 12px rgba(255,214,128,.2);
  animation: ms1-lantern 2s ease-in-out infinite alternate;
}
@keyframes ms1-sky {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes ms1-street {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ms1-sign {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes ms1-walk {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(8px) rotate(0); }
  60% { transform: translateX(16px) rotate(1deg); }
  100% { transform: translateX(24px) rotate(0); }
}
@keyframes ms1-stand {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes ms1-lantern {
  0% { opacity: .7; box-shadow: 0 0 15px 4px #b08040; }
  50% { opacity: 1; box-shadow: 0 0 28px 8px #ffd680; }
  100% { opacity: .8; box-shadow: 0 0 18px 5px #b08040; }
}

/* mantua-street-apothecary-consents */
.scn-mantua-street-apothecary-consents {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #5a3a2a 80%, #7a4a2a 100%),
    radial-gradient(ellipse at 70% 100%, #7a4a2a 0%, transparent 50%);
}
.scn-mantua-street-apothecary-consents .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #7a4a2a 100%);
  animation: ms2-sky 12s ease-in-out infinite alternate;
}
.scn-mantua-street-apothecary-consents .wall {
  position: absolute; bottom: 0; left: 0; top: 20%; width: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 0 10% 0 0;
  box-shadow: inset -6px 0 12px rgba(0,0,0,.4);
}
.scn-mantua-street-apothecary-consents .figure-romeo {
  position: absolute; bottom: 28%; left: 30%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ms2-romeo 4s ease-in-out infinite;
}
.scn-mantua-street-apothecary-consents .figure-apoth {
  position: absolute; bottom: 28%; left: 45%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ms2-apoth 3s ease-in-out infinite alternate;
}
.scn-mantua-street-apothecary-consents .hand {
  position: absolute; bottom: 40%; left: 42%; width: 12px; height: 8px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40%;
  transform-origin: 100% 50%;
  animation: ms2-hand 2.5s ease-in-out infinite;
}
.scn-mantua-street-apothecary-consents .vial {
  position: absolute; bottom: 42%; left: 46%; width: 6px; height: 10px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 8px 2px rgba(100,70,40,.3);
  animation: ms2-vial 3s ease-in-out infinite alternate;
}
.scn-mantua-street-apothecary-consents .shadow {
  position: absolute; bottom: 24%; left: 25%; right: 20%; height: 6%;
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ms2-shadow 6s ease-in-out infinite;
}
@keyframes ms2-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes ms2-romeo {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(4px) rotate(0); }
  60% { transform: translateX(8px) rotate(1deg); }
  100% { transform: translateX(12px) rotate(0); }
}
@keyframes ms2-apoth {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(0); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes ms2-hand {
  0% { transform: translateX(0) rotate(-5deg); }
  50% { transform: translateX(-3px) rotate(5deg); }
  100% { transform: translateX(0) rotate(-5deg); }
}
@keyframes ms2-vial {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: .7; transform: scale(1); }
}
@keyframes ms2-shadow {
  0% { opacity: .5; transform: scaleX(1); }
  50% { opacity: .3; transform: scaleX(.9); }
  100% { opacity: .5; transform: scaleX(1); }
}

/* friar-cell-friar-john-delay */
.scn-friar-cell-friar-john-delay {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, transparent 60%);
}
.scn-friar-cell-friar-john-delay .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,.3);
}
.scn-friar-cell-friar-john-delay .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 0 0;
}
.scn-friar-cell-friar-john-delay .desk {
  position: absolute; bottom: 20%; left: 25%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-friar-cell-friar-john-delay .candle {
  position: absolute; bottom: 30%; left: 35%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 20% 20% 30% 30%;
}
.scn-friar-cell-friar-john-delay .candle::after {
  content: ''; position: absolute; top: -6px; left: 50%; transform: translateX(-50%);
  width: 4px; height: 6px;
  background: radial-gradient(circle, #ffd680 0%, #e8a040 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,214,128,.5);
  animation: fc1-flame 1.5s ease-in-out infinite alternate;
}
.scn-friar-cell-friar-john-delay .figure-john {
  position: absolute; bottom: 18%; left: 40%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fc1-john 5s ease-in-out infinite;
}
.scn-friar-cell-friar-john-delay .figure-laurence {
  position: absolute; bottom: 18%; left: 55%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fc1-laurence 4.5s ease-in-out infinite;
}
.scn-friar-cell-friar-john-delay .door {
  position: absolute; bottom: 30%; right: 10%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 12px rgba(0,0,0,.5);
  animation: fc1-door 8s ease-in-out infinite;
}
@keyframes fc1-flame {
  0% { transform: translateX(-50%) scaleY(1); opacity: .8; }
  50% { transform: translateX(-50%) scaleY(1.2); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(1); opacity: .9; }
}
@keyframes fc1-john {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(3px) rotate(0); }
  60% { transform: translateX(6px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes fc1-laurence {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes fc1-door {
  0% { transform: rotateY(0); }
  25% { transform: rotateY(-10deg); }
  75% { transform: rotateY(-5deg); }
  100% { transform: rotateY(0); }
}

/* friar-cell-letter-fails */
.scn-friar-cell-letter-fails {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, transparent 70%);
}
.scn-friar-cell-letter-fails .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 0 12% 12%;
}
.scn-friar-cell-letter-fails .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 6% 6% 0 0;
}
.scn-friar-cell-letter-fails .desk {
  position: absolute; bottom: 18%; left: 30%; width: 25%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-friar-cell-letter-fails .candle {
  position: absolute; bottom: 26%; left: 38%; width: 5px; height: 12px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 30% 30%;
}
.scn-friar-cell-letter-fails .candle::after {
  content: ''; position: absolute; top: -5px; left: 50%; transform: translateX(-50%);
  width: 3px; height: 5px;
  background: radial-gradient(circle, #ffc060 0%, #d08020 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(255,192,96,.4);
  animation: fc2-flame 2s ease-in-out infinite alternate;
}
.scn-friar-cell-letter-fails .figure-laurence {
  position: absolute; bottom: 16%; left: 45%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fc2-figure 6s ease-in-out infinite;
}
.scn-friar-cell-letter-fails .lantern {
  position: absolute; bottom: 30%; left: 55%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd680 0%, #b07030 60%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 16px 4px rgba(255,214,128,.4);
  animation: fc2-lantern 3s ease-in-out infinite alternate;
}
.scn-friar-cell-letter-fails .letter {
  position: absolute; bottom: 20%; left: 50%; width: 10px; height: 12px;
  background: linear-gradient(180deg, #c8b080 0%, #a89060 100%);
  border-radius: 2% 2% 4% 4%;
  transform-origin: top left;
  animation: fc2-letter 4s ease-in-out infinite;
}
@keyframes fc2-flame {
  0% { transform: translateX(-50%) scaleY(1); opacity: .7; }
  50% { transform: translateX(-50%) scaleY(1.15); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(1); opacity: .8; }
}
@keyframes fc2-figure {
  0% { transform: translateX(0) rotate(0); }
  40% { transform: translateX(2px) rotate(-1deg); }
  80% { transform: translateX(-1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes fc2-lantern {
  0% { transform: rotate(-5deg); opacity: .6; }
  50% { transform: rotate(5deg); opacity: 1; }
  100% { transform: rotate(-5deg); opacity: .7; }
}
@keyframes fc2-letter {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-2px) rotate(-3deg); }
  60% { transform: translateY(0) rotate(0); }
  100% { transform: translateY(-1px) rotate(2deg); }
}

/* romeo-drinks-poison */
.scn-romeo-drinks-poison {
  background: linear-gradient(180deg, #0d0a1a 0%, #1a122e 40%, #2a1a3a 100%),
              radial-gradient(ellipse at 50% 20%, #2a1a3a 0%, transparent 70%);
}
.scn-romeo-drinks-poison .bg-vault { position:absolute; inset:0; background: linear-gradient(180deg, #0d0a1a 0%, #1a122e 40%, #0a0812 100%); animation: rdp-bg 16s ease-in-out infinite alternate; }
.scn-romeo-drinks-poison .arch-left { position:absolute; bottom:0; left:0; width:45%; height:60%; background: linear-gradient(135deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 0 50% 0 0 / 0 80% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: rdp-arch 10s ease-in-out infinite; }
.scn-romeo-drinks-poison .arch-right { position:absolute; bottom:0; right:0; width:45%; height:60%; background: linear-gradient(225deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 0 0 0 / 80% 0 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: rdp-arch 10s ease-in-out infinite reverse; }
.scn-romeo-drinks-poison .window-dull { position:absolute; top:12%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, rgba(200,220,255,.15) 0%, transparent 80%); border-radius: 10%; box-shadow: 0 0 40px 20px rgba(200,220,255,.05); animation: rdp-window 12s ease-in-out infinite alternate; }
.scn-romeo-drinks-poison .romeo-sil { position:absolute; bottom:8%; left:38%; width:24px; height:50px; background: linear-gradient(180deg, #0a0a12 0%, #050510 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: rdp-figure 6s ease-in-out infinite; }
.scn-romeo-drinks-poison .cup-poison { position:absolute; bottom:12%; left:43%; width:16px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: rdp-cup 4s ease-in-out infinite; }
.scn-romeo-drinks-poison .bier-sil { position:absolute; bottom:5%; left:50%; width:60px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 30px; box-shadow: inset 0 2px 6px rgba(0,0,0,.3); animation: rdp-bier 14s ease-in-out infinite; }
.scn-romeo-drinks-poison .shadow-fall { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); animation: rdp-shadow 8s ease-in-out infinite alternate; }
@keyframes rdp-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes rdp-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(.97) } 100% { transform: scaleY(1) } }
@keyframes rdp-window { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.35 } }
@keyframes rdp-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-0.5deg) } 75% { transform: translateY(-1px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes rdp-cup { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes rdp-bier { 0%,100% { opacity:.7 } 50% { opacity:.85 } }
@keyframes rdp-shadow { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.55 } }

/* item-poison-cup */
.scn-item-poison-cup {
  background: radial-gradient(ellipse at 50% 40%, #1a122e 0%, #0d0a1a 100%),
              linear-gradient(180deg, #0a0812 0%, #1a122e 60%);
}
.scn-item-poison-cup .bg-close { position:absolute; inset:0; background: linear-gradient(180deg, #0a0812 0%, #141026 100%); animation: ipc-bg 10s ease-in-out infinite alternate; }
.scn-item-poison-cup .cup-body { position:absolute; bottom:30%; left:50%; width:60px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 50%, #0a0804 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6), 0 8px 16px rgba(0,0,0,.4); animation: ipc-body 8s ease-in-out infinite; }
.scn-item-poison-cup .cup-stem { position:absolute; bottom:20%; left:50%; width:8px; height:30px; transform:translateX(-50%); background: linear-gradient(90deg, #2a1a0a 0%, #4a3a2a 50%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: ipc-stem 6s ease-in-out infinite; }
.scn-item-poison-cup .cup-base { position:absolute; bottom:15%; left:50%; width:40px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ipc-base 6s ease-in-out infinite; }
.scn-item-poison-cup .poison-glow { position:absolute; bottom:40%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, rgba(80,200,100,.4) 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(80,200,100,.2); animation: ipc-glow 4s ease-in-out infinite alternate; }
.scn-item-poison-cup .hand-partial { position:absolute; bottom:18%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%; transform-origin: bottom center; animation: ipc-hand 7s ease-in-out infinite; }
.scn-item-poison-cup .vapor { position:absolute; top:25%; left:50%; width:10px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(200,255,220,.15) 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: ipc-vapor 5s ease-in-out infinite; }
@keyframes ipc-bg { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ipc-body { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(.98) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes ipc-stem { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes ipc-base { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.03) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes ipc-glow { 0% { opacity:.4; transform: translateX(-50%) scale(1) } 50% { opacity:.8; transform: translateX(-50%) scale(1.2) } 100% { opacity:.5; transform: translateX(-50%) scale(1.05) } }
@keyframes ipc-hand { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes ipc-vapor { 0% { opacity:.3; transform: translateX(-50%) translateY(0) } 50% { opacity:.6; transform: translateX(-50%) translateY(-10px) } 100% { opacity:.3; transform: translateX(-50%) translateY(0) } }

/* friar-enters-churchyard */
.scn-friar-enters-churchyard {
  background: linear-gradient(180deg, #1a0e08 0%, #2a1a0e 40%, #0d0804 100%),
              radial-gradient(ellipse at 40% 20%, #3a1a0a 0%, transparent 60%);
}
.scn-friar-enters-churchyard .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #1a0e08 0%, #0d0804 100%); animation: fec-bg 12s ease-in-out infinite alternate; }
.scn-friar-enters-churchyard .moon-glow { position:absolute; top:8%; left:20%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,200,150,.1) 0%, transparent 70%); border-radius: 50%; animation: fec-moon 20s ease-in-out infinite; }
.scn-friar-enters-churchyard .friar-figure { position:absolute; bottom:10%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 20px 5px rgba(200,100,50,.2); animation: fec-walk 6s ease-in-out infinite; }
.scn-friar-enters-churchyard .lantern-light { position:absolute; bottom:20%; left:35%; width:12px; height:18px; background: radial-gradient(circle, #ffb060 0%, transparent 80%); border-radius: 10px; box-shadow: 0 0 40px 15px #c07030; animation: fec-lantern 3s ease-in-out infinite alternate; }
.scn-friar-enters-churchyard .tombstone-left { position:absolute; bottom:8%; left:15%; width:40px; height:30px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: fec-tomb 15s ease-in-out infinite; }
.scn-friar-enters-churchyard .tombstone-right { position:absolute; bottom:5%; right:20%; width:50px; height:35px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: fec-tomb 15s ease-in-out infinite reverse; }
.scn-friar-enters-churchyard .crow { position:absolute; top:30%; left:60%; width:30px; height:20px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: center; box-shadow: 0 0 6px rgba(0,0,0,.6); animation: fec-crow 8s ease-in-out infinite; }
.scn-friar-enters-churchyard .spade { position:absolute; bottom:15%; left:42%; width:6px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 3px; transform-origin: bottom center; animation: fec-spade 6s ease-in-out infinite; }
.scn-friar-enters-churchyard .ground-mist { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(80,40,20,.3) 100%); filter: blur(6px); animation: fec-mist 10s ease-in-out infinite alternate; }
@keyframes fec-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes fec-moon { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.45; transform: scale(1) } }
@keyframes fec-walk { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(6px) rotate(1deg) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(18px) rotate(1deg) } 100% { transform: translateX(24px) rotate(0deg) } }
@keyframes fec-lantern { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.8; transform: scale(1.05) } }
@keyframes fec-tomb { 0% { transform: scaleY(1) } 50% { transform: scaleY(.95) } 100% { transform: scaleY(1) } }
@keyframes fec-crow { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(16px) rotate(-1deg) } 75% { transform: translateX(24px) rotate(1deg) } 100% { transform: translateX(32px) rotate(0deg) } }
@keyframes fec-spade { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }
@keyframes fec-mist { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

/* friar-balthasar-dialogue */
.scn-friar-balthasar-dialogue {
  background: linear-gradient(180deg, #1a0e08 0%, #2a1a0e 40%, #0d0804 100%),
              radial-gradient(ellipse at 50% 30%, #3a1a0a 0%, transparent 60%);
}
.scn-friar-balthasar-dialogue .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #1a0e08 0%, #0d0804 100%); animation: fbd-bg 14s ease-in-out infinite alternate; }
.scn-friar-balthasar-dialogue .moon-glow { position:absolute; top:10%; right:20%; width:100px; height:100px; background: radial-gradient(circle, rgba(255,200,150,.08) 0%, transparent 70%); border-radius: 50%; animation: fbd-moon 22s ease-in-out infinite; }
.scn-friar-balthasar-dialogue .friar-figure { position:absolute; bottom:10%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 20px 5px rgba(200,100,50,.2); animation: fbd-walk-friar 8s ease-in-out infinite; }
.scn-friar-balthasar-dialogue .balthasar-figure { position:absolute; bottom:10%; left:55%; width:28px; height:56px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 20px 5px rgba(200,100,50,.15); animation: fbd-walk-balt 10s ease-in-out infinite; }
.scn-friar-balthasar-dialogue .lantern-friar { position:absolute; bottom:20%; left:28%; width:14px; height:20px; background: radial-gradient(circle, #ffb060 0%, transparent 80%); border-radius: 10px; box-shadow: 0 0 40px 15px #c07030; animation: fbd-lantern1 3s ease-in-out infinite alternate; }
.scn-friar-balthasar-dialogue .lantern-balt { position:absolute; bottom:22%; left:58%; width:12px; height:18px; background: radial-gradient(circle, #ffb060 0%, transparent 80%); border-radius: 10px; box-shadow: 0 0 30px 10px #c07030; animation: fbd-lantern2 3.5s ease-in-out infinite alternate; }
.scn-friar-balthasar-dialogue .tomb-mid { position:absolute; bottom:5%; left:40%; width:60px; height:30px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: fbd-tomb 18s ease-in-out infinite; }
.scn-friar-balthasar-dialogue .ground-mist { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(80,40,20,.3) 100%); filter: blur(6px); animation: fbd-mist 12s ease-in-out infinite alternate; }
.scn-friar-balthasar-dialogue .shadow-arch { position:absolute; top:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); animation: fbd-arch 15s ease-in-out infinite alternate; }
@keyframes fbd-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes fbd-moon { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.5; transform: scale(1.1) } 100% { opacity:.35; transform: scale(1) } }
@keyframes fbd-walk-friar { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(0.5deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(0.5deg) } 100% { transform: translateX(16px) rotate(0deg) } }
@keyframes fbd-walk-balt { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-3px) rotate(-0.5deg) } 50% { transform: translateX(-6px) rotate(1deg) } 75% { transform: translateX(-9px) rotate(-0.5deg) } 100% { transform: translateX(-12px) rotate(0deg) } }
@keyframes fbd-lantern1 { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:.7; transform: scale(1.05) } }
@keyframes fbd-lantern2 { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.9; transform: scale(1.1) } 100% { opacity:.6; transform: scale(1.05) } }
@keyframes fbd-tomb { 0% { transform: scaleY(1) } 50% { transform: scaleY(.96) } 100% { transform: scaleY(1) } }
@keyframes fbd-mist { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes fbd-arch { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.35 } }

.scn-orchard-capulet-rage {
  background: 
    linear-gradient(180deg, #1e2a3e 0%, #2c3850 30%, #3a4a60 60%, #4a5a6a 100%),
    radial-gradient(ellipse at 50% 100%, #4a5a6a 0%, transparent 70%);
}
.scn-orchard-capulet-rage .sky-dawn {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a3a50 0%, #708090 40%, #b0a0a0 100%);
  animation: ocr-sky 12s ease-in-out infinite alternate;
}
.scn-orchard-capulet-rage .orchard-trees {
  position:absolute; bottom:30%; left:0; right:0; height:35%;
  background: 
    radial-gradient(ellipse 60% 40% at 20% 80%, #1a2a1a 0%, transparent 60%),
    radial-gradient(ellipse 50% 30% at 70% 70%, #2a3a2a 0%, transparent 50%);
  border-radius: 30% 40% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: ocr-trees 20s ease-in-out infinite alternate;
}
.scn-orchard-capulet-rage .wall-left {
  position:absolute; bottom:20%; left:5%; width:15%; height:50%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 5% 0 0 5%;
  box-shadow: 0 6px 15px rgba(0,0,0,0.7);
}
.scn-orchard-capulet-rage .figure-capulet {
  position:absolute; bottom:22%; left:35%; width:30px; height:55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ocr-capulet 3s ease-in-out infinite;
}
.scn-orchard-capulet-rage .figure-juliet {
  position:absolute; bottom:25%; left:52%; width:22px; height:40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ocr-juliet 4s ease-in-out infinite alternate;
}
.scn-orchard-capulet-rage .mist {
  position:absolute; bottom:35%; left:0; right:0; height:15%;
  background: linear-gradient(90deg, rgba(180,190,200,0.2) 0%, rgba(200,210,220,0.4) 50%, rgba(180,190,200,0.2) 100%);
  filter: blur(12px);
  animation: ocr-mist 8s ease-in-out infinite alternate;
}
.scn-orchard-capulet-rage .cloud-1 {
  position:absolute; top:10%; left:15%; width:100px; height:20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ocr-drift1 40s linear infinite;
}
.scn-orchard-capulet-rage .cloud-2 {
  position:absolute; top:18%; right:10%; width:70px; height:14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ocr-drift2 55s linear infinite reverse;
}
@keyframes ocr-sky {
  0% { opacity:0.7; background-position: 0% 0%; }
  50% { opacity:0.9; background-position: 50% 20%; }
  100% { opacity:0.8; background-position: 100% 0%; }
}
@keyframes ocr-trees {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes ocr-capulet {
  0% { transform: rotate(-2deg) translateX(0); }
  25% { transform: rotate(3deg) translateX(4px); }
  50% { transform: rotate(-1deg) translateX(0); }
  75% { transform: rotate(2deg) translateX(-3px); }
  100% { transform: rotate(-2deg) translateX(0); }
}
@keyframes ocr-juliet {
  0% { transform: translateY(0) rotate(1deg); }
  33% { transform: translateY(-2px) rotate(-2deg); }
  66% { transform: translateY(1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ocr-mist {
  0% { opacity:0.3; transform: translateX(0); }
  50% { opacity:0.6; transform: translateX(10px); }
  100% { opacity:0.4; transform: translateX(-10px); }
}
@keyframes ocr-drift1 {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}
@keyframes ocr-drift2 {
  0% { transform: translateX(0); }
  100% { transform: translateX(-110vw); }
}

.scn-orchard-part-decree {
  background: 
    linear-gradient(180deg, #20283a 0%, #303a4a 40%, #404a5a 100%),
    radial-gradient(ellipse at 50% 0%, #505a6a 0%, transparent 70%);
}
.scn-orchard-part-decree .bg-arch {
  position:absolute; inset:0;
  background: radial-gradient(ellipse 80% 100% at 50% 100%, #2a3040 0%, #1a202a 100%);
  animation: opd-arch 15s ease-in-out infinite alternate;
}
.scn-orchard-part-decree .pillar-left {
  position:absolute; bottom:10%; left:10%; width:6%; height:80%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 2px 0 10px rgba(0,0,0,0.6);
}
.scn-orchard-part-decree .pillar-right {
  position:absolute; bottom:10%; right:10%; width:6%; height:80%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: -2px 0 10px rgba(0,0,0,0.6);
}
.scn-orchard-part-decree .table {
  position:absolute; bottom:12%; left:30%; right:30%; height:8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: opd-table 20s ease-in-out infinite;
}
.scn-orchard-part-decree .scroll {
  position:absolute; bottom:18%; left:44%; width:10%; height:5%;
  background: linear-gradient(135deg, #b0a06a 0%, #8a7a5a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: opd-scroll 6s ease-in-out infinite alternate;
}
.scn-orchard-part-decree .hand-nurse {
  position:absolute; bottom:20%; left:38%; width:28px; height:35px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: opd-hand 4s ease-in-out infinite;
}
.scn-orchard-part-decree .lantern {
  position:absolute; bottom:30%; left:48%; width:8px; height:12px;
  background: radial-gradient(circle, #d0b060 0%, #a08040 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #c09040, 0 0 40px 12px rgba(192,144,64,0.4);
  animation: opd-lantern 3s ease-in-out infinite alternate;
}
.scn-orchard-part-decree .shadow-figure {
  position:absolute; bottom:10%; right:15%; width:25px; height:45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  opacity:0.6;
  animation: opd-shadow 5s ease-in-out infinite alternate;
}
@keyframes opd-arch {
  0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; }
}
@keyframes opd-table {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes opd-scroll {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(3px); }
  100% { transform: rotate(-3deg) translateX(0); }
}
@keyframes opd-hand {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(-10deg) translateX(5px); }
  50% { transform: rotate(5deg) translateX(-2px); }
  75% { transform: rotate(-8deg) translateX(3px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes opd-lantern {
  0% { box-shadow: 0 0 12px 2px #a08040; opacity:0.7; }
  50% { box-shadow: 0 0 28px 8px #e0c060; opacity:1; }
  100% { box-shadow: 0 0 16px 4px #b09050; opacity:0.8; }
}
@keyframes opd-shadow {
  0% { transform: translateY(0) scaleY(1); opacity:0.5; }
  50% { transform: translateY(-4px) scaleY(1.1); opacity:0.7; }
  100% { transform: translateY(0) scaleY(1); opacity:0.5; }
}

.scn-orchard-capulet-threatens {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 40%, #3a3a4e 100%),
    radial-gradient(ellipse at 30% 80%, #4a4a5a 0%, transparent 60%);
}
.scn-orchard-capulet-threatens .bg-wall {
  position:absolute; inset:0 20% 0 0;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 0 30% 0 0 / 0 50% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
  animation: oct-wall 8s ease-in-out infinite alternate;
}
.scn-orchard-capulet-threatens .hand-pointing {
  position:absolute; bottom:30%; left:35%; width:40px; height:50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: rotate(20deg) scaleX(1.3);
  transform-origin: 80% 80%;
  animation: oct-hand 3s ease-in-out infinite;
}
.scn-orchard-capulet-threatens .juliet-head {
  position:absolute; bottom:35%; right:15%; width:20px; height:24px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: oct-head 5s ease-in-out infinite alternate;
}
.scn-orchard-capulet-threatens .juliet-body {
  position:absolute; bottom:10%; right:12%; width:24px; height:45px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: oct-body 5s ease-in-out infinite alternate;
}
.scn-orchard-capulet-threatens .cape-back {
  position:absolute; bottom:25%; left:20%; width:60px; height:50px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 30% 20% 40% / 60% 40% 30% 50%;
  transform: rotate(-15deg);
  opacity:0.8;
  animation: oct-cape 6s ease-in-out infinite;
}
.scn-orchard-capulet-threatens .dust-particles {
  position:absolute; bottom:20%; left:40%; width:20%; height:10%;
  background: radial-gradient(circle at 30% 50%, rgba(200,180,140,0.15) 0%, transparent 60%);
  filter: blur(4px);
  animation: oct-dust 4s ease-in-out infinite alternate;
}
.scn-orchard-capulet-threatens .glimmer {
  position:absolute; bottom:45%; right:30%; width:8px; height:8px;
  background: radial-gradient(circle, #ffe080 0%, transparent 70%);
  border-radius: 50%;
  animation: oct-glimmer 2s ease-in-out infinite alternate;
  filter: blur(2px);
}
@keyframes oct-wall {
  0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; }
}
@keyframes oct-hand {
  0% { transform: rotate(15deg) translateX(0); }
  30% { transform: rotate(25deg) translateX(5px); }
  60% { transform: rotate(20deg) translateX(2px); }
  100% { transform: rotate(15deg) translateX(0); }
}
@keyframes oct-head {
  0% { transform: rotate(-12deg) translateX(0); }
  50% { transform: rotate(-5deg) translateX(-3px); }
  100% { transform: rotate(-12deg) translateX(0); }
}
@keyframes oct-body {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.05); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes oct-cape {
  0% { transform: rotate(-15deg) scaleX(1); }
  50% { transform: rotate(-10deg) scaleX(1.1); }
  100% { transform: rotate(-15deg) scaleX(1); }
}
@keyframes oct-dust {
  0% { opacity:0.2; transform: translateX(0); }
  50% { opacity:0.5; transform: translateX(5px); }
  100% { opacity:0.3; transform: translateX(-5px); }
}
@keyframes oct-glimmer {
  0% { opacity:0.3; transform: scale(0.8); }
  50% { opacity:1; transform: scale(1.2); }
  100% { opacity:0.5; transform: scale(0.9); }
}

.scn-orchard-capulet-curse {
  background: 
    linear-gradient(180deg, #101020 0%, #202030 40%, #303040 100%),
    radial-gradient(ellipse at 50% 20%, #303040 0%, transparent 60%);
}
.scn-orchard-capulet-curse .bg-sky-dark {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #182030 0%, #283848 50%, #405060 100%);
  animation: occ-sky 10s ease-in-out infinite alternate;
}
.scn-orchard-capulet-curse .ground-overhang {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a05 100%);
  border-radius: 20% 30% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.8);
  animation: occ-ground 18s ease-in-out infinite alternate;
}
.scn-orchard-capulet-curse .figure-curse-capulet {
  position:absolute; bottom:28%; left:30%; width:40px; height:65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: occ-capulet 3s ease-in-out infinite;
}
.scn-orchard-capulet-curse .figure-curse-juliet {
  position:absolute; bottom:30%; right:25%; width:18px; height:35px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: occ-juliet 4s ease-in-out infinite alternate;
}
.scn-orchard-capulet-curse .lightning-flash {
  position:absolute; top:5%; left:45%; width:10px; height:40px;
  background: linear-gradient(180deg, rgba(255,255,200,0.8) 0%, transparent 100%);
  clip-path: polygon(50% 0%, 60% 30%, 40% 30%, 50% 60%, 30% 60%, 50% 100%, 70% 70%, 50% 70%);
  opacity:0;
  animation: occ-lightning 8s ease-in-out infinite;
}
.scn-orchard-capulet-curse .shadow-stripes {
  position:absolute; bottom:20%; left:10%; right:10%; height:30%;
  background: repeating-linear-gradient(
    90deg,
    rgba(0,0,0,0.3) 0px,
    rgba(0,0,0,0) 20px,
    rgba(0,0,0,0.3) 40px,
    rgba(0,0,0,0) 60px
  );
  animation: occ-stripes 12s linear infinite;
}
.scn-orchard-capulet-curse .rock {
  position:absolute; bottom:15%; right:10%; width:30px; height:20px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 40% 60% 30% 50% / 50% 40% 60% 50%;
  animation: occ-rock 20s ease-in-out infinite alternate;
}
@keyframes occ-sky {
  0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; }
}
@keyframes occ-ground {
  0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); }
}
@keyframes occ-capulet {
  0% { transform: rotate(-3deg) translateX(0); }
  25% { transform: rotate(4deg) translateX(6px); }
  50% { transform: rotate(-2deg) translateX(2px); }
  75% { transform: rotate(3deg) translateX(-4px); }
  100% { transform: rotate(-3deg) translateX(0); }
}
@keyframes occ-juliet {
  0% { transform: translateY(0) rotate(2deg); }
  33% { transform: translateY(-3px) rotate(-3deg); }
  66% { transform: translateY(1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes occ-lightning {
  0%, 95% { opacity:0; }
  5% { opacity:1; }
  10% { opacity:0.5; }
  15% { opacity:1; }
  20% { opacity:0; }
}
@keyframes occ-stripes {
  0% { transform: translateX(0); }
  100% { transform: translateX(-60px); }
}
@keyframes occ-rock {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

.scn-capulet-street-sue {
  background: linear-gradient(180deg, #f0d5a0 0%, #c8b880 30%, #9aa9c0 60%, #6a7a8a 100%);
  background: linear-gradient(180deg, #ffe6b0 0%, #f0d5a0 30%, #c8b880 50%, #6a7a8a 100%), radial-gradient(ellipse at 30% 20%, #fff5cc 0%, transparent 40%);
}
.scn-capulet-street-sue .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #f0e6cc 0%, #ccb88a 100%);
  animation: capu-sky 25s ease-in-out infinite alternate;
}
.scn-capulet-street-sue .building {
  position: absolute; bottom: 35%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #b8a080 0%, #7a6040 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
}
.scn-capulet-street-sue .building.left { left: 20%; }
.scn-capulet-street-sue .building.center { left: 45%; width: 12%; height: 50%; }
.scn-capulet-street-sue .window {
  position: absolute; bottom: 58%; left: 50%; width: 8px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe080 0%, #d4a040 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 4px #d4a040, 0 0 32px 8px rgba(212,160,64,0.4);
  animation: capu-glow 4s ease-in-out infinite alternate;
}
.scn-capulet-street-sue .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
}
.scn-capulet-street-sue .figure {
  position: absolute; bottom: 24%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-capulet-street-sue .figure.capu-daughter { left: 38%; animation: capu-walk 6s ease-in-out infinite; }
.scn-capulet-street-sue .figure.capu-father { left: 55%; height: 36px; width: 14px; animation: capu-walk-rev 7s ease-in-out infinite; }
.scn-capulet-street-sue .cloud {
  position: absolute; top: 15%; width: 60px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.15) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: capu-drift 45s linear infinite;
}
.scn-capulet-street-sue .cloud { left: -10%; }
@keyframes capu-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes capu-glow { 0% { box-shadow:0 0 12px 2px #c09030; opacity:0.7; } 50% { box-shadow:0 0 28px 8px #ffc060; opacity:1; } 100% { box-shadow:0 0 18px 4px #c09030; opacity:0.8; } }
@keyframes capu-walk { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 25% { transform:translateX(5px) translateY(-1px) rotate(2deg); } 50% { transform:translateX(10px) translateY(0) rotate(0deg); } 75% { transform:translateX(15px) translateY(-1px) rotate(-2deg); } 100% { transform:translateX(20px) translateY(0) rotate(0deg); } }
@keyframes capu-walk-rev { 0% { transform:translateX(0) translateY(-1px) rotate(0deg); } 25% { transform:translateX(-4px) translateY(0) rotate(-1deg); } 50% { transform:translateX(-8px) translateY(-1px) rotate(0deg); } 75% { transform:translateX(-12px) translateY(0) rotate(1deg); } 100% { transform:translateX(-16px) translateY(-1px) rotate(0deg); } }
@keyframes capu-drift { 0% { transform:translateX(-20px); } 100% { transform:translateX(130vw); } }

.scn-item-guest-list {
  background: linear-gradient(180deg, #f8efd0 0%, #e0d0a0 30%, #c0b080 60%, #8a7a50 100%);
  background: linear-gradient(180deg, #f8efd0 0%, #e0d0a0 30%, #c0b080 60%, #8a7a50 100%), radial-gradient(ellipse at 50% 20%, #fff9e6 0%, transparent 50%);
}
.scn-item-guest-list .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d4c090 0%, #b8a070 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-item-guest-list .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #8a7a50 0%, #a09060 100%);
}
.scn-item-guest-list .scroll {
  position: absolute; top: 20%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%) rotate(-5deg);
  background: linear-gradient(180deg, #f8e8b0 0%, #d4c090 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: gst-sway 3s ease-in-out infinite alternate;
}
.scn-item-guest-list .scroll::after {
  content: ''; position: absolute; top: 10%; left: 10%; width: 80%; height: 80%;
  background: repeating-linear-gradient(0deg, #b8a070 0px, #b8a070 2px, transparent 2px, transparent 6px);
  border-radius: 2px;
}
.scn-item-guest-list .item {
  position: absolute; bottom: 50%; width: 30px; height: 30px;
  border-radius: 50%;
  background: #d5b060;
  animation: gst-bounce 2s ease-in-out infinite;
}
.scn-item-guest-list .shoe { left: 15%; bottom: 55%; width: 40px; height: 20px; border-radius: 40% 40% 20% 20%; background: #8a6030; animation-delay: 0.1s; }
.scn-item-guest-list .needle { left: 28%; bottom: 48%; width: 4px; height: 30px; border-radius: 20%; background: #c0c0c0; animation-delay: 0.3s; }
.scn-item-guest-list .fish { left: 62%; bottom: 52%; width: 36px; height: 18px; border-radius: 50% 50% 40% 40%; background: #60a0a0; animation-delay: 0.5s; }
.scn-item-guest-list .brush { left: 78%; bottom: 50%; width: 25px; height: 28px; border-radius: 20% 20% 50% 50%; background: #a08060; animation-delay: 0.7s; }
.scn-item-guest-list .shadow {
  position: absolute; bottom: 40%; left: 10%; width: 80%; height: 8px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%; filter: blur(4px);
  animation: gst-shadow 3s ease-in-out infinite alternate;
}
@keyframes gst-sway { 0% { transform: translateX(-50%) rotate(-5deg) scale(1); } 50% { transform: translateX(-48%) rotate(-2deg) scale(1.01); } 100% { transform: translateX(-53%) rotate(-8deg) scale(1); } }
@keyframes gst-bounce { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-6px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes gst-shadow { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.3; transform: scaleX(1.2); } 100% { opacity:0.5; transform: scaleX(1); } }

.scn-benvolio-romeo-advice {
  background: linear-gradient(180deg, #ffe8b0 0%, #f0c880 30%, #d0a050 60%, #806030 100%);
  background: linear-gradient(180deg, #ffe8b0 0%, #f0c880 30%, #d0a050 60%, #806030 100%), radial-gradient(ellipse at 50% 50%, #fff0c0 0%, transparent 70%);
}
.scn-benvolio-romeo-advice .fade-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffd080 0%, #f0b050 100%);
  animation: ben-sky 10s ease-in-out infinite alternate;
}
.scn-benvolio-romeo-advice .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #5a3a10 0%, #8a6030 50%, #b08040 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-benvolio-romeo-advice .figure {
  position: absolute; bottom: 30%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #4a2a0a 0%, #2a1000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-benvolio-romeo-advice .figure.left { left: 30%; animation: ben-lean 6s ease-in-out infinite; }
.scn-benvolio-romeo-advice .figure.right { right: 30%; animation: ben-lean-rev 6s ease-in-out infinite; animation-delay: 0.5s; }
.scn-benvolio-romeo-advice .flame {
  position: absolute; bottom: 45%; left: 50%; width: 16px; height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ffc040 50%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 24px 8px #ffc040, 0 0 48px 16px rgba(255,192,64,0.4);
  animation: ben-flame 2s ease-in-out infinite alternate;
}
.scn-benvolio-romeo-advice .ray {
  position: absolute; top: 10%; left: 50%; width: 60%; height: 4px;
  transform: translateX(-50%) rotate(-15deg);
  background: linear-gradient(90deg, transparent, #fff0c0, transparent);
  filter: blur(2px);
  animation: ben-ray 5s ease-in-out infinite;
}
@keyframes ben-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes ben-lean { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ben-lean-rev { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ben-flame { 0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity:0.7; } 50% { transform: translateX(-50%) scaleY(1.15) scaleX(0.9); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.9) scaleX(1.1); opacity:0.8; } }
@keyframes ben-ray { 0% { transform: translateX(-50%) rotate(-15deg) scaleX(1); opacity:0.3; } 50% { transform: translateX(-50%) rotate(-12deg) scaleX(1.1); opacity:0.6; } 100% { transform: translateX(-50%) rotate(-18deg) scaleX(1); opacity:0.3; } }

.scn-item-guest-list-read {
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b898 30%, #a89878 60%, #786858 100%);
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b898 30%, #a89878 60%, #786858 100%), radial-gradient(ellipse at 40% 30%, #fff0d0 0%, transparent 60%);
}
.scn-item-guest-list-read .room-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-item-guest-list-read .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #685848 0%, #887868 100%);
}
.scn-item-guest-list-read .window-light {
  position: absolute; top: 12%; left: 10%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #ffe080 0%, #f0c040 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 0 30px 10px #ffe080, 0 0 60px 20px rgba(255,224,128,0.3);
  animation: grd-light 5s ease-in-out infinite alternate;
}
.scn-item-guest-list-read .table {
  position: absolute; bottom: 25%; left: 40%; width: 80px; height: 18px;
  background: linear-gradient(180deg, #a88868 0%, #786848 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: perspective(400px) rotateX(10deg);
}
.scn-item-guest-list-read .chair {
  position: absolute; bottom: 22%; left: 48%; width: 24px; height: 32px;
  background: linear-gradient(180deg, #887050 0%, #584830 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  transform: perspective(400px) rotateX(5deg);
}
.scn-item-guest-list-read .figure.reader {
  position: absolute; bottom: 22%; left: 46%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: grd-breathe 4s ease-in-out infinite;
}
.scn-item-guest-list-read .scroll-paper {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 36px;
  transform: translateX(-50%) rotate(-8deg);
  background: linear-gradient(180deg, #f8e8b0 0%, #d4c090 100%);
  border-radius: 3% 3% 2% 2%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: grd-flip 6s ease-in-out infinite;
}
.scn-item-guest-list-read .scroll-paper::after {
  content: ''; position: absolute; top: 10%; left: 10%; width: 80%; height: 80%;
  background: repeating-linear-gradient(0deg, #b8a070 0px, #b8a070 1.5px, transparent 1.5px, transparent 5px);
  border-radius: 2px;
}
.scn-item-guest-list-read .glimmer {
  position: absolute; top: 8%; right: 25%; width: 6px; height: 6px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,255,255,0.6);
  animation: grd-glimmer 2s ease-in-out infinite alternate;
}
@keyframes grd-light { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.8; transform: scaleY(0.98); } }
@keyframes grd-breathe { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes grd-flip { 0% { transform: translateX(-50%) rotate(-8deg) scaleX(1); } 50% { transform: translateX(-50%) rotate(-5deg) scaleX(1.02); } 100% { transform: translateX(-50%) rotate(-10deg) scaleX(1); } }
@keyframes grd-glimmer { 0% { opacity:0.4; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.5; transform: scale(0.9); } }

/* Scene 1: capulet-hall-juliet-returns – warm dim hall, Juliet enters */
.scn-capulet-hall-juliet-returns {
  background:
    linear-gradient(180deg, #4a3428 0%, #3a261a 50%, #2a1a0e 100%),
    radial-gradient(ellipse at 50% 0%, #6a4a38 0%, transparent 70%);
}
.scn-capulet-hall-juliet-returns .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(74,52,40,.8) 0%, rgba(58,38,26,.6) 100%);
  animation: chjr-wall-pulse 12s ease-in-out infinite alternate;
}
.scn-capulet-hall-juliet-returns .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a100a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-capulet-hall-juliet-returns .pillar-l {
  position: absolute; left: 15%; top: 10%; width: 20px; height: 70%;
  background: linear-gradient(90deg, #5a3a28, #3a2216, #5a3a28);
  border-radius: 4px;
  box-shadow: 4px 0 8px rgba(0,0,0,.4);
}
.scn-capulet-hall-juliet-returns .pillar-r {
  position: absolute; right: 15%; top: 10%; width: 20px; height: 70%;
  background: linear-gradient(90deg, #5a3a28, #3a2216, #5a3a28);
  border-radius: 4px;
  box-shadow: -4px 0 8px rgba(0,0,0,.4);
}
.scn-capulet-hall-juliet-returns .arch {
  position: absolute; top: 18%; left: 38%; right: 38%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, transparent 40%, #3a2216 41%, #2a1a0e 60%);
  border-radius: 50% 50% 0 0;
  animation: chjr-arch 8s ease-in-out infinite;
}
.scn-capulet-hall-juliet-returns .candle-glow {
  position: absolute; bottom: 45%; left: 48%; width: 16px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #c08040, 0 0 60px 16px rgba(192,128,64,.3);
  animation: chjr-candle-flicker 2s ease-in-out infinite alternate;
}
.scn-capulet-hall-juliet-returns .capulet {
  position: absolute; bottom: 30%; left: 30%; 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 center;
  animation: chjr-capulet-sway 4s ease-in-out infinite;
}
.scn-capulet-hall-juliet-returns .juliet-in {
  position: absolute; bottom: 30%; right: 30%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #2a1a3e 0%, #1a0a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: chjr-juliet-walk 6s ease-in-out infinite;
}
@keyframes chjr-wall-pulse {
  0%,100% { opacity: .7; }
  50% { opacity: .9; }
}
@keyframes chjr-arch {
  0%,100% { filter: brightness(.8); }
  50% { filter: brightness(1.2); }
}
@keyframes chjr-candle-flicker {
  0% { transform: scale(1); opacity: .7; box-shadow: 0 0 20px 4px #c08040; }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 40px 12px #ffd080; }
  100% { transform: scale(.95); opacity: .8; box-shadow: 0 0 25px 6px #c08040; }
}
@keyframes chjr-capulet-sway {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes chjr-juliet-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(-12px) rotate(0deg); }
  50% { transform: translateX(-20px) rotate(2deg); }
  75% { transform: translateX(-12px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}

/* Scene 2: capulet-hall-juliet-complies – calm interior, Capulet seated, Juliet standing */
.scn-capulet-hall-juliet-complies {
  background:
    linear-gradient(180deg, #5a4030 0%, #3a2a1e 50%, #1a100a 100%),
    radial-gradient(ellipse at 50% 0%, #6a4a38 0%, transparent 70%);
}
.scn-capulet-hall-juliet-complies .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(90,64,48,.8) 0%, rgba(58,42,30,.6) 100%);
  animation: chjc-wall-soft 10s ease-in-out infinite alternate;
}
.scn-capulet-hall-juliet-complies .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2216 0%, #1a100a 100%);
}
.scn-capulet-hall-juliet-complies .table {
  position: absolute; bottom: 35%; left: 50%; width: 80px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #5a3a28, #3a2216, #5a3a28);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
}
.scn-capulet-hall-juliet-complies .capulet-seat {
  position: absolute; bottom: 30%; left: 35%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: chjc-capulet-breathe 5s ease-in-out infinite;
}
.scn-capulet-hall-juliet-complies .juliet-stand {
  position: absolute; bottom: 30%; left: 55%; width: 18px; height: 52px;
  background: linear-gradient(180deg, #2a1a3e 0%, #1a0a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: chjc-juliet-stand 6s ease-in-out infinite;
}
.scn-capulet-hall-juliet-complies .candle-calm {
  position: absolute; bottom: 45%; left: 48%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c08040;
  animation: chjc-candle-calm 3s ease-in-out infinite alternate;
}
.scn-capulet-hall-juliet-complies .window-calm {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a4a6a 0%, #1a2a4a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px #2a4a6a, 0 0 8px rgba(42,74,106,.3);
  animation: chjc-window-glow 8s ease-in-out infinite;
}
@keyframes chjc-wall-soft {
  0%,100% { opacity: .8; }
  50% { opacity: .95; }
}
@keyframes chjc-capulet-breathe {
  0%,100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
}
@keyframes chjc-juliet-stand {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes chjc-candle-calm {
  0% { transform: scale(1); opacity: .85; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(.98); opacity: .9; }
}
@keyframes chjc-window-glow {
  0%,100% { filter: brightness(.8); }
  50% { filter: brightness(1.2); }
}

/* Scene 3: capulet-hall-marriage-haste – warm hurried, Capulet moving, lantern swinging */
.scn-capulet-hall-marriage-haste {
  background:
    linear-gradient(180deg, #5a3c2a 0%, #3a2216 50%, #1a100a 100%),
    radial-gradient(ellipse at 50% 0%, #7a5a48 0%, transparent 70%);
}
.scn-capulet-hall-marriage-haste .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(90,60,42,.9) 0%, rgba(58,34,22,.7) 100%);
  animation: chmh-wall-hurry 8s ease-in-out infinite alternate;
}
.scn-capulet-hall-marriage-haste .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2216 0%, #1a100a 100%);
}
.scn-capulet-hall-marriage-haste .door {
  position: absolute; top: 15%; left: 40%; width: 60px; height: 70%;
  background: linear-gradient(180deg, #4a3020, #2a1a0e);
  border-radius: 4px;
  box-shadow: inset 0 0 10px #1a100a, 0 4px 8px rgba(0,0,0,.5);
  animation: chmh-door-sway 10s ease-in-out infinite;
}
.scn-capulet-hall-marriage-haste .capulet-haste {
  position: absolute; bottom: 28%; left: 25%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: chmh-capulet-walk 3s ease-in-out infinite;
}
.scn-capulet-hall-marriage-haste .wife {
  position: absolute; bottom: 28%; right: 28%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: chmh-wife-stand 5s ease-in-out infinite;
}
.scn-capulet-hall-marriage-haste .lantern-swing {
  position: absolute; bottom: 35%; left: 20%; width: 12px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 40%;
  box-shadow: 0 0 30px 8px #c08040;
  transform-origin: top center;
  animation: chmh-lantern-swing 2s ease-in-out infinite;
}
.scn-capulet-hall-marriage-haste .candle-haste {
  position: absolute; bottom: 42%; left: 55%; width: 14px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 25px 6px #c08040;
  animation: chmh-candle-flicker 1.5s ease-in-out infinite alternate;
}
.scn-capulet-hall-marriage-haste .shadow-haste {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%);
  filter: blur(8px);
  animation: chmh-shadow-move 4s ease-in-out infinite;
}
@keyframes chmh-wall-hurry {
  0%,100% { opacity: .85; }
  50% { opacity: 1; }
}
@keyframes chmh-door-sway {
  0%,100% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
}
@keyframes chmh-capulet-walk {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(12px) rotate(0deg); }
  75% { transform: translateX(8px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes chmh-wife-stand {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes chmh-lantern-swing {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes chmh-candle-flicker {
  0% { transform: scale(1) rotate(0deg); opacity: .7; }
  50% { transform: scale(1.15) rotate(3deg); opacity: 1; }
  100% { transform: scale(.9) rotate(-3deg); opacity: .8; }
}
@keyframes chmh-shadow-move {
  0%,100% { transform: translateX(0); }
  50% { transform: translateX(10px); }
}

/* Scene 4: juliet-chamber-nurse-leaves – tense, Juliet kneeling alone */
.scn-juliet-chamber-nurse-leaves {
  background:
    linear-gradient(180deg, #2a1a1e 0%, #1a0e12 50%, #0a0508 100%),
    radial-gradient(ellipse at 50% 0%, #3a2228 0%, transparent 70%);
}
.scn-juliet-chamber-nurse-leaves .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(42,26,30,.9) 0%, rgba(26,14,18,.7) 100%);
  animation: jcnl-wall-tense 8s ease-in-out infinite alternate;
}
.scn-juliet-chamber-nurse-leaves .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0e12 0%, #0a0508 100%);
}
.scn-juliet-chamber-nurse-leaves .window-chamber {
  position: absolute; top: 12%; left: 50%; width: 50px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a2a4a 0%, #0a1a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 15px #1a2a4a, 0 0 10px rgba(26,42,74,.3);
  animation: jcnl-window-flicker 4s ease-in-out infinite;
}
.scn-juliet-chamber-nurse-leaves .candle-tense {
  position: absolute; bottom: 42%; left: 45%; width: 14px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #c08040, 0 0 80px 20px rgba(192,128,64,.4);
  animation: jcnl-candle-tense 1s ease-in-out infinite alternate;
}
.scn-juliet-chamber-nurse-leaves .juliet-kneel {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 45px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a3e 0%, #1a0a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jcnl-juliet-tremble 2s ease-in-out infinite;
}
.scn-juliet-chamber-nurse-leaves .curtain {
  position: absolute; top: 0; left: 5%; width: 20px; height: 100%;
  background: linear-gradient(180deg, #3a2228, #1a0e12);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,.6);
  animation: jcnl-curtain-twitch 6s ease-in-out infinite;
}
.scn-juliet-chamber-nurse-leaves .shadows-tense {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  filter: blur(12px);
  animation: jcnl-shadows-move 3s ease-in-out infinite;
}
@keyframes jcnl-wall-tense {
  0%,100% { opacity: .6; }
  50% { opacity: .9; }
}
@keyframes jcnl-window-flicker {
  0%,100% { filter: brightness(.7); }
  50% { filter: brightness(1.1); }
}
@keyframes jcnl-candle-tense {
  0% { transform: scale(1) rotate(0deg); opacity: .6; box-shadow: 0 0 20px 4px #c08040; }
  50% { transform: scale(1.2) rotate(5deg); opacity: 1; box-shadow: 0 0 50px 14px #ffd080; }
  100% { transform: scale(.85) rotate(-5deg); opacity: .5; box-shadow: 0 0 15px 2px #c08040; }
}
@keyframes jcnl-juliet-tremble {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  75% { transform: translateX(-50%) translateY(2px) rotate(-2deg); }
}
@keyframes jcnl-curtain-twitch {
  0%,100% { transform: translateX(0); }
  50% { transform: translateX(3px); }
}
@keyframes jcnl-shadows-move {
  0%,100% { transform: translateX(0); }
  50% { transform: translateX(8px); }
}

.scn-juliet-chamber-funeral-orders {
  background: 
    linear-gradient(180deg, #fce8c8 0%, #fad5a5 40%, #d98b6a 100%),
    radial-gradient(ellipse at 80% 20%, #ffe6c0 0%, transparent 60%);
}
.scn-juliet-chamber-funeral-orders .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #b27a5a 0%, #7a4a2a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-juliet-chamber-funeral-orders .window {
  position: absolute; top: 8%; left: 55%;
  width: 80px; height: 100px;
  background: linear-gradient(180deg, #ffeac2 0%, #ffd49a 100%);
  border: 4px solid #5a3a2a;
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 30px 10px #ffd080;
  animation: jcf-window 6s ease-in-out infinite alternate;
}
.scn-juliet-chamber-funeral-orders .sunbeam {
  position: absolute; top: 5%; left: 50%;
  width: 40px; height: 200px;
  background: linear-gradient(180deg, rgba(255,230,180,0.6) 0%, transparent 100%);
  transform-origin: top left;
  transform: rotate(15deg);
  border-radius: 10%;
  filter: blur(3px);
  animation: jcf-beam 8s ease-in-out infinite alternate;
}
.scn-juliet-chamber-funeral-orders .bed {
  position: absolute; bottom: 35%; left: 30%;
  width: 120px; height: 50px;
  background: linear-gradient(180deg, #8a5a3a 0%, #6a3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: jcf-bed 4s ease-in-out infinite;
}
.scn-juliet-chamber-funeral-orders .figure {
  position: absolute; bottom: 35%; left: 45%;
  width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jcf-figure 9s ease-in-out infinite;
}
.scn-juliet-chamber-funeral-orders .rosemary {
  position: absolute; bottom: 35%; left: 62%;
  width: 6px; height: 30px;
  background: linear-gradient(180deg, #4a7a3a 0%, #2a5a1a 100%);
  border-radius: 50%;
  transform-origin: bottom;
  animation: jcf-rosemary 5s ease-in-out infinite alternate;
}
.scn-juliet-chamber-funeral-orders .candle {
  position: absolute; bottom: 38%; left: 70%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0d0a0 0%, #d0a080 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #ffd080;
  animation: jcf-candle 2s ease-in-out infinite alternate;
}
@keyframes jcf-window { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes jcf-beam { 0% { opacity:0.3; transform: rotate(10deg) } 50% { opacity:0.6; transform: rotate(20deg) } 100% { opacity:0.4; transform: rotate(15deg) } }
@keyframes jcf-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes jcf-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(3deg) } }
@keyframes jcf-rosemary { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-2deg) } }
@keyframes jcf-candle { 0% { box-shadow: 0 0 15px 4px #ffd080; opacity:0.9 } 50% { box-shadow: 0 0 25px 8px #ffd080; opacity:1 } 100% { box-shadow: 0 0 18px 5px #ffd080; opacity:0.85 } }

.scn-juliet-chamber-musicians-leave {
  background: 
    linear-gradient(180deg, #ffeaa7 0%, #fdcb6e 40%, #e17055 100%),
    radial-gradient(ellipse at 30% 30%, #fff3c0 0%, transparent 70%);
}
.scn-juliet-chamber-musicians-leave .floor {
  position: absolute; top: 70%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a67c52 0%, #7a5832 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-juliet-chamber-musicians-leave .door {
  position: absolute; top: 20%; left: 70%;
  width: 60px; height: 100px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: jcm-door 6s ease-in-out infinite;
}
.scn-juliet-chamber-musicians-leave .musician1 {
  position: absolute; bottom: 50%; left: 30%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a5a7a 0%, #1a3a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: jcm-mus1 4s ease-in-out infinite;
}
.scn-juliet-chamber-musicians-leave .musician2 {
  position: absolute; bottom: 50%; left: 45%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: jcm-mus2 5s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-juliet-chamber-musicians-leave .pipe {
  position: absolute; bottom: 48%; left: 28%;
  width: 50px; height: 8px;
  background: linear-gradient(90deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 40%;
  transform-origin: left;
  animation: jcm-pipe 3s ease-in-out infinite;
}
.scn-juliet-chamber-musicians-leave .fiddle {
  position: absolute; bottom: 50%; left: 42%;
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #c08850 0%, #a06830 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom right;
  animation: jcm-fiddle 4s ease-in-out infinite alternate;
}
.scn-juliet-chamber-musicians-leave .notes {
  position: absolute; top: 30%; left: 35%;
  width: 12px; height: 12px;
  background: radial-gradient(circle, #3a3a5a 0%, #1a1a3a 100%);
  border-radius: 50%;
  box-shadow: 0 0 0 2px #3a3a5a, 0 0 0 4px transparent;
  animation: jcm-notes 2s ease-in-out infinite;
}
@keyframes jcm-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.8) } 100% { transform: scaleX(1) } }
@keyframes jcm-mus1 { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-8px) rotate(-5deg) } 75% { transform: translateY(-4px) rotate(5deg) } }
@keyframes jcm-mus2 { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-6px) rotate(5deg) } 75% { transform: translateY(-2px) rotate(-5deg) } }
@keyframes jcm-pipe { 0% { transform: rotate(0deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-10deg) } }
@keyframes jcm-fiddle { 0% { transform: rotate(-5deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(0deg) } }
@keyframes jcm-notes { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-15px) scale(1.2) } 100% { transform: translateY(0) scale(1) } }

.scn-juliet-chamber-peter-quarrel {
  background: 
    linear-gradient(180deg, #fde9d0 0%, #f5cba0 40%, #c0805a 100%),
    radial-gradient(ellipse at 60% 40%, #ffe6c0 0%, transparent 60%);
}
.scn-juliet-chamber-peter-quarrel .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b27a5a 0%, #7a4a2a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-juliet-chamber-peter-quarrel .peter {
  position: absolute; bottom: 40%; left: 40%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: jcp-peter 3s ease-in-out infinite;
}
.scn-juliet-chamber-peter-quarrel .musician {
  position: absolute; bottom: 40%; left: 55%;
  width: 28px; height: 48px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: jcp-mus 4s ease-in-out infinite;
  animation-delay: 0.2s;
}
.scn-juliet-chamber-peter-quarrel .dagger {
  position: absolute; bottom: 48%; left: 35%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20% 20% 50% 50%;
  transform-origin: top;
  animation: jcp-dagger 2s ease-in-out infinite;
}
.scn-juliet-chamber-peter-quarrel .hat {
  position: absolute; bottom: 58%; left: 38%;
  width: 20px; height: 14px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
  animation: jcp-hat 5s ease-in-out infinite;
}
.scn-juliet-chamber-peter-quarrel .collar {
  position: absolute; bottom: 40%; left: 40%;
  width: 40px; height: 10px;
  background: linear-gradient(90deg, #a08060 0%, #c0a080 100%);
  border-radius: 50%;
  transform-origin: center;
  animation: jcp-collar 3s ease-in-out infinite alternate;
}
@keyframes jcp-peter { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(5deg) } }
@keyframes jcp-mus { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-5deg) } }
@keyframes jcp-dagger { 0% { transform: rotate(-30deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(-10deg) } }
@keyframes jcp-hat { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(-8deg) } 75% { transform: translateY(-1px) rotate(8deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes jcp-collar { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.9) } }

.scn-juliet-chamber-wit-battle {
  background: 
    linear-gradient(180deg, #ffeaa7 0%, #fdcb6e 40%, #e17055 100%),
    radial-gradient(ellipse at 40% 60%, #fff3c0 0%, transparent 60%);
}
.scn-juliet-chamber-wit-battle .table {
  position: absolute; bottom: 30%; left: 10%; right: 10%;
  height: 15%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
}
.scn-juliet-chamber-wit-battle .figure1 {
  position: absolute; bottom: 45%; left: 25%;
  width: 30px; height: 45px;
  background: linear-gradient(180deg, #2a4a6a 0%, #1a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: jcw-fig1 4s ease-in-out infinite;
}
.scn-juliet-chamber-wit-battle .figure2 {
  position: absolute; bottom: 45%; left: 55%;
  width: 30px; height: 45px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: jcw-fig2 4s ease-in-out infinite;
  animation-delay: 0.3s;
}
.scn-juliet-chamber-wit-battle .idea1 {
  position: absolute; top: 10%; left: 20%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, #ffe082 0%, rgba(255,224,130,0) 70%);
  border-radius: 50%;
  animation: jcw-idea1 3s ease-in-out infinite alternate;
}
.scn-juliet-chamber-wit-battle .idea2 {
  position: absolute; top: 10%; left: 55%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, #ffe082 0%, rgba(255,224,130,0) 70%);
  border-radius: 50%;
  animation: jcw-idea2 3s ease-in-out infinite alternate;
  animation-delay: 0.5s;
}
.scn-juliet-chamber-wit-battle .base {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 5%;
  background: linear-gradient(90deg, #5a3a2a 0%, #7a5a3a 50%, #5a3a2a 100%);
  border-radius: 50%;
  filter: blur(2px);
}
@keyframes jcw-fig1 { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(5deg) } }
@keyframes jcw-fig2 { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-5deg) } }
@keyframes jcw-idea1 { 0% { transform: scale(0.5); opacity:0; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.8); opacity:0.5; } }
@keyframes jcw-idea2 { 0% { transform: scale(0.5); opacity:0; } 50% { transform: scale(1.5); opacity:1; } 100% { transform: scale(0.9); opacity:0.6; } }

.scn-verona-brawl { background: linear-gradient(180deg, #f5d6a0 0%, #a8c0e0 60%, #6a8db0 100%), radial-gradient(ellipse at 80% 20%, #f5e6b0, transparent); }
.scn-verona-brawl .sun     { position:absolute; top:5%; right:10%; width:60px; height:60px; background:radial-gradient(circle, #ffe680 0%, #f0c040 60%, transparent 100%); border-radius:50%; box-shadow:0 0 40px 20px #f0c040; animation:vb-sun 8s ease-in-out infinite alternate; }
.scn-verona-brawl .sky     { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg, #e8d4a0 0%, transparent 100%); animation:vb-sky 12s ease-in-out infinite alternate; }
.scn-verona-brawl .building-left { position:absolute; bottom:10%; left:2%; width:35%; height:50%; background:linear-gradient(180deg, #b08860 0%, #806040 100%); border-radius:8% 8% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); animation:vb-build 20s ease-in-out infinite; }
.scn-verona-brawl .building-right { position:absolute; bottom:10%; right:2%; width:30%; height:45%; background:linear-gradient(180deg, #a07850 0%, #705030 100%); border-radius:8% 8% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); animation:vb-build 25s ease-in-out infinite reverse; }
.scn-verona-brawl .fig1   { position:absolute; bottom:12%; left:40%; width:24px; height:50px; background:radial-gradient(ellipse at 50% 30%, #2a2018 0%, #0a0805 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-style:preserve-3d; animation:vb-fight1 1.2s ease-in-out infinite; }
.scn-verona-brawl .fig2   { position:absolute; bottom:12%; right:38%; width:24px; height:50px; background:radial-gradient(ellipse at 50% 30%, #2a2018 0%, #0a0805 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-style:preserve-3d; animation:vb-fight2 1.2s ease-in-out infinite reverse; }
.scn-verona-brawl .sword1 { position:absolute; bottom:28%; left:42%; width:4px; height:30px; background:linear-gradient(180deg, #c0c0c0 0%, #a0a0a0 100%); border-radius:2px; transform-origin:50% 100%; box-shadow:0 0 4px rgba(200,200,200,.6); animation:vb-sword 0.8s ease-in-out infinite; }
.scn-verona-brawl .sword2 { position:absolute; bottom:28%; right:44%; width:4px; height:30px; background:linear-gradient(180deg, #c0c0c0 0%, #a0a0a0 100%); border-radius:2px; transform-origin:50% 100%; box-shadow:0 0 4px rgba(200,200,200,.6); animation:vb-sword 0.8s ease-in-out infinite reverse; }
.scn-verona-brawl .dust   { position:absolute; bottom:0; left:0; right:0; height:20%; background:radial-gradient(ellipse at 50% 100%, rgba(200,160,100,0.4) 0%, transparent 70%); filter:blur(8px); animation:vb-dust 3s ease-in-out infinite alternate; }
@keyframes vb-sun   { 0% { transform: scale(1) rotate(0deg); opacity:.8; } 50% { transform: scale(1.08) rotate(5deg); opacity:1; } 100% { transform: scale(0.95) rotate(-3deg); opacity:.85; } }
@keyframes vb-sky   { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.75; } }
@keyframes vb-build { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes vb-fight1 { 0% { transform: rotate(-2deg) translate(0,0); } 25% { transform: rotate(3deg) translate(6px,-2px); } 50% { transform: rotate(-1deg) translate(0,-1px); } 75% { transform: rotate(2deg) translate(-4px,0); } 100% { transform: rotate(-2deg) translate(0,0); } }
@keyframes vb-fight2 { 0% { transform: rotate(2deg) translate(0,0); } 25% { transform: rotate(-3deg) translate(-6px,-2px); } 50% { transform: rotate(1deg) translate(0,-1px); } 75% { transform: rotate(-2deg) translate(4px,0); } 100% { transform: rotate(2deg) translate(0,0); } }
@keyframes vb-sword { 0% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(30deg) scaleY(1.1); } 100% { transform: rotate(-10deg) scaleY(0.9); } }
@keyframes vb-dust { 0% { transform: scaleX(0.8); opacity:0.4; } 50% { transform: scaleX(1.2); opacity:0.7; } 100% { transform: scaleX(0.9); opacity:0.3; } }

.scn-prince-intervenes { background: linear-gradient(180deg, #f0d8a0 0%, #b0c8d8 50%, #8098b8 100%), radial-gradient(ellipse at 30% 50%, #f0e0b0, transparent); }
.scn-prince-intervenes .bg-street    { position:absolute; inset:0; background:linear-gradient(180deg, #c8b898 0%, #a09078 100%); animation:pi-bg 15s ease-in-out infinite; }
.scn-prince-intervenes .prince       { position:absolute; bottom:12%; left:50%; width:36px; height:68px; background:radial-gradient(ellipse at 50% 30%, #2a1a10 0%, #0a0502 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); box-shadow:0 0 20px 10px rgba(180,140,60,0.3); animation:pi-prince 6s ease-in-out infinite; }
.scn-prince-intervenes .prince-cape  { position:absolute; bottom:12%; left:48%; width:40px; height:50px; background:linear-gradient(180deg, #8a3a2a 0%, #5a1a0a 100%); border-radius:80% 80% 30% 50% / 100% 100% 40% 60%; transform-origin: top center; filter:blur(1px); animation:pi-cape 4s ease-in-out infinite alternate; }
.scn-prince-intervenes .montague     { position:absolute; bottom:12%; left:15%; width:28px; height:56px; background:radial-gradient(ellipse at 50% 30%, #2a2018 0%, #0a0805 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:pi-fig 5s ease-in-out infinite; }
.scn-prince-intervenes .capulet      { position:absolute; bottom:12%; right:15%; width:28px; height:56px; background:radial-gradient(ellipse at 50% 30%, #2a2018 0%, #0a0805 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:pi-fig 5s ease-in-out infinite reverse; }
.scn-prince-intervenes .attendant1   { position:absolute; bottom:12%; left:32%; width:22px; height:48px; background:radial-gradient(ellipse at 50% 30%, #1a1a10 0%, #090905 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:pi-att 7s ease-in-out infinite; }
.scn-prince-intervenes .attendant2   { position:absolute; bottom:12%; right:32%; width:22px; height:48px; background:radial-gradient(ellipse at 50% 30%, #1a1a10 0%, #090905 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:pi-att 7s ease-in-out infinite 2s; }
.scn-prince-intervenes .shadow       { position:absolute; bottom:0; left:0; right:0; height:15%; background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); filter:blur(5px); animation:pi-shadow 9s ease-in-out infinite; }
@keyframes pi-bg   { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes pi-prince { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px) scale(1.02); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes pi-cape  { 0% { transform: rotate(-5deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-2deg); } }
@keyframes pi-fig   { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes pi-att   { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-1px); } 100% { transform: scale(0.95) translateY(1px); } }
@keyframes pi-shadow{ 0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.35; } }

.scn-benvolio-report { background: linear-gradient(180deg, #e8c89a 0%, #b0a8b8 60%, #808898 100%), radial-gradient(ellipse at 50% 100%, #d8b088, transparent); }
.scn-benvolio-report .bg-courtyard { position:absolute; inset:0; background:linear-gradient(180deg, #c8b8a0 0%, #989080 100%); animation:br-bg 10s ease-in-out infinite; }
.scn-benvolio-report .benvolio     { position:absolute; bottom:12%; left:30%; width:26px; height:54px; background:radial-gradient(ellipse at 50% 30%, #2a1a15 0%, #0a0502 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation:br-ben 3s ease-in-out infinite; }
.scn-benvolio-report .tybalt       { position:absolute; bottom:12%; right:28%; width:28px; height:58px; background:radial-gradient(ellipse at 50% 30%, #2a1a10 0%, #0a0502 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:br-tyb 4s ease-in-out infinite; }
.scn-benvolio-report .sword-swing  { position:absolute; bottom:25%; right:20%; width:8px; height:40px; background:linear-gradient(180deg, #c0c0c0 0%, #909090 100%); border-radius:4px; transform-origin: 50% 0%; filter:blur(1px); animation:br-sword 1.5s ease-in-out infinite alternate; }
.scn-benvolio-report .servants     { position:absolute; bottom:12%; left:42%; width:20px; height:40px; background:radial-gradient(ellipse at 50% 30%, #1a1a10 0%, #090905 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:br-serv 5s ease-in-out infinite; }
.scn-benvolio-report .dust-sparks  { position:absolute; bottom:0; left:0; right:0; height:10%; background:radial-gradient(ellipse at 50% 100%, rgba(200,160,100,0.3) 0%, transparent 60%); filter:blur(10px); animation:br-dust 2s ease-in-out infinite alternate; }
@keyframes br-bg   { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes br-ben  { 0% { transform: rotate(-2deg) translate(0,0); } 25% { transform: rotate(1deg) translate(4px,-1px); } 50% { transform: rotate(-1deg) translate(0,0); } 75% { transform: rotate(0deg) translate(-2px,1px); } 100% { transform: rotate(2deg) translate(0,0); } }
@keyframes br-tyb  { 0% { transform: rotate(3deg) scale(1) translate(0,0); } 50% { transform: rotate(-4deg) scale(1.05) translate(0,-2px); } 100% { transform: rotate(2deg) scale(1) translate(0,0); } }
@keyframes br-sword{ 0% { transform: rotate(-80deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-60deg); } }
@keyframes br-serv { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes br-dust { 0% { opacity:.2; transform: scaleY(0.8); } 50% { opacity:.6; transform: scaleY(1.2); } 100% { opacity:.3; transform: scaleY(0.9); } }

.scn-romeo-spotted { background: linear-gradient(180deg, #f7d4c0 0%, #d0cce0 40%, #a0b0d0 100%), radial-gradient(ellipse at 20% 80%, #f0e0c0, transparent); }
.scn-romeo-spotted .dawn-sky      { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #fce4d6 0%, #d6cce8 50%, #b0b8d0 100%); animation:rs-sky 20s ease-in-out infinite alternate; }
.scn-romeo-spotted .sycamore-grove-left { position:absolute; bottom:5%; left:0; width:40%; height:70%; background:radial-gradient(ellipse at 30% 60%, #4a5a3a 0%, #2a3a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter:blur(6px); animation:rs-tree-left 15s ease-in-out infinite; }
.scn-romeo-spotted .sycamore-grove-right { position:absolute; bottom:5%; right:0; width:35%; height:65%; background:radial-gradient(ellipse at 70% 60%, #4a5a3a 0%, #2a3a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter:blur(5px); animation:rs-tree-right 18s ease-in-out infinite reverse; }
.scn-romeo-spotted .romeo         { position:absolute; bottom:10%; left:50%; width:22px; height:48px; background:radial-gradient(ellipse at 50% 30%, #1a1a20 0%, #0a0a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); animation:rs-walk 8s ease-in-out infinite; }
.scn-romeo-spotted .path          { position:absolute; bottom:8%; left:30%; right:30%; height:3px; background:linear-gradient(90deg, transparent, #c8b898 20% 80%, transparent); border-radius:2px; filter:blur(1px); animation:rs-path 12s ease-in-out infinite alternate; }
.scn-romeo-spotted .dew           { position:absolute; bottom:12%; left:10%; width:100px; height:6px; background:radial-gradient(ellipse, rgba(200,220,255,0.3) 0%, transparent 70%); filter:blur(4px); animation:rs-dew 5s ease-in-out infinite alternate; }
@keyframes rs-sky   { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes rs-tree-left { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(0.98) translateY(1px); } }
@keyframes rs-tree-right { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.03) translateY(-3px); } 100% { transform: scale(0.97) translateY(1px); } }
@keyframes rs-walk  { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes rs-path  { 0% { opacity:.3; transform: scaleX(0.9); } 50% { opacity:.6; transform: scaleX(1.1); } 100% { opacity:.4; transform: scaleX(0.95); } }
@keyframes rs-dew   { 0% { opacity:.2; transform: translateX(0); } 50% { opacity:.5; transform: translateX(5px); } 100% { opacity:.3; transform: translateX(-3px); } }

/* Scene: juliet-chamber-capulet-mourns */
.scn-juliet-chamber-capulet-mourns {
  background:
    linear-gradient(180deg, #3a2a4a 0%, #5a4a6a 20%, #8a7a9a 40%, #6a5a7a 100%),
    radial-gradient(ellipse at 50% 120%, #2a1a3a 0%, transparent 70%);
}
.scn-juliet-chamber-capulet-mourns .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a3a5a 0%, #2a1a3a 100%);
  animation: jccm-wall 12s ease-in-out infinite alternate;
}
.scn-juliet-chamber-capulet-mourns .window {
  position: absolute; top: 8%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #e8c8a0 0%, #c0a080 100%);
  border-radius: 4% / 6%; box-shadow: inset 0 0 40px 10px #f0d0b0;
  animation: jccm-dawn 8s ease-in-out infinite alternate;
}
.scn-juliet-chamber-capulet-mourns .light-beam {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, rgba(240,200,160,0.3) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  filter: blur(8px); animation: jccm-beam 10s ease-in-out infinite;
}
.scn-juliet-chamber-capulet-mourns .bed {
  position: absolute; bottom: 20%; left: 30%; width: 50%; height: 40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 8% 8% 4% 4% / 20% 20% 8% 8%;
  box-shadow: 0 8px 24px rgba(0,0,0,0.6); animation: jccm-bed 15s ease-in-out infinite;
}
.scn-juliet-chamber-capulet-mourns .juliet-figure {
  position: absolute; bottom: 30%; left: 45%; width: 18%; height: 30%;
  background: linear-gradient(180deg, #5a4a6a 0%, #3a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: jccm-juliet 9s ease-in-out infinite alternate;
}
.scn-juliet-chamber-capulet-mourns .capulet-figure {
  position: absolute; bottom: 20%; right: 35%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 60% 40% 40% 60% / 80% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jccm-capulet 6s ease-in-out infinite;
}
.scn-juliet-chamber-capulet-mourns .petal {
  position: absolute; width: 10px; height: 14px;
  background: linear-gradient(180deg, #c8a090 0%, #a08070 100%);
  border-radius: 50% 50% 50% 0 / 60% 60% 40% 40%;
  opacity: 0.6; filter: blur(1px);
}
.scn-juliet-chamber-capulet-mourns .petal-1 {
  top: 35%; left: 20%;
  animation: jccm-petal 7s ease-in-out infinite;
  animation-delay: 0s;
}
.scn-juliet-chamber-capulet-mourns .petal-2 {
  top: 40%; left: 60%;
  animation: jccm-petal 9s ease-in-out infinite;
  animation-delay: -3s;
}

@keyframes jccm-wall { 0%,100% { opacity: 0.75; } 50% { opacity: 0.9; } }
@keyframes jccm-dawn { 0% { opacity: 0.7; transform: scaleX(0.95); } 50% { opacity: 1; transform: scaleX(1.05); } 100% { opacity: 0.8; transform: scaleX(0.98); } }
@keyframes jccm-beam { 0%,100% { opacity: 0.3; transform: translateY(0); } 50% { opacity: 0.6; transform: translateY(10px); } }
@keyframes jccm-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px) scale(1.01); } }
@keyframes jccm-juliet { 0% { opacity: 0.8; transform: rotate(0deg); } 50% { opacity: 0.9; transform: rotate(2deg) translateY(-3px); } 100% { opacity: 0.7; transform: rotate(-1deg); } }
@keyframes jccm-capulet { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-3deg); } 50% { transform: translateX(5px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes jccm-petal { 0%,100% { opacity: 0.3; transform: rotate(0deg) translateX(0); } 33% { opacity: 0.6; transform: rotate(30deg) translateX(8px) translateY(-5px); } 66% { opacity: 0.5; transform: rotate(-20deg) translateX(-5px) translateY(3px); } }

/* Scene: juliet-chamber-friar-arrives */
.scn-juliet-chamber-friar-arrives {
  background:
    linear-gradient(180deg, #2e2238 0%, #4a3a55 30%, #6a5a75 60%, #4a3a55 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a30 0%, transparent 70%);
}
.scn-juliet-chamber-friar-arrives .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2e44 0%, #221a28 100%);
  animation: jcfa-bg 15s ease-in-out infinite alternate;
}
.scn-juliet-chamber-friar-arrives .door-arch {
  position: absolute; left: 10%; bottom: 0; width: 25%; height: 80%;
  background: linear-gradient(135deg, #5a4a62 0%, #3a2e48 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: jcfa-door 8s ease-in-out infinite;
}
.scn-juliet-chamber-friar-arrives .window {
  position: absolute; top: 12%; right: 20%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #f0d8c8 0%, #d0b8a0 100%);
  border-radius: 6% / 10%; box-shadow: 0 0 30px 5px #e8c8b0;
  animation: jcfa-window 10s ease-in-out infinite alternate;
}
.scn-juliet-chamber-friar-arrives .dawn-light {
  position: absolute; top: 15%; right: 25%; width: 20%; height: 50%;
  background: linear-gradient(135deg, rgba(240,210,180,0.4) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  filter: blur(6px); animation: jcfa-light 12s ease-in-out infinite;
}
.scn-juliet-chamber-friar-arrives .bed {
  position: absolute; bottom: 22%; left: 35%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #5a4e44 0%, #3a2e22 100%);
  border-radius: 8% 8% 4% 4% / 15% 15% 8% 8%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.7);
  animation: jcfa-bed 14s ease-in-out infinite;
}
.scn-juliet-chamber-friar-arrives .juliet-body {
  position: absolute; bottom: 30%; left: 45%; width: 14%; height: 25%;
  background: linear-gradient(180deg, #6a5a6a 0%, #4a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: jcfa-juliet 8s ease-in-out infinite alternate;
}
.scn-juliet-chamber-friar-arrives .capulet-shadow {
  position: absolute; bottom: 25%; right: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #1a1620 0%, #0a0810 100%);
  border-radius: 40% 60% 30% 70% / 80% 60% 40% 60%;
  opacity: 0.8; animation: jcfa-capulet 5s ease-in-out infinite;
}
.scn-juliet-chamber-friar-arrives .friar-silhouette {
  position: absolute; bottom: 18%; left: 12%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #2a2230 0%, #161220 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: scaleX(-1);
  animation: jcfa-friar 7s ease-in-out infinite;
}
.scn-juliet-chamber-friar-arrives .floor-shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: jcfa-shadow 10s ease-in-out infinite alternate;
}

@keyframes jcfa-bg { 0%,100% { opacity: 0.8; } 50% { opacity: 0.95; } }
@keyframes jcfa-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes jcfa-window { 0% { opacity: 0.7; } 25% { opacity: 0.9; } 50% { opacity: 1; } 75% { opacity: 0.85; } 100% { opacity: 0.75; } }
@keyframes jcfa-light { 0%,100% { opacity: 0.2; transform: translateX(0); } 50% { opacity: 0.5; transform: translateX(10px) translateY(-5px); } }
@keyframes jcfa-bed { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } }
@keyframes jcfa-juliet { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.75; } }
@keyframes jcfa-capulet { 0%,100% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(4px) rotate(-2deg); } 66% { transform: translateX(2px) rotate(3deg); } }
@keyframes jcfa-friar { 0%,100% { transform: translateX(0) scaleX(-1); } 50% { transform: translateX(5px) scaleX(-1.02); } }
@keyframes jcfa-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.4; } }

/* Scene: juliet-chamber-laments */
.scn-juliet-chamber-laments {
  background:
    linear-gradient(180deg, #2a2030 0%, #4a3a55 20%, #6a5a6a 40%, #4a3a55 60%, #2a2030 100%),
    radial-gradient(circle at 70% 80%, #3a2e44 0%, transparent 80%);
}
.scn-juliet-chamber-laments .chamber-depth {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2e44 0%, #221a28 40%, #1a1220 100%);
  animation: jclm-depth 10s ease-in-out infinite alternate;
}
.scn-juliet-chamber-laments .bed-alt {
  position: absolute; bottom: 18%; left: 25%; width: 55%; height: 45%;
  background: linear-gradient(180deg, #5a4e44 0%, #3a2e22 100%);
  border-radius: 10% 10% 6% 6% / 18% 18% 10% 10%;
  box-shadow: 0 0 30px rgba(0,0,0,0.8);
  animation: jclm-bed 18s ease-in-out infinite;
}
.scn-juliet-chamber-laments .juliet-shape {
  position: absolute; bottom: 32%; left: 45%; width: 15%; height: 28%;
  background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
  animation: jclm-juliet 9s ease-in-out infinite alternate;
}
.scn-juliet-chamber-laments .capulet-gesture {
  position: absolute; bottom: 22%; right: 30%; width: 22%; height: 45%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 60% 40% 40% 60% / 80% 70% 30% 40%;
  transform-origin: bottom center;
  animation: jclm-capulet 4s ease-in-out infinite;
}
.scn-juliet-chamber-laments .rose-petal {
  position: absolute; width: 12px; height: 15px;
  background: linear-gradient(180deg, #d0a898 0%, #b08878 100%);
  border-radius: 50% 0 50% 0 / 60% 40% 60% 40%;
  opacity: 0.5;
}
.scn-juliet-chamber-laments .leaf-1 {
  top: 30%; left: 35%;
  animation: jclm-petal 8s ease-in-out infinite;
  animation-delay: 0s;
}
.scn-juliet-chamber-laments .leaf-2 {
  top: 45%; left: 50%;
  animation: jclm-petal 10s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-juliet-chamber-laments .leaf-3 {
  top: 55%; left: 40%;
  animation: jclm-petal 6s ease-in-out infinite;
  animation-delay: -5s;
}
.scn-juliet-chamber-laments .dawn-ray {
  position: absolute; top: 5%; left: 20%; width: 25%; height: 40%;
  background: linear-gradient(180deg, rgba(240,210,180,0.25) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  filter: blur(10px); animation: jclm-ray 14s ease-in-out infinite alternate;
}
.scn-juliet-chamber-laments .grief-shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: jclm-grief 5s ease-in-out infinite;
}

@keyframes jclm-depth { 0% { opacity: 0.75; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes jclm-bed { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.01); } }
@keyframes jclm-juliet { 0% { opacity: 0.75; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes jclm-capulet { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-4deg); } 50% { transform: translateX(5px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes jclm-petal { 0% { opacity: 0.3; transform: rotate(0deg) translateY(0); } 33% { opacity: 0.6; transform: rotate(40deg) translateY(-20px) translateX(10px); } 66% { opacity: 0.5; transform: rotate(-20deg) translateY(10px) translateX(-5px); } 100% { opacity: 0.2; transform: rotate(10deg) translateY(0); } }
@keyframes jclm-ray { 0%,100% { opacity: 0.15; transform: scaleX(0.9); } 50% { opacity: 0.4; transform: scaleX(1.1) translateY(5px); } }
@keyframes jclm-grief { 0%,100% { opacity: 0.4; } 50% { opacity: 0.6; } }

/* Scene: juliet-chamber-friar-consoles */
.scn-juliet-chamber-friar-consoles {
  background:
    linear-gradient(180deg, #252030 0%, #3a3050 30%, #5a4a6a 60%, #3a3050 100%),
    radial-gradient(ellipse at 80% 90%, #4a3a5a 0%, transparent 60%);
}
.scn-juliet-chamber-friar-consoles .back-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2e48 0%, #221a28 60%, #161220 100%);
  animation: jcfc-wall 12s ease-in-out infinite alternate;
}
.scn-juliet-chamber-friar-consoles .lattice-window {
  position: absolute; top: 10%; right: 15%; width: 35%; height: 30%;
  background: linear-gradient(180deg, #e8c8a8 0%, #c0a080 100%);
  border-radius: 6% / 8%;
  box-shadow: 0 0 50px 10px #f0d0b0, inset 0 0 20px 5px rgba(240,200,160,0.3);
  animation: jcfc-window 9s ease-in-out infinite alternate;
}
.scn-juliet-chamber-friar-consoles .bed-cloth {
  position: absolute; bottom: 20%; left: 30%; width: 45%; height: 38%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5% / 18% 18% 8% 8%;
  box-shadow: 0 0 20px rgba(0,0,0,0.7);
  animation: jcfc-bed 15s ease-in-out infinite;
}
.scn-juliet-chamber-friar-consoles .juliet-ghost {
  position: absolute; bottom: 32%; left: 42%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #5a4a5a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  opacity: 0.7;
  animation: jcfc-juliet 10s ease-in-out infinite alternate;
}
.scn-juliet-chamber-friar-consoles .friar-steady {
  position: absolute; bottom: 20%; left: 15%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #2a2230 0%, #161220 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: scaleX(-1);
  animation: jcfc-friar 5s ease-in-out infinite;
}
.scn-juliet-chamber-friar-consoles .capulet-falter {
  position: absolute; bottom: 22%; right: 30%; width: 22%; height: 48%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 60% 40% 40% 60% / 80% 70% 30% 40%;
  animation: jcfc-capulet 3s ease-in-out infinite;
}
.scn-juliet-chamber-friar-consoles .tension-line {
  position: absolute; width: 40%; height: 2px;
  background: linear-gradient(90deg, transparent, rgba(200,180,160,0.4), transparent);
  top: 50%; left: 30%;
  animation: jcfc-tension 2s ease-in-out infinite;
}
.scn-juliet-chamber-friar-consoles .tl-1 { animation-delay: 0s; }
.scn-juliet-chamber-friar-consoles .tl-2 { top: 55%; left: 20%; width: 60%; animation-delay: -1s; }

@keyframes jcfc-wall { 0%,100% { opacity: 0.8; } 50% { opacity: 0.95; } }
@keyframes jcfc-window { 0% { opacity: 0.7; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.03); } 100% { opacity: 0.8; transform: scaleX(0.98); } }
@keyframes jcfc-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes jcfc-juliet { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes jcfc-friar { 0%,100% { transform: translateX(0) scaleX(-1); } 50% { transform: translateX(2px) scaleX(-1.02); } }
@keyframes jcfc-capulet { 0%,100% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(4px) rotate(-3deg); } 66% { transform: translateX(2px) rotate(2deg); } }
@keyframes jcfc-tension { 0%,100% { opacity: 0.1; transform: scaleX(0.8); } 50% { opacity: 0.6; transform: scaleX(1.2); } }

/* Orchard Wall Search */
.scn-orchard-wall-search {
  background: linear-gradient(180deg, #0b0b1e 0%, #1a1a3a 40%, #2a2a4e 100%),
              radial-gradient(ellipse at 50% 20%, #4a5a7a 0%, transparent 60%);
}
.scn-orchard-wall-search .moon {
  position: absolute; top: 6%; left: 72%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c8d0e8 0%, #a0a8c0 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 50px #90a0c0, 0 0 100px #7080a0;
  animation: ows-moon 20s ease-in-out infinite alternate;
}
.scn-orchard-wall-search .stars {
  position: absolute; inset: 0 0 60% 0;
  background: transparent;
  box-shadow: 4px 12px 0 #e0e8ff, 20px 40px 0 #d0d8f0, 50px 18px 0 #c0c8e0, 80px 60px 0 #b0b8d0, 120px 30px 0 #a0b0c8;
  animation: ows-twinkle 3s ease-in-out infinite;
}
.scn-orchard-wall-search .orchard-wall {
  position: absolute; bottom: 28%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(90deg, #3a3a2a 0%, #5a4a3a 30%, #4a3a2a 70%, #3a2a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  box-shadow: inset 0 8px 20px #1a1a0a;
  animation: ows-wall-breathe 8s ease-in-out infinite alternate;
}
.scn-orchard-wall-search .vine-left {
  position: absolute; bottom: 48%; left: 12%; width: 80px; height: 20%;
  background: linear-gradient(180deg, #2a4a1a 0%, #1a3a0a 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(2px);
  animation: ows-vine 6s ease-in-out infinite alternate;
}
.scn-orchard-wall-search .vine-right {
  position: absolute; bottom: 50%; right: 15%; width: 60px; height: 18%;
  background: linear-gradient(180deg, #2a4a1a 0%, #1a3a0a 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(2px);
  animation: ows-vine 7s ease-in-out infinite alternate-reverse;
}
.scn-orchard-wall-search .figure-benvolio {
  position: absolute; bottom: 26%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ows-search 4s ease-in-out infinite;
}
.scn-orchard-wall-search .figure-mercutio {
  position: absolute; bottom: 26%; left: 55%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ows-search 5s ease-in-out infinite 1s;
}
.scn-orchard-wall-search .figure-shadow {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, #0a0a1a 0%, transparent 70%);
  filter: blur(6px);
  animation: ows-shadow 4s ease-in-out infinite;
}
@keyframes ows-moon {
  0% { transform: translate(0, 0); opacity: 0.85; box-shadow: 0 0 50px #90a0c0; }
  50% { transform: translate(-4px, -2px); opacity: 1; box-shadow: 0 0 60px #a0b0d0; }
  100% { transform: translate(2px, 1px); opacity: 0.9; box-shadow: 0 0 45px #8090b0; }
}
@keyframes ows-twinkle {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ows-wall-breathe {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(0.98); }
}
@keyframes ows-vine {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(4deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes ows-search {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-3px) rotate(2deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ows-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.1); }
  100% { opacity: 0.3; transform: scaleX(0.9); }
}

/* Balcony Romeo Enters */
.scn-balcony-romeo-enters {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #4a3a5e 70%, #6a4a3a 100%),
              radial-gradient(ellipse at 50% 60%, #8a6a4a 0%, transparent 50%);
}
.scn-balcony-romeo-enters .moon-soft {
  position: absolute; top: 8%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d0d8e8 0%, #b0b8d0 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px #a0a8c0, 0 0 80px #8090b0;
  animation: bre-moon 25s ease-in-out infinite alternate;
}
.scn-balcony-romeo-enters .clouds {
  position: absolute; top: 15%; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, transparent 0%, rgba(200,200,230,0.15) 50%, transparent 100%);
  filter: blur(10px);
  animation: bre-clouds 40s linear infinite;
}
.scn-balcony-romeo-enters .balcony {
  position: absolute; bottom: 40%; left: 50%; width: 120px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.5), inset 0 4px 10px #8a7a6a;
  animation: bre-balcony 6s ease-in-out infinite;
}
.scn-balcony-romeo-enters .window-glow {
  position: absolute; bottom: 45%; left: 50%; width: 20px; height: 28px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 80%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 6px #ffc060, 0 0 60px 12px rgba(255,192,96,0.4);
  animation: bre-glow 3s ease-in-out infinite alternate;
}
.scn-balcony-romeo-enters .juliet-silhouette {
  position: absolute; bottom: 46%; left: 50%; width: 16px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bre-juliet 4s ease-in-out infinite;
}
.scn-balcony-romeo-enters .romeo-figure {
  position: absolute; bottom: 36%; left: 50%; width: 18px; height: 40px;
  transform: translateX(-30px);
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bre-romeo 5s ease-in-out infinite;
}
.scn-balcony-romeo-enters .foreground-grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 6px 12px #0a1a0a;
  animation: bre-grass 10s ease-in-out infinite alternate;
}
@keyframes bre-moon {
  0% { transform: translate(0, 0); opacity: 0.9; }
  50% { transform: translate(-3px, -1px); opacity: 1; }
  100% { transform: translate(2px, 2px); opacity: 0.85; }
}
@keyframes bre-clouds {
  0% { transform: translateX(-100px); }
  100% { transform: translateX(100vw); }
}
@keyframes bre-balcony {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes bre-glow {
  0% { box-shadow: 0 0 20px 4px #ffb050, 0 0 40px 8px rgba(255,176,80,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 12px #ffd080, 0 0 80px 20px rgba(255,208,128,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px #ffc060, 0 0 50px 12px rgba(255,192,96,0.35); opacity: 0.9; }
}
@keyframes bre-juliet {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes bre-romeo {
  0% { transform: translateX(-30px) translateY(0) rotate(-3deg); }
  25% { transform: translateX(-26px) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(-20px) translateY(0) rotate(3deg); }
  75% { transform: translateX(-24px) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(-30px) translateY(0) rotate(-3deg); }
}
@keyframes bre-grass {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}

/* Item Glove */
.scn-item-glove {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a4e 100%),
              radial-gradient(circle at 50% 40%, #6a5a3a 0%, transparent 50%);
}
.scn-item-glove .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, transparent 70%);
  animation: glo-deep 12s ease-in-out infinite alternate;
}
.scn-item-glove .halo {
  position: absolute; top: 25%; left: 50%; width: 140px; height: 140px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,200,120,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(20px);
  animation: glo-halo 4s ease-in-out infinite alternate;
}
.scn-item-glove .glove {
  position: absolute; top: 30%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 50%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: inset 0 4px 10px #8a6a4a, 0 6px 20px rgba(0,0,0,0.6);
  animation: glo-glove 6s ease-in-out infinite;
}
.scn-item-glove .glove-thumb {
  position: absolute; top: 42%; left: 50%; width: 18px; height: 30px;
  transform: translateX(20px) rotate(20deg);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: inset 0 2px 6px #705040;
  animation: glo-thumb 6s ease-in-out infinite;
}
.scn-item-glove .sparkle-1 {
  position: absolute; top: 22%; left: 40%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffd080 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 6px #ffd080, 0 0 12px rgba(255,208,128,0.5);
  animation: glo-sparkle 2s ease-in-out infinite;
}
.scn-item-glove .sparkle-2 {
  position: absolute; top: 28%; right: 35%; width: 3px; height: 3px;
  background: radial-gradient(circle, #ffc060 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 4px #ffc060, 0 0 8px rgba(255,192,96,0.4);
  animation: glo-sparkle 3s ease-in-out infinite 0.5s;
}
.scn-item-glove .sparkle-3 {
  position: absolute; top: 35%; left: 48%; width: 5px; height: 5px;
  background: radial-gradient(circle, #ffb850 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 8px #ffb850, 0 0 16px rgba(255,184,80,0.6);
  animation: glo-sparkle 2.5s ease-in-out infinite 1s;
}
@keyframes glo-deep {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes glo-halo {
  0% { transform: translateX(-50%) scale(0.95); opacity: 0.6; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.8; }
}
@keyframes glo-glove {
  0%,100% { transform: translateX(-50%) rotate(-2deg) scale(1); }
  25% { transform: translateX(-50%) rotate(1deg) scale(1.02); }
  50% { transform: translateX(-50%) rotate(-1deg) scale(0.98); }
  75% { transform: translateX(-50%) rotate(2deg) scale(1.01); }
}
@keyframes glo-thumb {
  0%,100% { transform: translateX(20px) rotate(20deg); }
  50% { transform: translateX(20px) rotate(25deg); }
}
@keyframes glo-sparkle {
  0% { opacity: 0; transform: scale(0); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: 0; transform: scale(0.5); }
}

/* Balcony Juliet Laments */
.scn-balcony-juliet-laments {
  background: linear-gradient(180deg, #06060e 0%, #0e0e1e 40%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 10%, #3a3a5e 0%, transparent 60%);
}
.scn-balcony-juliet-laments .moon-dark {
  position: absolute; top: 8%; right: 25%; width: 35px; height: 35px;
  background: radial-gradient(circle, #8080a0 0%, #606080 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px #505070, 0 0 60px #303050;
  animation: bjl-moon 30s ease-in-out infinite alternate;
}
.scn-balcony-juliet-laments .clouds-dark {
  position: absolute; top: 10%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, transparent 0%, rgba(80,80,100,0.1) 50%, transparent 100%);
  filter: blur(12px);
  animation: bjl-clouds 50s linear infinite reverse;
}
.scn-balcony-juliet-laments .balcony-rail {
  position: absolute; bottom: 45%; left: 50%; width: 100px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #2a1a1a 0%, #4a2a2a 50%, #2a1a1a 100%);
  border-radius: 20%;
  box-shadow: 0 -2px 6px #0a0a1a;
  animation: bjl-rail 8s ease-in-out infinite;
}
.scn-balcony-juliet-laments .juliet-dark-silhouette {
  position: absolute; bottom: 46%; left: 50%; width: 18px; height: 34px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a1a 0%, #00000a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px #0a0a1a;
  animation: bjl-juliet 6s ease-in-out infinite;
}
.scn-balcony-juliet-laments .shadow-bar {
  position: absolute; bottom: 43%; left: 38%; right: 38%; height: 4px;
  background: #00000a;
  filter: blur(2px);
  opacity: 0.7;
  animation: bjl-shadow 6s ease-in-out infinite;
}
.scn-balcony-juliet-laments .teardrop {
  position: absolute; bottom: 50%; left: 50%; width: 4px; height: 8px;
  background: radial-gradient(circle, #606080 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px #606080;
  animation: bjl-teardrop 5s ease-in-out infinite;
}
.scn-balcony-juliet-laments .grief-mist {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(40,40,60,0.15) 100%);
  filter: blur(10px);
  animation: bjl-mist 15s ease-in-out infinite alternate;
}
@keyframes bjl-moon {
  0% { transform: translate(0, 0); opacity: 0.5; }
  50% { transform: translate(-2px, -1px); opacity: 0.7; }
  100% { transform: translate(1px, 1px); opacity: 0.4; }
}
@keyframes bjl-clouds {
  0% { transform: translateX(-50px); }
  100% { transform: translateX(100vw); }
}
@keyframes bjl-rail {
  0%,100% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.02); }
}
@keyframes bjl-juliet {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes bjl-shadow {
  0%,100% { opacity: 0.6; }
  50% { opacity: 0.8; }
}
@keyframes bjl-teardrop {
  0% { transform: translateY(0) scale(1); opacity: 0; }
  30% { opacity: 1; }
  70% { opacity: 0.8; }
  100% { transform: translateY(20px) scale(0.8); opacity: 0; }
}
@keyframes bjl-mist {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

.scn-public-place-mercutio-dies {
  background: linear-gradient(180deg, #f9e3c0 0%, #d4a76a 40%, #a67c52 70%, #5e3d2b 100%), radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 50%);
}
.scn-public-place-mercutio-dies .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #fce4b8 0%, #d4a76a 100%); animation: md1-sky 20s ease-in-out infinite alternate; }
.scn-public-place-mercutio-dies .sun { position:absolute; top:12%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #fffbe6 0%, #f9d99a 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px #f9d99a; animation: md1-sun 8s ease-in-out infinite; }
.scn-public-place-mercutio-dies .wall { position:absolute; bottom:40%; left:15%; width:70%; height:30%; background: linear-gradient(180deg, #b88a5c 0%, #8a6a4a 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.3); animation: md1-wall 15s linear infinite; }
.scn-public-place-mercutio-dies .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 40% 60% 0 0 / 30% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
.scn-public-place-mercutio-dies .figure-fallen { position:absolute; bottom:8%; left:35%; width:28px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; transform: rotate(-15deg) scaleX(0.8); animation: md1-fallen 4s ease-in-out infinite alternate; }
.scn-public-place-mercutio-dies .figure-kneeling { position:absolute; bottom:12%; left:52%; width:22px; height:44px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: md1-kneel 6s ease-in-out infinite; }
.scn-public-place-mercutio-dies .stain { position:absolute; bottom:6%; left:30%; width:30px; height:10px; background: radial-gradient(ellipse, #6a2a1a 0%, #4a1a0a 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 2px rgba(74,26,10,0.4); animation: md1-stain 5s ease-in-out infinite alternate; }
.scn-public-place-mercutio-dies .mist { position:absolute; bottom:35%; left:40%; width:120px; height:30px; background: radial-gradient(ellipse, rgba(249,227,192,0.4) 0%, transparent 100%); filter: blur(12px); animation: md1-mist 25s linear infinite; }
@keyframes md1-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes md1-sun { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.1) translateY(-4px); box-shadow: 0 0 80px 30px #f9d99a; } 100% { transform: scale(1) translateY(0); } }
@keyframes md1-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes md1-fallen { 0% { transform: rotate(-15deg) scaleX(0.8) translateY(0); } 100% { transform: rotate(-10deg) scaleX(0.85) translateY(-2px); } }
@keyframes md1-kneel { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes md1-stain { 0% { opacity:0.6; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.2); } 100% { opacity:0.7; transform: scaleX(0.9); } }
@keyframes md1-mist { 0% { transform: translateX(-20px); opacity:0; } 50% { opacity:0.3; } 100% { transform: translateX(120px); opacity:0; } }

.scn-public-place-romeo-avenges {
  background: linear-gradient(180deg, #f9e3c0 0%, #cba66a 45%, #8a6a3a 75%, #3a2a1a 100%), radial-gradient(ellipse at 30% 15%, #fffce0 0%, transparent 60%);
}
.scn-public-place-romeo-avenges .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fce4b8 0%, #cba66a 100%); animation: ra2-sky 18s ease-in-out infinite alternate; }
.scn-public-place-romeo-avenges .sun { position:absolute; top:8%; left:80%; width:55px; height:55px; background: radial-gradient(circle, #fffbe6 0%, #f9d99a 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 70px 25px #f9d99a; animation: ra2-sun 9s ease-in-out infinite; }
.scn-public-place-romeo-avenges .wall { position:absolute; bottom:35%; left:20%; width:60%; height:35%; background: linear-gradient(90deg, #a67c52 0%, #8a6a4a 50%, #6a4a2a 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 -10px 15px rgba(0,0,0,0.4); animation: ra2-wall 12s linear infinite; }
.scn-public-place-romeo-avenges .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 30% 70% 0 0 / 40% 30% 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,0.5); }
.scn-public-place-romeo-avenges .figure-romeo { position:absolute; bottom:25%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg) scaleX(0.9); animation: ra2-romeo 3s ease-in-out infinite; }
.scn-public-place-romeo-avenges .figure-tybalt { position:absolute; bottom:22%; left:55%; width:28px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg) scaleX(0.85); animation: ra2-tybalt 3.5s ease-in-out infinite; }
.scn-public-place-romeo-avenges .blade-romeo { position:absolute; bottom:30%; left:32%; width:4px; height:35px; background: linear-gradient(180deg, #c8b88a 0%, #a09070 100%); border-radius:2px; transform: rotate(30deg); animation: ra2-bladeR 0.8s ease-in-out infinite alternate; }
.scn-public-place-romeo-avenges .blade-tybalt { position:absolute; bottom:28%; left:53%; width:4px; height:30px; background: linear-gradient(180deg, #c8b88a 0%, #a09070 100%); border-radius:2px; transform: rotate(-40deg); animation: ra2-bladeT 0.9s ease-in-out infinite alternate; }
.scn-public-place-romeo-avenges .dust { position:absolute; bottom:20%; left:40%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(200,180,140,0.5) 0%, transparent 100%); filter: blur(8px); animation: ra2-dust 4s linear infinite; }
@keyframes ra2-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes ra2-sun { 0% { transform: scale(1) translate(0,0); box-shadow:0 0 60px 20px #f9d99a; } 50% { transform: scale(1.1) translate(3px,-3px); box-shadow:0 0 90px 35px #f9d99a; } 100% { transform: scale(1) translate(0,0); } }
@keyframes ra2-wall { 0% { opacity:0.9 } 100% { opacity:1 } }
@keyframes ra2-romeo { 0% { transform: rotate(10deg) scaleX(0.9) translateY(0); } 25% { transform: rotate(15deg) scaleX(0.95) translateY(-4px); } 50% { transform: rotate(5deg) scaleX(0.85) translateY(-2px); } 75% { transform: rotate(12deg) scaleX(0.9) translateY(0); } 100% { transform: rotate(10deg) scaleX(0.9) translateY(0); } }
@keyframes ra2-tybalt { 0% { transform: rotate(-15deg) scaleX(0.85) translateY(0); } 25% { transform: rotate(-10deg) scaleX(0.9) translateY(-3px); } 50% { transform: rotate(-20deg) scaleX(0.8) translateY(-1px); } 75% { transform: rotate(-12deg) scaleX(0.85) translateY(0); } 100% { transform: rotate(-15deg) scaleX(0.85) translateY(0); } }
@keyframes ra2-bladeR { 0% { transform: rotate(25deg); } 100% { transform: rotate(35deg); } }
@keyframes ra2-bladeT { 0% { transform: rotate(-35deg); } 100% { transform: rotate(-45deg); } }
@keyframes ra2-dust { 0% { transform: translateX(-10px); opacity:0; } 50% { opacity:0.4; } 100% { transform: translateX(30px); opacity:0; } }

.scn-public-place-tybalt-killed {
  background: linear-gradient(180deg, #f0d4a8 0%, #c8a070 45%, #8a6040 75%, #3a2a1a 100%), radial-gradient(ellipse at 40% 25%, #fff8e0 0%, transparent 50%);
}
.scn-public-place-tybalt-killed .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f0d4a8 0%, #c8a070 100%); animation: tk3-sky 22s ease-in-out infinite alternate; }
.scn-public-place-tybalt-killed .sun { position:absolute; top:15%; left:60%; width:45px; height:45px; background: radial-gradient(circle, #fffbe6 0%, #f0d080 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 50px 20px #f0d080; animation: tk3-sun 10s ease-in-out infinite; }
.scn-public-place-tybalt-killed .wall { position:absolute; bottom:40%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #a07850 0%, #805030 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -6px 10px rgba(0,0,0,0.3); }
.scn-public-place-tybalt-killed .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
.scn-public-place-tybalt-killed .figure-romeo-standing { position:absolute; bottom:28%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tk3-romeo 5s ease-in-out infinite; }
.scn-public-place-tybalt-killed .figure-tybalt-fallen { position:absolute; bottom:8%; left:50%; width:28px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; transform: rotate(-20deg) scaleX(0.7); animation: tk3-tybalt 4s ease-in-out infinite alternate; }
.scn-public-place-tybalt-killed .sword-fallen { position:absolute; bottom:14%; left:46%; width:30px; height:3px; background: linear-gradient(90deg, #c8b88a 0%, #a09070 100%); border-radius:2px; transform: rotate(30deg); animation: tk3-sword 6s ease-in-out infinite; }
.scn-public-place-tybalt-killed .shadow { position:absolute; bottom:20%; left:38%; width:40px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%); filter: blur(6px); animation: tk3-shadow 5s ease-in-out infinite alternate; }
@keyframes tk3-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes tk3-sun { 0% { transform: scale(1); box-shadow:0 0 40px 15px #f0d080; } 50% { transform: scale(1.1); box-shadow:0 0 70px 25px #f0d080; } 100% { transform: scale(1); } }
@keyframes tk3-romeo { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes tk3-tybalt { 0% { transform: rotate(-20deg) scaleX(0.7) translateY(0); } 100% { transform: rotate(-15deg) scaleX(0.75) translateY(-2px); } }
@keyframes tk3-sword { 0% { transform: rotate(25deg); opacity:0.7; } 50% { transform: rotate(35deg); opacity:1; } 100% { transform: rotate(25deg); opacity:0.7; } }
@keyframes tk3-shadow { 0% { transform: scaleX(1); opacity:0.3; } 100% { transform: scaleX(1.2); opacity:0.6; } }

.scn-public-place-citizens-prince {
  background: linear-gradient(180deg, #fce4c0 0%, #d4a870 45%, #9a7048 75%, #4a2a1a 100%), radial-gradient(ellipse at 50% 10%, #fffce0 0%, transparent 60%);
}
.scn-public-place-citizens-prince .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fce4c0 0%, #d4a870 100%); animation: cp4-sky 24s ease-in-out infinite alternate; }
.scn-public-place-citizens-prince .sun { position:absolute; top:10%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #fffbe6 0%, #f9d080 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px #f9d080; animation: cp4-sun 11s ease-in-out infinite; }
.scn-public-place-citizens-prince .wall { position:absolute; bottom:35%; left:5%; width:90%; height:30%; background: linear-gradient(180deg, #a07850 0%, #705030 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.3); animation: cp4-wall 16s linear infinite; }
.scn-public-place-citizens-prince .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 30% 70% 0 0 / 40% 20% 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,0.5); }
.scn-public-place-citizens-prince .crowd-left { position:absolute; bottom:22%; left:8%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%); filter: blur(4px); animation: cp4-crowd 7s ease-in-out infinite alternate; }
.scn-public-place-citizens-prince .crowd-right { position:absolute; bottom:22%; right:8%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%); filter: blur(4px); animation: cp4-crowd 7s ease-in-out infinite alternate-reverse; }
.scn-public-place-citizens-prince .prince { position:absolute; bottom:26%; left:38%; width:28px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(0.9); animation: cp4-prince 6s ease-in-out infinite; }
.scn-public-place-citizens-prince .horse { position:absolute; bottom:22%; left:35%; width:35px; height:25px; background: linear-gradient(180deg, #6a4a2a 0%, #3a1a0a 100%); border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%; animation: cp4-horse 5s ease-in-out infinite; }
.scn-public-place-citizens-prince .banner { position:absolute; bottom:30%; left:45%; width:3px; height:25px; background: #c8b88a; border-radius:1px; transform: rotate(-5deg); animation: cp4-banner 3s ease-in-out infinite alternate; }
@keyframes cp4-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes cp4-sun { 0% { transform: scale(1); box-shadow:0 0 50px 15px #f9d080; } 50% { transform: scale(1.1); box-shadow:0 0 80px 30px #f9d080; } 100% { transform: scale(1); } }
@keyframes cp4-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cp4-crowd { 0% { opacity:0.3; transform: translateY(0); } 50% { opacity:0.7; transform: translateY(-3px); } 100% { opacity:0.4; transform: translateY(2px); } }
@keyframes cp4-prince { 0% { transform: scaleX(0.9) translateY(0); } 50% { transform: scaleX(0.95) translateY(-4px); } 100% { transform: scaleX(0.9) translateY(0); } }
@keyframes cp4-horse { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cp4-banner { 0% { transform: rotate(-8deg); } 100% { transform: rotate(2deg); } }

.scn-public-place-capulet-laments {
  background: linear-gradient(180deg, #2a3a5a 0%, #6a5a3a 50%, #3a2a1a 100%), radial-gradient(ellipse at 30% 20%, #c8a060 0%, transparent 60%);
}
.scn-public-place-capulet-laments .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, #a09070 100%);
  animation: capu-sky 14s ease-in-out infinite alternate;
}
.scn-public-place-capulet-laments .sun {
  position: absolute; top: 12%; left: 25%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, #f0d090 0%, #e0b060 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: capu-sun 10s ease-in-out infinite alternate;
}
.scn-public-place-capulet-laments .arch-l {
  position: absolute; left: 0; bottom: 40%;
  width: 120px; height: 180px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 60% 0 0 / 0 40% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
}
.scn-public-place-capulet-laments .arch-r {
  position: absolute; right: 0; bottom: 40%;
  width: 120px; height: 180px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 60% 0 0 0 / 40% 0 0 0;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
}
.scn-public-place-capulet-laments .body {
  position: absolute; bottom: 28%; left: 50%;
  width: 60px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: capu-body 8s ease-in-out infinite;
}
.scn-public-place-capulet-laments .figure {
  position: absolute; bottom: 28%; left: 38%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: capu-figure 6s ease-in-out infinite alternate;
}
.scn-public-place-capulet-laments .blood {
  position: absolute; bottom: 26%; left: 48%;
  width: 16px; height: 8px;
  background: radial-gradient(circle, #9a3a2a 0%, #5a1a0a 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: capu-blood 5s ease-in-out infinite alternate;
}
@keyframes capu-sky { 0% { opacity: 1; background-position: 0 0; } 50% { opacity: 0.7; background-position: 0 20px; } 100% { opacity: 0.9; background-position: 0 0; } }
@keyframes capu-sun { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(10px, -5px) scale(1.05); } 100% { transform: translate(-5px, 0) scale(0.95); } }
@keyframes capu-body { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-48%) scale(0.98); } }
@keyframes capu-figure { 0% { transform: translate(0, 0) rotate(-2deg); } 50% { transform: translate(8px, -2px) rotate(3deg); } 100% { transform: translate(16px, 0) rotate(-1deg); } }
@keyframes capu-blood { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.9); } }

.scn-public-place-benvolio-explains {
  background: linear-gradient(180deg, #c8b090 0%, #e0d0b0 50%, #a09070 100%), radial-gradient(ellipse at 50% 10%, #f0e8d0 0%, transparent 60%);
}
.scn-public-place-benvolio-explains .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%);
  animation: benv-sky 12s ease-in-out infinite alternate;
}
.scn-public-place-benvolio-explains .bg-buildings {
  position: absolute; bottom: 35%; left: 0; right: 0;
  height: 20%;
  background: repeating-linear-gradient(90deg, #8a7a5a 0px, #7a6a4a 2px, #8a7a5a 4px);
  border-radius: 10% 10% 0 0;
  opacity: 0.4;
}
.scn-public-place-benvolio-explains .benvolio {
  position: absolute; bottom: 25%; left: 35%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: benv-benvolio 3s ease-in-out infinite;
}
.scn-public-place-benvolio-explains .prince {
  position: absolute; bottom: 28%; left: 55%;
  width: 32px; height: 75px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  animation: benv-prince 4s ease-in-out infinite alternate;
}
.scn-public-place-benvolio-explains .crowd-a {
  position: absolute; bottom: 22%; left: 20%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform: scale(0.8);
}
.scn-public-place-benvolio-explains .crowd-b {
  position: absolute; bottom: 22%; right: 20%;
  width: 22px; height: 52px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform: scale(0.85);
}
.scn-public-place-benvolio-explains .sunburst {
  position: absolute; top: 15%; left: 50%;
  width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,230,180,0.6) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(10px);
  animation: benv-sun 8s ease-in-out infinite alternate;
}
@keyframes benv-sky { 0% { opacity: 1; } 50% { opacity: 0.6; } 100% { opacity: 0.8; } }
@keyframes benv-benvolio { 0% { transform: translate(0, 0) rotate(-5deg); } 30% { transform: translate(6px, -3px) rotate(8deg); } 60% { transform: translate(12px, 0) rotate(-3deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes benv-prince { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(-4px, 2px) scale(1.02); } 100% { transform: translate(4px, -2px) scale(0.98); } }
@keyframes benv-sun { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.15) rotate(5deg); } 100% { transform: scale(0.9) rotate(-3deg); } }

.scn-public-place-prince-judgment {
  background: linear-gradient(180deg, #3a4a5a 0%, #8a7a5a 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 80%, #b0a080 0%, transparent 60%);
}
.scn-public-place-prince-judgment .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #b0a080 100%);
  animation: pjd-sky 15s ease-in-out infinite alternate;
}
.scn-public-place-prince-judgment .dais {
  position: absolute; bottom: 30%; left: 50%;
  width: 120px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.5);
}
.scn-public-place-prince-judgment .prince {
  position: absolute; bottom: 45%; left: 50%;
  width: 34px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 25% 25%;
  animation: pjd-prince 5s ease-in-out infinite alternate;
}
.scn-public-place-prince-judgment .pillar-l {
  position: absolute; bottom: 30%; left: 10%;
  width: 16px; height: 120px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 8px;
}
.scn-public-place-prince-judgment .pillar-r {
  position: absolute; bottom: 30%; right: 10%;
  width: 16px; height: 120px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 8px;
}
.scn-public-place-prince-judgment .figure-l {
  position: absolute; bottom: 26%; left: 25%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  animation: pjd-figure 7s ease-in-out infinite;
}
.scn-public-place-prince-judgment .figure-r {
  position: absolute; bottom: 26%; right: 25%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  animation: pjd-figure 7s ease-in-out infinite reverse;
}
.scn-public-place-prince-judgment .fallen {
  position: absolute; bottom: 28%; left: 45%;
  width: 50px; height: 25px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: rotate(15deg);
  animation: pjd-fallen 9s ease-in-out infinite alternate;
}
@keyframes pjd-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes pjd-prince { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-48%) scaleY(1.04); } 100% { transform: translateX(-52%) scale(0.96); } }
@keyframes pjd-figure { 0% { transform: translate(0, 0) rotate(-1deg); } 50% { transform: translate(3px, -2px) rotate(2deg); } 100% { transform: translate(-3px, 0) rotate(-1deg); } }
@keyframes pjd-fallen { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(10deg) scale(1.05); } 100% { transform: rotate(20deg) scale(0.95); } }

.scn-orchard-juliet-soliloquy {
  background: linear-gradient(180deg, #f0c888 0%, #e0a060 30%, #c07040 70%, #5a2a1a 100%), radial-gradient(ellipse at 50% 20%, #fce0b0 0%, transparent 60%);
}
.scn-orchard-juliet-soliloquy .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0d0a0 0%, #e8a060 50%, #c06030 100%);
  animation: orc-sky 18s ease-in-out infinite alternate;
}
.scn-orchard-juliet-soliloquy .balcony {
  position: absolute; bottom: 35%; left: 50%;
  width: 100px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-orchard-juliet-soliloquy .juliet {
  position: absolute; bottom: 41%; left: 50%;
  width: 20px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 25% 25%;
  transform-origin: bottom center;
  animation: orc-juliet 6s ease-in-out infinite;
}
.scn-orchard-juliet-soliloquy .vine-l {
  position: absolute; bottom: 30%; left: 15%;
  width: 8px; height: 120px;
  background: linear-gradient(180deg, #4a5a2a 0%, #2a3a1a 100%);
  border-radius: 4px;
  transform: rotate(10deg);
  animation: orc-vine 12s ease-in-out infinite alternate;
}
.scn-orchard-juliet-soliloquy .vine-r {
  position: absolute; bottom: 30%; right: 15%;
  width: 8px; height: 120px;
  background: linear-gradient(180deg, #4a5a2a 0%, #2a3a1a 100%);
  border-radius: 4px;
  transform: rotate(-10deg);
  animation: orc-vine 12s ease-in-out infinite alternate-reverse;
}
.scn-orchard-juliet-soliloquy .glow {
  position: absolute; top: 15%; left: 50%;
  width: 120px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,200,150,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(20px);
  animation: orc-glow 8s ease-in-out infinite alternate;
}
.scn-orchard-juliet-soliloquy .bloom {
  position: absolute; bottom: 44%; left: 42%;
  width: 8px; height: 8px;
  background: radial-gradient(circle, #d89070 0%, #b06040 60%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(216,144,112,0.6);
  animation: orc-bloom 4s ease-in-out infinite;
}
@keyframes orc-sky { 0% { background-position: 0 0; } 50% { background-position: 0 10px; } 100% { background-position: 0 0; } }
@keyframes orc-juliet { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-48%) rotate(-2deg) scale(1.02); } 60% { transform: translateX(-52%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes orc-vine { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(14deg) scale(1.05); } 100% { transform: rotate(8deg) scale(0.95); } }
@keyframes orc-glow { 0% { opacity: 0.5; transform: translateX(-50%) scale(1); } 50% { opacity: 0.8; transform: translateX(-48%) scale(1.1); } 100% { opacity: 0.6; transform: translateX(-52%) scale(0.9); } }
@keyframes orc-bloom { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(0.8); } }

/* orchard-nurse-praises-paris */
.scn-orchard-nurse-praises-paris { background: linear-gradient(180deg, #fdca7a 0%, #f9a85a 30%, #e07a3a 60%, #4a2a1a 100%), radial-gradient(ellipse at 80% 20%, #ffdd88 0%, transparent 60%); }
.scn-orchard-nurse-praises-paris .sky-overlay { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, rgba(255,200,120,.25) 0%, transparent 100%); animation: onp-sky 20s ease-in-out infinite alternate; }
.scn-orchard-nurse-praises-paris .sun { position:absolute; bottom:55%; left:75%; width:40px; height:40px; background:radial-gradient(circle, #ffee88 0%, #ffcc44 40%, #e08020 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px #ffaa40, 0 0 100px 40px rgba(255,170,64,.4); animation: onp-sunrise 12s ease-in-out infinite alternate; }
.scn-orchard-nurse-praises-paris .tree { position:absolute; bottom:25%; width:60px; height:200px; background:linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:60% 60% 20% 20% / 80% 80% 40% 40%; box-shadow:-4px 0 8px rgba(0,0,0,.3); }
.scn-orchard-nurse-praises-paris .tree-left { left:8%; transform:scaleX(0.9); animation: onp-tree-sway 10s ease-in-out infinite; }
.scn-orchard-nurse-praises-paris .tree-right { right:8%; transform:scaleX(1.1) scaleY(0.9); animation: onp-tree-sway 12s ease-in-out infinite reverse; }
.scn-orchard-nurse-praises-paris .figure { position:absolute; bottom:22%; width:16px; height:44px; background:linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: onp-figure 4s ease-in-out infinite; }
.scn-orchard-nurse-praises-paris .nurse { left:42%; animation-delay:0s; }
.scn-orchard-nurse-praises-paris .paris { left:54%; animation-delay:0.5s; transform:scaleX(-1); }
.scn-orchard-nurse-praises-paris .ground { position:absolute; bottom:0; left:0; right:0; height:22%; background:linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:30% 70% 0 0 / 50% 50% 0 0; animation: onp-ground 8s ease-in-out infinite alternate; }
@keyframes onp-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes onp-sunrise { 0% { transform:translateY(20px) scale(0.9); box-shadow: 0 0 30px 10px #ffaa40, 0 0 60px 20px rgba(255,170,64,.2) } 50% { transform:translateY(-5px) scale(1); box-shadow: 0 0 60px 20px #ffaa40, 0 0 100px 40px rgba(255,170,64,.5) } 100% { transform:translateY(10px) scale(0.95); box-shadow: 0 0 40px 15px #ffaa40, 0 0 80px 30px rgba(255,170,64,.3) } }
@keyframes onp-tree-sway { 0% { transform:rotate(-2deg) scaleX(0.9) } 50% { transform:rotate(2deg) scaleX(1) } 100% { transform:rotate(-1deg) scaleX(0.95) } }
@keyframes onp-figure { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-3px) rotate(3deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes onp-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }

/* friar-cell-paris-wooing */
.scn-friar-cell-paris-wooing { background: linear-gradient(180deg, #1a1410 0%, #2a1c14 40%, #3a2218 100%), radial-gradient(ellipse at 30% 60%, #3a2218 0%, transparent 70%); }
.scn-friar-cell-paris-wooing .cell-wall { position:absolute; inset:0; background:linear-gradient(135deg, #1c1410 0%, #2e1e14 50%, #1c1410 100%); animation: fcp-wall 15s ease-in-out infinite alternate; }
.scn-friar-cell-paris-wooing .window { position:absolute; top:20%; left:60%; width:40px; height:60px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border:3px solid #1a1410; border-radius:4px; box-shadow:inset 0 0 10px rgba(0,0,0,.8); animation: fcp-window 8s ease-in-out infinite; }
.scn-friar-cell-paris-wooing .candle { position:absolute; bottom:45%; left:35%; width:6px; height:12px; background:linear-gradient(180deg, #e0b060 0%, #c08040 100%); border-radius:2px; box-shadow: 0 0 16px 6px #e0b060, 0 0 32px 12px rgba(224,176,96,.3); animation: fcp-candle 3s ease-in-out infinite; }
.scn-friar-cell-paris-wooing .table { position:absolute; bottom:28%; left:30%; width:80px; height:12px; background:linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:2px; transform:perspective(30px) rotateX(5deg); animation: fcp-table 20s ease-in-out infinite; }
.scn-friar-cell-paris-wooing .friar { position:absolute; bottom:22%; left:28%; width:20px; height:50px; background:linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: fcp-friar 6s ease-in-out infinite; }
.scn-friar-cell-paris-wooing .paris { position:absolute; bottom:22%; left:48%; width:18px; height:46px; background:linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: fcp-paris 7s ease-in-out infinite reverse; }
@keyframes fcp-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes fcp-window { 0% { box-shadow:inset 0 0 10px rgba(0,0,0,.8); } 50% { box-shadow:inset 0 0 20px rgba(0,0,0,.9); } 100% { box-shadow:inset 0 0 10px rgba(0,0,0,.8); } }
@keyframes fcp-candle { 0% { transform:translateY(0) scale(1,1); box-shadow: 0 0 12px 4px #e0b060, 0 0 24px 8px rgba(224,176,96,.2) } 50% { transform:translateY(-2px) scale(1,1.1); box-shadow: 0 0 20px 8px #e0b060, 0 0 40px 16px rgba(224,176,96,.4) } 100% { transform:translateY(0) scale(1,0.9); box-shadow: 0 0 14px 5px #e0b060, 0 0 28px 10px rgba(224,176,96,.25) } }
@keyframes fcp-table { 0% { transform:perspective(30px) rotateX(5deg) translateY(0) } 50% { transform:perspective(30px) rotateX(5deg) translateY(-1px) } 100% { transform:perspective(30px) rotateX(5deg) translateY(0) } }
@keyframes fcp-friar { 0% { transform:translateX(0) rotate(-1deg) } 50% { transform:translateX(3px) rotate(2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes fcp-paris { 0% { transform:translateX(0) rotate(1deg) } 50% { transform:translateX(-2px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0) } }

/* friar-cell-haste-reason */
.scn-friar-cell-haste-reason { background: linear-gradient(180deg, #14100c 0%, #241814 40%, #34201a 100%), radial-gradient(ellipse at 50% 80%, #34201a 0%, transparent 60%); }
.scn-friar-cell-haste-reason .cell-wall { position:absolute; inset:0; background:linear-gradient(45deg, #1a1410 0%, #2e1e14 50%, #1a1410 100%); animation: fch-wall 18s ease-in-out infinite alternate; }
.scn-friar-cell-haste-reason .door { position:absolute; bottom:0; left:15%; width:50px; height:100px; background:linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius:4px 4px 0 0; box-shadow:-2px 0 6px rgba(0,0,0,.5); transform:skewY(2deg); animation: fch-door 10s ease-in-out infinite; }
.scn-friar-cell-haste-reason .candle { position:absolute; bottom:45%; left:55%; width:6px; height:10px; background:linear-gradient(180deg, #e0b060 0%, #c08040 100%); border-radius:2px; box-shadow:0 0 14px 5px #e0b060, 0 0 28px 10px rgba(224,176,96,.3); animation: fch-candle 2.5s ease-in-out infinite; }
.scn-friar-cell-haste-reason .stool { position:absolute; bottom:28%; left:45%; width:30px; height:6px; background:linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:2px; animation: fch-stool 25s ease-in-out infinite; }
.scn-friar-cell-haste-reason .friar { position:absolute; bottom:22%; left:35%; width:22px; height:55px; background:linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: fch-friar 5s ease-in-out infinite; }
.scn-friar-cell-haste-reason .juliet { position:absolute; bottom:22%; left:52%; width:16px; height:42px; background:linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: fch-juliet 4.5s ease-in-out infinite; }
.scn-friar-cell-haste-reason .paris { position:absolute; bottom:22%; left:28%; width:18px; height:46px; background:linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: fch-paris 6s ease-in-out infinite reverse; }
@keyframes fch-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fch-door { 0% { transform:skewY(2deg) translateX(0) } 50% { transform:skewY(0deg) translateX(2px) } 100% { transform:skewY(2deg) translateX(0) } }
@keyframes fch-candle { 0% { transform:translateY(0) scale(1); box-shadow:0 0 12px 4px #e0b060, 0 0 24px 8px rgba(224,176,96,.2) } 50% { transform:translateY(-2px) scale(1,1.15); box-shadow:0 0 18px 6px #e0b060, 0 0 36px 14px rgba(224,176,96,.4) } 100% { transform:translateY(0) scale(1,0.9); box-shadow:0 0 14px 5px #e0b060, 0 0 28px 10px rgba(224,176,96,.25) } }
@keyframes fch-stool { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes fch-friar { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(3px) rotate(2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes fch-juliet { 0% { transform:translateX(0) rotate(2deg) } 50% { transform:translateX(-2px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes fch-paris { 0% { transform:translateX(0) rotate(0) } 50% { transform:translateX(2px) rotate(2deg) } 100% { transform:translateX(0) rotate(0) } }

/* friar-cell-juliet-paris-banter */
.scn-friar-cell-juliet-paris-banter { background: linear-gradient(180deg, #1a1410 0%, #2e1e14 50%, #3c281c 100%), radial-gradient(ellipse at 20% 50%, #3c281c 0%, transparent 70%); }
.scn-friar-cell-juliet-paris-banter .cell-wall { position:absolute; inset:0; background:linear-gradient(135deg, #1c1410 0%, #2e1e14 50%, #1c1410 100%); animation: fjp-wall 20s ease-in-out infinite alternate; }
.scn-friar-cell-juliet-paris-banter .window { position:absolute; top:25%; right:10%; width:30px; height:40px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border:2px solid #1a1410; border-radius:4px; box-shadow:inset 0 0 8px rgba(0,0,0,.8); }
.scn-friar-cell-juliet-paris-banter .moon { background:radial-gradient(circle at 50% 30%, #c8b090 10%, #3a2a1a 30%, #1a1410 100%); box-shadow:inset 0 0 12px rgba(0,0,0,.9); animation: fjp-moon 30s ease-in-out infinite; }
.scn-friar-cell-juliet-paris-banter .candle { position:absolute; bottom:40%; left:45%; width:6px; height:10px; background:linear-gradient(180deg, #e0b060 0%, #c08040 100%); border-radius:2px; box-shadow:0 0 14px 5px #e0b060, 0 0 28px 10px rgba(224,176,96,.3); animation: fjp-candle 3.2s ease-in-out infinite; }
.scn-friar-cell-juliet-paris-banter .bench { position:absolute; bottom:28%; left:25%; width:100px; height:8px; background:linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:2px; transform:perspective(30px) rotateX(3deg); animation: fjp-bench 22s ease-in-out infinite; }
.scn-friar-cell-juliet-paris-banter .juliet { position:absolute; bottom:22%; left:48%; width:16px; height:42px; background:linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: fjp-juliet 4.8s ease-in-out infinite; }
.scn-friar-cell-juliet-paris-banter .paris { position:absolute; bottom:22%; left:38%; width:18px; height:46px; background:linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: fjp-paris 5.2s ease-in-out infinite reverse; }
.scn-friar-cell-juliet-paris-banter .friar { position:absolute; bottom:22%; left:22%; width:22px; height:55px; background:linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: fjp-friar 7s ease-in-out infinite; }
@keyframes fjp-wall { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fjp-moon { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes fjp-candle { 0% { transform:translateY(0) scale(1); box-shadow:0 0 12px 4px #e0b060, 0 0 24px 8px rgba(224,176,96,.2) } 50% { transform:translateY(-2px) scale(1,1.1); box-shadow:0 0 18px 6px #e0b060, 0 0 36px 14px rgba(224,176,96,.4) } 100% { transform:translateY(0) scale(1,0.9); box-shadow:0 0 14px 5px #e0b060, 0 0 28px 10px rgba(224,176,96,.25) } }
@keyframes fjp-bench { 0% { transform:perspective(30px) rotateX(3deg) translateY(0) } 50% { transform:perspective(30px) rotateX(3deg) translateY(-1px) } 100% { transform:perspective(30px) rotateX(3deg) translateY(0) } }
@keyframes fjp-juliet { 0% { transform:translateX(0) rotate(1deg) } 50% { transform:translateX(2px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes fjp-paris { 0% { transform:translateX(0) rotate(-1deg) } 50% { transform:translateX(-2px) rotate(2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes fjp-friar { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(3px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }

/* Scene: mantua-street-romeo-dream (warm dawn, hopeful) */
.scn-mantua-street-romeo-dream {
  background: linear-gradient(180deg, #ffccaa 0%, #ffaa77 35%, #c69ab0 65%, #8877aa 100%),
              radial-gradient(ellipse at 40% 80%, #ffddaa 0%, transparent 60%);
}
.scn-mantua-street-romeo-dream .sky-dawn {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffddaa 0%, #ffbb88 40%, #aa88bb 70%, transparent);
  animation: rd1-sky 10s ease-in-out infinite alternate;
}
.scn-mantua-street-romeo-dream .street-smooth {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #9a8877 0%, #6a5a4a 100%);
  border-radius: 30% 70% 0 0 / 50% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  transform: scaleY(0.9);
}
.scn-mantua-street-romeo-dream .facade {
  position: absolute; bottom: 25%; left: 38%; width: 28%; height: 35%;
  background: linear-gradient(180deg, #ccaa88 0%, #aa8866 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,.2);
}
.scn-mantua-street-romeo-dream .window-glow {
  position: absolute; bottom: 38%; left: 50%; width: 14px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffeecc 0%, #ffddaa 70%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 20px 6px #ffdd99, 0 0 40px 12px rgba(255,220,160,.4);
  animation: rd1-glow 3s ease-in-out infinite alternate;
}
.scn-mantua-street-romeo-dream .figure-romeo {
  position: absolute; bottom: 22%; left: 46%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rd1-walk 4s ease-in-out infinite;
}
.scn-mantua-street-romeo-dream .tree-dream {
  position: absolute; bottom: 28%; right: 15%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 80%, #6a7a4a 0%, #3a4a2a 70%, transparent);
  border-radius: 60% 40% 50% 50% / 80% 70% 30% 30%;
  animation: rd1-tree 12s ease-in-out infinite alternate;
}
.scn-mantua-street-romeo-dream .bird-dream {
  position: absolute; top: 15%; right: 30%; width: 16px; height: 12px;
  background: rgba(255,255,255,.3);
  border-radius: 50% 50% 30% 70%;
  clip-path: polygon(0% 50%, 50% 0%, 100% 50%, 50% 100%);
  animation: rd1-bird 8s ease-in-out infinite alternate;
}
@keyframes rd1-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes rd1-glow { 0% { box-shadow: 0 0 15px 4px #ffdd99, 0 0 30px 8px rgba(255,220,160,.3); opacity: .8 } 50% { box-shadow: 0 0 30px 10px #ffeecc, 0 0 60px 20px rgba(255,238,204,.5); opacity: 1 } 100% { box-shadow: 0 0 20px 5px #ffdd99, 0 0 40px 12px rgba(255,220,160,.4); opacity: .9 } }
@keyframes rd1-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(1deg) } 50% { transform: translateX(16px) rotate(-2deg) } 75% { transform: translateX(8px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rd1-tree { 0% { transform: scale(1) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(1) } }
@keyframes rd1-bird { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(-12px) translateY(-6px) rotate(-5deg) } 50% { transform: translateX(-24px) translateY(-2px) rotate(3deg) } 75% { transform: translateX(-12px) translateY(-8px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }

/* Scene: mantua-street-balthasar-news (tense dawn, bitter news) */
.scn-mantua-street-balthasar-news {
  background: linear-gradient(180deg, #4a6b9a 0%, #7a8cba 30%, #b8cbe0 60%, #e0d5c0 100%),
              radial-gradient(ellipse at 70% 100%, #c0b0a0 0%, transparent 50%);
}
.scn-mantua-street-balthasar-news .sky-tense {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a7baa 0%, #9aacc8 50%, transparent);
  animation: bn1-sky 8s ease-in-out infinite alternate;
}
.scn-mantua-street-balthasar-news .street-rough {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 6px 18px rgba(0,0,0,.5);
  transform: scaleY(0.95);
}
.scn-mantua-street-balthasar-news .figure-romeo {
  position: absolute; bottom: 24%; left: 42%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bn1-tremble 2s ease-in-out infinite;
}
.scn-mantua-street-balthasar-news .figure-balthasar {
  position: absolute; bottom: 24%; left: 54%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bn1-tremble 2.5s ease-in-out infinite 0.5s;
}
.scn-mantua-street-balthasar-news .wind-lines {
  position: absolute; top: 20%; left: 10%; width: 120%; height: 4px;
  background: repeating-linear-gradient(90deg, rgba(255,255,255,.15) 0px, rgba(255,255,255,.15) 30px, transparent 30px, transparent 60px);
  animation: bn1-wind 6s linear infinite;
}
.scn-mantua-street-balthasar-news .stone-wall {
  position: absolute; bottom: 30%; left: 10%; width: 20%; height: 28%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 2px 2px 6px rgba(0,0,0,.3);
}
.scn-mantua-street-balthasar-news .leaf-blown {
  position: absolute; top: 35%; left: 50%; width: 8px; height: 8px;
  background: #8a6a3a;
  border-radius: 50% 0 50% 50%;
  animation: bn1-leaf 4s ease-in-out infinite;
}
@keyframes bn1-sky { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes bn1-tremble { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bn1-wind { 0% { transform: translateX(0); } 100% { transform: translateX(-60px); } }
@keyframes bn1-leaf { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(20px) translateY(-10px) rotate(90deg); } 50% { transform: translateX(35px) translateY(-4px) rotate(180deg); } 75% { transform: translateX(20px) translateY(-12px) rotate(270deg); } 100% { transform: translateX(0) translateY(0) rotate(360deg); } }

/* Scene: mantua-street-romeo-defies (dark dawn, defiance) */
.scn-mantua-street-romeo-defies {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c1a3e 30%, #4a2a4a 60%, #6a3a4a 100%),
              radial-gradient(ellipse at 60% 80%, #6a3a4a 0%, transparent 60%);
}
.scn-mantua-street-romeo-defies .sky-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a5e 0%, #4a2a4a 60%, transparent);
  animation: rd2-sky 12s ease-in-out infinite alternate;
}
.scn-mantua-street-romeo-defies .street-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 10% 90% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 6px 18px rgba(0,0,0,.6);
  transform: scaleY(0.9);
}
.scn-mantua-street-romeo-defies .figure-romeo-defiant {
  position: absolute; bottom: 20%; left: 44%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rd2-defy 3s ease-in-out infinite;
}
.scn-mantua-street-romeo-defies .horse-dark {
  position: absolute; bottom: 22%; left: 28%; width: 40px; height: 32px;
  background: #1a1a1a;
  border-radius: 60% 40% 10% 30% / 70% 60% 30% 20%;
  animation: rd2-horse 4s linear infinite;
}
.scn-mantua-street-romeo-defies .horse-light {
  position: absolute; bottom: 22%; left: 60%; width: 36px; height: 28px;
  background: #3a2a2a;
  border-radius: 60% 40% 10% 30% / 70% 60% 30% 20%;
  animation: rd2-horse 4.5s linear infinite 0.5s;
}
.scn-mantua-street-romeo-defies .arm-sword {
  position: absolute; bottom: 45%; left: 48%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: rd2-sword 2s ease-in-out infinite alternate;
}
.scn-mantua-street-romeo-defies .dark-cloud {
  position: absolute; top: 8%; left: 10%; width: 100px; height: 20px;
  background: rgba(20,20,40,.6);
  filter: blur(8px);
  border-radius: 50%;
  animation: rd2-drift 30s linear infinite;
}
@keyframes rd2-sky { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }
@keyframes rd2-defy { 0% { transform: translateY(0) rotate(0) scale(1); } 25% { transform: translateY(-4px) rotate(5deg) scale(1.02); } 50% { transform: translateY(0) rotate(-3deg) scale(1); } 75% { transform: translateY(-2px) rotate(4deg) scale(1.01); } 100% { transform: translateY(0) rotate(0) scale(1); } }
@keyframes rd2-horse { 0% { transform: translateX(0) scaleX(1); } 25% { transform: translateX(10px) scaleX(1.05); } 50% { transform: translateX(0) scaleX(1); } 75% { transform: translateX(-10px) scaleX(0.95); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes rd2-sword { 0% { transform: rotate(-10deg); } 100% { transform: rotate(25deg); } }
@keyframes rd2-drift { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }

/* Scene: mantua-street-apothecary-shop (dark dawn, dusty shop) */
.scn-mantua-street-apothecary-shop {
  background: linear-gradient(180deg, #1e1e1e 0%, #2a1a1a 40%, #3a2a1a 70%, #4a3a2a 100%),
              radial-gradient(ellipse at 30% 50%, #5a4a3a 0%, transparent 70%);
}
.scn-mantua-street-apothecary-shop .shop-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a0a 0%, transparent 50%, #0a0a0a 100%);
  animation: ap1-shadow 10s ease-in-out infinite alternate;
}
.scn-mantua-street-apothecary-shop .shelf-back {
  position: absolute; bottom: 30%; left: 15%; width: 70%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.5);
}
.scn-mantua-street-apothecary-shop .shelf-front {
  position: absolute; bottom: 18%; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.5);
}
.scn-mantua-street-apothecary-shop .pot-green {
  position: absolute; bottom: 36%; left: 22%; width: 18px; height: 20px;
  background: radial-gradient(circle, #3a5a3a 0%, #1a3a1a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset -2px -2px 4px rgba(0,0,0,.4);
  animation: ap1-pot 6s ease-in-out infinite;
}
.scn-mantua-street-apothecary-shop .tortoise-hung {
  position: absolute; top: 15%; left: 30%; width: 20px; height: 16px;
  background: #5a4a3a;
  border-radius: 80% 80% 60% 60%;
  clip-path: polygon(10% 0%, 90% 0%, 80% 100%, 20% 100%);
  animation: ap1-swing 4s ease-in-out infinite alternate;
}
.scn-mantua-street-apothecary-shop .alligator-stuffed {
  position: absolute; top: 12%; left: 55%; width: 40px; height: 12px;
  background: linear-gradient(90deg, #4a5a3a 0%, #6a7a5a 50%, #4a5a3a 100%);
  border-radius: 50% 50% 60% 40%;
  transform: rotate(5deg);
  animation: ap1-gator 7s ease-in-out infinite;
}
.scn-mantua-street-apothecary-shop .box-empty {
  position: absolute; bottom: 22%; left: 40%; width: 16px; height: 12px;
  background: #3a2a1a;
  border: 1px solid #2a1a0a;
  border-radius: 5%;
  box-shadow: inset 0 0 4px rgba(0,0,0,.5);
  animation: ap1-box 9s ease-in-out infinite;
}
.scn-mantua-street-apothecary-shop .lantern-glow {
  position: absolute; top: 30%; left: 10%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffcc66 0%, #cc8833 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #cc8833, 0 0 40px 12px rgba(204,136,51,.4);
  animation: ap1-lantern 2s ease-in-out infinite alternate;
}
.scn-mantua-street-apothecary-shop .dust-mote {
  position: absolute; top: 20%; left: 40%; width: 4px; height: 4px;
  background: rgba(200,180,160,.3);
  border-radius: 50%;
  animation: ap1-dust 5s ease-in-out infinite;
}
@keyframes ap1-shadow { 0% { opacity: .5; } 50% { opacity: .7; } 100% { opacity: .5; } }
@keyframes ap1-pot { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ap1-swing { 0% { transform: rotate(-8deg); } 100% { transform: rotate(8deg); } }
@keyframes ap1-gator { 0% { transform: rotate(5deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(1.02); } 100% { transform: rotate(5deg) scaleX(1); } }
@keyframes ap1-box { 0% { opacity: .6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .6; transform: scale(0.95); } }
@keyframes ap1-lantern { 0% { box-shadow: 0 0 15px 4px #cc8833, 0 0 30px 8px rgba(204,136,51,.3); } 50% { box-shadow: 0 0 28px 10px #ffcc66, 0 0 50px 18px rgba(255,204,102,.5); } 100% { box-shadow: 0 0 20px 6px #cc8833, 0 0 40px 12px rgba(204,136,51,.4); } }
@keyframes ap1-dust { 0% { transform: translate(0, 0) scale(1); opacity: .2; } 25% { transform: translate(10px, -15px) scale(1.5); opacity: .6; } 50% { transform: translate(20px, -5px) scale(0.8); opacity: .3; } 75% { transform: translate(10px, -20px) scale(1.2); opacity: .5; } 100% { transform: translate(0, 0) scale(1); opacity: .2; } }

/* Scene: verona-public-place-intro - sunlit public square with two armed figures */
.scn-verona-public-place-intro {
  background: linear-gradient(180deg, #87CEEB 0%, #F4D03F 70%, #E6A817 100%), 
              radial-gradient(ellipse at 50% 100%, #D4A76A 0%, transparent 60%);
}
.scn-verona-public-place-intro .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #B0E0E6 0%, #F0E68C 100%);
  animation: vpi-sky 15s ease-in-out infinite alternate;
}
.scn-verona-public-place-intro .buildings {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 35%;
  background: linear-gradient(90deg, #C2A878 0%, #B08B5E 30%, #A0764A 70%, #C2A878 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: vpi-bld 20s ease-in-out infinite;
}
.scn-verona-public-place-intro .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8B7355 0%, #6B5340 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
}
.scn-verona-public-place-intro .figure-left {
  position: absolute; bottom: 28%; left: 25%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #3E2723 0%, #1B1A18 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vpi-fig-l 2s ease-in-out infinite, vpi-fig-l-move 4s ease-in-out infinite;
}
.scn-verona-public-place-intro .figure-right {
  position: absolute; bottom: 28%; right: 25%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #3E2723 0%, #1B1A18 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vpi-fig-r 2.2s ease-in-out infinite, vpi-fig-r-move 4.5s ease-in-out infinite;
}
.scn-verona-public-place-intro .sword-left {
  position: absolute; bottom: 45%; left: 21%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #C0C0C0 0%, #808080 50%, #A0A0A0 100%);
  transform: rotate(-15deg);
  transform-origin: bottom center;
  box-shadow: 0 0 6px 2px rgba(255,255,200,0.4);
  animation: vpi-sword 0.5s ease-in-out infinite alternate;
}
.scn-verona-public-place-intro .sword-right {
  position: absolute; bottom: 45%; right: 22%; width: 4px; height: 55px;
  background: linear-gradient(180deg, #C0C0C0 0%, #808080 50%, #A0A0A0 100%);
  transform: rotate(10deg);
  transform-origin: bottom center;
  box-shadow: 0 0 6px 2px rgba(255,255,200,0.4);
  animation: vpi-sword 0.55s ease-in-out infinite alternate-reverse;
}
.scn-verona-public-place-intro .dust {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 30px;
  background: radial-gradient(circle, rgba(200,180,150,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: vpi-dust 8s linear infinite;
}
.scn-verona-public-place-intro .sun-ray {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(135deg, rgba(255,255,200,0.15) 0%, transparent 60%);
  animation: vpi-ray 10s ease-in-out infinite alternate;
}
@keyframes vpi-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes vpi-bld {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes vpi-fig-l {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes vpi-fig-l-move {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes vpi-fig-r {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes vpi-fig-r-move {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes vpi-sword {
  0% { transform: rotate(-15deg) scaleY(1); }
  50% { transform: rotate(-12deg) scaleY(1.05); }
  100% { transform: rotate(-15deg) scaleY(1); }
}
@keyframes vpi-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.6; }
  50% { transform: translateX(30px) scale(1.5); opacity: 0.3; }
  100% { transform: translateX(60px) scale(0.8); opacity: 0; }
}
@keyframes vpi-ray {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.03); }
  100% { transform: rotate(0deg) scale(1); }
}

/* Scene: quarrel-banter - close confrontation with hand gestures */
.scn-quarrel-banter {
  background: linear-gradient(180deg, #D2B48C 0%, #C4A882 30%, #B89B6E 100%),
              radial-gradient(ellipse at 50% 50%, #D2B48C 0%, transparent 60%);
}
.scn-quarrel-banter .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #C9A96E 0%, #B8925A 100%);
  border-radius: 2%;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.2);
}
.scn-quarrel-banter .figure-a {
  position: absolute; bottom: 20%; left: 18%; width: 28px; height: 90px;
  background: linear-gradient(180deg, #3D2B1F 0%, #1C130D 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: qb-fig-a 3s ease-in-out infinite;
}
.scn-quarrel-banter .figure-b {
  position: absolute; bottom: 20%; right: 18%; width: 28px; height: 90px;
  background: linear-gradient(180deg, #3D2B1F 0%, #1C130D 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: qb-fig-b 3.3s ease-in-out infinite;
}
.scn-quarrel-banter .hand-a {
  position: absolute; bottom: 55%; left: 32%; width: 16px; height: 20px;
  background: #5C4033;
  border-radius: 50% 50% 40% 40% / 30% 30% 60% 60%;
  transform: rotate(20deg);
  transform-origin: bottom left;
  animation: qb-hand-a 1.5s ease-in-out infinite alternate;
}
.scn-quarrel-banter .hand-b {
  position: absolute; bottom: 55%; right: 32%; width: 16px; height: 20px;
  background: #5C4033;
  border-radius: 50% 50% 40% 40% / 30% 30% 60% 60%;
  transform: rotate(-20deg);
  transform-origin: bottom right;
  animation: qb-hand-b 1.7s ease-in-out infinite alternate;
}
.scn-quarrel-banter .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: qb-shadow 5s ease-in-out infinite;
}
.scn-quarrel-banter .glint {
  position: absolute; top: 30%; left: 40%; width: 6px; height: 6px;
  background: radial-gradient(circle, #FFF8DC 0%, #DAA520 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #DAA520;
  animation: qb-glint 2s ease-in-out infinite alternate;
}
@keyframes qb-fig-a {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(4px) rotate(-1deg); }
  100% { transform: translateX(-4px) rotate(1deg); }
}
@keyframes qb-fig-b {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(-4px) rotate(1deg); }
  100% { transform: translateX(4px) rotate(-1deg); }
}
@keyframes qb-hand-a {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(25deg) translateY(-3px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes qb-hand-b {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-25deg) translateY(-3px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes qb-shadow {
  0% { transform: scaleX(1) translateY(0); opacity: 0.5; }
  50% { transform: scaleX(1.1) translateY(3px); opacity: 0.7; }
  100% { transform: scaleX(1) translateY(0); opacity: 0.5; }
}
@keyframes qb-glint {
  0% { transform: scale(1) rotate(0deg); opacity: 0.7; }
  50% { transform: scale(1.3) rotate(180deg); opacity: 1; }
  100% { transform: scale(1) rotate(360deg); opacity: 0.7; }
}

/* Scene: item-sword-drawn - close up of drawn sword */
.scn-item-sword-drawn {
  background: linear-gradient(180deg, #1A1A2E 0%, #2D2D44 50%, #3B3B5C 100%),
              radial-gradient(ellipse at 60% 40%, #4B4B6E 0%, transparent 60%);
}
.scn-item-sword-drawn .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0E0E1A 0%, #1F1F33 100%);
}
.scn-item-sword-drawn .blade {
  position: absolute; top: 10%; left: 48%; width: 6px; height: 70%;
  background: linear-gradient(180deg, #E0E0E0 0%, #A0A0A0 30%, #C0C0C0 70%, #909090 100%);
  transform: rotate(-5deg);
  transform-origin: 50% 100%;
  box-shadow: 0 0 20px 6px rgba(255,255,220,0.3);
  animation: isd-blade 4s ease-in-out infinite;
}
.scn-item-sword-drawn .hilt {
  position: absolute; bottom: 18%; left: 46%; width: 18px; height: 12px;
  background: linear-gradient(180deg, #8B4513 0%, #5C2E0A 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(255,200,100,0.4);
  transform: rotate(-5deg);
  transform-origin: 50% 100%;
  animation: isd-hilt 0.3s ease-in-out infinite alternate;
}
.scn-item-sword-drawn .hand {
  position: absolute; bottom: 10%; left: 42%; width: 28px; height: 30px;
  background: #4A2C1A;
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: isd-hand 2s ease-in-out infinite;
}
.scn-item-sword-drawn .arm {
  position: absolute; bottom: 5%; left: 30%; width: 50px; height: 20px;
  background: #3B2212;
  border-radius: 10% 60% 40% 10%;
  transform: rotate(-20deg);
  transform-origin: right center;
  animation: isd-arm 3s ease-in-out infinite;
}
.scn-item-sword-drawn .sparks {
  position: absolute; top: 20%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #FFF8DC 0%, #DAA520 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: isd-spark 0.8s ease-out infinite;
}
.scn-item-sword-drawn .glow {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,255,200,0.1) 0%, transparent 70%);
  animation: isd-glow 5s ease-in-out infinite alternate;
}
@keyframes isd-blade {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(-8deg) scaleY(1.02); }
  100% { transform: rotate(-5deg) scaleY(1); }
}
@keyframes isd-hilt {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes isd-hand {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes isd-arm {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-25deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes isd-spark {
  0% { transform: scale(1); opacity: 1; }
  50% { transform: scale(2.5); opacity: 0.6; }
  100% { transform: scale(3) translateY(-20px); opacity: 0; }
}
@keyframes isd-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}

/* Scene: montague-encounter - four servants facing off */
.scn-montague-encounter {
  background: linear-gradient(180deg, #D2B48C 0%, #E8C89A 30%, #C4A882 100%),
              radial-gradient(ellipse at 50% 80%, #D2B48C 0%, transparent 60%);
}
.scn-montague-encounter .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #B0E0E6 0%, #F5DEB3 100%);
  animation: me-sky 18s ease-in-out infinite alternate;
}
.scn-montague-encounter .colonnade {
  position: absolute; bottom: 20%; left: 5%; width: 90%; height: 60%;
  background: linear-gradient(90deg, #B89B6E 0%, #9C7B4E 50%, #B89B6E 100%);
  clip-path: polygon(0% 30%, 15% 30%, 15% 100%, 0% 100%, 0% 30%, 20% 30%, 20% 0%, 30% 0%, 30% 30%, 40% 30%, 40% 0%, 50% 0%, 50% 30%, 60% 30%, 60% 0%, 70% 0%, 70% 30%, 80% 30%, 80% 0%, 90% 0%, 90% 30%, 100% 30%, 100% 100%, 85% 100%, 85% 30%, 70% 30%, 70% 100%, 55% 100%, 55% 30%, 40% 30%, 40% 100%, 25% 100%, 25% 30%, 10% 30%, 10% 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: me-col 25s ease-in-out infinite;
}
.scn-montague-encounter .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8B7355 0%, #6B5340 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
}
.scn-montague-encounter .capulet-pair {
  position: absolute; bottom: 18%; left: 20%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 70%, #3E2723 0%, transparent 60%);
  border-radius: 20%;
  animation: me-cp 4s ease-in-out infinite;
}
.scn-montague-encounter .montague-pair {
  position: absolute; bottom: 18%; right: 20%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 70%, #3E2723 0%, transparent 60%);
  border-radius: 20%;
  animation: me-mp 4.3s ease-in-out infinite;
}
.scn-montague-encounter .thumb-gesture {
  position: absolute; bottom: 45%; left: 45%; width: 12px; height: 18px;
  background: #5C4033;
  border-radius: 40% 40% 30% 30%;
  transform: rotate(30deg);
  transform-origin: bottom left;
  animation: me-thumb 1.2s ease-in-out infinite alternate;
}
.scn-montague-encounter .swords-sheath {
  position: absolute; bottom: 15%; left: 48%; width: 8px; height: 30px;
  background: #4A3A2A;
  border-radius: 20%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: me-sheath 6s ease-in-out infinite;
}
@keyframes me-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes me-col {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes me-cp {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(3px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes me-mp {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-3px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes me-thumb {
  0% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(35deg) translateY(-2px); }
  100% { transform: rotate(25deg) translateY(0); }
}
@keyframes me-sheath {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}

/* public-place-hot-day */
.scn-public-place-hot-day {
  background:
    linear-gradient(180deg, #f9e6c8 0%, #e8c88a 40%, #d4a76a 100%),
    radial-gradient(ellipse at 50% 0%, #fff2d0 0%, transparent 60%);
}
.scn-public-place-hot-day .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fce4c0 0%, #f5d6a0 100%);
  animation: hd-sky 8s ease-in-out infinite alternate;
}
.scn-public-place-hot-day .sun {
  position: absolute; top: 8%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff7e0 0%, #fde08a 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(253,224,138,0.5);
  animation: hd-sun 4s ease-in-out infinite alternate;
}
.scn-public-place-hot-day .building-left {
  position: absolute; bottom: 30%; left: 5%; width: 28%; height: 50%;
  background: linear-gradient(180deg, #d4a76a 0%, #b8894a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.15);
  animation: hd-build 20s linear infinite;
}
.scn-public-place-hot-day .building-right {
  position: absolute; bottom: 30%; right: 5%; width: 28%; height: 45%;
  background: linear-gradient(180deg, #c8995a 0%, #a87a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 8px 0 12px rgba(0,0,0,0.15);
  animation: hd-build 22s linear infinite reverse;
}
.scn-public-place-hot-day .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c4a56a 0%, #9a7a4a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.2);
}
.scn-public-place-hot-day .figure-benvolio {
  position: absolute; bottom: 30%; left: 30%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hd-fig1 3s ease-in-out infinite;
}
.scn-public-place-hot-day .figure-mercutio {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hd-fig2 3.5s ease-in-out infinite;
}
.scn-public-place-hot-day .heat-haze {
  position: absolute; inset: 0; pointer-events: none;
  background: transparent;
  filter: blur(3px);
  box-shadow: 0 0 50px 10px rgba(255,255,200,0.1);
  animation: hd-haze 6s ease-in-out infinite alternate;
}
@keyframes hd-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes hd-sun { 0% { transform: scale(1) rotate(0deg); opacity: 0.9; } 50% { transform: scale(1.05) rotate(5deg); opacity: 1; } 100% { transform: scale(0.98) rotate(-3deg); opacity: 0.85; } }
@keyframes hd-build { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes hd-fig1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes hd-fig2 { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 25% { transform: translateX(-4px) translateY(-3px) rotate(-1deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(3px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes hd-haze { 0% { filter: blur(2px); } 50% { filter: blur(5px); } 100% { filter: blur(3px); } }

/* public-place-mercutio-taunts */
.scn-public-place-mercutio-taunts {
  background:
    linear-gradient(180deg, #f5e6b0 0%, #e8c88a 40%, #c4a56a 100%),
    radial-gradient(ellipse at 40% 20%, #fff8d0 0%, transparent 60%);
}
.scn-public-place-mercutio-taunts .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fbecc0 0%, #f5d6a0 100%);
  animation: mt-sky 12s ease-in-out infinite alternate;
}
.scn-public-place-mercutio-taunts .sun {
  position: absolute; top: 6%; left: 60%; width: 55px; height: 55px;
  background: radial-gradient(circle, #fffbe0 0%, #fde08a 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 70px 25px rgba(253,224,138,0.6);
  animation: mt-sun 5s ease-in-out infinite alternate;
}
.scn-public-place-mercutio-taunts .building-left {
  position: absolute; bottom: 30%; left: 3%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #c8995a 0%, #a87a3a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset -6px 0 10px rgba(0,0,0,0.1);
  animation: mt-build 25s linear infinite;
}
.scn-public-place-mercutio-taunts .building-right {
  position: absolute; bottom: 30%; right: 3%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #d4a76a 0%, #b8894a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 6px 0 10px rgba(0,0,0,0.1);
  animation: mt-build 28s linear infinite reverse;
}
.scn-public-place-mercutio-taunts .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c4a56a 0%, #9a7a4a 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.15);
}
.scn-public-place-mercutio-taunts .figure-mercutio-big {
  position: absolute; bottom: 28%; left: 45%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #a07a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mt-big 2s cubic-bezier(0.3, 1.4, 0.7, 0.3) infinite;
}
.scn-public-place-mercutio-taunts .hat {
  position: absolute; bottom: 78%; left: 44%; width: 30px; height: 12px;
  background: #5a3a2a;
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 -4px 0 #3a2a1a;
  animation: mt-hat 1.5s ease-in-out infinite;
}
.scn-public-place-mercutio-taunts .figure-benvolio-small {
  position: absolute; bottom: 30%; left: 28%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mt-small 3s ease-in-out infinite;
}
@keyframes mt-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mt-sun { 0% { transform: scale(1) rotate(0deg); opacity: 0.8; } 50% { transform: scale(1.08) rotate(8deg); opacity: 1; } 100% { transform: scale(0.95) rotate(-5deg); opacity: 0.9; } }
@keyframes mt-build { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes mt-big { 0% { transform: translateX(0) translateY(0) rotate(-3deg) scaleY(1); } 30% { transform: translateX(8px) translateY(-8px) rotate(5deg) scaleY(1.1); } 60% { transform: translateX(-5px) translateY(-2px) rotate(-2deg) scaleY(0.95); } 100% { transform: translateX(0) translateY(0) rotate(-3deg) scaleY(1); } }
@keyframes mt-hat { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(-10deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mt-small { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(-3px) translateY(-2px) rotate(-2deg); } 60% { transform: translateX(2px) translateY(0) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

/* public-place-capulets-arrive */
.scn-public-place-capulets-arrive {
  background:
    linear-gradient(180deg, #eacc9a 0%, #d4a76a 40%, #b8894a 100%),
    radial-gradient(ellipse at 50% 0%, #fff2d0 0%, transparent 70%);
}
.scn-public-place-capulets-arrive .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f5d6a0 0%, #e8c88a 100%);
  animation: ca-sky 6s ease-in-out infinite alternate;
}
.scn-public-place-capulets-arrive .sun {
  position: absolute; top: 10%; left: 65%; width: 45px; height: 45px;
  background: radial-gradient(circle, #fff7e0 0%, #fde08a 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px rgba(253,224,138,0.5);
  animation: ca-sun 3s ease-in-out infinite alternate;
}
.scn-public-place-capulets-arrive .building-left {
  position: absolute; bottom: 25%; left: 5%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #c8995a 0%, #a87a3a 100%);
  border-radius: 12% 12% 0 0;
  box-shadow: inset -6px 0 10px rgba(0,0,0,0.15);
  animation: ca-build 18s linear infinite;
}
.scn-public-place-capulets-arrive .building-right {
  position: absolute; bottom: 25%; right: 5%; width: 25%; height: 48%;
  background: linear-gradient(180deg, #d4a76a 0%, #b8894a 100%);
  border-radius: 12% 12% 0 0;
  box-shadow: inset 6px 0 10px rgba(0,0,0,0.15);
  animation: ca-build 20s linear infinite reverse;
}
.scn-public-place-capulets-arrive .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8894a 0%, #8a6a3a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.2);
}
.scn-public-place-capulets-arrive .group-left {
  position: absolute; bottom: 25%; left: 25%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -8px 0 0 #4a3a2a, 8px 0 0 #4a3a2a;
  animation: ca-left 2.5s ease-in-out infinite;
}
.scn-public-place-capulets-arrive .group-right {
  position: absolute; bottom: 25%; right: 25%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 10px 0 0 #7a4a2a, -6px 0 0 #7a4a2a;
  animation: ca-right 2.8s ease-in-out infinite;
}
.scn-public-place-capulets-arrive .shadow-line {
  position: absolute; bottom: 32%; left: 48%; right: 48%; height: 4px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  animation: ca-line 3s ease-in-out infinite alternate;
}
@keyframes ca-sky { 0% { opacity: 0.9; filter: brightness(1); } 50% { opacity: 0.7; filter: brightness(0.85); } 100% { opacity: 0.8; filter: brightness(0.9); } }
@keyframes ca-sun { 0% { transform: scale(1) rotate(0deg); opacity: 0.9; } 50% { transform: scale(1.1) rotate(10deg); opacity: 1; } 100% { transform: scale(0.95) rotate(-5deg); opacity: 0.8; } }
@keyframes ca-build { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ca-left { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 20% { transform: translateX(10px) translateY(-3px) rotate(2deg); } 40% { transform: translateX(-5px) translateY(0) rotate(-1deg); } 60% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ca-right { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 20% { transform: translateX(-8px) translateY(-4px) rotate(-2deg); } 40% { transform: translateX(6px) translateY(0) rotate(1deg); } 60% { transform: translateX(-10px) translateY(-3px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ca-line { 0% { transform: scaleX(0.5); opacity: 0.3; } 50% { transform: scaleX(1); opacity: 0.6; } 100% { transform: scaleX(0.5); opacity: 0.3; } }

/* public-place-tybalt-confrontation */
.scn-public-place-tybalt-confrontation {
  background:
    linear-gradient(180deg, #e8c88a 0%, #d4a76a 40%, #b8894a 100%),
    radial-gradient(ellipse at 50% 10%, #ffe8b0 0%, transparent 60%);
}
.scn-public-place-tybalt-confrontation .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fbecc0 0%, #eacc9a 100%);
  animation: tc-sky 5s ease-in-out infinite alternate;
}
.scn-public-place-tybalt-confrontation .sun {
  position: absolute; top: 8%; left: 55%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fffbe0 0%, #fde08a 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(253,224,138,0.6);
  animation: tc-sun 4s ease-in-out infinite alternate;
}
.scn-public-place-tybalt-confrontation .building-left {
  position: absolute; bottom: 25%; left: 2%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #c8995a 0%, #9a7a4a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -6px 0 12px rgba(0,0,0,0.15);
  animation: tc-build 15s linear infinite;
}
.scn-public-place-tybalt-confrontation .building-right {
  position: absolute; bottom: 25%; right: 2%; width: 30%; height: 52%;
  background: linear-gradient(180deg, #d4a76a 0%, #a87a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 6px 0 12px rgba(0,0,0,0.15);
  animation: tc-build 18s linear infinite reverse;
}
.scn-public-place-tybalt-confrontation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8894a 0%, #8a6a3a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.25);
  animation: tc-ground 3s ease-in-out infinite alternate;
}
.scn-public-place-tybalt-confrontation .figure-mercutio {
  position: absolute; bottom: 25%; left: 35%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-merc 2.5s ease-in-out infinite;
}
.scn-public-place-tybalt-confrontation .figure-tybalt {
  position: absolute; bottom: 25%; left: 55%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #8a4a3a 0%, #5a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-tyb 2.8s ease-in-out infinite;
}
.scn-public-place-tybalt-confrontation .figure-benvolio {
  position: absolute; bottom: 28%; left: 20%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-ben 3.5s ease-in-out infinite;
}
.scn-public-place-tybalt-confrontation .swords {
  position: absolute; bottom: 55%; left: 44%; width: 10px; height: 60px;
  background: linear-gradient(180deg, #ddd 0%, #aaa 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(-30deg);
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: tc-sword 1s ease-in-out infinite alternate;
}
@keyframes tc-sky { 0% { opacity: 0.9; filter: brightness(1); } 50% { opacity: 0.8; filter: brightness(1.05); } 100% { opacity: 0.7; filter: brightness(0.9); } }
@keyframes tc-sun { 0% { transform: scale(1) rotate(0deg); opacity: 0.9; } 50% { transform: scale(1.12) rotate(12deg); opacity: 1; } 100% { transform: scale(0.9) rotate(-8deg); opacity: 0.8; } }
@keyframes tc-build { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes tc-ground { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes tc-merc { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 15% { transform: translateX(4px) translateY(-4px) rotate(-5deg); } 30% { transform: translateX(-2px) translateY(0) rotate(2deg); } 60% { transform: translateX(6px) translateY(-2px) rotate(-3deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes tc-tyb { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 15% { transform: translateX(-4px) translateY(-5px) rotate(5deg); } 30% { transform: translateX(2px) translateY(0) rotate(-2deg); } 60% { transform: translateX(-6px) translateY(-3px) rotate(4deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes tc-ben { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-2px) translateY(-2px) rotate(-2deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes tc-sword { 0% { transform: rotate(-35deg) scaleY(1); } 50% { transform: rotate(-25deg) scaleY(1.05); } 100% { transform: rotate(-30deg) scaleY(0.95); } }

.scn-friar-enters-tomb {
  background: linear-gradient(180deg, #2c1a0e 0%, #1a0e08 40%, #0d0804 100%),
              radial-gradient(ellipse at 50% 70%, #4a2a1a 0%, transparent 70%);
}
.scn-friar-enters-tomb .tomb-arch {
  position: absolute; top:0; left:10%; width:80%; height:45%;
  background: radial-gradient(ellipse at 50% 100%, #3a2214 0%, #1a0e08 70%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: fet1-arch 4s ease-in-out infinite alternate;
}
.scn-friar-enters-tomb .yew-tree {
  position: absolute; bottom:20%; left:8%; width:24%; height:70%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0d0804 100%);
  border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%;
  transform: skewX(-5deg);
  animation: fet1-yew 12s ease-in-out infinite;
}
.scn-friar-enters-tomb .friar {
  position: absolute; bottom:18%; left:42%; width:12%; height:40%;
  background: linear-gradient(180deg, #1a120e 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fet1-friar 6s ease-in-out infinite;
}
.scn-friar-enters-tomb .lantern {
  position: absolute; bottom:22%; left:30%; width:4%; height:6%;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 10px #b08040, 0 0 40px 20px rgba(176,128,64,0.4);
  animation: fet1-lantern 3s ease-in-out infinite alternate;
}
.scn-friar-enters-tomb .blood-stains {
  position: absolute; bottom:12%; left:35%; width:20%; height:8%;
  background: radial-gradient(ellipse at 50% 50%, #5e1a1d 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: fet1-blood 8s ease-in-out infinite alternate;
}
.scn-friar-enters-tomb .stone-floor {
  position: absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e08 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-friar-enters-tomb .torch-glow {
  position: absolute; bottom:40%; left:50%; width:60%; height:50%;
  background: radial-gradient(ellipse at 50% 100%, #c08040 0%, transparent 80%);
  opacity: 0.3;
  mix-blend-mode: screen;
  pointer-events: none;
  animation: fet1-torch 2s ease-in-out infinite alternate;
}
@keyframes fet1-arch {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(0.98); }
  100% { opacity: 0.8; transform: scaleY(1); }
}
@keyframes fet1-yew {
  0%, 100% { transform: skewX(-5deg) rotate(-1deg); }
  25% { transform: skewX(-4deg) rotate(1deg); }
  50% { transform: skewX(-5deg) rotate(0deg); }
  75% { transform: skewX(-6deg) rotate(-0.5deg); }
}
@keyframes fet1-friar {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(2px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-1px) translateY(-1px) rotate(1deg); }
}
@keyframes fet1-lantern {
  0% { transform: rotate(-5deg); opacity: 0.8; }
  50% { transform: rotate(5deg); opacity: 1; }
  100% { transform: rotate(-3deg); opacity: 0.9; }
}
@keyframes fet1-blood {
  0% { opacity: 0.2; filter: blur(4px); }
  50% { opacity: 0.6; filter: blur(3px); }
  100% { opacity: 0.3; filter: blur(5px); }
}
@keyframes fet1-torch {
  0% { opacity: 0.2; transform: scale(0.95); }
  30% { opacity: 0.4; transform: scale(1.05); }
  70% { opacity: 0.25; transform: scale(0.97); }
  100% { opacity: 0.3; transform: scale(1); }
}

/* scene 2 */
.scn-juliet-wakes-friar {
  background: linear-gradient(180deg, #1a1a2e 0%, #2d2d44 40%, #10101a 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a4a 0%, transparent 70%);
}
.scn-juliet-wakes-friar .tomb-wall {
  position: absolute; inset:0;
  background: linear-gradient(90deg, #20203a 0%, #2a2a44 50%, #1a1a30 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: jwf2-wall 20s ease-in-out infinite alternate;
}
.scn-juliet-wakes-friar .bier {
  position: absolute; bottom:15%; left:30%; width:40%; height:15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 8% 8% 12% 12%;
  box-shadow: 0 -5px 15px rgba(0,0,0,0.6);
  transform: perspective(200px) rotateX(10deg);
  animation: jwf2-bier 9s ease-in-out infinite;
}
.scn-juliet-wakes-friar .juliet {
  position: absolute; bottom:30%; left:40%; width:14%; height:35%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a101a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: jwf2-juliet 6s ease-in-out infinite;
}
.scn-juliet-wakes-friar .friar {
  position: absolute; bottom:28%; left:55%; width:12%; height:38%;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a060a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: jwf2-friar 8s ease-in-out infinite;
}
.scn-juliet-wakes-friar .lantern-ground {
  position: absolute; bottom:18%; left:48%; width:6%; height:10%;
  background: radial-gradient(circle, #ffc060 0%, #a07030 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 25px 8px #a07030, 0 0 50px 15px rgba(160,112,48,0.5);
  animation: jwf2-lantern 2.5s ease-in-out infinite alternate;
}
.scn-juliet-wakes-friar .shadow-pool {
  position: absolute; bottom:0; left:20%; width:60%; height:20%;
  background: radial-gradient(ellipse at 50% 100%, #0a0a14 0%, transparent 70%);
  opacity: 0.6;
  animation: jwf2-shadow 10s ease-in-out infinite alternate;
}
@keyframes jwf2-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes jwf2-bier {
  0%, 100% { transform: perspective(200px) rotateX(10deg) translateY(0); }
  25% { transform: perspective(200px) rotateX(12deg) translateY(-2px); }
  50% { transform: perspective(200px) rotateX(8deg) translateY(0); }
  75% { transform: perspective(200px) rotateX(11deg) translateY(1px); }
}
@keyframes jwf2-juliet {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(5px) translateY(-8px) rotate(10deg); }
  40% { transform: translateX(8px) translateY(-12px) rotate(15deg); }
  60% { transform: translateX(4px) translateY(-6px) rotate(5deg); }
  80% { transform: translateX(1px) translateY(-2px) rotate(-3deg); }
}
@keyframes jwf2-friar {
  0%, 100% { transform: rotate(-10deg) translateX(0); }
  25% { transform: rotate(-8deg) translateX(-3px); }
  50% { transform: rotate(-12deg) translateX(2px); }
  75% { transform: rotate(-9deg) translateX(-1px); }
}
@keyframes jwf2-lantern {
  0% { transform: rotate(-8deg); box-shadow: 0 0 20px 5px #a07030; }
  50% { transform: rotate(8deg); box-shadow: 0 0 30px 12px #ffc060; }
  100% { transform: rotate(-6deg); box-shadow: 0 0 22px 6px #a07030; }
}
@keyframes jwf2-shadow {
  0% { opacity: 0.4; transform: scaleX(0.95); }
  50% { opacity: 0.7; transform: scaleX(1.05); }
  100% { opacity: 0.5; transform: scaleX(0.98); }
}

/* scene 3 */
.scn-juliet-alone-tomb {
  background: linear-gradient(180deg, #0a0a14 0%, #151525 40%, #080810 100%),
              radial-gradient(ellipse at 50% 50%, #1a1a2e 0%, transparent 80%);
}
.scn-juliet-alone-tomb .tomb-bg {
  position: absolute; inset:0;
  background: radial-gradient(ellipse at 30% 70%, #2a2a44 0%, transparent 60%);
  opacity: 0.4;
  animation: jat3-bg 15s ease-in-out infinite alternate;
}
.scn-juliet-alone-tomb .juliet-silhouette {
  position: absolute; bottom:20%; left:45%; width:15%; height:45%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jat3-juliet 10s ease-in-out infinite;
}
.scn-juliet-alone-tomb .romeo-body {
  position: absolute; bottom:10%; left:30%; width:25%; height:15%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0606 100%);
  border-radius: 20% 20% 40% 40% / 10% 10% 30% 30%;
  transform: rotate(-15deg);
  box-shadow: 0 0 20px rgba(0,0,0,0.7);
  animation: jat3-body 8s ease-in-out infinite;
}
.scn-juliet-alone-tomb .cup {
  position: absolute; bottom:14%; left:38%; width:6%; height:8%;
  background: radial-gradient(ellipse at 50% 30%, #a08060 0%, #6a4a2a 100%);
  border-radius: 30% 30% 40% 40% / 20% 20% 30% 30%;
  box-shadow: 0 0 10px 3px rgba(160,128,96,0.3);
  animation: jat3-cup 5s ease-in-out infinite alternate;
}
.scn-juliet-alone-tomb .dagger {
  position: absolute; bottom:12%; left:48%; width:4%; height:12%;
  background: linear-gradient(180deg, #808080 0%, #4a4a4a 50%, #2a2a2a 100%);
  border-radius: 10% 10% 40% 40% / 10% 10% 60% 60%;
  transform: rotate(30deg);
  box-shadow: 0 0 5px rgba(0,0,0,0.8);
  animation: jat3-dagger 12s ease-in-out infinite;
}
.scn-juliet-alone-tomb .faint-light {
  position: absolute; bottom:35%; left:42%; width:20%; height:30%;
  background: radial-gradient(ellipse at 50% 0%, #5a4a3a 0%, transparent 70%);
  opacity: 0.15;
  mix-blend-mode: screen;
  animation: jat3-light 4s ease-in-out infinite alternate;
}
@keyframes jat3-bg {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.02); }
  100% { opacity: 0.35; transform: scale(0.98); }
}
@keyframes jat3-juliet {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(-3px) translateY(-2px) rotate(-3deg); }
  40% { transform: translateX(2px) translateY(-4px) rotate(2deg); }
  60% { transform: translateX(-1px) translateY(-1px) rotate(-1deg); }
  80% { transform: translateX(1px) translateY(-3px) rotate(1deg); }
}
@keyframes jat3-body {
  0% { transform: rotate(-15deg) translateY(0); opacity: 0.7; }
  25% { transform: rotate(-14deg) translateY(-1px); opacity: 0.8; }
  50% { transform: rotate(-16deg) translateY(0); opacity: 0.6; }
  75% { transform: rotate(-13deg) translateY(1px); opacity: 0.75; }
  100% { transform: rotate(-15deg) translateY(0); opacity: 0.7; }
}
@keyframes jat3-cup {
  0% { transform: rotate(0deg); box-shadow: 0 0 8px 2px rgba(160,128,96,0.2); }
  50% { transform: rotate(10deg); box-shadow: 0 0 16px 6px rgba(160,128,96,0.5); }
  100% { transform: rotate(-5deg); box-shadow: 0 0 10px 3px rgba(160,128,96,0.3); }
}
@keyframes jat3-dagger {
  0%, 100% { transform: rotate(30deg) translateX(0); }
  25% { transform: rotate(28deg) translateX(2px); }
  50% { transform: rotate(32deg) translateX(-2px); }
  75% { transform: rotate(29deg) translateX(1px); }
}
@keyframes jat3-light {
  0% { opacity: 0.1; transform: scale(0.95); }
  50% { opacity: 0.2; transform: scale(1.1); }
  100% { opacity: 0.12; transform: scale(0.98); }
}

/* scene 4 */
.scn-item-dagger {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 40%, #0d0d0d 100%),
              radial-gradient(ellipse at 50% 50%, #2a2a2a 0%, transparent 80%);
}
.scn-item-dagger .bg-black {
  position: absolute; inset:0;
  background: radial-gradient(ellipse at 40% 50%, #151515 0%, #050505 100%);
  animation: id4-bg 20s ease-in-out infinite alternate;
}
.scn-item-dagger .hand {
  position: absolute; bottom:15%; left:40%; width:18%; height:30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0606 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: id4-hand 7s ease-in-out infinite;
}
.scn-item-dagger .dagger {
  position: absolute; bottom:30%; left:46%; width:3%; height:35%;
  background: linear-gradient(180deg, #a0a0a0 0%, #606060 50%, #2a2a2a 100%);
  border-radius: 10% 10% 20% 20% / 10% 10% 30% 30%;
  transform: rotate(-15deg);
  box-shadow: 0 0 8px rgba(0,0,0,0.9);
  animation: id4-dagger 8s ease-in-out infinite alternate;
}
.scn-item-dagger .cup {
  position: absolute; bottom:20%; left:55%; width:8%; height:10%;
  background: radial-gradient(ellipse at 50% 30%, #b09880 0%, #7a6040 100%);
  border-radius: 40% 40% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(120,96,64,0.4);
  animation: id4-cup 6s ease-in-out infinite;
}
.scn-item-dagger .blood-drop {
  position: absolute; bottom:45%; left:48%; width:3%; height:3%;
  background: radial-gradient(circle, #5e1a1d 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: id4-blood 3s ease-in-out infinite alternate;
}
@keyframes id4-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes id4-hand {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(5px) translateY(-3px) rotate(5deg); }
  50% { transform: translateX(-3px) translateY(0) rotate(-3deg); }
  75% { transform: translateX(2px) translateY(-2px) rotate(2deg); }
}
@keyframes id4-dagger {
  0% { transform: rotate(-15deg) scaleY(1); }
  50% { transform: rotate(-10deg) scaleY(1.05); }
  100% { transform: rotate(-18deg) scaleY(0.95); }
}
@keyframes id4-cup {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(5deg) translateY(-2px); }
  60% { transform: rotate(-4deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes id4-blood {
  0% { opacity: 0.1; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.3); }
  100% { opacity: 0.2; transform: scale(0.9); }
}

/* romeo-opens-tomb */
.scn-romeo-opens-tomb {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 60%, #0a0500 100%),
              radial-gradient(ellipse at 50% 40%, #4a2a0a 0%, transparent 70%);
}
.scn-romeo-opens-tomb .tomb-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a0a00 0%, transparent 40%, #0a0500 100%); }
.scn-romeo-opens-tomb .arch { position:absolute; bottom:35%; left:50%; width:140px; height:80px; transform:translateX(-50%); background: linear-gradient(170deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 10% 10% / 60% 60% 5% 5%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); animation: rop-arch 20s ease-in-out infinite alternate; }
.scn-romeo-opens-tomb .steps { position:absolute; bottom:20%; left:50%; width:100px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,.4); }
.scn-romeo-opens-tomb .figure { position:absolute; bottom:25%; left:42%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rop-figure 6s ease-in-out infinite alternate; }
.scn-romeo-opens-tomb .torch { position:absolute; bottom:28%; left:40%; width:10px; height:16px; background: linear-gradient(180deg, #d07030 0%, #8a4010 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 8px #e08030, 0 0 40px 16px rgba(224,128,48,.3); animation: rop-torch 0.8s ease-in-out infinite alternate; }
.scn-romeo-opens-tomb .dust-a { position:absolute; bottom:30%; left:35%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(180,140,80,.3) 0%, transparent 70%); filter: blur(4px); animation: rop-dust 12s linear infinite; }
.scn-romeo-opens-tomb .dust-b { position:absolute; bottom:35%; right:30%; width:30px; height:15px; background: radial-gradient(ellipse, rgba(180,140,80,.2) 0%, transparent 70%); filter: blur(3px); animation: rop-dust 15s linear infinite 5s; }
.scn-romeo-opens-tomb .shadow { position:absolute; bottom:20%; left:40%; width:60px; height:10px; background: radial-gradient(ellipse, #000 0%, transparent 80%); opacity:.5; animation: rop-shadow 6s ease-in-out infinite alternate; }
@keyframes rop-arch { 0%,100% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(1.02); } }
@keyframes rop-figure { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes rop-torch { 0% { box-shadow: 0 0 18px 6px #e08030, 0 0 36px 12px rgba(224,128,48,.3); } 50% { box-shadow: 0 0 28px 10px #f0a040, 0 0 50px 20px rgba(240,160,64,.4); } 100% { box-shadow: 0 0 20px 7px #e08030, 0 0 40px 14px rgba(224,128,48,.3); } }
@keyframes rop-dust { 0% { transform: translateX(0) translateY(0); opacity:.6; } 50% { transform: translateX(-30px) translateY(-8px); opacity:.3; } 100% { transform: translateX(-60px) translateY(-16px); opacity:0; } }
@keyframes rop-shadow { 0%,100% { transform: translateX(0); opacity:.5; } 50% { transform: translateX(10px); opacity:.7; } }

/* paris-confronts-romeo */
.scn-paris-confronts-romeo {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 60%, #0a0500 100%),
              radial-gradient(ellipse at 50% 30%, #5a3010 0%, transparent 70%);
}
.scn-paris-confronts-romeo .bg-tomb { position:absolute; inset:0; background: linear-gradient(180deg, #0a0500 0%, #1a0a00 50%, transparent 100%); }
.scn-paris-confronts-romeo .figure-romeo { position:absolute; bottom:25%; left:35%; width:22px; height:52px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pcr-fig 2s ease-in-out infinite alternate; }
.scn-paris-confronts-romeo .figure-paris { position:absolute; bottom:25%; right:35%; width:22px; height:52px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pcr-fig 2.5s ease-in-out infinite alternate-reverse; }
.scn-paris-confronts-romeo .torch { position:absolute; bottom:28%; left:33%; width:8px; height:14px; background: linear-gradient(180deg, #d07030 0%, #8a4010 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 25px 10px #e08030, 0 0 50px 20px rgba(224,128,48,.3); animation: pcr-torch 0.5s ease-in-out infinite alternate; }
.scn-paris-confronts-romeo .sword { position:absolute; bottom:30%; right:38%; width:35px; height:4px; background: linear-gradient(90deg, #a07040 0%, #c0a080 50%, #a07040 100%); border-radius: 50%; transform: rotate(-30deg); box-shadow: 0 0 8px 2px rgba(192,160,128,.5); animation: pcr-sword 1.2s ease-in-out infinite alternate; }
.scn-paris-confronts-romeo .glow { position:absolute; bottom:20%; left:30%; width:80px; height:80px; background: radial-gradient(circle, rgba(224,128,48,.15) 0%, transparent 70%); animation: pcr-glow 3s ease-in-out infinite alternate; }
.scn-paris-confronts-romeo .shadow { position:absolute; bottom:20%; left:30%; width:100px; height:12px; background: radial-gradient(ellipse, #000 0%, transparent 80%); opacity:.6; animation: pcr-shadow 2s ease-in-out infinite alternate; }
@keyframes pcr-fig { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(0); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes pcr-torch { 0% { box-shadow: 0 0 20px 8px #e08030, 0 0 40px 15px rgba(224,128,48,.3); } 50% { box-shadow: 0 0 35px 14px #f0a040, 0 0 60px 25px rgba(240,160,64,.4); } 100% { box-shadow: 0 0 22px 9px #e08030, 0 0 42px 16px rgba(224,128,48,.3); } }
@keyframes pcr-sword { 0% { transform: rotate(-35deg) translateX(0); } 50% { transform: rotate(-25deg) translateX(5px); } 100% { transform: rotate(-35deg) translateX(0); } }
@keyframes pcr-glow { 0%,100% { opacity:.4; transform: scale(1); } 50% { opacity:.7; transform: scale(1.3); } }
@keyframes pcr-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(1); } }

/* paris-fight-death */
.scn-paris-fight-death {
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 60%, #000 100%),
              radial-gradient(ellipse at 50% 50%, #4a1a0a 0%, transparent 60%);
}
.scn-paris-fight-death .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0a0500 0%, transparent 30%, #000 100%); }
.scn-paris-fight-death .figure-a { position:absolute; bottom:22%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pfd-fig-a 1.5s ease-in-out infinite; }
.scn-paris-fight-death .figure-b { position:absolute; bottom:18%; right:30%; width:22px; height:45px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pfd-fig-b 2s ease-in-out infinite; }
.scn-paris-fight-death .sword { position:absolute; bottom:25%; left:45%; width:40px; height:4px; background: linear-gradient(90deg, #a07040 0%, #c0a080 50%, #a07040 100%); border-radius: 50%; transform: rotate(15deg); box-shadow: 0 0 10px 3px rgba(192,160,128,.6); animation: pfd-sword 0.8s ease-in-out infinite alternate; }
.scn-paris-fight-death .blood { position:absolute; bottom:15%; right:25%; width:30px; height:8px; background: linear-gradient(90deg, #5e1a1d 0%, #702243 50%, #5e1a1d 100%); border-radius: 50%; opacity:.8; animation: pfd-blood 3s ease-in-out infinite; }
.scn-paris-fight-death .sparks { position:absolute; bottom:28%; left:45%; width:6px; height:6px; background: #e08030; border-radius: 50%; box-shadow: 0 0 12px 4px #f0a040, 0 0 24px 8px rgba(240,160,64,.3); animation: pfd-sparks 0.4s ease-in-out infinite alternate; }
.scn-paris-fight-death .shadow { position:absolute; bottom:15%; left:25%; width:120px; height:10px; background: radial-gradient(ellipse, #000 0%, transparent 80%); opacity:.7; animation: pfd-shadow 2s ease-in-out infinite alternate; }
@keyframes pfd-fig-a { 0% { transform: translate(0,0) rotate(-5deg); } 25% { transform: translate(-10px, -5px) rotate(5deg); } 50% { transform: translate(-20px, -10px) rotate(-3deg); } 75% { transform: translate(-10px, -5px) rotate(6deg); } 100% { transform: translate(0,0) rotate(-5deg); } }
@keyframes pfd-fig-b { 0% { transform: translate(0,0) rotate(5deg); } 25% { transform: translate(10px, -5px) rotate(-5deg); } 50% { transform: translate(20px, -10px) rotate(3deg); } 75% { transform: translate(10px, -5px) rotate(-6deg); } 100% { transform: translate(0,0) rotate(5deg); } }
@keyframes pfd-sword { 0% { transform: rotate(10deg) scaleX(1); } 50% { transform: rotate(25deg) scaleX(1.1); } 100% { transform: rotate(15deg) scaleX(1); } }
@keyframes pfd-blood { 0%,100% { transform: scaleX(1); opacity:.8; } 50% { transform: scaleX(1.5); opacity:1; } }
@keyframes pfd-sparks { 0% { transform: translateY(0) scale(1); opacity:1; } 50% { transform: translateY(-10px) scale(1.5); opacity:.5; } 100% { transform: translateY(0) scale(1); opacity:1; } }
@keyframes pfd-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(1); } }

/* romeo-reflects-in-tomb */
.scn-romeo-reflects-in-tomb {
  background: linear-gradient(180deg, #0f0703 0%, #1a0a00 60%, #0a0500 100%),
              radial-gradient(ellipse at 50% 20%, #2a1a0a 0%, transparent 70%);
}
.scn-romeo-reflects-in-tomb .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0a0500 0%, transparent 40%, #000 100%); }
.scn-romeo-reflects-in-tomb .figure-romeo { position:absolute; bottom:20%; left:30%; width:24px; height:55px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rrt-fig 8s ease-in-out infinite; }
.scn-romeo-reflects-in-tomb .figure-juliet { position:absolute; bottom:15%; right:30%; width:22px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg); transform-origin: bottom center; animation: rrt-juliet 10s ease-in-out infinite; }
.scn-romeo-reflects-in-tomb .candle { position:absolute; bottom:35%; left:45%; width:6px; height:18px; background: linear-gradient(180deg, #d0a050 0%, #a08030 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 20px 8px #d0a050, 0 0 40px 16px rgba(208,160,80,.3); animation: rrt-candle 4s ease-in-out infinite alternate; }
.scn-romeo-reflects-in-tomb .hand { position:absolute; bottom:22%; left:35%; width:14px; height:12px; background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(20deg); animation: rrt-hand 6s ease-in-out infinite; }
.scn-romeo-reflects-in-tomb .shadow { position:absolute; bottom:15%; left:25%; width:140px; height:14px; background: radial-gradient(ellipse, #000 0%, transparent 80%); opacity:.5; animation: rrt-shadow 8s ease-in-out infinite alternate; }
.scn-romeo-reflects-in-tomb .letter { position:absolute; bottom:28%; right:25%; width:20px; height:28px; background: linear-gradient(150deg, #d0c0a0 0%, #a09070 50%, #807050 100%); border-radius: 5%; transform: rotate(10deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: rrt-letter 12s ease-in-out infinite; }
@keyframes rrt-fig { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(-4px) rotate(0); } 75% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes rrt-juliet { 0%,100% { transform: rotate(-15deg) translateY(0); } 25% { transform: rotate(-13deg) translateY(-2px); } 50% { transform: rotate(-15deg) translateY(-4px); } 75% { transform: rotate(-17deg) translateY(-2px); } }
@keyframes rrt-candle { 0% { box-shadow: 0 0 18px 6px #d0a050, 0 0 36px 12px rgba(208,160,80,.3); } 50% { box-shadow: 0 0 28px 10px #e0b060, 0 0 50px 20px rgba(224,176,96,.4); } 100% { box-shadow: 0 0 20px 7px #d0a050, 0 0 38px 13px rgba(208,160,80,.3); } }
@keyframes rrt-hand { 0% { transform: rotate(20deg) translateX(0); } 25% { transform: rotate(18deg) translateX(4px); } 50% { transform: rotate(20deg) translateX(8px); } 75% { transform: rotate(22deg) translateX(4px); } 100% { transform: rotate(20deg) translateX(0); } }
@keyframes rrt-shadow { 0%,100% { transform: scaleX(1); opacity:.5; } 50% { transform: scaleX(1.1); opacity:.7; } }
@keyframes rrt-letter { 0%,100% { transform: rotate(10deg) translateY(0); } 25% { transform: rotate(8deg) translateY(-2px); } 50% { transform: rotate(10deg) translateY(-4px); } 75% { transform: rotate(12deg) translateY(-2px); } }

/* orchard-stars-wish - warm sunlit */
.scn-orchard-stars-wish {
  background: linear-gradient(180deg, #f7d9aa 0%, #b5c8e8 40%, #87aed0 100%), radial-gradient(ellipse at 60% 20%, #fff5c0 0%, transparent 50%);
}
.scn-orchard-stars-wish .sky {
  position: absolute; inset: 0 0 0 0; background: linear-gradient(180deg, #ffeeb0 0%, #a2c4e0 60%, #6b8eb0 100%); opacity: 0.6; animation: osw-sky 12s ease-in-out infinite alternate;
}
.scn-orchard-stars-wish .tree-trunk {
  position: absolute; bottom: 15%; left: 65%; width: 22px; height: 120px; background: linear-gradient(90deg, #5a3a1a 0%, #7a5a3a 50%, #5a3a1a 100%); border-radius: 10% 10% 5% 5%; transform: rotate(3deg); animation: osw-trunk 6s ease-in-out infinite;
}
.scn-orchard-stars-wish .tree-canopy {
  position: absolute; bottom: 45%; left: 55%; width: 140px; height: 120px; background: radial-gradient(ellipse at 40% 50%, #6f9a4a 0%, #4a7a2a 70%, #2a5a1a 100%); border-radius: 40% 50% 30% 60% / 60% 40% 50% 50%; box-shadow: inset -10px -10px 20px rgba(0,0,0,0.3); animation: osw-canopy 8s ease-in-out infinite alternate;
}
.scn-orchard-stars-wish .figure {
  position: absolute; bottom: 18%; left: 30%; width: 24px; height: 50px; background: linear-gradient(180deg, #8a6050 0%, #5a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: osw-figure 5s ease-in-out infinite;
}
.scn-orchard-stars-wish .spark {
  position: absolute; width: 6px; height: 6px; background: radial-gradient(circle, #fff9d0 0%, #ffd060 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 12px 3px rgba(255,208,96,0.8); animation: osw-spark 3s ease-in-out infinite;
}
.scn-orchard-stars-wish .spk1 { top: 25%; left: 40%; animation-delay: 0s; }
.scn-orchard-stars-wish .spk2 { top: 20%; left: 55%; animation-delay: 1s; }
.scn-orchard-stars-wish .spk3 { top: 30%; left: 50%; animation-delay: 2s; }
.scn-orchard-stars-wish .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #6f8a3a 0%, #4a6a2a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 15px rgba(0,0,0,0.2);
}
@keyframes osw-sky { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes osw-trunk { 0%,100% { transform: rotate(3deg); } 50% { transform: rotate(-2deg); } }
@keyframes osw-canopy { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(1) rotate(-1deg); } }
@keyframes osw-figure { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes osw-spark { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.4); box-shadow: 0 0 20px 6px rgba(255,208,96,0.9); } 100% { opacity: 0.3; transform: scale(0.8); } }

/* orchard-nurse-with-cords - tense sunlit */
.scn-orchard-nurse-with-cords {
  background: linear-gradient(180deg, #f2e7d0 0%, #c8b88a 50%, #a09060 100%), radial-gradient(ellipse at 70% 30%, #ffe8a0 0%, transparent 60%);
}
.scn-orchard-nurse-with-cords .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #ffe6c0 0%, #d4b888 100%); animation: onc-sky 8s ease-in-out infinite alternate;
}
.scn-orchard-nurse-with-cords .wall {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 60%; background: linear-gradient(180deg, #b89a70 0%, #9a7a50 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 5px 15px rgba(0,0,0,0.3); animation: onc-wall 6s ease-in-out infinite;
}
.scn-orchard-nurse-with-cords .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #9a7a50 0%, #6a5a3a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
}
.scn-orchard-nurse-with-cords .nurse-body {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 70px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; transform-origin: bottom center; animation: onc-nurse-body 0.8s ease-in-out infinite;
}
.scn-orchard-nurse-with-cords .nurse-arm-l {
  position: absolute; bottom: 50%; left: 30%; width: 8px; height: 35px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform-origin: top center; animation: onc-arm-l 0.6s ease-in-out infinite alternate;
}
.scn-orchard-nurse-with-cords .nurse-arm-r {
  position: absolute; bottom: 50%; left: 48%; width: 8px; height: 35px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform-origin: top center; animation: onc-arm-r 0.6s ease-in-out infinite alternate;
}
.scn-orchard-nurse-with-cords .cords {
  position: absolute; bottom: 28%; left: 20%; width: 60px; height: 10px; background: linear-gradient(90deg, #c8553d 0%, #a0461a 50%, #c8553d 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: onc-cords 1.2s ease-in-out infinite;
}
.scn-orchard-nurse-with-cords .shadow {
  position: absolute; bottom: 20%; left: 32%; width: 50px; height: 12px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%); border-radius: 50%; animation: onc-shadow 1s ease-in-out infinite;
}
@keyframes onc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes onc-wall { 0%,100% { transform: translateX(0); } 50% { transform: translateX(3px); } }
@keyframes onc-nurse-body { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes onc-arm-l { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(-30deg) scaleY(0.9); } 100% { transform: rotate(-10deg) scaleY(1); } }
@keyframes onc-arm-r { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(30deg) scaleY(0.9); } 100% { transform: rotate(10deg) scaleY(1); } }
@keyframes onc-cords { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(8px) rotate(5deg); } 50% { transform: translateX(-5px) rotate(-2deg); } 75% { transform: translateX(6px) rotate(3deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes onc-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { transform: scaleX(1.2); opacity: 0.3; } 100% { opacity: 0.5; transform: scaleX(1); } }

/* orchard-misunderstanding - dark mood sunlit (high contrast silhouette) */
.scn-orchard-misunderstanding {
  background: linear-gradient(180deg, #ffd9a0 0%, #caa870 50%, #8a6a40 100%), radial-gradient(ellipse at 50% 0%, #fff5c0 0%, transparent 60%);
}
.scn-orchard-misunderstanding .sky {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #ffd8a0 0%, #e0b080 100%); animation: omu-sky 10s ease-in-out infinite alternate;
}
.scn-orchard-misunderstanding .sun {
  position: absolute; top: 8%; left: 50%; width: 80px; height: 80px; background: radial-gradient(circle, #fff7c0 0%, #ffd060 40%, transparent 70%); border-radius: 50%; transform: translateX(-50%); animation: omu-sun 8s ease-in-out infinite;
}
.scn-orchard-misunderstanding .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 30% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-orchard-misunderstanding .figure {
  position: absolute; bottom: 40%; left: 50%; width: 28px; height: 60px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); box-shadow: 0 0 30px 10px rgba(0,0,0,0.5); animation: omu-figure 1.5s ease-in-out infinite;
}
.scn-orchard-misunderstanding .cloud {
  position: absolute; top: 12%; left: 70%; width: 100px; height: 30px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50%; filter: blur(6px); opacity: 0.6; animation: omu-cloud 25s linear infinite;
}
.scn-orchard-misunderstanding .tree {
  position: absolute; bottom: 10%; left: 10%; width: 60px; height: 80px; background: radial-gradient(ellipse at 50% 100%, #2a2a1a 0%, #1a1a0a 100%); border-radius: 40% 60% 30% 70% / 60% 40% 70% 30%; transform: rotate(-5deg); animation: omu-tree 7s ease-in-out infinite alternate;
}
@keyframes omu-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes omu-sun { 0%,100% { transform: translateX(-50%) scale(1); opacity: 0.9; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } }
@keyframes omu-figure { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-45%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(0deg) translateY(-5px); } 75% { transform: translateX(-55%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes omu-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-200px); } }
@keyframes omu-tree { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }

/* orchard-juliet-despair - dark mood sunlit (grief) */
.scn-orchard-juliet-despair {
  background: linear-gradient(180deg, #ecc890 0%, #b89868 40%, #8a7a4a 100%), radial-gradient(ellipse at 60% 10%, #fff3b0 0%, transparent 60%);
}
.scn-orchard-juliet-despair .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #f0d0a0 0%, #c8a870 100%); animation: ojd-sky 9s ease-in-out infinite alternate;
}
.scn-orchard-juliet-despair .sun {
  position: absolute; top: 5%; left: 30%; width: 70px; height: 70px; background: radial-gradient(circle, #fff7c0 0%, #ffd060 50%, transparent 70%); border-radius: 50%; animation: ojd-sun 10s ease-in-out infinite;
}
.scn-orchard-juliet-despair .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #7a6a3a 0%, #3a2a1a 100%); border-radius: 30% 40% 0 0; box-shadow: inset 0 15px 25px rgba(0,0,0,0.5);
}
.scn-orchard-juliet-despair .figure {
  position: absolute; bottom: 35%; left: 50%; width: 26px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 50% 50%; transform: translateX(-50%) rotate(10deg); transform-origin: bottom center; animation: ojd-figure 3s ease-in-out infinite;
}
.scn-orchard-juliet-despair .bier {
  position: absolute; bottom: 20%; left: 55%; width: 80px; height: 16px; background: linear-gradient(90deg, #6a5a3a 0%, #8a6a4a 50%, #6a5a3a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ojd-bier 6s ease-in-out infinite;
}
.scn-orchard-juliet-despair .flowers {
  position: absolute; bottom: 25%; left: 60%; width: 20px; height: 20px; background: radial-gradient(circle, #b87878 0%, #702243 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(112,34,67,0.6); animation: ojd-flowers 4s ease-in-out infinite alternate;
}
.scn-orchard-juliet-despair .shadow {
  position: absolute; bottom: 28%; left: 45%; width: 60px; height: 10px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%); border-radius: 50%; animation: ojd-shadow 3s ease-in-out infinite;
}
@keyframes ojd-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ojd-sun { 0%,100% { transform: scale(1); } 50% { transform: scale(1.03); } }
@keyframes ojd-figure { 0% { transform: translateX(-50%) rotate(10deg); } 25% { transform: translateX(-50%) rotate(5deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(0deg) translateY(-5px); } 75% { transform: translateX(-50%) rotate(-5deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(10deg); } }
@keyframes ojd-bier { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ojd-flowers { 0% { transform: scale(0.8); opacity: 0.5; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.5; } }
@keyframes ojd-shadow { 0% { opacity: 0.4; transform: scaleX(1); } 50% { transform: scaleX(1.3); opacity: 0.2; } 100% { opacity: 0.4; transform: scaleX(1); } }

.scn-cell-romeo-torture {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #0f0f1a 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 80%);
}
.scn-cell-romeo-torture .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(0deg, #2a2a3e, #1a1a2e);
}
.scn-cell-romeo-torture .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #0f0f1a, #1a1a2e);
}
.scn-cell-romeo-torture .window {
  position: absolute; top: 15%; left: 50%; width: 80px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #3e3e5e, #2a2a4e);
  border: 2px solid #555; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-cell-romeo-torture .bar-1,
.scn-cell-romeo-torture .bar-2 {
  position: absolute; top: 15%; width: 4px; height: 60px;
  background: #444; border-radius: 2px;
  animation: rt-bars 4s ease-in-out infinite alternate;
}
.scn-cell-romeo-torture .bar-1 { left: calc(50% - 20px); transform: translateX(-50%); }
.scn-cell-romeo-torture .bar-2 { left: calc(50% + 20px); transform: translateX(-50%); }
.scn-cell-romeo-torture .figure {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rt-figure 5s ease-in-out infinite;
}
.scn-cell-romeo-torture .candle {
  position: absolute; bottom: 35%; left: 55%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #ffcc80, #d4a060);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  box-shadow: 0 0 12px 4px #d4a060;
  animation: rt-candle 2.5s ease-in-out infinite alternate;
}
.scn-cell-romeo-torture .shadow {
  position: absolute; bottom: 30%; left: 38%; width: 40px; height: 15px;
  background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(4px);
  animation: rt-shadow 5s ease-in-out infinite;
}
@keyframes rt-figure {
  0% { transform: translateX(0) rotate(-5deg); }
  50% { transform: translateX(5px) rotate(5deg); }
  100% { transform: translateX(10px) rotate(-3deg); }
}
@keyframes rt-candle {
  0% { opacity: .8; box-shadow: 0 0 8px 2px #d4a060; }
  100% { opacity: 1; box-shadow: 0 0 16px 6px #ffcc80; }
}
@keyframes rt-shadow {
  0% { opacity: .3; transform: scaleX(1); }
  50% { opacity: .5; transform: scaleX(1.2); }
  100% { opacity: .3; transform: scaleX(1); }
}
@keyframes rt-bars {
  0% { transform: translateY(0); }
  50% { transform: translateY(1px); }
  100% { transform: translateY(-1px); }
}

.scn-cell-friar-philosophy {
  background:
    linear-gradient(180deg, #2a2a2e 0%, #3a3a3e 50%, #1a1a1e 100%),
    radial-gradient(ellipse at 30% 40%, #5a4a3a 0%, transparent 70%);
}
.scn-cell-friar-philosophy .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(0deg, #3a3a3e, #2a2a2e);
}
.scn-cell-friar-philosophy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #1a1a1e, #2a2a2e);
}
.scn-cell-friar-philosophy .friar {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a3a3a, #2a2a2a);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fp-friar 6s ease-in-out infinite;
}
.scn-cell-friar-philosophy .romeo {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fp-romeo 4s ease-in-out infinite;
}
.scn-cell-friar-philosophy .book {
  position: absolute; bottom: 35%; left: 38%; width: 20px; height: 15px;
  background: #6a4a2a; border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 0 4px rgba(0,0,0,.5);
  animation: fp-book 7s ease-in-out infinite alternate;
}
.scn-cell-friar-philosophy .lamp {
  position: absolute; bottom: 55%; left: 20%; width: 12px; height: 20px;
  background: radial-gradient(circle, #f0c060 0%, #d09040 60%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 8px #d09040;
  animation: fp-lamp 3s ease-in-out infinite alternate;
}
.scn-cell-friar-philosophy .desk {
  position: absolute; bottom: 28%; left: 35%; width: 60px; height: 10px;
  background: linear-gradient(0deg, #4a3a2a, #5a4a3a);
  border-radius: 2px;
}
.scn-cell-friar-philosophy .shadow {
  position: absolute; bottom: 28%; left: 30%; width: 50px; height: 12px;
  background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(5px);
  animation: fp-shadow 6s ease-in-out infinite;
}
@keyframes fp-friar {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes fp-romeo {
  0% { transform: translateX(0) rotate(10deg); }
  50% { transform: translateX(-5px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(5deg); }
}
@keyframes fp-book {
  0% { transform: rotate(-10deg); }
  100% { transform: rotate(10deg); }
}
@keyframes fp-lamp {
  0% { opacity: .8; box-shadow: 0 0 15px 5px #d09040; }
  100% { opacity: 1; box-shadow: 0 0 30px 10px #f0c060; }
}
@keyframes fp-shadow {
  0% { opacity: .2; transform: scale(1); }
  50% { opacity: .4; transform: scale(1.2); }
  100% { opacity: .2; transform: scale(1); }
}

.scn-cell-romeo-desperate {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 50%, #050510 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 60%);
}
.scn-cell-romeo-desperate .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(0deg, #1a1a2a, #0f0f1a);
}
.scn-cell-romeo-desperate .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #050510, #0f0f1a);
}
.scn-cell-romeo-desperate .figure-down {
  position: absolute; bottom: 20%; left: 45%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e, #0a0a1a);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: rd-figure 8s ease-in-out infinite;
}
.scn-cell-romeo-desperate .hand-left {
  position: absolute; bottom: 38%; left: 43%; width: 8px; height: 15px;
  background: #2a2a3e;
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-30deg);
  animation: rd-hand 4s ease-in-out infinite alternate;
}
.scn-cell-romeo-desperate .hand-right {
  position: absolute; bottom: 38%; left: 53%; width: 8px; height: 15px;
  background: #2a2a3e;
  border-radius: 40% 40% 20% 20%;
  transform: rotate(30deg);
  animation: rd-hand 4s ease-in-out infinite alternate-reverse;
}
.scn-cell-romeo-desperate .tear {
  position: absolute; bottom: 45%; left: 48%; width: 4px; height: 6px;
  background: #6a8aaa; border-radius: 50%;
  animation: rd-tear 7s linear infinite;
}
.scn-cell-romeo-desperate .shadow {
  position: absolute; bottom: 18%; left: 44%; width: 60px; height: 10px;
  background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(4px);
  animation: rd-shadow 8s ease-in-out infinite;
}
@keyframes rd-figure {
  0% { transform: translateY(0) rotate(5deg); }
  50% { transform: translateY(3px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(5deg); }
}
@keyframes rd-hand {
  0% { transform: rotate(-40deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes rd-tear {
  0% { opacity: 0; transform: translateY(0); }
  20% { opacity: 1; }
  80% { opacity: 1; }
  100% { opacity: 0; transform: translateY(15px); }
}
@keyframes rd-shadow {
  0% { transform: scaleX(1); opacity: .5; }
  50% { transform: scaleX(1.3); opacity: .7; }
  100% { transform: scaleX(1); opacity: .5; }
}

.scn-cell-knocking-nurse {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0f0f1a 100%),
    radial-gradient(ellipse at 70% 50%, #3a3a4e 0%, transparent 70%);
}
.scn-cell-knocking-nurse .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(0deg, #2a2a3e, #1a1a2e);
}
.scn-cell-knocking-nurse .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #0f0f1a, #1a1a2e);
}
.scn-cell-knocking-nurse .door {
  position: absolute; left: 10%; bottom: 20%; width: 80px; height: 120px;
  background: linear-gradient(135deg, #4a3a2a, #3a2a1a);
  border: 2px solid #5a4a3a; border-radius: 4px 0 0 4px;
}
.scn-cell-knocking-nurse .knock-hand {
  position: absolute; left: calc(10% + 80px - 10px); bottom: 70%;
  width: 15px; height: 20px;
  background: #1a1a2e;
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: kn-knock 0.8s ease-in-out infinite;
}
.scn-cell-knocking-nurse .romeo-standing {
  position: absolute; right: 20%; bottom: 25%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #1a1a2e, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kn-romeo 3s ease-in-out infinite;
}
.scn-cell-knocking-nurse .shadow-door {
  position: absolute; left: 10%; bottom: 20%; width: 80px; height: 5px;
  background: rgba(0,0,0,.6); border-radius: 50%; filter: blur(3px);
}
.scn-cell-knocking-nurse .shadow-romeo {
  position: absolute; right: 20%; bottom: 22%; width: 30px; height: 8px;
  background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(4px);
  animation: kn-shadow 3s ease-in-out infinite;
}
.scn-cell-knocking-nurse .candle {
  position: absolute; right: 10%; bottom: 40%; width: 5px; height: 15px;
  background: linear-gradient(180deg, #ffcc80, #d4a060);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  box-shadow: 0 0 10px 3px #d4a060;
  animation: kn-candle 2s ease-in-out infinite alternate;
}
@keyframes kn-knock {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-5px) rotate(-10deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-5px) rotate(-10deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes kn-romeo {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes kn-shadow {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .5; transform: scale(1.1); }
  100% { opacity: .3; transform: scale(1); }
}
@keyframes kn-candle {
  0% { opacity: .7; box-shadow: 0 0 8px 2px #d4a060; }
  100% { opacity: 1; box-shadow: 0 0 14px 5px #ffcc80; }
}

/* juliet-introduced */
.scn-juliet-introduced {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 100%), radial-gradient(circle at 30% 80%, #fff8e8 0%, transparent 50%);
}
.scn-juliet-introduced .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b88a 100%);
  border-bottom: 2px solid #b09878;
}
.scn-juliet-introduced .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, #b09878 0%, #8a7a5a 100%);
}
.scn-juliet-introduced .window {
  position: absolute; top: 15%; right: 20%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #fff8e0, #f0d8a0);
  border: 4px solid #a08060; border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(255,248,224,0.6);
  animation: ji-glow 4s ease-in-out infinite alternate;
}
.scn-juliet-introduced .arch {
  position: absolute; bottom: 30%; left: 10%; width: 120px; height: 180px;
  background: radial-gradient(ellipse 60% 100% at 50% 100%, #c8b89a 0%, #a08868 100%);
  border-radius: 60% 60% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
}
.scn-juliet-introduced .figure-juliet {
  position: absolute; bottom: 30%; left: 15%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a, #4a3a2a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ji-walk 6s ease-in-out infinite;
}
.scn-juliet-introduced .figure-nurse {
  position: absolute; bottom: 30%; right: 30%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #7a6a5a, #5a4a3a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ji-stand 8s ease-in-out infinite;
}
.scn-juliet-introduced .lamp {
  position: absolute; bottom: 35%; left: 5%; width: 10px; height: 10px;
  background: #ffe080; border-radius: 50%;
  box-shadow: 0 0 30px 15px #ffe080;
  animation: ji-flicker 3s ease-in-out infinite alternate;
}
@keyframes ji-glow {
  0% { opacity: 0.8; box-shadow: 0 0 20px 5px rgba(255,248,224,0.5); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,248,224,0.8); }
  100% { opacity: 0.9; box-shadow: 0 0 25px 8px rgba(255,248,224,0.6); }
}
@keyframes ji-walk {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(10px) rotate(0deg); }
  75% { transform: translateX(5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ji-stand {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ji-flicker {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.8; }
}

/* nurse-reminisces */
.scn-nurse-reminisces {
  background: linear-gradient(180deg, #f0e2d0 0%, #d4c4a0 100%), radial-gradient(circle at 70% 50%, #fff8ec 0%, transparent 60%);
}
.scn-nurse-reminisces .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e0d2b8 0%, #c0a880 100%);
}
.scn-nurse-reminisces .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, #a89070 0%, #8a7050 100%);
}
.scn-nurse-reminisces .stool {
  position: absolute; bottom: 30%; left: 30%; width: 50px; height: 40px;
  background: #8a7050; border-radius: 10% 10% 20% 20%;
  box-shadow: 0 5px 5px rgba(0,0,0,0.3);
}
.scn-nurse-reminisces .table {
  position: absolute; bottom: 30%; right: 20%; width: 80px; height: 30px;
  background: #9a8060; border-radius: 4px;
  box-shadow: 0 5px 5px rgba(0,0,0,0.3);
  animation: nr-sway 10s ease-in-out infinite alternate;
}
.scn-nurse-reminisces .candle {
  position: absolute; bottom: 32%; right: 35%; width: 6px; height: 15px;
  background: #e8d0b0; border-radius: 2px;
}
.scn-nurse-reminisces .flame {
  position: absolute; bottom: 42%; right: 35%; width: 10px; height: 15px;
  background: radial-gradient(circle at 50% 30%, #ffe080 0%, #ffb040 60%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: nr-flame 2s ease-in-out infinite alternate;
}
.scn-nurse-reminisces .figure-nurse {
  position: absolute; bottom: 30%; left: 30%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #7a6a5a, #5a4a3a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: translateX(15px) translateY(-10px);
  animation: nr-breathe 5s ease-in-out infinite alternate;
}
.scn-nurse-reminisces .figure-child {
  position: absolute; bottom: 30%; left: 45%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #8a7a6a, #6a5a4a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nr-child 7s ease-in-out infinite;
}
@keyframes nr-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes nr-breathe {
  0% { transform: translateX(15px) translateY(-10px) scaleY(1); }
  50% { transform: translateX(15px) translateY(-12px) scaleY(1.02); }
  100% { transform: translateX(15px) translateY(-10px) scaleY(1); }
}
@keyframes nr-child {
  0% { transform: translateY(0); }
  33% { transform: translateY(-2px); }
  66% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes nr-flame {
  0% { transform: scale(1) rotate(-2deg); opacity: 0.9; }
  50% { transform: scale(1.1) rotate(2deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(-1deg); opacity: 0.8; }
}

/* nurse-laughs */
.scn-nurse-laughs {
  background: linear-gradient(180deg, #f5e8d0 0%, #d4c0a0 100%), radial-gradient(circle at 30% 20%, #fff8e0 0%, transparent 50%);
}
.scn-nurse-laughs .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d8b8 0%, #c0a880 100%);
}
.scn-nurse-laughs .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, #a89070 0%, #8a7050 100%);
}
.scn-nurse-laughs .bench {
  position: absolute; bottom: 30%; left: 20%; width: 100px; height: 30px;
  background: #9a8060; border-radius: 4px;
  box-shadow: 0 5px 5px rgba(0,0,0,0.3);
}
.scn-nurse-laughs .window {
  position: absolute; top: 10%; right: 10%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #fff8e0, #f0d8a0);
  border: 3px solid #a08060;
  box-shadow: 0 0 20px 8px rgba(255,248,224,0.5);
  animation: nl-glow 4s ease-in-out infinite alternate;
}
.scn-nurse-laughs .figure-nurse {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #7a6a5a, #5a4a3a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nl-laugh 4s ease-in-out infinite;
}
.scn-nurse-laughs .figure-child {
  position: absolute; bottom: 30%; left: 50%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #8a7a6a, #6a5a4a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nl-child 6s ease-in-out infinite;
}
.scn-nurse-laughs .bump {
  position: absolute; bottom: 65%; left: 52%; width: 12px; height: 12px;
  background: #8a7a6a; border-radius: 50%;
  transform: translateX(-50%);
  animation: nl-bump 3s ease-in-out infinite alternate;
}
@keyframes nl-glow {
  0% { opacity: 0.7; box-shadow: 0 0 15px 4px rgba(255,248,224,0.4); }
  50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(255,248,224,0.7); }
  100% { opacity: 0.85; box-shadow: 0 0 20px 6px rgba(255,248,224,0.5); }
}
@keyframes nl-laugh {
  0% { transform: translateY(0) rotate(0deg) scaleY(1); }
  25% { transform: translateY(-3px) rotate(5deg) scaleY(1.1); }
  50% { transform: translateY(0) rotate(0deg) scaleY(1); }
  75% { transform: translateY(-2px) rotate(-5deg) scaleY(1.05); }
  100% { transform: translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes nl-child {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-2px) rotate(2deg); }
  66% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes nl-bump {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.2); }
  100% { transform: translateX(-50%) scale(0.9); }
}

/* mother-speaks-of-marriage */
.scn-mother-speaks-of-marriage {
  background: linear-gradient(180deg, #f0e0c8 0%, #c8b090 100%), radial-gradient(circle at 50% 30%, #fff8e8 0%, transparent 60%);
}
.scn-mother-speaks-of-marriage .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e0d0b0 0%, #b8a080 100%);
}
.scn-mother-speaks-of-marriage .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, #a08868 0%, #7a6040 100%);
}
.scn-mother-speaks-of-marriage .window {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #fff8e0, #f0d8a0);
  border: 4px solid #a08060; border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(255,248,224,0.5);
  animation: ms-glow 4s ease-in-out infinite alternate;
}
.scn-mother-speaks-of-marriage .stool {
  position: absolute; bottom: 30%; left: 30%; width: 50px; height: 40px;
  background: #8a7050; border-radius: 10% 10% 20% 20%;
  box-shadow: 0 5px 5px rgba(0,0,0,0.3);
}
.scn-mother-speaks-of-marriage .figure-mother {
  position: absolute; bottom: 30%; left: 30%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #6a5a4a, #4a3a2a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms-mother 7s ease-in-out infinite alternate;
}
.scn-mother-speaks-of-marriage .figure-juliet {
  position: absolute; bottom: 30%; right: 25%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #7a6a5a, #5a4a3a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ms-juliet 6s ease-in-out infinite;
}
.scn-mother-speaks-of-marriage .vase {
  position: absolute; bottom: 32%; right: 10%; width: 20px; height: 30px;
  background: #a08060; border-radius: 20% 20% 10% 10%;
}
.scn-mother-speaks-of-marriage .flower {
  position: absolute; bottom: 50%; right: 12%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffb0a0, #e08060);
  border-radius: 50% 50% 0 0;
  animation: ms-flower 5s ease-in-out infinite alternate;
}
@keyframes ms-glow {
  0% { opacity: 0.8; box-shadow: 0 0 20px 5px rgba(255,248,224,0.4); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,248,224,0.7); }
  100% { opacity: 0.9; box-shadow: 0 0 25px 8px rgba(255,248,224,0.5); }
}
@keyframes ms-mother {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ms-juliet {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-1px) rotate(1deg); }
  66% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ms-flower {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.1) rotate(10deg); }
  100% { transform: scale(0.9) rotate(-5deg); }
}

.scn-friar-cell-paris-leaves { background: linear-gradient(180deg, #1a0f0a 0%, #2b1a10 40%, #0d0805 70%, #1a0f0a 100%), radial-gradient(ellipse at 50% 30%, #3a2015 0%, transparent 60%); }
.scn-friar-cell-paris-leaves .wall-back { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a10 0%, #1a0f0a 50%, #0d0805 100%); animation: fcp-wall 12s ease-in-out infinite alternate; }
.scn-friar-cell-paris-leaves .wall-side { position:absolute; top:0; left:70%; width:30%; height:100%; background: linear-gradient(180deg, #1f1410 0%, #0d0805 100%); transform: skewX(-10deg); transform-origin: left; box-shadow: -10px 0 20px rgba(0,0,0,.6); }
.scn-friar-cell-paris-leaves .floor { position:absolute; bottom:0; left:0; right:30%; height:25%; background: linear-gradient(180deg, #2a1a10 0%, #1a0f0a 100%); border-radius: 0 0 40% 0 / 0 0 60% 0; }
.scn-friar-cell-paris-leaves .candle { position:absolute; bottom:30%; left:45%; width:8px; height:20px; background: linear-gradient(180deg, #e0c080 0%, #b09860 50%, #806040 100%); border-radius: 4px; box-shadow: inset 0 2px 4px rgba(255,255,200,.2); }
.scn-friar-cell-paris-leaves .candle-glow { position:absolute; bottom:35%; left:45%; width:40px; height:40px; margin-left:-16px; background: radial-gradient(circle, #ffd060 0%, #e0a030 30%, transparent 60%); opacity:.9; animation: fcp-glow 2s ease-in-out infinite alternate; }
.scn-friar-cell-paris-leaves .figure-paris { position:absolute; bottom:25%; left:60%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: fcp-paris 8s ease-in-out infinite; }
.scn-friar-cell-paris-leaves .figure-juliet { position:absolute; bottom:25%; left:25%; width:18px; height:45px; background: linear-gradient(180deg, #4a3a2a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: fcp-juliet 5s ease-in-out infinite; }
.scn-friar-cell-paris-leaves .figure-friar { position:absolute; bottom:25%; left:38%; width:22px; height:52px; background: linear-gradient(180deg, #2a1a10 0%, #0d0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: fcp-friar 6s ease-in-out infinite; }
@keyframes fcp-wall { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .6 } }
@keyframes fcp-glow { 0% { transform: scale(.9); opacity: .7; box-shadow: 0 0 20px 8px #e0a030 } 50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 30px 12px #ffd060 } 100% { transform: scale(.95); opacity: .8; box-shadow: 0 0 25px 10px #e0a030 } }
@keyframes fcp-paris { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(-8px) translateY(-2px) rotate(0deg) } 50% { transform: translateX(-16px) translateY(-1px) rotate(-2deg) } 75% { transform: translateX(-24px) translateY(-3px) rotate(0deg) } 100% { transform: translateX(-32px) translateY(0) rotate(0deg) } }
@keyframes fcp-juliet { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fcp-friar { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-friar-cell-juliet-desperate { background: linear-gradient(180deg, #120a05 0%, #1a0f0a 40%, #0d0805 100%), radial-gradient(ellipse at 50% 50%, #2a1a10 0%, transparent 70%); }
.scn-friar-cell-juliet-desperate .wall-back { position:absolute; inset:0; background: linear-gradient(135deg, #1a0f0a 0%, #2b1a10 50%, #120a05 100%); }
.scn-friar-cell-juliet-desperate .cell-bar { position:absolute; top:10%; left:5%; width:90%; height:4px; background: #3a2a1a; box-shadow: 0 20px 0 #3a2a1a, 0 40px 0 #3a2a1a, 0 60px 0 #3a2a1a, 0 80px 0 #3a2a1a; animation: fcj-bars 4s ease-in-out infinite alternate; }
.scn-friar-cell-juliet-desperate .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a10 0%, #1a0f0a 100%); }
.scn-friar-cell-juliet-desperate .candle { position:absolute; bottom:30%; left:70%; width:6px; height:18px; background: linear-gradient(180deg, #e0c080 0%, #b09860 100%); border-radius: 3px; }
.scn-friar-cell-juliet-desperate .candle-glow { position:absolute; bottom:33%; left:70%; width:30px; height:30px; margin-left:-12px; background: radial-gradient(circle, #ffd060 0%, #e0a030 30%, transparent 60%); animation: fcj-glow 2.5s ease-in-out infinite alternate; }
.scn-friar-cell-juliet-desperate .figure-juliet { position:absolute; bottom:20%; left:30%; width:16px; height:45px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: fcj-juliet 3s ease-in-out infinite; }
.scn-friar-cell-juliet-desperate .hands-clasped { position:absolute; bottom:28%; left:30%; width:12px; height:12px; background: #4a3a2a; border-radius: 50%; transform: translateX(2px); box-shadow: 0 0 8px rgba(200,150,80,.3); animation: fcj-hands 1.5s ease-in-out infinite alternate; }
.scn-friar-cell-juliet-desperate .shadow { position:absolute; bottom:10%; left:25%; width:50%; height:30%; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(8px); animation: fcj-shadow 6s ease-in-out infinite; }
@keyframes fcj-bars { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .6 } }
@keyframes fcj-glow { 0% { transform: scale(.9); opacity: .8 } 50% { transform: scale(1.2); opacity: 1 } 100% { transform: scale(1); opacity: .9 } }
@keyframes fcj-juliet { 0% { transform: translateY(0) } 30% { transform: translateY(-4px) rotate(1deg) } 70% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) } }
@keyframes fcj-hands { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(3px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fcj-shadow { 0% { opacity: .3; transform: scale(1) } 50% { opacity: .5; transform: scale(1.1) } 100% { opacity: .3; transform: scale(1) } }

.scn-friar-cell-juliet-threatens { background: linear-gradient(180deg, #0f0a05 0%, #1a0f0a 40%, #0d0805 100%), radial-gradient(ellipse at 50% 60%, #2a1a10 0%, transparent 70%); }
.scn-friar-cell-juliet-threatens .wall-back { position:absolute; inset:0; background: linear-gradient(0deg, #1a0f0a 0%, #2b1a10 50%, #0f0a05 100%); }
.scn-friar-cell-juliet-threatens .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a10 0%, #1a0f0a 100%); }
.scn-friar-cell-juliet-threatens .candle { position:absolute; bottom:35%; left:50%; width:6px; height:18px; background: linear-gradient(180deg, #e0c080 0%, #b09860 100%); border-radius: 3px; }
.scn-friar-cell-juliet-threatens .candle-glow { position:absolute; bottom:38%; left:50%; width:35px; height:35px; margin-left:-14px; background: radial-gradient(circle, #ffd060 0%, #e0a030 25%, transparent 55%); animation: fct-glow 1.8s ease-in-out infinite alternate; }
.scn-friar-cell-juliet-threatens .figure-juliet { position:absolute; bottom:20%; left:40%; width:18px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: fct-juliet 2s ease-in-out infinite; }
.scn-friar-cell-juliet-threatens .knife { position:absolute; bottom:40%; left:42%; width:3px; height:20px; background: linear-gradient(180deg, #a0a0a0 0%, #707070 50%, #505050 100%); border-radius: 1px; transform: rotate(45deg); transform-origin: bottom; animation: fct-knife 1.5s ease-in-out infinite alternate; }
.scn-friar-cell-juliet-threatens .shadow-friar { position:absolute; bottom:20%; left:60%; width:30px; height:60px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(10px); animation: fct-shadow 5s ease-in-out infinite; }
.scn-friar-cell-juliet-threatens .shadow-juliet { position:absolute; bottom:20%; left:35%; width:25px; height:55px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(8px); animation: fct-shadow2 4s ease-in-out infinite; }
@keyframes fct-glow { 0% { transform: scale(.8); opacity: .7 } 50% { transform: scale(1.3); opacity: 1 } 100% { transform: scale(1); opacity: .9 } }
@keyframes fct-juliet { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fct-knife { 0% { transform: rotate(40deg) } 50% { transform: rotate(50deg) } 100% { transform: rotate(45deg) } }
@keyframes fct-shadow { 0% { opacity: .3; transform: scale(1) translateX(0) } 50% { opacity: .6; transform: scale(1.1) translateX(5px) } 100% { opacity: .3; transform: scale(1) translateX(0) } }
@keyframes fct-shadow2 { 0% { opacity: .4; transform: scale(1) } 50% { opacity: .7; transform: scale(1.05) } 100% { opacity: .4; transform: scale(1) } }

.scn-friar-cell-friar-offers-hope { background: linear-gradient(180deg, #140a05 0%, #1f140f 40%, #0a0502 100%), radial-gradient(ellipse at 40% 50%, #2a1a10 0%, transparent 70%); }
.scn-friar-cell-friar-offers-hope .wall-back { position:absolute; inset:0; background: linear-gradient(45deg, #1a0f0a 0%, #2b1a10 50%, #140a05 100%); }
.scn-friar-cell-friar-offers-hope .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a10 0%, #1a0f0a 100%); }
.scn-friar-cell-friar-offers-hope .candle { position:absolute; bottom:30%; left:60%; width:6px; height:16px; background: linear-gradient(180deg, #e0c080 0%, #b09860 100%); border-radius: 3px; }
.scn-friar-cell-friar-offers-hope .candle-glow { position:absolute; bottom:32%; left:60%; width:30px; height:30px; margin-left:-12px; background: radial-gradient(circle, #ffd060 0%, #e0a030 30%, transparent 60%); animation: fcf-glow 2.2s ease-in-out infinite alternate; }
.scn-friar-cell-friar-offers-hope .figure-friar { position:absolute; bottom:20%; left:35%; width:22px; height:55px; background: linear-gradient(180deg, #2a1a10 0%, #0d0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: fcf-friar 4s ease-in-out infinite; }
.scn-friar-cell-friar-offers-hope .potion-bottle { position:absolute; bottom:35%; left:40%; width:10px; height:18px; background: linear-gradient(180deg, #806040 0%, #4a3020 100%); border-radius: 2px 2px 5px 5px; box-shadow: inset 0 2px 4px rgba(255,200,100,.3); animation: fcf-bottle 3s ease-in-out infinite alternate; }
.scn-friar-cell-friar-offers-hope .hand-offer { position:absolute; bottom:30%; left:38%; width:8px; height:12px; background: #3a2a1a; border-radius: 50%; transform: rotate(-20deg); animation: fcf-hand 2s ease-in-out infinite alternate; }
@keyframes fcf-glow { 0% { transform: scale(.85); opacity: .7 } 50% { transform: scale(1.15); opacity: 1 } 100% { transform: scale(1); opacity: .9 } }
@keyframes fcf-friar { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fcf-bottle { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fcf-hand { 0% { transform: rotate(-25deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(2px) } 100% { transform: rotate(-20deg) translateX(0) } }

.scn-friar-herbs-philosophy { background: linear-gradient(180deg, #fad9c4 0%, #f5d6c6 30%, #d8a88a 100%), radial-gradient(ellipse at 50% 0%, #ffe3d0 0%, transparent 60%); }
.scn-friar-herbs-philosophy .sky-dawn { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #ffdacc 0%, #fce4d6 40%, #ffe0c0 100%); animation: fhp-sky 20s ease-in-out infinite alternate; }
.scn-friar-herbs-philosophy .earth { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a3a28 0%, #2d2218 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); animation: fhp-earth 15s ease-in-out infinite; }
.scn-friar-herbs-philosophy .herb { position:absolute; bottom:20%; width:16px; height:40px; background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: fhp-herb 6s ease-in-out infinite; }
.scn-friar-herbs-philosophy .herb-a { left:20%; animation-delay:0s; }
.scn-friar-herbs-philosophy .herb-b { left:35%; width:20px; height:45px; animation-delay: -2s; }
.scn-friar-herbs-philosophy .herb-c { left:65%; width:14px; height:35px; animation-delay: -4s; }
.scn-friar-herbs-philosophy .figure-kneel { position:absolute; bottom:15%; left:45%; width:28px; height:50px; background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fhp-figure 8s ease-in-out infinite; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-friar-herbs-philosophy .sun { position:absolute; top:15%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #ffd080 0%, #ffa040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,160,64,0.4); animation: fhp-sun 25s ease-in-out infinite alternate; }
.scn-friar-herbs-philosophy .tree { position:absolute; bottom:20%; right:15%; width:30px; height:80px; background: linear-gradient(180deg, #4d2f1e 0%, #2a1a10 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: fhp-tree 12s ease-in-out infinite; }
@keyframes fhp-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes fhp-earth { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fhp-herb { 0% { transform: rotate(-5deg) scale(1,1); } 50% { transform: rotate(5deg) scale(1,1.05); } 100% { transform: rotate(-5deg) scale(1,1); } }
@keyframes fhp-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg) translateY(-2px); } }
@keyframes fhp-sun { 0% { transform: translateY(0) scale(1); opacity:0.9; } 50% { transform: translateY(-5px) scale(1.05); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:0.9; } }
@keyframes fhp-tree { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }

.scn-friar-good-evil { background: linear-gradient(180deg, #d2a679 0%, #b8936b 50%, #8c6a4d 100%), radial-gradient(ellipse at 50% 80%, #e6cca8 0%, transparent 60%); }
.scn-friar-good-evil .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, transparent 40%, #2d2218 100%); }
.scn-friar-good-evil .stem { position:absolute; bottom:30%; left:50%; width:8px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a7a2a 0%, #2a5a1a 100%); border-radius: 4px; animation: fge-stem 6s ease-in-out infinite; }
.scn-friar-good-evil .flower-good { position:absolute; bottom:60%; left:50%; width:40px; height:40px; transform:translateX(-50%) scale(0.8); background: radial-gradient(circle, #d4a373 0%, #b07850 60%, #804020 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; animation: fge-flower 10s ease-in-out infinite; box-shadow: 0 0 20px 5px rgba(200,120,60,0.5); }
.scn-friar-good-evil .flower-evil { position:absolute; bottom:60%; left:50%; width:40px; height:40px; transform:translateX(-50%) scale(0.8); background: radial-gradient(circle, #5a2a1a 0%, #3a1a0a 60%, #1a0a00 100%); border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%; animation: fge-flower-evil 12s ease-in-out infinite; box-shadow: 0 0 20px 5px rgba(80,20,10,0.5); }
.scn-friar-good-evil .leaf { position:absolute; bottom:45%; width:20px; height:30px; background: linear-gradient(135deg, #5a8a3a 0%, #3a5a2a 100%); border-radius: 50% 0 50% 0; animation: fge-leaf 7s ease-in-out infinite; }
.scn-friar-good-evil .leaf-l { left:30%; transform: rotate(-20deg); }
.scn-friar-good-evil .leaf-r { right:30%; transform: rotate(20deg); animation-delay: -3.5s; }
.scn-friar-good-evil .dew { position:absolute; bottom:55%; left:48%; width:8px; height:8px; background: radial-gradient(circle, #ffffff 0%, #b0d0e0 100%); border-radius:50%; box-shadow: 0 0 10px 2px rgba(255,255,255,0.3); animation: fge-dew 5s ease-in-out infinite alternate; }
@keyframes fge-stem { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03); } }
@keyframes fge-flower { 0% { transform: translateX(-50%) scale(0.8) rotate(0deg); } 50% { transform: translateX(-50%) scale(0.85) rotate(5deg); } 100% { transform: translateX(-50%) scale(0.8) rotate(0deg); } }
@keyframes fge-flower-evil { 0% { transform: translateX(-50%) scale(0.8) rotate(0deg); } 50% { transform: translateX(-50%) scale(0.85) rotate(-5deg); } 100% { transform: translateX(-50%) scale(0.8) rotate(0deg); } }
@keyframes fge-leaf { 0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-15deg) scale(1.1); } 100% { transform: rotate(-20deg) scale(1); } }
@keyframes fge-dew { 0% { opacity:0.8; transform: translateY(0); } 100% { opacity:1; transform: translateY(-2px); } }

.scn-friar-romeo-arrival { background: linear-gradient(90deg, #c9b89a 0%, #e0ceb0 30%, #f5e6d0 70%, #c9b89a 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%); }
.scn-friar-romeo-arrival .wall { position:absolute; inset:0; background: linear-gradient(180deg, #d0c0a0 0%, #b8a888 100%); }
.scn-friar-romeo-arrival .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: fra-floor 15s ease-in-out infinite; }
.scn-friar-romeo-arrival .door { position:absolute; bottom:20%; left:60%; width:80px; height:100px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: fra-door 20s ease-in-out infinite; }
.scn-friar-romeo-arrival .window-light { position:absolute; top:15%; left:15%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #e8dbb0 50%, transparent 100%); border-radius: 10%; box-shadow: 0 0 40px 15px rgba(255,240,200,0.5); animation: fra-light 8s ease-in-out infinite alternate; }
.scn-friar-romeo-arrival .friar-silhouette { position:absolute; bottom:22%; left:50%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: fra-friar 10s ease-in-out infinite; }
.scn-friar-romeo-arrival .romeo-silhouette { position:absolute; bottom:22%; left:30%; width:26px; height:68px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: fra-romeo 12s ease-in-out infinite; }
.scn-friar-romeo-arrival .pulpit { position:absolute; bottom:20%; left:70%; width:40px; height:50px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: fra-pulpit 25s ease-in-out infinite; }
@keyframes fra-floor { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } }
@keyframes fra-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes fra-light { 0% { opacity:0.8; transform: scale(0.95); } 50% { opacity:1; transform: scale(1); } 100% { opacity:0.85; transform: scale(0.95); } }
@keyframes fra-friar { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-45%) rotate(1deg) translateY(-2px); } }
@keyframes fra-romeo { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-55%) rotate(-1deg) translateY(-1px); } }
@keyframes fra-pulpit { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }

.scn-friar-romeo-confession { background: linear-gradient(180deg, #b8a888 0%, #d0c0a0 50%, #e8d8b8 100%), radial-gradient(ellipse at 50% 100%, #fff0d0 0%, transparent 60%); }
.scn-friar-romeo-confession .bg-cell { position:absolute; inset:0; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); }
.scn-friar-romeo-confession .table { position:absolute; bottom:25%; left:25%; right:25%; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 5px; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: frc-table 20s ease-in-out infinite; }
.scn-friar-romeo-confession .candle { position:absolute; bottom:35%; left:50%; width:10px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #e8c080 0%, #d4a050 100%); border-radius: 5px; box-shadow: 0 0 20px 5px rgba(255,200,100,0.6); animation: frc-candle 8s ease-in-out infinite alternate; }
.scn-friar-romeo-confession .friar-profile { position:absolute; bottom:28%; left:30%; width:32px; height:65px; background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: frc-friar 14s ease-in-out infinite; }
.scn-friar-romeo-confession .romeo-profile { position:absolute; bottom:28%; right:30%; width:28px; height:62px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: frc-romeo 16s ease-in-out infinite; }
.scn-friar-romeo-confession .shadow-beam { position:absolute; top:0; left:10%; width:80%; height:100%; background: linear-gradient(135deg, rgba(255,240,200,0.2) 0%, transparent 50%, rgba(255,240,200,0.2) 100%); animation: frc-beam 10s ease-in-out infinite alternate; }
@keyframes frc-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes frc-candle { 0% { transform: translateX(-50%) scaleY(1); opacity:0.9; } 50% { transform: translateX(-50%) scaleY(1.05); opacity:1; } 100% { transform: translateX(-50%) scaleY(1); opacity:0.95; } }
@keyframes frc-friar { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes frc-romeo { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes frc-beam { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

/* capulet-room-night-farewell */
.scn-capulet-room-night-farewell { background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 30%, #1a0a0a 100%), radial-gradient(ellipse at 50% 70%, #4a3a3a 0%, transparent 60%); }
.scn-capulet-room-night-farewell .wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); }
.scn-capulet-room-night-farewell .window { position:absolute; top:15%; left:60%; width:80px; height:100px; border-radius: 10px; background: linear-gradient(180deg, #1a2a3a 0%, #3a4a5a 100%); box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-capulet-room-night-farewell .moon { position:absolute; top:8%; left:65%; width:30px; height:30px; border-radius:50%; background: radial-gradient(circle, #c0d0e0 0%, #8090a0 70%); box-shadow: 0 0 40px 10px rgba(192,208,224,.3); animation: cap-moon 30s ease-in-out infinite alternate; }
.scn-capulet-room-night-farewell .candle { position:absolute; bottom:25%; left:45%; width:12px; height:30px; background: linear-gradient(180deg, #d0a060 0%, #806040 100%); border-radius: 20% 20% 10% 10%; }
.scn-capulet-room-night-farewell .flame { position:absolute; bottom:42%; left:45%; width:10px; height:20px; background: radial-gradient(ellipse, #ffd080 0%, #e09050 50%, #804020 100%); border-radius:60% 60% 30% 30%; animation: cap-flame .6s ease-in-out infinite alternate; }
.scn-capulet-room-night-farewell .figure { position:absolute; bottom:20%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cap-figure 6s ease-in-out infinite; }
.scn-capulet-room-night-farewell .bed { position:absolute; bottom:10%; left:30%; width:120px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-capulet-room-night-farewell .glow { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(ellipse at 60% 50%, rgba(255,200,100,.2) 0%, transparent 60%); pointer-events:none; animation: cap-glow 4s ease-in-out infinite alternate; }
@keyframes cap-moon { 0% { opacity:.8; transform: translateX(0) } 50% { opacity:.9; transform: translateX(-5px) } 100% { opacity:.7; transform: translateX(5px) } }
@keyframes cap-flame { 0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.3) translateY(-2px); opacity:1 } 100% { transform: scaleY(.9) translateY(1px); opacity:.8 } }
@keyframes cap-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes cap-glow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.3 } }

/* orchard-nightingale-lark */
.scn-orchard-nightingale-lark { background: linear-gradient(180deg, #6a7a8a 0%, #8a9a7a 30%, #c8a070 60%, #e8c080 100%), radial-gradient(ellipse at 50% 100%, #f0d0a0 0%, transparent 70%); }
.scn-orchard-nightingale-lark .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8a9a8a 0%, #c8b080 100%); animation: nig-sky 20s ease-in-out infinite alternate; }
.scn-orchard-nightingale-lark .tree-trunk { position:absolute; bottom:10%; left:20%; width:30px; height:60%; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 30% 30%; }
.scn-orchard-nightingale-lark .branch { position:absolute; top:45%; left:18%; width:100px; height:8px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:20%; transform: rotate(15deg); transform-origin: left; }
.scn-orchard-nightingale-lark .figure-romeo { position:absolute; bottom:15%; left:45%; width:22px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: nig-figure 5s ease-in-out infinite; }
.scn-orchard-nightingale-lark .figure-juliet { position:absolute; bottom:15%; left:55%; width:20px; height:55px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: nig-figure 5s ease-in-out infinite reverse; }
.scn-orchard-nightingale-lark .bird { position:absolute; top:30%; left:60%; width:15px; height:8px; background: #2a2a2a; border-radius: 50% 50% 20% 20%; transform: rotate(-20deg); animation: nig-bird 1.5s ease-in-out infinite alternate; }
.scn-orchard-nightingale-lark .moon { position:absolute; top:12%; left:70%; width:25px; height:25px; border-radius:50%; background: radial-gradient(circle, #d0d0e0 0%, #a0a0b0 70%); box-shadow: 0 0 30px 8px rgba(160,160,176,.4); animation: nig-moon 40s linear infinite; }
.scn-orchard-nightingale-lark .streaks { position:absolute; top:20%; left:30%; width:100px; height:200px; background: linear-gradient(180deg, rgba(255,200,150,.2) 0%, transparent 100%); filter: blur(10px); transform: rotate(-20deg); animation: nig-streaks 10s ease-in-out infinite alternate; }
@keyframes nig-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes nig-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(3deg) } 100% { transform: translateX(-5px) rotate(-2deg) } }
@keyframes nig-bird { 0% { transform: translateY(0) rotate(-20deg) } 100% { transform: translateY(-3px) rotate(-15deg) } }
@keyframes nig-moon { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }
@keyframes nig-streaks { 0% { opacity:.3; transform: rotate(-20deg) scaleX(1) } 50% { opacity:.6; transform: rotate(-15deg) scaleX(1.2) } 100% { opacity:.2; transform: rotate(-25deg) scaleX(.9) } }

/* orchard-meteor-delay */
.scn-orchard-meteor-delay { background: linear-gradient(180deg, #5a5a6a 0%, #7a7a5a 30%, #b0a070 60%, #d0c080 100%), radial-gradient(ellipse at 50% 40%, #c0a070 0%, transparent 60%); }
.scn-orchard-meteor-delay .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a6a7a 0%, #8a8a5a 100%); animation: met-sky 25s ease-in-out infinite alternate; }
.scn-orchard-meteor-delay .tree-trunk { position:absolute; bottom:10%; left:25%; width:25px; height:55%; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:10%; }
.scn-orchard-meteor-delay .branch { position:absolute; top:50%; left:23%; width:80px; height:6px; background: #3a2a1a; border-radius:10%; transform: rotate(10deg); transform-origin: left; }
.scn-orchard-meteor-delay .torch { position:absolute; bottom:20%; left:30%; width:10px; height:40px; background: linear-gradient(180deg, #a08060 0%, #604020 100%); border-radius: 20% 20% 10% 10%; }
.scn-orchard-meteor-delay .flame { position:absolute; bottom:40%; left:30%; width:14px; height:25px; background: radial-gradient(ellipse, #ffe080 0%, #c08040 50%, #804020 100%); border-radius:50% 50% 30% 30%; animation: met-flame .4s ease-in-out infinite alternate; }
.scn-orchard-meteor-delay .figure-romeo { position:absolute; bottom:15%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: met-figure 4s ease-in-out infinite; }
.scn-orchard-meteor-delay .figure-juliet { position:absolute; bottom:15%; left:55%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: met-figure 4s ease-in-out infinite reverse; }
.scn-orchard-meteor-delay .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; }
.scn-orchard-meteor-delay .glow { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(ellipse at 30% 50%, rgba(255,200,100,.15) 0%, transparent 50%); pointer-events:none; animation: met-glow 3s ease-in-out infinite alternate; }
@keyframes met-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.5 } }
@keyframes met-flame { 0% { transform: scaleY(1) translateY(0); opacity:.8 } 50% { transform: scaleY(1.5) translateY(-3px); opacity:1 } 100% { transform: scaleY(1.1) translateY(1px); opacity:.7 } }
@keyframes met-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(-4px) rotate(-2deg) } }
@keyframes met-glow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.2 } }

/* orchard-lark-parting */
.scn-orchard-lark-parting { background: linear-gradient(180deg, #2a2a3a 0%, #4a4a5a 30%, #6a5a3a 60%, #8a6a3a 100%), radial-gradient(ellipse at 50% 0%, #6a5a3a 0%, transparent 60%); }
.scn-orchard-lark-parting .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a3a4a 0%, #5a5a3a 100%); animation: par-sky 30s ease-in-out infinite alternate; }
.scn-orchard-lark-parting .tree-trunk { position:absolute; bottom:10%; left:30%; width:20px; height:50%; background: linear-gradient(90deg, #2a1a0a 0%, #1a0a00 100%); border-radius:10%; }
.scn-orchard-lark-parting .branch { position:absolute; top:55%; left:28%; width:70px; height:5px; background: #2a1a0a; border-radius:10%; transform: rotate(-10deg); transform-origin: left; }
.scn-orchard-lark-parting .bird { position:absolute; top:40%; left:65%; width:12px; height:10px; background: #1a1a1a; border-radius: 50% 50% 20% 20%; transform: rotate(30deg); animation: par-bird .8s ease-in-out infinite alternate; }
.scn-orchard-lark-parting .figure-romeo { position:absolute; bottom:15%; left:40%; width:20px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: par-figure .5s ease-in-out infinite; }
.scn-orchard-lark-parting .figure-juliet { position:absolute; bottom:15%; left:52%; width:20px; height:55px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: par-figure .5s ease-in-out infinite reverse; }
.scn-orchard-lark-parting .ladder { position:absolute; bottom:10%; left:50%; width:8px; height:80px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 10%; transform: rotate(5deg); animation: par-ladder 2s ease-in-out infinite; }
.scn-orchard-lark-parting .ground { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); }
@keyframes par-sky { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.4 } }
@keyframes par-bird { 0% { transform: translateY(0) rotate(30deg) } 50% { transform: translateY(-5px) rotate(35deg) } 100% { transform: translateY(0) rotate(25deg) } }
@keyframes par-figure { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(3px) translateY(-2px) } 100% { transform: translateX(-3px) translateY(1px) } }
@keyframes par-ladder { 0% { transform: rotate(5deg) } 50% { transform: rotate(7deg) } 100% { transform: rotate(4deg) } }

.scn-orchard-villain-question {
  background: linear-gradient(180deg, #2a3a5a 0%, #c8a060 100%), radial-gradient(ellipse at 50% 0%, #ffd080 0%, transparent 50%);
}
.scn-orchard-villain-question .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a6a8a 0%, #d4b080 100%);
  animation: ovq-sky 12s ease-in-out infinite alternate;
}
.scn-orchard-villain-question .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a7a4a 0%, #3a4a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.3);
  animation: ovq-hills 18s ease-in-out infinite alternate;
}
.scn-orchard-villain-question .tree-left {
  position: absolute; bottom: 30%; left: 15%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  transform-origin: bottom center;
  animation: ovq-tree 6s ease-in-out infinite;
}
.scn-orchard-villain-question .tree-right {
  position: absolute; bottom: 28%; right: 10%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #4a2a0a 0%, #1a0a00 100%);
  border-radius: 8% 8% 4% 4%;
  transform-origin: bottom center;
  animation: ovq-tree 7s ease-in-out infinite -2s;
}
.scn-orchard-villain-question .figure {
  position: absolute; bottom: 22%; left: 50%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ovq-figure 4s ease-in-out infinite;
}
.scn-orchard-villain-question .shadow {
  position: absolute; bottom: 20%; left: 46%; width: 12%; height: 4%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: ovq-shadow 4s ease-in-out infinite;
}
.scn-orchard-villain-question .sunrise {
  position: absolute; bottom: 40%; left: 30%; width: 20%; height: 10%;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  opacity: 0.6;
  animation: ovq-sun 10s ease-in-out infinite alternate;
}
@keyframes ovq-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ovq-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes ovq-tree {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
}
@keyframes ovq-figure {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-48%) rotate(1deg); }
  50% { transform: translateX(-50%) rotate(-1deg); }
  75% { transform: translateX(-52%) rotate(0deg); }
}
@keyframes ovq-shadow {
  0%, 100% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(0.9); opacity: 0.2; }
}
@keyframes ovq-sun {
  0% { transform: scale(0.8); opacity: 0.4; }
  100% { transform: scale(1.2); opacity: 0.7; }
}

.scn-orchard-revenge-plot {
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a5a 50%, #4a3040 100%), radial-gradient(ellipse at 50% 0%, #5a3a2a 0%, transparent 60%);
}
.scn-orchard-revenge-plot .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 100%);
  animation: orp-bg 15s ease-in-out infinite alternate;
}
.scn-orchard-revenge-plot .bg-mid {
  position: absolute; inset: 30% 0 0 0;
  background: linear-gradient(180deg, transparent 0%, #2a1a2a 100%);
  opacity: 0.6;
}
.scn-orchard-revenge-plot .horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 2%;
  background: linear-gradient(90deg, transparent, #6a4030, transparent);
  animation: orp-horizon 10s ease-in-out infinite;
}
.scn-orchard-revenge-plot .figure-plot {
  position: absolute; bottom: 20%; left: 35%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: orp-figure 6s ease-in-out infinite;
}
.scn-orchard-revenge-plot .vial {
  position: absolute; bottom: 25%; left: 42%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #4a6a5a 0%, #2a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-10deg);
  animation: orp-vial 4s ease-in-out infinite;
}
.scn-orchard-revenge-plot .drop-1 {
  position: absolute; bottom: 22%; left: 43.5%; width: 1%; height: 2%;
  background: radial-gradient(circle, #6a8a6a 0%, transparent 100%);
  border-radius: 50%;
  animation: orp-drop 3s ease-in-out infinite;
}
.scn-orchard-revenge-plot .drop-2 {
  position: absolute; bottom: 18%; left: 44%; width: 1%; height: 1.5%;
  background: radial-gradient(circle, #6a8a6a 0%, transparent 100%);
  border-radius: 50%;
  animation: orp-drop 3s ease-in-out infinite 1.5s;
}
@keyframes orp-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes orp-horizon {
  0% { opacity: 0.3; transform: scaleX(0.9); }
  50% { opacity: 0.6; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(1); }
}
@keyframes orp-figure {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-48%) rotate(3deg); }
}
@keyframes orp-vial {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes orp-drop {
  0% { opacity: 1; transform: translateY(0) scale(1); }
  50% { opacity: 0.5; transform: translateY(10px) scale(0.5); }
  100% { opacity: 0; transform: translateY(20px) scale(0); }
}

.scn-orchard-juliet-feigns {
  background: linear-gradient(180deg, #3a4a5a 0%, #b09070 100%), radial-gradient(ellipse at 50% 0%, #e0b080 0%, transparent 40%);
}
.scn-orchard-juliet-feigns .sky-f {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a6a8a 0%, #c8a080 100%);
  animation: ojf-sky 14s ease-in-out infinite alternate;
}
.scn-orchard-juliet-feigns .hills-f {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a7a4a 0%, #3a4a2a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: ojf-hills 20s ease-in-out infinite alternate;
}
.scn-orchard-juliet-feigns .tree-f {
  position: absolute; bottom: 30%; left: 20%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #4a2a0a 0%, #1a0a00 100%);
  border-radius: 10% 10% 5% 5%;
  transform-origin: bottom center;
  animation: ojf-tree 8s ease-in-out infinite;
}
.scn-orchard-juliet-feigns .figure-f {
  position: absolute; bottom: 22%; left: 55%; width: 8%; height: 32%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ojf-figure 3s ease-in-out infinite;
}
.scn-orchard-juliet-feigns .veil {
  position: absolute; bottom: 30%; left: 52%; width: 10%; height: 12%;
  background: rgba(200,180,160,0.3);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  filter: blur(2px);
  animation: ojf-veil 4s ease-in-out infinite;
}
.scn-orchard-juliet-feigns .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
@keyframes ojf-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ojf-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(1px); }
}
@keyframes ojf-tree {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(-2deg); }
}
@keyframes ojf-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-48%) rotate(2deg); }
  50% { transform: translateX(-50%) rotate(-2deg); }
  75% { transform: translateX(-52%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes ojf-veil {
  0% { transform: translateX(0) rotate(0deg); opacity: 0.3; }
  50% { transform: translateX(5px) rotate(5deg); opacity: 0.5; }
  100% { transform: translateX(-5px) rotate(-5deg); opacity: 0.3; }
}

.scn-orchard-paris-news {
  background: linear-gradient(180deg, #ffd0a0 0%, #ffb080 50%, #e08060 100%), radial-gradient(ellipse at 50% 0%, #ffe0c0 0%, transparent 40%);
}
.scn-orchard-paris-news .sky-warm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffc090 0%, #ffe0b0 100%);
  animation: opn-sky 15s ease-in-out infinite alternate;
}
.scn-orchard-paris-news .sun {
  position: absolute; top: 10%; left: 70%; width: 12%; height: 12%;
  background: radial-gradient(circle, #ffd080 0%, #ffb080 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255, 200, 100, 0.5);
  animation: opn-sun 8s ease-in-out infinite;
}
.scn-orchard-paris-news .cloud {
  position: absolute; top: 15%; left: 10%; width: 20%; height: 6%;
  background: rgba(255, 255, 255, 0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: opn-cloud 30s linear infinite;
}
.scn-orchard-paris-news .c1 {
  left: 10%;
  animation-duration: 30s;
}
.scn-orchard-paris-news .c2 {
  top: 20%;
  left: 50%;
  width: 15%;
  height: 4%;
  animation-duration: 40s;
  animation-delay: -10s;
}
.scn-orchard-paris-news .hills-warm {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a8a4a 0%, #4a6a3a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  animation: opn-hills 20s ease-in-out infinite alternate;
}
.scn-orchard-paris-news .tree-warm {
  position: absolute; bottom: 25%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  transform-origin: bottom center;
  animation: opn-tree 7s ease-in-out infinite;
}
.scn-orchard-paris-news .figure-warm {
  position: absolute; bottom: 20%; left: 50%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: opn-figure 5s ease-in-out infinite;
}
.scn-orchard-paris-news .flowers {
  position: absolute; bottom: 18%; left: 45%; width: 10%; height: 8%;
  background: radial-gradient(circle, #ff8060 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: opn-flowers 6s ease-in-out infinite;
}
@keyframes opn-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes opn-sun {
  0%, 100% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
}
@keyframes opn-cloud {
  0% { transform: translateX(-30vw); }
  100% { transform: translateX(130vw); }
}
@keyframes opn-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes opn-tree {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
}
@keyframes opn-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-48%) rotate(3deg); }
  50% { transform: translateX(-50%) rotate(-3deg); }
  75% { transform: translateX(-52%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes opn-flowers {
  0% { transform: scale(1) rotate(0deg); opacity: 0.6; }
  50% { transform: scale(1.2) rotate(10deg); opacity: 1; }
  100% { transform: scale(1) rotate(0deg); opacity: 0.6; }
}

.scn-orchard-nurse-interrupts { background: linear-gradient(135deg, #2a1a3a 0%, #1a0a2a 50%, #0a0520 100%), radial-gradient(ellipse at 30% 50%, #3a2a4a 0%, transparent 70%); }
.scn-orchard-nurse-interrupts .wall-left { position:absolute; top:0; left:0; width:30%; height:100%; background:linear-gradient(180deg,#1a1020 0%,#0a0810 100%); }
.scn-orchard-nurse-interrupts .window-frame { position:absolute; top:15%; left:35%; width:40%; height:60%; border:8px solid #4a3a2a; border-radius:4px; background:transparent; }
.scn-orchard-nurse-interrupts .sky-dawn { position:absolute; top:15%; left:35%; width:40%; height:60%; background:linear-gradient(180deg,#ffa060 0%,#ffd080 40%,#e0b070 100%); box-shadow:inset 0 0 30px rgba(255,160,96,0.3); animation:on-sky 12s ease-in-out infinite alternate; }
.scn-orchard-nurse-interrupts .figure-juliet { position:absolute; bottom:25%; left:45%; width:20px; height:50px; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:on-juliet 4s ease-in-out infinite; }
.scn-orchard-nurse-interrupts .figure-nurse { position:absolute; bottom:25%; left:30%; width:25px; 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:on-nurse 4s ease-in-out infinite reverse; }
.scn-orchard-nurse-interrupts .curtains { position:absolute; top:15%; left:35%; width:40%; height:60%; background:linear-gradient(90deg,#6a4a3a 0%,transparent 20%,transparent 80%,#6a4a3a 100%); opacity:0.6; animation:on-curtain 8s ease-in-out infinite alternate; }
.scn-orchard-nurse-interrupts .candle-glow { position:absolute; bottom:20%; left:55%; width:10px; height:20px; background:radial-gradient(circle,#ffd080 0%,#ffa060 50%,transparent 100%); border-radius:50%; box-shadow:0 0 30px 10px rgba(255,160,96,0.5); animation:on-glow 3s ease-in-out infinite alternate; }
@keyframes on-sky { 0%{filter:brightness(0.8)} 50%{filter:brightness(1)} 100%{filter:brightness(0.9)} }
@keyframes on-juliet { 0%{transform:translateX(0) translateY(0) rotate(-2deg)} 25%{transform:translateX(5px) translateY(-1px) rotate(1deg)} 50%{transform:translateX(10px) translateY(0) rotate(-2deg)} 75%{transform:translateX(15px) translateY(-1px) rotate(1deg)} 100%{transform:translateX(20px) translateY(0) rotate(0)} }
@keyframes on-nurse { 0%{transform:translateX(0) translateY(0) rotate(2deg)} 25%{transform:translateX(-3px) translateY(-1px) rotate(-1deg)} 50%{transform:translateX(-6px) translateY(0) rotate(2deg)} 75%{transform:translateX(-9px) translateY(-1px) rotate(-1deg)} 100%{transform:translateX(-12px) translateY(0) rotate(0)} }
@keyframes on-curtain { 0%{opacity:0.4} 50%{opacity:0.7} 100%{opacity:0.5} }
@keyframes on-glow { 0%{transform:scale(0.9);opacity:0.7} 50%{transform:scale(1.1);opacity:1} 100%{transform:scale(1);opacity:0.8} }

.scn-orchard-romeo-farewell { background: linear-gradient(180deg, #ffb060 0%, #ffd080 30%, #ffe0a0 70%, #e0c080 100%), radial-gradient(ellipse at 50% 0%, #ffd080 0%, transparent 60%); }
.scn-orchard-romeo-farewell .sky-dawn { position:absolute; top:0; left:0; width:100%; height:60%; background:linear-gradient(180deg,#ffc080 0%,#ffd0a0 40%,#ffe0b0 100%); animation:rf-sky 20s ease-in-out infinite alternate; }
.scn-orchard-romeo-farewell .horizon { position:absolute; bottom:40%; left:0; width:100%; height:5%; background:linear-gradient(180deg,#a08050 0%,#806040 100%); border-radius:50% 50% 0 0; }
.scn-orchard-romeo-farewell .balcony { position:absolute; bottom:35%; left:40%; width:30%; height:15%; background:linear-gradient(180deg,#6a4a3a 0%,#3a2a1a 100%); border-radius:10% 10% 0 0; border-top:4px solid #5a3a2a; }
.scn-orchard-romeo-farewell .figure-romeo { position:absolute; bottom:35%; left:42%; width:20px; height:45px; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:rf-romeo 6s ease-in-out infinite; }
.scn-orchard-romeo-farewell .figure-juliet { position:absolute; bottom:38%; left:50%; width:18px; height:40px; background:linear-gradient(180deg,#2a1a2a 0%,#1a0a1a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:rf-juliet 6s ease-in-out infinite reverse; }
.scn-orchard-romeo-farewell .tree-branch { position:absolute; top:20%; right:10%; width:60px; height:8px; background:linear-gradient(90deg,#4a3a2a 0%,#3a2a1a 100%); border-radius:4px; transform:rotate(-20deg); transform-origin:right center; animation:rf-branch 10s ease-in-out infinite alternate; }
.scn-orchard-romeo-farewell .birds { position:absolute; top:12%; left:20%; width:20px; height:10px; background:radial-gradient(circle,#2a2a2a 30%,transparent 30%) 0 0/10px 10px, radial-gradient(circle,#2a2a2a 30%,transparent 30%) 10px 0/10px 10px; animation:rf-birds 30s linear infinite; }
@keyframes rf-sky { 0%{filter:brightness(0.9)} 50%{filter:brightness(1.1)} 100%{filter:brightness(1)} }
@keyframes rf-romeo { 0%{transform:translateX(0) translateY(0) rotate(-3deg)} 25%{transform:translateX(5px) translateY(-2px) rotate(2deg)} 50%{transform:translateX(10px) translateY(0) rotate(-3deg)} 75%{transform:translateX(15px) translateY(-2px) rotate(2deg)} 100%{transform:translateX(20px) translateY(0) rotate(0)} }
@keyframes rf-juliet { 0%{transform:translateX(0) translateY(0) rotate(3deg)} 25%{transform:translateX(-4px) translateY(-2px) rotate(-2deg)} 50%{transform:translateX(-8px) translateY(0) rotate(3deg)} 75%{transform:translateX(-12px) translateY(-2px) rotate(-2deg)} 100%{transform:translateX(-16px) translateY(0) rotate(0)} }
@keyframes rf-branch { 0%{transform:rotate(-22deg)} 50%{transform:rotate(-18deg)} 100%{transform:rotate(-20deg)} }
@keyframes rf-birds { 0%{transform:translateX(-100px)} 100%{transform:translateX(100vw)} }

.scn-orchard-fortune-cry { background: linear-gradient(180deg, #1a0a2a 0%, #0a0520 50%, #050210 100%), radial-gradient(ellipse at 50% 60%, #2a1a3a 0%, transparent 70%); }
.scn-orchard-fortune-cry .interior-wall { position:absolute; top:0; left:0; width:100%; height:100%; background:linear-gradient(120deg,#0a0515 0%,#1a1020 50%,#0a0515 100%); }
.scn-orchard-fortune-cry .window-frame { position:absolute; top:20%; left:25%; width:50%; height:50%; border:6px solid #3a2a1a; border-radius:4px; background:transparent; box-shadow:inset 0 0 20px rgba(0,0,0,0.5); }
.scn-orchard-fortune-cry .sky-dawn { position:absolute; top:20%; left:25%; width:50%; height:50%; background:linear-gradient(180deg,#4a2a1a 0%,#8a5a3a 40%,#c08050 100%); filter:brightness(0.5); animation:fc-sky 15s ease-in-out infinite alternate; }
.scn-orchard-fortune-cry .figure-juliet { position:absolute; bottom:25%; left:40%; width:20px; height:50px; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:fc-juliet 5s ease-in-out infinite; }
.scn-orchard-fortune-cry .lamp { position:absolute; bottom:30%; left:55%; width:8px; height:25px; background:linear-gradient(180deg,#8a6a3a 0%,#5a3a1a 100%); border-radius:2px; }
.scn-orchard-fortune-cry .lamp-glow { position:absolute; bottom:28%; left:53%; width:40px; height:40px; background:radial-gradient(circle,#ffa060 0%,#ff8040 40%,transparent 70%); border-radius:50%; box-shadow:0 0 40px 15px rgba(255,128,64,0.4); animation:fc-glow 4s ease-in-out infinite alternate; }
.scn-orchard-fortune-cry .shadow { position:absolute; bottom:0; left:0; width:100%; height:30%; background:linear-gradient(180deg,transparent 0%,#050210 100%); animation:fc-shadow 8s ease-in-out infinite alternate; }
@keyframes fc-sky { 0%{filter:brightness(0.4)} 50%{filter:brightness(0.6)} 100%{filter:brightness(0.5)} }
@keyframes fc-juliet { 0%{transform:translateY(0) rotate(-2deg)} 25%{transform:translateY(-3px) rotate(1deg)} 50%{transform:translateY(0) rotate(-2deg)} 75%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes fc-glow { 0%{transform:scale(0.9);opacity:0.6} 50%{transform:scale(1.2);opacity:1} 100%{transform:scale(1);opacity:0.8} }
@keyframes fc-shadow { 0%{opacity:0.7} 50%{opacity:0.9} 100%{opacity:0.8} }

.scn-orchard-lady-capulet-consoles { background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 50%, #0a0520 100%), radial-gradient(ellipse at 50% 30%, #3a2a3a 0%, transparent 70%); }
.scn-orchard-lady-capulet-consoles .interior-wall { position:absolute; top:0; left:0; width:100%; height:100%; background:linear-gradient(90deg,#1a1020 0%,#0a0515 50%,#1a1020 100%); }
.scn-orchard-lady-capulet-consoles .window-frame { position:absolute; top:15%; left:20%; width:60%; height:50%; border:8px solid #4a3a2a; border-radius:4px; background:transparent; box-shadow:inset 0 0 30px rgba(0,0,0,0.6); }
.scn-orchard-lady-capulet-consoles .sky-dawn { position:absolute; top:15%; left:20%; width:60%; height:50%; background:linear-gradient(180deg,#5a3a2a 0%,#a07050 30%,#c08060 100%); filter:brightness(0.6); animation:lc-sky 12s ease-in-out infinite alternate; }
.scn-orchard-lady-capulet-consoles .figure-lady-capulet { position:absolute; bottom:20%; left:35%; width:22px; height:55px; background:linear-gradient(180deg,#2a1a2a 0%,#1a0a1a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:lc-lady 5s ease-in-out infinite; }
.scn-orchard-lady-capulet-consoles .figure-juliet-sitting { position:absolute; bottom:15%; left:50%; 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:lc-juliet 5s ease-in-out infinite reverse; }
.scn-orchard-lady-capulet-consoles .candle-stand { position:absolute; bottom:22%; left:60%; width:6px; height:30px; background:linear-gradient(180deg,#8a6a3a 0%,#5a3a1a 100%); border-radius:2px; transform:rotate(5deg); }
.scn-orchard-lady-capulet-consoles .candle-glow { position:absolute; bottom:22%; left:58%; width:30px; height:30px; background:radial-gradient(circle,#ffa060 0%,#ff8040 30%,transparent 60%); border-radius:50%; box-shadow:0 0 30px 10px rgba(255,128,64,0.4); animation:lc-glow 4s ease-in-out infinite alternate; }
@keyframes lc-sky { 0%{filter:brightness(0.5)} 50%{filter:brightness(0.7)} 100%{filter:brightness(0.6)} }
@keyframes lc-lady { 0%{transform:translateX(0) translateY(0) rotate(-2deg)} 25%{transform:translateX(3px) translateY(-2px) rotate(1deg)} 50%{transform:translateX(6px) translateY(0) rotate(-2deg)} 75%{transform:translateX(9px) translateY(-2px) rotate(1deg)} 100%{transform:translateX(12px) translateY(0) rotate(0)} }
@keyframes lc-juliet { 0%{transform:translateX(0) translateY(0) rotate(2deg)} 25%{transform:translateX(-2px) translateY(-3px) rotate(-1deg)} 50%{transform:translateX(-4px) translateY(0) rotate(2deg)} 75%{transform:translateX(-6px) translateY(-3px) rotate(-1deg)} 100%{transform:translateX(-8px) translateY(0) rotate(0)} }
@keyframes lc-glow { 0%{transform:scale(0.9);opacity:0.7} 50%{transform:scale(1.1);opacity:1} 100%{transform:scale(1);opacity:0.85} }

.scn-friar-cell-friar-lecture {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 40%, #1a0a1a 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, transparent 60%);
}
.scn-friar-cell-friar-lecture .window {
  position: absolute; top: 8%; left: 10%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #4a6a8a 0%, #2a3a5a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  box-shadow: inset 0 0 12px #8ab0d0, 0 0 8px rgba(74,106,138,.3);
  animation: fcL-window 6s ease-in-out infinite alternate;
}
.scn-friar-cell-friar-lecture .lectern {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: fcL-lectern 20s ease-in-out infinite;
}
.scn-friar-cell-friar-lecture .book-left,
.scn-friar-cell-friar-lecture .book-right {
  position: absolute; bottom: 32%; width: 35px; height: 30px;
  background: linear-gradient(135deg, #d4c4a0 0%, #b8a880 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-friar-cell-friar-lecture .book-left {
  left: calc(50% - 20px);
  transform: rotate(-8deg);
  animation: fcL-book 12s ease-in-out infinite alternate;
}
.scn-friar-cell-friar-lecture .book-right {
  left: calc(50% - 8px);
  transform: rotate(8deg);
  animation: fcL-book 12s ease-in-out infinite alternate-reverse;
}
.scn-friar-cell-friar-lecture .candle-body {
  position: absolute; bottom: 35%; left: 40%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #e0c070 0%, #c09840 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(192,152,64,.5);
}
.scn-friar-cell-friar-lecture .candle-flame {
  position: absolute; bottom: calc(35% + 25px); left: 40%; width: 12px; height: 20px;
  margin-left: -2px;
  background: radial-gradient(circle, #ffd060 0%, #ff8040 60%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 24px 6px #ff8040, 0 0 48px 12px rgba(255,128,64,.4);
  animation: fcL-flame 1.2s ease-in-out infinite alternate;
}
.scn-friar-cell-friar-lecture .friar-hand {
  position: absolute; bottom: 26%; left: 55%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: fcL-hand 6s ease-in-out infinite;
}
.scn-friar-cell-friar-lecture .friar-shadow {
  position: absolute; bottom: 20%; left: 60%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #1a0a1a 0%, transparent 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  opacity: .3;
  animation: fcL-shadow 15s ease-in-out infinite alternate;
}

@keyframes fcL-window {
  0% { opacity: .7; box-shadow: inset 0 0 8px #6a8aaa, 0 0 6px rgba(74,106,138,.2); }
  50% { opacity: 1; box-shadow: inset 0 0 16px #8ab0d0, 0 0 12px rgba(74,106,138,.5); }
  100% { opacity: .8; box-shadow: inset 0 0 10px #6a8aaa, 0 0 8px rgba(74,106,138,.3); }
}
@keyframes fcL-lectern {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); }
}
@keyframes fcL-book {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-1px); }
  100% { transform: rotate(-10deg) translateY(1px); }
}
@keyframes fcL-flame {
  0% { transform: scale(1,1) translateY(0); opacity: .9; }
  20% { transform: scale(1.1,0.8) translateY(-1px); }
  40% { transform: scale(0.9,1.2) translateY(1px); opacity: 1; }
  60% { transform: scale(1.05,0.9) translateY(-2px); }
  80% { transform: scale(0.95,1.1) translateY(0); }
  100% { transform: scale(1,1) translateY(1px); opacity: .85; }
}
@keyframes fcL-hand {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(5px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes fcL-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: .3; }
  50% { transform: translateX(8px) scaleX(1.1); opacity: .4; }
  100% { transform: translateX(0) scaleX(1); opacity: .25; }
}

.scn-friar-cell-friar-reproof {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 30%, #1a0a1a 100%),
              radial-gradient(ellipse at 30% 40%, #3a2a2a 0%, transparent 60%);
}
.scn-friar-cell-friar-reproof .window {
  position: absolute; top: 6%; right: 12%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #4a5a7a 0%, #2a3a5a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 0 14px #6a8aac, 0 0 10px rgba(74,90,122,.4);
  animation: fcR-window 8s ease-in-out infinite alternate;
}
.scn-friar-cell-friar-reproof .desk {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 35px;
  background: linear-gradient(180deg, #4a3222 0%, #2a1a0a 100%);
  border-radius: 10px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6);
  animation: fcR-desk 15s ease-in-out infinite;
}
.scn-friar-cell-friar-reproof .flask {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a8a5a 0%, #3a5a2a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: fcR-flask 5s ease-in-out infinite alternate;
}
.scn-friar-cell-friar-reproof .spark {
  position: absolute; bottom: 38%; left: 40%; width: 6px; height: 6px;
  background: #ffd080;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,208,128,.8);
  animation: fcR-spark 1.8s ease-in-out infinite;
}
.scn-friar-cell-friar-reproof .cross {
  position: absolute; top: 30%; left: 20%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: fcR-cross 12s ease-in-out infinite alternate;
}
.scn-friar-cell-friar-reproof .cross::after {
  content: '';
  position: absolute; top: 8px; left: -6px; width: 20px; height: 6px;
  background: inherit;
  border-radius: 2px;
}
.scn-friar-cell-friar-reproof .candle {
  position: absolute; bottom: 35%; right: 25%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #e0c070 0%, #c09840 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(192,152,64,.6);
}
.scn-friar-cell-friar-reproof .candle-glow {
  position: absolute; bottom: calc(35% + 28px); right: calc(25% - 2px); width: 14px; height: 22px;
  background: radial-gradient(circle, #ffd060 0%, #ff8040 60%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px #ff8040, 0 0 40px 12px rgba(255,128,64,.3);
  animation: fcR-flame 1.5s ease-in-out infinite alternate;
}
.scn-friar-cell-friar-reproof .friar-silhouette {
  position: absolute; bottom: 20%; left: 70%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #1a0a1a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  opacity: .6;
  animation: fcR-silhouette 14s ease-in-out infinite alternate;
}

@keyframes fcR-window {
  0% { opacity: .6; box-shadow: inset 0 0 10px #5a7a9a, 0 0 6px rgba(74,90,122,.2); }
  50% { opacity: .9; box-shadow: inset 0 0 18px #7a9aba, 0 0 14px rgba(74,90,122,.5); }
  100% { opacity: .7; box-shadow: inset 0 0 12px #5a7a9a, 0 0 8px rgba(74,90,122,.3); }
}
@keyframes fcR-desk {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes fcR-flask {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(2px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes fcR-spark {
  0% { transform: translate(0,0) scale(1); opacity: 1; }
  20% { transform: translate(15px, -10px) scale(1.3); }
  40% { transform: translate(5px, -20px) scale(0.8); opacity: .8; }
  60% { transform: translate(-10px, -5px) scale(1.2); }
  80% { transform: translate(-5px, 5px) scale(0.9); }
  100% { transform: translate(0, -15px) scale(1); opacity: .6; }
}
@keyframes fcR-cross {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(-2deg); }
}
@keyframes fcR-flame {
  0% { transform: scale(1,1) translateY(0); opacity: .85; }
  25% { transform: scale(1.1,0.8) translateY(-1px); }
  50% { transform: scale(0.9,1.2) translateY(1px); opacity: 1; }
  75% { transform: scale(1.05,0.9) translateY(-2px); }
  100% { transform: scale(1,1) translateY(0); opacity: .9; }
}
@keyframes fcR-silhouette {
  0% { transform: translateX(0) scaleX(1); opacity: .6; }
  50% { transform: translateX(-10px) scaleX(1.1); opacity: .7; }
  100% { transform: translateX(0) scaleX(1); opacity: .5; }
}

.scn-friar-cell-friar-counsel {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a1a 40%, #1a1a0a 100%),
              radial-gradient(ellipse at 70% 30%, #3a3a2a 0%, transparent 60%);
}
.scn-friar-cell-friar-counsel .window {
  position: absolute; top: 5%; left: 60%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #6a8a7a 0%, #3a5a4a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  box-shadow: inset 0 0 20px #8aaaaa, 0 0 16px rgba(106,138,122,.4);
  animation: fcC-window 7s ease-in-out infinite alternate;
}
.scn-friar-cell-friar-counsel .desk {
  position: absolute; bottom: 22%; left: 15%; right: 15%; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 12px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  animation: fcC-desk 18s ease-in-out infinite;
}
.scn-friar-cell-friar-counsel .rosary {
  position: absolute; bottom: 35%; left: 25%; width: 60px; height: 12px;
  background: linear-gradient(90deg, #b8a060 0%, #d0c080 30%, #b8a060 60%, #d0c080 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: fcC-rosary 15s ease-in-out infinite alternate;
}
.scn-friar-cell-friar-counsel .hand-bless {
  position: absolute; bottom: 28%; left: 50%; width: 28px; height: 35px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: fcC-hand 8s ease-in-out infinite;
}
.scn-friar-cell-friar-counsel .blessing-one,
.scn-friar-cell-friar-counsel .blessing-two {
  position: absolute; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,160,64,.6);
  animation: fcC-blessing 5s linear infinite;
}
.scn-friar-cell-friar-counsel .blessing-one {
  top: 10%; left: 30%;
  animation-delay: 0s;
}
.scn-friar-cell-friar-counsel .blessing-two {
  top: 15%; left: 55%;
  animation-delay: 2.5s;
}
.scn-friar-cell-friar-counsel .candle {
  position: absolute; bottom: 30%; right: 20%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #e0c070 0%, #c09840 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(192,152,64,.6);
  animation: fcC-candle-body 20s ease-in-out infinite;
}
.scn-friar-cell-friar-counsel .candle::before {
  content: '';
  position: absolute; top: -20px; left: -3px; width: 16px; height: 24px;
  background: radial-gradient(circle, #ffd060 0%, #ff8040 60%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 28px 8px #ff8040, 0 0 56px 16px rgba(255,128,64,.3);
  animation: fcC-flame 1.8s ease-in-out infinite alternate;
}
.scn-friar-cell-friar-counsel .book-closed {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 28px;
  background: linear-gradient(135deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: fcC-book 14s ease-in-out infinite alternate;
}

@keyframes fcC-window {
  0% { opacity: .7; box-shadow: inset 0 0 14px #7a9a8a, 0 0 10px rgba(106,138,122,.3); }
  50% { opacity: 1; box-shadow: inset 0 0 24px #9ababa, 0 0 20px rgba(106,138,122,.6); }
  100% { opacity: .8; box-shadow: inset 0 0 18px #7a9a8a, 0 0 12px rgba(106,138,122,.4); }
}
@keyframes fcC-desk {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.02); }
}
@keyframes fcC-rosary {
  0% { transform: rotate(-12deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-4px); }
  100% { transform: rotate(12deg) translateY(0); }
}
@keyframes fcC-hand {
  0% { transform: rotate(-10deg) scaleY(1); }
  30% { transform: rotate(-5deg) scaleY(1.1) translateY(-2px); }
  60% { transform: rotate(5deg) scaleY(0.95) translateY(0); }
  100% { transform: rotate(-10deg) scaleY(1); }
}
@keyframes fcC-blessing {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  50% { transform: translateY(80vh) scale(1.5); opacity: .6; }
  100% { transform: translateY(0) scale(1); opacity: 0; }
}
@keyframes fcC-candle-body {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes fcC-flame {
  0% { transform: scale(1,1) translateY(0); opacity: .9; }
  30% { transform: scale(1.15,0.8) translateY(-2px); }
  60% { transform: scale(0.9,1.2) translateY(1px); opacity: 1; }
  100% { transform: scale(1,1) translateY(-1px); opacity: .85; }
}
@keyframes fcC-book {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(2px); }
  100% { transform: rotate(-2deg) translateX(0); }
}

.scn-friar-cell-nurse-ring {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a0a 100%),
              radial-gradient(ellipse at 40% 50%, #5a3a2a 0%, transparent 60%);
}
.scn-friar-cell-nurse-ring .window {
  position: absolute; top: 10%; left: 10%; width: 40px; height: 55px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 0 18px #c09850, 0 0 12px rgba(138,106,74,.5);
  animation: fcN-window 9s ease-in-out infinite alternate;
}
.scn-friar-cell-nurse-ring .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%);
  border-radius: 14px;
  box-shadow: inset 0 6px 10px rgba(0,0,0,.5);
  animation: fcN-desk 20s ease-in-out infinite;
}
.scn-friar-cell-nurse-ring .ring {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #c09840 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 6px #ffd080, 0 0 48px 14px rgba(255,208,128,.5);
  animation: fcN-ring 4s ease-in-out infinite alternate;
}
.scn-friar-cell-nurse-ring .hand-holding {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: fcN-hand 10s ease-in-out infinite alternate;
}
.scn-friar-cell-nurse-ring .candle {
  position: absolute; bottom: 30%; right: 15%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #e0c070 0%, #c09840 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px rgba(192,152,64,.7);
  animation: fcN-candle-body 22s ease-in-out infinite;
}
.scn-friar-cell-nurse-ring .candle::before {
  content: '';
  position: absolute; top: -22px; left: -3px; width: 16px; height: 26px;
  background: radial-gradient(circle, #ffd060 0%, #ff8040 60%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 8px #ff8040, 0 0 60px 18px rgba(255,128,64,.4);
  animation: fcN-flame 1.6s ease-in-out infinite alternate;
}
.scn-friar-cell-nurse-ring .curtain {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 0 40% / 0 0 0 30%;
  box-shadow: inset -10px 0 20px rgba(0,0,0,.6);
  animation: fcN-curtain 25s ease-in-out infinite alternate;
}
.scn-friar-cell-nurse-ring .nurse-silhouette {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  opacity: .7;
  animation: fcN-nurse 12s ease-in-out infinite alternate;
}
.scn-friar-cell-nurse-ring .doorway {
  position: absolute; bottom: 0; left: 70%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.6);
  animation: fcN-door 30s ease-in-out infinite;
}

@keyframes fcN-window {
  0% { opacity: .7; box-shadow: inset 0 0 14px #a08050, 0 0 10px rgba(138,106,74,.3); }
  50% { opacity: 1; box-shadow: inset 0 0 24px #c09860, 0 0 18px rgba(138,106,74,.6); }
  100% { opacity: .85; box-shadow: inset 0 0 18px #a08050, 0 0 12px rgba(138,106,74,.4); }
}
@keyframes fcN-desk {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes fcN-ring {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 20px 4px #ffd080, 0 0 40px 10px rgba(255,208,128,.4); }
  50% { transform: translateX(-50%) scale(1.2); box-shadow: 0 0 32px 10px #ffe0a0, 0 0 64px 20px rgba(255,208,128,.7); }
  100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 24px 6px #ffd080, 0 0 48px 14px rgba(255,208,128,.5); }
}
@keyframes fcN-hand {
  0% { transform: translateX(-50%) rotate(-8deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(-4deg) scaleY(1.1) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(-8deg) scaleY(1); }
}
@keyframes fcN-candle-body {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes fcN-flame {
  0% { transform: scale(1,1) translateY(0); opacity: .9; }
  30% { transform: scale(1.1,0.8) translateY(-2px); }
  60% { transform: scale(0.9,1.2) translateY(1px); opacity: 1; }
  100% { transform: scale(1,1) translateY(-1px); opacity: .85; }
}
@keyframes fcN-curtain {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-10px) scaleX(1.05); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes fcN-nurse {
  0% { transform: translateX(0) scaleX(1); opacity: .7; }
  50% { transform: translateX(20px) scaleX(1.1); opacity: .8; }
  100% { transform: translateX(0) scaleX(1); opacity: .6; }
}
@keyframes fcN-door {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

.scn-item-torch { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 50%, #2a1a2a 100%), radial-gradient(ellipse at 50% 100%, #2a1a2a 0%, transparent 70%); }
.scn-item-torch .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, transparent 100%); animation: it-bg 12s ease-in-out infinite alternate; }
.scn-item-torch .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a1a 0%, #0a0a0a 100%); border-radius: 60% 40% 0 0 / 20% 30% 0 0; animation: it-ground 8s ease-in-out infinite; }
.scn-item-torch .figure { position:absolute; bottom:25%; left:45%; width:24px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: it-figure 5s ease-in-out infinite; }
.scn-item-torch .arm { position:absolute; bottom:38%; left:48%; width:20px; height:8px; background: #1a1a2a; border-radius: 0 0 50% 50%; transform: rotate(-20deg); transform-origin: right center; animation: it-arm 5s ease-in-out infinite; }
.scn-item-torch .torch-handle { position:absolute; bottom:50%; left:50%; width:6px; height:20px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 2px; transform: translateX(-50%); animation: it-handle 4s ease-in-out infinite; }
.scn-item-torch .flame { position:absolute; bottom:68%; left:50%; width:12px; height:18px; transform: translateX(-50%); background: radial-gradient(circle at 50% 100%, #ffd080 0%, #ff8030 40%, transparent 70%); border-radius: 50% 50% 20% 20%; animation: it-flame 0.5s ease-in-out infinite alternate; }
.scn-item-torch .glow { position:absolute; bottom:60%; left:50%; width:60px; height:60px; transform: translateX(-50%); background: radial-gradient(circle, #ff8030 0%, transparent 60%); filter: blur(10px); animation: it-glow 2s ease-in-out infinite alternate; }
@keyframes it-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes it-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(2px) } }
@keyframes it-figure { 0%,100% { transform: translateX(0) } 25% { transform: translateX(2px) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } }
@keyframes it-arm { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(-25deg) } }
@keyframes it-handle { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes it-flame { 0% { transform: translateX(-50%) scaleY(0.8); opacity:.8 } 50% { transform: translateX(-50%) scaleY(1.1); opacity:1 } 100% { transform: translateX(-50%) scaleY(0.9); opacity:.9 } }
@keyframes it-glow { 0% { opacity:.5; transform: translateX(-50%) scale(0.9) } 50% { opacity:.7; transform: translateX(-50%) scale(1.1) } 100% { opacity:.6; transform: translateX(-50%) scale(1) } }

.scn-queen-mab-speech { background: linear-gradient(180deg, #2a1a3a 0%, #4a2a5a 50%, #6a4a7a 100%), radial-gradient(ellipse at 70% 20%, #8a5a9a 0%, transparent 60%); }
.scn-queen-mab-speech .bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a4a 0%, transparent 100%); animation: qm-bg 15s ease-in-out infinite alternate; }
.scn-queen-mab-speech .moon { position:absolute; top:15%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #ffddaa 0%, #ffcc88 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,204,136,0.5); animation: qm-moon 20s linear infinite; }
.scn-queen-mab-speech .cloud { position:absolute; top:25%; left:-10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(8px); animation: qm-cloud 40s linear infinite; }
.scn-queen-mab-speech .chariot { position:absolute; top:30%; left:30%; width:30px; height:20px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 40% 40% 20% 20%; transform: rotate(10deg); animation: qm-chariot 6s ease-in-out infinite alternate; }
.scn-queen-mab-speech .queen { position:absolute; top:28%; left:35%; width:10px; height:15px; background: linear-gradient(180deg, #ffcc88 0%, #ffaa55 100%); border-radius: 50% 50% 30% 30%; animation: qm-queen 6s ease-in-out infinite alternate; }
.scn-queen-mab-speech .dust1 { position:absolute; top:35%; left:20%; width:4px; height:4px; background: #ffdd99; border-radius:50%; box-shadow: 0 0 6px 2px #ffdd99; animation: qm-dust 3s ease-in-out infinite alternate; }
.scn-queen-mab-speech .dust2 { position:absolute; top:40%; left:40%; width:3px; height:3px; background: #ffdd99; border-radius:50%; box-shadow: 0 0 4px 1px #ffdd99; animation: qm-dust 4s ease-in-out infinite alternate-reverse; }
@keyframes qm-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes qm-moon { 0% { transform: translate(0,0) } 50% { transform: translate(-5px,5px) } 100% { transform: translate(0,0) } }
@keyframes qm-cloud { 0% { transform: translateX(-100px) } 50% { transform: translateX(50vw) } 100% { transform: translateX(120vw) } }
@keyframes qm-chariot { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(15deg) translateX(5px) } 100% { transform: rotate(10deg) translateX(0) } }
@keyframes qm-queen { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes qm-dust { 0% { opacity:.3; transform: translateY(0) scale(0.8) } 50% { opacity:.8; transform: translateY(-10px) scale(1.2) } 100% { opacity:.4; transform: translateY(-5px) scale(0.9) } }

.scn-capulet-feast-welcome { background: linear-gradient(180deg, #f5e6c3 0%, #e8d5a0 50%, #c4a582 100%), radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 70%); }
.scn-capulet-feast-welcome .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%); animation: cf-bg 10s ease-in-out infinite; }
.scn-capulet-feast-welcome .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b08860 0%, #8a6a4a 100%); border-radius: 20% 20% 0 0; animation: cf-floor 6s ease-in-out infinite; }
.scn-capulet-feast-welcome .table { position:absolute; bottom:30%; left:10%; width:60%; height:15px; background: linear-gradient(180deg, #c4a070 0%, #a08050 100%); border-radius: 4px; transform: skewX(-10deg); animation: cf-table 8s ease-in-out infinite; }
.scn-capulet-feast-welcome .stool1 { position:absolute; bottom:28%; left:15%; width:10px; height:15px; background: #8a6a4a; border-radius: 2px; transform: rotate(5deg); animation: cf-stool1 5s ease-in-out infinite; }
.scn-capulet-feast-welcome .stool2 { position:absolute; bottom:30%; left:30%; width:10px; height:12px; background: #8a6a4a; border-radius: 2px; transform: rotate(-8deg); animation: cf-stool2 7s ease-in-out infinite; }
.scn-capulet-feast-welcome .cupboard { position:absolute; bottom:30%; right:10%; width:40px; height:60px; background: linear-gradient(180deg, #c4a070 0%, #a08050 100%); border-radius: 4px; border: 2px solid #8a6a4a; animation: cf-cupboard 12s ease-in-out infinite; }
.scn-capulet-feast-welcome .servant { position:absolute; bottom:28%; left:45%; width:14px; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: cf-servant 2s ease-in-out infinite; }
.scn-capulet-feast-welcome .pot { position:absolute; bottom:30%; left:55%; width:12px; height:14px; background: radial-gradient(circle at 50% 30%, #c8c8a0 0%, #707050 100%); border-radius: 40% 40% 30% 30%; animation: cf-pot 4s ease-in-out infinite; }
.scn-capulet-feast-welcome .plate { position:absolute; bottom:30%; left:20%; width:18px; height:6px; background: #e8d5a0; border-radius: 50%; animation: cf-plate 6s ease-in-out infinite; }
@keyframes cf-bg { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes cf-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes cf-table { 0%,100% { transform: skewX(-10deg) translateX(0) } 50% { transform: skewX(-8deg) translateX(2px) } }
@keyframes cf-stool1 { 0%,100% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(8deg) translateX(2px) } }
@keyframes cf-stool2 { 0%,100% { transform: rotate(-8deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(-1px) } }
@keyframes cf-cupboard { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes cf-servant { 0% { transform: translateY(0) } 25% { transform: translateX(5px) translateY(-1px) rotate(-2deg) } 50% { transform: translateX(10px) translateY(0) rotate(2deg) } 75% { transform: translateX(5px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) } }
@keyframes cf-pot { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes cf-plate { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) } }

.scn-romeo-sees-juliet { background: linear-gradient(180deg, #c8a070 0%, #d4b88a 50%, #e8c888 100%), radial-gradient(ellipse at 50% 50%, #f0d8a0 0%, transparent 70%); }
.scn-romeo-sees-juliet .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,220,160,0.2) 0%, transparent 100%); animation: rsj-bg 12s ease-in-out infinite alternate; }
.scn-romeo-sees-juliet .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; animation: rsj-floor 6s ease-in-out infinite; }
.scn-romeo-sees-juliet .pillar-left { position:absolute; bottom:20%; left:5%; width:12px; height:80%; background: linear-gradient(180deg, #b09870 0%, #908060 100%); border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.1); animation: rsj-pillar 10s ease-in-out infinite; }
.scn-romeo-sees-juliet .pillar-right { position:absolute; bottom:20%; right:5%; width:12px; height:80%; background: linear-gradient(180deg, #b09870 0%, #908060 100%); border-radius: 4px; box-shadow: -2px 0 6px rgba(0,0,0,0.1); animation: rsj-pillar 10s ease-in-out infinite 2s; }
.scn-romeo-sees-juliet .juliet { position:absolute; bottom:30%; left:50%; width:20px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #f0d0a0 0%, #d0b090 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 8px rgba(240,200,150,0.6); animation: rsj-juliet 5s ease-in-out infinite; }
.scn-romeo-sees-juliet .romeo { position:absolute; bottom:28%; left:38%; width:16px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: rsj-romeo 8s ease-in-out infinite; }
.scn-romeo-sees-juliet .torch1 { position:absolute; bottom:35%; left:25%; width:8px; height:20px; background: linear-gradient(180deg, #6a4a1a 0%, #4a2a0a 100%); border-radius: 2px; animation: rsj-torch1 4s ease-in-out infinite; }
.scn-romeo-sees-juliet .torch2 { position:absolute; bottom:35%; right:25%; width:8px; height:20px; background: linear-gradient(180deg, #6a4a1a 0%, #4a2a0a 100%); border-radius: 2px; animation: rsj-torch2 5s ease-in-out infinite; }
.scn-romeo-sees-juliet .halo { position:absolute; bottom:30%; left:50%; width:80px; height:80px; transform: translateX(-50%); background: radial-gradient(circle, rgba(240,200,150,0.4) 0%, transparent 70%); filter: blur(12px); animation: rsj-halo 3s ease-in-out infinite alternate; }
@keyframes rsj-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rsj-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(1px) } }
@keyframes rsj-pillar { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } }
@keyframes rsj-juliet { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) translateY(-2px) } }
@keyframes rsj-romeo { 0% { transform: translateX(0) } 25% { transform: translateX(3px) rotate(2deg) } 75% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) } }
@keyframes rsj-torch1 { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } }
@keyframes rsj-torch2 { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.9) } }
@keyframes rsj-halo { 0% { opacity:.4; transform: translateX(-50%) scale(0.9) } 50% { opacity:.55; transform: translateX(-50%) scale(1) } 100% { opacity:.7; transform: translateX(-50%) scale(1.1) } }

/* Street Wild Goose Chase */
.scn-street-wild-goose-chase { background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 60%, #CD853F 100%), radial-gradient(ellipse at 50% 100%, #CD853F 0%, transparent 70%); position: relative; width: 100%; height: 100vh; overflow: hidden; }
.scn-street-wild-goose-chase .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #B0E0E6 0%, transparent 100%); }
.scn-street-wild-goose-chase .sun { position: absolute; top: 8%; right: 15%; width: 70px; height: 70px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 40%, #FFA500 70%, transparent 85%); border-radius: 50%; animation: sun-wgc 8s ease-in-out infinite alternate; }
.scn-street-wild-goose-chase .cloud { position: absolute; background: rgba(255, 255, 255, 0.7); border-radius: 50%; filter: blur(6px); animation: drift-wgc 25s linear infinite; }
.scn-street-wild-goose-chase .cloud-a { top: 15%; left: 10%; width: 100px; height: 25px; animation-duration: 30s; }
.scn-street-wild-goose-chase .cloud-b { top: 25%; right: 5%; width: 80px; height: 20px; animation-duration: 40s; animation-direction: reverse; }
.scn-street-wild-goose-chase .bg-buildings { position: absolute; bottom: 30%; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #8B7355 0%, #6B5B45 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,0.3); }
.scn-street-wild-goose-chase .goose { position: absolute; bottom: 32%; left: 45%; width: 35px; height: 25px; background: #FFF; border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%; animation: waddle-wgc 1.2s ease-in-out infinite; z-index: 2; }
.scn-street-wild-goose-chase .figure-a { position: absolute; bottom: 30%; left: 20%; width: 25px; height: 60px; background: linear-gradient(180deg, #4682B4 0%, #2F4F4F 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: run-wgc 0.9s ease-in-out infinite; z-index: 1; }
.scn-street-wild-goose-chase .figure-b { position: absolute; bottom: 30%; left: 8%; width: 25px; height: 55px; background: linear-gradient(180deg, #CD853F 0%, #8B4513 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: run-wgc 0.9s ease-in-out infinite 0.45s; z-index: 1; }
.scn-street-wild-goose-chase .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 32%; background: linear-gradient(180deg, #A0522D 0%, #8B4513 10%, #6B3A2A 100%); }
@keyframes sun-wgc { 0% { transform: translateY(0) scale(1); opacity: 0.9; } 50% { transform: translateY(-5px) scale(1.05); opacity: 1; } 100% { transform: translateY(3px) scale(0.95); opacity: 0.85; } }
@keyframes drift-wgc { 0% { transform: translateX(-120px); } 50% { transform: translateX(50vw); } 100% { transform: translateX(120vw); } }
@keyframes waddle-wgc { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-5deg); } 50% { transform: translateX(10px) rotate(0deg); } 75% { transform: translateX(15px) rotate(5deg); } 100% { transform: translateX(20px) rotate(0deg); } }
@keyframes run-wgc { 0% { transform: translateX(0) translateY(0) rotate(-3deg) scaleY(1); } 25% { transform: translateX(10px) translateY(-5px) rotate(2deg) scaleY(1.1); } 50% { transform: translateX(20px) translateY(0) rotate(-2deg) scaleY(1); } 75% { transform: translateX(30px) translateY(-3px) rotate(3deg) scaleY(1.05); } 100% { transform: translateX(40px) translateY(0) rotate(0deg) scaleY(1); } }

/* Street Goose Jest Continued */
.scn-street-goose-jest-continued { background: linear-gradient(180deg, #87CEEB 0%, #F5DEB3 80%, #D2B48C 100%), radial-gradient(ellipse at 50% 100%, #F5DEB3 0%, transparent 60%); position: relative; width: 100%; height: 100vh; overflow: hidden; }
.scn-street-goose-jest-continued .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #B0E0E6 0%, transparent 100%); }
.scn-street-goose-jest-continued .wall-bg { position: absolute; bottom: 20%; left: 10%; right: 10%; top: 20%; background: linear-gradient(90deg, #D2B48C 0%, #DEB887 50%, #D2B48C 100%); border-radius: 15px; box-shadow: inset 0 0 30px rgba(0,0,0,0.1); }
.scn-street-goose-jest-continued .mercutio { position: absolute; bottom: 20%; left: 25%; width: 45px; height: 90px; background: linear-gradient(180deg, #B8860B 0%, #8B6508 50%, #5C4400 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: gesture-gjc 2.5s ease-in-out infinite; z-index: 2; }
.scn-street-goose-jest-continued .benvolio { position: absolute; bottom: 20%; right: 20%; width: 45px; height: 80px; background: linear-gradient(180deg, #6495ED 0%, #4169E1 50%, #1E3A8A 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: laugh-gjc 3s ease-in-out infinite; z-index: 2; }
.scn-street-goose-jest-continued .goose { position: absolute; bottom: 25%; left: 48%; width: 30px; height: 20px; background: #FFF; border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%; animation: look-up-gjc 1.8s ease-in-out infinite; z-index: 3; }
.scn-street-goose-jest-continued .shadow-sharp { position: absolute; bottom: 20%; left: 15%; right: 15%; height: 8px; background: rgba(0, 0, 0, 0.25); filter: blur(3px); border-radius: 50%; }
.scn-street-goose-jest-continued .vine-leaves { position: absolute; top: 12%; left: 5%; right: 5%; height: 25%; background: radial-gradient(ellipse at 50% 100%, #556B2F 0%, #6B8E23 40%, transparent 70%); filter: blur(1px); animation: sway-gjc 7s ease-in-out infinite; }
@keyframes gesture-gjc { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 25% { transform: translateX(5px) translateY(-3px) rotate(5deg); } 50% { transform: translateX(10px) translateY(0) rotate(10deg); } 75% { transform: translateX(5px) translateY(-2px) rotate(5deg); } 100% { transform: translateX(0) translateY(0) rotate(-5deg); } }
@keyframes laugh-gjc { 0% { transform: translateX(0) translateY(0) rotate(0deg) scaleY(1); } 30% { transform: translateX(-5px) translateY(-8px) rotate(-5deg) scaleY(0.9); } 60% { transform: translateX(5px) translateY(-2px) rotate(5deg) scaleY(1.1); } 100% { transform: translateX(0) translateY(0) rotate(0deg) scaleY(1); } }
@keyframes look-up-gjc { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(5px) translateY(-5px) rotate(-15deg); } 60% { transform: translateX(-5px) translateY(-2px) rotate(15deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sway-gjc { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(15px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* Street Mercutio Stops */
.scn-street-mercutio-stops { background: linear-gradient(180deg, #B0E0E6 0%, #F0E68C 50%, #D2B48C 100%), radial-gradient(ellipse at 50% 100%, #D2B48C 0%, transparent 70%); position: relative; width: 100%; height: 100vh; overflow: hidden; }
.scn-street-mercutio-stops .sky { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #87CEEB 0%, transparent 100%); }
.scn-street-mercutio-stops .ground-perspective { position: absolute; bottom: 0; left: -15%; right: -15%; height: 40%; background: linear-gradient(180deg, #C4A882 0%, #8B7355 20%, #6B5B45 100%); transform: perspective(500px) rotateX(60deg); transform-origin: bottom center; }
.scn-street-mercutio-stops .mercutio-hand { position: absolute; bottom: 38%; left: 38%; width: 20px; height: 40px; background: #B8860B; border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: hand-stop-mst 1.2s ease-in-out infinite; z-index: 3; }
.scn-street-mercutio-stops .benvolio-skid { position: absolute; bottom: 30%; right: 25%; width: 40px; height: 75px; background: linear-gradient(180deg, #6495ED 0%, #4169E1 50%, #1E3A8A 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: skid-mst 0.9s ease-in-out infinite; z-index: 2; }
.scn-street-mercutio-stops .goose-flap { position: absolute; bottom: 35%; left: 52%; width: 35px; height: 20px; background: #FFF; border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%; animation: flap-mst 0.4s ease-in-out infinite; z-index: 4; }
.scn-street-mercutio-stops .dust-puff { position: absolute; bottom: 30%; right: 35%; width: 30px; height: 15px; background: rgba(210, 180, 140, 0.7); border-radius: 50%; filter: blur(5px); animation: dust-mst 1.5s ease-in-out infinite; z-index: 1; }
@keyframes hand-stop-mst { 0% { transform: translateX(0) translateY(0) rotate(-10deg) scaleY(1); } 50% { transform: translateX(-5px) translateY(-5px) rotate(30deg) scaleY(1.2); } 100% { transform: translateX(0) translateY(0) rotate(-10deg) scaleY(1); } }
@keyframes skid-mst { 0% { transform: translateX(0) translateY(0) rotate(5deg) skewX(0deg); } 25% { transform: translateX(-10px) translateY(-2px) rotate(-5deg) skewX(10deg); } 50% { transform: translateX(-20px) translateY(0) rotate(0deg) skewX(0deg); } 75% { transform: translateX(-10px) translateY(-1px) rotate(5deg) skewX(-5deg); } 100% { transform: translateX(0) translateY(0) rotate(5deg) skewX(0deg); } }
@keyframes flap-mst { 0% { transform: translateX(0) translateY(0) scaleY(1); } 25% { transform: translateX(5px) translateY(-10px) scaleY(1.5); } 50% { transform: translateX(10px) translateY(0) scaleY(1); } 75% { transform: translateX(15px) translateY(-8px) scaleY(1.3); } 100% { transform: translateX(20px) translateY(0) scaleY(1); } }
@keyframes dust-mst { 0% { transform: scale(1) translateX(0); opacity: 0.6; } 50% { transform: scale(2) translateX(-15px); opacity: 0; } 100% { transform: scale(1) translateX(0); opacity: 0.6; } }

/* Street Nurse Arrival */
.scn-street-nurse-arrival { background: linear-gradient(180deg, #87CEEB 0%, #F5DEB3 100%), radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 70%); position: relative; width: 100%; height: 100vh; overflow: hidden; }
.scn-street-nurse-arrival .arch-frame { position: absolute; inset: 5% 20%; border: 25px solid #8B7355; border-radius: 50% 50% 0 0 / 40% 40% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,0.4), 0 0 20px rgba(0,0,0,0.2); background: transparent; z-index: 5; }
.scn-street-nurse-arrival .courtyard-sun { position: absolute; inset: 5% 20%; background: radial-gradient(ellipse at 50% 30%, #FFF8DC 0%, #F5DEB3 50%, #E0C9A0 100%); z-index: 1; }
.scn-street-nurse-arrival .nurse-skirt { position: absolute; bottom: 15%; left: 35%; width: 80px; height: 100px; background: linear-gradient(180deg, #8B7D6B 0%, #5C4A3A 50%, #3A2A1A 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; animation: enter-nar 5s ease-in-out infinite; z-index: 3; }
.scn-street-nurse-arrival .nurse-fan { position: absolute; bottom: 65%; left: 48%; width: 25px; height: 30px; background: radial-gradient(circle at 50% 50%, #FFF 0%, #E0E0E0 40%, #C0C0C0 100%); border-radius: 50%; transform-origin: bottom center; animation: fan-nar 0.6s linear infinite; z-index: 4; }
.scn-street-nurse-arrival .peter-figure { position: absolute; bottom: 20%; right: 25%; width: 30px; height: 60px; background: linear-gradient(180deg, #A0522D 0%, #6B3A2A 50%, #4A2010 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: peter-shift-nar 4s ease-in-out infinite; z-index: 2; }
.scn-street-nurse-arrival .nurse-veil { position: absolute; bottom: 78%; left: 38%; width: 40px; height: 25px; background: rgba(255, 255, 255, 0.8); border-radius: 50% 50% 0 0 / 80% 80% 0 0; animation: veil-float-nar 2.5s ease-in-out infinite; z-index: 4; }
.scn-street-nurse-arrival .sunbeam-dust { position: absolute; inset: 5% 20%; background: radial-gradient(ellipse at 50% 0%, rgba(255,255,255,0.5) 0%, transparent 60%); filter: blur(3px); animation: dust-nar 6s ease-in-out infinite alternate; z-index: 2; }
.scn-street-nurse-arrival .cast-shadow { position: absolute; bottom: 15%; left: 30%; right: 30%; height: 15px; background: rgba(0, 0, 0, 0.3); border-radius: 50%; filter: blur(6px); animation: shadow-nar 5s ease-in-out infinite; z-index: 1; }
@keyframes enter-nar { 0% { transform: translateX(-30px) scale(0.95); opacity: 0.8; } 25% { transform: translateX(0) scale(1); opacity: 1; } 75% { transform: translateX(5px) scale(1); opacity: 1; } 100% { transform: translateX(-30px) scale(0.95); opacity: 0.8; } }
@keyframes fan-nar { 0% { transform: rotate(-20deg) scaleY(1); } 25% { transform: rotate(-10deg) scaleY(1.1); } 50% { transform: rotate(10deg) scaleY(1); } 75% { transform: rotate(20deg) scaleY(1.1); } 100% { transform: rotate(-20deg) scaleY(1); } }
@keyframes peter-shift-nar { 0% { transform: translateX(0) translateY(0); } 33% { transform: translateX(-5px) translateY(-3px); } 66% { transform: translateX(5px) translateY(2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes veil-float-nar { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(8px) translateY(-5px) rotate(5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes dust-nar { 0% { opacity: 0.3; } 50% { opacity: 0.8; } 100% { opacity: 0.3; } }
@keyframes shadow-nar { 0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.2); opacity: 0.8; } 100% { transform: scaleX(1); opacity: 0.5; } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.drop { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-romeo-buys-poison { background: linear-gradient(180deg, #1a1208 0%, #0d0a04 100%), radial-gradient(ellipse at 50% 40%, #2a1a08 0%, transparent 80%); }
.scn-romeo-buys-poison .bg-shop { position:absolute; inset:0; background: linear-gradient(180deg, #1a1208 0%, #0d0a04 100%); animation: rbp-shop 12s ease-in-out infinite alternate; }
.scn-romeo-buys-poison .counter { position:absolute; bottom:20%; left:5%; right:5%; height:15px; background: linear-gradient(90deg, #3a2010, #2a1808, #3a2010); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.6); }
.scn-romeo-buys-poison .apothecary { position:absolute; bottom:25%; left:70%; width:35px; height:80px; background: linear-gradient(180deg, #1a1208 0%, #0d0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: rbp-apoth 6s ease-in-out infinite; }
.scn-romeo-buys-poison .romeo { position:absolute; bottom:20%; left:30%; width:40px; height:75px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: rbp-romeo 4s ease-in-out infinite; }
.scn-romeo-buys-poison .lamp { position:absolute; bottom:45%; left:20%; width:12px; height:18px; background: radial-gradient(circle, #ffd070 0%, #b08030 100%); border-radius: 50%; box-shadow: 0 0 30px 8px #ffd070, 0 0 60px 15px rgba(255,208,112,.3); animation: rbp-lamp 2s ease-in-out infinite alternate; }
.scn-romeo-buys-poison .bottle { position:absolute; bottom:30%; left:45%; width:10px; height:20px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 8px 2px rgba(255,200,100,.2); animation: rbp-bottle 8s ease-in-out infinite; }
.scn-romeo-buys-poison .shelf { position:absolute; bottom:40%; left:10%; right:30%; height:4px; background: #3a2010; border-radius:2px; animation: rbp-shelf 10s linear infinite; }
@keyframes rbp-shop { 0% { opacity:.85 } 50% { opacity:.95 } 100% { opacity:.9 } }
@keyframes rbp-apoth { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rbp-romeo { 0% { transform: translateX(0) } 50% { transform: translateX(5px) translateY(-1px) } 100% { transform: translateX(0) } }
@keyframes rbp-lamp { 0% { box-shadow: 0 0 20px 6px #ffd070, 0 0 40px 10px rgba(255,208,112,.2); opacity:.9 } 50% { box-shadow: 0 0 35px 10px #ffd070, 0 0 70px 20px rgba(255,208,112,.4); opacity:1 } 100% { box-shadow: 0 0 25px 7px #ffd070, 0 0 50px 15px rgba(255,208,112,.3); opacity:.95 } }
@keyframes rbp-bottle { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rbp-shelf { 0% { transform: scaleX(1) } 50% { transform: scaleX(.95) } 100% { transform: scaleX(1) } }

.scn-prince-reconciles {
  background:
    linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 40%, #5a4a3a 80%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 0%, #ffaa55 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}

.scn-prince-reconciles .vault-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #2a1a2a 0%, #3a2a3a 50%, #1a1a1a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  animation: pr-vault-pulse 20s ease-in-out infinite alternate;
}

.scn-prince-reconciles .dawn-light {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffcc77 0%, #ff8844 40%, transparent 100%);
  opacity: 0.6;
  animation: pr-dawn 15s ease-in-out infinite alternate;
}

.scn-prince-reconciles .figure-left {
  position: absolute;
  bottom: 25%;
  left: 20%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pr-figure-left 8s ease-in-out infinite alternate;
}

.scn-prince-reconciles .figure-right {
  position: absolute;
  bottom: 25%;
  right: 20%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pr-figure-right 8s ease-in-out infinite alternate;
}

.scn-prince-reconciles .central-glow {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 80px;
  height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffddaa 0%, #ffaa55 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffaa55, 0 0 120px 40px rgba(255,170,85,0.3);
  animation: pr-glow 5s ease-in-out infinite alternate;
}

.scn-prince-reconciles .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: pr-floor 25s ease-in-out infinite alternate;
}

@keyframes pr-vault-pulse {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 0.95; transform: scale(1.02); }
  100% { opacity: 0.9; transform: scale(1); }
}

@keyframes pr-dawn {
  0% { opacity: 0.5; background-position: 0% 0%; }
  50% { opacity: 0.7; background-position: 50% 0%; }
  100% { opacity: 0.6; background-position: 100% 0%; }
}

@keyframes pr-figure-left {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(10px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg); }
}

@keyframes pr-figure-right {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-10px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(-20px) translateY(0) rotate(0deg); }
}

@keyframes pr-glow {
  0% { opacity: 0.7; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.8; transform: translateX(-50%) scale(1); }
}

@keyframes pr-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}

.scn-friar-proposes-potion { background: linear-gradient(180deg, #b89a6a 0%, #9a7a4a 40%, #7a5a2a 100%), radial-gradient(ellipse at 80% 20%, #d4c090 0%, transparent 70%); position:relative; overflow:hidden; }
.scn-friar-proposes-potion .wall { position:absolute; inset:0; background: linear-gradient(135deg, #8a6a3a 0%, #6a4a1a 100%); }
.scn-friar-proposes-potion .window-light { position:absolute; top:10%; left:20%; width:40%; height:50%; background: radial-gradient(ellipse, rgba(255,230,180,0.3) 0%, rgba(255,200,120,0.1) 60%, transparent 100%); animation: fp-window 8s ease-in-out infinite alternate; }
.scn-friar-proposes-potion .table { position:absolute; bottom:20%; left:5%; right:30%; height:10%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 4px; box-shadow: 0 8px 12px rgba(0,0,0,0.5); }
.scn-friar-proposes-potion .friar-hand { position:absolute; bottom:25%; left:35%; width:25%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 30% 50% 50% / 60% 50% 40% 40%; transform-origin: bottom left; animation: fp-hand 4s ease-in-out infinite; }
.scn-friar-proposes-potion .vial { position:absolute; bottom:30%; left:50%; width:12px; height:30px; background: linear-gradient(180deg, rgba(180,220,160,0.8) 0%, rgba(100,180,100,0.6) 50%, rgba(80,140,80,0.4) 100%); border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%; box-shadow: 0 0 20px 6px rgba(120,200,120,0.5), 0 0 40px 12px rgba(80,160,80,0.2); animation: fp-vial 3s ease-in-out infinite alternate; }
.scn-friar-proposes-potion .juliet-silhouette { position:absolute; bottom:18%; right:10%; width:20%; height:60%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 40% 50% 50% / 60% 50% 40% 50%; transform-origin: bottom center; animation: fp-juliet 5s ease-in-out infinite; }
.scn-friar-proposes-potion .shadow-stripe { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%); }
@keyframes fp-window { 0% { opacity:0.6; transform:scale(1) } 50% { opacity:1; transform:scale(1.05) } 100% { opacity:0.7; transform:scale(0.95) } }
@keyframes fp-hand { 0% { transform: translate(0,0) rotate(-5deg) } 25% { transform: translate(8px,-4px) rotate(2deg) } 50% { transform: translate(0,0) rotate(-2deg) } 75% { transform: translate(-8px,-2px) rotate(4deg) } 100% { transform: translate(0,0) rotate(-5deg) } }
@keyframes fp-vial { 0% { opacity:0.8; transform: rotate(-10deg) } 50% { opacity:1; transform: rotate(0deg) } 100% { opacity:0.9; transform: rotate(10deg) } }
@keyframes fp-juliet { 0%,100% { transform: translateX(0) translateY(0) scaleX(1) } 25% { transform: translateX(-8px) translateY(-2px) scaleX(0.95) } 50% { transform: translateX(0) translateY(0) scaleX(1) } 75% { transform: translateX(8px) translateY(-1px) scaleX(0.95) } }

.scn-friar-gives-potion { background: linear-gradient(180deg, #b89a6a 0%, #9a7a4a 40%, #7a5a2a 100%), radial-gradient(ellipse at 20% 20%, #d4c090 0%, transparent 70%); position:relative; overflow:hidden; }
.scn-friar-gives-potion .wall { position:absolute; inset:0; background: linear-gradient(135deg, #7a5a2a 0%, #5a3a1a 100%); }
.scn-friar-gives-potion .window-light { position:absolute; top:10%; left:20%; width:40%; height:50%; background: radial-gradient(ellipse, rgba(255,230,180,0.3) 0%, rgba(255,200,120,0.1) 60%, transparent 100%); animation: fg-window 8s ease-in-out infinite alternate; }
.scn-friar-gives-potion .table { position:absolute; bottom:20%; left:10%; right:30%; height:10%; background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 8px 12px rgba(0,0,0,0.5); }
.scn-friar-gives-potion .friar-hand { position:absolute; bottom:25%; left:30%; width:25%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 30% 50% 50% / 60% 50% 40% 40%; transform-origin: bottom left; animation: fg-hand 4s ease-in-out infinite; }
.scn-friar-gives-potion .vial-glow { position:absolute; bottom:32%; left:48%; width:14px; height:28px; background: linear-gradient(180deg, #a0e0a0 0%, #60b060 50%, #308030 100%); border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%; box-shadow: 0 0 30px 12px rgba(100,220,100,0.6), 0 0 60px 24px rgba(60,160,60,0.3); animation: fg-vialglow 2s ease-in-out infinite alternate; }
.scn-friar-gives-potion .juliet-hand-reach { position:absolute; bottom:22%; right:20%; width:18%; height:35%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 40% 50% 40% / 60% 50% 40% 50%; transform-origin: bottom right; animation: fg-jhand 4.5s ease-in-out infinite; }
.scn-friar-gives-potion .shadow-stripe { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, rgba(0,0,0,0.7) 0%, transparent 100%); }
@keyframes fg-window { 0% { opacity:0.6; transform:scale(1) } 50% { opacity:1; transform:scale(1.03) } 100% { opacity:0.7; transform:scale(0.97) } }
@keyframes fg-hand { 0% { transform: translate(0,0) rotate(-5deg) } 30% { transform: translate(12px,-2px) rotate(0deg) } 60% { transform: translate(0,0) rotate(2deg) } 100% { transform: translate(-8px,-1px) rotate(-3deg) } }
@keyframes fg-vialglow { 0% { box-shadow: 0 0 20px 8px rgba(100,220,100,0.4); opacity:0.8 } 50% { box-shadow: 0 0 40px 16px rgba(100,220,100,0.7); opacity:1 } 100% { box-shadow: 0 0 20px 8px rgba(100,220,100,0.4); opacity:0.8 } }
@keyframes fg-jhand { 0% { transform: translate(0,0) rotate(5deg) } 25% { transform: translate(-10px,2px) rotate(0deg) } 50% { transform: translate(0,0) rotate(-2deg) } 75% { transform: translate(-5px,-1px) rotate(3deg) } 100% { transform: translate(0,0) rotate(5deg) } }

.scn-juliet-takes-potion { background: linear-gradient(180deg, #b89a6a 0%, #9a7a4a 40%, #7a5a2a 100%), radial-gradient(ellipse at 60% 80%, #d4c090 0%, transparent 70%); position:relative; overflow:hidden; }
.scn-juliet-takes-potion .wall { position:absolute; inset:0; background: linear-gradient(135deg, #6a4a2a 0%, #4a2a0a 100%); }
.scn-juliet-takes-potion .window-light { position:absolute; top:10%; left:10%; width:30%; height:40%; background: radial-gradient(ellipse, rgba(255,230,180,0.35) 0%, rgba(255,200,120,0.15) 60%, transparent 100%); animation: jt-window 10s ease-in-out infinite alternate; }
.scn-juliet-takes-potion .bed { position:absolute; bottom:15%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 20px 20px 0 0; box-shadow: 0 -6px 10px rgba(0,0,0,0.4); }
.scn-juliet-takes-potion .juliet-arm { position:absolute; bottom:25%; left:35%; width:20%; height:45%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 30% 50% 40% / 50% 40% 50% 40%; transform-origin: bottom center; animation: jt-arm 5s ease-in-out infinite; }
.scn-juliet-takes-potion .vial-tilt { position:absolute; bottom:38%; left:45%; width:12px; height:26px; background: linear-gradient(180deg, #a0e0a0 0%, #60b060 50%, #308030 100%); border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%; box-shadow: 0 0 25px 10px rgba(100,220,100,0.5); animation: jt-vial 3s ease-in-out infinite alternate; }
.scn-juliet-takes-potion .drip { position:absolute; bottom:35%; left:48%; width:4px; height:8px; background: rgba(120,200,120,0.8); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(120,200,120,0.6); animation: jt-drip 2.5s ease-in-out infinite; }
.scn-juliet-takes-potion .shadow-curtain { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, rgba(0,0,0,0.5) 0%, transparent 100%); }
@keyframes jt-window { 0% { opacity:0.5; transform:scale(1) } 50% { opacity:0.9; transform:scale(1.02) } 100% { opacity:0.6; transform:scale(0.98) } }
@keyframes jt-arm { 0% { transform: translate(0,0) rotate(5deg) } 20% { transform: translate(10px, -5px) rotate(-10deg) } 40% { transform: translate(0,0) rotate(0deg) } 60% { transform: translate(-5px, -2px) rotate(8deg) } 100% { transform: translate(0,0) rotate(5deg) } }
@keyframes jt-vial { 0% { transform: rotate(-15deg) translate(0,0) } 50% { transform: rotate(0deg) translate(0, -2px) } 100% { transform: rotate(15deg) translate(0,0) } }
@keyframes jt-drip { 0%,100% { opacity:0; transform: translateY(0) } 30% { opacity:1; transform: translateY(0) } 70% { opacity:0.8; transform: translateY(12px) scaleX(0.5) } }

.scn-juliet-false-repentance { background: linear-gradient(180deg, #c8b890 0%, #a88860 40%, #886840 100%), radial-gradient(ellipse at 50% 30%, #e0d0b0 0%, transparent 70%); position:relative; overflow:hidden; }
.scn-juliet-false-repentance .wall { position:absolute; inset:0; background: linear-gradient(135deg, #a88860 0%, #886840 100%); }
.scn-juliet-false-repentance .window-light.soft { position:absolute; top:5%; left:15%; width:50%; height:60%; background: radial-gradient(ellipse, rgba(255,240,200,0.25) 0%, rgba(255,220,160,0.08) 60%, transparent 100%); animation: jf-window 12s ease-in-out infinite alternate; }
.scn-juliet-false-repentance .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #6a5028 0%, #886a38 100%); }
.scn-juliet-false-repentance .juliet-kneeling { position:absolute; bottom:10%; left:30%; width:25%; height:55%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 40% 50% 40% / 60% 50% 40% 50%; transform-origin: bottom center; animation: jf-kneel 6s ease-in-out infinite; }
.scn-juliet-false-repentance .hands-clasped { position:absolute; bottom:25%; left:42%; width:12%; height:18%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 0 8px rgba(0,0,0,0.5); animation: jf-hands 4s ease-in-out infinite; }
.scn-juliet-false-repentance .light-beam { position:absolute; top:0; left:20%; width:60%; height:70%; background: linear-gradient(180deg, rgba(255,240,200,0.15) 0%, transparent 100%); clip-path: polygon(45% 0, 55% 0, 60% 100%, 40% 100%); animation: jf-beam 8s ease-in-out infinite alternate; }
@keyframes jf-window { 0% { opacity:0.4; transform:scale(1) } 50% { opacity:0.7; transform:scale(1.03) } 100% { opacity:0.5; transform:scale(0.97) } }
@keyframes jf-kneel { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-4px) rotate(0deg) } 60% { transform: translateY(0) rotate(1deg) } 100% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes jf-hands { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(3deg) } }
@keyframes jf-beam { 0% { opacity:0.3; transform:translateX(-5px) } 50% { opacity:0.6; transform:translateX(0) } 100% { opacity:0.2; transform:translateX(5px) } }

/* Scene 1: lady-montague-asks-of-romeo */
.scn-lady-montague-asks-of-romeo {
  background:
    linear-gradient(180deg, #87CEEB 0%, #FFE4B5 40%, #F5DEB3 70%, #DEB887 100%),
    radial-gradient(ellipse at 70% 20%, #FFF8DC 0%, transparent 60%);
}
.scn-lady-montague-asks-of-romeo .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #B0E0E6 0%, transparent 100%);
  animation: lmr-sky 12s ease-in-out infinite alternate;
}
.scn-lady-montague-asks-of-romeo .sun {
  position: absolute; top: 8%; left: 75%;
  width: 50px; height: 50px;
  background: radial-gradient(circle at 50% 50%, #FFF8DC 0%, #FFD700 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #FFD700, 0 0 120px 40px rgba(255,215,0,0.3);
  animation: lmr-sun 20s ease-in-out infinite alternate;
}
.scn-lady-montague-asks-of-romeo .tree {
  position: absolute; bottom: 30%; left: 10%;
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #8B4513 0%, #5D3A1A 100%);
  border-radius: 10px;
}
.scn-lady-montague-asks-of-romeo .tree::before {
  content: ''; position: absolute; top: -60px; left: -40px;
  width: 100px; height: 80px;
  background: radial-gradient(ellipse, #2E8B57 0%, #1E6B3A 100%);
  border-radius: 50%;
}
.scn-lady-montague-asks-of-romeo .lady {
  position: absolute; bottom: 25%; left: 45%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #F0E68C 0%, #DAA520 40%, #B8860B 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lmr-lady 4s ease-in-out infinite alternate;
}
.scn-lady-montague-asks-of-romeo .flowers {
  position: absolute; bottom: 22%; left: 50%; right: 10%;
  height: 20px;
  background: repeating-linear-gradient(90deg, #FFB6C1 0px, #FF69B4 4px, #FFB6C1 8px);
  mask-image: radial-gradient(ellipse at 50% 100%, black 0%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 0%, transparent 80%);
  animation: lmr-flowers 3s ease-in-out infinite alternate;
}
.scn-lady-montague-asks-of-romeo .clouds {
  position: absolute; top: 12%; left: 20%; width: 120px; height: 25px;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 50%;
  filter: blur(8px);
  animation: lmr-clouds 30s linear infinite;
}
@keyframes lmr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes lmr-sun { 0% { transform: scale(0.95); box-shadow: 0 0 40px 10px #FFD700; } 100% { transform: scale(1.05); box-shadow: 0 0 80px 30px #FFD700; } }
@keyframes lmr-lady { 0% { transform: translateX(0); } 100% { transform: translateX(10px); } }
@keyframes lmr-flowers { 0% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes lmr-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(150vw); } }

/* Scene 2: romeo-melancholy */
.scn-romeo-melancholy {
  background:
    linear-gradient(180deg, #FFDAB9 0%, #FFE4B5 30%, #FFF5EE 60%, #B0E0E6 100%),
    radial-gradient(ellipse at 30% 10%, #FFC8A2 0%, transparent 70%);
}
.scn-romeo-melancholy .sky-dawn {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #E6D3B3 0%, #FFF5EE 40%, transparent 100%);
  animation: rmm-sky 15s ease-in-out infinite alternate;
}
.scn-romeo-melancholy .sunrise {
  position: absolute; top: 5%; left: 20%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px #FFA500, 0 0 100px 30px rgba(255,165,0,0.2);
  animation: rmm-sunrise 12s ease-in-out infinite alternate;
}
.scn-romeo-melancholy .tree {
  position: absolute; bottom: 30%; right: 5%;
  width: 25px; height: 70px;
  background: linear-gradient(180deg, #654321 0%, #3E2723 100%);
  border-radius: 6px;
}
.scn-romeo-melancholy .tree::before {
  content: ''; position: absolute; top: -50px; left: -30px;
  width: 80px; height: 70px;
  background: radial-gradient(ellipse, #4CAF50 0%, #2E7D32 100%);
  border-radius: 50%;
}
.scn-romeo-melancholy .romeo {
  position: absolute; bottom: 22%; left: 40%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #4A4A4A 0%, #2B2B2B 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rmm-romeo 5s ease-in-out infinite alternate;
}
.scn-romeo-melancholy .dew {
  position: absolute; bottom: 20%; left: 30%; width: 100%; height: 3px;
  background: repeating-linear-gradient(90deg, #E0FFFF 0px, #AFEEEE 8px, #E0FFFF 16px);
  filter: blur(1px);
  animation: rmm-dew 4s ease-in-out infinite alternate;
}
.scn-romeo-melancholy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #6B8E23 0%, #556B2F 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-romeo-melancholy .mist {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 10%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3) 50%, transparent);
  filter: blur(10px);
  animation: rmm-mist 8s ease-in-out infinite alternate;
}
@keyframes rmm-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes rmm-sunrise { 0% { transform: scale(0.9); } 100% { transform: scale(1.1); } }
@keyframes rmm-romeo { 0% { transform: translateY(0) rotate(0); } 100% { transform: translateY(-3px) rotate(2deg); } }
@keyframes rmm-dew { 0% { opacity: 0.5; } 100% { opacity: 0.9; } }
@keyframes rmm-mist { 0% { transform: translateX(-5%); } 100% { transform: translateX(5%); } }

/* Scene 3: benvolio-learns-love */
.scn-benvolio-learns-love {
  background:
    linear-gradient(180deg, #87CEEB 0%, #FFF8DC 30%, #F5F5DC 60%, #E8D5B7 100%),
    radial-gradient(circle at 80% 20%, #FFF5EE 0%, transparent 70%);
}
.scn-benvolio-learns-love .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #AFEEEE 0%, transparent 100%);
  animation: bll-sky 14s ease-in-out infinite alternate;
}
.scn-benvolio-learns-love .sun {
  position: absolute; top: 5%; left: 80%;
  width: 45px; height: 45px;
  background: radial-gradient(circle, #FFFACD 0%, #FFD700 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px #FFD700, 0 0 100px 25px rgba(255,215,0,0.3);
  animation: bll-sun 18s ease-in-out infinite alternate;
}
.scn-benvolio-learns-love .ground-path {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #C4A882 0%, #A0886A 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-benvolio-learns-love .benvolio {
  position: absolute; bottom: 18%; left: 45%;
  width: 20px; height: 52px;
  background: linear-gradient(180deg, #6B8E23 0%, #556B2F 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bll-figure1 5s ease-in-out infinite alternate;
}
.scn-benvolio-learns-love .montague {
  position: absolute; bottom: 18%; left: 55%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #8B4513 0%, #5D3A1A 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bll-figure2 5s ease-in-out infinite alternate-reverse;
}
.scn-benvolio-learns-love .bench {
  position: absolute; bottom: 20%; left: 30%;
  width: 50px; height: 8px;
  background: #8B5A2B;
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: bll-bench 3s ease-in-out infinite alternate;
}
.scn-benvolio-learns-love .hedge {
  position: absolute; bottom: 10%; left: 5%; right: 75%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, #6B8E23 0%, #2E7D32 100%);
  border-radius: 40% 40% 0 0 / 100% 100% 0 0;
  animation: bll-hedge 6s ease-in-out infinite alternate;
}
@keyframes bll-sky { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes bll-sun { 0% { transform: scale(0.95); } 100% { transform: scale(1.05); } }
@keyframes bll-figure1 { 0% { transform: translateX(0); } 100% { transform: translateX(5px); } }
@keyframes bll-figure2 { 0% { transform: translateX(0); } 100% { transform: translateX(-5px); } }
@keyframes bll-bench { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.1); } }
@keyframes bll-hedge { 0% { opacity: 0.9; } 100% { opacity: 1; } }

/* Scene 4: romeo-enters-lovesick */
.scn-romeo-enters-lovesick {
  background:
    linear-gradient(180deg, #B0E0E6 0%, #FFF8DC 30%, #F5DEB3 60%, #DEB887 100%),
    radial-gradient(ellipse at 50% 20%, #FFFACD 0%, transparent 80%);
}
.scn-romeo-enters-lovesick .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #E0FFFF 0%, transparent 100%);
  animation: rel-sky 16s ease-in-out infinite alternate;
}
.scn-romeo-enters-lovesick .sunbeam {
  position: absolute; top: 0; left: 30%; width: 12px; height: 100%;
  background: linear-gradient(180deg, rgba(255,215,0,0.3) 0%, transparent 100%);
  filter: blur(5px);
  animation: rel-sunbeam 8s ease-in-out infinite alternate;
}
.scn-romeo-enters-lovesick .path {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 35%;
  background: linear-gradient(180deg, #D2B48C 0%, #B8860B 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-romeo-enters-lovesick .romeo-fig {
  position: absolute; bottom: 22%; left: 10%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #4A4A4A 0%, #2B2B2B 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rel-romeo 6s ease-in-out infinite;
}
.scn-romeo-enters-lovesick .tree-left {
  position: absolute; bottom: 20%; left: 5%;
  width: 20px; height: 90px;
  background: linear-gradient(180deg, #654321 0%, #3E2723 100%);
  border-radius: 8px;
}
.scn-romeo-enters-lovesick .tree-left::before {
  content: ''; position: absolute; top: -60px; left: -35px;
  width: 90px; height: 80px;
  background: radial-gradient(ellipse, #4CAF50 0%, #2E7D32 100%);
  border-radius: 50%;
}
.scn-romeo-enters-lovesick .tree-right {
  position: absolute; bottom: 20%; right: 5%;
  width: 20px; height: 90px;
  background: linear-gradient(180deg, #654321 0%, #3E2723 100%);
  border-radius: 8px;
}
.scn-romeo-enters-lovesick .tree-right::before {
  content: ''; position: absolute; top: -60px; right: -35px;
  width: 90px; height: 80px;
  background: radial-gradient(ellipse, #4CAF50 0%, #2E7D32 100%);
  border-radius: 50%;
}
.scn-romeo-enters-lovesick .clouds {
  position: absolute; top: 10%; right: 10%;
  width: 100px; height: 20px;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  filter: blur(6px);
  animation: rel-clouds 25s linear infinite;
}
@keyframes rel-sky { 0% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes rel-sunbeam { 0% { opacity: 0.2; transform: scaleX(1); } 100% { opacity: 0.6; transform: scaleX(1.5); } }
@keyframes rel-romeo { 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 rel-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(-200vw); } }

/* romeo-reads-invitation (calm, sunlit) */
.scn-romeo-reads-invitation {
  background: linear-gradient(180deg, #fef9e0 0%, #fce4b8 40%, #d4b48c 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-romeo-reads-invitation .arch-window {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 70%;
  background: radial-gradient(ellipse at 50% 100%, #f5dbb0 0%, #d4a86a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -40px 40px rgba(0,0,0,0.15);
  animation: rri-window 12s ease-in-out infinite alternate;
}
.scn-romeo-reads-invitation .sunbeam {
  position: absolute; top: 12%; left: 20%; width: 40%; height: 10%;
  background: linear-gradient(135deg, rgba(255,230,160,0.6) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: rri-sunbeam 9s ease-in-out infinite;
}
.scn-romeo-reads-invitation .table {
  position: absolute; bottom: 8%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #8b6f47 0%, #5a4a33 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-romeo-reads-invitation .paper {
  position: absolute; bottom: 22%; left: 38%; width: 24%; height: 18%;
  background: linear-gradient(135deg, #fcf3d9 0%, #e6d8b8 100%);
  border-radius: 4% 8% 4% 8%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  transform-origin: center bottom;
  animation: rri-paper 4s ease-in-out infinite alternate;
}
.scn-romeo-reads-invitation .hand {
  position: absolute; bottom: 20%; left: 35%; width: 14%; height: 22%;
  background: linear-gradient(135deg, #f0c8a0 0%, #d6a882 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 30%;
  animation: rri-hand 3s ease-in-out infinite;
}
.scn-romeo-reads-invitation .shadow {
  position: absolute; bottom: 6%; left: 10%; width: 60%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.25) 0%, transparent 70%);
  animation: rri-shadow 6s ease-in-out infinite alternate;
}
@keyframes rri-window { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rri-sunbeam { 0% { transform: translateX(-5%) rotate(-2deg); } 50% { transform: translateX(5%) rotate(2deg); } 100% { transform: translateX(-3%) rotate(-1deg); } }
@keyframes rri-paper { 0% { transform: rotate(-1deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(0deg) scale(0.98); } }
@keyframes rri-hand { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes rri-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* servant-invites (warm, sunlit) */
.scn-servant-invites {
  background: linear-gradient(180deg, #fbe9d2 0%, #f1ce9c 40%, #d9a96b 100%), radial-gradient(ellipse at 70% 50%, #ffe6b0 0%, transparent 50%);
}
.scn-servant-invites .doorway {
  position: absolute; bottom: 0; left: 20%; width: 50%; height: 80%;
  background: linear-gradient(135deg, #4a3728 0%, #2d2218 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.4);
}
.scn-servant-invites .street-sun {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 60% 20%, #ffe6a0 0%, transparent 60%);
  animation: sv-street 7s ease-in-out infinite alternate;
}
.scn-servant-invites .servant-body {
  position: absolute; bottom: 5%; left: 30%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #6b4c3a 0%, #3a2a1e 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
}
.scn-servant-invites .servant-arm {
  position: absolute; bottom: 30%; left: 44%; width: 10%; height: 28%;
  background: linear-gradient(90deg, #5a3e2c 0%, #3f2a1c 100%);
  border-radius: 50% 20% 20% 50% / 40% 20% 20% 40%;
  transform-origin: bottom left;
  animation: sv-arm 4s ease-in-out infinite;
}
.scn-servant-invites .lantern {
  position: absolute; bottom: 38%; left: 42%; width: 8%; height: 10%;
  background: radial-gradient(circle, #ffcc80 0%, #e6a040 70%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(255,200,120,0.6);
  animation: sv-lantern 3s ease-in-out infinite alternate;
}
.scn-servant-invites .warm-glow {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,230,150,0.3) 0%, transparent 70%);
  animation: sv-glow 6s ease-in-out infinite;
}
@keyframes sv-street { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sv-arm { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(20deg) translateX(4px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes sv-lantern { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes sv-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(0.95); } }

/* romeo-defends-rosaline (tense, sunlit) */
.scn-romeo-defends-rosaline {
  background: linear-gradient(180deg, #fce9c8 0%, #e6b87a 60%, #b8824a 100%), radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 40%);
}
.scn-romeo-defends-rosaline .sky-tense {
  position: absolute; top: 0; left: 0; width: 100%; height: 60%;
  background: linear-gradient(135deg, #ffe6b0 0%, #f0c070 60%, #d09050 100%);
  animation: rdr-sky 5s ease-in-out infinite alternate;
}
.scn-romeo-defends-rosaline .ground-tense {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 45%;
  background: linear-gradient(180deg, #a87a52 0%, #7a5538 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-romeo-defends-rosaline .figure-left {
  position: absolute; bottom: 20%; left: 10%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #2c1e14 0%, #1a100a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: rdr-left 4s ease-in-out infinite;
}
.scn-romeo-defends-rosaline .figure-right {
  position: absolute; bottom: 20%; right: 10%; width: 22%; height: 48%;
  background: linear-gradient(180deg, #3d2a1e 0%, #261a12 100%);
  border-radius: 40% 40% 25% 25% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rdr-right 4.5s ease-in-out infinite;
}
.scn-romeo-defends-rosaline .shadow-hard {
  position: absolute; bottom: 18%; left: 5%; width: 90%; height: 8%;
  background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, transparent 50%, rgba(0,0,0,0.4) 100%);
  animation: rdr-shadow 3s ease-in-out infinite alternate;
}
.scn-romeo-defends-rosaline .burst {
  position: absolute; top: 25%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, #ff8844 0%, #ff5522 40%, transparent 70%);
  border-radius: 50%;
  animation: rdr-burst 2s ease-in-out infinite;
}
@keyframes rdr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes rdr-left { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(8deg); } 100% { transform: translateX(4px) rotate(-4deg); } }
@keyframes rdr-right { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(-5deg); } 100% { transform: translateX(-3px) rotate(3deg); } }
@keyframes rdr-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes rdr-burst { 0% { transform: scale(0.8); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.5; } }

/* juliet-nurse-intro (funny, bright-interior) */
.scn-juliet-nurse-intro {
  background: linear-gradient(180deg, #fff6e0 0%, #fce4b0 50%, #f0cca0 100%), radial-gradient(ellipse at 50% 30%, #fffbe0 0%, transparent 60%);
}
.scn-juliet-nurse-intro .wall-light {
  position: absolute; top: 0; left: 0; width: 100%; height: 70%;
  background: linear-gradient(135deg, #f5e4c0 0%, #e6ccaa 100%);
}
.scn-juliet-nurse-intro .floor-light {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 35%;
  background: linear-gradient(180deg, #c8a880 0%, #a88860 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.1);
}
.scn-juliet-nurse-intro .nurse-profile {
  position: absolute; bottom: 15%; left: 20%; width: 25%; height: 55%;
  background: linear-gradient(135deg, #7a5a3a 0%, #4d3320 100%);
  border-radius: 40% 20% 30% 40% / 60% 30% 50% 50%;
  transform-origin: bottom center;
  animation: jni-nurse 5s ease-in-out infinite;
}
.scn-juliet-nurse-intro .juliet-silhouette {
  position: absolute; bottom: 20%; right: 15%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f140c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: jni-juliet 6s ease-in-out infinite alternate;
}
.scn-juliet-nurse-intro .teeth-a {
  position: absolute; bottom: 48%; left: 28%; width: 6%; height: 4%;
  background: #f5f0e0;
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: jni-teeth 2s ease-in-out infinite;
}
.scn-juliet-nurse-intro .teeth-b {
  position: absolute; bottom: 46%; left: 36%; width: 5%; height: 3%;
  background: #f0e8d0;
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: jni-teeth 2.4s ease-in-out infinite reverse;
}
.scn-juliet-nurse-intro .laugh-lines {
  position: absolute; top: 20%; left: 25%; width: 50%; height: 20%;
  background: repeating-linear-gradient(45deg, rgba(0,0,0,0.05) 0px, rgba(0,0,0,0.05) 2px, transparent 2px, transparent 6px);
  animation: jni-laugh 4s ease-in-out infinite;
}
@keyframes jni-nurse { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes jni-juliet { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(4deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(0.98); } }
@keyframes jni-teeth { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes jni-laugh { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

.scn-nurse-teases-juliet {
  background: linear-gradient(180deg, #f9e7c2 0%, #d4b88a 40%, #9b7a5a 100%), 
              radial-gradient(ellipse at 40% 20%, #fff4d6 0%, transparent 50%);
}
.scn-nurse-teases-juliet .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f8f0d8 0%, #ffeab3 100%); animation: ntj-sky 12s ease-in-out infinite alternate; }
.scn-nurse-teases-juliet .grass { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6b8c42 0%, #3a5a22 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; animation: ntj-grass 8s ease-in-out infinite; }
.scn-nurse-teases-juliet .sun-glow { position:absolute; top:8%; left:35%; width:120px; height:120px; background: radial-gradient(circle, #fff8d0 0%, #f0d080 40%, transparent 70%); border-radius:50%; filter:blur(10px); animation: ntj-glow 6s ease-in-out infinite alternate; }
.scn-nurse-teases-juliet .nurse-ntj { position:absolute; bottom:28%; left:30%; width:50px; height:90px; background: linear-gradient(180deg, #7a4a2a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ntj-nurse 4s ease-in-out infinite; }
.scn-nurse-teases-juliet .juliet-ntj { position:absolute; bottom:28%; left:55%; width:44px; height:80px; background: linear-gradient(180deg, #c8a070 0%, #906040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ntj-juliet 5s ease-in-out infinite; }
.scn-nurse-teases-juliet .leaf-ntj { position:absolute; width:30px; height:12px; background: linear-gradient(180deg, #5a8a3a 0%, #3a6a1a 100%); border-radius:50%; filter:blur(2px); }
.scn-nurse-teases-juliet .leaf-a { top:50%; left:15%; animation: ntj-drift-a 20s linear infinite; }
.scn-nurse-teases-juliet .leaf-b { top:60%; right:10%; animation: ntj-drift-b 25s linear infinite reverse; }
@keyframes ntj-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ntj-grass { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ntj-glow { 0% { opacity:0.7; transform: scale(0.9); } 100% { opacity:1; transform: scale(1.1); } }
@keyframes ntj-nurse { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ntj-juliet { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(3deg); } }
@keyframes ntj-drift-a { 0% { transform: translateX(-40px) rotate(0deg); } 100% { transform: translateX(120vw) rotate(360deg); } }
@keyframes ntj-drift-b { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(-100vw) rotate(-360deg); } }

.scn-nurse-tells-plan {
  background: linear-gradient(180deg, #f0dbb0 0%, #c8a878 40%, #8a6040 100%),
              radial-gradient(ellipse at 70% 20%, #ffeabd 0%, transparent 40%);
}
.scn-nurse-tells-plan .wall-ntp { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #cab89a 0%, #b8a080 100%); }
.scn-nurse-tells-plan .window-ntp { position:absolute; top:10%; left:65%; width:80px; height:100px; background: linear-gradient(180deg, #a0d0e8 0%, #6a90b0 100%); border:6px solid #6a5030; border-radius:4px; box-shadow: inset 0 0 20px #ffe0a0; animation: ntp-window 10s ease-in-out infinite alternate; }
.scn-nurse-tells-plan .sunbeam-ntp { position:absolute; top:10%; left:68%; width:40px; height:200px; background: linear-gradient(180deg, rgba(255,240,180,0.6) 0%, transparent 100%); transform: rotate(10deg); animation: ntp-beam 12s ease-in-out infinite alternate; }
.scn-nurse-tells-plan .floor-ntp { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); }
.scn-nurse-tells-plan .nurse-ntp { position:absolute; bottom:22%; left:40%; width:45px; height:80px; background: linear-gradient(180deg, #6a3a1a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ntp-nurse 6s ease-in-out infinite; }
.scn-nurse-tells-plan .juliet-ntp { position:absolute; bottom:22%; left:55%; width:40px; height:75px; background: linear-gradient(180deg, #a07858 0%, #705030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ntp-juliet 7s ease-in-out infinite; }
.scn-nurse-tells-plan .curtain-ntp { position:absolute; top:8%; left:62%; width:20px; height:120px; background: linear-gradient(180deg, #8a6040 0%, #5a3a1a 100%); border-radius:10% 10% 0 0; animation: ntp-curtain 8s ease-in-out infinite alternate; }
@keyframes ntp-window { 0% { opacity:0.8; box-shadow: inset 0 0 20px #ffe0a0; } 100% { opacity:1; box-shadow: inset 0 0 40px #ffd080; } }
@keyframes ntp-beam { 0% { opacity:0.5; transform: rotate(8deg); } 100% { opacity:0.9; transform: rotate(12deg); } }
@keyframes ntp-nurse { 0%,100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(2deg); } }
@keyframes ntp-juliet { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(3deg); } }
@keyframes ntp-curtain { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.1); } }

.scn-juliet-hies-to-cell {
  background: linear-gradient(180deg, #e8d4aa 0%, #b8a080 40%, #806040 100%),
              radial-gradient(ellipse at 30% 30%, #ffe8b0 0%, transparent 50%);
}
.scn-juliet-hies-to-cell .sky-jhc { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f0e4c0 0%, #d4be90 100%); animation: jhc-sky 15s ease-in-out infinite alternate; }
.scn-juliet-hies-to-cell .arch-jhc { position:absolute; bottom:30%; left:20%; width:60%; height:70%; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a0a 100%); border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.3); }
.scn-juliet-hies-to-cell .door-jhc { position:absolute; bottom:30%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #6a4a2a 0%, #3a1a00 100%); border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%; box-shadow: 0 5px 15px rgba(0,0,0,0.4); }
.scn-juliet-hies-to-cell .path-jhc { position:absolute; bottom:0; left:30%; right:30%; height:30%; background: linear-gradient(180deg, #b8a080 0%, #806040 100%, #604020 100%); border-radius: 20% 20% 0 0; }
.scn-juliet-hies-to-cell .juliet-jhc { position:absolute; bottom:32%; left:50%; width:30px; height:60px; background: linear-gradient(180deg, #c07040 0%, #804020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jhc-juliet 3s ease-in-out infinite; }
.scn-juliet-hies-to-cell .ivy-jhc { position:absolute; width:20px; height:40px; background: linear-gradient(180deg, #4a7a2a 0%, #2a4a1a 100%); border-radius: 50%; filter:blur(2px); }
.scn-juliet-hies-to-cell .ivy-a { top:20%; left:30%; animation: jhc-ivy-a 25s linear infinite; }
.scn-juliet-hies-to-cell .ivy-b { top:35%; right:25%; animation: jhc-ivy-b 30s linear infinite reverse; }
@keyframes jhc-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes jhc-juliet { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes jhc-ivy-a { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(120vw) rotate(720deg); } }
@keyframes jhc-ivy-b { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(-100vw) rotate(-720deg); } }

.scn-juliet-arrives {
  background: linear-gradient(180deg, #d4b88a 0%, #b09878 30%, #806040 100%),
              radial-gradient(ellipse at 50% 30%, #ffd8a0 0%, transparent 60%);
}
.scn-juliet-arrives .altar-ja { position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:100px; height:60px; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,0.5); }
.scn-juliet-arrives .wall-ja { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8a080 0%, #806040 100%); }
.scn-juliet-arrives .light-beam-ja { position:absolute; top:5%; left:40%; width:80px; height:200px; background: linear-gradient(180deg, rgba(255,240,180,0.6) 0%, transparent 100%); transform: rotate(-5deg); animation: ja-beam 10s ease-in-out infinite alternate; }
.scn-juliet-arrives .romeo-ja { position:absolute; bottom:22%; left:30%; width:38px; height:70px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ja-romeo 8s ease-in-out infinite; }
.scn-juliet-arrives .juliet-ja { position:absolute; bottom:22%; left:55%; width:35px; height:65px; background: linear-gradient(180deg, #a07858 0%, #705030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ja-juliet 9s ease-in-out infinite; }
.scn-juliet-arrives .candle-ja { position:absolute; bottom:18%; width:6px; height:18px; background: linear-gradient(180deg, #d0a040 0%, #b08020 100%); border-radius:2px; box-shadow: 0 0 10px 3px #ffd060; }
.scn-juliet-arrives .candle-1 { left:42%; animation: ja-candle 4s ease-in-out infinite alternate; }
.scn-juliet-arrives .candle-2 { right:42%; animation: ja-candle 5s ease-in-out infinite alternate-reverse; }
@keyframes ja-beam { 0% { opacity:0.6; transform: rotate(-5deg); } 100% { opacity:0.9; transform: rotate(-8deg); } }
@keyframes ja-romeo { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes ja-juliet { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(-2deg); } }
@keyframes ja-candle { 0% { opacity:0.7; box-shadow: 0 0 8px 2px #ffd060; } 50% { opacity:1; box-shadow: 0 0 16px 5px #ffd080; } 100% { opacity:0.8; box-shadow: 0 0 10px 3px #ffd060; } }

/* verona-market-square */
.scn-verona-market-square {
  background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 50%, #3a4a4a 100%),
              radial-gradient(ellipse at 50% 0%, #8a9a9a 0%, transparent 60%);
}
.scn-verona-market-square .overcast-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 100%);
  animation: vm-sky 14s ease-in-out infinite alternate;
}
.scn-verona-market-square .square-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
}
.scn-verona-market-square .building-left {
  position: absolute; bottom: 30%; left: 5%; width: 25%; height: 45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.5);
  animation: vm-build 10s ease-in-out infinite alternate;
}
.scn-verona-market-square .building-right {
  position: absolute; bottom: 30%; right: 5%; width: 25%; height: 45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
  animation: vm-build 10s ease-in-out infinite alternate-reverse;
}
.scn-verona-market-square .fountain-base {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-verona-market-square .figure-left {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vm-figure 5s ease-in-out infinite;
}
.scn-verona-market-square .figure-right {
  position: absolute; bottom: 22%; right: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vm-figure 5s ease-in-out infinite 2.5s;
}
@keyframes vm-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes vm-build {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes vm-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* capulet-servants-brawl */
.scn-capulet-servants-brawl {
  background: linear-gradient(180deg, #9ab0c0 0%, #7a90a0 50%, #5a7080 100%),
              radial-gradient(ellipse at 60% 20%, #b0c8d8 0%, transparent 70%);
}
.scn-capulet-servants-brawl .sunlit-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0c8d8 0%, #8aa0b0 100%);
  animation: cs-sky 8s ease-in-out infinite alternate;
}
.scn-capulet-servants-brawl .street-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-capulet-servants-brawl .wall-back {
  position: absolute; bottom: 35%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(90deg, #b0a090 0%, #d0c0b0 50%, #b0a090 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-capulet-servants-brawl .fighter-a {
  position: absolute; bottom: 22%; left: 25%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #7a3a2a 0%, #4a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-fight 0.6s ease-in-out infinite;
}
.scn-capulet-servants-brawl .fighter-b {
  position: absolute; bottom: 22%; right: 25%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #3a4a6a 0%, #1a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-fight 0.6s ease-in-out infinite 0.3s;
}
.scn-capulet-servants-brawl .clash-spark {
  position: absolute; bottom: 32%; left: 50%; width: 16px; height: 16px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, #f0d080 0%, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(240,208,128,0.6);
  animation: cs-spark 0.3s ease-in-out infinite;
}
@keyframes cs-sky {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.85; transform: scale(1); }
}
@keyframes cs-fight {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  25% { transform: translateX(8px) rotate(10deg) scale(1.05); }
  50% { transform: translateX(0) rotate(-5deg) scale(0.95); }
  75% { transform: translateX(-8px) rotate(5deg) scale(1.02); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes cs-spark {
  0% { transform: translate(-50%, 0) scale(0.5); opacity: 0.3; }
  50% { transform: translate(-50%, -4px) scale(1.5); opacity: 1; }
  100% { transform: translate(-50%, 0) scale(0.5); opacity: 0.3; }
}

/* montague-servants-arrive */
.scn-montague-servants-arrive {
  background: linear-gradient(180deg, #8aa0b0 0%, #6a8090 50%, #4a6070 100%),
              radial-gradient(ellipse at 30% 20%, #b0c8d8 0%, transparent 70%);
}
.scn-montague-servants-arrive .sunlit-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0c8d8 0%, #8aa0b0 100%);
  animation: ms-sky 10s ease-in-out infinite alternate;
}
.scn-montague-servants-arrive .street-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-montague-servants-arrive .wall-back {
  position: absolute; bottom: 35%; left: 5%; width: 90%; height: 35%;
  background: linear-gradient(90deg, #a09080 0%, #c0b0a0 50%, #a09080 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-montague-servants-arrive .montague-group {
  position: absolute; bottom: 22%; left: 10%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 90%, #4a3a5a 0%, #2a1a3a 60%, transparent 100%);
  border-radius: 50% 50% 40% 40%;
  animation: ms-group 4s ease-in-out infinite;
}
.scn-montague-servants-arrive .capulet-group {
  position: absolute; bottom: 22%; right: 10%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 90%, #5a2a2a 0%, #3a1a1a 60%, transparent 100%);
  border-radius: 50% 50% 40% 40%;
  animation: ms-group 4s ease-in-out infinite 2s;
}
.scn-montague-servants-arrive .thumb-gesture {
  position: absolute; bottom: 30%; left: 45%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ms-thumb 1.2s ease-in-out infinite;
}
@keyframes ms-sky {
  0% { opacity: 0.8; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.85; filter: brightness(0.95); }
}
@keyframes ms-group {
  0% { transform: translateY(0) scale(1); }
  25% { transform: translateY(-3px) scale(1.02); }
  50% { transform: translateY(2px) scale(0.98); }
  75% { transform: translateY(-1px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes ms-thumb {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(6px) rotate(40deg); }
  60% { transform: translateX(-2px) rotate(-10deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* benvolio-intervenes */
.scn-benvolio-intervenes {
  background: linear-gradient(180deg, #9ab0c0 0%, #7a90a0 50%, #5a7080 100%),
              radial-gradient(ellipse at 40% 30%, #b0c8d8 0%, transparent 60%);
}
.scn-benvolio-intervenes .sunlit-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0c8d8 0%, #8aa0b0 100%);
  animation: bi-sky 12s ease-in-out infinite alternate;
}
.scn-benvolio-intervenes .street-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-benvolio-intervenes .wall-back {
  position: absolute; bottom: 35%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(90deg, #a09080 0%, #c0b0a0 50%, #a09080 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-benvolio-intervenes .benvolio-figure {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a5a6a 0%, #1a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bi-benvolio 3s ease-in-out infinite;
}
.scn-benvolio-intervenes .tybalt-figure {
  position: absolute; bottom: 20%; right: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #6a2a2a 0%, #4a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bi-tybalt 2.5s ease-in-out infinite;
}
.scn-benvolio-intervenes .sword-a {
  position: absolute; bottom: 30%; left: 40%; width: 8px; height: 30px;
  background: linear-gradient(90deg, #c0b0a0 0%, #e0d0c0 50%, #c0b0a0 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: bi-sword 1.5s ease-in-out infinite;
}
.scn-benvolio-intervenes .sword-b {
  position: absolute; bottom: 30%; right: 35%; width: 8px; height: 30px;
  background: linear-gradient(90deg, #c0b0a0 0%, #e0d0c0 50%, #c0b0a0 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: bi-sword 1.5s ease-in-out infinite 0.6s;
}
@keyframes bi-sky {
  0% { opacity: 0.8; filter: saturate(0.9); }
  50% { opacity: 1; filter: saturate(1.1); }
  100% { opacity: 0.85; filter: saturate(0.95); }
}
@keyframes bi-benvolio {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  25% { transform: translateX(4px) rotate(5deg) scale(1.02); }
  50% { transform: translateX(-2px) rotate(-3deg) scale(0.98); }
  75% { transform: translateX(2px) rotate(2deg) scale(1.01); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes bi-tybalt {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  30% { transform: translateX(-6px) rotate(-8deg) scale(1.03); }
  60% { transform: translateX(3px) rotate(4deg) scale(0.97); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes bi-sword {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}

/* nurse-warns-romeo – interior cutaway, tense sunlit */
.scn-nurse-warns-romeo {
  background: linear-gradient(180deg, #f9e6c8 0%, #d4b48a 100%), radial-gradient(ellipse at 60% 40%, #f9e6c8 0%, transparent 70%);
}
.scn-nurse-warns-romeo .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a87a 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.15);
}
.scn-nurse-warns-romeo .window-frame {
  position: absolute; top: 8%; left: 40%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #5e3a20 0%, #3e2210 100%);
  border-radius: 6px 6px 12px 12px;
  box-shadow: inset 0 0 0 4px #7a5a30, 0 4px 12px rgba(0,0,0,0.3);
  animation: nwr-frame 10s ease-in-out infinite;
}
.scn-nurse-warns-romeo .window-glow {
  position: absolute; top: 12%; left: 43%; width: 50px; height: 70px;
  background: radial-gradient(circle, #fff8e0 0%, #ffd080 70%);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px #f0b060, 0 0 60px 20px rgba(240,176,96,0.3);
  animation: nwr-glow 4s ease-in-out infinite alternate;
}
.scn-nurse-warns-romeo .nurse {
  position: absolute; bottom: 28%; left: 30%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nwr-figure-left 3s ease-in-out infinite;
}
.scn-nurse-warns-romeo .romeo {
  position: absolute; bottom: 28%; left: 52%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nwr-figure-right 3.5s ease-in-out infinite;
}
.scn-nurse-warns-romeo .hand {
  position: absolute; bottom: 38%; left: 46%; width: 8px; height: 14px;
  background: #c8a87a;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: nwr-hand 2s ease-in-out infinite alternate;
}
.scn-nurse-warns-romeo .dust {
  position: absolute; bottom: 30%; left: 20%; width: 120px; height: 40px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: nwr-dust 8s linear infinite;
}
@keyframes nwr-frame { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.01); } }
@keyframes nwr-glow { 0% { opacity: 0.8; box-shadow: 0 0 20px 5px #f0b060, 0 0 40px 10px rgba(240,176,96,0.2); } 50% { opacity: 1; box-shadow: 0 0 40px 12px #ffd080, 0 0 80px 25px rgba(255,208,128,0.4); } 100% { opacity: 0.9; box-shadow: 0 0 25px 6px #f0b060, 0 0 50px 15px rgba(240,176,96,0.3); } }
@keyframes nwr-figure-left { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes nwr-figure-right { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes nwr-hand { 0% { transform: rotate(-25deg) translateX(0); } 100% { transform: rotate(-15deg) translateX(3px); } }
@keyframes nwr-dust { 0% { transform: translateX(0); opacity: 0.3; } 50% { transform: translateX(30px); opacity: 0.6; } 100% { transform: translateX(0); opacity: 0.3; } }

/* romeo-gives-instructions – street arcade, calm sunlit */
.scn-romeo-gives-instructions {
  background: linear-gradient(180deg, #b8e0e0 0%, #f0d8a8 50%, #d4b48a 100%), radial-gradient(ellipse at 50% 80%, #f0d8a8 0%, transparent 80%);
}
.scn-romeo-gives-instructions .street-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8f0e8 0%, #d0d8c0 100%);
  box-shadow: inset 0 -4px 20px rgba(0,0,0,0.1);
}
.scn-romeo-gives-instructions .arcade {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 60%;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.2);
  animation: rgi-arcade 20s ease-in-out infinite alternate;
}
.scn-romeo-gives-instructions .romeo {
  position: absolute; bottom: 30%; left: 38%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rgi-figure 5s ease-in-out infinite;
}
.scn-romeo-gives-instructions .nurse {
  position: absolute; bottom: 30%; left: 50%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rgi-figure 5.5s ease-in-out infinite;
}
.scn-romeo-gives-instructions .scroll {
  position: absolute; bottom: 42%; left: 44%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: rgi-scroll 4s ease-in-out infinite;
}
.scn-romeo-gives-instructions .sunlight-beam {
  position: absolute; top: 0; left: 40%; width: 16%; height: 70%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, rgba(255,240,200,0) 100%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  animation: rgi-beam 6s ease-in-out infinite alternate;
}
@keyframes rgi-arcade { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes rgi-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rgi-scroll { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes rgi-beam { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.2); } 100% { opacity: 0.4; transform: scaleX(0.9); } }

/* tybalt-fights – wide horizon, tense sunlit */
.scn-tybalt-fights {
  background: linear-gradient(180deg, #8ab4d0 0%, #d4c090 50%, #b89a60 100%), radial-gradient(ellipse at 50% 60%, #d4c090 0%, transparent 80%);
}
.scn-tybalt-fights .sky-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d4e8 0%, #8ab4d0 100%);
  animation: tbf-sky 12s ease-in-out infinite alternate;
}
.scn-tybalt-fights .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c8a87a 0%, #a08060 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-tybalt-fights .tybalt {
  position: absolute; bottom: 25%; left: 30%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #5e3a20 0%, #3a2210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tbf-fight 1.5s ease-in-out infinite;
}
.scn-tybalt-fights .benvolio {
  position: absolute; bottom: 25%; left: 45%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tbf-fight 2s ease-in-out infinite reverse;
}
.scn-tybalt-fights .sword-tybalt {
  position: absolute; bottom: 45%; left: 32%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  box-shadow: 0 0 4px #fff;
  animation: tbf-sword 0.8s ease-in-out infinite alternate;
}
.scn-tybalt-fights .sword-benvolio {
  position: absolute; bottom: 45%; left: 50%; width: 4px; height: 38px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  transform-origin: bottom center;
  box-shadow: 0 0 4px #fff;
  animation: tbf-sword 0.9s ease-in-out infinite alternate;
}
.scn-tybalt-fights .spark {
  position: absolute; top: 20%; left: 40%; width: 12px; height: 12px;
  background: radial-gradient(circle, #fffae0 0%, #f0c060 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #f0c060;
  animation: tbf-spark 0.3s ease-in-out infinite;
}
@keyframes tbf-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes tbf-fight { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-5px) rotate(3deg); } 50% { transform: translateY(0) rotate(-3deg); } 75% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes tbf-sword { 0% { transform: rotate(-30deg) scaleY(1); } 50% { transform: rotate(-25deg) scaleY(1.1); } 100% { transform: rotate(-30deg) scaleY(1); } }
@keyframes tbf-spark { 0% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.5); opacity: 0.5; } 100% { transform: scale(0.8); opacity: 0.8; } }

/* prince-sentences – dark mob scene, sunlit but heavy shadows */
.scn-prince-sentences {
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 50%, #1a2a3a 100%), radial-gradient(ellipse at 60% 30%, #5a7a8a 0%, transparent 70%);
}
.scn-prince-sentences .sky-dark {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%);
  animation: prs-sky 15s ease-in-out infinite alternate;
}
.scn-prince-sentences .throne {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
}
.scn-prince-sentences .prince {
  position: absolute; bottom: 40%; left: 50%; width: 28px; height: 58px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: prs-prince 4s ease-in-out infinite;
}
.scn-prince-sentences .crowd {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: repeating-linear-gradient(90deg, #1a1a2a 0px, #1a1a2a 12px, #0a0a1a 12px, #0a0a1a 24px);
  mask: radial-gradient(ellipse at 50% 0%, black 30%, transparent 70%);
  animation: prs-crowd 6s ease-in-out infinite alternate;
}
.scn-prince-sentences .swords-down {
  position: absolute; bottom: 35%; left: 30%; right: 30%; height: 8px;
  background: linear-gradient(90deg, #808080 0%, #404040 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: prs-swords 8s ease-in-out infinite;
}
.scn-prince-sentences .shadow-veil {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: prs-veil 10s ease-in-out infinite alternate;
}
@keyframes prs-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes prs-prince { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes prs-crowd { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes prs-swords { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes prs-veil { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* Scene: mercutio-benvolio-brawl */
.scn-mercutio-benvolio-brawl { background: linear-gradient(180deg, #f9d976 0%, #f4b86a 40%, #d68d4a 100%), radial-gradient(ellipse at 50% 0%, #fff3c4 0%, transparent 60%); }
.scn-mercutio-benvolio-brawl .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #ffe5a0 0%, #fad37a 80%); animation: mbb-sky 10s ease-in-out infinite alternate; }
.scn-mercutio-benvolio-brawl .sun { position:absolute; top:8%; left:60%; width:70px; height:70px; background: radial-gradient(circle, #fff7cc 0%, #fddb6e 40%, #f5b44a 100%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(253,219,110,0.6); animation: mbb-sun 6s ease-in-out infinite alternate; }
.scn-mercutio-benvolio-brawl .building { position:absolute; bottom:30%; height:55%; width:25%; background: linear-gradient(180deg, #b87c4f 0%, #8f5d34 100%); border-radius: 4% 4% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.3); }
.scn-mercutio-benvolio-brawl .building.left { left:5%; }
.scn-mercutio-benvolio-brawl .building.right { right:5%; }
.scn-mercutio-benvolio-brawl .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b58a4a 0%, #8a6a38 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; animation: mbb-ground 8s ease-in-out infinite; }
.scn-mercutio-benvolio-brawl .figure { position:absolute; bottom:25%; width:30px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: mbb-fig 1.5s ease-in-out infinite alternate; }
.scn-mercutio-benvolio-brawl .figure.benvolio { left:38%; transform-origin: bottom center; animation-delay:0.2s; }
.scn-mercutio-benvolio-brawl .figure.mercutio { left:52%; transform-origin: bottom center; animation-delay:0.5s; }
.scn-mercutio-benvolio-brawl .shadow { position:absolute; bottom:24%; left:35%; width:30%; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%); animation: mbb-shadow 1.5s ease-in-out infinite alternate; }
.scn-mercutio-benvolio-brawl .dust { position:absolute; bottom:26%; left:42%; width:20px; height:20px; background: radial-gradient(circle, rgba(180,140,80,0.6) 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: mbb-dust 2s ease-out infinite; }
@keyframes mbb-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes mbb-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.98) } }
@keyframes mbb-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mbb-fig { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 50% { transform: translateX(5px) translateY(-3px) rotate(2deg) } 100% { transform: translateX(-3px) translateY(0) rotate(-1deg) } }
@keyframes mbb-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.9) } }
@keyframes mbb-dust { 0% { transform: translateY(0) scale(1); opacity:1 } 100% { transform: translateY(-30px) scale(2); opacity:0 } }

/* Scene: mercutio-quarrels */
.scn-mercutio-quarrels { background: linear-gradient(180deg, #ffe599 0%, #ffd966 40%, #f0b54d 100%), radial-gradient(circle at 50% 20%, #fff3b0 0%, transparent 60%); }
.scn-mercutio-quarrels .sky { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #ffecb0 0%, #ffd580 100%); animation: mq-sky 14s ease-in-out infinite alternate; }
.scn-mercutio-quarrels .sun-burst { position:absolute; top:5%; left:45%; width:100px; height:100px; background: radial-gradient(circle, #fff8d0 0%, #ffe066 40%, transparent 70%); border-radius:50%; animation: mq-sunburst 8s ease-in-out infinite; }
.scn-mercutio-quarrels .merc-face { position:absolute; bottom:35%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #e6c59c 0%, #c79c6b 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(10deg); animation: mq-face 2s ease-in-out infinite alternate; }
.scn-mercutio-quarrels .ben-face { position:absolute; bottom:35%; right:30%; width:40px; height:50px; background: linear-gradient(180deg, #e0b888 0%, #c09060 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-8deg); animation: mq-face 2.3s ease-in-out infinite alternate-reverse; }
.scn-mercutio-quarrels .hand-left { position:absolute; bottom:42%; left:28%; width:16px; height:25px; background: linear-gradient(180deg, #dbb07a 0%, #b08050 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(30deg); transform-origin: bottom center; animation: mq-hand 1.5s ease-in-out infinite; }
.scn-mercutio-quarrels .hand-right { position:absolute; bottom:42%; right:28%; width:16px; height:25px; background: linear-gradient(180deg, #dbb07a 0%, #b08050 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(-30deg); transform-origin: bottom center; animation: mq-hand 1.8s ease-in-out infinite alternate; }
.scn-mercutio-quarrels .pop { position:absolute; top:40%; left:48%; width:12px; height:12px; background: radial-gradient(circle, #ffd966 0%, transparent 70%); border-radius:50%; animation: mq-pop 3s ease-out infinite; }
.scn-mercutio-quarrels .exaggerate { position:absolute; top:25%; left:35%; width:40px; height:30px; background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 80%); animation: mq-exag 4s ease-in-out infinite; }
@keyframes mq-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes mq-sunburst { 0% { transform: scale(1); opacity:0.7 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.9); opacity:0.8 } }
@keyframes mq-face { 0% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-4px) } 100% { transform: rotate(12deg) translateY(0) } }
@keyframes mq-hand { 0% { transform: rotate(20deg) scaleY(1) } 50% { transform: rotate(45deg) scaleY(1.1) } 100% { transform: rotate(10deg) scaleY(0.9) } }
@keyframes mq-pop { 0% { transform: scale(0); opacity:1 } 50% { transform: scale(3); opacity:0.5 } 100% { transform: scale(0); opacity:0 } }
@keyframes mq-exag { 0% { transform: scale(1) } 50% { transform: scale(1.8) } 100% { transform: scale(0.7) } }

/* Scene: tybalt-arrives */
.scn-tybalt-arrives { background: linear-gradient(180deg, #c9a97c 0%, #b8925e 40%, #8f6d42 100%), radial-gradient(ellipse at 50% 30%, #f5dba8 0%, transparent 70%); }
.scn-tybalt-arrives .sky { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #ecc88c 0%, #d9a86a 100%); animation: ta-sky 12s ease-in-out infinite alternate; }
.scn-tybalt-arrives .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #a67c4a 0%, #785a3a 100%); border-radius: 20% 20% 0 0; }
.scn-tybalt-arrives .group-capulet { position:absolute; bottom:18%; left:30%; width:80px; height:100px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; clip-path: polygon(0% 100%, 20% 0%, 40% 30%, 60% 0%, 80% 40%, 100% 0%, 100% 100%); animation: ta-approach 6s ease-in-out infinite; }
.scn-tybalt-arrives .tybalt { position:absolute; bottom:20%; left:42%; width:25px; height:70px; background: linear-gradient(180deg, #3a2218 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ta-stride 2s ease-in-out infinite alternate; }
.scn-tybalt-arrives .shadow-long { position:absolute; bottom:17%; left:40%; width:15%; height:6px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%); animation: ta-shadow 2s ease-in-out infinite alternate; }
.scn-tybalt-arrives .figure-small { position:absolute; bottom:23%; width:18px; height:40px; background: #5a3a2a; border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; animation: ta-smallfig 3s ease-in-out infinite; }
.scn-tybalt-arrives .figure-small.left { left:52%; animation-delay:0.3s; }
.scn-tybalt-arrives .figure-small.right { right:38%; animation-delay:0.7s; }
.scn-tybalt-arrives .blade { position:absolute; bottom:40%; left:46%; width:4px; height:30px; background: #b0a090; border-radius: 0 0 20% 20%; transform: rotate(5deg); box-shadow: 0 0 6px rgba(255,255,200,0.4); animation: ta-blade 1.2s ease-in-out infinite alternate; }
@keyframes ta-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ta-approach { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(8px) scale(1.02) } 100% { transform: translateX(-4px) scale(0.98) } }
@keyframes ta-stride { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(3deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ta-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } 100% { transform: scaleX(0.8) } }
@keyframes ta-smallfig { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ta-blade { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }

/* Scene: romeo-intervenes */
.scn-romeo-intervenes { background: linear-gradient(180deg, #d9b57a 0%, #c09560 40%, #a07a4a 100%), radial-gradient(ellipse at 60% 30%, #f5ddb0 0%, transparent 60%); }
.scn-romeo-intervenes .sky { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #eccc90 0%, #d8ac70 100%); animation: ri-sky 15s ease-in-out infinite alternate; }
.scn-romeo-intervenes .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a6a40 0%, #6a4e2e 100%); border-radius: 10% 10% 0 0; }
.scn-romeo-intervenes .figure { position:absolute; bottom:22%; width:28px; height:65px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; }
.scn-romeo-intervenes .figure.mercutio { left:35%; animation: ri-fig 2s ease-in-out infinite alternate; }
.scn-romeo-intervenes .figure.tybalt { right:35%; animation: ri-fig 2.2s ease-in-out infinite alternate-reverse; }
.scn-romeo-intervenes .figure.romeo { left:45%; width:30px; height:68px; background: linear-gradient(180deg, #705030 0%, #483018 100%); animation: ri-romeo 1.8s ease-in-out infinite; }
.scn-romeo-intervenes .arm-extend { position:absolute; bottom:40%; left:47%; width:20px; height:6px; background: #6a4e30; border-radius: 40% 40% 40% 40%; transform: rotate(50deg); transform-origin: left center; animation: ri-arm 2.5s ease-in-out infinite alternate; }
.scn-romeo-intervenes .shadow-group { position:absolute; bottom:18%; left:30%; width:40%; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%); animation: ri-shadow 3s ease-in-out infinite; }
.scn-romeo-intervenes .dust { position:absolute; bottom:20%; left:44%; width:15px; height:15px; background: radial-gradient(circle, rgba(180,140,80,0.5) 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: ri-dust 4s ease-out infinite; }
.scn-romeo-intervenes .pause-burst { position:absolute; top:30%; left:45%; width:20px; height:20px; background: radial-gradient(circle, #ffd160 0%, transparent 70%); border-radius:50%; animation: ri-burst 3s ease-in-out infinite; }
@keyframes ri-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ri-fig { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-5px) rotate(3deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ri-romeo { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(3px) translateY(-4px) } 100% { transform: translateX(-2px) translateY(0) } }
@keyframes ri-arm { 0% { transform: rotate(40deg) scaleX(1) } 50% { transform: rotate(70deg) scaleX(1.2) } 100% { transform: rotate(30deg) scaleX(0.9) } }
@keyframes ri-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.4) } 100% { transform: scaleX(0.8) } }
@keyframes ri-dust { 0% { transform: translateY(0) scale(1); opacity:1 } 100% { transform: translateY(-40px) scale(2.5); opacity:0 } }
@keyframes ri-burst { 0% { transform: scale(0); opacity:0.8 } 50% { transform: scale(3); opacity:0 } 100% { transform: scale(0); opacity:0 } }

/* scene: benvolio-weeps (calm, sunlit) */
.scn-benvolio-weeps { background: linear-gradient(180deg, #c9d8e0 0%, #f0e6d0 40%, #e8c9a0 100%), radial-gradient(ellipse at 80% 20%, #fff5d0 0%, transparent 60%); }
.scn-benvolio-weeps .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b8ccd8 0%, #e3d8c0 100%); animation: bw-sky 10s ease-in-out infinite alternate; }
.scn-benvolio-weeps .wall { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #a8896a 0%, #8b6f52 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.3); animation: bw-wall 8s ease-in-out infinite; }
.scn-benvolio-weeps .figure { position:absolute; bottom:22%; left:50%; width:24px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3c2a 0%, #2d2418 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bw-figure 6s ease-in-out infinite; }
.scn-benvolio-weeps .head { position:absolute; bottom:56%; left:50%; width:20px; height:22px; transform:translateX(-50%) rotate(10deg); background: linear-gradient(180deg, #4a3c2a 0%, #2d2418 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bw-head 4s ease-in-out infinite; }
.scn-benvolio-weeps .tear { position:absolute; bottom:48%; left:50%; width:4px; height:6px; background: radial-gradient(circle, #b0d0e0 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 6px 2px #b0d0e0; animation: bw-tear 3s ease-in-out infinite; }
.scn-benvolio-weeps .shadow { position:absolute; bottom:18%; left:40%; width:50px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); animation: bw-shadow 6s ease-in-out infinite; }
.scn-benvolio-weeps .glow { position:absolute; top:15%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #ffe4b0 0%, transparent 60%); border-radius: 50%; filter: blur(6px); animation: bw-glow 12s ease-in-out infinite alternate; }
@keyframes bw-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes bw-wall { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes bw-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 30% { transform: translateX(-50%) translateY(-1px) rotate(-2deg) } 60% { transform: translateX(-50%) translateY(1px) rotate(1deg) } }
@keyframes bw-head { 0%,100% { transform: translateX(-50%) rotate(10deg) } 50% { transform: translateX(-50%) rotate(18deg) } }
@keyframes bw-tear { 0%,100% { transform: translateY(0) scale(1); opacity:0.6 } 50% { transform: translateY(-10px) scale(1.2); opacity:1 } }
@keyframes bw-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.8) } }
@keyframes bw-glow { 0% { opacity:0.5; transform: scale(0.8) } 50% { opacity:0.8; transform: scale(1.2) } 100% { opacity:0.6; transform: scale(1) } }

/* scene: benvolio-advises-forget (warm, sunlit) */
.scn-benvolio-advises-forget { background: linear-gradient(180deg, #d4c4a8 0%, #f0dbb0 30%, #e6c48a 100%), radial-gradient(ellipse at 30% 10%, #fff8e0 0%, transparent 50%); }
.scn-benvolio-advises-forget .window { position:absolute; top:10%; left:15%; width:120px; height:150px; background: linear-gradient(180deg, #b0997a 0%, #8a7354 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 0 4px #5a4a3a; animation: ba-window 20s ease-in-out infinite; }
.scn-benvolio-advises-forget .sky { position:absolute; top:8%; left:17%; width:110px; height:140px; background: linear-gradient(180deg, #b8cce0 0%, #d4d8c0 100%); border-radius: 8%; opacity:0.6; animation: ba-sky 10s ease-in-out infinite alternate; }
.scn-benvolio-advises-forget .romeo { position:absolute; bottom:30%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #4a3c2a 0%, #2d2418 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: ba-romeo 5s ease-in-out infinite; }
.scn-benvolio-advises-forget .benvolio { position:absolute; bottom:30%; left:60%; width:24px; height:55px; background: linear-gradient(180deg, #5a4c3a 0%, #3a2c1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ba-benvolio 6s ease-in-out infinite; }
.scn-benvolio-advises-forget .arm { position:absolute; bottom:48%; left:60%; width:30px; height:6px; background: linear-gradient(180deg, #5a4c3a 0%, #3a2c1a 100%); border-radius: 50% 50% 0 0; transform-origin: right center; transform: rotate(-30deg); animation: ba-arm 4s ease-in-out infinite; }
.scn-benvolio-advises-forget .flower { position:absolute; bottom:28%; left:70%; width:10px; height:14px; background: radial-gradient(circle at 30% 30%, #e8a060 0%, #c08040 60%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ba-flower 7s ease-in-out infinite; }
.scn-benvolio-advises-forget .rays { position:absolute; top:5%; left:50%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,235,180,0.4) 0%, transparent 60%); filter: blur(8px); animation: ba-rays 12s linear infinite; }
@keyframes ba-window { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } }
@keyframes ba-sky { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.6 } }
@keyframes ba-romeo { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-3px) } }
@keyframes ba-benvolio { 0%,100% { transform: translateY(0) rotate(0) } 40% { transform: translateY(-2px) rotate(2deg) } 80% { transform: translateY(1px) rotate(-1deg) } }
@keyframes ba-arm { 0%,100% { transform: rotate(-30deg) } 50% { transform: rotate(-20deg) } }
@keyframes ba-flower { 0%,100% { transform: scale(1) translateY(0) } 30% { transform: scale(1.1) translateY(-2px) } 70% { transform: scale(0.9) translateY(1px) } }
@keyframes ba-rays { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

/* scene: servant-reads-list (funny, sunlit) */
.scn-servant-reads-list { background: linear-gradient(180deg, #c8c4b8 0%, #e8dcc8 50%, #f0e0c0 100%), radial-gradient(ellipse at 50% 100%, #fff8e0 0%, transparent 60%); }
.scn-servant-reads-list .bg { position:absolute; inset:0; background: linear-gradient(180deg, #a89878 0%, #c8b898 100%); opacity:0.5; animation: sr-bg 15s ease-in-out infinite alternate; }
.scn-servant-reads-list .scroll { position:absolute; bottom:40%; left:50%; width:80px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #e8d8b0 0%, #c8b888 100%); border-radius: 0 0 20% 20% / 0 0 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: sr-scroll 4s ease-in-out infinite; }
.scn-servant-reads-list .head { position:absolute; bottom:52%; left:50%; width:28px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3c2a 0%, #2d2418 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sr-head 3s ease-in-out infinite; }
.scn-servant-reads-list .cap { position:absolute; bottom:68%; left:50%; width:34px; height:12px; transform:translateX(-50%) rotate(-5deg); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; animation: sr-cap 2s ease-in-out infinite; }
.scn-servant-reads-list .hands { position:absolute; bottom:38%; left:48%; width:20px; height:16px; background: linear-gradient(180deg, #5a4c3a 0%, #3a2c1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: sr-hands 3s ease-in-out infinite; }
.scn-servant-reads-list .lines { position:absolute; bottom:44%; left:50%; width:50px; height:30px; transform:translateX(-50%); background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 2px, transparent 2px, transparent 8px); opacity:0.6; animation: sr-lines 5s ease-in-out infinite; }
@keyframes sr-bg { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.5 } }
@keyframes sr-scroll { 0%,100% { transform: translateX(-50%) rotate(0) } 30% { transform: translateX(-50%) rotate(3deg) } 60% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes sr-head { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(5deg) } }
@keyframes sr-cap { 0%,100% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(5deg) } }
@keyframes sr-hands { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-4px) } }
@keyframes sr-lines { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

/* scene: benvolio-romeo-servant (warm, sunlit) */
.scn-benvolio-romeo-servant { background: linear-gradient(180deg, #b8a888 0%, #c8b898 30%, #d8c8a8 100%), radial-gradient(ellipse at 100% 0%, #fff0d0 0%, transparent 50%); }
.scn-benvolio-romeo-servant .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.4); animation: brs-ground 10s ease-in-out infinite; }
.scn-benvolio-romeo-servant .wall { position:absolute; bottom:20%; left:0; right:0; height:70%; background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%); border-radius: 0 0 8% 8%; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); animation: brs-wall 12s ease-in-out infinite alternate; }
.scn-benvolio-romeo-servant .romeo-seated { position:absolute; bottom:18%; left:30%; width:26px; height:50px; background: linear-gradient(180deg, #4a3c2a 0%, #2d2418 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform: rotate(15deg); transform-origin: bottom center; animation: brs-romeo 4s ease-in-out infinite; }
.scn-benvolio-romeo-servant .servant { position:absolute; bottom:22%; left:55%; width:22px; height:55px; background: linear-gradient(180deg, #5a4c3a 0%, #3a2c1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: brs-servant 5s ease-in-out infinite; }
.scn-benvolio-romeo-servant .chain { position:absolute; bottom:30%; left:28%; width:30px; height:4px; background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: brs-chain 3s ease-in-out infinite; }
.scn-benvolio-romeo-servant .bread { position:absolute; bottom:14%; left:42%; width:16px; height:12px; background: linear-gradient(180deg, #d8b850 0%, #b89030 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: brs-bread 6s ease-in-out infinite; }
.scn-benvolio-romeo-servant .light { position:absolute; top:5%; left:40%; width:120px; height:120px; background: radial-gradient(circle, rgba(255,235,180,0.3) 0%, transparent 70%); filter: blur(10px); animation: brs-light 8s ease-in-out infinite alternate; }
@keyframes brs-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes brs-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes brs-romeo { 0%,100% { transform: rotate(15deg) translateY(0) } 40% { transform: rotate(10deg) translateY(-2px) } 80% { transform: rotate(18deg) translateY(1px) } }
@keyframes brs-servant { 0%,100% { transform: translateY(0) } 30% { transform: translateY(-3px) } 70% { transform: translateY(1px) } }
@keyframes brs-chain { 0%,100% { transform: translateX(0) } 50% { transform: translateX(5px) } }
@keyframes brs-bread { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }
@keyframes brs-light { 0% { opacity:0.4; transform: scale(0.9) } 100% { opacity:0.7; transform: scale(1.2) } }

/* romeo-reads-list */
.scn-romeo-reads-list { background: linear-gradient(180deg, #c8b688 0%, #e3d5b0 40%, #f5ecc0 70%, #fff8e0 100%), radial-gradient(ellipse at 50% 20%, #f5ecc0 0%, transparent 70%); }
.scn-romeo-reads-list .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #dac29a 0%, #e6d4ad 100%); }
.scn-romeo-reads-list .window { position:absolute; top:8%; left:35%; width:30%; height:38%; background: linear-gradient(180deg, #b3d8f0 0%, #d4edfc 100%); border: 6px solid #8a6e4b; border-radius: 2px; box-shadow: inset 0 0 20px rgba(255,255,240,.5); }
.scn-romeo-reads-list .light-beam { position:absolute; top:30%; left:38%; width:24%; height:40%; background: linear-gradient(180deg, rgba(255,248,220,.6) 0%, rgba(255,248,220,0) 100%); clip-path: polygon(30% 0, 70% 0, 85% 100%, 15% 100%); filter: blur(4px); animation: rrl-beam 6s ease-in-out infinite alternate; }
.scn-romeo-reads-list .table { position:absolute; bottom:28%; left:25%; width:50%; height:10%; background: linear-gradient(180deg, #6a4a2e 0%, #4a301e 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-romeo-reads-list .book { position:absolute; bottom:32%; left:42%; width:16%; height:14%; background: linear-gradient(180deg, #d4a76a 0%, #b08040 100%); border-radius: 6% 6% 20% 20%; transform: rotate(2deg); box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: rrl-book 7s ease-in-out infinite; }
.scn-romeo-reads-list .figure { position:absolute; bottom:30%; left:38%; width:12%; height:40%; background: linear-gradient(180deg, #1e1e2e 0%, #2a2a3a 50%, #1a1a28 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; box-shadow: -4px 0 8px rgba(0,0,0,.3); }
.scn-romeo-reads-list .page { position:absolute; bottom:32%; left:44%; width:8%; height:6%; background: #f8f0d8; border-radius: 10% 80% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.1); transform: rotate(5deg); animation: rrl-page 4s ease-in-out infinite alternate; }
@keyframes rrl-beam { 0%,100% { opacity:.3; transform: scaleX(1); } 50% { opacity:.6; transform: scaleX(1.1); } }
@keyframes rrl-book { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } }
@keyframes rrl-page { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(8deg) translateX(1px); } 100% { transform: rotate(2deg) translateX(0); } }

/* servant-invites-romeo */
.scn-servant-invites-romeo { background: linear-gradient(180deg, #f9d48c 0%, #f0b86e 30%, #e09c4a 60%, #c88030 100%), radial-gradient(ellipse at 50% 0%, #fef0d0 0%, transparent 70%); }
.scn-servant-invites-romeo .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8d8f0 0%, #f5e6c0 100%); animation: ssi-sky 20s ease-in-out infinite alternate; }
.scn-servant-invites-romeo .buildings { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(90deg, #a08060 0%, #b09070 20%, #a08060 40%, #907050 60%, #a08060 80%, #b09070 100%); border-radius: 20% 20% 0 0; clip-path: polygon(10% 0, 25% 0, 25% 100%, 10% 100%, 10% 40%, 0 40%, 0 100%, 100% 100%, 100% 30%, 85% 30%, 85% 0, 70% 0, 70% 100%, 55% 100%, 55% 20%, 40% 20%, 40% 100%, 20% 100%, 20% 0); box-shadow: inset 0 8px 12px rgba(0,0,0,.2); }
.scn-servant-invites-romeo .street { position:absolute; bottom:25%; left:0; right:0; height:15%; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); }
.scn-servant-invites-romeo .lantern { position:absolute; bottom:45%; left:60%; width:4%; height:8%; background: #d08030; border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px #f0a040; animation: ssi-lantern 3s ease-in-out infinite alternate; }
.scn-servant-invites-romeo .servant { position:absolute; bottom:30%; left:55%; width:8%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ssi-arm 4s ease-in-out infinite; }
.scn-servant-invites-romeo .servant::after { content:''; position:absolute; top:-10%; left:60%; width:40%; height:30%; background: #4a3a2a; border-radius: 40% 10% 40% 10%; transform: rotate(30deg); animation: ssi-arm 4s ease-in-out infinite; }
.scn-servant-invites-romeo .romeo { position:absolute; bottom:30%; left:25%; width:7%; height:35%; background: linear-gradient(180deg, #1e1e2e 0%, #2a2a3a 50%, #1a1a28 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ssi-walk 6s ease-in-out infinite; }
.scn-servant-invites-romeo .cloud-a { position:absolute; top:12%; left:10%; width:20%; height:6%; background: rgba(255,255,255,.5); border-radius: 50%; filter: blur(8px); animation: ssi-drift-a 40s linear infinite; }
.scn-servant-invites-romeo .cloud-b { position:absolute; top:18%; right:15%; width:15%; height:5%; background: rgba(255,255,255,.4); border-radius: 50%; filter: blur(6px); animation: ssi-drift-b 50s linear infinite reverse; }
@keyframes ssi-sky { 0%,100% { opacity:.8; } 50% { opacity:1; } }
@keyframes ssi-lantern { 0% { box-shadow: 0 0 20px 6px #f0a040; } 50% { box-shadow: 0 0 30px 10px #f0c060; } 100% { box-shadow: 0 0 20px 6px #f0a040; } }
@keyframes ssi-arm { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } }
@keyframes ssi-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(6px) rotate(0deg); } 75% { transform: translateX(9px) rotate(-2deg); } 100% { transform: translateX(12px) rotate(0deg); } }
@keyframes ssi-drift-a { 0% { transform: translateX(-20vw); } 100% { transform: translateX(120vw); } }
@keyframes ssi-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* lady-capulet-paris-proposal */
.scn-lady-capulet-paris-proposal { background: linear-gradient(180deg, #f5e6c0 0%, #e0cca0 40%, #c8b080 100%), radial-gradient(ellipse at 50% 80%, #f0d8b0 0%, transparent 70%); }
.scn-lady-capulet-paris-proposal .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #d8c49e 0%, #c8b48e 100%); }
.scn-lady-capulet-paris-proposal .window-frame { position:absolute; top:10%; left:15%; width:25%; height:40%; background: #a08868; border: 6px solid #705840; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,248,220,.3); }
.scn-lady-capulet-paris-proposal .curtain-left { position:absolute; top:8%; left:13%; width:14%; height:44%; background: linear-gradient(90deg, #b89878 0%, #c8a888 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%); animation: lc-curtain 8s ease-in-out infinite alternate; }
.scn-lady-capulet-paris-proposal .curtain-right { position:absolute; top:8%; right:55%; width:14%; height:44%; background: linear-gradient(90deg, #c8a888 0%, #b89878 100%); clip-path: polygon(20% 0, 100% 0, 100% 100%, 0 100%); animation: lc-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-lady-capulet-paris-proposal .chair { position:absolute; bottom:28%; left:35%; width:18%; height:22%; background: linear-gradient(180deg, #604030 0%, #402820 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-lady-capulet-paris-proposal .lady-capulet { position:absolute; bottom:30%; left:32%; width:10%; height:35%; background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: lc-breathe 5s ease-in-out infinite; }
.scn-lady-capulet-paris-proposal .juliet { position:absolute; bottom:30%; left:55%; width:9%; height:32%; background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: lc-breathe 5s ease-in-out infinite 2s; }
.scn-lady-capulet-paris-proposal .candle { position:absolute; bottom:48%; left:28%; width:2%; height:6%; background: #f0d080; border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 8px #f0c060; animation: lc-candle 4s ease-in-out infinite alternate; }
@keyframes lc-curtain { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } }
@keyframes lc-breathe { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } }
@keyframes lc-candle { 0% { box-shadow: 0 0 20px 8px #f0c060; opacity:.9; } 50% { box-shadow: 0 0 28px 12px #f0d080; opacity:1; } 100% { box-shadow: 0 0 20px 8px #f0c060; opacity:.9; } }

/* juliet-responds */
.scn-juliet-responds { background: linear-gradient(180deg, #f0d8b0 0%, #dcc4a0 30%, #c8b090 60%, #b09880 100%), radial-gradient(ellipse at 50% 10%, #fff0d0 0%, transparent 60%); }
.scn-juliet-responds .bg-column { position:absolute; top:0; left:10%; width:8%; height:100%; background: linear-gradient(90deg, #a08868 0%, #c0a888 50%, #a08868 100%); box-shadow: 2px 0 10px rgba(0,0,0,.2); }
.scn-juliet-responds .light-shaft { position:absolute; top:5%; left:25%; width:50%; height:60%; background: linear-gradient(180deg, rgba(255,248,220,.5) 0%, rgba(255,248,220,0) 100%); clip-path: polygon(25% 0, 75% 0, 100% 100%, 0% 100%); filter: blur(6px); animation: jr-shaft 8s ease-in-out infinite alternate; }
.scn-juliet-responds .window-grille { position:absolute; top:8%; left:38%; width:24%; height:35%; border: 4px solid #705840; border-radius: 4px; background: linear-gradient(180deg, #b3d0e8 0%, #d0e4f0 100%); box-shadow: inset 0 0 20px rgba(255,255,240,.3); }
.scn-juliet-responds .juliet-silhouette { position:absolute; bottom:30%; left:30%; width:12%; height:40%; background: linear-gradient(180deg, #1e1e2e 0%, #2a2a3a 50%, #1a1a28 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: jr-turn 6s ease-in-out infinite; }
.scn-juliet-responds .flower { position:absolute; bottom:35%; left:33%; width:4%; height:6%; background: radial-gradient(circle, #d080a0 0%, #a06080 70%); border-radius: 50% 50% 30% 30%; transform: rotate(-15deg); animation: jr-flower 3s ease-in-out infinite alternate; }
.scn-juliet-responds .servant-bg { position:absolute; bottom:30%; right:15%; width:8%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: jr-enter 10s ease-in-out infinite; }
.scn-juliet-responds .step { position:absolute; bottom:28%; left:40%; width:20%; height:4%; background: linear-gradient(180deg, #b09880 0%, #a08868 100%); border-radius: 20% 20% 0 0; animation: jr-step 10s ease-in-out infinite; }
@keyframes jr-shaft { 0%,100% { opacity:.3; transform: scaleX(1); } 50% { opacity:.5; transform: scaleX(1.1); } }
@keyframes jr-turn { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(3deg); } }
@keyframes jr-flower { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.1); } 100% { transform: rotate(-20deg) scale(1); } }
@keyframes jr-enter { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-5px) scaleX(1.05); } }
@keyframes jr-step { 0%,100% { opacity:.4; } 50% { opacity:.8; } }

.scn-nurse-advises-marry-paris {
  background:
    linear-gradient(180deg, #2a1e1a 0%, #1a1410 70%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a20 0%, transparent 70%);
}

.scn-nurse-advises-marry-paris .walls {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2e2a 0%, #1a1410 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
  animation: nmp-walls 8s ease-in-out infinite alternate;
}

.scn-nurse-advises-marry-paris .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #1e1612 0%, #100c0a 100%);
  box-shadow: inset 0 10px 25px rgba(0,0,0,.7);
}

.scn-nurse-advises-marry-paris .table {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 120px;
  height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a30 0%, #2e221c 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: nmp-table 6s ease-in-out infinite;
}

.scn-nurse-advises-marry-paris .candle {
  position: absolute;
  bottom: 34%;
  left: 50%;
  width: 8px;
  height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0d0a0 0%, #c09060 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 30px 10px #d0a070, 0 0 60px 20px rgba(200,140,80,.4);
  animation: nmp-candle 2s ease-in-out infinite alternate;
}

.scn-nurse-advises-marry-paris .nurse-silhouette {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 35px;
  height: 50px;
  background: linear-gradient(180deg, #0e0a08 0%, #060504 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nmp-nurse 4s ease-in-out infinite;
}

.scn-nurse-advises-marry-paris .shadow-table {
  position: absolute;
  bottom: 30%;
  left: 48%;
  width: 80px;
  height: 25px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%);
  transform: skewX(-30deg);
  animation: nmp-shadow 6s ease-in-out infinite;
}

@keyframes nmp-walls { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes nmp-table { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes nmp-candle { 0% { box-shadow: 0 0 25px 8px #d0a070, 0 0 50px 15px rgba(200,140,80,.3); transform: scaleY(1); } 50% { box-shadow: 0 0 40px 14px #f0c080, 0 0 70px 25px rgba(240,192,128,.5); transform: scaleY(1.05); } 100% { box-shadow: 0 0 25px 8px #d0a070, 0 0 50px 15px rgba(200,140,80,.3); transform: scaleY(1); } }
@keyframes nmp-nurse { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(1deg); } 100% { transform: translateX(20px) rotate(0); } }
@keyframes nmp-shadow { 0%,100% { opacity: .5; transform: skewX(-30deg) scaleX(1); } 50% { opacity: .7; transform: skewX(-30deg) scaleX(1.1); } }

/* ---- scene 2 ---- */

.scn-juliet-rejects-nurse {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 60%, #080812 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 80%);
}

.scn-juliet-rejects-nurse .walls {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #24243a 0%, #12121e 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: inset 0 0 50px rgba(0,0,0,.7);
}

.scn-juliet-rejects-nurse .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #18182a 0%, #0c0c16 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.8);
}

.scn-juliet-rejects-nurse .window-light {
  position: absolute;
  top: 15%;
  right: 20%;
  width: 60px;
  height: 80px;
  background: radial-gradient(ellipse, rgba(180,200,255,.15) 0%, transparent 70%);
  border-radius: 10%;
  filter: blur(8px);
  animation: jrn-light 12s ease-in-out infinite alternate;
}

.scn-juliet-rejects-nurse .juliet-silhouette {
  position: absolute;
  bottom: 28%;
  left: 55%;
  width: 30px;
  height: 55px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jrn-juliet 7s ease-in-out infinite;
}

.scn-juliet-rejects-nurse .nurse-silhouette {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 40px;
  height: 60px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jrn-nurse 6s ease-in-out infinite alternate;
}

.scn-juliet-rejects-nurse .door {
  position: absolute;
  bottom: 25%;
  left: 8%;
  width: 50px;
  height: 90px;
  background: linear-gradient(180deg, #2a2a44 0%, #16162a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.6);
  animation: jrn-door 9s ease-in-out infinite;
}

@keyframes jrn-light { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .2; } }
@keyframes jrn-juliet { 0%,100% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(-4px) rotate(1deg); } 50% { transform: translateX(-8px) rotate(-2deg); } 75% { transform: translateX(-4px) rotate(2deg); } }
@keyframes jrn-nurse { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(3deg); } 50% { transform: translateX(6px) rotate(0); } 75% { transform: translateX(3px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes jrn-door { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(.95); } }

/* ---- scene 3 ---- */

.scn-paris-and-juliet-meet {
  background:
    linear-gradient(180deg, #f5f0e0 0%, #e8dfc8 40%, #d4c9ae 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e8 0%, transparent 70%);
}

.scn-paris-and-juliet-meet .bg-arch {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #efe8d8 0%, #dcd0b8 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,.1);
}

.scn-paris-and-juliet-meet .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #c8b898 0%, #b0a080 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.15);
}

.scn-paris-and-juliet-meet .altar {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 50px;
  height: 15px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d8c8a0 0%, #b8a880 100%);
  border-radius: 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,.2);
}

.scn-paris-and-juliet-meet .paris-figure {
  position: absolute;
  bottom: 28%;
  left: 38%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pjm-paris 5s ease-in-out infinite;
}

.scn-paris-and-juliet-meet .juliet-figure {
  position: absolute;
  bottom: 30%;
  left: 58%;
  width: 28px;
  height: 48px;
  background: linear-gradient(180deg, #c8a878 0%, #a08058 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pjm-juliet 5s ease-in-out infinite alternate;
}

.scn-paris-and-juliet-meet .light-beam {
  position: absolute;
  top: 8%;
  left: 45%;
  width: 100px;
  height: 200px;
  background: linear-gradient(180deg, rgba(255,240,200,.25) 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  filter: blur(10px);
  animation: pjm-beam 8s ease-in-out infinite alternate;
}

.scn-paris-and-juliet-meet .flower-vase {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 12px;
  height: 18px;
  transform: translateX(-50%) translateY(-10px);
  background: linear-gradient(180deg, #b07040 0%, #804828 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
}

@keyframes pjm-paris { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(2deg); } }
@keyframes pjm-juliet { 0% { transform: translateX(0) rotate(2deg); } 100% { transform: translateX(-5px) rotate(-2deg); } }
@keyframes pjm-beam { 0% { opacity: .4; transform: scaleX(1); } 50% { opacity: .7; transform: scaleX(1.05); } 100% { opacity: .3; transform: scaleX(.95); } }

/* ---- scene 4 ---- */

.scn-juliet-desperate {
  background:
    linear-gradient(180deg, #f0f4f8 0%, #dce4ec 50%, #c8d0d8 100%),
    radial-gradient(ellipse at 50% 10%, #ffffff 0%, transparent 70%);
}

.scn-juliet-desperate .walls {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8f0f8 0%, #c8d0d8 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.05);
}

.scn-juliet-desperate .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #b0b8c0 0%, #9098a0 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.1);
}

.scn-juliet-desperate .window {
  position: absolute;
  top: 10%;
  right: 20%;
  width: 80px;
  height: 100px;
  background: radial-gradient(ellipse, rgba(255,255,255,.9) 0%, rgba(200,220,255,.3) 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(200,220,255,.3);
  animation: jdt-window 10s ease-in-out infinite alternate;
}

.scn-juliet-desperate .juliet-figure {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 32px;
  height: 60px;
  background: linear-gradient(180deg, #2a2e32 0%, #181c20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jdt-juliet 3s ease-in-out infinite;
}

.scn-juliet-desperate .table {
  position: absolute;
  bottom: 24%;
  left: 50%;
  width: 80px;
  height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a0a8b0 0%, #788088 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,.15);
}

.scn-juliet-desperate .chair {
  position: absolute;
  bottom: 25%;
  left: 60%;
  width: 30px;
  height: 45px;
  background: linear-gradient(180deg, #788088 0%, #586068 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(5deg);
  animation: jdt-chair 8s ease-in-out infinite;
}

.scn-juliet-desperate .shadow {
  position: absolute;
  bottom: 28%;
  left: 43%;
  width: 50px;
  height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%);
  animation: jdt-shadow 6s ease-in-out infinite alternate;
}

.scn-juliet-desperate .tear {
  position: absolute;
  bottom: 45%;
  left: 48%;
  width: 4px;
  height: 8px;
  background: radial-gradient(circle, #b0d0f0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(176,208,240,.6);
  animation: jdt-tear 2s ease-in-out infinite;
}

@keyframes jdt-window { 0% { opacity: .7; transform: scaleY(1); } 50% { opacity: .9; transform: scaleY(1.02); } 100% { opacity: .6; transform: scaleY(.98); } }
@keyframes jdt-juliet { 0% { transform: translateX(0) rotate(-3deg); } 20% { transform: translateX(3px) rotate(2deg); } 40% { transform: translateX(-2px) rotate(-1deg); } 60% { transform: translateX(5px) rotate(3deg); } 80% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes jdt-chair { 0%,100% { transform: rotate(5deg); } 50% { transform: rotate(8deg); } }
@keyframes jdt-shadow { 0% { opacity: .3; } 100% { opacity: .5; } }
@keyframes jdt-tear { 0% { transform: translateY(0) scaleY(1); opacity: .8; } 50% { transform: translateY(10px) scaleY(1.2); opacity: .4; } 100% { transform: translateY(20px) scaleY(1); opacity: 0; } }

.scn-watch-captures-balthasar { background: linear-gradient(180deg, #0b0e2a 0%, #1a1f4a 40%, #2a2f5a 100%), radial-gradient(ellipse at 50% 0%, #2a3a6a 0%, transparent 60%); }
.scn-watch-captures-balthasar .sky-night { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent, transparent 3px, rgba(255,255,255,.03) 3px, rgba(255,255,255,.03) 4px); animation: wcb-stars 30s linear infinite; }
.scn-watch-captures-balthasar .moon { position:absolute; top:12%; left:30%; width:35px; height:35px; background: radial-gradient(circle, #e8e8ff 0%, #a0a0d0 100%); border-radius:50%; box-shadow:0 0 40px 20px rgba(200,200,255,.2); filter:blur(1px); animation: wcb-moon 10s ease-in-out infinite alternate; }
.scn-watch-captures-balthasar .tomb { position:absolute; bottom:15%; left:50%; width:140px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:15% 15% 0 0; box-shadow:inset 0 -10px 20px rgba(0,0,0,.5); }
.scn-watch-captures-balthasar .spade { position:absolute; bottom:28%; left:42%; width:8px; height:40px; background: #3a3a3a; transform:rotate(-20deg) translateY(2px); border-radius:2px 2px 0 0; animation: wcb-spade 3s ease-in-out infinite alternate; }
.scn-watch-captures-balthasar .watcher { position:absolute; bottom:22%; left:38%; width:22px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: wcb-guard 4s ease-in-out infinite; }
.scn-watch-captures-balthasar .balthasar { position:absolute; bottom:20%; left:52%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin:bottom center; animation: wcb-prisoner 5s ease-in-out infinite alternate; }
.scn-watch-captures-balthasar .tree-branch { position:absolute; top:5%; right:20%; width:90px; height:4px; background:#3a2a1a; border-radius:2px; transform:rotate(-30deg); filter:blur(1px); }
@keyframes wcb-stars { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.5; } }
@keyframes wcb-moon { 0% { transform:scale(1) translateY(0); box-shadow:0 0 40px 20px rgba(200,200,255,.2); } 50% { transform:scale(1.05) translateY(-2px); box-shadow:0 0 50px 25px rgba(200,200,255,.3); } 100% { transform:scale(.98) translateY(1px); box-shadow:0 0 35px 15px rgba(200,200,255,.15); } }
@keyframes wcb-spade { 0% { transform:rotate(-20deg) translateY(2px); } 100% { transform:rotate(-25deg) translateY(-2px); } }
@keyframes wcb-guard { 0% { transform:translateX(0) rotate(0); } 25% { transform:translateX(2px) rotate(2deg); } 50% { transform:translateX(0) rotate(0); } 75% { transform:translateX(-2px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes wcb-prisoner { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-4px) rotate(1deg); } 100% { transform:translateY(2px) rotate(-1deg); } }

.scn-capulet-sees-juliet { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a5e 100%), radial-gradient(ellipse at 20% 30%, #4a4a6a 0%, transparent 60%); }
.scn-capulet-sees-juliet .wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%); }
.scn-capulet-sees-juliet .dawn-window { position:absolute; top:12%; right:20%; width:50px; height:70px; background: linear-gradient(180deg, #ffbb88 0%, #aab8cc 100%); border-radius:4px; box-shadow:inset 0 0 20px rgba(255,200,150,.3); animation: csj-dawn 15s ease-in-out infinite alternate; }
.scn-capulet-sees-juliet .bed { position:absolute; bottom:20%; left:50%; width:120px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 0 0; box-shadow:0 -4px 10px rgba(0,0,0,.4); }
.scn-capulet-sees-juliet .juliet-body { position:absolute; bottom:25%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a6a 0%, #4a3a4a 100%); border-radius:45% 45% 40% 40% / 55% 55% 45% 45%; }
.scn-capulet-sees-juliet .dagger { position:absolute; bottom:28%; left:48%; width:6px; height:35px; background:#8a6a5a; transform:rotate(-25deg); border-radius:2px; box-shadow:0 0 4px 2px rgba(200,100,100,.2); animation: csj-dagger 6s ease-in-out infinite alternate; }
.scn-capulet-sees-juliet .capulet-hand { position:absolute; bottom:22%; left:60%; width:20px; height:28px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation: csj-hand 4s ease-in-out infinite; }
.scn-capulet-sees-juliet .blood-stain { position:absolute; bottom:30%; left:46%; width:12px; height:8px; background: radial-gradient(circle, #8a2020 0%, transparent 100%); border-radius:50%; filter:blur(3px); animation: csj-blood 8s ease-in-out infinite alternate; }
@keyframes csj-dawn { 0% { opacity:.6; background: linear-gradient(180deg, #6a8aaa 0%, #8aaacc 100%); } 50% { opacity:.9; background: linear-gradient(180deg, #ffcc99 0%, #aabbdd 100%); } 100% { opacity:.7; background: linear-gradient(180deg, #8866aa 0%, #99aacc 100%); } }
@keyframes csj-dagger { 0% { transform:rotate(-25deg) translateY(0); opacity:.7; } 50% { transform:rotate(-30deg) translateY(-2px); opacity:1; } 100% { transform:rotate(-20deg) translateY(1px); opacity:.8; } }
@keyframes csj-hand { 0% { transform:translateX(0) rotate(0); } 30% { transform:translateX(3px) rotate(5deg); } 60% { transform:translateX(1px) rotate(2deg); } 100% { transform:translateX(-1px) rotate(-3deg); } }
@keyframes csj-blood { 0% { transform:scale(1); opacity:.5; } 50% { transform:scale(1.3); opacity:.9; } 100% { transform:scale(.9); opacity:.4; } }

.scn-friar-confesses-all { background: linear-gradient(180deg, #2a2a3e 0%, #4a4a6e 50%, #6a6a8e 100%), radial-gradient(ellipse at 50% 100%, #8a8aaa 0%, transparent 70%); }
.scn-friar-confesses-all .dawn-sky { position:absolute; inset:0; background: linear-gradient(180deg, #6a8aaa 0%, #aab8cc 40%, transparent 100%); animation: fca-dawn 12s ease-in-out infinite alternate; }
.scn-friar-confesses-all .pillar-left { position:absolute; bottom:0; left:10%; width:18px; height:80%; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius:4px; box-shadow:4px 0 10px rgba(0,0,0,.3); }
.scn-friar-confesses-all .pillar-right { position:absolute; bottom:0; right:10%; width:18px; height:80%; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius:4px; box-shadow:-4px 0 10px rgba(0,0,0,.3); }
.scn-friar-confesses-all .crowd { position:absolute; bottom:12%; left:25%; right:25%; height:60%; background: linear-gradient(180deg, transparent 0%, rgba(30,30,40,.6) 100%); border-radius:50%; filter:blur(8px); animation: fca-crowd 20s ease-in-out infinite; }
.scn-friar-confesses-all .friar-figure { position:absolute; bottom:20%; left:50%; width:28px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:45% 45% 35% 35% / 55% 55% 45% 45%; animation: fca-friar 5s ease-in-out infinite alternate; }
.scn-friar-confesses-all .bell { position:absolute; top:8%; left:50%; width:20px; height:25px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius:50% 50% 20% 20%; animation: fca-bell 3s ease-in-out infinite alternate; }
.scn-friar-confesses-all .scroll { position:absolute; bottom:30%; right:30%; width:12px; height:18px; background: #8a7a5a; border-radius:2px; transform:rotate(15deg); animation: fca-scroll 6s ease-in-out infinite; }
@keyframes fca-dawn { 0% { opacity:.7; background: linear-gradient(180deg, #4a6a8a 0%, #8aaabb 40%, transparent 100%); } 50% { opacity:.9; background: linear-gradient(180deg, #ffccaa 0%, #aab8cc 40%, transparent 100%); } 100% { opacity:.6; background: linear-gradient(180deg, #3a5a7a 0%, #6a8aaa 40%, transparent 100%); } }
@keyframes fca-crowd { 0% { transform:scaleY(1); opacity:.3; } 50% { transform:scaleY(1.1); opacity:.6; } 100% { transform:scaleY(.95); opacity:.2; } }
@keyframes fca-friar { 0% { transform:translateX(-50%) translateY(0) rotate(0); } 50% { transform:translateX(-50%) translateY(-5px) rotate(2deg); } 100% { transform:translateX(-50%) translateY(2px) rotate(-1deg); } }
@keyframes fca-bell { 0% { transform:translateX(-50%) rotate(0); } 25% { transform:translateX(-50%) rotate(-8deg); } 75% { transform:translateX(-50%) rotate(8deg); } 100% { transform:translateX(-50%) rotate(0); } }
@keyframes fca-scroll { 0% { transform:rotate(15deg) translateY(0); opacity:.6; } 50% { transform:rotate(20deg) translateY(-2px); opacity:1; } 100% { transform:rotate(10deg) translateY(1px); opacity:.7; } }

.scn-balthasar-testifies { background: linear-gradient(180deg, #8aaccc 0%, #aaccdd 50%, #cceeef 100%), radial-gradient(ellipse at 50% 0%, #ddeeff 0%, transparent 70%); }
.scn-balthasar-testifies .morning-sky { position:absolute; inset:0; background: linear-gradient(180deg, #ffddaa 0%, #aaccdd 40%, transparent 100%); animation: bt-sky 14s ease-in-out infinite alternate; }
.scn-balthasar-testifies .horizon { position:absolute; bottom:20%; left:0; right:0; height:4px; background: linear-gradient(90deg, transparent, #8aaa88, transparent); filter:blur(2px); }
.scn-balthasar-testifies .balthasar-figure { position:absolute; bottom:22%; left:40%; width:22px; height:56px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin:bottom center; animation: bt-figure 6s ease-in-out infinite alternate; }
.scn-balthasar-testifies .letter { position:absolute; bottom:28%; left:35%; width:14px; height:20px; background: #ddaa77; border-radius:2px; transform:rotate(-10deg); box-shadow:0 2px 6px rgba(0,0,0,.2); animation: bt-letter 5s ease-in-out infinite; }
.scn-balthasar-testifies .horse-tail { position:absolute; bottom:18%; right:25%; width:30px; height:12px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 0 0; transform:rotate(20deg); animation: bt-tail 4s ease-in-out infinite alternate; }
.scn-balthasar-testifies .tree-dawn { position:absolute; top:8%; right:30%; width:60px; height:6px; background:#3a2a1a; border-radius:3px; transform:rotate(-40deg); filter:blur(1px); }
.scn-balthasar-testifies .lamp-post { position:absolute; bottom:20%; right:15%; width:6px; height:50px; background:#2a2a3a; border-radius:2px; }
@keyframes bt-sky { 0% { opacity:.7; background: linear-gradient(180deg, #ffcbaa 0%, #aaccdd 40%, transparent 100%); } 50% { opacity:.9; background: linear-gradient(180deg, #ffddbb 0%, #bbddff 40%, transparent 100%); } 100% { opacity:.6; background: linear-gradient(180deg, #ddaa88 0%, #99bbdd 40%, transparent 100%); } }
@keyframes bt-figure { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-3px) rotate(1deg); } 100% { transform:translateY(2px) rotate(-1deg); } }
@keyframes bt-letter { 0% { transform:rotate(-10deg) translateY(0); opacity:.8; } 50% { transform:rotate(-7deg) translateY(-3px); opacity:1; } 100% { transform:rotate(-13deg) translateY(1px); opacity:.7; } }
@keyframes bt-tail { 0% { transform:rotate(20deg) translateX(0); } 100% { transform:rotate(25deg) translateX(-5px); } }

.scn-benvolio-suggests-other-beauties {
  background: linear-gradient(180deg, #ffd8a0 0%, #faba6a 40%, #d98a4a 80%, #a55c2b 100%),
              radial-gradient(ellipse at 50% -20%, #fff4d0 0%, transparent 60%);
}
.scn-benvolio-suggests-other-beauties .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f6 100%);
  animation: bsb-sky 12s ease-in-out infinite alternate;
}
.scn-benvolio-suggests-other-beauties .sun {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8dc 0%, #ffdd80 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255,220,100,0.3);
  animation: bsb-sun 20s ease-in-out infinite alternate;
}
.scn-benvolio-suggests-other-beauties .clouds {
  position: absolute; top: 12%; left: 5%; width: 120px; height: 30px;
  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: bsb-clouds 35s linear infinite;
}
.scn-benvolio-suggests-other-beauties .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7d9b4a 0%, #4a6e2b 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-benvolio-suggests-other-beauties .mask {
  position: absolute; bottom: 50%; width: 24px; height: 18px;
  background: radial-gradient(ellipse at 50% 50%, #2a2a2a 0%, #111 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 0 2px #c8a060, 0 0 8px rgba(0,0,0,0.4);
  animation: bsb-mask 4s ease-in-out infinite alternate;
}
.scn-benvolio-suggests-other-beauties .mask-left {
  left: 35%;
  animation-delay: 0s;
}
.scn-benvolio-suggests-other-beauties .mask-right {
  left: 55%;
  animation-delay: 2s;
}
.scn-benvolio-suggests-other-beauties .figure {
  position: absolute; bottom: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-benvolio-suggests-other-beauties .figure-left {
  left: 30%;
  animation: bsb-figure-left 6s ease-in-out infinite;
}
.scn-benvolio-suggests-other-beauties .figure-right {
  left: 55%;
  animation: bsb-figure-right 6s ease-in-out infinite;
  animation-delay: 1s;
}
@keyframes bsb-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes bsb-sun {
  0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 60px 30px rgba(255,220,100,0.3); }
  50% { transform: translate(5px, -5px) scale(1.02); box-shadow: 0 0 100px 50px rgba(255,220,100,0.4); }
  100% { transform: translate(-3px, 3px) scale(0.98); box-shadow: 0 0 70px 35px rgba(255,220,100,0.25); }
}
@keyframes bsb-clouds {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(110vw); }
}
@keyframes bsb-mask {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-4px); }
  100% { transform: rotate(-3deg) translateY(2px); }
}
@keyframes bsb-figure-left {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  30% { transform: translateX(4px) translateY(-2px) rotate(2deg); }
  70% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(12px) translateY(-1px) rotate(1deg); }
}
@keyframes bsb-figure-right {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  30% { transform: translateX(-3px) translateY(-1px) rotate(-2deg); }
  70% { transform: translateX(-7px) translateY(0) rotate(1deg); }
  100% { transform: translateX(-10px) translateY(-2px) rotate(0); }
}

.scn-capulet-paris-discuss {
  background: linear-gradient(180deg, #f5d6a0 0%, #dbb477 40%, #b8915c 80%, #7a5c3a 100%),
              radial-gradient(ellipse at 50% 100%, #e5c090 0%, transparent 60%);
}
.scn-capulet-paris-discuss .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b3d4e0 0%, #d4e8f0 60%, #f0f8ff 100%);
  animation: cpd-sky 15s ease-in-out infinite alternate;
}
.scn-capulet-paris-discuss .buildings {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c9a87a 0%, #a07a4e 100%);
  border-radius: 10% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.25);
  animation: cpd-buildings 20s ease-in-out infinite alternate;
}
.scn-capulet-paris-discuss .street {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b09070 0%, #8a6b4e 100%);
  border-radius: 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.3);
}
.scn-capulet-paris-discuss .tree {
  position: absolute; bottom: 35%; left: 20%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 60%, #3a6e2b 0%, #1a3e0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: cpd-tree 8s ease-in-out infinite alternate;
}
.scn-capulet-paris-discuss .figure {
  position: absolute; bottom: 22%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e07 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-capulet-paris-discuss .capulet {
  left: 40%;
  animation: cpd-figure-c 5s ease-in-out infinite;
}
.scn-capulet-paris-discuss .paris {
  left: 55%;
  animation: cpd-figure-p 5s ease-in-out infinite;
  animation-delay: 2.5s;
}
@keyframes cpd-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cpd-buildings {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cpd-tree {
  0% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(-1deg) scale(0.98); }
}
@keyframes cpd-figure-c {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(3px) rotate(2deg); }
  70% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes cpd-figure-p {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-3px) rotate(-2deg); }
  70% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}

.scn-servant-invitation-list {
  background: linear-gradient(180deg, #ffe08a 0%, #fabc50 40%, #d98a30 80%, #a55a1a 100%),
              radial-gradient(ellipse at 10% 80%, #ffe080 0%, transparent 50%);
}
.scn-servant-invitation-list .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0d8f0 0%, #d0ecff 100%);
  animation: sil-sky 10s ease-in-out infinite alternate;
}
.scn-servant-invitation-list .sunburst {
  position: absolute; top: 5%; left: 60%; width: 100px; height: 100px;
  background: radial-gradient(circle, #fff8c0 0%, #ffe080 30%, transparent 60%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sil-sunburst 18s ease-in-out infinite alternate;
}
.scn-servant-invitation-list .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b08040 0%, #704820 100%);
  border-radius: 30% 70% 0 0 / 50% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-servant-invitation-list .servant {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 85px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sil-servant 3s ease-in-out infinite;
}
.scn-servant-invitation-list .list {
  position: absolute; bottom: 40%; left: 38%; width: 20px; height: 24px;
  background: linear-gradient(135deg, #faf0d0 0%, #ddd0a0 100%);
  border-radius: 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: sil-list 2s ease-in-out infinite alternate;
}
.scn-servant-invitation-list .bystander {
  position: absolute; bottom: 28%; left: 60%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sil-bystander 4s ease-in-out infinite;
}
.scn-servant-invitation-list .dog {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  animation: sil-dog 5s ease-in-out infinite;
}
@keyframes sil-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes sil-sunburst {
  0% { transform: scale(0.9); opacity: 0.8; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.85; }
}
@keyframes sil-servant {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(5px) rotate(3deg); }
  50% { transform: translateX(10px) rotate(-2deg); }
  75% { transform: translateX(5px) rotate(4deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes sil-list {
  0% { transform: translate(0,0) rotate(-10deg); }
  100% { transform: translate(8px, -6px) rotate(10deg); }
}
@keyframes sil-bystander {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes sil-dog {
  0% { transform: translateX(0) scale(1); }
  30% { transform: translateX(6px) scale(1.02); }
  60% { transform: translateX(-3px) scale(0.98); }
  100% { transform: translateX(0) scale(1); }
}

.scn-benvolio-romeo-meet-servant {
  background: linear-gradient(180deg, #ffd6a0 0%, #f0b87a 40%, #d08a5a 80%, #a05a30 100%),
              radial-gradient(ellipse at 20% 50%, #ffe0b0 0%, transparent 60%);
}
.scn-benvolio-romeo-meet-servant .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #a0c8e0 0%, #c0e0f0 100%);
  animation: brm-sky 12s ease-in-out infinite alternate;
}
.scn-benvolio-romeo-meet-servant .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8a7040 0%, #5a3a1a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-benvolio-romeo-meet-servant .figure {
  position: absolute; bottom: 28%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e07 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-benvolio-romeo-meet-servant .benvolio {
  left: 35%;
  animation: brm-benvolio 6s ease-in-out infinite;
}
.scn-benvolio-romeo-meet-servant .romeo {
  left: 48%;
  animation: brm-romeo 6s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-benvolio-romeo-meet-servant .servant {
  left: 62%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  animation: brm-servant 5s ease-in-out infinite;
  animation-delay: 2s;
}
.scn-benvolio-romeo-meet-servant .lantern {
  position: absolute; bottom: 35%; left: 52%; width: 12px; height: 18px;
  background: radial-gradient(ellipse at 50% 50%, #ffe080 0%, #b08020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 10px rgba(255,200,80,0.4);
  animation: brm-lantern 3s ease-in-out infinite alternate;
}
.scn-benvolio-romeo-meet-servant .shadow {
  position: absolute; bottom: 18%; left: 30%; width: 60px; height: 15px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: brm-shadow 8s ease-in-out infinite alternate;
}
@keyframes brm-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes brm-benvolio {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes brm-romeo {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-4px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes brm-servant {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-6px) rotate(4deg); }
  60% { transform: translateY(0) rotate(0); }
  100% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes brm-lantern {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.8; transform: scale(0.97); }
}
@keyframes brm-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
  50% { transform: scaleX(1.1) scaleY(0.9); opacity: 0.4; }
  100% { transform: scaleX(0.95) scaleY(1.05); opacity: 0.7; }
}

.scn-prince-banishes-romeo {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f0c060 40%, #d4a040 70%, #8b5e3c 100%),
    radial-gradient(ellipse at 50% 0%, #ffdd88 0%, transparent 60%);
}

.scn-prince-banishes-romeo .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #5b9bd5 0%, #87ceeb 40%, transparent 100%);
  animation: pr-sky 15s ease-in-out infinite alternate;
}
.scn-prince-banishes-romeo .sun {
  position: absolute; top: 10%; left: 70%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8c0 0%, #ffdd55 40%, transparent 70%);
  border-radius: 50%;
  animation: pr-sun 20s linear infinite;
}
.scn-prince-banishes-romeo .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a3e2b 0%, #3e2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-prince-banishes-romeo .prince {
  position: absolute; bottom: 30%; left: 30%;
  width: 50px; height: 90px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pr-figure 6s ease-in-out infinite;
}
.scn-prince-banishes-romeo .romeo {
  position: absolute; bottom: 28%; left: 55%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #2e1a1a 0%, #1a0d0d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: pr-kneel 8s ease-in-out infinite;
}
.scn-prince-banishes-romeo .tybalt {
  position: absolute; bottom: 25%; left: 45%;
  width: 60px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 50% 50% / 40% 40% 60% 60%;
  transform: rotate(15deg);
  animation: pr-tybalt 12s ease-in-out infinite;
}
.scn-prince-banishes-romeo .citizen-a {
  position: absolute; bottom: 33%; left: 15%;
  width: 25px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  animation: pr-crowd 14s ease-in-out infinite;
}
.scn-prince-banishes-romeo .citizen-b {
  position: absolute; bottom: 32%; right: 20%;
  width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  animation: pr-crowd 16s ease-in-out infinite reverse;
}
@keyframes pr-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes pr-sun {
  0% { transform: translate(0, 0) scale(1); opacity: 0.9; }
  25% { transform: translate(15px, -10px) scale(1.1); opacity: 1; }
  50% { transform: translate(30px, -5px) scale(0.95); opacity: 0.85; }
  75% { transform: translate(15px, 5px) scale(1.05); opacity: 0.95; }
  100% { transform: translate(0, 0) scale(1); opacity: 0.9; }
}
@keyframes pr-figure {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(-2deg); }
  60% { transform: translateY(0) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pr-kneel {
  0% { transform: rotate(-10deg) translateY(0); }
  25% { transform: rotate(-8deg) translateY(-2px); }
  50% { transform: rotate(-12deg) translateY(0); }
  75% { transform: rotate(-9deg) translateY(-1px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes pr-tybalt {
  0% { transform: rotate(15deg) translateX(0); opacity: 0.6; }
  50% { transform: rotate(10deg) translateX(-2px); opacity: 0.8; }
  100% { transform: rotate(15deg) translateX(0); opacity: 0.6; }
}
@keyframes pr-crowd {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

.scn-prince-exiles-romeo {
  background:
    linear-gradient(180deg, #8bb3e0 0%, #e0c080 30%, #c09050 60%, #7a5a3a 100%),
    radial-gradient(ellipse at 60% 20%, #ffdd99 0%, transparent 50%);
}
.scn-prince-exiles-romeo .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a8bc0 0%, #87ceeb 40%, transparent 100%);
  animation: pe-sky 18s ease-in-out infinite alternate;
}
.scn-prince-exiles-romeo .sun {
  position: absolute; top: 15%; left: 60%;
  width: 70px; height: 70px;
  background: radial-gradient(circle, #fff8c0 0%, #ffdd55 50%, transparent 75%);
  border-radius: 50%;
  animation: pe-sun 22s linear infinite;
}
.scn-prince-exiles-romeo .archway {
  position: absolute; bottom: 40%; left: 25%; right: 25%; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
}
.scn-prince-exiles-romeo .prince-shadow {
  position: absolute; bottom: 30%; left: 35%;
  width: 55px; height: 95px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-prince 7s ease-in-out infinite;
}
.scn-prince-exiles-romeo .romeo-alone {
  position: absolute; bottom: 28%; left: 55%;
  width: 35px; height: 75px;
  background: linear-gradient(180deg, #2e1a1a 0%, #1a0d0d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-romeo-exile 10s ease-in-out infinite;
}
.scn-prince-exiles-romeo .chain {
  position: absolute; bottom: 32%; left: 48%;
  width: 4px; height: 50px;
  background: repeating-linear-gradient(180deg, #888 0px, #888 4px, #aaa 4px, #aaa 8px);
  border-radius: 2px;
  animation: pe-chain 5s ease-in-out infinite;
}
@keyframes pe-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes pe-sun {
  0% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(10px, -5px) scale(1.1); }
  50% { transform: translate(20px, 5px) scale(0.9); }
  75% { transform: translate(10px, -2px) scale(1.05); }
  100% { transform: translate(0, 0) scale(1); }
}
@keyframes pe-prince {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes pe-romeo-exile {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-3px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes pe-chain {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(2px) rotate(3deg); }
  50% { transform: translateY(-1px) rotate(-2deg); }
  75% { transform: translateY(1px) rotate(4deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-juliet-impatient {
  background:
    linear-gradient(180deg, #ffaa44 0%, #ff8833 30%, #cc6633 60%, #553322 100%),
    radial-gradient(ellipse at 50% 80%, #ffdd88 0%, transparent 60%);
}
.scn-juliet-impatient .sky-dusk {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ff7744 0%, #ff9933 40%, #ffddaa 70%, transparent 100%);
  animation: ji-dusk 12s ease-in-out infinite alternate;
}
.scn-juliet-impatient .sunset-glow {
  position: absolute; top: 5%; left: 30%; right: 30%; height: 20%;
  background: radial-gradient(ellipse, #ffcc77 0%, #ff8833 40%, transparent 70%);
  filter: blur(8px);
  animation: ji-glow 15s ease-in-out infinite;
}
.scn-juliet-impatient .balcony {
  position: absolute; bottom: 35%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.4);
  animation: ji-balcony 8s ease-in-out infinite;
}
.scn-juliet-impatient .juliet {
  position: absolute; bottom: 38%; left: 45%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ji-juliet 6s ease-in-out infinite;
}
.scn-juliet-impatient .vine {
  position: absolute; bottom: 30%; left: 35%; width: 6px; height: 50%;
  background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 100%);
  border-radius: 50%;
  transform-origin: bottom center;
  animation: ji-vine 10s ease-in-out infinite;
}
.scn-juliet-impatient .star-speckle {
  position: absolute; top: 5%; left: 40%;
  width: 4px; height: 4px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,200,0.8);
  animation: ji-star 4s ease-in-out infinite alternate;
}
@keyframes ji-dusk {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes ji-glow {
  0% { transform: scale(1) translateY(0); opacity: 0.7; }
  50% { transform: scale(1.2) translateY(-10px); opacity: 1; }
  100% { transform: scale(0.9) translateY(5px); opacity: 0.8; }
}
@keyframes ji-balcony {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes ji-juliet {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(5deg); }
  50% { transform: translateX(-3px) rotate(-3deg); }
  75% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ji-vine {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(8deg) scaleY(1.1); }
  50% { transform: rotate(-5deg) scaleY(0.9); }
  75% { transform: rotate(3deg) scaleY(1.05); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes ji-star {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: 0.5; transform: scale(0.8); }
}

.scn-nurse-tells-of-tybalt-death {
  background:
    linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 30% 50%, #f0c060 0%, transparent 60%);
}
.scn-nurse-tells-of-tybalt-death .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  animation: nt-wall 20s ease-in-out infinite alternate;
}
.scn-nurse-tells-of-tybalt-death .window-light {
  position: absolute; top: 15%; left: 25%; right: 35%; bottom: 50%;
  background: radial-gradient(ellipse, #ffdd88 0%, #ffaa44 30%, transparent 70%);
  border-radius: 10%;
  filter: blur(8px);
  animation: nt-light 8s ease-in-out infinite;
}
.scn-nurse-tells-of-tybalt-death .juliet-figure {
  position: absolute; bottom: 20%; left: 30%;
  width: 35px; height: 70px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nt-juliet 6s ease-in-out infinite;
}
.scn-nurse-tells-of-tybalt-death .nurse-figure {
  position: absolute; bottom: 22%; left: 55%;
  width: 40px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nt-nurse 7s ease-in-out infinite;
}
.scn-nurse-tells-of-tybalt-death .cords {
  position: absolute; bottom: 28%; left: 43%;
  width: 30px; height: 5px;
  background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 50%;
  animation: nt-cords 5s ease-in-out infinite;
}
.scn-nurse-tells-of-tybalt-death .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-nurse-tells-of-tybalt-death .shadow-shaft {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 60%);
  animation: nt-shadow 10s ease-in-out infinite alternate;
}
@keyframes nt-wall {
  0% { opacity: 0.8; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes nt-light {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.8; }
}
@keyframes nt-juliet {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(-5px) rotate(-10deg); }
  40% { transform: translateX(0) rotate(0deg); }
  60% { transform: translateX(3px) rotate(5deg); }
  80% { transform: translateX(-2px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nt-nurse {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(-5deg); }
  60% { transform: translateY(0) rotate(0deg); }
  80% { transform: translateY(-1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes nt-cords {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(15deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nt-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

.scn-capulet-nights {
  background: 
    linear-gradient(180deg, #1a1428 0%, #2a1e3c 40%, #3c2a4e 70%, #4a3a5e 100%),
    radial-gradient(ellipse at 40% 60%, #2a1e3c 0%, transparent 70%);
}
.scn-capulet-nights .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #1a1428 0%, #2a1e3c 50%, #1a1428 100%);
}
.scn-capulet-nights .window {
  position: absolute; top: 8%; left: 70%; width: 90px; height: 120px;
  background: linear-gradient(180deg, #0e1628 0%, #1a2038 100%);
  border: 3px solid #5a4a3a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100, 80, 60, 0.3);
}
.scn-capulet-nights .moonlight {
  position: absolute; top: 5%; left: 73%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c8d8e8 0%, #a0b8d0 40%, transparent 70%);
  border-radius: 50%;
  animation: cn-moon 12s ease-in-out infinite alternate;
}
.scn-capulet-nights .bed {
  position: absolute; bottom: 10%; left: 25%; width: 180px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 12px 12px 8px 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-capulet-nights .figure-laying {
  position: absolute; bottom: 15%; left: 40%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: cn-breathe 4s ease-in-out infinite;
}
.scn-capulet-nights .candle {
  position: absolute; bottom: 20%; right: 20%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #e8d0a0 0%, #a08050 100%);
  border-radius: 2px 2px 4px 4px;
}
.scn-capulet-nights .candle-glow {
  position: absolute; bottom: 35%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #d09050 30%, transparent 70%);
  border-radius: 50%;
  animation: cn-flicker 2s ease-in-out infinite alternate;
}
.scn-capulet-nights .curtain {
  position: absolute; top: 0; left: 68%; width: 40px; height: 100%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 50%, #3a1a0a 100%);
  border-radius: 0 4px 4px 0;
  animation: cn-sway 8s ease-in-out infinite;
}
@keyframes cn-moon { 0% { opacity: 0.2; transform: translate(0,0); } 50% { opacity: 0.6; transform: translate(-4px, 2px); } 100% { opacity: 0.3; transform: translate(2px, -2px); } }
@keyframes cn-breathe { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes cn-flicker { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.8; transform: scale(0.9); } }
@keyframes cn-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }

.scn-romeo-juliet-parting {
  background: 
    linear-gradient(180deg, #3a4a6a 0%, #5a6a8a 30%, #8a9aae 60%, #b0c4d8 100%),
    radial-gradient(ellipse at 30% 70%, #8a9aae 0%, transparent 60%);
}
.scn-romeo-juliet-parting .dawn-sky {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #4a5a7a 0%, #7a8a9e 40%, #c0d0e0 100%);
  opacity: 0.8;
}
.scn-romeo-juliet-parting .balcony {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-romeo-juliet-parting .romeo {
  position: absolute; bottom: 25%; left: 42%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: rjp-lean 3s ease-in-out infinite alternate;
}
.scn-romeo-juliet-parting .juliet {
  position: absolute; bottom: 25%; right: 42%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: rjp-reach 3s ease-in-out infinite alternate;
}
.scn-romeo-juliet-parting .meteor {
  position: absolute; top: 10%; left: 15%; width: 120px; height: 4px;
  background: linear-gradient(90deg, transparent 0%, #ffe080 20%, #ffc040 50%, transparent 80%);
  transform: rotate(-20deg);
  animation: rjp-meteor 8s linear infinite;
}
.scn-romeo-juliet-parting .torch {
  position: absolute; bottom: 28%; right: 20%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #d08040 0%, #8a5030 100%);
  border-radius: 2px;
}
.scn-romeo-juliet-parting .torch::after { /* faux flame */
  content: ''; position: absolute; top: -20px; left: -5px; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffa040 0%, #ff6000 40%, transparent 70%);
  border-radius: 50%;
  animation: rjp-torch 1.5s ease-in-out infinite alternate;
}
.scn-romeo-juliet-parting .cloud-rjp1 {
  position: absolute; top: 15%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(180,200,220,0.6) 0%, rgba(180,200,220,0.2) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: rjp-drift1 30s linear infinite;
}
.scn-romeo-juliet-parting .cloud-rjp2 {
  position: absolute; top: 25%; right: 5%; width: 60px; height: 15px;
  background: linear-gradient(180deg, rgba(200,210,230,0.5) 0%, rgba(200,210,230,0.1) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: rjp-drift2 40s linear infinite reverse;
}
@keyframes rjp-lean { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-5deg); } 100% { transform: translateX(2px) rotate(2deg); } }
@keyframes rjp-reach { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(5deg); } 100% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes rjp-meteor { 0% { transform: translateX(0) rotate(-20deg); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translateX(200px) rotate(-20deg); opacity: 0; } }
@keyframes rjp-torch { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.7; transform: scale(0.8); } }
@keyframes rjp-drift1 { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes rjp-drift2 { 0% { transform: translateX(20px); } 100% { transform: translateX(-100vw); } }

.scn-juliet-foreboding {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #3a3a4a 60%, #4a4a5a 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 70%);
}
.scn-juliet-foreboding .tomb-shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 60%;
  background: linear-gradient(180deg, transparent 0%, #1a1a2a 100%);
}
.scn-juliet-foreboding .juliet-figure {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: jf-tremble 2s ease-in-out infinite;
}
.scn-juliet-foreboding .romeo-shadow {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  opacity: 0.4;
  animation: jf-fade 6s ease-in-out infinite alternate;
}
.scn-juliet-foreboding .mist {
  position: absolute; top: 0; inset: 0;
  background: linear-gradient(180deg, rgba(100,120,140,0.2) 0%, rgba(60,80,100,0.1) 50%, transparent 100%);
  filter: blur(10px);
  animation: jf-mist 15s ease-in-out infinite alternate;
}
.scn-juliet-foreboding .dead-leaves {
  position: absolute; bottom: 5%; left: 20%; width: 100px; height: 60px;
  background: radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 70%);
  filter: blur(2px);
  animation: jf-scatter 8s ease-in-out infinite alternate;
}
.scn-juliet-foreboding .moon-pale {
  position: absolute; top: 5%; right: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c0c8d0 0%, #808890 50%, transparent 70%);
  border-radius: 50%;
  opacity: 0.3;
  animation: jf-moon 20s ease-in-out infinite alternate;
}
@keyframes jf-tremble { 0%,100% { transform: translateX(-50%) rotate(-1deg); } 25% { transform: translateX(-52%) rotate(1deg); } 50% { transform: translateX(-48%) rotate(-2deg); } 75% { transform: translateX(-51%) rotate(2deg); } }
@keyframes jf-fade { 0% { opacity: 0.2; transform: translateY(0); } 50% { opacity: 0.5; transform: translateY(-4px); } 100% { opacity: 0.3; transform: translateY(2px); } }
@keyframes jf-mist { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes jf-scatter { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(5deg); } 100% { transform: translateX(-5px) rotate(-3deg); } }
@keyframes jf-moon { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.4; transform: scale(1.05); } 100% { opacity: 0.25; transform: scale(0.95); } }

.scn-lady-capulet-consoles {
  background: 
    linear-gradient(180deg, #e8e0d0 0%, #d0c8b0 40%, #b8b0a0 100%),
    radial-gradient(ellipse at 40% 60%, #d0c8b0 0%, transparent 70%);
}
.scn-lady-capulet-consoles .room-sunny {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f0e8d8 0%, #d8d0c0 50%, #c0b8a8 100%);
}
.scn-lady-capulet-consoles .window-lcc {
  position: absolute; top: 10%; left: 65%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #a0b8d0 0%, #80a0c0 100%);
  border: 4px solid #8a7a6a; border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(255,250,240,0.6);
}
.scn-lady-capulet-consoles .sunbeam {
  position: absolute; top: 10%; left: 65%; width: 80px; height: 200px;
  background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 60%);
  transform: rotate(15deg);
  animation: lcc-sun 10s ease-in-out infinite alternate;
}
.scn-lady-capulet-consoles .lady-capulet {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: lcc-comfort 5s ease-in-out infinite alternate;
}
.scn-lady-capulet-consoles .juliet-lcc {
  position: absolute; bottom: 18%; left: 38%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lcc-sit 6s ease-in-out infinite;
}
.scn-lady-capulet-consoles .cushion {
  position: absolute; bottom: 12%; left: 30%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #805030 0%, #604020 100%);
  border-radius: 20px 20px 10px 10px;
}
.scn-lady-capulet-consoles .vase {
  position: absolute; bottom: 20%; right: 15%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%);
  border-radius: 30% 30% 10% 10%;
}
.scn-lady-capulet-consoles .hearth {
  position: absolute; bottom: 5%; left: 10%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 8px 8px 2px 2px;
}
@keyframes lcc-sun { 0% { opacity: 0.2; transform: rotate(10deg) translateX(0); } 50% { opacity: 0.6; transform: rotate(15deg) translateX(5px); } 100% { opacity: 0.3; transform: rotate(12deg) translateX(-3px); } }
@keyframes lcc-comfort { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(-3deg); } 100% { transform: translateX(-3px) rotate(2deg); } }
@keyframes lcc-sit { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } }

.scn-maskers-set-out {
  background: linear-gradient(180deg, #2a2040 0%, #4a3050 30%, #7a4a3a 60%, #8a5a2a 100%), radial-gradient(ellipse at 50% 80%, #8a5a2a 0%, transparent 60%);
}
.scn-maskers-set-out .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #3a2850 60%, transparent 100%);
  animation: ms-sky 14s ease-in-out infinite alternate;
}
.scn-maskers-set-out .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 20% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-maskers-set-out .building {
  position: absolute; bottom: 30%; width: 28%; height: 50%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
}
.scn-maskers-set-out .building-l { left: 6%; }
.scn-maskers-set-out .building-r { right: 6%; width: 35%; }
.scn-maskers-set-out .figure-masker {
  position: absolute; bottom: 22%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a2840 0%, #1a1020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms-walk 5s ease-in-out infinite;
}
.scn-maskers-set-out .figure-1 { left: 30%; animation-delay: 0s; }
.scn-maskers-set-out .figure-2 { left: 55%; animation-delay: 1.2s; }
.scn-maskers-set-out .torch {
  position: absolute; bottom: 24%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #7a4a2a 0%, #3a1a0a 100%);
  border-radius: 2px;
  animation: ms-torch 2s ease-in-out infinite alternate;
}
.scn-maskers-set-out .torch-a { left: 28%; }
.scn-maskers-set-out .torch-b { left: 58%; animation-delay: 0.4s; }
.scn-maskers-set-out .cloud {
  position: absolute; top: 12%; left: -10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(180,140,200,0.3) 0%, rgba(180,140,200,0.05) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: ms-cloud 40s linear infinite;
}
@keyframes ms-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ms-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ms-torch { 0% { opacity: 0.6; box-shadow: 0 0 8px 2px #ff8030; } 100% { opacity: 1; box-shadow: 0 0 18px 6px #ff8030, 0 0 30px 10px rgba(255,128,48,0.4); } }
@keyframes ms-cloud { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(60vw) scale(1.1); } 100% { transform: translateX(120vw) scale(0.9); } }

.scn-romeo-reluctant {
  background: linear-gradient(180deg, #1a1a3a 0%, #2a1a3a 40%, #3a2a4a 70%, #4a3a2a 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 60%);
}
.scn-romeo-reluctant .bg-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 50%, transparent 100%);
  animation: rr-sky 15s ease-in-out infinite alternate;
}
.scn-romeo-reluctant .wall {
  position: absolute; bottom: 20%; left: 10%; width: 40%; height: 65%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-romeo-reluctant .window-glow {
  position: absolute; bottom: 55%; left: 22%; width: 40px; height: 50px;
  background: radial-gradient(circle, #d0a050 0%, #a07030 60%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 30px 8px #a07030, 0 0 60px 16px rgba(160,112,48,0.4);
  animation: rr-glow 3s ease-in-out infinite alternate;
}
.scn-romeo-reluctant .figure-romeo {
  position: absolute; bottom: 20%; left: 50%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1520 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: rr-romeo 6s ease-in-out infinite;
}
.scn-romeo-reluctant .figure-dancer {
  position: absolute; bottom: 18%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2850 0%, #1a1030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rr-dance 4s ease-in-out infinite;
}
.scn-romeo-reluctant .dancer-1 { left: 60%; animation-delay: 0s; }
.scn-romeo-reluctant .dancer-2 { left: 72%; animation-delay: 0.8s; }
.scn-romeo-reluctant .moon {
  position: absolute; top: 6%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c0b0a0 0%, #a09080 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(160,144,128,0.3);
  animation: rr-moon 20s ease-in-out infinite alternate;
}
.scn-romeo-reluctant .shadow-pool {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, transparent 0%, rgba(10,10,20,0.6) 100%);
  animation: rr-shadow 8s ease-in-out infinite;
}
@keyframes rr-sky { 0% { opacity: 0.5 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes rr-glow { 0% { box-shadow: 0 0 20px 4px #a07030, 0 0 40px 8px rgba(160,112,48,0.2); } 50% { box-shadow: 0 0 40px 12px #d0a050, 0 0 60px 20px rgba(208,160,80,0.4); } 100% { box-shadow: 0 0 25px 6px #a07030, 0 0 50px 12px rgba(160,112,48,0.3); } }
@keyframes rr-romeo { 0% { transform: translateX(-50%) rotate(0) translateY(0); } 30% { transform: translateX(-50%) rotate(2deg) translateY(-1px); } 60% { transform: translateX(-50%) rotate(-2deg) translateY(1px); } 100% { transform: translateX(-50%) rotate(0) translateY(0); } }
@keyframes rr-dance { 0% { transform: translateX(0) rotate(-3deg) scale(1); } 25% { transform: translateX(5px) rotate(2deg) scale(1.05); } 50% { transform: translateX(10px) rotate(-2deg) scale(1); } 75% { transform: translateX(5px) rotate(3deg) scale(0.95); } 100% { transform: translateX(0) rotate(-3deg) scale(1); } }
@keyframes rr-moon { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(-4px) scale(1.05); opacity: 1; } 100% { transform: translateY(2px) scale(0.98); opacity: 0.85; } }
@keyframes rr-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

.scn-capulet-welcomes {
  background: linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 30%, #7a3a2a 60%, #8a4a3a 100%), radial-gradient(ellipse at 50% 80%, #8a4a3a 0%, transparent 60%);
}
.scn-capulet-welcomes .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #6a3a2a 60%, transparent 100%);
  animation: cw-wall 20s ease-in-out infinite alternate;
}
.scn-capulet-welcomes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a1a0a 0%, #2a1005 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
}
.scn-capulet-welcomes .table {
  position: absolute; bottom: 18%; left: 50%; width: 60%; height: 14%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a3a20 0%, #4a2010 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: cw-table 10s ease-in-out infinite;
}
.scn-capulet-welcomes .fireplace {
  position: absolute; bottom: 25%; left: 15%; width: 40%; height: 55%;
  background: linear-gradient(180deg, #3a1a0a 0%, #2a1005 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-capulet-welcomes .fire-glow {
  position: absolute; bottom: 35%; left: 18%; width: 30px; height: 40px;
  background: radial-gradient(circle, #ff8030 0%, #a04020 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 50px 20px #ff8030, 0 0 100px 40px rgba(255,128,48,0.3);
  animation: cw-fire 2s ease-in-out infinite alternate;
}
.scn-capulet-welcomes .servingman {
  position: absolute; bottom: 8%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cw-serve 5s ease-in-out infinite;
}
.scn-capulet-welcomes .sm-1 { left: 25%; animation-delay: 0s; }
.scn-capulet-welcomes .sm-2 { left: 55%; animation-delay: 2s; }
.scn-capulet-welcomes .platter {
  position: absolute; bottom: 15%; left: 30%; width: 28px; height: 8px;
  background: linear-gradient(90deg, #7a4a20, #a06030);
  border-radius: 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: cw-platter 6s ease-in-out infinite;
}
@keyframes cw-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes cw-table { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes cw-fire { 0% { transform: scale(1) rotate(0); opacity: 0.7; } 25% { transform: scale(1.1) rotate(5deg); opacity: 0.9; } 50% { transform: scale(0.95) rotate(-3deg); opacity: 0.85; } 75% { transform: scale(1.05) rotate(2deg); opacity: 1; } 100% { transform: scale(1) rotate(0); opacity: 0.8; } }
@keyframes cw-serve { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(6px) rotate(1deg); } 50% { transform: translateX(12px) rotate(-1deg); } 75% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes cw-platter { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(8px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }

.scn-capulet-reminisce {
  background: linear-gradient(180deg, #2a1005 0%, #4a2010 30%, #6a3018 60%, #7a4020 100%), radial-gradient(ellipse at 50% 70%, #7a4020 0%, transparent 60%);
}
.scn-capulet-reminisce .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 60%, transparent 100%);
  animation: cr-wall 20s ease-in-out infinite alternate;
}
.scn-capulet-reminisce .hearth {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, #2a1005 0%, #1a0802 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
}
.scn-capulet-reminisce .fire-glow-cr {
  position: absolute; bottom: 35%; left: 30%; width: 40px; height: 50px;
  background: radial-gradient(circle, #ff7030 0%, #a04020 60%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 60px 30px #ff7030, 0 0 120px 60px rgba(255,112,48,0.3);
  animation: cr-fire 3s ease-in-out infinite alternate;
}
.scn-capulet-reminisce .figure-older {
  position: absolute; bottom: 15%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-seat 8s ease-in-out infinite;
}
.scn-capulet-reminisce .cousin-l { left: 25%; }
.scn-capulet-reminisce .cousin-r { right: 25%; animation-delay: 2s; }
.scn-capulet-reminisce .table-cr {
  position: absolute; bottom: 12%; left: 50%; width: 50%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a2a0a 0%, #3a1a05 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: cr-table 12s ease-in-out infinite;
}
.scn-capulet-reminisce .candle {
  position: absolute; bottom: 22%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px #d0b070;
  animation: cr-candle 4s ease-in-out infinite alternate;
}
.scn-capulet-reminisce .candle-a { left: 38%; animation-delay: 0s; }
.scn-capulet-reminisce .candle-b { left: 55%; animation-delay: 1.5s; }
@keyframes cr-wall { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cr-fire { 0% { transform: scale(1) rotate(0); opacity: 0.6; } 25% { transform: scale(1.05) rotate(3deg); opacity: 0.8; } 50% { transform: scale(0.95) rotate(-2deg); opacity: 0.7; } 75% { transform: scale(1.08) rotate(4deg); opacity: 0.9; } 100% { transform: scale(1) rotate(0); opacity: 0.65; } }
@keyframes cr-seat { 0% { transform: rotate(0) translateY(0); } 25% { transform: rotate(1deg) translateY(-1px); } 50% { transform: rotate(-1deg) translateY(1px); } 75% { transform: rotate(0) translateY(0); } 100% { transform: rotate(1deg) translateY(-1px); } }
@keyframes cr-table { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes cr-candle { 0% { opacity: 0.7; box-shadow: 0 0 6px 1px #d0b070; } 50% { opacity: 1; box-shadow: 0 0 14px 4px #d0b070, 0 0 24px 8px rgba(208,176,112,0.3); } 100% { opacity: 0.8; box-shadow: 0 0 8px 2px #d0b070; } }

/* romeo-climbs-wall */
.scn-romeo-climbs-wall,
.scn-romeo-climbs-wall * { box-sizing:border-box; }
.scn-romeo-climbs-wall {
  position:relative;
  overflow:hidden;
  background: linear-gradient(180deg, #0d0d2b 0%, #1a1a3d 40%, #2a2a5e 100%),
              radial-gradient(ellipse at 30% 20%, #4a6a9a 0%, transparent 60%);
}
.scn-romeo-climbs-wall .night-sky { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent, transparent 20px, rgba(255,255,255,0.02) 20px, rgba(255,255,255,0.02) 21px); animation: rw-stars 30s linear infinite; }
.scn-romeo-climbs-wall .moon-glow { position:absolute; top:12%; left:60%; width:120px; height:120px; background: radial-gradient(circle, #b0c8e8 0%, #80a0c0 40%, transparent 70%); border-radius:50%; filter:blur(8px); animation: rw-lunar 8s ease-in-out infinite alternate; }
.scn-romeo-climbs-wall .wall-bg { position:absolute; bottom:0; left:25%; right:10%; height:55%; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 30% 10% 0 0 / 60% 20% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6); }
.scn-romeo-climbs-wall .wall-bricks { position:absolute; bottom:0; left:25%; right:10%; height:55%; background: repeating-linear-gradient(0deg, transparent, transparent 28px, #3a2a3a 28px, #3a2a3a 30px), repeating-linear-gradient(90deg, transparent, transparent 45px, #2a1a2a 45px, #2a1a2a 47px); opacity:0.3; }
.scn-romeo-climbs-wall .ivy { position:absolute; bottom:5%; left:30%; width:20px; height:60%; background: radial-gradient(ellipse at 50% 0%, #1a3a1a 0%, transparent 100%); border-radius: 30% 30% 0 0; animation: rw-ivy 12s ease-in-out infinite alternate; }
.scn-romeo-climbs-wall .climber { position:absolute; bottom:45%; left:35%; width:24px; height:50px; background: linear-gradient(120deg, #15152a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: 50% 100%; animation: rw-climb 4s ease-in-out infinite; }
.scn-romeo-climbs-wall .cloud-drift { position:absolute; top:18%; left:10%; width:90px; height:15px; background: rgba(200,210,230,0.15); border-radius:50%; filter:blur(8px); animation: rw-cloudd 45s linear infinite; }
@keyframes rw-stars { 0% { background-position: 0 0; } 100% { background-position: 30px 0; } }
@keyframes rw-lunar { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.95); opacity:0.85; } }
@keyframes rw-ivy { 0% { transform: skewY(0deg); } 50% { transform: skewY(-3deg) scaleY(1.02); } 100% { transform: skewY(2deg); } }
@keyframes rw-climb { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-8px) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 75% { transform: translateY(-10px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rw-cloudd { 0% { transform: translateX(-100px); } 100% { transform: translateX(150vw); } }

/* mercutio-conjures-romeo */
.scn-mercutio-conjures-romeo,
.scn-mercutio-conjures-romeo * { box-sizing:border-box; }
.scn-mercutio-conjures-romeo {
  position:relative;
  overflow:hidden;
  background: linear-gradient(180deg, #0d0d28 0%, #1a1a3e 60%, #2d244a 100%),
              radial-gradient(ellipse at 50% 30%, #4a5a7a 0%, transparent 70%);
}
.scn-mercutio-conjures-romeo .night-back { position:absolute; inset:0; background: repeating-radial-gradient(circle at 20% 30%, transparent, transparent 30px, rgba(255,255,255,0.01) 30px, rgba(255,255,255,0.01) 31px); }
.scn-mercutio-conjures-romeo .circle-outer { position:absolute; top:30%; left:30%; width:180px; height:180px; border: 2px solid rgba(180,200,230,0.15); border-radius:50%; animation: mr-pulse 6s ease-in-out infinite; }
.scn-mercutio-conjures-romeo .circle-inner { position:absolute; top:35%; left:35%; width:140px; height:140px; border: 1px dashed rgba(200,220,240,0.25); border-radius:50%; animation: mr-pulse 6s ease-in-out infinite reverse; }
.scn-mercutio-conjures-romeo .conjurer { position:absolute; bottom:20%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 80%; animation: mr-dance 2.5s ease-in-out infinite; }
.scn-mercutio-conjures-romeo .sparkle-a { position:absolute; top:25%; left:45%; width:8px; height:8px; background: radial-gradient(circle, #d0d8e8, transparent); border-radius:50%; animation: mr-spark 3s ease-in-out infinite; }
.scn-mercutio-conjures-romeo .sparkle-b { position:absolute; top:40%; left:55%; width:6px; height:6px; background: radial-gradient(circle, #c0d0e0, transparent); border-radius:50%; animation: mr-spark 3s ease-in-out infinite 1.5s; }
.scn-mercutio-conjures-romeo .shadow-base { position:absolute; bottom:15%; left:38%; width:50px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,0.4), transparent); border-radius:50%; animation: mr-shadow 2.5s ease-in-out infinite; }
@keyframes mr-pulse { 0% { transform: scale(0.95); opacity:0.6; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.95); opacity:0.6; } }
@keyframes mr-dance { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-5px) rotate(5deg); } 60% { transform: translateY(-2px) rotate(-4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mr-spark { 0% { transform: scale(0.5) rotate(0deg); opacity:0; } 50% { transform: scale(1.2) rotate(180deg); opacity:1; } 100% { transform: scale(0.5) rotate(360deg); opacity:0; } }
@keyframes mr-shadow { 0% { transform: scaleX(0.8); opacity:0.3; } 50% { transform: scaleX(1.2); opacity:0.5; } 100% { transform: scaleX(0.8); opacity:0.3; } }

/* romeo-juliet-balcony */
.scn-romeo-juliet-balcony,
.scn-romeo-juliet-balcony * { box-sizing:border-box; }
.scn-romeo-juliet-balcony {
  position:relative;
  overflow:hidden;
  background: linear-gradient(180deg, #0e0e30 0%, #1a1d4a 50%, #2c3068 100%),
              radial-gradient(ellipse at 50% 30%, #5060a0 0%, transparent 60%);
}
.scn-romeo-juliet-balcony .deep-sky { position:absolute; inset:0; background: repeating-linear-gradient(45deg, transparent, transparent 15px, rgba(255,255,255,0.01) 15px, rgba(255,255,255,0.01) 16px); }
.scn-romeo-juliet-balcony .moon-silver { position:absolute; top:8%; right:12%; width:100px; height:100px; background: radial-gradient(circle, #c0d0e8 0%, #90a8c0 40%, transparent 70%); border-radius:50%; filter:blur(6px); animation: rj-moon 10s ease-in-out infinite alternate; }
.scn-romeo-juliet-balcony .balcony-wall { position:absolute; left:30%; right:10%; top:15%; bottom:10%; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.5); }
.scn-romeo-juliet-balcony .juliet-silhouette { position:absolute; top:18%; left:42%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: 50% 80%; animation: rj-lean 7s ease-in-out infinite; }
.scn-romeo-juliet-balcony .romeo-below { position:absolute; bottom:12%; left:35%; width:24px; height:45px; background: linear-gradient(160deg, #1a1a2e 0%, #0a0a14 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: rj-adore 4s ease-in-out infinite; }
.scn-romeo-juliet-balcony .window-glow { position:absolute; top:20%; left:40%; width:50px; height:60px; background: radial-gradient(ellipse at 50% 30%, #d0a060 0%, #b08040 50%, transparent 80%); border-radius: 30% 30% 10% 10%; animation: rj-glw 4s ease-in-out infinite alternate; }
.scn-romeo-juliet-balcony .vine-trailing { position:absolute; bottom:2%; left:28%; width:10px; height:40%; background: linear-gradient(180deg, #1a3a1a, transparent); border-radius: 40% 40% 0 0; animation: rj-vine 15s ease-in-out infinite alternate; }
@keyframes rj-moon { 0% { transform: scale(0.95); opacity:0.7; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes rj-lean { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rj-adore { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }
@keyframes rj-glw { 0% { box-shadow: 0 0 20px 5px #b08040, 0 0 40px 10px rgba(176,128,64,0.3); opacity:0.8; } 50% { box-shadow: 0 0 40px 10px #d0a060, 0 0 60px 15px rgba(208,160,96,0.4); opacity:1; } 100% { box-shadow: 0 0 20px 5px #b08040, 0 0 40px 10px rgba(176,128,64,0.3); opacity:0.8; } }
@keyframes rj-vine { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05) translateX(2px); } 100% { transform: scaleY(1); } }

/* juliet-why-art-thou-romeo */
.scn-juliet-why-art-thou-romeo,
.scn-juliet-why-art-thou-romeo * { box-sizing:border-box; }
.scn-juliet-why-art-thou-romeo {
  position:relative;
  overflow:hidden;
  background: linear-gradient(180deg, #10102e 0%, #1e2248 50%, #30306a 100%),
              radial-gradient(ellipse at 50% 40%, #4a5a8a 0%, transparent 60%);
}
.scn-juliet-why-art-thou-romeo .frame-bg { position:absolute; inset:0; background: repeating-radial-gradient(circle at 20% 30%, transparent, transparent 25px, rgba(255,255,255,0.01) 25px, rgba(255,255,255,0.01) 26px); }
.scn-juliet-why-art-thou-romeo .window-arch { position:absolute; top:5%; left:25%; right:25%; bottom:5%; background: linear-gradient(180deg, #3a2a4a 0%, #1a1a2a 100%); border-radius: 30% 30% 5% 5% / 50% 50% 20% 20%; box-shadow: inset 0 0 40px rgba(0,0,0,0.6); }
.scn-juliet-why-art-thou-romeo .juliet-close { position:absolute; bottom:30%; left:35%; width:35px; height:70px; background: linear-gradient(150deg, #1a1a2e 0%, #0a0a18 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: 50% 90%; animation: jr-anguish 5s ease-in-out infinite; }
.scn-juliet-why-art-thou-romeo .hand-reach { position:absolute; bottom:40%; left:45%; width:12px; height:30px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 50% 50%; transform: rotate(-30deg); transform-origin: bottom left; animation: jr-reach 4s ease-in-out infinite; }
.scn-juliet-why-art-thou-romeo .moon-halos { position:absolute; top:5%; right:10%; width:80px; height:80px; background: radial-gradient(circle, #b8c8e0 0%, #90a8c8 30%, transparent 70%); border-radius:50%; filter:blur(10px); animation: jr-halo 12s ease-in-out infinite alternate; }
.scn-juliet-why-art-thou-romeo .curtain-left { position:absolute; top:0; left:0; bottom:0; width:15%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 0 30% 30% 0 / 0 20% 20% 0; animation: jr-curtl 8s ease-in-out infinite alternate; }
.scn-juliet-why-art-thou-romeo .curtain-right { position:absolute; top:0; right:0; bottom:0; width:15%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 30% 0 0 30% / 20% 0 0 20%; animation: jr-curtr 8s ease-in-out infinite alternate; }
@keyframes jr-anguish { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes jr-reach { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-45deg) translateX(-5px); } 100% { transform: rotate(-30deg) translateX(0); } }
@keyframes jr-halo { 0% { transform: scale(0.9); opacity:0.6; } 50% { transform: scale(1.1); opacity:0.9; } 100% { transform: scale(0.9); opacity:0.6; } }
@keyframes jr-curtl { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes jr-curtr { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }

.scn-juliet-false-consent {
  background: linear-gradient(145deg, #f5e6d0 0%, #d9c2a0 40%, #c8b08e 100%),
              radial-gradient(circle at 30% 20%, rgba(255,240,210,0.6) 0%, transparent 60%);
}
.scn-juliet-false-consent .room { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 0%, #e8d6bc 0%, transparent 50%); }
.scn-juliet-false-consent .window { position:absolute; top:10%; left:15%; width:45%; height:35%; background:linear-gradient(180deg, #d0e8f0 0%, #a0c8e0 100%); border-radius:4% 4% 0 0; box-shadow:-2px 2px 12px rgba(0,0,0,0.2); animation:jfc-window 6s ease-in-out infinite; }
.scn-juliet-false-consent .table { position:absolute; bottom:20%; left:25%; width:50%; height:18%; background:linear-gradient(180deg, #a08060 0%, #604830 100%); border-radius:4% 4% 2% 2%; box-shadow:0 4px 8px rgba(0,0,0,0.3); }
.scn-juliet-false-consent .vial { position:absolute; bottom:28%; left:45%; width:8px; height:24px; background:linear-gradient(180deg, #d4c8a0 0%, #a09070 100%); border-radius:50% 50% 30% 30%; box-shadow:0 0 16px 4px rgba(180,160,120,0.6); animation:jfc-vial 2s ease-in-out infinite alternate; }
.scn-juliet-false-consent .figure-juliet { position:absolute; bottom:23%; left:35%; width:16%; height:50%; background:linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:jfc-figure 3s ease-in-out infinite; }
.scn-juliet-false-consent .shadow { position:absolute; bottom:10%; left:20%; width:60%; height:15%; background:radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); animation:jfc-shadow 3s ease-in-out infinite; }
.scn-juliet-false-consent .curtain-left { position:absolute; top:0; left:0; width:12%; height:100%; background:linear-gradient(180deg, #a85030 0%, #701c10 100%); border-radius:0 30% 30% 0; box-shadow:2px 0 8px rgba(0,0,0,0.3); animation:jfc-curtain 8s ease-in-out infinite; }
.scn-juliet-false-consent .curtain-right { position:absolute; top:0; right:0; width:12%; height:100%; background:linear-gradient(180deg, #a85030 0%, #701c10 100%); border-radius:30% 0 0 30%; box-shadow:-2px 0 8px rgba(0,0,0,0.3); animation:jfc-curtain 8s ease-in-out infinite reverse; }
@keyframes jfc-window { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes jfc-vial { 0%{transform:translateY(0); opacity:0.8} 50%{transform:translateY(-2px); opacity:1} 100%{transform:translateY(0); opacity:0.7} }
@keyframes jfc-figure { 0%{transform:translateX(0) rotate(-1deg)} 25%{transform:translateX(4px) rotate(1deg)} 50%{transform:translateX(-2px) rotate(-1deg)} 75%{transform:translateX(2px) rotate(0)} 100%{transform:translateX(0) rotate(-1deg)} }
@keyframes jfc-shadow { 0%{transform:scaleX(1); opacity:0.5} 50%{transform:scaleX(1.1); opacity:0.7} 100%{transform:scaleX(1); opacity:0.4} }
@keyframes jfc-curtain { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} 100%{transform:scaleY(1)} }

.scn-lady-capulet-announces-marriage {
  background: linear-gradient(180deg, #f0e6d0 0%, #d8cbb0 50%, #c0b090 100%),
              radial-gradient(ellipse at 50% 40%, rgba(255,235,200,0.5) 0%, transparent 70%);
}
.scn-lady-capulet-announces-marriage .hall { position:absolute; inset:0; background:linear-gradient(180deg, #e8dcc8 0%, #d8c8b0 100%); }
.scn-lady-capulet-announces-marriage .column-left { position:absolute; top:0; left:10%; width:8%; height:100%; background:linear-gradient(90deg, #c8b898 0%, #e0d0b0 50%, #b8a888 100%); border-radius:2%/4%; box-shadow:2px 0 8px rgba(0,0,0,0.15); }
.scn-lady-capulet-announces-marriage .column-right { position:absolute; top:0; right:10%; width:8%; height:100%; background:linear-gradient(90deg, #c8b898 0%, #e0d0b0 50%, #b8a888 100%); border-radius:2%/4%; box-shadow:-2px 0 8px rgba(0,0,0,0.15); }
.scn-lady-capulet-announces-marriage .figure-lady { position:absolute; bottom:18%; left:28%; width:14%; height:55%; background:linear-gradient(180deg, #4a6080 0%, #203040 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:lca-lady 5s ease-in-out infinite; }
.scn-lady-capulet-announces-marriage .figure-juliet-soft { position:absolute; bottom:20%; right:28%; width:13%; height:48%; background:linear-gradient(180deg, #806860 0%, #403030 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation:lca-juliet 6s ease-in-out infinite; }
.scn-lady-capulet-announces-marriage .floor { position:absolute; bottom:0; left:0; right:0; height:18%; background:linear-gradient(180deg, #b0a080 0%, #908070 100%); border-radius:20% 20% 0 0; }
.scn-lady-capulet-announces-marriage .particles { position:absolute; top:0; left:0; right:0; bottom:0; background:radial-gradient(circle at 30% 70%, rgba(255,220,180,0.2) 0%, transparent 40%), radial-gradient(circle at 70% 30%, rgba(255,220,180,0.15) 0%, transparent 40%); animation:lca-particles 12s linear infinite; }
.scn-lady-capulet-announces-marriage .arch { position:absolute; top:0; left:20%; right:20%; height:30%; background:linear-gradient(180deg, transparent 0%, rgba(200,180,160,0.3) 100%); border-radius:50% 50% 0 0; box-shadow:inset 0 4px 12px rgba(0,0,0,0.1); }
@keyframes lca-lady { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes lca-juliet { 0%{transform:translateY(0); opacity:0.9} 50%{transform:translateY(-1px); opacity:1} 100%{transform:translateY(0); opacity:0.9} }
@keyframes lca-particles { 0%{opacity:0.3} 50%{opacity:0.7} 100%{opacity:0.3} }

.scn-capulet-rages {
  background: linear-gradient(180deg, #f5e0c0 0%, #d0b080 40%, #a08050 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255,200,150,0.4) 0%, transparent 60%);
}
.scn-capulet-rages .chamber { position:absolute; inset:0; background:radial-gradient(ellipse at 30% 60%, #e8c898 0%, transparent 50%); }
.scn-capulet-rages .window-bright { position:absolute; top:12%; right:10%; width:30%; height:40%; background:linear-gradient(180deg, #fff5e0 0%, #e8d0a0 100%); border-radius:6% 6% 0 0; box-shadow:-4px 2px 20px rgba(255,200,150,0.3); animation:cr-window 4s ease-in-out infinite alternate; }
.scn-capulet-rages .figure-capulet { position:absolute; bottom:15%; left:40%; width:22%; height:70%; background:linear-gradient(180deg, #6a4a30 0%, #3a2a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:cr-capulet 2s ease-in-out infinite; }
.scn-capulet-rages .arm-left { position:absolute; bottom:62%; left:36%; width:10%; height:40%; background:linear-gradient(180deg, #6a4a30 0%, #3a2a1a 100%); border-radius:30% 10% 40% 40%; transform-origin:top center; animation:cr-arm-l 1.5s ease-in-out infinite; }
.scn-capulet-rages .arm-right { position:absolute; bottom:62%; right:36%; width:10%; height:40%; background:linear-gradient(180deg, #6a4a30 0%, #3a2a1a 100%); border-radius:10% 30% 40% 40%; transform-origin:top center; animation:cr-arm-r 1.8s ease-in-out infinite; }
.scn-capulet-rages .chair-over { position:absolute; bottom:10%; left:62%; width:15%; height:25%; background:linear-gradient(180deg, #8a7050 0%, #504030 100%); border-radius:10% 10% 20% 20%; transform:rotate(25deg); box-shadow:0 4px 6px rgba(0,0,0,0.3); animation:cr-chair 3s ease-in-out infinite; }
.scn-capulet-rages .shadow-sharp { position:absolute; bottom:0; left:30%; width:40%; height:20%; background:radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); animation:cr-shadow 2s ease-in-out infinite; }
.scn-capulet-rages .dust { position:absolute; top:0; left:0; right:0; bottom:0; background:radial-gradient(circle at 20% 40%, rgba(200,180,140,0.15) 0%, transparent 30%), radial-gradient(circle at 80% 70%, rgba(200,180,140,0.1) 0%, transparent 30%); animation:cr-dust 10s linear infinite; }
@keyframes cr-window { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes cr-capulet { 0%{transform:translateX(0) rotate(-2deg)} 25%{transform:translateX(8px) rotate(2deg)} 50%{transform:translateX(-4px) rotate(-1deg)} 75%{transform:translateX(4px) rotate(1deg)} 100%{transform:translateX(0) rotate(-2deg)} }
@keyframes cr-arm-l { 0%{transform:rotate(0)} 50%{transform:rotate(-30deg)} 100%{transform:rotate(0)} }
@keyframes cr-arm-r { 0%{transform:rotate(0)} 50%{transform:rotate(25deg)} 100%{transform:rotate(0)} }
@keyframes cr-chair { 0%{transform:rotate(25deg) translateY(0)} 50%{transform:rotate(30deg) translateY(-2px)} 100%{transform:rotate(25deg) translateY(0)} }
@keyframes cr-shadow { 0%{opacity:0.5; transform:scaleX(1)} 50%{opacity:0.8; transform:scaleX(1.3)} 100%{opacity:0.4; transform:scaleX(1)} }
@keyframes cr-dust { 0%{opacity:0.2} 50%{opacity:0.5} 100%{opacity:0.2} }

.scn-juliet-pleads-with-mother {
  background: linear-gradient(180deg, #2a2038 0%, #1a1028 40%, #0c0818 100%),
              radial-gradient(ellipse at 50% 30%, #3a2850 0%, transparent 60%);
}
.scn-juliet-pleads-with-mother .cell { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 70%, #2a1a3a 0%, transparent 60%); }
.scn-juliet-pleads-with-mother .candle { position:absolute; top:20%; left:25%; width:6px; height:18px; background:linear-gradient(180deg, #d0b080 0%, #a08050 100%); border-radius:50% 50% 20% 20%; box-shadow:0 0 20px 6px rgba(200,160,80,0.4); animation:jpm-candle 4s ease-in-out infinite alternate; }
.scn-juliet-pleads-with-mother .glow { position:absolute; top:15%; left:20%; width:20%; height:30%; background:radial-gradient(ellipse, rgba(200,160,80,0.3) 0%, transparent 70%); animation:jpm-glow 4s ease-in-out infinite alternate; }
.scn-juliet-pleads-with-mother .figure-kneeling { position:absolute; bottom:20%; left:35%; width:16%; height:45%; background:linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:jpm-kneel 6s ease-in-out infinite; }
.scn-juliet-pleads-with-mother .figure-mother { position:absolute; bottom:18%; right:25%; width:18%; height:60%; background:linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation:jpm-mother 8s ease-in-out infinite; }
.scn-juliet-pleads-with-mother .altar { position:absolute; bottom:12%; left:40%; width:20%; height:10%; background:linear-gradient(180deg, #504050 0%, #302030 100%); border-radius:10%/20%; box-shadow:inset 0 2px 8px rgba(255,255,255,0.1); }
.scn-juliet-pleads-with-mother .tear-drop { position:absolute; bottom:38%; left:30%; width:4px; height:6px; background:radial-gradient(ellipse, #7080a0 0%, transparent 100%); border-radius:50%; opacity:0.6; animation:jpm-tear 3s ease-in-out infinite; }
@keyframes jpm-candle { 0%{transform:scaleY(1); opacity:0.8} 50%{transform:scaleY(1.1); opacity:1} 100%{transform:scaleY(1); opacity:0.7} }
@keyframes jpm-glow { 0%{opacity:0.4; transform:scale(1)} 50%{opacity:0.8; transform:scale(1.2)} 100%{opacity:0.3; transform:scale(1)} }
@keyframes jpm-kneel { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(2px) rotate(2deg)} 100%{transform:translateY(0) rotate(-2deg)} }
@keyframes jpm-mother { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes jpm-tear { 0%{opacity:0.6; transform:translateY(0)} 50%{opacity:0.3; transform:translateY(10px)} 100%{opacity:0; transform:translateY(18px)} }

/* romeo-arranges-marriage – calm sunlit cell interior */
.scn-romeo-arranges-marriage {
  background: linear-gradient(180deg, #e8dcc4 0%, #cbb89a 60%, #a6896b 100%),
              radial-gradient(ellipse at 30% 60%, #f5e8d0 0%, transparent 70%);
}
.scn-romeo-arranges-marriage .sunlight-layer { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%); animation: ram-sun 14s ease-in-out infinite alternate; }
.scn-romeo-arranges-marriage .cell-wall { position:absolute; inset:0; background: linear-gradient(90deg, #c4b49a 0%, #b09f84 100%); opacity:0.6; }
.scn-romeo-arranges-marriage .window-glow { position:absolute; top:10%; right:20%; width:80px; height:120px; background: radial-gradient(circle, #ffe8b0 0%, #e0c080 50%, transparent 70%); border-radius: 20% 20% 0 0; box-shadow: 0 0 40px 20px rgba(255,232,176,0.5); animation: ram-window 6s ease-in-out infinite alternate; }
.scn-romeo-arranges-marriage .altar-stone { position:absolute; bottom:20%; left:40%; width:120px; height:40px; background: linear-gradient(180deg, #8a7a60 0%, #6b5d4a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
.scn-romeo-arranges-marriage .figure-romeo { position:absolute; bottom:22%; left:30%; width:24px; height:70px; background: linear-gradient(180deg, #2a4a5c 0%, #1a2f3d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ram-bow 4s ease-in-out infinite; }
.scn-romeo-arranges-marriage .figure-friar { position:absolute; bottom:22%; left:55%; width:28px; height:80px; background: linear-gradient(180deg, #5a4028 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ram-pray 5s ease-in-out infinite; }
.scn-romeo-arranges-marriage .cross-symbol { position:absolute; top:8%; left:50%; width:20px; height:50px; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 10%; transform: translateX(-50%); box-shadow: 0 0 12px 4px rgba(192,160,96,0.4); animation: ram-cross 9s ease-in-out infinite alternate; }
.scn-romeo-arranges-marriage .kneeling-cushion { position:absolute; bottom:20%; left:28%; width:40px; height:15px; background: linear-gradient(180deg, #704020 0%, #502810 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: ram-cush 7s ease-in-out infinite alternate; }
@keyframes ram-sun { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes ram-window { 0% { transform: scaleY(0.95); opacity:0.8 } 50% { transform: scaleY(1.05); opacity:1 } 100% { transform: scaleY(0.98); opacity:0.85 } }
@keyframes ram-bow { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes ram-pray { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
@keyframes ram-cross { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes ram-cush { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }

/* nurse-blesses-romeo – warm sunlit garden blessing */
.scn-nurse-blesses-romeo {
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b88a 50%, #9a8a6a 100%),
              radial-gradient(ellipse at 50% 30%, #f5e8c0 0%, transparent 60%);
}
.scn-nurse-blesses-romeo .garden-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a9a5a 0%, #4a6a3a 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; }
.scn-nurse-blesses-romeo .sunburst-radial { position:absolute; top:10%; left:30%; width:200px; height:200px; background: radial-gradient(circle, #ffe8b0 0%, #f0d890 30%, transparent 70%); border-radius:50%; animation: nbr-sunburst 10s ease-in-out infinite alternate; }
.scn-nurse-blesses-romeo .figure-nurse { position:absolute; bottom:30%; left:45%; width:30px; height:80px; background: linear-gradient(180deg, #7a4a2a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nbr-nurse 4s ease-in-out infinite; }
.scn-nurse-blesses-romeo .figure-romeo-kneeling { position:absolute; bottom:25%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #2a4a5c 0%, #1a2f3d 100%); border-radius: 50% 50% 40% 40% / 60% 40% 40% 60%; transform-origin: bottom center; animation: nbr-kneel 5s ease-in-out infinite alternate; }
.scn-nurse-blesses-romeo .blessing-halo { position:absolute; top:50%; left:48%; width:40px; height:40px; background: radial-gradient(circle, #ffe8b0 0%, #f0c880 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,232,176,0.6); animation: nbr-halo 3s ease-in-out infinite alternate; }
.scn-nurse-blesses-romeo .flowers-row { position:absolute; bottom:20%; left:10%; right:10%; height:30px; background: repeating-linear-gradient(90deg, #d08050 0px, #d08050 12px, #f0b080 12px, #f0b080 24px); border-radius: 50% 50% 0 0; filter: blur(2px); opacity:0.7; animation: nbr-flowers 8s linear infinite alternate; }
.scn-nurse-blesses-romeo .butterfly { position:absolute; top:20%; left:60%; width:12px; height:12px; background: radial-gradient(circle, #f0a050 0%, #c07030 100%); border-radius: 50% 50% 0 0; box-shadow: 4px 4px 0 #c07030; transform: rotate(-30deg); animation: nbr-butterfly 6s ease-in-out infinite; }
.scn-nurse-blesses-romeo .grass-blades { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, transparent 0%, #5a7a3a 100%); }
@keyframes nbr-sunburst { 0% { transform: scale(0.9); opacity:0.7 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:0.8 } }
@keyframes nbr-nurse { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes nbr-kneel { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-6px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes nbr-halo { 0% { transform: scale(0.8); opacity:0.6 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.9); opacity:0.7 } }
@keyframes nbr-flowers { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes nbr-butterfly { 0% { transform: translate(0,0) rotate(-30deg) } 25% { transform: translate(10px,-15px) rotate(0deg) } 50% { transform: translate(20px,0) rotate(30deg) } 75% { transform: translate(10px,-10px) rotate(15deg) } 100% { transform: translate(0,0) rotate(-30deg) } }

/* nurse-departs – warm sunlit street departure */
.scn-nurse-departs {
  background: linear-gradient(180deg, #e0d0b8 0%, #b8a88a 50%, #8a7a5a 100%),
              radial-gradient(ellipse at 80% 60%, #f5e0b0 0%, transparent 60%);
}
.scn-nurse-departs .street-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #b8a88a 0%, #9a8a6a 100%); border-radius: 0 0 30% 30%; }
.scn-nurse-departs .doorway-arch { position:absolute; bottom:20%; left:20%; width:80px; height:120px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-nurse-departs .figure-nurse-walking { position:absolute; bottom:22%; left:20%; width:28px; height:70px; background: linear-gradient(180deg, #7a4a2a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ndp-walk-nurse 3s linear infinite; }
.scn-nurse-departs .figure-peter { position:absolute; bottom:22%; left:35%; width:22px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ndp-walk-peter 3.5s linear infinite reverse; }
.scn-nurse-departs .fan-motion { position:absolute; top:50%; left:22%; width:16px; height:16px; background: radial-gradient(circle, #f0c080 0%, #c08040 100%); border-radius: 0 50% 50% 0; transform: rotate(0deg); animation: ndp-fan 1.5s ease-in-out infinite; }
.scn-nurse-departs .paving-stones { position:absolute; bottom:0; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 30px, #8a7a5a 30px, #8a7a5a 60px); border-radius: 10% 10% 0 0; }
.scn-nurse-departs .dust-particles { position:absolute; top:30%; left:10%; width:6px; height:6px; border-radius:50%; background: rgba(200,180,150,0.4); box-shadow: 20px 20px 0 rgba(200,180,150,0.3), -10px 40px 0 rgba(200,180,150,0.2); animation: ndp-dust 8s linear infinite; }
@keyframes ndp-walk-nurse { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(10px) rotate(2deg) } 50% { transform: translateX(20px) rotate(0deg) } 75% { transform: translateX(30px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ndp-walk-peter { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-8px) rotate(-2deg) } 50% { transform: translateX(-16px) rotate(0deg) } 75% { transform: translateX(-24px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ndp-fan { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(90deg) scale(1.2) } 100% { transform: rotate(180deg) scale(1) } }
@keyframes ndp-dust { 0% { transform: translate(0,0); opacity:0.6 } 50% { transform: translate(30px,-20px); opacity:0.2 } 100% { transform: translate(60px,-40px); opacity:0 } }

/* juliet-waits-for-news – tense sunlit balcony, sharp shadows */
.scn-juliet-waits-for-news {
  background: linear-gradient(180deg, #e8d8a0 0%, #c8b878 50%, #a89858 100%),
              radial-gradient(ellipse at 60% 40%, #ffe8b0 0%, transparent 50%);
}
.scn-juliet-waits-for-news .sky-tense { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0c8e0 0%, #e8d8a0 100%); animation: jwn-sky 12s ease-in-out infinite alternate; }
.scn-juliet-waits-for-news .balcony-rail { position:absolute; bottom:35%; left:20%; right:20%; height:20px; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 0 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-juliet-waits-for-news .figure-juliet { position:absolute; bottom:30%; left:50%; width:28px; height:80px; background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); transform-origin: bottom center; animation: jwn-restless 3s ease-in-out infinite; }
.scn-juliet-waits-for-news .clenching-hands { position:absolute; bottom:42%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #8a6a5a 0%, #5a3a2a 100%); border-radius: 50%; transform: translateX(-50%); box-shadow: 8px 0 0 #5a3a2a; animation: jwn-hands 2s ease-in-out infinite alternate; }
.scn-juliet-waits-for-news .anxiety-lines { position:absolute; top:20%; left:0%; width:100%; height:1px; background: repeating-linear-gradient(90deg, transparent 0px, #a05030 2px, transparent 4px); opacity:0.3; animation: jwn-lines 1s linear infinite; }
.scn-juliet-waits-for-news .sun-dart-shadow { position:absolute; top:10%; left:40%; width:30px; height:200px; background: linear-gradient(0deg, rgba(0,0,0,0.2) 0%, transparent 100%); transform: rotate(-20deg); animation: jwn-dart 7s ease-in-out infinite alternate; }
.scn-juliet-waits-for-news .clock-shadow { position:absolute; top:5%; right:10%; width:40px; height:40px; background: radial-gradient(circle, #8a7a5a 0%, #4a3a2a 100%); border-radius: 50%; box-shadow: 0 0 20px 4px rgba(0,0,0,0.3); animation: jwn-clock 60s linear infinite; }
.scn-juliet-waits-for-news .pace-marks { position:absolute; bottom:25%; left:10%; right:10%; height:5px; background: repeating-linear-gradient(90deg, #6a5a3a 0px, #6a5a3a 8px, transparent 8px, transparent 16px); opacity:0.4; animation: jwn-pace 4s ease-in-out infinite alternate; }
@keyframes jwn-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes jwn-restless { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-3px) rotate(2deg) } 50% { transform: translateX(-48%) translateY(0) rotate(-1deg) } 75% { transform: translateX(-52%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes jwn-hands { 0% { transform: translateX(-50%) scale(1) } 100% { transform: translateX(-50%) scale(1.1) } }
@keyframes jwn-lines { 0% { transform: translateX(0) } 100% { transform: translateX(-100px) } }
@keyframes jwn-dart { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(10px) } 100% { transform: rotate(-25deg) translateX(-5px) } }
@keyframes jwn-clock { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes jwn-pace { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.5) } 100% { transform: scaleX(0.8) } }

.scn-mercutio-queen-mab { background: linear-gradient(180deg, #7a4a6e 0%, #c07050 40%, #e0a060 70%, #f0c080 100%), radial-gradient(ellipse at 50% 0%, #f0c080 0%, transparent 60%); }
.scn-mercutio-queen-mab .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a2a4e 0%, transparent 90%); animation: mqm-sky 8s ease-in-out infinite alternate; }
.scn-mercutio-queen-mab .figure { position:absolute; bottom:20%; left:40%; width:24px; 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: mqm-fig 1.5s ease-in-out infinite; }
.scn-mercutio-queen-mab .lantern { position:absolute; bottom:32%; left:38%; width:8px; height:12px; background: radial-gradient(circle, #ffe080 0%, #c08030 70%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 20px 6px #c08030, 0 0 40px 12px rgba(192,128,48,.4); animation: mqm-lantern 2s ease-in-out infinite alternate; }
.scn-mercutio-queen-mab .mouse { position:absolute; bottom:18%; left:55%; width:12px; height:8px; background: #3a2a1a; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; animation: mqm-mouse 3s ease-in-out infinite; }
.scn-mercutio-queen-mab .lamp1 { position:absolute; bottom:40%; left:20%; width:10px; height:14px; background: radial-gradient(circle, #ffe080 0%, #c08030 70%); border-radius:30%; box-shadow: 0 0 12px 3px #c08030; animation: mqm-lamp 4s ease-in-out infinite alternate; }
.scn-mercutio-queen-mab .lamp2 { position:absolute; bottom:40%; right:25%; width:10px; height:14px; background: radial-gradient(circle, #ffe080 0%, #c08030 70%); border-radius:30%; box-shadow: 0 0 12px 3px #c08030; animation: mqm-lamp 4s ease-in-out infinite alternate-reverse; }
.scn-mercutio-queen-mab .cloud { position:absolute; top:10%; left:-80px; width:140px; height:30px; background: linear-gradient(180deg, rgba(200,160,120,.4) 0%, rgba(200,160,120,.1) 100%); border-radius:50%; filter: blur(8px); animation: mqm-cloud 40s linear infinite; }
.scn-mercutio-queen-mab .sparkle { position:absolute; top:25%; left:10%; width:4px; height:4px; background: #fff; border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,255,255,.6); animation: mqm-spark 1.2s ease-in-out infinite; }
@keyframes mqm-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mqm-fig { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mqm-lantern { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 20px 6px #c08030; } 50% { transform: translateY(-3px) scale(1.05); box-shadow: 0 0 30px 10px #ffd060; } 100% { transform: translateY(0) scale(1); box-shadow: 0 0 20px 6px #c08030; } }
@keyframes mqm-mouse { 0% { transform: translateX(0) } 25% { transform: translateX(10px) } 50% { transform: translateX(20px) } 75% { transform: translateX(30px) } 100% { transform: translateX(0) } }
@keyframes mqm-lamp { 0% { opacity:0.6; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.7; transform: scaleY(0.95); } }
@keyframes mqm-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(150vw) } }
@keyframes mqm-spark { 0% { opacity:0; transform: scale(0.5) translateY(0); } 50% { opacity:1; transform: scale(1.2) translateY(-10px); } 100% { opacity:0; transform: scale(0.3) translateY(-20px); } }

.scn-romeo-sense-of-doom { background: linear-gradient(180deg, #1a1a3e 0%, #2c1a3a 40%, #3a2a4e 70%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #2c1a3a 0%, transparent 70%); }
.scn-romeo-sense-of-doom .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 80%); animation: rsd-sky 15s ease-in-out infinite alternate; }
.scn-romeo-sense-of-doom .figure { position:absolute; bottom:25%; left:48%; width:22px; height:48px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rsd-fig 6s ease-in-out infinite; }
.scn-romeo-sense-of-doom .dream1 { position:absolute; top:20%; left:15%; width:50px; height:30px; background: radial-gradient(ellipse, rgba(120,100,180,.3) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: rsd-dream 12s ease-in-out infinite alternate; }
.scn-romeo-sense-of-doom .dream2 { position:absolute; top:30%; right:20%; width:40px; height:25px; background: radial-gradient(ellipse, rgba(100,80,160,.2) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: rsd-dream 15s ease-in-out infinite alternate-reverse; }
.scn-romeo-sense-of-doom .moon { position:absolute; top:8%; right:25%; width:30px; height:30px; background: radial-gradient(circle, #d0c0a0 0%, #b0a080 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 4px rgba(200,180,140,.3); animation: rsd-moon 20s linear infinite; }
.scn-romeo-sense-of-doom .shadow { position:absolute; bottom:20%; left:40%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); border-radius:50%; animation: rsd-shadow 6s ease-in-out infinite; }
.scn-romeo-sense-of-doom .mist { position:absolute; bottom:10%; left:0; right:0; height:40%; background: linear-gradient(0deg, rgba(30,20,50,.3) 0%, transparent 100%); animation: rsd-mist 10s ease-in-out infinite alternate; }
@keyframes rsd-sky { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.7 } }
@keyframes rsd-fig { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes rsd-dream { 0% { transform: translate(0,0) scale(1); opacity:0.3 } 50% { transform: translate(10px,-10px) scale(1.1); opacity:0.5 } 100% { transform: translate(-5px,5px) scale(0.9); opacity:0.2 } }
@keyframes rsd-moon { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(0) } }
@keyframes rsd-shadow { 0% { transform: scaleX(1); opacity:0.4 } 50% { transform: scaleX(1.2); opacity:0.6 } 100% { transform: scaleX(1); opacity:0.4 } }
@keyframes rsd-mist { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

.scn-capulet-welcomes-guests { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #6a3a1a 60%, #8a4a1a 100%), radial-gradient(ellipse at 50% 80%, #c06020 0%, transparent 60%); }
.scn-capulet-welcomes-guests .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 10% 10%; }
.scn-capulet-welcomes-guests .fireplace { position:absolute; bottom:25%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -10px 20px rgba(200,80,20,.4); animation: cwg-fireplace 3s ease-in-out infinite alternate; }
.scn-capulet-welcomes-guests .table { position:absolute; bottom:20%; left:30%; width:100px; height:20px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 5% 5% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-capulet-welcomes-guests .server1 { position:absolute; bottom:22%; left:20%; width:18px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: cwg-serv1 2s ease-in-out infinite; }
.scn-capulet-welcomes-guests .server2 { position:absolute; bottom:22%; right:25%; width:16px; height:36px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: cwg-serv2 2.3s ease-in-out infinite; }
.scn-capulet-welcomes-guests .guest1 { position:absolute; bottom:25%; left:45%; width:20px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cwg-guest 4s ease-in-out infinite; }
.scn-capulet-welcomes-guests .guest2 { position:absolute; bottom:25%; left:55%; width:22px; height:46px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cwg-guest 4.5s ease-in-out infinite reverse; }
.scn-capulet-welcomes-guests .glow { position:absolute; bottom:20%; left:50%; width:120px; height:120px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(200,80,20,.3) 0%, transparent 70%); animation: cwg-glow 3s ease-in-out infinite alternate; }
@keyframes cwg-fireplace { 0% { box-shadow: inset 0 -10px 20px rgba(200,80,20,.3); } 50% { box-shadow: inset 0 -15px 30px rgba(255,120,40,.6); } 100% { box-shadow: inset 0 -10px 20px rgba(200,80,20,.3); } }
@keyframes cwg-serv1 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cwg-serv2 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cwg-guest { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cwg-glow { 0% { opacity:0.4; transform: translateX(-50%) scale(1); } 50% { opacity:0.7; transform: translateX(-50%) scale(1.05); } 100% { opacity:0.5; transform: translateX(-50%) scale(0.95); } }

.scn-capulet-and-cousin-reminisce { background: linear-gradient(180deg, #1a0a00 0%, #3a1a0a 40%, #5a2a10 70%, #7a3a18 100%), radial-gradient(ellipse at 50% 90%, #c06020 0%, transparent 60%); }
.scn-capulet-and-cousin-reminisce .hearth { position:absolute; bottom:15%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 -8px 16px rgba(200,80,20,.3); animation: ccr-hearth 4s ease-in-out infinite alternate; }
.scn-capulet-and-cousin-reminisce .figure1 { position:absolute; bottom:20%; left:30%; width:24px; height:48px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ccr-fig1 5s ease-in-out infinite; }
.scn-capulet-and-cousin-reminisce .figure2 { position:absolute; bottom:20%; left:55%; width:24px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ccr-fig2 5.5s ease-in-out infinite reverse; }
.scn-capulet-and-cousin-reminisce .table { position:absolute; bottom:18%; left:42%; width:40px; height:14px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10%; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-capulet-and-cousin-reminisce .goblet { position:absolute; bottom:22%; left:48%; width:8px; height:16px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 20% 20% 40% 40%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.3); animation: ccr-goblet 6s ease-in-out infinite; }
.scn-capulet-and-cousin-reminisce .embers { position:absolute; bottom:15%; left:50%; width:50px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(200,100,30,.5) 0%, transparent 70%); animation: ccr-ember 2s ease-in-out infinite alternate; }
.scn-capulet-and-cousin-reminisce .warmth { position:absolute; bottom:10%; left:40%; width:80px; height:80px; background: radial-gradient(ellipse, rgba(200,80,20,.2) 0%, transparent 70%); animation: ccr-warmth 4s ease-in-out infinite alternate; }
@keyframes ccr-hearth { 0% { box-shadow: inset 0 -8px 16px rgba(200,80,20,.2); } 50% { box-shadow: inset 0 -12px 24px rgba(255,120,40,.5); } 100% { box-shadow: inset 0 -8px 16px rgba(200,80,20,.2); } }
@keyframes ccr-fig1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ccr-fig2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ccr-goblet { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ccr-ember { 0% { opacity:0.4; transform: translateX(-50%) scale(1); } 50% { opacity:0.8; transform: translateX(-50%) scale(1.2); } 100% { opacity:0.5; transform: translateX(-50%) scale(0.9); } }
@keyframes ccr-warmth { 0% { opacity:0.3; transform: scale(0.95); } 50% { opacity:0.6; transform: scale(1.05); } 100% { opacity:0.4; transform: scale(1); } }

/* scene: juliet-responds-to-paris (jrp) */
.scn-juliet-responds-to-paris { background: linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 30%, #dcc4a8 100%), radial-gradient(ellipse at 50% 100%, #e8d4b8 0%, transparent 70%); }
.scn-juliet-responds-to-paris .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #f0e0c8 0%, #dfc8a8 100%); }
.scn-juliet-responds-to-paris .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #c8b090 0%, #b09878 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.15); }
.scn-juliet-responds-to-paris .window { position:absolute; top:10%; left:50%; width:120px; height:160px; margin-left:-60px; background: linear-gradient(180deg, #b8d8f0 0%, #d0e8ff 100%); border:8px solid #8a7a5a; border-radius:8% 8% 4% 4%; box-shadow: inset 0 0 30px rgba(255,255,200,.6), 0 0 40px rgba(255,255,200,.3); animation: jrp-window 6s ease-in-out infinite alternate; }
.scn-juliet-responds-to-paris .juliet { position:absolute; bottom:18%; left:38%; width:32px; height:80px; background: linear-gradient(180deg, #c8a878 0%, #b08858 50%, #886840 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jrp-figure 5s ease-in-out infinite; }
.scn-juliet-responds-to-paris .juliet::after { content:''; position:absolute; top:10%; left:50%; width:14px; height:14px; margin-left:-7px; background: radial-gradient(circle, #f0d8b0 0%, #d0a878 100%); border-radius:50%; }
.scn-juliet-responds-to-paris .paris { position:absolute; bottom:18%; right:35%; width:34px; height:82px; background: linear-gradient(180deg, #a898c0 0%, #8070b0 50%, #605090 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jrp-figure 6s ease-in-out infinite 1s; }
.scn-juliet-responds-to-paris .servant { position:absolute; bottom:16%; left:20%; width:24px; height:60px; background: linear-gradient(180deg, #a0a090 0%, #808070 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jrp-enter 4s ease-in-out infinite alternate; }
.scn-juliet-responds-to-paris .glow { position:absolute; top:5%; left:50%; width:160px; height:200px; margin-left:-80px; background: radial-gradient(ellipse, rgba(255,240,200,.5) 0%, transparent 70%); animation: jrp-glow 7s ease-in-out infinite alternate; }
@keyframes jrp-window { 0% { opacity:.9; box-shadow: inset 0 0 30px rgba(255,255,200,.6), 0 0 40px rgba(255,255,200,.3); } 50% { opacity:1; box-shadow: inset 0 0 50px rgba(255,255,200,.8), 0 0 60px rgba(255,255,200,.5); } 100% { opacity:.85; box-shadow: inset 0 0 25px rgba(255,255,200,.4), 0 0 30px rgba(255,255,200,.2); } }
@keyframes jrp-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes jrp-enter { 0% { transform: translateX(-10px) scale(.95); opacity:.7; } 50% { transform: translateX(0) scale(1); opacity:1; } 100% { transform: translateX(8px) scale(.98); opacity:.9; } }
@keyframes jrp-glow { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }

/* scene: maskers-prepare (msp) */
.scn-maskers-prepare { background: linear-gradient(180deg, #2a3a5a 0%, #4a3a5a 40%, #6a4a4a 100%), radial-gradient(ellipse at 50% 100%, #7a5a4a 0%, transparent 60%); }
.scn-maskers-prepare .street { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-maskers-prepare .sky-dusk { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #5a5a7a 0%, #4a4a6a 50%, transparent 100%); animation: msp-sky 10s ease-in-out infinite alternate; }
.scn-maskers-prepare .romeo { position:absolute; bottom:28%; left:45%; width:34px; height:80px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: msp-figure 3s ease-in-out infinite; }
.scn-maskers-prepare .mercutio { position:absolute; bottom:28%; left:55%; width:36px; height:78px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: msp-figure 3.5s ease-in-out infinite -1s; }
.scn-maskers-prepare .benvolio { position:absolute; bottom:28%; right:20%; width:30px; height:76px; background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: msp-figure 4s ease-in-out infinite -2s; }
.scn-maskers-prepare .torch { position:absolute; bottom:30%; left:60%; width:8px; height:20px; background: linear-gradient(180deg, #c86828 0%, #8a4820 100%); border-radius:20% 20% 10% 10%; animation: msp-torch 2s ease-in-out infinite alternate; }
.scn-maskers-prepare .torch::after { content:''; position:absolute; top:-10px; left:-4px; width:16px; height:16px; background: radial-gradient(circle, #ffc840 0%, #e88820 50%, transparent 100%); border-radius:50%; animation: msp-flame 1s ease-in-out infinite alternate; }
.scn-maskers-prepare .mask { position:absolute; bottom:32%; left:40%; width:20px; height:10px; background: #8a6a3a; border-radius:0 0 50% 50%; transform:rotate(-10deg); animation: msp-mask 2s ease-in-out infinite alternate; }
.scn-maskers-prepare .sparkle { position:absolute; top:15%; left:20%; width:4px; height:4px; background:#ffd080; border-radius:50%; box-shadow: 0 0 6px #ffd080; animation: msp-sparkle 2s ease-in-out infinite; }
@keyframes msp-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes msp-figure { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes msp-torch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(.95); } }
@keyframes msp-flame { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.2) translate(2px,-3px); } 100% { transform: scale(.9) translate(-1px,-1px); } }
@keyframes msp-mask { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes msp-sparkle { 0% { opacity:0; transform: scale(0); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0; transform: scale(0); } }

/* scene: romeo-reluctant-to-dance (rrtd) */
.scn-romeo-reluctant-to-dance { background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 40%, #3a4a4a 100%), radial-gradient(ellipse at 50% 100%, #4a4a3a 0%, transparent 70%); }
.scn-romeo-reluctant-to-dance .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); box-shadow: inset 0 8px 15px rgba(0,0,0,.4); }
.scn-romeo-reluctant-to-dance .sky-dusk { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 70%, transparent 100%); animation: rrtd-sky 8s ease-in-out infinite alternate; }
.scn-romeo-reluctant-to-dance .romeo-heavy { position:absolute; bottom:22%; left:50%; width:40px; height:90px; margin-left:-20px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,.7); transform-origin: bottom center; animation: rrtd-heavy 6s ease-in-out infinite; }
.scn-romeo-reluctant-to-dance .romeo-heavy::after { content:''; position:absolute; top:12%; left:50%; width:16px; height:16px; margin-left:-8px; background: radial-gradient(circle, #6a5a5a 0%, #4a3a3a 100%); border-radius:50%; }
.scn-romeo-reluctant-to-dance .dance-shoes { position:absolute; bottom:20%; left:42%; width:20px; height:8px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 10px rgba(200,160,96,.3); animation: rrtd-shoes 3s ease-in-out infinite alternate; }
.scn-romeo-reluctant-to-dance .cupid-wings { position:absolute; bottom:35%; left:55%; width:50px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,160,.6) 0%, transparent 100%); border-radius:50%; filter: blur(3px); animation: rrtd-wings 4s ease-in-out infinite alternate; }
.scn-romeo-reluctant-to-dance .chain { position:absolute; bottom:22%; left:46%; width:60px; height:4px; background: linear-gradient(90deg, transparent 0%, #7a7a5a 50%, transparent 100%); animation: rrtd-chain 5s ease-in-out infinite; }
@keyframes rrtd-sky { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes rrtd-heavy { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 70% { transform: translateY(2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rrtd-shoes { 0% { transform: translateY(0) rotate(-10deg) scaleX(1); } 50% { transform: translateY(-5px) rotate(10deg) scaleX(1.1); } 100% { transform: translateY(0) rotate(-5deg) scaleX(1); } }
@keyframes rrtd-wings { 0% { transform: scaleX(.8) rotate(-5deg); opacity:.5; } 50% { transform: scaleX(1.2) rotate(5deg); opacity:.9; } 100% { transform: scaleX(.9) rotate(-2deg); opacity:.6; } }
@keyframes rrtd-chain { 0% { transform: translateX(0); opacity:.3; } 50% { transform: translateX(10px); opacity:.7; } 100% { transform: translateX(0); opacity:.4; } }

/* scene: mercutio-mocks-love (mml) */
.scn-mercutio-mocks-love { background: linear-gradient(180deg, #2a3a4a 0%, #4a3a4a 40%, #5a4a3a 100%), radial-gradient(ellipse at 50% 100%, #6a5a4a 0%, transparent 60%); }
.scn-mercutio-mocks-love .street { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-mercutio-mocks-love .sky-dusk { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a4a6a 0%, #3a3a5a 50%, transparent 100%); animation: mml-sky 9s ease-in-out infinite alternate; }
.scn-mercutio-mocks-love .mercutio { position:absolute; bottom:25%; left:35%; width:36px; height:85px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mml-mercutio 3s ease-in-out infinite; }
.scn-mercutio-mocks-love .mercutio::after { content:''; position:absolute; top:8%; left:50%; width:16px; height:16px; margin-left:-8px; background: radial-gradient(circle, #8a7a6a 0%, #6a5a4a 100%); border-radius:50%; }
.scn-mercutio-mocks-love .visor { position:absolute; bottom:32%; left:42%; width:22px; height:12px; background: #c8a060; border-radius:50% 50% 0 0; transform:rotate(-5deg); animation: mml-visor 1.5s ease-in-out infinite alternate; }
.scn-mercutio-mocks-love .love-figure { position:absolute; bottom:22%; right:30%; width:30px; height:70px; background: linear-gradient(180deg, #c8a8a0 0%, #a88880 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mml-love 4s ease-in-out infinite; }
.scn-mercutio-mocks-love .lamp-post { position:absolute; bottom:0; right:20%; width:8px; height:60px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:4px; }
.scn-mercutio-mocks-love .lamp-post::after { content:''; position:absolute; top:-8px; left:-4px; width:16px; height:14px; background: radial-gradient(circle, #ffc840 0%, #e8a020 60%, transparent 100%); border-radius:50%; animation: mml-lamp 2s ease-in-out infinite alternate; }
.scn-mercutio-mocks-love .prick { position:absolute; bottom:30%; right:28%; width:2px; height:16px; background: #c8a060; transform:rotate(30deg); animation: mml-prick 1s ease-in-out infinite alternate; }
@keyframes mml-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes mml-mercutio { 0% { transform: translateY(0) rotate(-5deg) scaleX(1); } 30% { transform: translateY(-3px) rotate(3deg) scaleX(1.05); } 60% { transform: translateY(2px) rotate(-2deg) scaleX(.98); } 100% { transform: translateY(0) rotate(0) scaleX(1); } }
@keyframes mml-visor { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(0) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes mml-love { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(2px) rotate(-1deg); } }
@keyframes mml-lamp { 0% { opacity:.6; transform: scale(.95); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.7; transform: scale(1); } }
@keyframes mml-prick { 0% { transform: rotate(20deg) scaleY(1); } 50% { transform: rotate(40deg) scaleY(1.2); } 100% { transform: rotate(25deg) scaleY(1); } }

.scn-juliet-returns {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 40%, #334155 100%),
              radial-gradient(ellipse at 50% 0%, #38bdf8 0%, transparent 60%);
}
.scn-juliet-returns .jr-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1e3a5f 0%, #0f172a 100%);
  animation: jr-sky 15s ease-in-out infinite alternate;
}
.scn-juliet-returns .jr-moon {
  position: absolute; top: 8%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fef08a 0%, #eab308 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(234,179,8,.4);
  animation: jr-moon 20s ease-in-out infinite alternate;
}
.scn-juliet-returns .jr-arch {
  position: absolute; bottom: 25%; left: 50%; width: 140px; height: 180px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #475569 0%, #1e293b 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  border: 3px solid #64748b;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-juliet-returns .jr-balcony {
  position: absolute; bottom: 30%; left: 50%; width: 180px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #64748b 0%, #475569 100%);
  border-radius: 4px;
}
.scn-juliet-returns .jr-juliet {
  position: absolute; bottom: 33%; left: 50%; width: 28px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jr-juliet 4s ease-in-out infinite;
}
.scn-juliet-returns .jr-stars {
  position: absolute; top: 10%; left: 10%; right: 10%; bottom: 50%;
  background: radial-gradient(2px 2px at 20% 30%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 40% 20%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 60% 40%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 80% 15%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 10% 60%, #fff 0%, transparent 100%);
  animation: jr-twinkle 6s ease-in-out infinite alternate;
}
.scn-juliet-returns .jr-vine-a {
  position: absolute; bottom: 30%; left: 25%; width: 30px; height: 120px;
  background: linear-gradient(180deg, #166534 0%, #14532d 100%);
  border-radius: 40%;
  transform: rotate(15deg);
  animation: jr-vine 8s ease-in-out infinite;
}
.scn-juliet-returns .jr-vine-b {
  position: absolute; bottom: 30%; right: 25%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #15803d 0%, #166534 100%);
  border-radius: 40%;
  transform: rotate(-20deg);
  animation: jr-vine 8s ease-in-out 4s infinite;
}
@keyframes jr-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes jr-moon {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes jr-juliet {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes jr-twinkle {
  0% { opacity: .6; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes jr-vine {
  0% { transform: rotate(15deg) scaleY(1); }
  50% { transform: rotate(20deg) scaleY(1.1); }
  100% { transform: rotate(15deg) scaleY(1); }
}

.scn-romeo-juliet-part {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 50%, #334155 100%),
              radial-gradient(ellipse at 50% 100%, #38bdf8 0%, transparent 70%);
}
.scn-romeo-juliet-part .rjp-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1e3a5f 0%, transparent 100%);
  animation: rjp-sky 18s ease-in-out infinite alternate;
}
.scn-romeo-juliet-part .rjp-wall {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #475569 0%, #1e293b 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-romeo-juliet-part .rjp-romeo {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rjp-romeo 6s ease-in-out infinite;
}
.scn-romeo-juliet-part .rjp-juliet {
  position: absolute; bottom: 35%; right: 25%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #334155 0%, #1e293b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rjp-juliet 6s ease-in-out 3s infinite;
}
.scn-romeo-juliet-part .rjp-moon {
  position: absolute; top: 10%; right: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fef08a 0%, #eab308 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(234,179,8,.4);
  animation: rjp-moon 20s ease-in-out infinite alternate;
}
.scn-romeo-juliet-part .rjp-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
@keyframes rjp-sky {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes rjp-romeo {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  25% { transform: translateY(-2px) rotate(5deg) scaleX(.95); }
  50% { transform: translateY(0) rotate(0deg) scaleX(1); }
  75% { transform: translateY(-2px) rotate(-5deg) scaleX(.95); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes rjp-juliet {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  25% { transform: translateY(-3px) rotate(-3deg) scaleX(.95); }
  50% { transform: translateY(0) rotate(0deg) scaleX(1); }
  75% { transform: translateY(-3px) rotate(3deg) scaleX(.95); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes rjp-moon {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.03); }
  100% { transform: translateY(0) scale(1); }
}

.scn-friar-laurence-herbs {
  background: linear-gradient(180deg, #4a2c2a 0%, #6b3a3a 40%, #8b5a5a 100%),
              radial-gradient(ellipse at 50% 0%, #fbbf24 0%, transparent 70%);
}
.scn-friar-laurence-herbs .flh-wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #78350f 0%, #451a03 100%);
  animation: flh-wall 20s ease-in-out infinite alternate;
}
.scn-friar-laurence-herbs .flh-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #92400e 0%, #451a03 100%);
  border-radius: 10% 10% 0 0;
}
.scn-friar-laurence-herbs .flh-window {
  position: absolute; top: 15%; left: 50%; width: 100px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #fde047 0%, #fef08a 50%, #fef9c3 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  border: 4px solid #78350f;
  box-shadow: inset 0 0 20px rgba(250,204,21,.3);
  animation: flh-window 12s ease-in-out infinite alternate;
}
.scn-friar-laurence-herbs .flh-light {
  position: absolute; top: 18%; left: 50%; width: 60%; height: 80%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(254,243,199,.6) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 70% 100%, 30% 100%);
  animation: flh-light 8s ease-in-out infinite alternate;
}
.scn-friar-laurence-herbs .flh-table {
  position: absolute; bottom: 22%; left: 50%; width: 160px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #78350f 0%, #451a03 100%);
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-friar-laurence-herbs .flh-herbs {
  position: absolute; bottom: 35%; left: 45%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #166534 0%, #14532d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: flh-herbs 6s ease-in-out infinite;
}
.scn-friar-laurence-herbs .flh-friar {
  position: absolute; bottom: 18%; left: 30%; width: 36px; height: 90px;
  background: linear-gradient(180deg, #292524 0%, #1c1917 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: flh-friar 5s ease-in-out infinite;
}
@keyframes flh-wall {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .95; }
}
@keyframes flh-window {
  0% { background: linear-gradient(180deg, #fde047 0%, #fef08a 50%, #fef9c3 100%); }
  50% { background: linear-gradient(180deg, #fef9c3 0%, #fde047 50%, #fef08a 100%); }
  100% { background: linear-gradient(180deg, #fde047 0%, #fef08a 50%, #fef9c3 100%); }
}
@keyframes flh-light {
  0% { opacity: .6; transform: translateX(-50%) scaleY(1); }
  50% { opacity: .9; transform: translateX(-50%) scaleY(1.1); }
  100% { opacity: .7; transform: translateX(-50%) scaleY(1); }
}
@keyframes flh-herbs {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.05); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes flh-friar {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

.scn-romeo-asks-marriage {
  background: linear-gradient(180deg, #4a2c2a 0%, #6b3a3a 40%, #8b5a5a 100%),
              radial-gradient(ellipse at 50% 0%, #fbbf24 0%, transparent 60%);
}
.scn-romeo-asks-marriage .ram-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #78350f 0%, #451a03 100%);
  animation: ram-wall 15s ease-in-out infinite alternate;
}
.scn-romeo-asks-marriage .ram-door {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 180px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #292524 0%, #1c1917 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  border: 3px solid #44403c;
  box-shadow: inset 0 0 30px rgba(0,0,0,.7);
}
.scn-romeo-asks-marriage .ram-light-1 {
  position: absolute; top: 15%; left: 40%; width: 30%; height: 50%;
  background: linear-gradient(135deg, rgba(254,243,199,.7) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ram-light 10s ease-in-out infinite alternate;
}
.scn-romeo-asks-marriage .ram-light-2 {
  position: absolute; top: 20%; right: 40%; width: 30%; height: 40%;
  background: linear-gradient(225deg, rgba(254,243,199,.5) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ram-light 10s ease-in-out 5s infinite alternate;
}
.scn-romeo-asks-marriage .ram-romeo {
  position: absolute; bottom: 18%; left: 30%; width: 34px; height: 85px;
  background: linear-gradient(180deg, #292524 0%, #1c1917 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ram-romeo 4s ease-in-out infinite;
}
.scn-romeo-asks-marriage .ram-friar {
  position: absolute; bottom: 18%; right: 30%; width: 38px; height: 95px;
  background: linear-gradient(180deg, #57534e 0%, #44403c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ram-friar 4s ease-in-out 2s infinite;
}
.scn-romeo-asks-marriage .ram-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #92400e 0%, #451a03 100%);
  border-radius: 10% 10% 0 0;
}
@keyframes ram-wall {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes ram-light {
  0% { opacity: .5; transform: scaleY(1); }
  50% { opacity: .8; transform: scaleY(1.1); }
  100% { opacity: .6; transform: scaleY(1); }
}
@keyframes ram-romeo {
  0% { transform: translateY(0) translateX(0) rotate(0deg); }
  25% { transform: translateY(-3px) translateX(2px) rotate(3deg); }
  50% { transform: translateY(0) translateX(0) rotate(0deg); }
  75% { transform: translateY(-3px) translateX(-2px) rotate(-3deg); }
  100% { transform: translateY(0) translateX(0) rotate(0deg); }
}
@keyframes ram-friar {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

/* ===== Firelit Verona Scenes ===== */

/* 1. romeo-sees-juliet – warm, jewel-like, two figures */
.scn-romeo-sees-juliet {
  background:
    radial-gradient(ellipse at 30% 60%, #4a2510 0%, transparent 60%),
    radial-gradient(ellipse at 70% 40%, #3a1e0a 0%, transparent 50%),
    linear-gradient(180deg, #1a0d05 0%, #2a1508 40%, #3a1e0a 80%, #1a0d05 100%);
}
.scn-romeo-sees-juliet .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, transparent 30%, #1a0d05 100%); mix-blend-mode: multiply; }
.scn-romeo-sees-juliet .wall   { position:absolute; bottom:25%; left:0; right:0; height:55%; background: linear-gradient(180deg, #5a2a18 0%, #2a1508 100%); border-radius: 40% 0 0 0 / 60% 0 0 0; transform: perspective(800px) rotateX(5deg); }
.scn-romeo-sees-juliet .torch-l { position:absolute; bottom:30%; left:15%; width:8px; height:40px; background: linear-gradient(0deg, #5a2a18 0%, #a03e10 50%, #e08030 80%, #ffb060 100%); border-radius:4px; animation: rj-torch 2s ease-in-out infinite alternate; }
.scn-romeo-sees-juliet .torch-r { position:absolute; bottom:30%; right:15%; width:8px; height:40px; background: linear-gradient(0deg, #5a2a18 0%, #a03e10 50%, #e08030 80%, #ffb060 100%); border-radius:4px; animation: rj-torch 2s ease-in-out infinite alternate-reverse; }
.scn-romeo-sees-juliet .juliet  { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:30px; height:80px; background: linear-gradient(180deg, #1a0d05 0%, #2a1508 60%, #1a0d05 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: rj-float 6s ease-in-out infinite; }
.scn-romeo-sees-juliet .jewel  { position:absolute; bottom:58%; left:calc(50% - 6px); width:12px; height:12px; background: radial-gradient(circle, #ffd080 0%, #b06020 70%); border-radius:50%; box-shadow: 0 0 20px 6px #d08030, 0 0 40px 12px rgba(208,128,48,.4); animation: rj-glow 3s ease-in-out infinite alternate; }
.scn-romeo-sees-juliet .romeo  { position:absolute; bottom:10%; left:30%; width:24px; height:60px; background: linear-gradient(180deg, #0d0a05 0%, #1a0d05 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate( -10deg ); transform-origin: bottom center; animation: rj-look 5s ease-in-out infinite; }
.scn-romeo-sees-juliet .glow   { position:absolute; bottom:40%; left:35%; right:35%; height:50%; background: radial-gradient(ellipse at 50% 0%, #ffa040 0%, transparent 70%); mix-blend-mode: screen; opacity:0.3; animation: rj-pulse 4s ease-in-out infinite; }
@keyframes rj-torch { 0% { transform: scaleY(1) scaleX(1); opacity:.9 } 50% { transform: scaleY(1.15) scaleX(.9); opacity:1 } 100% { transform: scaleY(.95) scaleX(1.05); opacity:.85 } }
@keyframes rj-float { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-4px) rotate(1deg) } }
@keyframes rj-glow  { 0% { box-shadow: 0 0 15px 4px #d08030, 0 0 30px 8px rgba(208,128,48,.3); opacity:.8 } 50% { box-shadow: 0 0 30px 8px #ffa040, 0 0 60px 16px rgba(255,160,64,.5); opacity:1 } 100% { box-shadow: 0 0 20px 5px #d08030, 0 0 40px 10px rgba(208,128,48,.35); opacity:.9 } }
@keyframes rj-look  { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } }
@keyframes rj-pulse { 0%,100% { opacity:.2 } 50% { opacity:.4 } }

/* 2. tybalt-recognizes-romeo – tense, edge, rapier drawn */
.scn-tybalt-recognizes-romeo {
  background:
    radial-gradient(ellipse at 60% 70%, #5a2208 0%, transparent 60%),
    radial-gradient(ellipse at 20% 30%, #3a1505 0%, transparent 50%),
    linear-gradient(180deg, #0d0602 0%, #1a0d04 30%, #2a1508 70%, #1a0d04 100%);
}
.scn-tybalt-recognizes-romeo .bg-tense { position:absolute; inset:0; background: linear-gradient(180deg, #1a0d04 0%, #0d0602 100%); mix-blend-mode: multiply; }
.scn-tybalt-recognizes-romeo .column   { position:absolute; bottom:20%; left:25%; width:12px; height:70%; background: linear-gradient(0deg, #2a1508 0%, #4a2510 50%, #2a1508 100%); border-radius:6px; transform: skewX(3deg); }
.scn-tybalt-recognizes-romeo .tybalt   { position:absolute; bottom:10%; left:45%; width:28px; height:70px; background: linear-gradient(180deg, #0d0602 0%, #1a0d04 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(5deg); transform-origin: bottom center; animation: tr-tense 0.8s ease-in-out infinite alternate; }
.scn-tybalt-recognizes-romeo .rapier   { position:absolute; bottom:55%; left:51%; width:4px; height:50px; background: linear-gradient(180deg, #a06020 0%, #603010 80%); border-radius: 2px; transform: rotate(-20deg); transform-origin: bottom left; box-shadow: 0 0 6px 2px #d08030; animation: tr-rapier 1.2s ease-in-out infinite alternate; }
.scn-tybalt-recognizes-romeo .romeo-sil{ position:absolute; bottom:8%; left:70%; width:22px; height:55px; background: linear-gradient(180deg, #0d0602 0%, #1a0d04 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: scaleX(-1); animation: tr-romeo 2s ease-in-out infinite; }
.scn-tybalt-recognizes-romeo .spark    { position:absolute; bottom:65%; left:50%; width:6px; height:6px; background: radial-gradient(circle, #ffd080 0%, #b06020 70%); border-radius:50%; box-shadow: 0 0 12px 4px #d08030; animation: tr-spark 0.4s ease-in-out infinite alternate; }
.scn-tybalt-recognizes-romeo .shadow   { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(13,6,2,.9) 0%, transparent 100%); }
@keyframes tr-tense { 0% { transform: rotate(3deg) translateY(0) scaleX(1) } 50% { transform: rotate(6deg) translateY(1px) scaleX(1.02) } 100% { transform: rotate(3deg) translateY(0) scaleX(1) } }
@keyframes tr-rapier { 0% { transform: rotate(-18deg) translateX(0) } 50% { transform: rotate(-22deg) translateX(2px) } 100% { transform: rotate(-18deg) translateX(0) } }
@keyframes tr-romeo  { 0%,100% { transform: scaleX(-1) translateX(0) } 50% { transform: scaleX(-1) translateX(-3px) } }
@keyframes tr-spark  { 0% { opacity:.2; transform: scale(.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.3; transform: scale(.9) } }

/* 3. capulet-restrains-tybalt – tense, grip, pillars */
.scn-capulet-restrains-tybalt {
  background:
    radial-gradient(ellipse at 50% 80%, #6a2a10 0%, transparent 60%),
    radial-gradient(ellipse at 20% 30%, #2a1508 0%, transparent 50%),
    linear-gradient(180deg, #0d0602 0%, #1a0d04 50%, #2a1508 100%);
}
.scn-capulet-restrains-tybalt .bg-fire   { position:absolute; inset:0; background: linear-gradient(0deg, #1a0d04 0%, transparent 70%); }
.scn-capulet-restrains-tybalt .pillar-l  { position:absolute; bottom:0; left:10%; width:16px; height:90%; background: linear-gradient(180deg, #3a1e0a 0%, #2a1508 100%); border-radius:8px 8px 4px 4px; }
.scn-capulet-restrains-tybalt .pillar-r  { position:absolute; bottom:0; right:10%; width:16px; height:90%; background: linear-gradient(180deg, #3a1e0a 0%, #2a1508 100%); border-radius:8px 8px 4px 4px; }
.scn-capulet-restrains-tybalt .capulet   { position:absolute; bottom:8%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #1a0d04 0%, #2a1508 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(1.1); animation: cr-cap 1.5s ease-in-out infinite; }
.scn-capulet-restrains-tybalt .tybalt-arm{ position:absolute; bottom:25%; left:55%; width:34px; height:12px; background: linear-gradient(180deg, #1a0d04 0%, #2a1508 100%); border-radius: 40% 40% 0 0; transform-origin: left center; transform: rotate(30deg); animation: cr-arm 1s ease-in-out infinite alternate; }
.scn-capulet-restrains-tybalt .gladius   { position:absolute; bottom:35%; left:63%; width:4px; height:30px; background: linear-gradient(180deg, #805020 0%, #402010 80%); border-radius:2px; transform: rotate(15deg); box-shadow: 0 0 5px 2px #a06030; }
.scn-capulet-restrains-tybalt .ember     { position:absolute; bottom:70%; left:20%; width:4px; height:4px; background:#d08030; border-radius:50%; box-shadow: 0 0 8px 2px #d08030; animation: cr-ember 0.6s ease-in-out infinite alternate; }
.scn-capulet-restrains-tybalt .ground    { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(0deg, #1a0d04 0%, #2a1508 100%); border-radius: 20% 20% 0 0; }
@keyframes cr-cap { 0%,100% { transform: scaleX(1.1) translateY(0) } 50% { transform: scaleX(1.15) translateY(-2px) } }
@keyframes cr-arm { 0% { transform: rotate(20deg) scaleY(1) } 50% { transform: rotate(35deg) scaleY(1.1) } 100% { transform: rotate(25deg) scaleY(1) } }
@keyframes cr-ember { 0% { transform: translate(0,0) scale(1); opacity:.8 } 50% { transform: translate(8px,-10px) scale(1.2); opacity:1 } 100% { transform: translate(0,0) scale(.9); opacity:.6 } }

/* 4. tybalt-vows-revenge – dark, withdrawal, bitter glow */
.scn-tybalt-vows-revenge {
  background:
    radial-gradient(ellipse at 30% 20%, #4a1a06 0%, transparent 60%),
    radial-gradient(ellipse at 80% 70%, #2a0c02 0%, transparent 50%),
    linear-gradient(180deg, #0a0401 0%, #150802 40%, #1a0d04 80%, #0a0401 100%);
}
.scn-tybalt-vows-revenge .bg-dark   { position:absolute; inset:0; background: linear-gradient(180deg, #0a0401 0%, #1a0d04 100%); mix-blend-mode: multiply; }
.scn-tybalt-vows-revenge .arch      { position:absolute; bottom:0; left:0; right:0; height:80%; background: radial-gradient(ellipse at 50% 100%, #2a1508 0%, transparent 70%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-tybalt-vows-revenge .figure    { position:absolute; bottom:12%; left:50%; transform:translateX(-50%); width:26px; height:75px; background: linear-gradient(180deg, #0d0602 0%, #1a0d04 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: tv-walk 5s ease-in-out infinite; }
.scn-tybalt-vows-revenge .hand      { position:absolute; bottom:40%; left:52%; width:10px; height:18px; background: linear-gradient(180deg, #1a0d04 0%, #0d0602 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(-40deg); transform-origin: top right; animation: tv-hand 4s ease-in-out infinite alternate; }
.scn-tybalt-vows-revenge .glint     { position:absolute; bottom:45%; left:58%; width:4px; height:4px; background: radial-gradient(circle, #c08040 0%, #603010 80%); border-radius:50%; box-shadow: 0 0 12px 4px #a06020; animation: tv-glint 2s ease-in-out infinite; }
.scn-tybalt-vows-revenge .ash       { position:absolute; top:10%; right:20%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(160,80,40,.3) 0%, transparent 70%); animation: tv-ash 8s linear infinite; }
.scn-tybalt-vows-revenge .fire-edge { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(0deg, #4a1a06 0%, transparent 100%); animation: tv-edge 3s ease-in-out infinite alternate; }
@keyframes tv-walk  { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-46%) translateY(-3px) rotate(2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0) } 75% { transform: translateX(-54%) translateY(-3px) rotate(-2deg) } }
@keyframes tv-hand  { 0% { transform: rotate(-35deg) translate(0,0) } 50% { transform: rotate(-45deg) translate(2px,-3px) } 100% { transform: rotate(-35deg) translate(0,0) } }
@keyframes tv-glint { 0%,100% { opacity:.2; transform: scale(.8) } 50% { opacity:1; transform: scale(1.3) } }
@keyframes tv-ash   { 0% { transform: translateX(0) scaleY(1); opacity:.3 } 50% { transform: translateX(-30px) scaleY(1.5); opacity:.1 } 100% { transform: translateX(0) scaleY(1); opacity:.3 } }
@keyframes tv-edge  { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.7; transform: scaleY(.95) } }

.scn-friar-comforts-romeo {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e18 50%, #3a2820 100%),
    radial-gradient(ellipse at 50% 30%, #3a2820 0%, #1a1410 80%);
  position: relative;
  overflow: hidden;
}
.scn-friar-comforts-romeo .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1e18 0%, #3a2820 40%, #1a1410 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: fcr-wall 12s ease-in-out infinite alternate;
}
.scn-friar-comforts-romeo .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -4px 12px rgba(0,0,0,.8);
}
.scn-friar-comforts-romeo .candle {
  position: absolute;
  bottom: 40%;
  left: 50%;
  width: 8px;
  height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0d080 0%, #d4a060 40%, #8a6030 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px 6px #f0d080, 0 0 40px 12px rgba(240,208,128,.3);
  animation: fcr-candle 4s ease-in-out infinite alternate;
}
.scn-friar-comforts-romeo .glow {
  position: absolute;
  bottom: 38%;
  left: 50%;
  width: 80px;
  height: 80px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(240,208,128,.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: fcr-glow 4s ease-in-out infinite alternate;
}
.scn-friar-comforts-romeo .friar {
  position: absolute;
  bottom: 35%;
  left: 30%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: fcr-friar 6s ease-in-out infinite;
}
.scn-friar-comforts-romeo .romeo {
  position: absolute;
  bottom: 35%;
  left: 55%;
  width: 24px;
  height: 52px;
  background: linear-gradient(180deg, #2a1e18 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: fcr-romeo 8s ease-in-out infinite;
}

@keyframes fcr-wall {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .75; }
}
@keyframes fcr-candle {
  0% { transform: translateX(-50%) scaleY(.95); box-shadow: 0 0 16px 4px #f0d080; }
  50% { transform: translateX(-50%) scaleY(1.05); box-shadow: 0 0 24px 8px #ffd090; }
  100% { transform: translateX(-50%) scaleY(.98); box-shadow: 0 0 18px 5px #f0d080; }
}
@keyframes fcr-glow {
  0% { opacity: .6; transform: translate(-50%, 0) scale(.95); }
  50% { opacity: 1; transform: translate(-50%, -2px) scale(1.05); }
  100% { opacity: .7; transform: translate(-50%, 0) scale(1); }
}
@keyframes fcr-friar {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-1deg); }
}
@keyframes fcr-romeo {
  0% { transform: rotate(1deg) translateX(0); }
  25% { transform: rotate(3deg) translateX(4px); }
  50% { transform: rotate(0) translateX(8px); }
  75% { transform: rotate(-2deg) translateX(4px); }
  100% { transform: rotate(1deg) translateX(0); }
}

.scn-romeo-desperate {
  background:
    linear-gradient(180deg, #0e0a14 0%, #1a1428 50%, #2a1e3a 100%),
    radial-gradient(ellipse at 30% 50%, #2a1e3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-romeo-desperate .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(90deg, #0e0a14 0%, #1a1428 50%, #0e0a14 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,.8);
  animation: rd-wall 15s ease-in-out infinite alternate;
}
.scn-romeo-desperate .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1a1220 0%, #0a0610 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
}
.scn-romeo-desperate .window {
  position: absolute;
  top: 25%;
  left: 35%;
  width: 50px;
  height: 70px;
  background: radial-gradient(ellipse at 50% 50%, #3a3a5a 0%, #1a1a3a 70%);
  border: 4px solid #2a1e2a;
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(100,100,160,.2), 0 0 20px rgba(80,80,120,.3);
  animation: rd-window 20s ease-in-out infinite alternate;
}
.scn-romeo-desperate .moonlight {
  position: absolute;
  top: 25%;
  left: 35%;
  width: 50px;
  height: 70px;
  background: linear-gradient(180deg, rgba(180,180,220,.15) 0%, transparent 100%);
  filter: blur(6px);
  animation: rd-moonlight 8s ease-in-out infinite alternate;
}
.scn-romeo-desperate .romeo {
  position: absolute;
  bottom: 28%;
  left: 44%;
  width: 26px;
  height: 60px;
  background: linear-gradient(180deg, #14101a 0%, #0a0610 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 6px 10px rgba(0,0,0,.5);
  animation: rd-romeo 5s ease-in-out infinite;
}
.scn-romeo-desperate .shadow {
  position: absolute;
  bottom: 26%;
  left: 42%;
  width: 40px;
  height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: rd-shadow 5s ease-in-out infinite;
}

@keyframes rd-wall {
  0% { opacity: .8; }
  50% { opacity: .95; }
  100% { opacity: .85; }
}
@keyframes rd-window {
  0% { box-shadow: inset 0 0 20px rgba(100,100,160,.15), 0 0 15px rgba(80,80,120,.2); }
  50% { box-shadow: inset 0 0 40px rgba(100,100,160,.3), 0 0 25px rgba(80,80,120,.4); }
  100% { box-shadow: inset 0 0 25px rgba(100,100,160,.2), 0 0 18px rgba(80,80,120,.25); }
}
@keyframes rd-moonlight {
  0% { opacity: .3; transform: scale(.95); }
  50% { opacity: .7; transform: scale(1.05); }
  100% { opacity: .4; transform: scale(1); }
}
@keyframes rd-romeo {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(-3px) rotate(2deg) scaleY(1.02); }
  60% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes rd-shadow {
  0% { transform: scaleX(1); opacity: .5; }
  50% { transform: scaleX(1.3); opacity: .7; }
  100% { transform: scaleX(1); opacity: .5; }
}

.scn-friar-scolds-romeo {
  background:
    linear-gradient(180deg, #1e1412 0%, #2e1e1a 50%, #3a2822 100%),
    radial-gradient(ellipse at 60% 40%, #3a2822 0%, #1e1412 80%);
  position: relative;
  overflow: hidden;
}
.scn-friar-scolds-romeo .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e1e1a 0%, #1e1412 100%);
  box-shadow: inset 0 4px 16px rgba(0,0,0,.7);
  animation: fsr-wall 10s ease-in-out infinite alternate;
}
.scn-friar-scolds-romeo .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2a1a14 0%, #140e0a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-friar-scolds-romeo .table {
  position: absolute;
  bottom: 32%;
  left: 25%;
  width: 50%;
  height: 14px;
  background: linear-gradient(180deg, #4a3428 0%, #2a1e16 100%);
  border-radius: 4px;
  box-shadow: 0 6px 8px rgba(0,0,0,.4);
  animation: fsr-table 6s ease-in-out infinite alternate;
}
.scn-friar-scolds-romeo .candle {
  position: absolute;
  bottom: 45%;
  left: 38%;
  width: 6px;
  height: 18px;
  background: linear-gradient(180deg, #f0c880 0%, #b08040 50%, #603010 100%);
  border-radius: 2px;
  box-shadow: 0 0 16px 4px #f0c880, 0 0 32px 8px rgba(240,200,128,.3);
  animation: fsr-candle 2s ease-in-out infinite alternate;
}
.scn-friar-scolds-romeo .friar {
  position: absolute;
  bottom: 35%;
  left: 22%;
  width: 30px;
  height: 64px;
  background: linear-gradient(180deg, #3a2822 0%, #1e1412 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: fsr-friar 3s ease-in-out infinite;
}
.scn-friar-scolds-romeo .romeo {
  position: absolute;
  bottom: 36%;
  left: 58%;
  width: 24px;
  height: 54px;
  background: linear-gradient(180deg, #2a1e18 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: fsr-romeo 4s ease-in-out infinite;
}

@keyframes fsr-wall {
  0% { opacity: .6; }
  50% { opacity: .9; }
  100% { opacity: .7; }
}
@keyframes fsr-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px) scaleX(1.01); }
  100% { transform: translateY(0); }
}
@keyframes fsr-candle {
  0% { transform: translateY(0) scaleY(.95); box-shadow: 0 0 14px 3px #f0c880; }
  50% { transform: translateY(-2px) scaleY(1.08); box-shadow: 0 0 22px 7px #ffd090; }
  100% { transform: translateY(0) scaleY(.98); box-shadow: 0 0 16px 4px #f0c880; }
}
@keyframes fsr-friar {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(4deg) translateX(-3px); }
  100% { transform: rotate(-2deg) translateX(0); }
}
@keyframes fsr-romeo {
  0% { transform: rotate(2deg) scaleY(1); }
  50% { transform: rotate(-3deg) scaleY(1.02); }
  100% { transform: rotate(1deg) scaleY(1); }
}

.scn-nurse-arrives-cell {
  background:
    linear-gradient(180deg, #1a1418 0%, #2a1e22 50%, #3a2a2e 100%),
    radial-gradient(ellipse at 40% 60%, #3a2a2e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-nurse-arrives-cell .wall {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1e22 0%, #1a1418 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,.6);
  animation: nac-wall 8s ease-in-out infinite alternate;
}
.scn-nurse-arrives-cell .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #2a1a1c 0%, #120a0c 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-nurse-arrives-cell .door {
  position: absolute;
  right: 10%;
  bottom: 25%;
  width: 40px;
  height: 70px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1e1212 100%);
  border: 2px solid #2a1a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(0,0,0,.5), 0 0 8px rgba(0,0,0,.3);
  animation: nac-door 6s ease-in-out infinite;
}
.scn-nurse-arrives-cell .nurse {
  position: absolute;
  bottom: 28%;
  right: 12%;
  width: 22px;
  height: 56px;
  background: linear-gradient(180deg, #2a1e22 0%, #140e10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: nac-nurse 4s ease-in-out infinite;
}
.scn-nurse-arrives-cell .friar {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 26px;
  height: 58px;
  background: linear-gradient(180deg, #3a2a2e 0%, #1e1416 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: nac-friar 5s ease-in-out infinite;
}
.scn-nurse-arrives-cell .romeo {
  position: absolute;
  bottom: 32%;
  left: 45%;
  width: 24px;
  height: 52px;
  background: linear-gradient(180deg, #2a1e18 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: nac-romeo 3s ease-in-out infinite;
}
.scn-nurse-arrives-cell .candle {
  position: absolute;
  bottom: 42%;
  left: 30%;
  width: 6px;
  height: 16px;
  background: linear-gradient(180deg, #f0c880 0%, #b08040 50%, #603010 100%);
  border-radius: 2px;
  box-shadow: 0 0 14px 3px #f0c880, 0 0 28px 6px rgba(240,200,128,.3);
  animation: nac-candle 3s ease-in-out infinite alternate;
}

@keyframes nac-wall {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .75; }
}
@keyframes nac-door {
  0% { transform: translateX(0) scaleX(1); }
  20% { transform: translateX(-2px) scaleX(1.02); }
  40% { transform: translateX(0) scaleX(1); }
  60% { transform: translateX(-1px) scaleX(1.01); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes nac-nurse {
  0% { transform: rotate(-2deg) translateX(0); }
  30% { transform: rotate(3deg) translateX(-4px); }
  60% { transform: rotate(-1deg) translateX(-2px); }
  100% { transform: rotate(-2deg) translateX(0); }
}
@keyframes nac-friar {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes nac-romeo {
  0% { transform: rotate(1deg) scaleY(1); }
  50% { transform: rotate(-2deg) scaleY(1.03); }
  100% { transform: rotate(0) scaleY(1); }
}
@keyframes nac-candle {
  0% { transform: translateY(0) scaleY(.95); box-shadow: 0 0 12px 2px #f0c880; }
  50% { transform: translateY(-1px) scaleY(1.06); box-shadow: 0 0 18px 5px #ffd090; }
  100% { transform: translateY(0) scaleY(.98); box-shadow: 0 0 14px 3px #f0c880; }
}

/* tybalt-fights-mercutio */
.scn-tybalt-fights-mercutio {
  background: linear-gradient(180deg, #f5e6c8 0%, #c2a56b 40%, #8b7340 100%), radial-gradient(ellipse at 50% 0, #ffd699 0%, transparent 60%);
}

.scn-tybalt-fights-mercutio .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b8d4f0 0%, #e8e0c0 70%);
  animation: tfm-sky 8s ease-in-out infinite alternate;
}

.scn-tybalt-fights-mercutio .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #a68b5c 0%, #6b5430 100%);
  border-radius: 30% 0 0 0 / 20% 0 0 0;
}

.scn-tybalt-fights-mercutio .building-l {
  position: absolute; bottom: 35%; left: 5%; width: 35%; height: 60%;
  background: linear-gradient(180deg, #d4b78c 0%, #8a6e3c 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3) inset;
}

.scn-tybalt-fights-mercutio .building-r {
  position: absolute; bottom: 35%; right: 5%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #c9a979 0%, #7a5f2e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3) inset;
}

.scn-tybalt-fights-mercutio .tybalt {
  position: absolute; bottom: 18%; left: 48%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2c241a 0%, #14100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tfm-tybalt 1.2s ease-in-out infinite alternate;
}

.scn-tybalt-fights-mercutio .mercutio {
  position: absolute; bottom: 18%; left: 38%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #c8553d 0%, #7a2e1a 60%, #3a1408 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tfm-mercutio 1.4s ease-in-out infinite alternate;
}

.scn-tybalt-fights-mercutio .sword-t {
  position: absolute; bottom: 42%; left: 52%; width: 2px; height: 20px;
  background: #b0a080;
  border-radius: 2px;
  transform-origin: bottom;
  animation: tfm-sword-t 1.2s ease-in-out infinite alternate;
}

.scn-tybalt-fights-mercutio .sword-m {
  position: absolute; bottom: 42%; left: 35%; width: 2px; height: 18px;
  background: #b0a080;
  border-radius: 2px;
  transform-origin: bottom;
  animation: tfm-sword-m 1.4s ease-in-out infinite alternate;
}

.scn-tybalt-fights-mercutio .dust {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 0, rgba(160,120,60,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: tfm-dust 3s ease-in-out infinite;
}

@keyframes tfm-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

@keyframes tfm-tybalt {
  0% { transform: translateX(0) rotate(-2deg) scaleY(1); }
  50% { transform: translateX(5px) rotate(3deg) scaleY(0.98); }
  100% { transform: translateX(-2px) rotate(-1deg) scaleY(1); }
}

@keyframes tfm-mercutio {
  0% { transform: translateX(0) rotate(2deg) scaleY(1); }
  50% { transform: translateX(-4px) rotate(-3deg) scaleY(0.97); }
  100% { transform: translateX(3px) rotate(1deg) scaleY(1); }
}

@keyframes tfm-sword-t {
  0% { transform: rotate(10deg) scaleY(1); }
  50% { transform: rotate(-5deg) scaleY(1.2); }
  100% { transform: rotate(8deg) scaleY(1); }
}

@keyframes tfm-sword-m {
  0% { transform: rotate(-12deg) scaleY(1); }
  50% { transform: rotate(6deg) scaleY(1.1); }
  100% { transform: rotate(-8deg) scaleY(1); }
}

@keyframes tfm-dust {
  0% { opacity: 0.2; transform: translateY(0); }
  50% { opacity: 0.6; transform: translateY(-10px); }
  100% { opacity: 0; transform: translateY(-20px); }
}

/* mercutio-wounded */
.scn-mercutio-wounded {
  background: linear-gradient(180deg, #b8a080 0%, #8a6e4a 40%, #4a3820 100%), radial-gradient(ellipse at 50% 0, #d4c0a0 0%, transparent 60%);
}

.scn-mercutio-wounded .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0c4d8 0%, #d8c8a8 70%);
  animation: mw-sky 12s ease-in-out infinite alternate;
}

.scn-mercutio-wounded .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a6440 0%, #4a3418 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
}

.scn-mercutio-wounded .wall {
  position: absolute; bottom: 25%; left: 40%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #a08060 0%, #5a4428 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
}

.scn-mercutio-wounded .mercutio-w {
  position: absolute; bottom: 12%; left: 45%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #5e1a1d 0%, #301008 60%, #1a0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-fall 6s ease-in-out infinite;
}

.scn-mercutio-wounded .romeo-w {
  position: absolute; bottom: 12%; left: 38%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2c241a 0%, #14100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-romeo 6s ease-in-out infinite alternate;
}

.scn-mercutio-wounded .blood {
  position: absolute; bottom: 10%; left: 47%; width: 14px; height: 6px;
  background: radial-gradient(ellipse at 50% 0, #5e1a1d 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(3px);
  animation: mw-blood 8s ease-in-out infinite;
}

.scn-mercutio-wounded .shadow-w {
  position: absolute; bottom: 8%; left: 35%; width: 35%; height: 10%;
  background: radial-gradient(ellipse at 50% 0, rgba(0,0,0,0.4) 0%, transparent 80%);
  filter: blur(5px);
  animation: mw-shadow 6s ease-in-out infinite;
}

@keyframes mw-sky {
  0% { opacity: 0.9; }
  50% { opacity: 0.7; }
  100% { opacity: 0.85; }
}

@keyframes mw-fall {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(10px) rotate(-15deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}

@keyframes mw-romeo {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-8px) rotate(5deg); }
  100% { transform: translateX(2px) rotate(-2deg); }
}

@keyframes mw-blood {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(2); opacity: 0.5; }
  100% { transform: scaleY(1); opacity: 0.6; }
}

@keyframes mw-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.5); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

/* mercutio-dies */
.scn-mercutio-dies {
  background: linear-gradient(180deg, #9a7a5a 0%, #5a442a 40%, #2a1a0e 100%), radial-gradient(ellipse at 50% 100%, #6a4a2a 0%, transparent 70%);
}

.scn-mercutio-dies .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #a8b8c8 0%, #c8b090 70%);
  animation: md-sky 15s ease-in-out infinite alternate;
}

.scn-mercutio-dies .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a4a30 0%, #2a1a08 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}

.scn-mercutio-dies .house-d {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #8a6a42 0%, #4a3018 100%);
  border-radius: 4% 4% 4% 4%;
  box-shadow: 0 0 16px rgba(0,0,0,0.6);
}

.scn-mercutio-dies .door {
  position: absolute; bottom: 18%; left: 47%; width: 6%; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 6px #1a1008;
  animation: md-door 8s ease-in-out infinite alternate;
}

.scn-mercutio-dies .mercutio-d {
  position: absolute; bottom: 8%; left: 44%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #702243 0%, #301008 60%, #1a0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: md-collapse 8s ease-in-out infinite;
}

.scn-mercutio-dies .benvolio {
  position: absolute; bottom: 8%; left: 36%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2c241a 0%, #14100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: md-support 8s ease-in-out infinite alternate;
}

.scn-mercutio-dies .lamp {
  position: absolute; bottom: 30%; left: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd680 0%, #c08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,214,128,0.6);
  animation: md-lamp 4s ease-in-out infinite alternate;
}

.scn-mercutio-dies .shadow-d {
  position: absolute; bottom: 4%; left: 30%; width: 40%; height: 8%;
  background: radial-gradient(ellipse at 50% 0, rgba(0,0,0,0.5) 0%, transparent 80%);
  filter: blur(6px);
  animation: md-shadow 8s ease-in-out infinite;
}

@keyframes md-sky {
  0% { opacity: 0.8; }
  50% { opacity: 0.6; }
  100% { opacity: 0.7; }
}

@keyframes md-door {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.05) rotate(2deg); }
  100% { transform: scaleY(0.95) rotate(-2deg); }
}

@keyframes md-collapse {
  0% { transform: translateY(0) rotate(0deg) scaleY(1); }
  50% { transform: translateY(8px) rotate(-10deg) scaleY(0.9); }
  100% { transform: translateY(2px) rotate(-3deg) scaleY(0.95); }
}

@keyframes md-support {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-6px) rotate(-5deg); }
  100% { transform: translateX(3px) rotate(1deg); }
}

@keyframes md-lamp {
  0% { box-shadow: 0 0 15px 4px rgba(255,214,128,0.5); opacity: 0.9; }
  50% { box-shadow: 0 0 30px 10px rgba(255,214,128,0.8); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px rgba(255,214,128,0.6); opacity: 0.9; }
}

@keyframes md-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.3); opacity: 0.8; }
  100% { transform: scaleX(1.1); opacity: 0.6; }
}

/* romeo-kills-tybalt */
.scn-romeo-kills-tybalt {
  background: linear-gradient(180deg, #d4c0a0 0%, #9a7a4a 40%, #4a3018 100%), radial-gradient(ellipse at 50% 0, #ffd699 0%, transparent 60%);
}

.scn-romeo-kills-tybalt .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8d8e0 0%, #e8d8b8 70%);
  animation: rkt-sky 6s ease-in-out infinite alternate;
}

.scn-romeo-kills-tybalt .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a6430 0%, #4a2e10 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}

.scn-romeo-kills-tybalt .pillar {
  position: absolute; bottom: 30%; right: 15%; width: 8%; height: 65%;
  background: linear-gradient(180deg, #8a7048 0%, #4a2e18 100%);
  border-radius: 2%;
  box-shadow: 4px 0 12px rgba(0,0,0,0.4);
}

.scn-romeo-kills-tybalt .tybalt-k {
  position: absolute; bottom: 10%; left: 45%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #a0461a 0%, #5a1a08 60%, #2a0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rkt-tybalt 1s ease-in-out infinite alternate;
}

.scn-romeo-kills-tybalt .romeo-k {
  position: absolute; bottom: 10%; left: 35%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2c241a 0%, #14100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rkt-romeo 0.8s ease-in-out infinite alternate;
}

.scn-romeo-kills-tybalt .sword-r {
  position: absolute; bottom: 40%; left: 38%; width: 2px; height: 22px;
  background: #b0a080;
  border-radius: 2px;
  transform-origin: bottom;
  animation: rkt-sword 0.8s ease-in-out infinite alternate;
}

.scn-romeo-kills-tybalt .blood-k {
  position: absolute; bottom: 10%; left: 48%; width: 10px; height: 8px;
  background: radial-gradient(ellipse at 50% 0, #5e1a1d 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(3px);
  animation: rkt-blood 1.5s ease-in-out infinite;
}

@keyframes rkt-sky {
  0% { opacity: 1; }
  50% { opacity: 0.8; }
  100% { opacity: 0.9; }
}

@keyframes rkt-tybalt {
  0% { transform: translateX(0) rotate(5deg) scaleY(1); }
  50% { transform: translateX(-10px) rotate(-15deg) scaleY(0.9); }
  100% { transform: translateX(2px) rotate(3deg) scaleY(1); }
}

@keyframes rkt-romeo {
  0% { transform: translateX(0) rotate(-2deg) scaleY(1); }
  50% { transform: translateX(12px) rotate(10deg) scaleY(1.05); }
  100% { transform: translateX(4px) rotate(1deg) scaleY(1); }
}

@keyframes rkt-sword {
  0% { transform: rotate(-15deg) scaleY(1); }
  50% { transform: rotate(20deg) scaleY(1.3); }
  100% { transform: rotate(-5deg) scaleY(1); }
}

@keyframes rkt-blood {
  0% { opacity: 0; transform: scale(0.5); }
  50% { opacity: 0.8; transform: scale(2); }
  100% { opacity: 0.3; transform: scale(1.5); }
}

/* capulet-approves */
.scn-capulet-approves {
  background:
    linear-gradient(180deg, #d4a055 0%, #b87a3a 40%, #6b4226 100%),
    radial-gradient(ellipse at 50% 0%, #eccc7a 0%, transparent 60%);
}
.scn-capulet-approves .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e0c090 0%, #c89060 100%);
  animation: ca-wall 10s ease-in-out infinite alternate;
}
.scn-capulet-approves .table {
  position: absolute; bottom: 20%; left: 50%; width: 60%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6b3a22 0%, #3a1f10 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: ca-table 8s ease-in-out infinite alternate;
}
.scn-capulet-approves .chair {
  position: absolute; bottom: 20%; left: 20%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #5a3020 0%, #2a1810 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 -10px 15px rgba(0,0,0,0.5);
  animation: ca-chair 6s ease-in-out infinite alternate;
}
.scn-capulet-approves .candle-light {
  position: absolute; bottom: 45%; left: 45%; width: 10px; height: 25px;
  background: linear-gradient(180deg, #ffd07a 0%, #ffaa40 60%, transparent 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 30px 15px #ffaa40, 0 0 60px 30px rgba(255,170,64,0.4);
  animation: ca-candle 1.2s ease-in-out infinite alternate;
}
.scn-capulet-approves .goblet {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 25px;
  background: radial-gradient(ellipse at 50% 30%, #d4a055 0%, #805020 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ca-goblet 4s ease-in-out infinite alternate;
}
.scn-capulet-approves .capulet-figure {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a10 0%, #120a05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-figure 3s ease-in-out infinite alternate;
}

@keyframes ca-wall { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes ca-table { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01) translateY(-2px); } }
@keyframes ca-chair { 0% { transform: rotate(-1deg); } 50% { transform: rotate(0.5deg) translateX(2px); } 100% { transform: rotate(-1deg); } }
@keyframes ca-candle { 0% { transform: scaleY(0.95); opacity: 0.9; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(0.98); opacity: 0.93; } }
@keyframes ca-goblet { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-3deg); } }
@keyframes ca-figure { 0% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(1px) rotate(-0.3deg); } }

/* juliet-alone-with-vial */
.scn-juliet-alone-with-vial {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2a2a5a 40%, #0e0e2a 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a6e 0%, transparent 70%);
}
.scn-juliet-alone-with-vial .window {
  position: absolute; top: 10%; right: 10%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #6060a0 0%, #4040a0 100%);
  border: 4px solid #20203a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px #a0a0d0, 0 0 15px 5px rgba(160,160,208,0.3);
  animation: jav-window 12s ease-in-out infinite alternate;
}
.scn-juliet-alone-with-vial .bed-curtains {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 60%;
  background: linear-gradient(180deg, rgba(30,20,50,0.8) 0%, rgba(20,10,30,0.9) 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  animation: jav-curtains 6s ease-in-out infinite alternate;
}
.scn-juliet-alone-with-vial .juliet-figure {
  position: absolute; bottom: 15%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jav-figure 4s ease-in-out infinite alternate;
}
.scn-juliet-alone-with-vial .vial {
  position: absolute; bottom: 35%; left: 50%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #b0b8d0 0%, #8088a0 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 10px 2px rgba(180,200,255,0.5);
  animation: jav-vial 3s ease-in-out infinite alternate;
}
.scn-juliet-alone-with-vial .moonlight-beam {
  position: absolute; top: 0; left: 15%; width: 25%; height: 80%;
  background: linear-gradient(180deg, rgba(200,200,255,0.15) 0%, rgba(200,200,255,0.05) 100%);
  filter: blur(12px);
  animation: jav-beam 20s linear infinite alternate;
}

@keyframes jav-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes jav-curtains { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.02); } 100% { transform: translateY(0) scale(0.98); } }
@keyframes jav-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(0.5deg); } 100% { transform: translateY(1px) rotate(-0.5deg); } }
@keyframes jav-vial { 0% { box-shadow: 0 0 8px 2px rgba(180,200,255,0.3); } 50% { box-shadow: 0 0 20px 6px rgba(180,200,255,0.7); } 100% { box-shadow: 0 0 12px 3px rgba(180,200,255,0.4); } }
@keyframes jav-beam { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(10px) scaleY(0.95); } 100% { transform: translateX(-5px) scaleY(1.02); } }

/* item-juliets-dagger */
.scn-item-juliets-dagger {
  background:
    linear-gradient(180deg, #0a0a14 0%, #1a141e 40%, #0e0812 100%),
    radial-gradient(ellipse at 30% 60%, #2a1a1a 0%, transparent 70%);
}
.scn-item-juliets-dagger .table-edge {
  position: absolute; bottom: 10%; left: 5%; width: 90%; height: 12%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
}
.scn-item-juliets-dagger .dagger {
  position: absolute; bottom: 20%; left: 45%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #c0c8d0 0%, #808890 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  box-shadow: 0 0 15px 3px rgba(200,200,220,0.3);
  animation: ijd-dagger 4s ease-in-out infinite alternate;
}
.scn-item-juliets-dagger .vial-poison {
  position: absolute; bottom: 25%; left: 30%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #5a3a3a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: inset 0 0 5px #8a4a4a;
  animation: ijd-vial 3s ease-in-out infinite alternate;
}
.scn-item-juliets-dagger .candle {
  position: absolute; bottom: 35%; left: 25%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #ffd070 0%, #ffa040 60%, transparent 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 25px 12px #ffa040;
  animation: ijd-candle 1.5s ease-in-out infinite alternate;
}
.scn-item-juliets-dagger .shadow-hand {
  position: absolute; bottom: 24%; left: 35%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 80%, #1a1414 0%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(3px);
  animation: ijd-hand 5s ease-in-out infinite alternate;
}

@keyframes ijd-dagger { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(0deg) translateX(5px); } 100% { transform: rotate(2deg) translateX(-2px); } }
@keyframes ijd-vial { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes ijd-candle { 0% { transform: scaleY(0.9); opacity: 0.8; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.85; } }
@keyframes ijd-hand { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-3px) scale(1.02); } 100% { transform: translateX(2px) scale(0.98); } }

/* capulet-preps-wedding */
.scn-capulet-preps-wedding {
  background:
    linear-gradient(180deg, #1a0e08 0%, #2a1a10 40%, #0e0806 100%),
    radial-gradient(ellipse at 50% 30%, #5a2a1a 0%, transparent 70%);
}
.scn-capulet-preps-wedding .hearth {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e08 100%);
  border-radius: 50% 50% 10% 10% / 70% 70% 20% 20%;
  box-shadow: inset 0 -15px 30px rgba(0,0,0,0.5);
}
.scn-capulet-preps-wedding .pot {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 40%, #5a3a2a 0%, #2a1a12 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cpw-pot 5s ease-in-out infinite alternate;
}
.scn-capulet-preps-wedding .fire {
  position: absolute; bottom: 28%; left: 45%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #ffa040 0%, #d06020 40%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 20px #ffa040, 0 0 80px 40px rgba(255,160,64,0.3);
  animation: cpw-fire 1s ease-in-out infinite alternate;
}
.scn-capulet-preps-wedding .spices {
  position: absolute; bottom: 25%; left: 25%; width: 20%; height: 8%;
  background: radial-gradient(ellipse, #b87858 0%, #7a4a30 100%);
  border-radius: 60% 40% 30% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: cpw-spices 8s ease-in-out infinite alternate;
}
.scn-capulet-preps-wedding .stirring-stick {
  position: absolute; bottom: 32%; left: 48%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a12 100%);
  border-radius: 30%;
  transform-origin: bottom center;
  animation: cpw-stick 2s ease-in-out infinite alternate;
}
.scn-capulet-preps-wedding .figure-lady {
  position: absolute; bottom: 10%; left: 65%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #2a1a12 0%, #140a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpw-lady 4s ease-in-out infinite alternate;
}
.scn-capulet-preps-wedding .figure-nurse {
  position: absolute; bottom: 12%; left: 15%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #1e120c 0%, #0e0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpw-nurse 3.5s ease-in-out infinite alternate;
}

@keyframes cpw-pot { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.01); } 100% { transform: translateY(0) scale(0.99); } }
@keyframes cpw-fire { 0% { transform: scaleY(0.8) translateX(0); } 50% { transform: scaleY(1.2) translateX(2px); } 100% { transform: scaleY(0.85) translateX(-1px); } }
@keyframes cpw-spices { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(10deg); } 100% { transform: translateX(-3px) rotate(-5deg); } }
@keyframes cpw-stick { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes cpw-lady { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(8px) rotate(1deg); } 100% { transform: translateX(0) rotate(-0.5deg); } }
@keyframes cpw-nurse { 0% { transform: translateX(0) rotate(0.5deg); } 50% { transform: translateX(-10px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0.5deg); } }

.scn-item-apothecary-shop {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #6a5a3a 40%, #8a7a5a 70%, #a08060 100%),
    radial-gradient(ellipse at 30% 0%, rgba(255,220,180,0.3) 0%, transparent 60%),
    linear-gradient(90deg, #3a2a1a 0%, #5a4a2a 50%, #3a2a1a 100%);
}
.scn-item-apothecary-shop .wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%); }
.scn-item-apothecary-shop .window-light { position:absolute; top:10%; left:20%; width:40%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(255,200,150,0.6) 0%, transparent 70%); animation: apwl-glow 6s ease-in-out infinite alternate; }
.scn-item-apothecary-shop .shelf { position:absolute; bottom:45%; left:10%; right:10%; height:6%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-item-apothecary-shop .herbs { position:absolute; bottom:40%; left:15%; width:12px; height:50px; background: linear-gradient(90deg, #4a6a3a 0%, #6a8a4a 50%, #3a5a2a 100%); border-radius: 4px 4px 40% 40%; transform: rotate(-10deg); animation: apherb-sway 7s ease-in-out infinite; }
.scn-item-apothecary-shop .apothecary { position:absolute; bottom:20%; left:40%; width:40px; height:100px; background: radial-gradient(ellipse 60% 100% at 50% 0%, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ap-figure 5s ease-in-out infinite; }
.scn-item-apothecary-shop .bottle { position:absolute; bottom:30%; left:30%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 30%, #a0c080 0%, #608040 100%); border-radius: 20% 20% 50% 50% / 30% 30% 50% 50%; box-shadow: 0 0 12px rgba(160,192,128,0.6); animation: ap-bottle 4s ease-in-out infinite; }
.scn-item-apothecary-shop .dust-a { position:absolute; top:20%; left:10%; width:6px; height:6px; background: rgba(255,200,150,0.5); border-radius:50%; filter: blur(2px); animation: apdust-drift 12s linear infinite; }
.scn-item-apothecary-shop .dust-b { position:absolute; top:35%; right:15%; width:4px; height:4px; background: rgba(255,200,150,0.4); border-radius:50%; animation: apdust-drift 18s linear infinite reverse; }
@keyframes apwl-glow { 0% { opacity:0.5; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.2); } 100% { opacity:0.6; transform:scaleY(0.9); } }
@keyframes apherb-sway { 0% { transform:rotate(-10deg) translateX(0); } 50% { transform:rotate(-5deg) translateX(4px); } 100% { transform:rotate(-10deg) translateX(0); } }
@keyframes ap-figure { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(2px) rotate(1deg); } 60% { transform:translateX(-1px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ap-bottle { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(3deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes apdust-drift { 0% { transform:translate(0,0); } 50% { transform:translate(20px,-10px); opacity:0.8; } 100% { transform:translate(40px,-20px); opacity:0.2; } }

.scn-romeo-buys-poison {
  background:
    linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 60% 20%, rgba(255,220,180,0.3) 0%, transparent 60%);
}
.scn-romeo-buys-poison .table { position:absolute; bottom:15%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.6); }
.scn-romeo-buys-poison .romeo { position:absolute; bottom:20%; left:20%; width:35px; height:100px; background: radial-gradient(ellipse 70% 100% at 50% 0%, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rbfigure 6s ease-in-out infinite; }
.scn-romeo-buys-poison .apothecary-seller { position:absolute; bottom:20%; right:20%; width:38px; height:95px; background: radial-gradient(ellipse 60% 100% at 50% 0%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rbfigure-seller 6s ease-in-out infinite; }
.scn-romeo-buys-poison .vial { position:absolute; bottom:28%; left:48%; width:14px; height:24px; background: radial-gradient(ellipse at 50% 30%, #c0a080 0%, #805030 100%); border-radius: 30% 30% 50% 50%; box-shadow: 0 0 10px rgba(192,160,128,0.5); animation: rbvial 4s ease-in-out infinite; }
.scn-romeo-buys-poison .coins { position:absolute; bottom:30%; right:25%; width:20px; height:8px; background: radial-gradient(circle, #d0b070 0%, #b09050 100%); border-radius: 50%; box-shadow: 0 0 8px rgba(208,176,112,0.6); animation: rpcoins 3s ease-in-out infinite; }
.scn-romeo-buys-poison .light-ray { position:absolute; top:0; left:35%; width:30%; height:100%; background: linear-gradient(180deg, rgba(255,220,180,0.15) 0%, transparent 60%, rgba(255,220,180,0.1) 100%); animation: rpray 8s ease-in-out infinite alternate; }
@keyframes rbfigure { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(2px) rotate(2deg); } 50% { transform:translateX(-1px) rotate(-1deg); } 75% { transform:translateX(1px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes rbfigure-seller { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-2px) rotate(-2deg); } 50% { transform:translateX(2px) rotate(1deg); } 75% { transform:translateX(-1px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes rbvial { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(5deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes rpcoins { 0% { transform:scaleX(1) translateY(0); opacity:0.7; } 50% { transform:scaleX(1.1) translateY(-2px); opacity:1; } 100% { transform:scaleX(1) translateY(0); opacity:0.7; } }
@keyframes rpray { 0% { opacity:0.3; transform:scaleX(1); } 50% { opacity:0.7; transform:scaleX(1.05); } 100% { opacity:0.4; transform:scaleX(0.95); } }

.scn-item-poison-vial {
  background:
    radial-gradient(ellipse at 50% 50%, #1a1a2a 0%, #0a0a1a 60%, #050510 100%),
    linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 40%, rgba(0,0,0,0.4) 100%);
}
.scn-item-poison-vial .surface { position:absolute; bottom:10%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.8); }
.scn-item-poison-vial .vial-glass { position:absolute; bottom:25%; left:40%; width:30px; height:60px; background: radial-gradient(ellipse at 50% 30%, rgba(200,180,160,0.3) 0%, transparent 70%); border: 2px solid rgba(200,180,160,0.2); border-radius: 30% 30% 50% 50%; animation: pvglass 6s ease-in-out infinite; }
.scn-item-poison-vial .liquid { position:absolute; bottom:20%; left:42%; width:18px; height:40px; background: radial-gradient(ellipse at 50% 30%, #5a8a5a 0%, #2a4a2a 100%); border-radius: 20% 20% 50% 50%; opacity:0.7; animation: pvliquid 5s ease-in-out infinite; }
.scn-item-poison-vial .hand { position:absolute; bottom:15%; left:30%; width:40px; height:80px; background: radial-gradient(ellipse 60% 100% at 50% 0%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pvhand 4s ease-in-out infinite; }
.scn-item-poison-vial .glow { position:absolute; bottom:30%; left:40%; width:40px; height:40px; background: radial-gradient(circle, rgba(90,138,90,0.5) 0%, transparent 70%); filter: blur(8px); animation: pvglow 3s ease-in-out infinite alternate; }
.scn-item-poison-vial .shadow-drip { position:absolute; bottom:10%; left:45%; width:10px; height:15px; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.8) 100%); border-radius: 50%; animation: pvdrip 8s linear infinite; }
@keyframes pvglass { 0% { transform:scaleY(1) rotate(0deg); } 50% { transform:scaleY(1.03) rotate(2deg); } 100% { transform:scaleY(1) rotate(0deg); } }
@keyframes pvliquid { 0% { transform:scaleY(1) rotate(0deg); opacity:0.7; } 50% { transform:scaleY(0.95) rotate(5deg); opacity:0.8; } 100% { transform:scaleY(1) rotate(0deg); opacity:0.7; } }
@keyframes pvhand { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(4px) rotate(3deg); } 50% { transform:translateX(-2px) rotate(-2deg); } 75% { transform:translateX(2px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes pvglow { 0% { opacity:0.4; transform:scale(1); } 50% { opacity:0.8; transform:scale(1.5); } 100% { opacity:0.5; transform:scale(1.2); } }
@keyframes pvdrip { 0% { transform:translateY(0); opacity:0; } 50% { transform:translateY(20px); opacity:1; } 100% { transform:translateY(40px); opacity:0; } }

.scn-friar-john-quarantined {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%),
    radial-gradient(ellipse at 80% 50%, rgba(100,120,140,0.2) 0%, transparent 60%);
}
.scn-friar-john-quarantined .cell-wall { position:absolute; inset:0; background: linear-gradient(45deg, #1a1a2a 0%, #2a2a3a 100%); }
.scn-friar-john-quarantined .barred-window { position:absolute; top:20%; right:12%; width:25%; height:30%; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border: 4px solid #2a2a3a; box-shadow: inset 0 0 20px rgba(255,255,255,0.05); animation: fjwin-flicker 3s ease-in-out infinite alternate; }
.scn-friar-john-quarantined .letter { position:absolute; top:55%; left:15%; width:60px; height:40px; background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%); border-radius: 2px; transform: rotate(-15deg); box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: fjletter 2.5s ease-in-out infinite; }
.scn-friar-john-quarantined .friar { position:absolute; bottom:20%; left:10%; width:45px; height:120px; background: radial-gradient(ellipse 70% 100% at 50% 0%, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fjfriar 4s ease-in-out infinite; }
.scn-friar-john-quarantined .candle { position:absolute; bottom:25%; right:20%; width:8px; height:40px; background: linear-gradient(180deg, #d0b080 0%, #a08050 60%, #604020 100%); border-radius: 4px 4px 20% 20%; box-shadow: 0 0 16px 4px rgba(200,160,100,0.5); animation: fjcandle 2s ease-in-out infinite alternate; }
.scn-friar-john-quarantined .dust-fast-a { position:absolute; top:30%; left:20%; width:5px; height:5px; background: rgba(255,255,255,0.2); border-radius:50%; filter: blur(1px); animation: fjdust-fast 3s linear infinite; }
.scn-friar-john-quarantined .dust-fast-b { position:absolute; top:45%; left:50%; width:3px; height:3px; background: rgba(255,255,255,0.15); border-radius:50%; animation: fjdust-fast 2s linear infinite reverse; }
@keyframes fjwin-flicker { 0% { opacity:0.6; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.05); } 100% { opacity:0.7; transform:scaleY(0.95); } }
@keyframes fjletter { 0% { transform:rotate(-15deg) translateY(0); } 50% { transform:rotate(-13deg) translateY(-3px); } 100% { transform:rotate(-15deg) translateY(0); } }
@keyframes fjfriar { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(3px) rotate(2deg); } 50% { transform:translateX(-2px) rotate(-1deg); } 75% { transform:translateX(1px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes fjcandle { 0% { transform:scaleY(1) translateX(0); opacity:0.8; } 50% { transform:scaleY(1.1) translateX(1px); opacity:1; } 100% { transform:scaleY(0.95) translateX(-1px); opacity:0.9; } }
@keyframes fjdust-fast { 0% { transform:translate(0,0); } 25% { transform:translate(5px,-5px); opacity:0.8; } 50% { transform:translate(10px,-10px); opacity:0.5; } 75% { transform:translate(15px,-5px); opacity:0.2; } 100% { transform:translate(20px,0); opacity:0; } }

.scn-romeo-dies {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 40%, #2a2a4e 100%),
              radial-gradient(ellipse at 50% 30%, #3a4a6a 0%, transparent 60%);
}
.scn-romeo-dies .tomb-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #10102a 0%, #0a0a1a 60%, #05050e 100%);
  animation: ro-bg-pulse 12s ease-in-out infinite alternate;
}
.scn-romeo-dies .tomb-wall-l {
  position: absolute; left: 0; top: 20%; bottom: 0; width: 25%;
  background: linear-gradient(180deg, #1a1a30 0%, #0f0f20 100%);
  border-radius: 0 10% 0 0;
  box-shadow: inset -10px 0 15px rgba(0,0,0,0.6);
  animation: ro-wall 20s ease-in-out infinite infinite;
}
.scn-romeo-dies .tomb-wall-r {
  position: absolute; right: 0; top: 20%; bottom: 0; width: 25%;
  background: linear-gradient(180deg, #1a1a30 0%, #0f0f20 100%);
  border-radius: 10% 0 0 0;
  box-shadow: inset 10px 0 15px rgba(0,0,0,0.6);
  animation: ro-wall 20s ease-in-out infinite reverse;
}
.scn-romeo-dies .floor {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-romeo-dies .figure-romeo {
  position: absolute; bottom: 12%; left: 35%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 40%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: ro-figure 8s ease-in-out infinite;
}
.scn-romeo-dies .cup {
  position: absolute; bottom: 14%; right: 38%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 10px 2px rgba(192,192,200,0.15);
  animation: ro-cup 5s ease-in-out infinite;
}
.scn-romeo-dies .moonbeam {
  position: absolute; top: 0; left: 40%; width: 20%; height: 80%;
  background: linear-gradient(180deg, rgba(180,195,210,0.12) 0%, transparent 100%);
  clip-path: polygon(30% 0, 70% 0, 60% 100%, 40% 100%);
  animation: ro-beam 9s ease-in-out infinite alternate;
}
@keyframes ro-bg-pulse {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ro-wall {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes ro-figure {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(-4deg) scale(1.01); }
  100% { transform: rotate(-5deg) scale(1); }
}
@keyframes ro-cup {
  0% { opacity: 0.6; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-1px); }
  100% { opacity: 0.6; transform: translateY(0); }
}
@keyframes ro-beam {
  0% { opacity: 0.3; transform: rotate(0deg); }
  50% { opacity: 0.6; transform: rotate(2deg); }
  100% { opacity: 0.3; transform: rotate(0deg); }
}

.scn-friar-finds-bodies {
  background: linear-gradient(180deg, #0a0a1e 0%, #12122e 50%, #1a1a3a 100%),
              radial-gradient(ellipse at 60% 70%, #2a3a4a 0%, transparent 60%);
}
.scn-friar-finds-bodies .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0a1e 0%, #15152e 100%);
  animation: fri-sky 15s ease-in-out infinite alternate;
}
.scn-friar-finds-bodies .grave-mound-a {
  position: absolute; bottom: 20%; left: 5%; width: 20%; height: 15%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 60% 40% 20% 20% / 80% 70% 20% 20%;
  box-shadow: inset 0 -5px 15px rgba(0,0,0,0.6);
  animation: fri-mound 20s ease-in-out infinite;
}
.scn-friar-finds-bodies .grave-mound-b {
  position: absolute; bottom: 22%; left: 35%; width: 18%; height: 12%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: inset 0 -5px 15px rgba(0,0,0,0.6);
  animation: fri-mound 25s ease-in-out infinite reverse;
}
.scn-friar-finds-bodies .grave-mound-c {
  position: absolute; bottom: 18%; right: 10%; width: 22%; height: 14%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 60% 10% 10% / 60% 80% 20% 20%;
  box-shadow: inset 0 -5px 15px rgba(0,0,0,0.6);
  animation: fri-mound 18s ease-in-out infinite 2s;
}
.scn-friar-finds-bodies .figure-friar {
  position: absolute; bottom: 24%; left: 45%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fri-walk 6s ease-in-out infinite;
}
.scn-friar-finds-bodies .lantern {
  position: absolute; bottom: 38%; left: 42%; width: 10px; height: 14px;
  background: radial-gradient(circle, #c0c8d0 0%, #6a7a8a 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(180,195,210,0.5), 0 0 40px 15px rgba(180,195,210,0.2);
  animation: fri-lantern 2s ease-in-out infinite alternate;
}
.scn-friar-finds-bodies .body-pile {
  position: absolute; bottom: 16%; right: 25%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #0e0e1e 0%, #050510 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(10deg);
  animation: fri-body 12s ease-in-out infinite;
}
@keyframes fri-sky {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.8; }
}
@keyframes fri-mound {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes fri-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(8px) rotate(-2deg); }
  75% { transform: translateX(12px) rotate(1deg); }
  100% { transform: translateX(16px) rotate(0deg); }
}
@keyframes fri-lantern {
  0% { box-shadow: 0 0 15px 5px rgba(180,195,210,0.4); transform: rotate(0deg); }
  50% { box-shadow: 0 0 25px 10px rgba(180,195,210,0.7); transform: rotate(2deg); }
  100% { box-shadow: 0 0 18px 6px rgba(180,195,210,0.5); transform: rotate(-2deg); }
}
@keyframes fri-body {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

.scn-juliet-wakes {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 60%, #2a2a4e 100%),
              radial-gradient(ellipse at 50% 40%, #3a4a6a 0%, transparent 70%);
}
.scn-juliet-wakes .tomb-interior {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0f0f2a 0%, #08081a 100%);
  animation: jw-tomb 15s ease-in-out infinite alternate;
}
.scn-juliet-wakes .figure-juliet {
  position: absolute; bottom: 20%; left: 30%; width: 15%; height: 35%;
  background: radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jw-juliet 8s ease-in-out infinite;
}
.scn-juliet-wakes .figure-romeo {
  position: absolute; bottom: 10%; left: 45%; width: 25%; height: 18%;
  background: radial-gradient(ellipse at 50% 40%, #0e0e1e 0%, #050510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: jw-body 12s ease-in-out infinite;
}
.scn-juliet-wakes .figure-paris {
  position: absolute; bottom: 8%; right: 10%; width: 20%; height: 15%;
  background: radial-gradient(ellipse at 50% 40%, #0e0e1e 0%, #050510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: jw-body 14s ease-in-out infinite 3s;
}
.scn-juliet-wakes .cup {
  position: absolute; bottom: 14%; left: 48%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 8px 2px rgba(192,192,200,0.2);
  animation: jw-cup 5s ease-in-out infinite;
}
.scn-juliet-wakes .shroud {
  position: absolute; bottom: 10%; left: 40%; width: 30%; height: 4%;
  background: linear-gradient(180deg, rgba(200,200,210,0.15) 0%, rgba(200,200,210,0.05) 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: jw-shroud 20s ease-in-out infinite;
}
.scn-juliet-wakes .moonbeam {
  position: absolute; top: 0; left: 35%; width: 30%; height: 80%;
  background: linear-gradient(180deg, rgba(180,195,210,0.1) 0%, transparent 80%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: jw-beam 10s ease-in-out infinite alternate;
}
@keyframes jw-tomb {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes jw-juliet {
  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 jw-body {
  0% { opacity: 0.7; transform: rotate(-10deg); }
  50% { opacity: 0.9; transform: rotate(-9deg); }
  100% { opacity: 0.7; transform: rotate(-10deg); }
}
@keyframes jw-cup {
  0% { box-shadow: 0 0 6px 1px rgba(192,192,200,0.15); }
  50% { box-shadow: 0 0 12px 3px rgba(192,192,200,0.3); }
  100% { box-shadow: 0 0 6px 1px rgba(192,192,200,0.15); }
}
@keyframes jw-shroud {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(2px) scale(1.02); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes jw-beam {
  0% { opacity: 0.2; transform: scaleY(1); }
  50% { opacity: 0.4; transform: scaleY(1.05); }
  100% { opacity: 0.2; transform: scaleY(1); }
}

.scn-juliet-stabs-herself {
  background: linear-gradient(180deg, #0a0a1e 0%, #12122e 50%, #1a1a3a 100%),
              radial-gradient(ellipse at 50% 30%, #2a3a4a 0%, transparent 60%);
}
.scn-juliet-stabs-herself .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #08081a 0%, #050510 100%);
  animation: js-bg 15s ease-in-out infinite alternate;
}
.scn-juliet-stabs-herself .figure-juliet {
  position: absolute; bottom: 15%; left: 35%; width: 18%; height: 40%;
  background: radial-gradient(ellipse at 50% 40%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: js-juliet 4s ease-in-out infinite;
}
.scn-juliet-stabs-herself .dagger {
  position: absolute; bottom: 42%; left: 36%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #9a9aaa 0%, #4a4a5a 100%);
  border-radius: 10% 10% 40% 40%;
  transform: rotate(-30deg);
  box-shadow: 0 0 6px 1px rgba(180,195,210,0.3);
  animation: js-dagger 4s ease-in-out infinite;
}
.scn-juliet-stabs-herself .cup {
  position: absolute; bottom: 18%; right: 35%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 8px 2px rgba(192,192,200,0.2);
  animation: js-cup 6s ease-in-out infinite;
}
.scn-juliet-stabs-herself .figure-romeo {
  position: absolute; bottom: 8%; left: 25%; width: 25%; height: 18%;
  background: radial-gradient(ellipse at 50% 40%, #0e0e1e 0%, #050510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: js-body 12s ease-in-out infinite;
}
.scn-juliet-stabs-herself .blood-spot {
  position: absolute; bottom: 40%; left: 36.5%; width: 6px; height: 4px;
  background: radial-gradient(circle, #8a2a1a 0%, #4a1a0a 100%);
  border-radius: 50%;
  transform: scale(0);
  animation: js-blood 4s ease-in-out infinite;
}
.scn-juliet-stabs-herself .gleam {
  position: absolute; bottom: 42%; left: 35.8%; width: 4px; height: 4px;
  background: radial-gradient(circle, rgba(220,220,230,0.8) 0%, transparent 100%);
  border-radius: 50%;
  animation: js-gleam 2s ease-in-out infinite alternate;
}
@keyframes js-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes js-juliet {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(2deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes js-dagger {
  0% { transform: rotate(-30deg) scale(1); }
  50% { transform: rotate(-25deg) scale(1.05); }
  100% { transform: rotate(-30deg) scale(1); }
}
@keyframes js-cup {
  0% { opacity: 0.6; transform: translateY(0); }
  50% { opacity: 0.9; transform: translateY(-1px); }
  100% { opacity: 0.6; transform: translateY(0); }
}
@keyframes js-body {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes js-blood {
  0% { transform: scale(0); opacity: 0; }
  25% { transform: scale(1.2); opacity: 0.7; }
  50% { transform: scale(0.8); opacity: 0.5; }
  75% { transform: scale(1.5); opacity: 0.4; }
  100% { transform: scale(0); opacity: 0; }
}
@keyframes js-gleam {
  0% { opacity: 0.2; }
  100% { opacity: 0.8; }
}

/* friar-agrees-to-marry */
.scn-friar-agrees-to-marry {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 85%, #5a3a1a 30%, transparent 70%);
}
.scn-friar-agrees-to-marry .fa-wall {
  position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-friar-agrees-to-marry .fa-window {
  position:absolute; top:12%; left:30%; width:40%; height:35%;
  border:4px solid #5a4a3a; border-radius:4px;
  background: transparent;
  overflow:hidden;
  box-shadow: inset 0 0 30px rgba(255,180,80,0.3);
  animation: fa-window 12s ease-in-out infinite alternate;
}
.scn-friar-agrees-to-marry .fa-sky {
  position:absolute; top:15%; left:32%; width:36%; height:30%;
  background: linear-gradient(180deg, #ffd595 0%, #ffaa55 50%, #ff8844 100%);
  border-radius:0 0 50% 50% / 0 0 80% 80%;
  filter: blur(2px);
  animation: fa-sky 20s ease-in-out infinite;
}
.scn-friar-agrees-to-marry .fa-candle {
  position:absolute; bottom:35%; left:45%; width:6px; height:12px;
  background: linear-gradient(180deg, #ffeebb 0%, #ffaa44 100%);
  border-radius:2px 2px 1px 1px;
  box-shadow: 0 0 20px 8px rgba(255,170,68,0.6), 0 0 40px 16px rgba(255,170,68,0.3);
  animation: fa-candle 3s ease-in-out infinite;
}
.scn-friar-agrees-to-marry .fa-friar {
  position:absolute; bottom:28%; left:38%; width:20px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fa-friar 5s ease-in-out infinite;
}
.scn-friar-agrees-to-marry .fa-book {
  position:absolute; bottom:30%; left:40%; width:16px; height:21px;
  background: linear-gradient(135deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  animation: fa-book 8s ease-in-out infinite alternate;
}
.scn-friar-agrees-to-marry .fa-cross {
  position:absolute; top:8%; left:48%; width:2px; height:20px;
  background: #7a5a3a;
  box-shadow: -6px 6px 0 #7a5a3a, 6px 6px 0 #7a5a3a;
  border-radius:1px;
  animation: fa-cross 15s linear infinite;
}
@keyframes fa-sky {
  0% { opacity:0.7; transform: scaleY(1) translateY(0); }
  50% { opacity:1; transform: scaleY(1.05) translateY(-2px); }
  100% { opacity:0.8; transform: scaleY(0.95) translateY(1px); }
}
@keyframes fa-candle {
  0% { transform: translateY(0) scaleY(1); opacity:0.8; box-shadow: 0 0 15px 6px rgba(255,170,68,0.5); }
  50% { transform: translateY(-1px) scaleY(1.1); opacity:1; box-shadow: 0 0 25px 10px rgba(255,170,68,0.7); }
  100% { transform: translateY(0) scaleY(0.95); opacity:0.9; box-shadow: 0 0 20px 8px rgba(255,170,68,0.6); }
}
@keyframes fa-friar {
  0% { transform: translateX(0) rotate(-0.5deg); }
  50% { transform: translateX(2px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(-0.5deg); }
}
@keyframes fa-book {
  0% { transform: rotateY(0deg); }
  100% { transform: rotateY(15deg); }
}
@keyframes fa-window {
  0% { box-shadow: inset 0 0 20px rgba(255,180,80,0.2); }
  100% { box-shadow: inset 0 0 40px rgba(255,180,80,0.5); }
}
@keyframes fa-cross {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* friar-hopes-reconcile */
.scn-friar-hopes-reconcile {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 70%, #5a3a1a 40%, transparent 80%);
}
.scn-friar-hopes-reconcile .fr-wall {
  position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #1a0a00 100%);
}
.scn-friar-hopes-reconcile .fr-altar {
  position:absolute; bottom:20%; left:40%; width:25%; height:15%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-friar-hopes-reconcile .fr-cross {
  position:absolute; top:15%; left:48%; width:2px; height:30px;
  background: #8a6a4a;
  box-shadow: -8px 8px 0 #8a6a4a, 8px 8px 0 #8a6a4a;
  border-radius:1px;
  animation: fr-cross 20s linear infinite;
}
.scn-friar-hopes-reconcile .fr-friar {
  position:absolute; bottom:25%; left:35%; width:18px; height:38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fr-friar 6s ease-in-out infinite;
}
.scn-friar-hopes-reconcile .fr-lover-a {
  position:absolute; bottom:22%; left:42%; width:14px; height:34px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fr-lover 8s ease-in-out infinite alternate;
}
.scn-friar-hopes-reconcile .fr-lover-b {
  position:absolute; bottom:22%; left:50%; width:14px; height:34px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fr-lover 8s ease-in-out infinite alternate-reverse;
}
.scn-friar-hopes-reconcile .fr-beam {
  position:absolute; top:10%; left:30%; width:40%; height:40%;
  background: linear-gradient(135deg, rgba(255,200,100,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: fr-beam 14s ease-in-out infinite alternate;
}
@keyframes fr-cross {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes fr-friar {
  0% { transform: translateY(0) rotate(-0.5deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes fr-lover {
  0% { transform: translateX(-2px) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes fr-beam {
  0% { opacity:0.4; transform: scale(0.9) rotate(0deg); }
  50% { opacity:0.7; transform: scale(1.1) rotate(2deg); }
  100% { opacity:0.5; transform: scale(0.95) rotate(-2deg); }
}

/* mercutio-mocks-tybalt */
.scn-mercutio-mocks-tybalt {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 60%, #f0e68c 100%),
              radial-gradient(ellipse at 70% 20%, #ffeb3b 0%, transparent 60%);
}
.scn-mercutio-mocks-tybalt .mt-sky {
  position:absolute; inset:0 top:0; bottom:30%;
  background: linear-gradient(180deg, #b0e0e6 0%, #f0c060 100%);
  animation: mt-sky 18s ease-in-out infinite alternate;
}
.scn-mercutio-mocks-tybalt .mt-build-left {
  position:absolute; bottom:30%; left:0; width:30%; top:10%;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%);
  border-radius: 0 8px 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
}
.scn-mercutio-mocks-tybalt .mt-build-right {
  position:absolute; bottom:30%; right:0; width:30%; top:5%;
  background: linear-gradient(180deg, #b09070 0%, #7a5a3a 100%);
  border-radius: 8px 0 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
}
.scn-mercutio-mocks-tybalt .mt-ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #c0a080 0%, #9a7a5a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-mercutio-mocks-tybalt .mt-merc {
  position:absolute; bottom:32%; left:38%; width:16px; 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: mt-merc 3s ease-in-out infinite;
}
.scn-mercutio-mocks-tybalt .mt-ben {
  position:absolute; bottom:30%; left:46%; width:16px; height:34px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mt-ben 4s ease-in-out infinite alternate;
}
.scn-mercutio-mocks-tybalt .mt-sun {
  position:absolute; top:8%; left:70%; width:20px; height:20px;
  background: radial-gradient(circle, #ffeb3b 0%, #ffc107 50%, transparent 80%);
  border-radius:50%;
  box-shadow: 0 0 40px 20px rgba(255,193,7,0.5);
  animation: mt-sun 30s linear infinite;
}
@keyframes mt-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}
@keyframes mt-merc {
  0% { transform: translateY(0) rotate(-2deg) scaleX(1); }
  50% { transform: translateY(-3px) rotate(2deg) scaleX(1.1); }
  100% { transform: translateY(0) rotate(-2deg) scaleX(1); }
}
@keyframes mt-ben {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(-3px) rotate(-2deg); }
}
@keyframes mt-sun {
  0% { transform: translate(0,0); }
  50% { transform: translate(10px,-5px); }
  100% { transform: translate(0,0); }
}

/* mercutio-mocks-fashion */
.scn-mercutio-mocks-fashion {
  background: linear-gradient(180deg, #e0f0ff 0%, #f9e79f 70%, #f7dc6f 100%),
              radial-gradient(ellipse at 30% 10%, #fff3b0 0%, transparent 50%);
}
.scn-mercutio-mocks-fashion .mf-sky {
  position:absolute; inset:0 top:0; bottom:35%;
  background: linear-gradient(180deg, #b0d4f1 0%, #f9e79f 100%);
  animation: mf-sky 20s ease-in-out infinite alternate;
}
.scn-mercutio-mocks-fashion .mf-stage {
  position:absolute; bottom:35%; left:10%; width:80%; height:65%;
  background: linear-gradient(180deg, #d4b896 0%, #b09876 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-mercutio-mocks-fashion .mf-crowd-l {
  position:absolute; bottom:40%; left:10%; width:20%; height:30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  filter: blur(1px);
  animation: mf-crowd 12s ease-in-out infinite;
}
.scn-mercutio-mocks-fashion .mf-crowd-r {
  position:absolute; bottom:40%; right:10%; width:20%; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  filter: blur(1px);
  animation: mf-crowd 12s ease-in-out infinite reverse;
}
.scn-mercutio-mocks-fashion .mf-dandy {
  position:absolute; bottom:37%; left:45%; width:22px; height:42px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mf-dandy 2s ease-in-out infinite;
}
.scn-mercutio-mocks-fashion .mf-hat {
  position:absolute; bottom:67%; left:44%; width:30px; height:12px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(10deg);
  animation: mf-hat 3s ease-in-out infinite alternate;
}
.scn-mercutio-mocks-fashion .mf-shadow {
  position:absolute; bottom:36%; left:43%; width:26px; height:4px;
  background: rgba(0,0,0,0.3);
  border-radius:50%;
  filter: blur(2px);
  animation: mf-shadow 2s ease-in-out infinite alternate;
}
@keyframes mf-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.6; }
}
@keyframes mf-crowd {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.05); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes mf-dandy {
  0% { transform: translateY(0) rotate(-5deg) scaleX(1); }
  50% { transform: translateY(-4px) rotate(5deg) scaleX(1.2); }
  100% { transform: translateY(0) rotate(-5deg) scaleX(1); }
}
@keyframes mf-hat {
  0% { transform: rotate(8deg) translateX(0); }
  100% { transform: rotate(15deg) translateX(3px); }
}
@keyframes mf-shadow {
  0% { transform: scaleX(1); opacity:0.5; }
  100% { transform: scaleX(1.3); opacity:0.8; }
}

.scn-romeo-kisses-juliet {
  background: 
    linear-gradient(0deg, #4a2a1a 0%, #7a3a1a 40%, #b85a2a 60%, #4a2a1a 100%) 0 0 / 100% 100%,
    radial-gradient(ellipse at 50% 50%, #d07030 0%, transparent 70%);
}
.scn-romeo-kisses-juliet .bg-warm { position:absolute; inset:0; background: #1a0a04; opacity:.6; }
.scn-romeo-kisses-juliet .fire-glow { position:absolute; bottom:40%; left:50%; width:200px; height:200px; transform:translate(-50%,50%); background: radial-gradient(circle, #f0a040 0%, #b05020 40%, transparent 70%); box-shadow: 0 0 80px 30px #b05020; animation: rkj-fire 3s ease-in-out infinite alternate; }
.scn-romeo-kisses-juliet .juliet-head { position:absolute; bottom:38%; left:48%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, #1a0a04 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform: rotate(15deg); animation: rkj-sway 5s ease-in-out infinite; }
.scn-romeo-kisses-juliet .romeo-head { position:absolute; bottom:38%; left:45%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, #1a0a04 0%, #0a0402 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform: rotate(-15deg); animation: rkj-sway 5s ease-in-out infinite reverse; }
.scn-romeo-kisses-juliet .kiss-spark { position:absolute; bottom:46%; left:50%; width:8px; height:8px; background: radial-gradient(circle, #ffe0a0 0%, #ffa050 60%, transparent); border-radius:50%; box-shadow: 0 0 30px 10px #ffa050; animation: rkj-pulse 2s ease-in-out infinite; }
.scn-romeo-kisses-juliet .profile-juliet { position:absolute; bottom:38%; left:50%; width:12px; height:18px; background: #2a1a0a; border-radius: 0 50% 50% 0; transform:rotate(-20deg) translateX(-10px); animation: rkj-breathe 4s ease-in-out infinite; }
.scn-romeo-kisses-juliet .profile-romeo { position:absolute; bottom:38%; left:44%; width:12px; height:18px; background: #1a0a04; border-radius: 50% 0 0 50%; transform:rotate(20deg) translateX(10px); animation: rkj-breathe 4s ease-in-out infinite reverse; }
.scn-romeo-kisses-juliet .shadows { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, #0a0201 0%, transparent 60%); animation: rkj-shade 10s ease-in-out infinite alternate; }
@keyframes rkj-fire { 0% { opacity:.7; transform:translate(-50%,50%) scale(1); } 50% { opacity:1; transform:translate(-50%,50%) scale(1.08); } 100% { opacity:.8; transform:translate(-50%,50%) scale(.95); } }
@keyframes rkj-sway { 0% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(12deg) translateY(0); } }
@keyframes rkj-pulse { 0% { opacity:.6; box-shadow: 0 0 15px 5px #ffa050; } 50% { opacity:1; box-shadow: 0 0 40px 15px #ffd080; } 100% { opacity:.7; box-shadow: 0 0 20px 8px #ffa050; } }
@keyframes rkj-breathe { 0% { transform-origin: bottom; transform: scaleY(1) rotate(0); } 50% { transform: scaleY(1.03) rotate(1deg); } 100% { transform: scaleY(1) rotate(0); } }
@keyframes rkj-shade { 0% { opacity:.5; } 100% { opacity:.8; } }

.scn-capulet-ends-feast {
  background: 
    linear-gradient(180deg, #1a0e06 0%, #2a180c 30%, #4a2a14 60%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 20%, #6a3a1a 0%, transparent 60%);
}
.scn-capulet-ends-feast .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a0a04 0%, #2a1408 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.6); }
.scn-capulet-ends-feast .wall-left { position:absolute; left:0; top:0; bottom:30%; width:20%; background: linear-gradient(90deg, #2a1408 0%, #1a0a04 100%); box-shadow: 2px 0 6px rgba(0,0,0,.5); }
.scn-capulet-ends-feast .wall-right { position:absolute; right:0; top:0; bottom:30%; width:20%; background: linear-gradient(270deg, #2a1408 0%, #1a0a04 100%); }
.scn-capulet-ends-feast .torch-a { position:absolute; bottom:35%; left:30%; width:10px; height:30px; background: linear-gradient(0deg, #3a2010, #8a4a20); border-radius:2px; animation: cef-torch 2s ease-in-out infinite; }
.scn-capulet-ends-feast .torch-a::after { content:''; position:absolute; top:-12px; left:50%; transform:translateX(-50%); width:16px; height:16px; border-radius:50%; background: radial-gradient(circle, #ffa050 0%, #d06020 60%, transparent); box-shadow: 0 0 30px 10px #d06020; animation: cef-flame 1.5s ease-in-out infinite; }
.scn-capulet-ends-feast .torch-b { position:absolute; bottom:35%; right:25%; width:10px; height:30px; background: linear-gradient(0deg, #3a2010, #8a4a20); border-radius:2px; animation: cef-torch 2.5s ease-in-out infinite .5s; }
.scn-capulet-ends-feast .torch-b::after { content:''; position:absolute; top:-12px; left:50%; transform:translateX(-50%); width:14px; height:14px; border-radius:50%; background: radial-gradient(circle, #ffa050 0%, #d06020 60%, transparent); box-shadow: 0 0 25px 8px #d06020; animation: cef-flame 1.8s ease-in-out infinite .3s; }
.scn-capulet-ends-feast .figure-walk-1 { position:absolute; bottom:30%; left:50%; width:16px; height:32px; background: #2a1408; border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform:translateX(-50%); animation: cef-walk 4s ease-in-out infinite; }
.scn-capulet-ends-feast .figure-walk-2 { position:absolute; bottom:30%; left:58%; width:16px; height:32px; background: #1a0a04; border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform:translateX(-50%); animation: cef-walk 4s ease-in-out infinite .5s; }
.scn-capulet-ends-feast .figure-walk-3 { position:absolute; bottom:30%; left:42%; width:16px; height:32px; background: #1a0a04; border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform:translateX(-50%); animation: cef-walk 4s ease-in-out infinite 1s; }
.scn-capulet-ends-feast .door { position:absolute; bottom:30%; left:75%; width:40px; height:60px; background: #3a2010; border-radius:4px 4px 0 0; box-shadow: inset 2px 0 0 #4a2a14, inset -2px 0 0 #4a2a14; transform-origin: left center; animation: cef-door-open 6s ease-in-out infinite; }
@keyframes cef-torch { 0%,100% { opacity:.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } }
@keyframes cef-flame { 0% { transform: translateX(-50%) scale(1) rotate(0); } 50% { transform: translateX(-50%) scale(1.2) rotate(8deg); } 100% { transform: translateX(-50%) scale(.9) rotate(-5deg); } }
@keyframes cef-walk { 0% { transform: translateX(-50%) rotate(-1deg) translateY(0); } 25% { transform: translateX(-48%) rotate(0) translateY(-2px); } 50% { transform: translateX(-46%) rotate(1deg) translateY(0); } 75% { transform: translateX(-48%) rotate(0) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-1deg) translateY(0); } }
@keyframes cef-door-open { 0% { transform: scaleX(1); } 30% { transform: scaleX(.2); opacity:.5; } 60% { transform: scaleX(.2); opacity:.5; } 100% { transform: scaleX(1); } }

.scn-juliet-learns-romeo-montague {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #14141e 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 30% 60%, #2a2a3e 0%, transparent 70%);
}
.scn-juliet-learns-romeo-montague .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #0c0c18 0%, #181828 100%); }
.scn-juliet-learns-romeo-montague .window-moon { position:absolute; top:10%; left:70%; width:40px; height:50px; background: #1a1a2e; border: 3px solid #2a2a3e; border-radius:4px; box-shadow: inset 0 0 10px #0a0a14; }
.scn-juliet-learns-romeo-montague .window-moon::after { content:''; position:absolute; top:10px; left:10px; width:20px; height:20px; background: radial-gradient(circle, #c0c0d0 0%, #80809a 60%, transparent); border-radius:50%; box-shadow: 0 0 20px 4px #80809a, 0 0 40px 10px rgba(128,128,154,.3); animation: jlr-moon 15s ease-in-out infinite; }
.scn-juliet-learns-romeo-montague .candle { position:absolute; bottom:35%; left:25%; width:8px; height:30px; background: linear-gradient(0deg, #4a3a2a 0%, #8a6a4a 100%); border-radius:2px; animation: jlr-candle-bob 3s ease-in-out infinite; }
.scn-juliet-learns-romeo-montague .candle::after { content:''; position:absolute; top:-12px; left:50%; transform:translateX(-50%); width:14px; height:14px; background: radial-gradient(circle, #e0a060 0%, #c07030 70%, transparent); border-radius:50%; box-shadow: 0 0 25px 6px #c07030; animation: jlr-flame-fast .8s ease-in-out infinite; }
.scn-juliet-learns-romeo-montague .juliet-body { position:absolute; bottom:30%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: jlr-tremble .5s ease-in-out infinite; }
.scn-juliet-learns-romeo-montague .nurse-body { position:absolute; bottom:30%; left:55%; width:28px; height:48px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: jlr-recoil 2s ease-in-out infinite; }
.scn-juliet-learns-romeo-montague .juliet-hand { position:absolute; bottom:48%; left:36%; width:6px; height:10px; background: #1a1a2a; border-radius: 40% 40% 20% 20%; transform:rotate(-30deg); animation: jlr-hand-fling 3s ease-in-out infinite; }
.scn-juliet-learns-romeo-montague .shadow-atmos { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 60%, rgba(0,0,0,.7) 0%, transparent 60%); animation: jlr-shade 8s ease-in-out infinite; }
@keyframes jlr-moon { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.03); } 100% { opacity:.8; transform: scale(.98); } }
@keyframes jlr-candle-bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes jlr-flame-fast { 0% { transform: translateX(-50%) scale(1) rotate(-5deg); opacity:.7; } 25% { transform: translateX(-50%) scale(1.2) rotate(5deg); opacity:1; } 50% { transform: translateX(-50%) scale(.9) rotate(-10deg); opacity:.8; } 75% { transform: translateX(-50%) scale(1.1) rotate(8deg); opacity:.9; } 100% { transform: translateX(-50%) scale(1) rotate(0); opacity:.7; } }
@keyframes jlr-tremble { 0% { transform-origin: bottom; transform: scaleY(1) rotate(0); } 25% { transform: scaleY(1.01) rotate(-1deg); } 50% { transform: scaleY(.99) rotate(1deg); } 75% { transform: scaleY(1.02) rotate(-.5deg); } 100% { transform: scaleY(1) rotate(0); } }
@keyframes jlr-recoil { 0% { transform: translateY(0) scale(1); } 20% { transform: translateY(-6px) scale(1.02); } 40% { transform: translateY(0) scale(1); } 100% { transform: translateY(0); } }
@keyframes jlr-hand-fling { 0% { transform: rotate(-30deg) translateX(0); } 30% { transform: rotate(-40deg) translateX(2px); } 60% { transform: rotate(-25deg) translateX(-2px); } 100% { transform: rotate(-30deg) translateX(0); } }
@keyframes jlr-shade { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }

.scn-prologue-chorus-2 {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #141428 40%, #1a1a30 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, transparent 60%);
}
.scn-prologue-chorus-2 .sky-night { position:absolute; inset:0; background: linear-gradient(180deg, #050512 0%, #12122a 100%); }
.scn-prologue-chorus-2 .moon { position:absolute; top:12%; right:22%; width:40px; height:40px; background: radial-gradient(circle, #d0d0e0 0%, #a0a0c0 60%, transparent); border-radius:50%; box-shadow: 0 0 40px 8px rgba(160,160,192,.4); animation: pc2-moon-glow 12s ease-in-out infinite; }
.scn-prologue-chorus-2 .barrier-fence { position:absolute; bottom:10%; left:35%; right:35%; height:40%; background: repeating-linear-gradient(0deg, #2a2a3a 0px, #2a2a3a 3px, transparent 3px, transparent 12px); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,.7); animation: pc2-fence 20s linear infinite; }
.scn-prologue-chorus-2 .romeo-figure { position:absolute; bottom:20%; left:30%; width:18px; height:36px; background: #0a0a14; border-radius: 45% 45% 20% 20% / 60% 60% 30% 30%; transform:rotate(5deg); animation: pc2-fig-left 6s ease-in-out infinite; }
.scn-prologue-chorus-2 .juliet-figure { position:absolute; bottom:20%; right:30%; width:18px; height:36px; background: #0a0a14; border-radius: 45% 45% 20% 20% / 60% 60% 30% 30%; transform:rotate(-5deg); animation: pc2-fig-right 6s ease-in-out infinite; }
.scn-prologue-chorus-2 .thread-glow { position:absolute; bottom:30%; left:30%; right:30%; height:4px; background: linear-gradient(90deg, transparent 0%, #d0a050 20%, #a08030 50%, #d0a050 80%, transparent 100%); filter: blur(2px); opacity:.6; box-shadow: 0 0 12px 4px #a08030; animation: pc2-thread 8s ease-in-out infinite; }
.scn-prologue-chorus-2 .stars { position:absolute; inset:0 0 50% 0; background-image: radial-gradient(2px 2px at 20% 30%, #ffffff, transparent), radial-gradient(2px 2px at 50% 15%, #ffffff, transparent), radial-gradient(2px 2px at 70% 25%, #ffffff, transparent), radial-gradient(2px 2px at 80% 10%, #ffffff, transparent), radial-gradient(2px 2px at 10% 60%, #ffffff, transparent); background-size: 200px 200px; opacity:.5; animation: pc2-twinkle 5s ease-in-out infinite; }
@keyframes pc2-moon-glow { 0% { opacity:.8; box-shadow: 0 0 30px 5px rgba(160,160,192,.3); } 50% { opacity:1; box-shadow: 0 0 60px 15px rgba(160,160,192,.5); } 100% { opacity:.85; box-shadow: 0 0 40px 8px rgba(160,160,192,.35); } }
@keyframes pc2-fence { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pc2-fig-left { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes pc2-fig-right { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes pc2-thread { 0% { opacity:.4; filter: blur(2px); transform: scaleX(1); } 50% { opacity:.8; filter: blur(1px); transform: scaleX(1.05); } 100% { opacity:.5; filter: blur(2px); transform: scaleX(1); } }
@keyframes pc2-twinkle { 0% { opacity:.4; } 50% { opacity:.8; } 100% { opacity:.5; } }

/* Scene: Nurse comforts Romeo — warm alcove interior */
.scn-nurse-comforts-romeo {
  background: radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #1e1410 60%, #0d0a08 100%);
}
.scn-nurse-comforts-romeo .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120c 70%, #0d0a08 100%);
}
.scn-nurse-comforts-romeo .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e12 100%);
  border-radius: 10% 20% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
}
.scn-nurse-comforts-romeo .window-night {
  position: absolute; top: 12%; left: 60%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #0a1420 0%, #162a3a 100%);
  border: 3px solid #3a2a1a; border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(80,120,160,.2), 0 0 8px rgba(0,0,0,.5);
}
.scn-nurse-comforts-romeo .romeo-figure {
  position: absolute; bottom: 28%; left: 30%; width: 28px; height: 44px;
  background: linear-gradient(135deg, #2a1a14 0%, #1a0e0a 50%, #0a0604 100%);
  border-radius: 45% 40% 50% 50% / 55% 50% 45% 45%;
  transform-origin: bottom center;
  animation: nc-sit 6s ease-in-out infinite;
}
.scn-nurse-comforts-romeo .nurse-figure {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 50px;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0e 100%);
  border-radius: 40% 45% 50% 50% / 50% 55% 45% 45%;
  transform-origin: bottom center;
  animation: nc-bend 8s ease-in-out infinite;
}
.scn-nurse-comforts-romeo .candle-glow {
  position: absolute; bottom: 30%; left: 18%; width: 40px; height: 50px;
  background: radial-gradient(ellipse, rgba(255,180,80,.25) 0%, transparent 70%);
  border-radius: 50%;
  animation: nc-pulse 3s ease-in-out infinite alternate;
}
.scn-nurse-comforts-romeo .candle-flame {
  position: absolute; bottom: 52%; left: 20%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #ffcc60 0%, #e08030 50%, #a04020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 24px 8px rgba(255,180,80,.5), 0 0 48px 16px rgba(255,180,80,.2);
  animation: nc-flicker 1.5s ease-in-out infinite;
}
.scn-nurse-comforts-romeo .shadow-pool {
  position: absolute; bottom: 28%; left: 20%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: nc-shift 10s ease-in-out infinite;
}
@keyframes nc-sit {
  0% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(2px) rotate(2deg); }
  70% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nc-bend {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-3px) rotate(-5deg); }
  60% { transform: translateX(2px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nc-pulse {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.15); }
  100% { opacity: 0.6; transform: scale(1); }
}
@keyframes nc-flicker {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  25% { transform: scaleY(1.2) translateY(-2px); opacity: 1; }
  50% { transform: scaleY(0.8) translateY(2px); opacity: 0.7; }
  75% { transform: scaleY(1.1) translateY(-1px); opacity: 0.95; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.9; }
}
@keyframes nc-shift {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(8px) scaleX(1.2); }
  100% { transform: translateX(0) scaleX(1); }
}

/* Scene: Friar counsels Romeo — tense, sharp contrasts */
.scn-friar-counsels-romeo {
  background: radial-gradient(ellipse at 50% 30%, #2a2020 0%, #0e0a0a 60%, #050303 100%);
}
.scn-friar-counsels-romeo .bg-dark {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1414 0%, #0e0a0a 70%, #050303 100%);
}
.scn-friar-counsels-romeo .stone-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 36%;
  background: linear-gradient(180deg, #2a2218 0%, #1e1810 50%, #0e0a06 100%);
  border-radius: 8% 12% 0 0 / 20% 25% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.8);
}
.scn-friar-counsels-romeo .pillar-left {
  position: absolute; bottom: 22%; left: 14%; width: 18px; height: 80px;
  background: linear-gradient(90deg, #3a3228 0%, #2a2218 40%, #3a3228 100%);
  border-radius: 4px;
  box-shadow: 4px 0 12px rgba(0,0,0,.6);
}
.scn-friar-counsels-romeo .friar-figure {
  position: absolute; bottom: 28%; left: 40%; width: 32px; height: 52px;
  background: linear-gradient(135deg, #3a2e24 0%, #2a1e16 50%, #1a100a 100%);
  border-radius: 42% 45% 48% 50% / 52% 54% 46% 44%;
  transform-origin: bottom center;
  animation: fc-lunge 3s ease-in-out infinite;
}
.scn-friar-counsels-romeo .romeo-sword {
  position: absolute; bottom: 26%; left: 54%; width: 26px; height: 48px;
  background: linear-gradient(135deg, #2a1a14 0%, #1a0e0a 50%, #0a0604 100%);
  border-radius: 48% 42% 50% 48% / 52% 48% 50% 50%;
  transform-origin: bottom right;
  animation: fc-reach 2.5s ease-in-out infinite;
}
.scn-friar-counsels-romeo .sword-blade {
  position: absolute; bottom: 50%; left: 62%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #808090 0%, #a0a0b0 40%, #606070 100%);
  border-radius: 0 0 2px 2px;
  transform: rotate(25deg);
  transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(160,160,180,.4);
  animation: fc-blade 2.5s ease-in-out infinite;
}
.scn-friar-counsels-romeo .light-shaft {
  position: absolute; top: 0; left: 45%; width: 40px; height: 100%;
  background: linear-gradient(180deg, rgba(180,160,120,.08) 0%, rgba(180,160,120,.02) 60%, transparent 100%);
  transform: skewX(-8deg);
  animation: fc-shaft 6s ease-in-out infinite alternate;
}
.scn-friar-counsels-romeo .shadow-scatter {
  position: absolute; bottom: 22%; left: 30%; width: 100px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.7) 0%, transparent 70%);
  border-radius: 50%;
  animation: fc-dark 8s ease-in-out infinite;
}
@keyframes fc-lunge {
  0% { transform: translateX(0) rotate(0deg); }
  35% { transform: translateX(-6px) rotate(-6deg); }
  70% { transform: translateX(3px) rotate(4deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fc-reach {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(8px) rotate(10deg); }
  60% { transform: translateX(-4px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fc-blade {
  0% { transform: rotate(20deg) translateX(0); }
  30% { transform: rotate(35deg) translateX(3px); }
  60% { transform: rotate(10deg) translateX(-2px); }
  100% { transform: rotate(20deg) translateX(0); }
}
@keyframes fc-shaft {
  0% { opacity: 0.3; transform: skewX(-8deg) scaleY(1); }
  50% { opacity: 0.6; transform: skewX(-6deg) scaleY(1.05); }
  100% { opacity: 0.3; transform: skewX(-8deg) scaleY(1); }
}
@keyframes fc-dark {
  0% { transform: translateX(0) scaleX(1); opacity: 0.8; }
  50% { transform: translateX(-10px) scaleX(1.3); opacity: 0.6; }
  100% { transform: translateX(0) scaleX(1); opacity: 0.8; }
}

/* Scene: Nurse brings ring — warm, hopeful chamber */
.scn-nurse-brings-ring {
  background: radial-gradient(ellipse at 50% 50%, #4a3020 0%, #2a1a10 60%, #120a08 100%);
}
.scn-nurse-brings-ring .chamber-wall {
  position: absolute; inset: 0 0 28% 0;
  background: linear-gradient(180deg, #3a2218 0%, #2a1810 60%, #1a0e0a 100%);
}
.scn-nurse-brings-ring .chamber-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #3a2216 50%, #1a1008 100%);
  border-radius: 12% 18% 0 0 / 25% 30% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,.5);
}
.scn-nurse-brings-ring .wood-table {
  position: absolute; bottom: 22%; left: 38%; width: 60px; height: 16px;
  background: linear-gradient(180deg, #5a3a22 0%, #4a2e18 50%, #3a2210 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-nurse-brings-ring .romeo-eager {
  position: absolute; bottom: 28%; left: 28%; width: 26px; height: 46px;
  background: linear-gradient(135deg, #2a1a14 0%, #1a0e0a 50%, #0a0604 100%);
  border-radius: 46% 42% 52% 50% / 54% 50% 48% 46%;
  transform-origin: bottom center;
  animation: nr-reach 5s ease-in-out infinite;
}
.scn-nurse-brings-ring .nurse-hand {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 36px;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0e 100%);
  border-radius: 40% 40% 45% 45% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: nr-offer 6s ease-in-out infinite;
}
.scn-nurse-brings-ring .ring-light {
  position: absolute; bottom: 40%; left: 56%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,.6), 0 0 40px 12px rgba(255,208,128,.3);
  animation: nr-glimmer 2.5s ease-in-out infinite;
}
.scn-nurse-brings-ring .warm-candle {
  position: absolute; bottom: 38%; left: 18%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #ffcc60 0%, #e08030 50%, #402010 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 12px 4px rgba(255,180,80,.4);
  animation: nr-flicker 2s ease-in-out infinite;
}
.scn-nurse-brings-ring .amber-glow {
  position: absolute; bottom: 20%; left: 10%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, rgba(255,200,120,.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: nr-amber 7s ease-in-out infinite alternate;
}
@keyframes nr-reach {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(3deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nr-offer {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-3px) rotate(-4deg); }
  60% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nr-glimmer {
  0% { opacity: 0.7; transform: scale(1); }
  25% { opacity: 1; transform: scale(1.3); }
  50% { opacity: 0.8; transform: scale(0.9); }
  75% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes nr-flicker {
  0% { opacity: 0.8; transform: scaleY(1); }
  30% { opacity: 1; transform: scaleY(1.3); }
  60% { opacity: 0.7; transform: scaleY(0.8); }
  100% { opacity: 0.8; transform: scaleY(1); }
}
@keyframes nr-amber {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.15); }
  100% { opacity: 0.4; transform: scale(1); }
}

/* Scene: Capulet plans wedding — tense, three figures, cold hall */
.scn-capulet-plans-wedding {
  background: radial-gradient(ellipse at 50% 40%, #2a2220 0%, #12100e 60%, #080606 100%);
}
.scn-capulet-plans-wedding .hall-wall {
  position: absolute; inset: 0 0 32% 0;
  background: linear-gradient(180deg, #1e1816 0%, #120e0c 60%, #080606 100%);
}
.scn-capulet-plans-wedding .hall-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 34%;
  background: linear-gradient(180deg, #2a221e 0%, #1e1814 50%, #0e0a08 100%);
  border-radius: 6% 10% 0 0 / 18% 22% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,.7);
}
.scn-capulet-plans-wedding .great-table {
  position: absolute; bottom: 24%; left: 24%; width: 90px; height: 14px;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1e14 50%, #1a100a 100%);
  border-radius: 2px 2px 6px 6px;
  box-shadow: 0 3px 8px rgba(0,0,0,.6);
}
.scn-capulet-plans-wedding .capulet-figure {
  position: absolute; bottom: 28%; left: 26%; width: 30px; height: 50px;
  background: linear-gradient(135deg, #3a2a22 0%, #2a1e16 50%, #1a100a 100%);
  border-radius: 44% 42% 50% 48% / 52% 50% 48% 46%;
  transform-origin: bottom center;
  animation: cp-tension 4s ease-in-out infinite;
}
.scn-capulet-plans-wedding .lady-capulet {
  position: absolute; bottom: 26%; left: 48%; width: 26px; height: 44px;
  background: linear-gradient(135deg, #2a201c 0%, #1e1410 50%, #0e0a08 100%);
  border-radius: 42% 44% 48% 46% / 50% 52% 44% 42%;
  transform-origin: bottom center;
  animation: cp-seated 6s ease-in-out infinite;
}
.scn-capulet-plans-wedding .paris-figure {
  position: absolute; bottom: 30%; left: 64%; width: 28px; height: 52px;
  background: linear-gradient(135deg, #362e28 0%, #26201a 50%, #16120e 100%);
  border-radius: 44% 46% 50% 48% / 54% 52% 48% 46%;
  transform-origin: bottom center;
  animation: cp-stand 5s ease-in-out infinite;
}
.scn-capulet-plans-wedding .scroll-doc {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #c8b090 0%, #a08870 50%, #806850 100%);
  border-radius: 2px 2px 6px 6px;
  transform: rotate(-4deg);
  box-shadow: 0 1px 3px rgba(0,0,0,.4);
  animation: cp-page 8s ease-in-out infinite;
}
.scn-capulet-plans-wedding .dim-candle {
  position: absolute; bottom: 42%; left: 50%; width: 4px; height: 10px;
  background: linear-gradient(180deg, #806040 0%, #402820 50%, #201810 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 6px 2px rgba(128,96,64,.2);
  animation: cp-dim 3s ease-in-out infinite alternate;
}
@keyframes cp-tension {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-3deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cp-seated {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-2px) translateY(-2px) rotate(-2deg); }
  60% { transform: translateX(2px) translateY(1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes cp-stand {
  0% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(3px) rotate(3deg); }
  70% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cp-page {
  0% { transform: rotate(-4deg) translateY(0); }
  30% { transform: rotate(-2deg) translateY(-2px); }
  60% { transform: rotate(-6deg) translateY(1px); }
  100% { transform: rotate(-4deg) translateY(0); }
}
@keyframes cp-dim {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.2); }
  100% { opacity: 0.3; transform: scaleY(1); }
}

.scn-tybalt-fight { background: linear-gradient(180deg, #f5c77e 0%, #e8a84a 40%, #d4853a 70%, #b06020 100%), radial-gradient(ellipse at 50% 20%, #ffd080 0%, transparent 60%); }
.scn-tybalt-fight .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b8d4e0 0%, #f0d08a 100%); animation: tf-sky 4s ease-in-out infinite alternate; }
.scn-tybalt-fight .sun { position:absolute; top:10%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #ffe070 0%, #e8a030 70%); border-radius:50%; box-shadow: 0 0 40px 20px #e8a030; animation: tf-sun 6s ease-in-out infinite alternate; }
.scn-tybalt-fight .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #9a6a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 0 0; animation: tf-ground 2s ease-in-out infinite alternate; }
.scn-tybalt-fight .figure-a { position:absolute; bottom:35%; left:30%; width:32px; height:80px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tf-fight-a 0.8s ease-in-out infinite alternate; }
.scn-tybalt-fight .figure-b { position:absolute; bottom:35%; right:30%; width:30px; height:78px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tf-fight-b 0.9s ease-in-out infinite alternate; }
.scn-tybalt-fight .sword-cross { position:absolute; bottom:45%; left:45%; width:60px; height:10px; background: linear-gradient(90deg, #d0c0a0 0%, #f0e0c0 50%, #d0c0a0 100%); border-radius: 20%; transform-origin: center; box-shadow: 0 0 6px 2px #c0a080; animation: tf-sword 0.3s ease-in-out infinite alternate; }
.scn-tybalt-fight .dust { position:absolute; bottom:30%; left:20%; width:80px; height:40px; background: rgba(180,130,60,0.4); border-radius: 50%; filter: blur(10px); animation: tf-dust 3s ease-in-out infinite alternate; }
@keyframes tf-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes tf-sun { 0% { transform: scale(1); box-shadow: 0 0 30px 15px #e8a030; } 50% { transform: scale(1.05); box-shadow: 0 0 50px 25px #ffc050; } 100% { transform: scale(0.98); box-shadow: 0 0 35px 18px #d08020; } }
@keyframes tf-ground { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes tf-fight-a { 0% { transform: rotate(-3deg) translateX(0); } 25% { transform: rotate(2deg) translateX(4px); } 50% { transform: rotate(-5deg) translateX(-2px); } 75% { transform: rotate(4deg) translateX(6px); } 100% { transform: rotate(-2deg) translateX(2px); } }
@keyframes tf-fight-b { 0% { transform: rotate(3deg) translateX(0); } 25% { transform: rotate(-2deg) translateX(-4px); } 50% { transform: rotate(5deg) translateX(2px); } 75% { transform: rotate(-4deg) translateX(-6px); } 100% { transform: rotate(2deg) translateX(-2px); } }
@keyframes tf-sword { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.2); } 100% { transform: rotate(-15deg) scaleX(0.9); } }
@keyframes tf-dust { 0% { transform: translateX(0) scale(1); opacity:0.4; } 50% { transform: translateX(20px) scale(1.3); opacity:0.6; } 100% { transform: translateX(-10px) scale(0.9); opacity:0.3; } }

.scn-prince-quells-brawl { background: linear-gradient(180deg, #c89050 0%, #a06830 50%, #603818 100%), radial-gradient(ellipse at 50% 100%, #804020 0%, transparent 70%); }
.scn-prince-quells-brawl .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d4a060 0%, #e8b870 50%, #f0d090 100%); animation: pqb-sky 10s ease-in-out infinite alternate; }
.scn-prince-quells-brawl .sun { position:absolute; bottom:50%; left:20%; width:70px; height:70px; background: radial-gradient(circle, #fff0b0 0%, #e8a030 60%); border-radius:50%; box-shadow: 0 0 50px 25px #e8a030; animation: pqb-sun 20s ease-in-out infinite alternate; }
.scn-prince-quells-brawl .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #604020 0%, #301808 100%); border-radius: 10% 10% 0 0; }
.scn-prince-quells-brawl .prince { position:absolute; bottom:30%; left:40%; width:50px; height:100px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pqb-prince 4s ease-in-out infinite alternate; }
.scn-prince-quells-brawl .attendant-1 { position:absolute; bottom:28%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: pqb-att 5s ease-in-out infinite alternate; }
.scn-prince-quells-brawl .attendant-2 { position:absolute; bottom:28%; right:20%; width:30px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: pqb-att 5s ease-in-out infinite alternate-reverse; }
.scn-prince-quells-brawl .banner { position:absolute; bottom:50%; left:45%; width:8px; height:60px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); transform-origin: bottom; border-radius: 2px; animation: pqb-banner 6s ease-in-out infinite alternate; }
@keyframes pqb-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes pqb-sun { 0% { transform: translateY(0) scale(1); opacity:.9; } 50% { transform: translateY(-10px) scale(1.05); opacity:1; } 100% { transform: translateY(5px) scale(0.95); opacity:.85; } }
@keyframes pqb-prince { 0% { transform: rotate(0) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(0) translateY(-4px); } 75% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes pqb-att { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes pqb-banner { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.1); } 100% { transform: rotate(-5deg) scaleY(0.95); } }

.scn-prince-sentence { background: linear-gradient(180deg, #e0c080 0%, #c89850 30%, #906030 70%, #402010 100%), radial-gradient(ellipse at 50% 30%, #f0d090 0%, transparent 50%); }
.scn-prince-sentence .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f0d8a0 0%, #e0b870 100%); animation: ps-sky 8s ease-in-out infinite alternate; }
.scn-prince-sentence .throne { position:absolute; bottom:20%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.6); }
.scn-prince-sentence .prince { position:absolute; bottom:30%; left:50%; width:40px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ps-prince 5s ease-in-out infinite alternate; }
.scn-prince-sentence .staff { position:absolute; bottom:35%; left:54%; width:6px; height:100px; background: linear-gradient(180deg, #a08050 0%, #604020 100%); transform-origin: bottom; border-radius: 2px; animation: ps-staff 7s ease-in-out infinite alternate; }
.scn-prince-sentence .citizen { position:absolute; bottom:20%; left:30%; width:28px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: ps-citizen 6s ease-in-out infinite alternate; }
.scn-prince-sentence .chains { position:absolute; bottom:25%; left:32%; width:20px; height:6px; background: #604020; border-radius: 20%; box-shadow: 0 8px 0 #604020, 0 16px 0 #604020; animation: ps-chains 4s ease-in-out infinite alternate; }
@keyframes ps-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes ps-prince { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(2deg) translateY(-3px); } 50% { transform: translateX(-50%) rotate(0) translateY(-5px); } 75% { transform: translateX(-50%) rotate(-2deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(0) translateY(0); } }
@keyframes ps-staff { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes ps-citizen { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(3px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes ps-chains { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(-2px); } }

.scn-montague-concern { background: linear-gradient(180deg, #f0d080 0%, #d8a050 40%, #a06028 70%, #603010 100%), radial-gradient(ellipse at 50% 30%, #ffe0a0 0%, transparent 60%); }
.scn-montague-concern .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8d8f0 0%, #e8c890 100%); animation: mc-sky 12s ease-in-out infinite alternate; }
.scn-montague-concern .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a5a2a 0%, #4a2a0a 100%); border-radius: 15% 15% 0 0; }
.scn-montague-concern .montague { position:absolute; bottom:32%; left:35%; width:36px; height:85px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-mont 4s ease-in-out infinite alternate; }
.scn-montague-concern .lady-montague { position:absolute; bottom:30%; left:28%; width:30px; height:75px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: mc-lady 4.5s ease-in-out infinite alternate-reverse; }
.scn-montague-concern .tybalt { position:absolute; bottom:35%; left:70%; width:28px; height:70px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: mc-tybalt 3s ease-in-out infinite alternate; }
.scn-montague-concern .sword-arc { position:absolute; bottom:45%; left:72%; width:50px; height:15px; background: transparent; border: 3px solid #c0a080; border-radius: 50% 50% 0 0; border-bottom: none; transform-origin: left center; animation: mc-sword 1.5s ease-in-out infinite alternate; }
@keyframes mc-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes mc-mont { 0% { transform: rotate(0) translateY(0); } 25% { transform: rotate(3deg) translateY(-2px); } 50% { transform: rotate(0) translateY(-4px); } 75% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes mc-lady { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(5px); } 100% { transform: rotate(1deg) translateX(0); } }
@keyframes mc-tybalt { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(8px); } 100% { transform: rotate(-3deg) translateX(2px); } }
@keyframes mc-sword { 0% { transform: rotate(-30deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.2); } 100% { transform: rotate(-20deg) scaleY(0.8); } }

.scn-paris-visits-juliets-tomb {
  background: linear-gradient(180deg, #0a0a2e 0%, #14144a 30%, #1a1a3e 60%, #0e0e2a 100%),
              radial-gradient(ellipse at 70% 20%, #2a2a5e 0%, transparent 60%);
}
.scn-paris-visits-juliets-tomb .pt-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #10103a 0%, #0a0a2e 40%, transparent 100%);
  animation: pt-sky 15s ease-in-out infinite alternate;
}
.scn-paris-visits-juliets-tomb .pt-tree-left {
  position: absolute; bottom: 35%; left: 10%; width: 120px; height: 180px;
  background: linear-gradient(180deg, #0d0d1a 0%, #050510 100%);
  border-radius: 40% 60% 20% 20% / 80% 70% 10% 10%;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.6);
  animation: pt-tree 20s ease-in-out infinite alternate;
}
.scn-paris-visits-juliets-tomb .pt-tree-right {
  position: absolute; bottom: 38%; right: 8%; width: 100px; height: 150px;
  background: linear-gradient(180deg, #0d0d1a 0%, #050510 100%);
  border-radius: 50% 40% 15% 25% / 70% 80% 10% 10%;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.6);
  animation: pt-tree 25s ease-in-out infinite alternate;
  animation-delay: -5s;
}
.scn-paris-visits-juliets-tomb .pt-paris {
  position: absolute; bottom: 25%; left: 45%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pt-figure 4s ease-in-out infinite;
}
.scn-paris-visits-juliets-tomb .pt-page {
  position: absolute; bottom: 25%; left: 38%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #1e1e34 0%, #0e0e1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pt-figure 4.5s ease-in-out infinite;
  animation-delay: -0.5s;
}
.scn-paris-visits-juliets-tomb .pt-torch {
  position: absolute; bottom: 30%; left: 46%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #d08040 0%, #a05020 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 16px 6px #d08040, 0 0 32px 12px rgba(208,128,64,0.3);
  animation: pt-torch 2s ease-in-out infinite alternate;
}
.scn-paris-visits-juliets-tomb .pt-glow {
  position: absolute; bottom: 28%; left: 46%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(208,128,64,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: pt-glow 3s ease-in-out infinite alternate;
}
.scn-paris-visits-juliets-tomb .pt-tomb {
  position: absolute; bottom: 20%; right: 20%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
  animation: pt-tomb 12s ease-in-out infinite alternate;
}
@keyframes pt-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes pt-tree { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(0.98) translateY(1px); } }
@keyframes pt-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(6px) translateY(0) rotate(-1deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes pt-torch { 0% { opacity: 0.8; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.85; transform: scale(1); } }
@keyframes pt-glow { 0% { opacity: 0.5; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes pt-tomb { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }

.scn-romeo-arrives-churchyard {
  background: linear-gradient(180deg, #0a0a2e 0%, #14144a 40%, #0e0e2a 80%, #050510 100%),
              radial-gradient(ellipse at 50% 10%, #2a2a5e 0%, transparent 50%);
}
.scn-romeo-arrives-churchyard .ra-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #121240 0%, #0a0a2e 50%, transparent 100%);
  animation: ra-sky 18s ease-in-out infinite alternate;
}
.scn-romeo-arrives-churchyard .ra-moon {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ccccdd 0%, #9999aa 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(153,153,170,0.3);
  animation: ra-moon 30s ease-in-out infinite alternate;
}
.scn-romeo-arrives-churchyard .ra-romeo {
  position: absolute; bottom: 22%; left: 40%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #15152a 0%, #080818 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: ra-figure 5s ease-in-out infinite;
}
.scn-romeo-arrives-churchyard .ra-balthasar {
  position: absolute; bottom: 22%; left: 30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a30 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra-figure 5.5s ease-in-out infinite;
  animation-delay: -1s;
}
.scn-romeo-arrives-churchyard .ra-torch {
  position: absolute; bottom: 28%; left: 42%; width: 7px; height: 14px;
  background: linear-gradient(180deg, #d08040 0%, #a05020 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 18px 6px #d08040, 0 0 36px 12px rgba(208,128,64,0.3);
  animation: ra-torch 2.5s ease-in-out infinite alternate;
}
.scn-romeo-arrives-churchyard .ra-glow {
  position: absolute; bottom: 26%; left: 42%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(208,128,64,0.1) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  animation: ra-glow 3.5s ease-in-out infinite alternate;
}
.scn-romeo-arrives-churchyard .ra-grave {
  position: absolute; bottom: 18%; left: 50%; width: 70px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%);
  border-radius: 15% 15% 10% 10% / 25% 25% 10% 10%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: ra-grave 20s ease-in-out infinite alternate;
}
.scn-romeo-arrives-churchyard .ra-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #0e0e1e 0%, #050510 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: ra-ground 15s ease-in-out infinite alternate;
}
@keyframes ra-sky { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes ra-moon { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.05); } 100% { transform: translateX(-3px) scale(0.95); } }
@keyframes ra-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ra-torch { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.15); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes ra-glow { 0% { opacity: 0.4; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes ra-grave { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.97); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes ra-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-romeo-opens-tomb {
  background: linear-gradient(180deg, #07071a 0%, #10103a 40%, #0a0a2a 70%, #03030e 100%),
              radial-gradient(ellipse at 30% 50%, #1a1a4e 0%, transparent 60%);
}
.scn-romeo-opens-tomb .rt-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #0e0e32 0%, #070720 60%, transparent 100%);
  animation: rt-sky 12s ease-in-out infinite alternate;
}
.scn-romeo-opens-tomb .rt-tomb-door {
  position: absolute; bottom: 25%; left: 35%; width: 120px; height: 90px;
  background: linear-gradient(180deg, #1a1a32 0%, #0a0a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.7), 0 0 0 2px #2a2a4e;
  animation: rt-door 10s ease-in-out infinite alternate;
}
.scn-romeo-opens-tomb .rt-romeo {
  position: absolute; bottom: 22%; left: 45%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #181830 0%, #080818 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: rt-figure 4s ease-in-out infinite;
}
.scn-romeo-opens-tomb .rt-torch {
  position: absolute; bottom: 28%; left: 47%; width: 7px; height: 14px;
  background: linear-gradient(180deg, #d08040 0%, #a05020 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 8px #d08040, 0 0 40px 15px rgba(208,128,64,0.3);
  animation: rt-torch 2s ease-in-out infinite alternate;
}
.scn-romeo-opens-tomb .rt-glow {
  position: absolute; bottom: 26%; left: 47%; width: 140px; height: 140px;
  background: radial-gradient(circle, rgba(208,128,64,0.12) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(18px);
  animation: rt-glow 3s ease-in-out infinite alternate;
}
.scn-romeo-opens-tomb .rt-mattock {
  position: absolute; bottom: 24%; left: 48%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 10% 10% 20% 20%;
  transform-origin: bottom center;
  animation: rt-mattock 2.5s ease-in-out infinite;
}
.scn-romeo-opens-tomb .rt-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0a0a1a 0%, #03030e 100%);
  border-radius: 40% 60% 0 0 / 60% 40% 0 0;
  animation: rt-ground 18s ease-in-out infinite alternate;
}
@keyframes rt-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes rt-door { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(0.98); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes rt-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(6px) translateY(0) rotate(-1deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes rt-torch { 0% { opacity: 0.75; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.85; transform: scale(1); } }
@keyframes rt-glow { 0% { opacity: 0.4; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.25); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes rt-mattock { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes rt-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-romeo-kills-paris {
  background: linear-gradient(180deg, #060618 0%, #0e0e32 30%, #0a0a26 70%, #02020c 100%),
              radial-gradient(ellipse at 60% 30%, #1a1a4e 0%, transparent 50%);
}
.scn-romeo-kills-paris .rk-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0a2a 0%, #060618 60%, transparent 100%);
  animation: rk-sky 14s ease-in-out infinite alternate;
}
.scn-romeo-kills-paris .rk-romeo {
  position: absolute; bottom: 20%; left: 45%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #181830 0%, #080818 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: rk-figure 4s ease-in-out infinite;
}
.scn-romeo-kills-paris .rk-paris {
  position: absolute; bottom: 20%; left: 55%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #1a1a34 0%, #0a0a1e 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: rk-figure 4s ease-in-out infinite;
  animation-delay: -0.5s;
}
.scn-romeo-kills-paris .rk-torch1 {
  position: absolute; bottom: 26%; left: 47%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #d08040 0%, #a05020 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 14px 5px #d08040, 0 0 28px 10px rgba(208,128,64,0.3);
  animation: rk-torch 1.8s ease-in-out infinite alternate;
}
.scn-romeo-kills-paris .rk-torch2 {
  position: absolute; bottom: 26%; left: 57%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #c07838 0%, #904820 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 12px 4px #c07838, 0 0 24px 8px rgba(192,120,56,0.3);
  animation: rk-torch 2.2s ease-in-out infinite alternate;
  animation-delay: -0.8s;
}
.scn-romeo-kills-paris .rk-glow {
  position: absolute; bottom: 22%; left: 45%; width: 180px; height: 180px;
  background: radial-gradient(circle, rgba(208,128,64,0.08) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(20px);
  animation: rk-glow 3s ease-in-out infinite alternate;
}
.scn-romeo-kills-paris .rk-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 16%;
  background: linear-gradient(180deg, #0a0a1a 0%, #03030e 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  animation: rk-ground 16s ease-in-out infinite alternate;
}
.scn-romeo-kills-paris .rk-tomb {
  position: absolute; bottom: 16%; right: 15%; width: 90px; height: 70px;
  background: linear-gradient(180deg, #18182e 0%, #0a0a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  animation: rk-tomb 20s ease-in-out infinite alternate;
}
@keyframes rk-sky { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes rk-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(6px) translateY(0) rotate(-1deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes rk-torch { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes rk-glow { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes rk-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rk-tomb { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.97); } 100% { transform: translateY(0) scaleY(1); } }

/* Scene: juliet-kiss-exchanged */
.scn-juliet-kiss-exchanged {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #4a2a1a 40%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 60%, #8a4a2a 0%, transparent 70%);
}
.scn-juliet-kiss-exchanged .bg-wall {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(90deg, #2a1a0e 0%, #3a2214 50%, #2a1a0e 100%);
  border-radius: 0 0 20% 20%;
  animation: jk-wall 20s ease-in-out infinite;
}
.scn-juliet-kiss-exchanged .arch-window {
  position: absolute; top: 12%; left: 50%; width: 120px; height: 140px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #6a3a1a 0%, #1a0a0a 70%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
  animation: jk-window 6s ease-in-out infinite alternate;
}
.scn-juliet-kiss-exchanged .fire-glow {
  position: absolute; bottom: 40%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0a060 0%, #c05020 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: jk-fire 4s ease-in-out infinite alternate;
}
.scn-juliet-kiss-exchanged .figure-romeo {
  position: absolute; bottom: 15%; left: 44%; width: 32px; height: 50px;
  background: linear-gradient(180deg, #5a3a22 0%, #2a1a0e 100%);
  border-radius: 40% 40% 60% 60% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jk-figure-left 3s ease-in-out infinite;
}
.scn-juliet-kiss-exchanged .figure-juliet {
  position: absolute; bottom: 15%; left: 48%; width: 30px; height: 48px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%);
  border-radius: 40% 40% 60% 60% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jk-figure-right 3s ease-in-out infinite;
}
.scn-juliet-kiss-exchanged .kiss-glow {
  position: absolute; bottom: 25%; left: 46%; width: 16px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: jk-sparkle 2s ease-in-out infinite alternate;
}
@keyframes jk-wall {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes jk-window {
  0% { transform: translateX(-50%) scaleY(1); }
  100% { transform: translateX(-50%) scaleY(1.05); }
}
@keyframes jk-fire {
  0% { opacity: 0.7; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.6; transform: translateX(-50%) scale(0.95); }
}
@keyframes jk-figure-left {
  0%, 100% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(2deg); }
}
@keyframes jk-figure-right {
  0%, 100% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-4px) rotate(-2deg); }
}
@keyframes jk-sparkle {
  0% { opacity: 0.4; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1.4); }
}

/* Scene: prologue-chorus */
.scn-prologue-chorus {
  background:
    linear-gradient(180deg, #0a0a14 0%, #1a1a2e 50%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 80%, #1a1a2e 0%, transparent 60%);
}
.scn-prologue-chorus .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #0a0a14 0%, #14142a 50%, #0a0a14 100%);
  animation: pc-bg 30s ease-in-out infinite alternate;
}
.scn-prologue-chorus .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: pc-floor 15s ease-in-out infinite;
}
.scn-prologue-chorus .figure-chorus {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  animation: pc-figure 6s ease-in-out infinite alternate;
}
.scn-prologue-chorus .cloak-drape {
  position: absolute; bottom: 12%; left: 50%; width: 70px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  filter: blur(2px);
  animation: pc-cloak 8s ease-in-out infinite;
}
.scn-prologue-chorus .candle-glow {
  position: absolute; bottom: 13%; left: 38%; width: 8px; height: 12px;
  background: radial-gradient(circle, #f0d080 0%, #806020 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: pc-candle 4s ease-in-out infinite alternate;
}
.scn-prologue-chorus .book-prop {
  position: absolute; bottom: 17%; left: 55%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  transform-origin: bottom left;
  animation: pc-book 7s ease-in-out infinite;
}
@keyframes pc-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes pc-floor {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes pc-figure {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-5px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes pc-cloak {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes pc-candle {
  0% { opacity: 0.5; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1.2); }
}
@keyframes pc-book {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}

/* Scene: mercutio-conjures */
.scn-mercutio-conjures {
  background:
    linear-gradient(180deg, #0a1424 0%, #1a2a4a 40%, #2a3a5a 100%),
    radial-gradient(ellipse at 50% 80%, #3a4a6a 0%, transparent 60%);
}
.scn-mercutio-conjures .bg-moon {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a1424 0%, #1a2a4a 80%);
  animation: mc-bg 30s ease-in-out infinite alternate;
}
.scn-mercutio-conjures .moon-face {
  position: absolute; top: 10%; right: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle, #c8d8e8 0%, #8090b0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px #a0b0d0, inset 0 -10px 20px rgba(0,0,0,0.2);
  animation: mc-moon 8s ease-in-out infinite;
}
.scn-mercutio-conjures .figure-mercutio {
  position: absolute; bottom: 15%; left: 25%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc-mercutio 4s ease-in-out infinite;
}
.scn-mercutio-conjures .magic-circle {
  position: absolute; bottom: 22%; left: 35%; width: 80px; height: 80px;
  background: radial-gradient(circle, #6a8ab0 0%, transparent 70%);
  border-radius: 50%;
  border: 2px solid #8aaac0;
  opacity: 0.6;
  animation: mc-circle 6s ease-in-out infinite alternate;
}
.scn-mercutio-conjures .spirit-a {
  position: absolute; bottom: 30%; left: 38%; width: 12px; height: 14px;
  background: radial-gradient(circle, #b0d0e8 0%, #6080a0 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: mc-spirit1 3s ease-in-out infinite;
}
.scn-mercutio-conjures .spirit-b {
  position: absolute; bottom: 28%; left: 42%; width: 10px; height: 12px;
  background: radial-gradient(circle, #a0c0e0 0%, #507090 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: mc-spirit2 5s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-mercutio-conjures .hat-prop {
  position: absolute; bottom: 72%; left: 22%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #1a2a4a 0%, #0a1424 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: bottom center;
  animation: mc-hat 4s ease-in-out infinite;
}
@keyframes mc-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mc-moon { 0% { transform: translate(0,0); } 50% { transform: translate(-5px,5px); } 100% { transform: translate(0,0); } }
@keyframes mc-mercutio { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(-10px) rotate(0deg); } 50% { transform: translateX(0) rotate(3deg); } 75% { transform: translateX(10px) rotate(0deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes mc-circle { 0% { transform: scale(0.8); opacity: 0.3; } 50% { transform: scale(1.2); opacity: 0.8; } 100% { transform: scale(1); opacity: 0.5; } }
@keyframes mc-spirit1 { 0% { transform: translate(0,0) scale(0.6); opacity: 0.2; } 50% { transform: translate(20px,-30px) scale(1.2); opacity: 0.9; } 100% { transform: translate(0,0) scale(0.6); opacity: 0.2; } }
@keyframes mc-spirit2 { 0% { transform: translate(0,0) scale(0.6); opacity: 0.2; } 50% { transform: translate(-15px,-25px) scale(1.1); opacity: 0.8; } 100% { transform: translate(0,0) scale(0.6); opacity: 0.2; } }
@keyframes mc-hat { 0% { transform: rotate(-5deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }

/* Scene: balcony-romeo-moonlight */
.scn-balcony-romeo-moonlight {
  background:
    linear-gradient(180deg, #0a1424 0%, #1a2a4a 50%, #0a1220 100%),
    radial-gradient(ellipse at 50% 100%, #1a2a4a 0%, transparent 60%);
}
.scn-balcony-romeo-moonlight .bg-night {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a1220 0%, #0a1424 100%);
  animation: br-night 20s ease-in-out infinite alternate;
}
.scn-balcony-romeo-moonlight .starfield {
  position: absolute; inset: 0;
  box-shadow:
    20px 30px 0 0 #ffffff33,
    80px 120px 0 2px #ffffff44,
    140px 50px 0 1px #ffffff33,
    200px 180px 0 0 #ffffff22,
    280px 90px 0 1px #ffffff55,
    50px 200px 0 0 #ffffff33;
  animation: br-stars 60s linear infinite;
}
.scn-balcony-romeo-moonlight .balcony-rail {
  position: absolute; bottom: 35%; left: 50%; width: 140px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #1a2a4a 0%, #2a3a5a 50%, #1a2a4a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: br-rail 10s ease-in-out infinite alternate;
}
.scn-balcony-romeo-moonlight .figure-juliet-balcony {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a3a5a 0%, #0a1424 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  animation: br-juliet 8s ease-in-out infinite;
}
.scn-balcony-romeo-moonlight .figure-romeo-ground {
  position: absolute; bottom: 10%; left: 45%; width: 34px; height: 60px;
  background: linear-gradient(180deg, #1a2a4a 0%, #0a1220 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-romeo 6s ease-in-out infinite;
}
.scn-balcony-romeo-moonlight .juliet-halo {
  position: absolute; bottom: 40%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0d08033 0%, #f0d08011 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: br-halo 5s ease-in-out infinite alternate;
}
.scn-balcony-romeo-moonlight .moon-crescent {
  position: absolute; top: 8%; left: 12%; width: 40px; height: 40px;
  background: radial-gradient(circle at 60% 50%, #c8d8e8 0%, #8090b0 100%);
  border-radius: 50%;
  box-shadow: -6px 0 0 #0a1220; /* crescent effect */
  animation: br-moon 12s ease-in-out infinite;
}
@keyframes br-night { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes br-stars { 0% { transform: translateY(0); } 100% { transform: translateY(-100px); } }
@keyframes br-rail { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes br-juliet {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes br-romeo {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  50% { transform: translateX(5px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(2deg); }
}
@keyframes br-halo { 0% { opacity: 0.3; transform: translateX(-50%) scale(0.8); } 100% { opacity: 0.7; transform: translateX(-50%) scale(1.2); } }
@keyframes br-moon { 0% { transform: translate(0,0); } 50% { transform: translate(3px,-3px); } 100% { transform: translate(0,0); } }

/* Scene: romeo-confesses-love */
.scn-romeo-confesses-love {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0c27a 60%, #d4a373 100%),
    radial-gradient(ellipse at 60% 20%, rgba(255,215,0,0.3) 0%, transparent 50%);
}
.scn-romeo-confesses-love .sky     { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #b0d4f1 0%, transparent 100%); animation: rcl-sky 12s ease-in-out infinite alternate; }
.scn-romeo-confesses-love .sun     { position:absolute; top:8%; left:65%; width:60px; height:60px; border-radius:50%; background:radial-gradient(circle, #fff7b0 0%, #ffd700 60%, transparent 70%); box-shadow:0 0 40px 20px rgba(255,215,0,0.5); animation: rcl-sun 4s ease-in-out infinite; }
.scn-romeo-confesses-love .wall    { position:absolute; bottom:30%; left:10%; right:10%; height:40%; background:linear-gradient(90deg, #c0a080 0%, #d4b890 50%, #ba9e7a 100%); border-radius:4px; box-shadow:inset 0 -8px 12px rgba(0,0,0,0.3); animation: rcl-wall 8s ease-in-out infinite; }
.scn-romeo-confesses-love .figure-romeo { position:absolute; bottom:32%; left:48%; width:24px; height:50px; background:linear-gradient(180deg, #2c2c3e 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: rcl-figure 3s ease-in-out infinite; }
.scn-romeo-confesses-love .vines   { position:absolute; bottom:35%; left:15%; right:20%; height:30%; background:linear-gradient(0deg, #3a6a3a 0%, transparent 100%); border-radius: 30% 70% 50% 50%; animation: rcl-vines 6s ease-in-out infinite; }
.scn-romeo-confesses-love .shadow  { position:absolute; bottom:30%; left:42%; width:40px; height:10px; background:rgba(0,0,0,0.3); border-radius:50%; filter:blur(3px); animation: rcl-shadow 3s ease-in-out infinite; }
@keyframes rcl-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes rcl-sun    { 0% { transform:scale(1) rotate(0deg); box-shadow:0 0 40px 20px rgba(255,215,0,0.5); } 50% { transform:scale(1.1) rotate(5deg); box-shadow:0 0 60px 30px rgba(255,215,0,0.7); } 100% { transform:scale(0.95) rotate(-3deg); box-shadow:0 0 30px 15px rgba(255,215,0,0.4); } }
@keyframes rcl-wall   { 0% { transform:translateY(0) scaleY(1); box-shadow:inset 0 -8px 12px rgba(0,0,0,0.3); } 50% { transform:translateY(-2px) scaleY(1.01); box-shadow:inset 0 -10px 16px rgba(0,0,0,0.4); } 100% { transform:translateY(0) scaleY(1); box-shadow:inset 0 -8px 12px rgba(0,0,0,0.3); } }
@keyframes rcl-figure { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(8px) rotate(3deg); } 50% { transform:translateX(16px) rotate(-2deg); } 75% { transform:translateX(24px) rotate(4deg); } 100% { transform:translateX(32px) rotate(0deg); } }
@keyframes rcl-vines  { 0% { transform:scaleY(1) translateY(0); } 50% { transform:scaleY(1.05) translateY(-5px); } 100% { transform:scaleY(1) translateY(0); } }
@keyframes rcl-shadow { 0% { transform:scaleX(1) opacity(0.3); } 50% { transform:scaleX(0.8) opacity(0.4); } 100% { transform:scaleX(1) opacity(0.3); } }

/* Scene: benvolio-advises */
.scn-benvolio-advises {
  background:
    linear-gradient(180deg, #a8d8ea 0%, #f5e6ca 50%, #dac4a0 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255,245,200,0.4) 0%, transparent 70%);
}
.scn-benvolio-advises .sky            { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #b8e0f0 0%, transparent 100%); animation: ba-sky 15s ease-in-out infinite alternate; }
.scn-benvolio-advises .ground         { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #8cb88c 0%, #507050 100%); border-radius: 20% 30% 0 0; }
.scn-benvolio-advises .tree           { position:absolute; bottom:45%; left:20%; width:90px; height:120px; background:linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%); border-radius: 40% 60% 40% 40% / 50% 70% 30% 50%; transform-origin:bottom center; animation: ba-tree 12s ease-in-out infinite; }
.scn-benvolio-advises .figure-benvolio   { position:absolute; bottom:35%; left:35%; width:22px; height:52px; background:linear-gradient(180deg, #2c2c3e 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ba-stand 5s ease-in-out infinite; }
.scn-benvolio-advises .figure-romeo-sit  { position:absolute; bottom:25%; left:46%; width:24px; height:40px; background:linear-gradient(180deg, #3c3c4e 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%; transform-origin:bottom center; animation: ba-sit 6s ease-in-out infinite; }
.scn-benvolio-advises .light-rays        { position:absolute; top:5%; left:40%; width:150px; height:200px; background: radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.2) 0%, transparent 70%); border-radius:50%; filter:blur(10px); animation: ba-rays 20s linear infinite; }
.scn-benvolio-advises .leaves            { position:absolute; top:15%; left:30%; width:40px; height:40px; background:linear-gradient(180deg, #5a8a5a 0%, #3a6a3a 100%); border-radius: 50% 20% 50% 20%; transform:rotate(30deg); animation: ba-leaves 8s ease-in-out infinite; }
@keyframes ba-tree  { 0% { transform:rotate(-2deg) scaleY(1); } 50% { transform:rotate(2deg) scaleY(1.02); } 100% { transform:rotate(-1deg) scaleY(1); } }
@keyframes ba-stand { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes ba-sit   { 0% { transform:translateY(0) rotate(0deg); } 33% { transform:translateY(1px) rotate(-1deg); } 66% { transform:translateY(-1px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes ba-rays  { 0% { transform:rotate(0deg) scale(1); opacity:0.5; } 50% { transform:rotate(180deg) scale(1.1); opacity:0.6; } 100% { transform:rotate(360deg) scale(1); opacity:0.5; } }
@keyframes ba-leaves{ 0% { transform:translate(0,0) rotate(20deg); opacity:0.7; } 50% { transform:translate(10px,-8px) rotate(40deg); opacity:1; } 100% { transform:translate(20px,-16px) rotate(30deg); opacity:0.7; } }

/* Scene: romeo-describes-rosaline */
.scn-romeo-describes-rosaline {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f0c27a 50%, #d4a373 100%),
    radial-gradient(ellipse at 70% 15%, rgba(255,200,100,0.3) 0%, transparent 60%);
}
.scn-romeo-describes-rosaline .sky              { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #b0d4f1 0%, transparent 100%); animation: rdr-sky 14s ease-in-out infinite alternate; }
.scn-romeo-describes-rosaline .column            { position:absolute; bottom:30%; left:25%; width:20px; height:100px; background:linear-gradient(90deg, #d4c4a0 0%, #e8d8b8 50%, #c0b090 100%); border-radius:6px; box-shadow:2px 0 6px rgba(0,0,0,0.3); animation: rdr-column 6s ease-in-out infinite; }
.scn-romeo-describes-rosaline .figure-romeo-gesture { position:absolute; bottom:30%; left:40%; width:24px; height:50px; background:linear-gradient(180deg, #2c2c3e 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: rdr-gesture 4s ease-in-out infinite; }
.scn-romeo-describes-rosaline .arrow            { position:absolute; bottom:55%; left:55%; width:40px; height:6px; background:linear-gradient(90deg, #c8553d 0%, #a0461a 100%); border-radius:3px; transform-origin:left center; animation: rdr-arrow 2.5s ease-in-out infinite; }
.scn-romeo-describes-rosaline .target           { position:absolute; bottom:45%; left:70%; width:50px; height:50px; background:radial-gradient(circle, #c8553d 0%, #8b4513 50%, transparent 60%); border-radius:50%; border:4px solid #6b3a1a; box-shadow:0 0 12px rgba(0,0,0,0.3); animation: rdr-target 3s ease-in-out infinite; }
.scn-romeo-describes-rosaline .sun-harsh        { position:absolute; top:5%; right:15%; width:70px; height:70px; border-radius:50%; background:radial-gradient(circle, #fff7b0 0%, #ffd700 60%, transparent 70%); box-shadow:0 0 60px 30px rgba(255,215,0,0.6); animation: rdr-sun 5s ease-in-out infinite; }
@keyframes rdr-sky      { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rdr-column   { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes rdr-gesture  { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(5px) rotate(3deg); } 50% { transform:translateX(10px) rotate(-2deg); } 75% { transform:translateX(5px) rotate(4deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes rdr-arrow    { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(30px) rotate(20deg); } 100% { transform:translateX(60px) rotate(5deg); } }
@keyframes rdr-target   { 0% { transform:scale(1) rotate(0deg); box-shadow:0 0 12px rgba(0,0,0,0.3); } 50% { transform:scale(1.05) rotate(3deg); box-shadow:0 0 20px rgba(0,0,0,0.4); } 100% { transform:scale(1) rotate(0deg); box-shadow:0 0 12px rgba(0,0,0,0.3); } }
@keyframes rdr-sun      { 0% { transform:scale(1); box-shadow:0 0 60px 30px rgba(255,215,0,0.6); } 50% { transform:scale(1.12); box-shadow:0 0 80px 40px rgba(255,215,0,0.8); } 100% { transform:scale(0.95); box-shadow:0 0 50px 20px rgba(255,215,0,0.5); } }

/* Scene: romeo-rosaline-vows */
.scn-romeo-rosaline-vows {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f0c27a 60%, #d4a373 100%),
    radial-gradient(ellipse at 40% 20%, rgba(255,215,0,0.25) 0%, transparent 70%);
}
.scn-romeo-rosaline-vows .sky          { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #b0d4f1 0%, transparent 100%); animation: rrv-sky 12s ease-in-out infinite alternate; }
.scn-romeo-rosaline-vows .wall-strong  { position:absolute; bottom:20%; left:10%; right:10%; height:50%; background:linear-gradient(90deg, #a08060 0%, #c0a080 40%, #a08060 100%); border-radius:6px; box-shadow:inset 0 -10px 15px rgba(0,0,0,0.3), 0 4px 8px rgba(0,0,0,0.2); animation: rrv-wall 9s ease-in-out infinite; }
.scn-romeo-rosaline-vows .gate         { position:absolute; bottom:20%; left:40%; width:20%; height:60%; background:linear-gradient(90deg, #6b4a2a 0%, #8b6a4a 50%, #6b4a2a 100%); border-radius:6px 6px 0 0; transform-origin:bottom left; animation: rrv-gate 6s ease-in-out infinite; }
.scn-romeo-rosaline-vows .figure-rosaline { position:absolute; bottom:40%; left:45%; width:22px; height:36px; background:linear-gradient(180deg, #3c3c4e 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%; transform-origin:bottom center; animation: rrv-figure 4s ease-in-out infinite; }
.scn-romeo-rosaline-vows .brambles     { position:absolute; bottom:38%; left:10%; right:10%; height:30%; background:repeating-linear-gradient(45deg, #3a6a3a 0px, #2a4a2a 5px, transparent 5px, transparent 10px); border-radius: 20% 80% 50% 50%; animation: rrv-bramble 8s ease-in-out infinite; }
.scn-romeo-rosaline-vows .sun-bright   { position:absolute; top:5%; left:20%; width:55px; height:55px; border-radius:50%; background:radial-gradient(circle, #fff7b0 0%, #ffd700 60%, transparent 70%); box-shadow:0 0 50px 25px rgba(255,215,0,0.5); animation: rrv-sun 5s ease-in-out infinite; }
.scn-romeo-rosaline-vows .dust-motes   { position:absolute; top:0; left:0; right:0; bottom:0; background:radial-gradient(circle at 30% 20%, rgba(255,255,200,0.03) 0%, transparent 50%), radial-gradient(circle at 70% 50%, rgba(255,255,200,0.02) 0%, transparent 50%); animation: rrv-dust 20s linear infinite; }
@keyframes rrv-sky    { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rrv-wall   { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-3px) scaleY(1.01); } 100% { transform:translateY(0) scaleY(1); } }
@keyframes rrv-gate   { 0% { transform:rotate(0deg) scaleX(1); } 50% { transform:rotate(2deg) scaleX(1.02); } 100% { transform:rotate(0deg) scaleX(1); } }
@keyframes rrv-figure { 0% { transform:translateY(0) rotate(0deg); } 33% { transform:translateY(1px) rotate(-1deg); } 66% { transform:translateY(-1px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes rrv-bramble{ 0% { transform:scaleY(1) translateY(0); } 50% { transform:scaleY(1.06) translateY(-4px); } 100% { transform:scaleY(1) translateY(0); } }
@keyframes rrv-sun    { 0% { transform:scale(1); box-shadow:0 0 50px 25px rgba(255,215,0,0.5); } 50% { transform:scale(1.1); box-shadow:0 0 70px 35px rgba(255,215,0,0.7); } 100% { transform:scale(0.95); box-shadow:0 0 40px 20px rgba(255,215,0,0.4); } }
@keyframes rrv-dust   { 0% { background-position:0% 0%; } 50% { background-position:20% 10%; } 100% { background-position:0% 0%; } }

/* funeral-dirge */
.scn-funeral-dirge {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #4a3a5e 60%, #5c4a4a 80%, #6a5a4a 100%),
    radial-gradient(ellipse at 20% 100%, #6a5a4a 0%, transparent 70%);
}
.scn-funeral-dirge .sky-layer {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #3a3a5e 40%, transparent 100%);
  animation: fd-sky 20s ease-in-out infinite alternate;
}
.scn-funeral-dirge .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: fd-ground 15s ease-in-out infinite alternate;
}
.scn-funeral-dirge .bell {
  position:absolute; top:10%; left:45%; width:30px; height:40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  transform-origin: top center;
  animation: fd-bell 4s ease-in-out infinite;
}
.scn-funeral-dirge .coffin {
  position:absolute; bottom:20%; left:30%; width:100px; height:30px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 40% 40%;
  box-shadow: 0 6px 15px rgba(0,0,0,.7);
  animation: fd-coffin 12s ease-in-out infinite;
}
.scn-funeral-dirge .flowers {
  position:absolute; bottom:28%; left:20%; width:40px; height:40px;
  background: radial-gradient(circle, #a0461a 0%, #5a2a0a 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(160,70,26,.4);
  animation: fd-flowers 8s ease-in-out infinite alternate;
}
.scn-funeral-dirge .mourner {
  position:absolute; bottom:22%; left:50%; width:20px; height:50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fd-mourner 6s ease-in-out infinite;
}
@keyframes fd-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fd-ground { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes fd-bell { 0% { transform: rotate(-8deg) } 25% { transform: rotate(8deg) } 50% { transform: rotate(-6deg) } 75% { transform: rotate(6deg) } 100% { transform: rotate(0) } }
@keyframes fd-coffin { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes fd-flowers { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.1) rotate(10deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes fd-mourner { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }

/* musicians-quarrel */
.scn-musicians-quarrel {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-musicians-quarrel .wall-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 30%, #2a1a0a 100%);
  animation: mq-wall 30s ease-in-out infinite alternate;
}
.scn-musicians-quarrel .table {
  position:absolute; bottom:15%; left:20%; right:20%; height:20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,.7);
  animation: mq-table 10s ease-in-out infinite;
}
.scn-musicians-quarrel .musician1 {
  position:absolute; bottom:30%; left:30%; width:25px; height:50px;
  background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mq-musician1 1.5s ease-in-out infinite;
}
.scn-musicians-quarrel .musician2 {
  position:absolute; bottom:30%; right:30%; width:25px; height:50px;
  background: linear-gradient(225deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mq-musician2 1.8s ease-in-out infinite;
}
.scn-musicians-quarrel .lute {
  position:absolute; bottom:40%; left:35%; width:30px; height:20px;
  background: linear-gradient(90deg, #a08050 0%, #d4b070 50%, #a08050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 5px rgba(0,0,0,.5);
  animation: mq-lute 0.8s ease-in-out infinite alternate;
}
.scn-musicians-quarrel .drum {
  position:absolute; bottom:35%; right:35%; width:40px; height:15px;
  background: linear-gradient(180deg, #c05830 0%, #a0381a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: mq-drum 0.6s ease-in-out infinite;
}
@keyframes mq-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes mq-table { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes mq-musician1 { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(8px) rotate(5deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-5px) rotate(-4deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mq-musician2 { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-6px) rotate(-5deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(4px) rotate(4deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mq-lute { 0% { transform: rotate(-10deg) scale(1) } 100% { transform: rotate(10deg) scale(1.1) } }
@keyframes mq-drum { 0% { transform: translateX(0) } 25% { transform: translateX(3px) } 50% { transform: translateX(0) } 75% { transform: translateX(-3px) } 100% { transform: translateX(0) } }

/* romeo-in-mantua */
.scn-romeo-in-mantua {
  background:
    linear-gradient(180deg, #7ab8e0 0%, #b0d4f0 40%, #f0e8c0 100%),
    radial-gradient(ellipse at 50% 100%, #ffe0a0 0%, transparent 70%);
}
.scn-romeo-in-mantua .sky-bright {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #5a8ab0 0%, #a0c8e8 60%, transparent 100%);
  animation: rm-sky 30s ease-in-out infinite alternate;
}
.scn-romeo-in-mantua .cloud-a {
  position:absolute; top:10%; left:10%; width:80px; height:20px;
  background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: rm-cloud-a 40s linear infinite;
}
.scn-romeo-in-mantua .cloud-b {
  position:absolute; top:15%; right:5%; width:60px; height:16px;
  background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.05) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: rm-cloud-b 55s linear infinite reverse;
}
.scn-romeo-in-mantua .wall {
  position:absolute; bottom:20%; left:10%; right:40%; height:60%;
  background: linear-gradient(135deg, #d4c8b0 0%, #b8a88a 100%);
  border-radius: 0 10% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.2);
  animation: rm-wall 20s ease-in-out infinite alternate;
}
.scn-romeo-in-mantua .window {
  position:absolute; bottom:60%; left:20%; width:30px; height:40px;
  background: radial-gradient(circle, #ffe8a0 0%, #f0c060 70%);
  border: 4px solid #c09858;
  border-radius: 10% 10% 30% 30% / 20% 20% 30% 30%;
  box-shadow: 0 0 20px 6px #f0c060;
  animation: rm-window 5s ease-in-out infinite alternate;
}
.scn-romeo-in-mantua .figure-romeo {
  position:absolute; bottom:18%; left:22%; width:20px; height:50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rm-figure 8s ease-in-out infinite;
}
.scn-romeo-in-mantua .sunbeam {
  position:absolute; top:0; left:30%; width:120px; height:100%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,230,150,0.3) 30%, rgba(255,230,150,0.1) 60%, transparent 100%);
  filter: blur(8px);
  animation: rm-sunbeam 12s ease-in-out infinite alternate;
}
@keyframes rm-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes rm-cloud-a { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }
@keyframes rm-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes rm-wall { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes rm-window { 0% { box-shadow: 0 0 15px 4px #f0c060; opacity:.85 } 50% { box-shadow: 0 0 35px 12px #f0c060; opacity:1 } 100% { box-shadow: 0 0 18px 5px #f0c060; opacity:.9 } }
@keyframes rm-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rm-sunbeam { 0% { opacity:.3; transform: skewX(0) } 50% { opacity:.6; transform: skewX(3deg) } 100% { opacity:.3; transform: skewX(0) } }

/* balthasar-tells-juliets-death */
.scn-balthasar-tells-juliets-death {
  background:
    linear-gradient(180deg, #3a5a7a 0%, #7a9ab0 40%, #d4c8a0 100%),
    radial-gradient(ellipse at 50% 0%, #ffe8b0 0%, transparent 60%);
}
.scn-balthasar-tells-juliets-death .sky-tragic {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #4a6a8a 0%, #8aaccc 50%, transparent 100%);
  animation: bt-sky 25s ease-in-out infinite alternate;
}
.scn-balthasar-tells-juliets-death .tomb-arch {
  position:absolute; bottom:10%; left:25%; right:25%; height:60%;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.6);
  animation: bt-arch 15s ease-in-out infinite alternate;
}
.scn-balthasar-tells-juliets-death .tomb-interior {
  position:absolute; bottom:10%; left:32%; right:32%; height:55%;
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.8);
  animation: bt-interior 20s ease-in-out infinite;
}
.scn-balthasar-tells-juliets-death .figure-romeo-kneeling {
  position:absolute; bottom:20%; left:38%; width:20px; height:40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bt-romeo 6s ease-in-out infinite;
}
.scn-balthasar-tells-juliets-death .figure-balthasar {
  position:absolute; bottom:22%; right:30%; width:22px; height:50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bt-balthasar 8s ease-in-out infinite;
}
.scn-balthasar-tells-juliets-death .stone-cross {
  position:absolute; bottom:40%; left:48%; width:10px; height:30px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: bt-cross 30s ease-in-out infinite alternate;
}
@keyframes bt-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes bt-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes bt-interior { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes bt-romeo { 0% { transform: translateY(0) rotate(0) scale(1) } 25% { transform: translateY(-2px) rotate(2deg) scale(1.02) } 50% { transform: translateY(0) rotate(0) scale(1) } 75% { transform: translateY(2px) rotate(-2deg) scale(1.02) } 100% { transform: translateY(0) rotate(0) scale(1) } }
@keyframes bt-balthasar { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bt-cross { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }

/* Scene 1: romeo-joins-friends - cheerful sunlit morning */
.scn-romeo-joins-friends {
  background: 
    linear-gradient(180deg, #fce4b8 0%, #ffb347 40%, #cc7722 100%),
    radial-gradient(ellipse at 30% 20%, #ffdd88 0%, transparent 60%);
}
.scn-romeo-joins-friends .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #c0e6ff 60%, transparent 100%);
  animation: rjf-sky 15s ease-in-out infinite alternate;
}
.scn-romeo-joins-friends .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7cb342 0%, #4caf50 40%, #2e7d32 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.2);
  animation: rjf-ground 6s ease-in-out infinite;
}
.scn-romeo-joins-friends .sun {
  position: absolute; top: 10%; left: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe066 0%, #ffc107 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,193,7,.5), 0 0 80px 40px rgba(255,193,7,.2);
  animation: rjf-sun 20s ease-in-out infinite;
}
.scn-romeo-joins-friends .figure-left,
.scn-romeo-joins-friends .figure-right {
  position: absolute; bottom: 45%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-romeo-joins-friends .figure-left {
  left: 30%; animation: rjf-sway-left 4s ease-in-out infinite;
}
.scn-romeo-joins-friends .figure-right {
  left: 42%; animation: rjf-sway-right 4.2s ease-in-out infinite;
}
.scn-romeo-joins-friends .figure-romeo {
  position: absolute; bottom: 45%; right: 30%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #7b1fa2 0%, #4a148c 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rjf-enter 8s ease-in-out infinite;
}
.scn-romeo-joins-friends .hat {
  position: absolute; bottom: 76%; left: 42%; width: 20px; height: 12px;
  background: radial-gradient(ellipse, #c8553d 0%, #c8553d 50%, transparent 60%);
  border-radius: 50% 50% 30% 30%;
  transform: translateX(-50%) rotate(-10deg);
  animation: rjf-hat 2s ease-in-out infinite;
}
.scn-romeo-joins-friends .bird {
  position: absolute; width: 18px; height: 8px;
  background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%);
  border-radius: 50%;
  animation: rjf-fly 25s linear infinite;
}
.scn-romeo-joins-friends .bird-a { top: 20%; left: 0; }
.scn-romeo-joins-friends .bird-b { top: 28%; left: 0; animation-delay: -8s; }

@keyframes rjf-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes rjf-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }
@keyframes rjf-sun { 0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 40px 20px rgba(255,193,7,.5); } 50% { transform: translate(5px, -3px) scale(1.05); box-shadow: 0 0 60px 30px rgba(255,193,7,.6); } 100% { transform: translate(0, 0) scale(1); } }
@keyframes rjf-sway-left { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes rjf-sway-right { 0%,100% { transform: rotate(4deg); } 50% { transform: rotate(-2deg); } }
@keyframes rjf-enter { 0% { transform: translateX(40px) rotate(-10deg); opacity: 0; } 30% { opacity: 1; } 50% { transform: translateX(0) rotate(0deg); } 70% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rjf-hat { 0%,100% { transform: translateX(-50%) rotate(-10deg); } 50% { transform: translateX(-50%) rotate(15deg); } }
@keyframes rjf-fly { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }

/* Scene 2: nurse-seeks-romeo - sunny chase comedy */
.scn-nurse-seeks-romeo {
  background: 
    linear-gradient(180deg, #fff9c4 0%, #ffeb3b 40%, #f9a825 100%),
    radial-gradient(ellipse at 70% 30%, #ffd54f 0%, transparent 60%);
}
.scn-nurse-seeks-romeo .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #bbdefb 0%, #e3f2fd 60%, transparent 100%);
  animation: nse-sky 12s ease-in-out infinite alternate;
}
.scn-nurse-seeks-romeo .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #c8e6c9 0%, #81c784 50%, #388e3c 100%);
  border-radius: 40% 20% 0 0 / 30% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.15);
  animation: nse-ground 3s ease-in-out infinite;
}
.scn-nurse-seeks-romeo .nurse {
  position: absolute; bottom: 42%; left: 25%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1565c0 0%, #0d47a1 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nse-chase-nurse 2s ease-in-out infinite;
}
.scn-nurse-seeks-romeo .romeo {
  position: absolute; bottom: 45%; right: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #e65100 0%, #bf360c 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nse-dodge 2.5s ease-in-out infinite;
}
.scn-nurse-seeks-romeo .fan {
  position: absolute; bottom: 70%; left: 30%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 30% 30% 50% 50%;
  transform-origin: bottom left;
  animation: nse-fan 1.2s ease-in-out infinite;
}
.scn-nurse-seeks-romeo .goose {
  position: absolute; bottom: 42%; right: 15%; width: 20px; height: 15px;
  background: radial-gradient(ellipse, #f5f5f5 0%, #bdbdbd 100%);
  border-radius: 50% 50% 40% 40%;
  animation: nse-goose 4s ease-in-out infinite;
}
.scn-nurse-seeks-romeo .dust {
  position: absolute; bottom: 35%; width: 6px; height: 6px;
  background: rgba(188, 170, 150, .6);
  border-radius: 50%;
  filter: blur(2px);
  animation: nse-dust 1.5s infinite;
}
.scn-nurse-seeks-romeo .dust-1 { left: 20%; animation-delay: 0s; }
.scn-nurse-seeks-romeo .dust-2 { left: 40%; animation-delay: 0.5s; }

@keyframes nse-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes nse-ground { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes nse-chase-nurse { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(5deg); } 50% { transform: translateX(0) rotate(-3deg); } 75% { transform: translateX(-5px) rotate(4deg); } }
@keyframes nse-dodge { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-15px) rotate(-10deg); } }
@keyframes nse-fan { 0%,100% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(40deg) scaleY(1.3); } }
@keyframes nse-goose { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-8px) rotate(15deg); } }
@keyframes nse-dust { 0% { opacity: 1; transform: translateY(0) scale(1); } 100% { opacity: 0; transform: translateY(-20px) scale(2); } }

/* Scene 3: nurse-meets-romeo - tense confrontation */
.scn-nurse-meets-romeo {
  background: 
    linear-gradient(180deg, #e0e0e0 0%, #90a4ae 40%, #37474f 100%),
    radial-gradient(ellipse at 50% 20%, #b0bec5 0%, transparent 70%);
}
.scn-nurse-meets-romeo .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #eceff1 0%, #b0bec5 70%, transparent 100%);
  animation: nmr-sky 8s ease-in-out infinite alternate;
}
.scn-nurse-meets-romeo .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8d6e63 0%, #5d4037 100%);
  border-radius: 10% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.4);
}
.scn-nurse-meets-romeo .wall {
  position: absolute; bottom: 30%; left: 45%; width: 10px; height: 70%;
  background: linear-gradient(180deg, #607d8b 0%, #455a64 100%);
  box-shadow: 4px 0 8px rgba(0,0,0,.3);
  animation: nmr-wall 4s ease-in-out infinite;
}
.scn-nurse-meets-romeo .nurse {
  position: absolute; bottom: 38%; left: 25%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #1565c0 0%, #0d47a1 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nmr-tremble-nurse 0.6s ease-in-out infinite;
}
.scn-nurse-meets-romeo .romeo {
  position: absolute; bottom: 40%; right: 25%; width: 24px; height: 54px;
  background: linear-gradient(180deg, #e65100 0%, #bf360c 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nmr-lean 3s ease-in-out infinite;
}
.scn-nurse-meets-romeo .shadow-nurse,
.scn-nurse-meets-romeo .shadow-romeo {
  position: absolute; bottom: 30%; width: 30px; height: 8px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: nmr-shadow-pulse 2s ease-in-out infinite;
}
.scn-nurse-meets-romeo .shadow-nurse { left: 22%; }
.scn-nurse-meets-romeo .shadow-romeo { right: 22%; animation-delay: 1s; }
.scn-nurse-meets-romeo .tension-line {
  position: absolute; bottom: 50%; left: 45%; width: 10%; height: 2px;
  background: linear-gradient(90deg, transparent, #ff7043, transparent);
  filter: blur(1px);
  animation: nmr-flash 1.5s ease-in-out infinite;
}

@keyframes nmr-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes nmr-wall { 0%,100% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(0.98) translateX(2px); } }
@keyframes nmr-tremble-nurse { 0%,100% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(2deg) translateX(-1px); } 50% { transform: rotate(-2deg) translateX(1px); } 75% { transform: rotate(3deg) translateX(-1px); } }
@keyframes nmr-lean { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(8deg); } }
@keyframes nmr-shadow-pulse { 0%,100% { opacity: .3; transform: scaleX(1); } 50% { opacity: .5; transform: scaleX(1.3); } }
@keyframes nmr-flash { 0%,100% { opacity: 0; } 50% { opacity: .7; } }

/* Scene 4: romeo-tells-nurse-plan - warm confidential chat */
.scn-romeo-tells-nurse-plan {
  background: 
    linear-gradient(180deg, #ffe0b2 0%, #ffcc80 40%, #ffb74d 100%),
    radial-gradient(ellipse at 60% 30%, #ffd54f 0%, transparent 70%);
}
.scn-romeo-tells-nurse-plan .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fce4ec 0%, #f8bbd0 60%, transparent 100%);
  animation: rtn-sky 14s ease-in-out infinite alternate;
}
.scn-romeo-tells-nurse-plan .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #aed581 0%, #689f38 100%);
  border-radius: 30% 40% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.2);
}
.scn-romeo-tells-nurse-plan .bench {
  position: absolute; bottom: 35%; left: 35%; width: 80px; height: 10px;
  background: linear-gradient(180deg, #795548 0%, #5d4037 100%);
  border-radius: 5px;
  box-shadow: 0 8px 12px rgba(0,0,0,.3);
  animation: rtn-bench 7s ease-in-out infinite;
}
.scn-romeo-tells-nurse-plan .nurse {
  position: absolute; bottom: 40%; left: 40%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #1565c0 0%, #0d47a1 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rtn-sit 5s ease-in-out infinite;
}
.scn-romeo-tells-nurse-plan .romeo {
  position: absolute; bottom: 42%; right: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #e65100 0%, #bf360c 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rtn-lean-in 6s ease-in-out infinite;
}
.scn-romeo-tells-nurse-plan .letter {
  position: absolute; bottom: 52%; left: 48%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #f5f5f5 0%, #e0e0e0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: rtn-letter 4s ease-in-out infinite;
}
.scn-romeo-tells-nurse-plan .glow {
  position: absolute; bottom: 35%; left: 45%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,215,0,.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: rtn-glow 3s ease-in-out infinite;
}

@keyframes rtn-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes rtn-bench { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes rtn-sit { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-5deg); } }
@keyframes rtn-lean-in { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(10deg); } }
@keyframes rtn-letter { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-8px) rotate(20deg); } }
@keyframes rtn-glow { 0%,100% { opacity: .5; transform: scale(1); } 50% { opacity: .8; transform: scale(1.2); } }

/* Scene: juliet-misunderstands – dark, dim interior, close-up wound */
.scn-juliet-misunderstands {
  background: 
    linear-gradient(180deg, #1a0e0e 0%, #2c1414 40%, #3a1a1a 70%, #1a0c0c 100%),
    radial-gradient(ellipse at 50% 70%, #4a2020 0%, transparent 80%);
}
.scn-juliet-misunderstands .bg-frame {
  position: absolute; inset: 0; background: radial-gradient(circle at 50% 40%, #2c1818 0%, #1a0a0a 100%);
  animation: jm-bg 20s ease-in-out infinite alternate;
}
.scn-juliet-misunderstands .chest {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 40%;
  background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: inset 0 0 30px #2a1a1a;
  animation: jm-chest 4s ease-in-out infinite;
}
.scn-juliet-misunderstands .wound {
  position: absolute; bottom: 38%; left: 42%; width: 12%; height: 10%;
  background: radial-gradient(circle, #a03a2a 0%, #5e1a1d 70%);
  border-radius: 50% 40% 30% 50%;
  transform: rotate(-10deg);
  box-shadow: 0 0 20px #5e1a1d;
  animation: jm-wound 3s ease-in-out infinite alternate;
}
.scn-juliet-misunderstands .hand-tremble {
  position: absolute; bottom: 30%; left: 38%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #9a7a6a 0%, #7a5a4a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: jm-hand 1.5s ease-in-out infinite;
}
.scn-juliet-misunderstands .candle-flicker {
  position: absolute; bottom: 25%; right: 20%; width: 2%; height: 6%;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 12px #c08040, 0 0 24px rgba(192,128,64,0.6);
  animation: jm-candle 0.5s ease-in-out infinite alternate;
}
.scn-juliet-misunderstands .glow-pulse {
  position: absolute; bottom: 24%; right: 19%; width: 10%; height: 10%;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: jm-glow 3s ease-in-out infinite alternate;
}
.scn-juliet-misunderstands .shadow-sway {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  filter: blur(10px);
  animation: jm-shadow 6s ease-in-out infinite alternate;
}

@keyframes jm-bg { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.7; } }
@keyframes jm-chest { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.01) translateY(-2px); } 100% { transform: scale(0.99) translateY(1px); } }
@keyframes jm-wound { 0% { box-shadow: 0 0 10px #5e1a1d; transform: rotate(-10deg) scale(1); } 50% { box-shadow: 0 0 25px #8a2a1a; transform: rotate(-8deg) scale(1.05); } 100% { box-shadow: 0 0 12px #5e1a1d; transform: rotate(-12deg) scale(0.95); } }
@keyframes jm-hand { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-2deg); } 50% { transform: translateX(-2px) rotate(1deg); } 75% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes jm-candle { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.1); opacity:1; } 100% { transform: scaleY(0.9); opacity:0.85; } }
@keyframes jm-glow { 0% { transform: scale(1); opacity:0.5; } 50% { transform: scale(1.2); opacity:0.8; } 100% { transform: scale(0.9); opacity:0.4; } }
@keyframes jm-shadow { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-5px) scaleX(1.02); } 100% { transform: translateY(2px) scaleX(0.98); } }

/* Scene: nurse-clarifies – tense, dim interior, two figures facing */
.scn-nurse-clarifies {
  background: 
    linear-gradient(180deg, #0e0a12 0%, #1c142a 40%, #2a1e3a 70%, #0e0812 100%),
    radial-gradient(ellipse at 50% 80%, #2a1e3a 0%, transparent 70%);
}
.scn-nurse-clarifies .bg-room {
  position: absolute; inset: 0; background: radial-gradient(circle at 40% 30%, #1c142a 0%, #0e0812 100%);
  animation: nc-bg 15s ease-in-out infinite alternate;
}
.scn-nurse-clarifies .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1222 0%, #0e0812 100%);
  border-radius: 20% 80% 0 0;
  animation: nc-floor 8s ease-in-out infinite alternate;
}
.scn-nurse-clarifies .nurse-silhouette {
  position: absolute; bottom: 20%; left: 15%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #1a1222 0%, #0a0612 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: nc-nurse 5s ease-in-out infinite;
}
.scn-nurse-clarifies .juliet-silhouette {
  position: absolute; bottom: 20%; right: 15%; width: 16%; height: 42%;
  background: linear-gradient(180deg, #1a1222 0%, #0a0612 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: nc-juliet 6s ease-in-out infinite;
}
.scn-nurse-clarifies .candle-center {
  position: absolute; bottom: 30%; left: 50%; width: 3%; height: 7%;
  background: linear-gradient(180deg, #e0b060 0%, #a07030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px #a07030, 0 0 40px rgba(160,112,48,0.5);
  animation: nc-candle 0.6s ease-in-out infinite alternate;
}
.scn-nurse-clarifies .shadow-sharp {
  position: absolute; bottom: 18%; left: 10%; width: 35%; height: 15%;
  background: linear-gradient(90deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(4px);
  animation: nc-shadow 4s ease-in-out infinite alternate;
}
.scn-nurse-clarifies .drape {
  position: absolute; top: 5%; left: 0; width: 30%; height: 90%;
  background: linear-gradient(180deg, #2a1e3a 0%, #1a1222 100%);
  border-radius: 0 40% 40% 0;
  filter: blur(2px);
  animation: nc-drape 12s ease-in-out infinite alternate;
}

@keyframes nc-bg { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes nc-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes nc-nurse { 0% { transform: rotate(0deg); } 30% { transform: rotate(3deg); } 60% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes nc-juliet { 0% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(-4deg) scale(0.98); } 50% { transform: rotate(2deg) scale(1.02); } 75% { transform: rotate(-2deg) scale(0.99); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes nc-candle { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.15); opacity:1; } 100% { transform: scaleY(0.85); opacity:0.8; } }
@keyframes nc-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.1); } 100% { transform: translateX(-3px) scaleX(0.9); } }
@keyframes nc-drape { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(2deg); } 100% { transform: translateX(4px) rotate(-1deg); } }

/* Scene: juliet-berates-nurse – tense, dim interior, archway cutaway */
.scn-juliet-berates-nurse {
  background: 
    linear-gradient(180deg, #12101a 0%, #1c1828 40%, #2a2436 70%, #12101a 100%),
    radial-gradient(ellipse at 50% 60%, #2a2436 0%, transparent 60%);
}
.scn-juliet-berates-nurse .bg-dark {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, #1c1828 0%, #0e0c16 100%);
  animation: jb-bg 18s ease-in-out infinite alternate;
}
.scn-juliet-berates-nurse .pillar-left {
  position: absolute; bottom: 0; left: 18%; width: 6%; height: 85%;
  background: linear-gradient(180deg, #3a2c44 0%, #1e1828 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 2px 0 20px rgba(0,0,0,0.5);
  animation: jb-pillar 10s ease-in-out infinite alternate;
}
.scn-juliet-berates-nurse .pillar-right {
  position: absolute; bottom: 0; right: 18%; width: 6%; height: 85%;
  background: linear-gradient(180deg, #3a2c44 0%, #1e1828 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -2px 0 20px rgba(0,0,0,0.5);
  animation: jb-pillar 10s ease-in-out infinite alternate-reverse;
}
.scn-juliet-berates-nurse .arch-top {
  position: absolute; top: 5%; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(180deg, #3a2c44 0%, #2a1e32 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.6);
  animation: jb-arch 12s ease-in-out infinite alternate;
}
.scn-juliet-berates-nurse .juliet-profile {
  position: absolute; bottom: 25%; left: 28%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #2a1e32 0%, #1a1220 100%);
  border-radius: 60% 30% 20% 40% / 50% 40% 30% 50%;
  transform: rotate(5deg);
  animation: jb-juliet 3s ease-in-out infinite;
}
.scn-juliet-berates-nurse .nurse-retreat {
  position: absolute; bottom: 20%; right: 28%; width: 16%; height: 38%;
  background: linear-gradient(180deg, #2a1e32 0%, #1a1220 100%);
  border-radius: 40% 60% 40% 20% / 50% 50% 20% 40%;
  transform: rotate(-5deg) scale(0.95);
  animation: jb-nurse 4s ease-in-out infinite;
}
.scn-juliet-berates-nurse .hand-accuse {
  position: absolute; bottom: 40%; left: 32%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #3a2c44 0%, #1e1828 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: jb-hand 2s ease-in-out infinite;
}
.scn-juliet-berates-nurse .light-dagger {
  position: absolute; bottom: 35%; left: 38%; width: 6%; height: 30%;
  background: linear-gradient(180deg, rgba(200,160,100,0.4) 0%, transparent 100%);
  transform: rotate(20deg);
  animation: jb-dagger 5s ease-in-out infinite alternate;
}

@keyframes jb-bg { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.75; } }
@keyframes jb-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(0.99); } }
@keyframes jb-arch { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }
@keyframes jb-juliet { 0% { transform: rotate(5deg) translateX(0); } 30% { transform: rotate(8deg) translateX(2px); } 60% { transform: rotate(2deg) translateX(-1px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes jb-nurse { 0% { transform: rotate(-5deg) scale(0.95) translateX(0); } 25% { transform: rotate(-8deg) scale(0.92) translateX(4px); } 50% { transform: rotate(-2deg) scale(0.98) translateX(-2px); } 75% { transform: rotate(-6deg) scale(0.93) translateX(2px); } 100% { transform: rotate(-5deg) scale(0.95) translateX(0); } }
@keyframes jb-hand { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-10deg) translateX(-3px); } 50% { transform: rotate(5deg) translateX(2px); } 75% { transform: rotate(-5deg) translateX(-1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes jb-dagger { 0% { transform: rotate(20deg) scaleY(1); opacity:0.6; } 50% { transform: rotate(25deg) scaleY(1.1); opacity:0.9; } 100% { transform: rotate(15deg) scaleY(0.9); opacity:0.5; } }

/* Scene: juliet-comforts-nurse – tense, dim interior, embrace close-up */
.scn-juliet-comforts-nurse {
  background: 
    linear-gradient(180deg, #120e16 0%, #1c1824 40%, #2a2432 70%, #120e16 100%),
    radial-gradient(ellipse at 50% 50%, #2a2432 0%, transparent 70%);
}
.scn-juliet-comforts-nurse .bg-enclosing {
  position: absolute; inset: 0; background: radial-gradient(circle at 50% 40%, #1c1824 0%, #0c0a10 100%);
  animation: jcn-bg 20s ease-in-out infinite alternate;
}
.scn-juliet-comforts-nurse .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #2a2432 0%, #1a1420 100%);
  border-radius: 40% 50% 30% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jcn-left 6s ease-in-out infinite;
}
.scn-juliet-comforts-nurse .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #2a2432 0%, #1a1420 100%);
  border-radius: 50% 40% 40% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jcn-right 7s ease-in-out infinite;
}
.scn-juliet-comforts-nurse .embrace-arms {
  position: absolute; bottom: 35%; left: 35%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #3a2c44 0%, #1e1828 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: jcn-arms 5s ease-in-out infinite;
}
.scn-juliet-comforts-nurse .cords-hang {
  position: absolute; bottom: 10%; left: 40%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 20%;
  box-shadow: 4px 0 4px rgba(0,0,0,0.3);
  animation: jcn-cords 8s ease-in-out infinite alternate;
}
.scn-juliet-comforts-nurse .tear-drop {
  position: absolute; bottom: 30%; right: 38%; width: 4%; height: 6%;
  background: radial-gradient(circle at 50% 30%, #8090b0 0%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(1px);
  animation: jcn-tear 3s ease-in-out infinite;
}
.scn-juliet-comforts-nurse .soft-glow {
  position: absolute; bottom: 30%; left: 45%; width: 15%; height: 15%;
  background: radial-gradient(circle, rgba(160,130,100,0.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: jcn-glow 4s ease-in-out infinite alternate;
}

@keyframes jcn-bg { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes jcn-left { 0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(5deg) translateX(3px); } 60% { transform: rotate(-3deg) translateX(-2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes jcn-right { 0% { transform: rotate(0deg) translateX(0); } 20% { transform: rotate(-4deg) translateX(-4px); } 40% { transform: rotate(2deg) translateX(2px); } 60% { transform: rotate(-2deg) translateX(-1px); } 80% { transform: rotate(1deg) translateX(1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes jcn-arms { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.03); } 100% { transform: rotate(-7deg) scale(0.97); } }
@keyframes jcn-cords { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(3px); } }
@keyframes jcn-tear { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-8px) scale(1.2); opacity:0.9; } 100% { transform: translateY(4px) scale(0.8); opacity:0.3; } }
@keyframes jcn-glow { 0% { transform: scale(1); opacity:0.4; } 50% { transform: scale(1.3); opacity:0.7; } 100% { transform: scale(0.8); opacity:0.2; } }

.scn-nurse-reminisces {
  background: linear-gradient(180deg, #f5e6d3 0%, #e8d5be 50%, #d4b59a 100%), radial-gradient(ellipse at 50% 30%, #fff8e7 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-nurse-reminisces .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #f5e6d3 0%, #e4d0b8 100%); }
.scn-nurse-reminisces .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #d4b59a 0%, #c4a585 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,0.1); }
.scn-nurse-reminisces .window { position: absolute; top: 10%; right: 15%; width: 80px; height: 100px; background: linear-gradient(180deg, #fff4d6 0%, #fde6b4 100%); border: 4px solid #b8a080; border-radius: 8px; box-shadow: inset 0 0 20px rgba(255,244,214,0.8), 0 0 30px rgba(255,244,214,0.3); animation: nr-window 12s ease-in-out infinite alternate; }
.scn-nurse-reminisces .nurse { position: absolute; bottom: 20%; left: 30%; width: 40px; height: 80px; background: linear-gradient(180deg, #4a3b2c 0%, #3a2c1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nr-nurse 4s ease-in-out infinite; }
.scn-nurse-reminisces .baby { position: absolute; bottom: 22%; left: 48%; width: 20px; height: 30px; background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nr-baby 3s ease-in-out infinite alternate; }
.scn-nurse-reminisces .cradle { position: absolute; bottom: 20%; left: 44%; width: 50px; height: 25px; background: linear-gradient(180deg, #b89a7a 0%, #9a7a5a 100%); border-radius: 20% 20% 30% 30% / 30% 30% 50% 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); transform-origin: bottom center; animation: nr-cradle 6s ease-in-out infinite; }
.scn-nurse-reminisces .toy { position: absolute; bottom: 25%; left: 60%; width: 12px; height: 12px; background: #c8553d; border-radius: 50%; box-shadow: 0 0 0 2px #a0461a; animation: nr-toy 2s ease-in-out infinite; }
.scn-nurse-reminisces .sunbeam { position: absolute; top: 5%; right: 20%; width: 60px; height: 200px; background: linear-gradient(180deg, rgba(255,244,214,0.4) 0%, transparent 100%); transform: rotate(15deg); animation: nr-sunbeam 8s ease-in-out infinite alternate; }
@keyframes nr-window { 0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(255,244,214,0.6), 0 0 30px rgba(255,244,214,0.2); } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,244,214,0.9), 0 0 50px rgba(255,244,214,0.4); } 100% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(255,244,214,0.7), 0 0 30px rgba(255,244,214,0.3); } }
@keyframes nr-nurse { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 75% { transform: translateY(-6px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nr-baby { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes nr-cradle { 0% { transform: rotate(-3deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-3deg); } }
@keyframes nr-toy { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-6px) rotate(90deg); } 50% { transform: translateY(-2px) rotate(180deg); } 75% { transform: translateY(-8px) rotate(270deg); } 100% { transform: translateY(0) rotate(360deg); } }
@keyframes nr-sunbeam { 0% { transform: rotate(10deg) scaleX(1); opacity: 0.5; } 50% { transform: rotate(20deg) scaleX(1.2); opacity: 0.8; } 100% { transform: rotate(12deg) scaleX(0.9); opacity: 0.6; } }

.scn-lady-capulet-brings-paris {
  background: linear-gradient(180deg, #fff8e7 0%, #f0e4d0 50%, #e0ceb8 100%), radial-gradient(ellipse at 50% 40%, #fff8e7 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-lady-capulet-brings-paris .wall { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #fff8e7 0%, #f5ead6 100%); }
.scn-lady-capulet-brings-paris .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #e0ceb8 0%, #c8b49c 100%); box-shadow: inset 0 8px 15px rgba(0,0,0,0.08); }
.scn-lady-capulet-brings-paris .curtain { position: absolute; top: 0; left: 10%; width: 40%; height: 65%; background: linear-gradient(180deg, #d4e8f0 0%, #b8d0da 100%); border-radius: 0 0 50% 50%; opacity: 0.7; animation: lcb-curtain 20s ease-in-out infinite alternate; }
.scn-lady-capulet-brings-paris .lady-capulet { position: absolute; bottom: 22%; left: 25%; width: 35px; height: 80px; background: linear-gradient(180deg, #4a3b5e 0%, #3a2d4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lcb-lady 7s ease-in-out infinite; }
.scn-lady-capulet-brings-paris .nurse { position: absolute; bottom: 20%; left: 42%; width: 40px; height: 75px; background: linear-gradient(180deg, #5e4a3a 0%, #4a382a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lcb-nurse 8s ease-in-out infinite alternate; }
.scn-lady-capulet-brings-paris .fan { position: absolute; bottom: 28%; left: 50%; width: 20px; height: 30px; background: linear-gradient(180deg, #b87878 0%, #906060 100%); border-radius: 50% 30% 30% 50%; transform: rotate(-15deg); transform-origin: bottom right; animation: lcb-fan 4s ease-in-out infinite; }
.scn-lady-capulet-brings-paris .rose { position: absolute; bottom: 25%; right: 20%; width: 15px; height: 15px; background: radial-gradient(circle at 30% 30%, #b87878 0%, #906060 70%); border-radius: 50%; box-shadow: 0 0 10px rgba(184,120,120,0.5); animation: lcb-rose 6s ease-in-out infinite alternate; }
@keyframes lcb-curtain { 0% { opacity: 0.5; transform: translateY(0) scaleY(1); } 50% { opacity: 0.8; transform: translateY(-5px) scaleY(1.05); } 100% { opacity: 0.6; transform: translateY(2px) scaleY(0.98); } }
@keyframes lcb-lady { 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 lcb-nurse { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lcb-fan { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } 100% { transform: rotate(-10deg) scale(0.95); } }
@keyframes lcb-rose { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 10px rgba(184,120,120,0.4); } 50% { transform: scale(1.15) translateY(-4px); box-shadow: 0 0 20px rgba(184,120,120,0.7); } 100% { transform: scale(1.05) translateY(-2px); box-shadow: 0 0 15px rgba(184,120,120,0.5); } }

.scn-lady-capulet-talks-marriage {
  background: linear-gradient(180deg, #fff4e0 0%, #f5e6d3 50%, #e8d5be 100%), radial-gradient(ellipse at 50% 30%, #fffce8 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-lady-capulet-talks-marriage .wall { position: absolute; inset: 0 0 32% 0; background: linear-gradient(180deg, #fff4e0 0%, #f0dcc4 100%); }
.scn-lady-capulet-talks-marriage .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 32%; background: linear-gradient(180deg, #e8d5be 0%, #d4b59a 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,0.08); }
.scn-lady-capulet-talks-marriage .window { position: absolute; top: 5%; left: 50%; width: 90px; height: 110px; transform: translateX(-50%); background: linear-gradient(180deg, #fff4d6 0%, #fdebb8 100%); border: 6px solid #b8a080; border-radius: 8px; box-shadow: inset 0 0 25px rgba(255,244,214,0.8), 0 0 40px rgba(255,244,214,0.2); animation: lct-window 14s ease-in-out infinite alternate; }
.scn-lady-capulet-talks-marriage .lady-capulet { position: absolute; bottom: 20%; left: 25%; width: 36px; height: 82px; background: linear-gradient(180deg, #4a3b5e 0%, #3a2d4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lct-lady 9s ease-in-out infinite; }
.scn-lady-capulet-talks-marriage .nurse { position: absolute; bottom: 18%; left: 42%; width: 40px; height: 76px; background: linear-gradient(180deg, #5e4a3a 0%, #4a382a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lct-nurse 10s ease-in-out infinite alternate; }
.scn-lady-capulet-talks-marriage .juliet { position: absolute; bottom: 20%; left: 55%; width: 32px; height: 74px; background: linear-gradient(180deg, #6b5a7a 0%, #5a4a6a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lct-juliet 8s ease-in-out infinite; }
.scn-lady-capulet-talks-marriage .book { position: absolute; bottom: 22%; left: 48%; width: 18px; height: 22px; background: linear-gradient(180deg, #b8a080 0%, #9a8262 100%); border-radius: 4px; box-shadow: -2px 2px 4px rgba(0,0,0,0.2); transform: rotate(-10deg); animation: lct-book 6s ease-in-out infinite alternate; }
.scn-lady-capulet-talks-marriage .flower-pot { position: absolute; bottom: 18%; right: 15%; width: 24px; height: 28px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 6px 6px 10px 10px; animation: lct-pot 5s ease-in-out infinite; }
@keyframes lct-window { 0% { opacity: 0.75; box-shadow: inset 0 0 25px rgba(255,244,214,0.7), 0 0 40px rgba(255,244,214,0.15); } 50% { opacity: 1; box-shadow: inset 0 0 35px rgba(255,244,214,1), 0 0 60px rgba(255,244,214,0.35); } 100% { opacity: 0.85; box-shadow: inset 0 0 25px rgba(255,244,214,0.8), 0 0 45px rgba(255,244,214,0.2); } }
@keyframes lct-lady { 0% { transform: translateY(0); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0); } }
@keyframes lct-nurse { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lct-juliet { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-1px) rotate(1deg); } 66% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lct-book { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } 100% { transform: rotate(-8deg) scale(0.98); } }
@keyframes lct-pot { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }

.scn-nurse-praises-paris {
  background: linear-gradient(180deg, #f9d7a3 0%, #e8b878 50%, #d4a06a 100%), radial-gradient(ellipse at 50% 30%, #fdebb8 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-nurse-praises-paris .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #f9d7a3 0%, #eac48a 100%); }
.scn-nurse-praises-paris .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #d4a06a 0%, #c08a54 100%); box-shadow: inset 0 8px 15px rgba(0,0,0,0.1); }
.scn-nurse-praises-paris .window { position: absolute; top: 8%; right: 12%; width: 70px; height: 90px; background: linear-gradient(180deg, #fff4d6 0%, #fde6b4 100%); border: 4px solid #b08050; border-radius: 8px; box-shadow: inset 0 0 20px rgba(255,244,214,0.8), 0 0 30px rgba(255,244,214,0.3); animation: np-window 12s ease-in-out infinite alternate; }
.scn-nurse-praises-paris .nurse { position: absolute; bottom: 18%; left: 28%; width: 40px; height: 78px; background: linear-gradient(180deg, #5e4a3a 0%, #4a382a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: np-nurse 7s ease-in-out infinite; }
.scn-nurse-praises-paris .juliet { position: absolute; bottom: 20%; left: 45%; width: 34px; height: 76px; background: linear-gradient(180deg, #6b5a7a 0%, #5a4a6a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: np-juliet 9s ease-in-out infinite alternate; }
.scn-nurse-praises-paris .rose { position: absolute; bottom: 25%; left: 50%; width: 30px; height: 30px; background: radial-gradient(circle at 30% 30%, #c8553d 0%, #a0461a 70%); border-radius: 50%; box-shadow: 0 0 25px 8px rgba(200,85,61,0.6), 0 0 50px 15px rgba(200,85,61,0.3); animation: np-rose 5s ease-in-out infinite; }
.scn-nurse-praises-paris .glow { position: absolute; bottom: 22%; left: 50%; width: 60px; height: 60px; transform: translate(-50%, -50%); background: radial-gradient(circle, rgba(200,85,61,0.2) 0%, transparent 70%); border-radius: 50%; animation: np-glow 4s ease-in-out infinite alternate; }
.scn-nurse-praises-paris .petal { position: absolute; bottom: 30%; left: 52%; width: 8px; height: 12px; background: #c8553d; border-radius: 50% 20% 20% 50%; transform: rotate(20deg); animation: np-petal 3s ease-in-out infinite; }
@keyframes np-window { 0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(255,244,214,0.7), 0 0 30px rgba(255,244,214,0.2); } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,244,214,1), 0 0 50px rgba(255,244,214,0.4); } 100% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(255,244,214,0.8), 0 0 35px rgba(255,244,214,0.3); } }
@keyframes np-nurse { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes np-juliet { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes np-rose { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 25px 8px rgba(200,85,61,0.5), 0 0 50px 15px rgba(200,85,61,0.2); } 25% { transform: scale(1.1) rotate(5deg); box-shadow: 0 0 30px 10px rgba(200,85,61,0.7), 0 0 60px 20px rgba(200,85,61,0.3); } 50% { transform: scale(1.05) rotate(-5deg); box-shadow: 0 0 35px 12px rgba(200,85,61,0.6), 0 0 70px 25px rgba(200,85,61,0.25); } 75% { transform: scale(1.15) rotate(3deg); box-shadow: 0 0 40px 15px rgba(200,85,61,0.8), 0 0 80px 30px rgba(200,85,61,0.4); } 100% { transform: scale(1) rotate(0deg); box-shadow: 0 0 25px 8px rgba(200,85,61,0.5), 0 0 50px 15px rgba(200,85,61,0.2); } }
@keyframes np-glow { 0% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); } 50% { opacity: 0.8; transform: translate(-50%, -50%) scale(1.2); } 100% { opacity: 0.6; transform: translate(-50%, -50%) scale(0.9); } }
@keyframes np-petal { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(40deg) translateY(-8px); } 100% { transform: rotate(25deg) translateY(0); } }

.scn-nurse-finds-juliet-dead {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 40%, #2c2244 100%), radial-gradient(ellipse at 50% 0, #fdd5b5 0%, transparent 70%);
}
.scn-nurse-finds-juliet-dead .bg-dawn {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(0deg, #fdd5b533 0%, transparent 100%);
  animation: nj-dawn 12s ease-in-out infinite alternate;
}
.scn-nurse-finds-juliet-dead .bed {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 -4px 8px rgba(0,0,0,.6);
  animation: nj-bed 6s ease-in-out infinite;
}
.scn-nurse-finds-juliet-dead .juliet {
  position: absolute; bottom: 18%; left: 38%; width: 24%; height: 12%;
  background: linear-gradient(180deg, #d5c5b0 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: nj-juliet 8s ease-in-out infinite;
}
.scn-nurse-finds-juliet-dead .nurse {
  position: absolute; bottom: 15%; right: 10%; width: 18%; height: 30%;
  background: linear-gradient(180deg, #b2a090 0%, #6a5a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nj-nurse 9s ease-in-out infinite;
}
.scn-nurse-finds-juliet-dead .window {
  position: absolute; top: 12%; left: 8%; width: 20%; height: 28%;
  background: linear-gradient(180deg, #fdd5b5 0%, transparent 100%);
  border-radius: 4% 4% 4% 4% / 2% 2% 2% 2%;
  box-shadow: 0 0 30px 10px #fdd5b5, 0 0 60px 20px rgba(253,213,181,.4);
  animation: nj-window 7s ease-in-out infinite alternate;
}
.scn-nurse-finds-juliet-dead .candle {
  position: absolute; bottom: 40%; left: 30%; width: 4%; height: 6%;
  background: radial-gradient(circle, #ffd700 0%, #cc8800 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px #ffd700;
  animation: nj-candle 3s ease-in-out infinite;
}
.scn-nurse-finds-juliet-dead .curtain {
  position: absolute; top: 0; right: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 0 0 0 50% / 0 0 0 40%;
  filter: blur(2px);
  animation: nj-curtain 15s ease-in-out infinite;
}
@keyframes nj-dawn {
  0% { opacity: .2; }
  50% { opacity: .6; }
  100% { opacity: .3; }
}
@keyframes nj-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes nj-juliet {
  0% { transform: rotate(0deg) scale(1); }
  33% { transform: rotate(1deg) scale(1.02); }
  66% { transform: rotate(-1deg) scale(0.98); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes nj-nurse {
  0% { transform: translateX(100%) translateY(0) rotate(-5deg); }
  30% { transform: translateX(60%) translateY(-4px) rotate(2deg); }
  60% { transform: translateX(30%) translateY(0) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes nj-window {
  0% { opacity: .4; box-shadow: 0 0 20px 10px #fdd5b5; }
  50% { opacity: .8; box-shadow: 0 0 50px 20px #fdd5b5; }
  100% { opacity: .5; box-shadow: 0 0 30px 15px #fdd5b5; }
}
@keyframes nj-candle {
  0% { transform: scale(1); box-shadow: 0 0 10px #ffd700; }
  50% { transform: scale(1.2); box-shadow: 0 0 30px #ffd700; }
  100% { transform: scale(0.9); box-shadow: 0 0 15px #ffd700; }
}
@keyframes nj-curtain {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}

.scn-capulet-finds-juliet {
  background: linear-gradient(180deg, #0a0a2e 0%, #1f1a3a 40%, #3a2a5a 100%), radial-gradient(ellipse at 50% 0, #e8cfa0 0%, transparent 70%);
}
.scn-capulet-finds-juliet .bg-dawn {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8cfa066 0%, transparent 100%);
  animation: cj-dawnlight 14s ease-in-out infinite;
}
.scn-capulet-finds-juliet .door-arch {
  position: absolute; bottom: 0; left: 10%; width: 30%; height: 80%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  animation: cj-door 10s ease-in-out infinite;
}
.scn-capulet-finds-juliet .bed {
  position: absolute; bottom: 8%; left: 35%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1000 100%);
  border-radius: 10% 10% 4% 4%; box-shadow: 0 -6px 12px rgba(0,0,0,.7);
}
.scn-capulet-finds-juliet .juliet {
  position: absolute; bottom: 14%; left: 40%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #c8b8a0 0%, #907060 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: cj-juliet 9s ease-in-out infinite;
}
.scn-capulet-finds-juliet .lady-capulet {
  position: absolute; bottom: 12%; left: 5%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #a09080 0%, #5a4a3a 100%);
  border-radius: 45% 40% 35% 35% / 55% 50% 45% 45%;
  transform-origin: bottom center;
  animation: cj-lady 8s ease-in-out infinite;
}
.scn-capulet-finds-juliet .capulet {
  position: absolute; bottom: 10%; left: 50%; width: 18%; height: 38%;
  background: linear-gradient(180deg, #887060 0%, #3a2a1a 100%);
  border-radius: 40% 45% 30% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cj-capulet 10s ease-in-out infinite;
}
.scn-capulet-finds-juliet .shadow-beam {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: linear-gradient(135deg, transparent 50%, rgba(0,0,0,.5) 100%);
  animation: cj-shadow 16s ease-in-out infinite;
}
@keyframes cj-dawnlight {
  0% { opacity: .2; }
  50% { opacity: .5; }
  100% { opacity: .3; }
}
@keyframes cj-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(1); }
}
@keyframes cj-juliet {
  0% { transform: rotate(0deg) scale(1); }
  33% { transform: rotate(2deg) scale(1.02); }
  66% { transform: rotate(-2deg) scale(0.98); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes cj-lady {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(10px) rotate(5deg); }
  66% { transform: translateX(-5px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cj-capulet {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cj-shadow {
  0% { opacity: .6; }
  50% { opacity: .9; }
  100% { opacity: .6; }
}

.scn-friar-consoles-family {
  background: linear-gradient(180deg, #0a0a2e 0%, #1f1a3a 40%, #3a2a5a 100%), radial-gradient(ellipse at 50% 100%, #c8a070 0%, transparent 70%);
}
.scn-friar-consoles-family .bg-chapel {
  position: absolute; inset: 0 0 10% 0;
  background: radial-gradient(ellipse at 50% 0, #c8a07044 0%, transparent 100%);
  animation: fc-ambient 20s ease-in-out infinite;
}
.scn-friar-consoles-family .altar {
  position: absolute; bottom: 5%; left: 30%; right: 30%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 6% 6% 4% 4% / 10% 10% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
}
.scn-friar-consoles-family .juliet-body {
  position: absolute; bottom: 18%; left: 20%; width: 25%; height: 8%;
  background: linear-gradient(180deg, #c8b8a0 0%, #907060 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: fc-juliet 12s ease-in-out infinite;
}
.scn-friar-consoles-family .friar {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #b8a090 0%, #6a5a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fc-friar 7s ease-in-out infinite;
}
.scn-friar-consoles-family .paris {
  position: absolute; bottom: 12%; left: 8%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #a09080 0%, #4a3a2a 100%);
  border-radius: 45% 40% 35% 35% / 55% 50% 45% 45%;
  transform-origin: bottom center;
  animation: fc-paris 9s ease-in-out infinite;
}
.scn-friar-consoles-family .musician1 {
  position: absolute; bottom: 8%; right: 15%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #7a6a5a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: fc-mus1 11s ease-in-out infinite;
}
.scn-friar-consoles-family .musician2 {
  position: absolute; bottom: 10%; right: 5%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: fc-mus2 13s ease-in-out infinite;
}
.scn-friar-consoles-family .candle {
  position: absolute; bottom: 30%; left: 35%; width: 3%; height: 5%;
  background: radial-gradient(circle, #ffd700 0%, #cc8800 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #ffd700;
  animation: fc-candle 2.5s ease-in-out infinite;
}
@keyframes fc-ambient {
  0% { opacity: .2; }
  50% { opacity: .6; }
  100% { opacity: .3; }
}
@keyframes fc-juliet {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(-2deg) scale(1.03); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes fc-friar {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(5deg); }
  50% { transform: translateY(0) rotate(-5deg); }
  75% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fc-paris {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(4deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fc-mus1 {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.05); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes fc-mus2 {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(-10deg) scale(1.05); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes fc-candle {
  0% { transform: scale(1); box-shadow: 0 0 10px #ffd700; }
  50% { transform: scale(1.3); box-shadow: 0 0 30px #ffd700; }
  100% { transform: scale(0.9); box-shadow: 0 0 15px #ffd700; }
}

.scn-family-laments {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 30%, #2a1a3e 100%), radial-gradient(ellipse at 50% 0, #e0c090 0%, transparent 70%);
}
.scn-family-laments .bg-dark {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #e0c09033 0%, transparent 100%);
  animation: fl-dark 18s ease-in-out infinite;
}
.scn-family-laments .bed {
  position: absolute; bottom: 5%; left: 20%; right: 20%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1000 100%);
  border-radius: 10% 10% 4% 4%; box-shadow: 0 -8px 12px rgba(0,0,0,.8);
  animation: fl-bed 12s ease-in-out infinite;
}
.scn-family-laments .juliet {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #c8b8a0 0%, #907060 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: fl-juliet 9s ease-in-out infinite;
}
.scn-family-laments .nurse-fig {
  position: absolute; bottom: 10%; left: 8%; width: 16%; height: 32%;
  background: linear-gradient(180deg, #b2a090 0%, #6a5a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fl-nurse 8s ease-in-out infinite;
}
.scn-family-laments .lady-fig {
  position: absolute; bottom: 12%; left: 30%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #a09080 0%, #5a4a3a 100%);
  border-radius: 45% 40% 35% 35% / 55% 50% 45% 45%;
  transform-origin: bottom center;
  animation: fl-lady 10s ease-in-out infinite;
}
.scn-family-laments .capulet-fig {
  position: absolute; bottom: 8%; left: 55%; width: 18%; height: 36%;
  background: linear-gradient(180deg, #887060 0%, #3a2a1a 100%);
  border-radius: 40% 45% 30% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fl-capulet 11s ease-in-out infinite;
}
.scn-family-laments .veil {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.3) 0%, rgba(0,0,0,.6) 80%);
  animation: fl-veil 22s ease-in-out infinite alternate;
}
@keyframes fl-dark {
  0% { opacity: .3; }
  50% { opacity: .6; }
  100% { opacity: .3; }
}
@keyframes fl-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes fl-juliet {
  0% { transform: rotate(0deg) scale(1); }
  33% { transform: rotate(1.5deg) scale(1.02); }
  66% { transform: rotate(-1.5deg) scale(0.98); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes fl-nurse {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(6deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fl-lady {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-6px) rotate(-4deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fl-capulet {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.03); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes fl-veil {
  0% { opacity: .4; }
  100% { opacity: .8; }
}

.scn-montague-asks-benvolio { background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 100%), radial-gradient(ellipse at 50% 30%, #fff8dc 0%, transparent 60%); }
.scn-montague-asks-benvolio .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b0d0e0 0%, transparent 100%); animation: mab-sky 12s ease-in-out infinite alternate; }
.scn-montague-asks-benvolio .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #c9a96e 0%, #8b6914 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-montague-asks-benvolio .building-left { position:absolute; bottom:30%; left:5%; width:25%; height:50%; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-montague-asks-benvolio .archway { position:absolute; bottom:30%; left:38%; width:20%; height:50%; background: #cd853f; border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: mab-arch 15s ease-in-out infinite alternate; }
.scn-montague-asks-benvolio .figure-montague { position:absolute; bottom:28%; left:30%; width:8%; height:30%; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mab-figure1 6s ease-in-out infinite; }
.scn-montague-asks-benvolio .figure-benvolio { position:absolute; bottom:28%; left:44%; width:7%; height:28%; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mab-figure2 6s ease-in-out infinite 1s; }
.scn-montague-asks-benvolio .sun { position:absolute; top:5%; right:10%; width:12%; padding-bottom:12%; background: radial-gradient(circle, #fff7c0 0%, #ffd700 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px #ffd700; animation: mab-sun 20s ease-in-out infinite alternate; }
@keyframes mab-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes mab-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes mab-figure1 { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes mab-figure2 { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mab-sun { 0% { transform: scale(0.95) } 50% { transform: scale(1.05) } 100% { transform: scale(0.98) } }

.scn-lady-montague-asks-romeo { background: linear-gradient(180deg, #6b4226 0%, #3b1f0b 100%), radial-gradient(ellipse at 50% 20%, #c78a4a 0%, transparent 70%); }
.scn-lady-montague-asks-romeo .wall-bg { position:absolute; inset:0; background: linear-gradient(90deg, #4a2c1a 0%, #6b4226 50%, #4a2c1a 100%); }
.scn-lady-montague-asks-romeo .window-frame { position:absolute; top:7%; left:35%; width:30%; height:60%; background: #1a0d06; border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-lady-montague-asks-romeo .curtain-left { position:absolute; top:7%; left:25%; width:10%; height:70%; background: linear-gradient(90deg, #800000 0%, #a02020 100%); border-radius: 50% 0 0 50% / 100% 0 0 100%; animation: lmr-curtain 8s ease-in-out infinite alternate; }
.scn-lady-montague-asks-romeo .curtain-right { position:absolute; top:7%; right:25%; width:10%; height:70%; background: linear-gradient(90deg, #a02020 0%, #800000 100%); border-radius: 0 50% 50% 0 / 0 100% 100% 0; animation: lmr-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-lady-montague-asks-romeo .figure-lady { position:absolute; bottom:13%; left:45%; width:8%; height:35%; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lmr-lady 6s ease-in-out infinite; }
.scn-lady-montague-asks-romeo .figure-romeo { position:absolute; bottom:13%; left:55%; width:7%; height:32%; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lmr-romeo 6s ease-in-out infinite 0.5s; }
.scn-lady-montague-asks-romeo .light-beam { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 40% 100%); animation: lmr-light 15s ease-in-out infinite alternate; }
@keyframes lmr-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(10%) } 100% { transform: translateX(0) } }
@keyframes lmr-lady { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes lmr-romeo { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes lmr-light { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }

.scn-benvolio-consults-romeo { background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%), radial-gradient(ellipse at 20% 70%, #ffe4b5 0%, transparent 50%); }
.scn-benvolio-consults-romeo .wall { position:absolute; inset:0; background: linear-gradient(180deg, #c7a252 0%, #b8954a 100%); }
.scn-benvolio-consults-romeo .shadow-left { position:absolute; bottom:0; left:0; width:40%; height:80%; background: radial-gradient(ellipse at 30% 100%, rgba(0,0,0,0.5) 0%, transparent 70%); animation: bcr-shadow 10s ease-in-out infinite alternate; }
.scn-benvolio-consults-romeo .shadow-right { position:absolute; bottom:0; right:0; width:40%; height:80%; background: radial-gradient(ellipse at 70% 100%, rgba(0,0,0,0.5) 0%, transparent 70%); animation: bcr-shadow 10s ease-in-out infinite alternate-reverse; }
.scn-benvolio-consults-romeo .figure-benvolio { position:absolute; bottom:20%; left:35%; width:8%; height:40%; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bcr-fig1 5s ease-in-out infinite; }
.scn-benvolio-consults-romeo .figure-romeo { position:absolute; bottom:20%; left:50%; width:8%; height:38%; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bcr-fig2 5s ease-in-out infinite 0.7s; }
.scn-benvolio-consults-romeo .sunlight-spot { position:absolute; bottom:30%; left:45%; width:10%; height:10%; background: radial-gradient(circle, #fffacd 0%, transparent 100%); animation: bcr-spot 4s ease-in-out infinite alternate; }
.scn-benvolio-consults-romeo .dust { position:absolute; top:20%; left:10%; width:5%; height:5%; background: radial-gradient(circle, rgba(255,255,200,0.3) 0%, transparent 100%); border-radius: 50%; animation: bcr-dust 8s linear infinite; }
@keyframes bcr-shadow { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes bcr-fig1 { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes bcr-fig2 { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bcr-spot { 0% { transform: scale(0.8) opacity(0.5) } 50% { transform: scale(1.2) opacity(1) } 100% { transform: scale(0.9) opacity(0.6) } }
@keyframes bcr-dust { 0% { transform: translateY(0) translateX(0) } 100% { transform: translateY(40px) translateX(20px) opacity(0) } }

.scn-romeo-enters { background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 100%), radial-gradient(ellipse at 70% 30%, #fff8dc 0%, transparent 60%); }
.scn-romeo-enters .sky { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #b0d0e0 0%, transparent 100%); animation: ren-sky 12s ease-in-out infinite alternate; }
.scn-romeo-enters .sun { position:absolute; top:10%; left:70%; width:10%; padding-bottom:10%; background: radial-gradient(circle, #fff7c0 0%, #ffd700 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px #ffd700; animation: ren-sun 20s ease-in-out infinite alternate; }
.scn-romeo-enters .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c9a96e 0%, #8b6914 100%); border-radius: 30% 30% 0 0 / 15% 15% 0 0; }
.scn-romeo-enters .arch { position:absolute; bottom:25%; left:30%; width:40%; height:50%; background: #cd853f; border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.3); animation: ren-arch 14s ease-in-out infinite alternate; }
.scn-romeo-enters .figure-romeo { position:absolute; bottom:22%; left:45%; width:8%; height:35%; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ren-romeo 6s ease-in-out infinite; }
.scn-romeo-enters .figure-benvolio { position:absolute; bottom:22%; left:55%; width:7%; height:32%; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ren-ben 6s ease-in-out infinite 1s; }
.scn-romeo-enters .path { position:absolute; bottom:0; left:35%; width:30%; height:20%; background: linear-gradient(90deg, #b89860 0%, #a08040 50%, #b89860 100%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: ren-path 20s linear infinite; }
@keyframes ren-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes ren-sun { 0% { transform: scale(0.95) } 50% { transform: scale(1.05) } 100% { transform: scale(0.98) } }
@keyframes ren-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes ren-romeo { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes ren-ben { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ren-path { 0% { background-position: 0% 0% } 100% { background-position: 100% 0% } }

/* romeo-declares-love */
.scn-romeo-declares-love { background: linear-gradient(180deg, #0f172a 0%, #1e293b 40%, #0f172a 100%), radial-gradient(ellipse at 50% 0%, #1e293b 0%, transparent 60%); }
.scn-romeo-declares-love .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%); animation: rdl-sky 12s ease-in-out infinite alternate; }
.scn-romeo-declares-love .moon { position:absolute; top:8%; left:65%; width:50px; height:50px; border-radius:50%; background: radial-gradient(circle at 40% 40%, #fdf08a, #fcd34d 40%, #b45309 100%); box-shadow: 0 0 40px 15px #fcd34d, 0 0 80px 30px rgba(252,211,77,.3); animation: rdl-moon 4s ease-in-out infinite alternate; }
.scn-romeo-declares-love .garden-wall { position:absolute; bottom:25%; left:-10%; right:-10%; height:18%; background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-romeo-declares-love .tree { position:absolute; bottom:28%; width:40px; height:90px; background: linear-gradient(180deg, #064e3b 0%, #022c22 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; filter: blur(2px); transform-origin: bottom center; }
.scn-romeo-declares-love .tree.left { left:10%; animation: rdl-sway 8s ease-in-out infinite alternate; }
.scn-romeo-declares-love .tree.right { right:8%; width:50px; height:110px; animation: rdl-sway 10s ease-in-out infinite alternate-reverse; }
.scn-romeo-declares-love .romeo { position:absolute; bottom:24%; left:42%; width:20px; height:40px; background: #0a0f1a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rdl-figure 6s ease-in-out infinite; }
.scn-romeo-declares-love .juliet-balcony { position:absolute; bottom:48%; right:25%; width:50px; height:35px; background: linear-gradient(180deg, #334155 0%, #1e293b 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 15px #0f172a; animation: rdl-breathe 5s ease-in-out infinite; }
@keyframes rdl-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes rdl-moon { 0% { box-shadow: 0 0 30px 10px #fcd34d; opacity:.9 } 50% { box-shadow: 0 0 50px 20px #fcd34d; opacity:1 } 100% { box-shadow: 0 0 35px 12px #fcd34d; opacity:.85 } }
@keyframes rdl-sway { 0% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-4deg) } }
@keyframes rdl-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes rdl-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }

/* juliet-confesses-love */
.scn-juliet-confesses-love { background: linear-gradient(180deg, #020617 0%, #0f172a 50%, #1e293b 100%), radial-gradient(ellipse at 50% 50%, #1e293b 0%, transparent 70%); }
.scn-juliet-confesses-love .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0f172a 80%); }
.scn-juliet-confesses-love .balcony-rail { position:absolute; bottom:50%; left:0; right:0; height:12%; background: linear-gradient(180deg, #475569 0%, #1e293b 100%); border-radius: 20% 20% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-juliet-confesses-love .juliet { position:absolute; bottom:55%; left:48%; width:26px; height:55px; background: linear-gradient(180deg, #e2e8f0 0%, #94a3b8 30%, #0f172a 60%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jcl-breathe 4s ease-in-out infinite; }
.scn-juliet-confesses-love .romeo-shadow { position:absolute; bottom:18%; left:36%; width:32px; height:65px; background: #020617; border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; transform-origin: bottom center; animation: jcl-fidget 7s ease-in-out infinite; }
.scn-juliet-confesses-love .stars { position:absolute; inset:0; background: radial-gradient(2px 2px at 20% 30%, #e2e8f0, transparent), radial-gradient(2px 2px at 80% 10%, #e2e8f0, transparent), radial-gradient(1px 1px at 50% 20%, #e2e8f0, transparent), radial-gradient(1px 1px at 10% 80%, #e2e8f0, transparent); animation: jcl-twinkle 3s ease-in-out infinite alternate; }
.scn-juliet-confesses-love .firefly-1, .scn-juliet-confesses-love .firefly-2 { position:absolute; width:5px; height:5px; background: #fef08a; border-radius:50%; box-shadow: 0 0 12px 6px #fef08a, 0 0 24px 12px rgba(254,240,138,.3); }
.scn-juliet-confesses-love .firefly-1 { bottom:35%; left:25%; animation: jcl-firefly 5s ease-in-out infinite alternate; }
.scn-juliet-confesses-love .firefly-2 { bottom:45%; right:20%; animation: jcl-firefly 6s ease-in-out 2s infinite alternate; }
@keyframes jcl-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) translateY(-2px) } 100% { transform: scaleY(1) } }
@keyframes jcl-fidget { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(4px) rotate(2deg) } 70% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes jcl-twinkle { 0% { opacity:.4 } 50% { opacity:1 } 100% { opacity:.5 } }
@keyframes jcl-firefly { 0% { transform: translate(0, 0) scale(1); opacity:.5 } 50% { transform: translate(-15px, -20px) scale(1.5); opacity:1 } 100% { transform: translate(10px, -10px) scale(.8); opacity:.6 } }

/* romeo-swears-by-moon */
.scn-romeo-swears-by-moon { background: linear-gradient(180deg, #0f172a 0%, #1e293b 100%), radial-gradient(ellipse at 50% 30%, #334155 0%, transparent 60%); }
.scn-romeo-swears-by-moon .night-sky { position:absolute; inset:0; background: linear-gradient(180deg, #1e293b 0%, transparent 100%); animation: rsm-haze 12s ease-in-out infinite alternate; }
.scn-romeo-swears-by-moon .big-moon { position:absolute; top:12%; left:50%; transform: translateX(-50%); width:90px; height:90px; border-radius:50%; background: radial-gradient(circle at 40% 40%, #fdf08a, #fcd34d 40%, #b45309 100%); box-shadow: 0 0 60px 20px #fcd34d, 0 0 120px 40px rgba(252,211,77,.3); animation: rsm-pulse 4s ease-in-out infinite alternate; }
.scn-romeo-swears-by-moon .pillar { position:absolute; bottom:30%; width:18px; height:70%; background: linear-gradient(180deg, #475569 0%, #1e293b 100%); border-radius: 10% 10% 0 0; box-shadow: inset -5px 0 15px rgba(0,0,0,.4); }
.scn-romeo-swears-by-moon .pillar.left { left:18%; }
.scn-romeo-swears-by-moon .pillar.right { right:18%; }
.scn-romeo-swears-by-moon .romeo-sil { position:absolute; bottom:20%; left:24%; width:34px; height:75px; background: #020617; border-radius: 40% 60% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rsm-look-up 6s ease-in-out infinite; }
.scn-romeo-swears-by-moon .juliet-sil { position:absolute; bottom:48%; right:24%; width:28px; height:55px; background: #020617; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rsm-lean 6s ease-in-out infinite; }
.scn-romeo-swears-by-moon .cloud { position:absolute; height:20px; filter: blur(6px); background: rgba(203,213,225,.15); border-radius:50%; }
.scn-romeo-swears-by-moon .cloud.wispy-1 { top:35%; left:-10%; width:120px; animation: rsm-drift 35s linear infinite; }
.scn-romeo-swears-by-moon .cloud.wispy-2 { top:50%; right:-10%; width:80px; height:15px; animation: rsm-drift 45s linear infinite reverse; }
@keyframes rsm-haze { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rsm-pulse { 0% { box-shadow: 0 0 40px 15px #fcd34d; transform: translateX(-50%) scale(.95) } 50% { box-shadow: 0 0 80px 30px #fcd34d; transform: translateX(-50%) scale(1.05) } 100% { box-shadow: 0 0 50px 20px #fcd34d; transform: translateX(-50%) scale(.98) } }
@keyframes rsm-look-up { 0% { transform: translateY(0) rotate(0) } 40% { transform: translateY(-5px) rotate(3deg) } 60% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rsm-lean { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-3px) rotate(-4deg) } 70% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rsm-drift { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

/* juliet-proposes-marriage */
.scn-juliet-proposes-marriage { background: linear-gradient(180deg, #1e1b4b 0%, #312e81 50%, #1e1b4b 100%), radial-gradient(ellipse at 50% 50%, #312e81 0%, transparent 70%); }
.scn-juliet-proposes-marriage .deep-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #1e1b4b 80%); }
.scn-juliet-proposes-marriage .archway { position:absolute; bottom:15%; left:50%; transform: translateX(-50%); width:65%; height:65%; border: 8px solid #475569; border-radius: 50% 50% 0 0 / 30% 30% 0 0; border-bottom: none; box-shadow: inset 0 0 40px rgba(0,0,0,.5), 0 0 30px rgba(71,85,105,.2); animation: jpm-arch-glow 5s ease-in-out infinite alternate; }
.scn-juliet-proposes-marriage .hand-juliet { position:absolute; top:30%; right:32%; width:35px; height:45px; background: radial-gradient(ellipse at 50% 30%, #fda4af 0%, #c8553d 100%); border-radius: 40% 40% 50% 50% / 30% 30% 60% 60%; transform-origin: top center; animation: jpm-reach-down 4s ease-in-out infinite alternate; }
.scn-juliet-proposes-marriage .hand-romeo { position:absolute; bottom:22%; left:32%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 30%, #fda4af 0%, #c8553d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: jpm-reach-up 4s ease-in-out infinite alternate; }
.scn-juliet-proposes-marriage .rose { position:absolute; bottom:45%; left:50%; transform: translateX(-50%); width:14px; height:14px; background: radial-gradient(circle at 40% 40%, #fda4af, #c8553d 60%, #702243 100%); border-radius: 50%; box-shadow: 0 0 20px 10px rgba(200,85,61,.4); animation: jpm-bloom 6s ease-in-out infinite; }
.scn-juliet-proposes-marriage .sparkle-1, .scn-juliet-proposes-marriage .sparkle-2 { position:absolute; width:5px; height:5px; background: #fbbf24; border-radius:50%; box-shadow: 0 0 12px 6px #fbbf24, 0 0 24px 12px rgba(251,191,36,.3); }
.scn-juliet-proposes-marriage .sparkle-1 { bottom:50%; left:45%; animation: jpm-sparkle 3s ease-in-out 1s infinite alternate; }
.scn-juliet-proposes-marriage .sparkle-2 { bottom:55%; right:40%; animation: jpm-sparkle 4s ease-in-out infinite alternate; }
.scn-juliet-proposes-marriage .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, rgba(253,164,175,.15) 0%, transparent 60%); animation: jpm-ambient 5s ease-in-out infinite alternate; }
@keyframes jpm-arch-glow { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,.5), 0 0 20px rgba(71,85,105,.1) } 50% { box-shadow: inset 0 0 50px rgba(0,0,0,.6), 0 0 40px rgba(71,85,105,.3) } 100% { box-shadow: inset 0 0 35px rgba(0,0,0,.5), 0 0 25px rgba(71,85,105,.15) } }
@keyframes jpm-reach-down { 0% { transform: translateY(0) rotate(5deg) } 50% { transform: translateY(12px) rotate(2deg) } 100% { transform: translateY(0) rotate(5deg) } }
@keyframes jpm-reach-up { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-12px) rotate(-2deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes jpm-bloom { 0% { transform: translateX(-50%) scale(.8); opacity:.5 } 50% { transform: translateX(-50%) scale(1.2); opacity:1 } 100% { transform: translateX(-50%) scale(.9); opacity:.7 } }
@keyframes jpm-sparkle { 0% { transform: scale(1) translate(0, 0); opacity:.3 } 50% { transform: scale(1.8) translate(-10px, -15px); opacity:1 } 100% { transform: scale(1) translate(5px, -5px); opacity:.4 } }
@keyframes jpm-ambient { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.ap1-lantern { position: absolute; pointer-events: none; }
.benvo { position: absolute; pointer-events: none; }
.bn1-balthasar { position: absolute; pointer-events: none; }
.bn1-romeo { position: absolute; pointer-events: none; }
.capu-cloud { position: absolute; pointer-events: none; }
.cloud-ms { position: absolute; pointer-events: none; }
.motes { position: absolute; pointer-events: none; }
.rd1-bird { position: absolute; pointer-events: none; }
.rd1-figure { position: absolute; pointer-events: none; }
.rd1-window { position: absolute; pointer-events: none; }
.rd2-romeo { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-reconciliation-golden-statues {
  background: linear-gradient(180deg, #2c1b3d 0%, #4a2c5e 20%, #c06030 40%, #f0a060 55%, #ffe0b0 70%, #ffe8d0 100%), radial-gradient(ellipse at 50% 15%, rgba(255, 200, 100, 0.25) 0%, transparent 70%);
}
.scn-reconciliation-golden-statues .sky {
  position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #3d2145 0%, transparent 100%); animation: rg-sky 20s ease-in-out infinite alternate;
}
.scn-reconciliation-golden-statues .sun {
  position: absolute; top: 8%; left: 50%; width: 70px; height: 70px; transform: translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #f09040 60%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(240, 144, 64, 0.5); animation: rg-sun 12s ease-in-out infinite;
}
.scn-reconciliation-golden-statues .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); animation: rg-ground 18s ease-in-out infinite alternate;
}
.scn-reconciliation-golden-statues .statue-left {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 120px; background: linear-gradient(180deg, #e0b050 0%, #b08030 60%, #805020 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,0.4), inset 0 -10px 20px rgba(0,0,0,0.2); transform-origin: bottom center; animation: rg-statue-l 10s ease-in-out infinite;
}
.scn-reconciliation-golden-statues .statue-right {
  position: absolute; bottom: 25%; right: 20%; width: 40px; height: 120px; background: linear-gradient(180deg, #e0b050 0%, #b08030 60%, #805020 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,0.4), inset 0 -10px 20px rgba(0,0,0,0.2); transform-origin: bottom center; animation: rg-statue-r 10s ease-in-out infinite 1s;
}
.scn-reconciliation-golden-statues .figure-left {
  position: absolute; bottom: 28%; left: 47%; width: 16px; height: 30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rg-figure-l 6s ease-in-out infinite;
}
.scn-reconciliation-golden-statues .figure-right {
  position: absolute; bottom: 28%; left: 52%; width: 16px; height: 32px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rg-figure-r 6s ease-in-out infinite 0.5s;
}
.scn-reconciliation-golden-statues .cloud-left {
  position: absolute; top: 12%; left: 10%; width: 90px; height: 20px; background: linear-gradient(180deg, rgba(255,220,180,0.6) 0%, rgba(255,220,180,0.1) 100%); border-radius: 50%; filter: blur(8px); animation: rg-cloud-l 40s linear infinite;
}
.scn-reconciliation-golden-statues .cloud-right {
  position: absolute; top: 18%; right: 5%; width: 70px; height: 16px; background: linear-gradient(180deg, rgba(255,200,160,0.5) 0%, rgba(255,200,160,0.1) 100%); border-radius: 50%; filter: blur(6px); animation: rg-cloud-r 50s linear infinite reverse;
}
@keyframes rg-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes rg-sun { 0%, 100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 60px 20px rgba(240,144,64,0.5); } 50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 80px 30px rgba(240,144,64,0.7); } }
@keyframes rg-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes rg-statue-l { 0%, 100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1.5deg) translateY(-2px); } }
@keyframes rg-statue-r { 0%, 100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-1.5deg) translateY(-2px); } }
@keyframes rg-figure-l { 0%, 100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes rg-figure-r { 0%, 100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } }
@keyframes rg-cloud-l { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes rg-cloud-r { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-friar-laurence-agrees { background: linear-gradient(180deg, #f7d9aa 0%, #f2c38a 30%, #cba87a 70%, #8a6a4a 100%), radial-gradient(ellipse at 60% 20%, #fbe9c0 0%, transparent 60%); }
.scn-friar-laurence-agrees .sky-dawn { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #fdd98f 0%, #f2b86a 40%, #d48a4a 100%); animation: fla-sky 20s ease-in-out infinite alternate; }
.scn-friar-laurence-agrees .sun-display { position:absolute; bottom:45%; left:25%; width:60px; height:60px; background: radial-gradient(circle, #fff5d0 0%, #fdd98f 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(253,217,143,.4); animation: fla-sun 30s ease-in-out infinite; }
.scn-friar-laurence-agrees .tree-left { position:absolute; bottom:35%; left:10%; width:30px; height:90px; background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; animation: fla-tree 8s ease-in-out infinite; }
.scn-friar-laurence-agrees .tree-right { position:absolute; bottom:38%; right:12%; width:25px; height:80px; background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; animation: fla-tree 10s ease-in-out infinite reverse; }
.scn-friar-laurence-agrees .friar-figure { position:absolute; bottom:25%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fla-walk 12s ease-in-out infinite; }
.scn-friar-laurence-agrees .herb-patch { position:absolute; bottom:32%; left:48%; width:50px; height:12px; background: linear-gradient(90deg, #5a7a3a 0%, #7a9a5a 50%, #4a6a2a 100%); border-radius: 40% 40% 0 0; filter: blur(2px); animation: fla-herb 6s ease-in-out infinite alternate; }
.scn-friar-laurence-agrees .path-ground { position:absolute; bottom:20%; left:0; right:0; height:8%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 30% 40% 0 0; }
@keyframes fla-sky  { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fla-sun  { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-8px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes fla-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes fla-walk { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5px) rotate(0deg) } 50% { transform: translateX(10px) rotate(1deg) } 75% { transform: translateX(5px) rotate(0deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes fla-herb { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.2) } }

.scn-nurse-message-romeo { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 70%); }
.scn-nurse-message-romeo .room-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-nurse-message-romeo .room-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a100a 0%, #0a0500 100%); }
.scn-nurse-message-romeo .lamp-glow { position:absolute; bottom:45%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #f0c060 0%, #c08020 50%, transparent 80%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 40px 20px rgba(240,192,96,.5), 0 0 80px 30px rgba(240,192,96,.2); animation: nmr-lamp 2s ease-in-out infinite alternate; }
.scn-nurse-message-romeo .nurse-silhouette { position:absolute; bottom:28%; left:35%; width:40px; height:80px; background: linear-gradient(180deg, #1a1010 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nmr-nurse 1.5s ease-in-out infinite; }
.scn-nurse-message-romeo .romeo-silhouette { position:absolute; bottom:25%; left:55%; width:25px; height:60px; background: linear-gradient(180deg, #1a1010 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nmr-romeo 2s ease-in-out infinite reverse; }
.scn-nurse-message-romeo .table-shape { position:absolute; bottom:20%; left:38%; width:80px; height:12px; background: #2a1a0a; border-radius: 4px; }
.scn-nurse-message-romeo .cup-shape { position:absolute; bottom:30%; left:43%; width:8px; height:10px; background: #3a2a1a; border-radius: 0 0 30% 30%; animation: nmr-cup 3s ease-in-out infinite; }
@keyframes nmr-lamp { 0% { opacity:.7; box-shadow:0 0 30px 15px rgba(240,192,96,.3) } 50% { opacity:1; box-shadow:0 0 50px 25px rgba(240,192,96,.6) } 100% { opacity:.8; box-shadow:0 0 35px 18px rgba(240,192,96,.4) } }
@keyframes nmr-nurse { 0% { transform: rotate(-3deg) translateY(0) } 25% { transform: rotate(3deg) translateY(-2px) } 50% { transform: rotate(-4deg) translateY(0) } 75% { transform: rotate(4deg) translateY(-1px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes nmr-romeo { 0% { transform: rotate(0) translateX(0) } 50% { transform: rotate(2deg) translateX(3px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes nmr-cup { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

.scn-mercutio-death { background: linear-gradient(180deg, #f7d9aa 0%, #f2c38a 40%, #cba87a 70%, #8a6a4a 100%), radial-gradient(ellipse at 50% 10%, #ffe0b0 0%, transparent 60%); }
.scn-mercutio-death .sun-bright { position:absolute; top:8%; left:70%; width:80px; height:80px; background: radial-gradient(circle, #fff5d0 0%, #fdd98f 30%, transparent 60%); border-radius:50%; box-shadow: 0 0 120px 40px rgba(253,217,143,.5); animation: md-sun 4s ease-in-out infinite alternate; }
.scn-mercutio-death .pavement { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); }
.scn-mercutio-death .sky-fight { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #fdd98f 0%, #f2b86a 60%, #d48a4a 100%); }
.scn-mercutio-death .mercutio-body { position:absolute; bottom:15%; left:35%; width:35px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(20deg); transform-origin: bottom center; animation: md-fall 3s ease-in-out infinite; }
.scn-mercutio-death .romeo-figure { position:absolute; bottom:20%; left:45%; width:30px; height:55px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: md-start 1s ease-in-out infinite; }
.scn-mercutio-death .tybalt-figure { position:absolute; bottom:22%; left:60%; width:30px; height:55px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: md-tybalt 2s ease-in-out infinite alternate; }
.scn-mercutio-death .sword-glint { position:absolute; bottom:30%; left:48%; width:4px; height:30px; background: linear-gradient(180deg, #fff 0%, #ccc 100%); transform: rotate(-30deg); border-radius: 2px; box-shadow: 0 0 8px 2px #fff; animation: md-glint 0.8s linear infinite; }
@keyframes md-sun { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.9; transform: scale(1.05) } }
@keyframes md-fall { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-3px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes md-start { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes md-tybalt { 0% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }
@keyframes md-glint { 0% { opacity:0 } 50% { opacity:1 } 100% { opacity:0 } }

.scn-romeo-banished { background: linear-gradient(180deg, #4a6a8a 0%, #6a8aa0 40%, #8a9aa0 70%, #6a6a5a 100%), radial-gradient(ellipse at 50% 40%, #8a9aa0 0%, transparent 70%); }
.scn-romeo-banished .sky-banish { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a8aa0 0%, #8a9aa0 60%, #a0a0a0 100%); animation: rb-sky 25s ease-in-out infinite alternate; }
.scn-romeo-banished .city-wall { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-romeo-banished .ground-banish { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-romeo-banished .romeo-alone { position:absolute; bottom:25%; left:50%; width:20px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rb-figure 8s ease-in-out infinite; }
.scn-romeo-banished .cloud-slow-a { position:absolute; top:12%; left:10%; width:100px; height:20px; background: rgba(200,200,200,.2); border-radius:50%; filter: blur(8px); animation: rb-drift-a 60s linear infinite; }
.scn-romeo-banished .cloud-slow-b { position:absolute; top:20%; right:5%; width:80px; height:15px; background: rgba(200,200,200,.15); border-radius:50%; filter: blur(6px); animation: rb-drift-b 80s linear infinite reverse; }
.scn-romeo-banished .shadow-lane { position:absolute; bottom:22%; left:20%; width:60%; height:4px; background: rgba(0,0,0,.3); border-radius:50%; filter: blur(3px); }
@keyframes rb-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes rb-figure { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) scaleY(1.02) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes rb-drift-a { 0% { transform: translateX(0) } 100% { transform: translateX(-200px) } }
@keyframes rb-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(150px) } }

.scn-juliet-found-dead { background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%), radial-gradient(ellipse at 70% 40%, #4a2a0a 0%, transparent 70%); }
.scn-juliet-found-dead .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%); animation: jfd-wall 8s ease-in-out infinite alternate; }
.scn-juliet-found-dead .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a0f05 0%, #0a0500 100%); }
.scn-juliet-found-dead .bier { position:absolute; bottom:15%; left:50%; width:140px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: jfd-bier 12s ease-in-out infinite; }
.scn-juliet-found-dead .juliet { position:absolute; bottom:20%; left:50%; width:100px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: jfd-juliet 6s ease-in-out infinite; }
.scn-juliet-found-dead .candle { position:absolute; bottom:35%; left:30%; width:8px; height:20px; background: radial-gradient(circle, #ffd070 0%, #b08030 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px #ffd070, 0 0 40px 12px rgba(255,208,112,.4); animation: jfd-candle 3s ease-in-out infinite alternate; }
.scn-juliet-found-dead .nurse { position:absolute; bottom:10%; left:20%; width:40px; height:80px; background: linear-gradient(180deg, #1a0f05 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: jfd-nurse 5s ease-in-out infinite; }
.scn-juliet-found-dead .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 40%, transparent 0%, rgba(0,0,0,.3) 100%); animation: jfd-shadow 10s ease-in-out infinite alternate; }
@keyframes jfd-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes jfd-bier { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes jfd-juliet { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(.98) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes jfd-candle { 0% { box-shadow: 0 0 15px 4px #ffd070, 0 0 30px 8px rgba(255,208,112,.3); opacity:.8 } 50% { box-shadow: 0 0 25px 8px #ffd070, 0 0 50px 15px rgba(255,208,112,.5); opacity:1 } 100% { box-shadow: 0 0 20px 5px #ffd070, 0 0 40px 10px rgba(255,208,112,.4); opacity:.9 } }
@keyframes jfd-nurse { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes jfd-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.4 } }

.scn-romeo-buys-poison { background: linear-gradient(180deg, #1a1208 0%, #0d0a04 100%), radial-gradient(ellipse at 50% 40%, #2a1a08 0%, transparent 80%); }
.scn-romeo-buys-poison .bg-shop { position:absolute; inset:0; background: linear-gradient(180deg, #1a1208 0%, #0d0a04 100%); animation: rbp-shop 12s ease-in-out infinite alternate; }
.scn-romeo-buys-poison .counter { position:absolute; bottom:20%; left:5%; right:5%; height:15px; background: linear-gradient(90deg, #3a2010, #2a1808, #3a2010); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.6); }
.scn-romeo-buys-poison .apothecary { position:absolute; bottom:25%; left:70%; width:35px; height:80px; background: linear-gradient(180deg, #1a1208 0%, #0d0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: rbp-apoth 6s ease-in-out infinite; }
.scn-romeo-buys-poison .romeo { position:absolute; bottom:20%; left:30%; width:40px; height:75px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: rbp-romeo 4s ease-in-out infinite; }
.scn-romeo-buys-poison .lamp { position:absolute; bottom:45%; left:20%; width:12px; height:18px; background: radial-gradient(circle, #ffd070 0%, #b08030 100%); border-radius: 50%; box-shadow: 0 0 30px 8px #ffd070, 0 0 60px 15px rgba(255,208,112,.3); animation: rbp-lamp 2s ease-in-out infinite alternate; }
.scn-romeo-buys-poison .bottle { position:absolute; bottom:30%; left:45%; width:10px; height:20px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 8px 2px rgba(255,200,100,.2); animation: rbp-bottle 8s ease-in-out infinite; }
.scn-romeo-buys-poison .shelf { position:absolute; bottom:40%; left:10%; right:30%; height:4px; background: #3a2010; border-radius:2px; animation: rbp-shelf 10s linear infinite; }
@keyframes rbp-shop { 0% { opacity:.85 } 50% { opacity:.95 } 100% { opacity:.9 } }
@keyframes rbp-apoth { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rbp-romeo { 0% { transform: translateX(0) } 50% { transform: translateX(5px) translateY(-1px) } 100% { transform: translateX(0) } }
@keyframes rbp-lamp { 0% { box-shadow: 0 0 20px 6px #ffd070, 0 0 40px 10px rgba(255,208,112,.2); opacity:.9 } 50% { box-shadow: 0 0 35px 10px #ffd070, 0 0 70px 20px rgba(255,208,112,.4); opacity:1 } 100% { box-shadow: 0 0 25px 7px #ffd070, 0 0 50px 15px rgba(255,208,112,.3); opacity:.95 } }
@keyframes rbp-bottle { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rbp-shelf { 0% { transform: scaleX(1) } 50% { transform: scaleX(.95) } 100% { transform: scaleX(1) } }

.scn-tomb-deaths-romeo-paris { background: linear-gradient(180deg, #0a1220 0%, #1a2a3a 50%, #2a3a4a 100%), radial-gradient(ellipse at 30% 20%, #4a6a8a 0%, transparent 60%); }
.scn-tomb-deaths-romeo-paris .tomb-arch { position:absolute; top:0; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: tdr-arch 15s ease-in-out infinite alternate; }
.scn-tomb-deaths-romeo-paris .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a3a4a 0%, #0a1220 100%); }
.scn-tomb-deaths-romeo-paris .moonbeam { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(200,220,255,0.15) 0%, transparent 60%); transform: skewX(-10deg); animation: tdr-beam 20s ease-in-out infinite; }
.scn-tomb-deaths-romeo-paris .juliet-bier { position:absolute; bottom:25%; left:50%; width:120px; height:25px; transform:translateX(-50%); background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: tdr-bier 12s ease-in-out infinite; }
.scn-tomb-deaths-romeo-paris .romeo-body { position:absolute; bottom:12%; left:30%; width:80px; height:40px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tdr-body 8s ease-in-out infinite; }
.scn-tomb-deaths-romeo-paris .paris-body { position:absolute; bottom:10%; right:25%; width:70px; height:35px; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tdr-body 9s ease-in-out infinite 2s; }
.scn-tomb-deaths-romeo-paris .torch { position:absolute; bottom:20%; left:70%; width:10px; height:20px; background: radial-gradient(circle, #ffa070 0%, #c07030 100%); border-radius: 50%; box-shadow: 0 0 25px 8px #ffa070, 0 0 50px 15px rgba(255,160,112,.3); animation: tdr-torch 3s ease-in-out infinite alternate; }
@keyframes tdr-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(.98) } 100% { transform: scaleY(1) } }
@keyframes tdr-beam { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes tdr-bier { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes tdr-body { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tdr-torch { 0% { box-shadow: 0 0 15px 4px #ffa070, 0 0 30px 8px rgba(255,160,112,.2); opacity:.8 } 50% { box-shadow: 0 0 30px 10px #ffa070, 0 0 60px 20px rgba(255,160,112,.5); opacity:1 } 100% { box-shadow: 0 0 20px 6px #ffa070, 0 0 40px 12px rgba(255,160,112,.3); opacity:.9 } }

.scn-item-dagger-stab { background: linear-gradient(180deg, #0a0a0f 0%, #1a0a0a 100%), radial-gradient(ellipse at 60% 70%, #2a0a0a 0%, transparent 80%); }
.scn-item-dagger-stab .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a0f 0%, #1a0a0a 100%); animation: ids-bg 10s ease-in-out infinite alternate; }
.scn-item-dagger-stab .juliet-silhouette { position:absolute; bottom:0; right:10%; width:100px; height:120px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ids-juliet 5s ease-in-out infinite; }
.scn-item-dagger-stab .romeo-silhouette { position:absolute; bottom:5%; left:10%; width:120px; height:50px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: ids-romeo 7s ease-in-out infinite; }
.scn-item-dagger-stab .hand { position:absolute; bottom:40%; left:45%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40%; transform-origin: bottom; animation: ids-hand 3s ease-in-out infinite; }
.scn-item-dagger-stab .dagger { position:absolute; bottom:50%; left:50%; width:8px; height:80px; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); border-radius: 10% 10% 5% 5%; transform: translateX(-50%) rotate(-20deg); transform-origin: bottom; box-shadow: 0 0 10px 2px rgba(200,200,220,.3); animation: ids-dagger 2s ease-in-out infinite; }
.scn-item-dagger-stab .blood { position:absolute; bottom:35%; left:45%; width:40px; height:15px; background: radial-gradient(ellipse, #5e1a1d 0%, #2a0505 70%); border-radius: 50%; filter: blur(2px); animation: ids-blood 4s ease-in-out infinite; }
.scn-item-dagger-stab .glow { position:absolute; bottom:45%; left:48%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,210,230,0.2) 0%, transparent 100%); border-radius: 50%; animation: ids-glow 6s ease-in-out infinite; }
@keyframes ids-bg { 0% { opacity:.9 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes ids-juliet { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-5px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ids-romeo { 0% { transform: rotate(15deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(15deg) } }
@keyframes ids-hand { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ids-dagger { 0% { transform: translateX(-50%) rotate(-20deg) } 50% { transform: translateX(-50%) rotate(-22deg) } 100% { transform: translateX(-50%) rotate(-20deg) } }
@keyframes ids-blood { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.05); opacity:.9 } 100% { transform: scale(1); opacity:.7 } }
@keyframes ids-glow { 0% { opacity:.1 } 50% { opacity:.3 } 100% { opacity:.15 } }

.scn-capulet-feast-invitation { background: linear-gradient(180deg, #f5e6c8 0%, #e0c898 40%, #c8a870 100%); }
.scn-capulet-feast-invitation .interior-bg { position:absolute; inset:0; background: linear-gradient(135deg, #f0dbb0 0%, #d8b880 100%); border-radius: 20px; box-shadow: inset 0 0 60px rgba(0,0,0,0.15); animation: cfi-room 16s ease-in-out infinite; }
.scn-capulet-feast-invitation .window-festive { position:absolute; top:12%; left:30%; width:40%; height:45%; background: radial-gradient(ellipse at 50% 60%, #ffd68a 0%, #ffb347 30%, #8b5e2a 60%, #3a2a1a 100%); border-radius: 50% 50% 30% 30%; box-shadow: inset 0 0 40px rgba(255,180,60,0.4), 0 0 30px rgba(255,200,100,0.3); animation: cfi-window-glow 5s ease-in-out infinite alternate; }
.scn-capulet-feast-invitation .lady-capulet { position:absolute; bottom:18%; left:20%; width:40px; height:70px; background: linear-gradient(180deg, #6b4c3a 0%, #4a3224 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: cfi-figure-sway 7s ease-in-out infinite; }
.scn-capulet-feast-invitation .nurse { position:absolute; bottom:16%; left:32%; width:45px; height:60px; background: linear-gradient(180deg, #7a5a44 0%, #4a3424 100%); border-radius: 45% 45% 35% 35% / 50% 50% 35% 35%; animation: cfi-figure-sway 8s ease-in-out infinite 0.5s; }
.scn-capulet-feast-invitation .juliet { position:absolute; bottom:22%; left:50%; width:28px; height:50px; background: linear-gradient(180deg, #8a6a54 0%, #5a4030 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; animation: cfi-girl-bob 4s ease-in-out infinite; }
.scn-capulet-feast-invitation .lamp-glow { position:absolute; bottom:28%; left:65%; width:12px; height:12px; background: radial-gradient(circle, #ffe080 0%, #d4a040 70%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(255,224,128,0.5); animation: cfi-lamp-pulse 3s ease-in-out infinite alternate; }
@keyframes cfi-room { 0%,100% { opacity:0.95; } 50% { opacity:1; } }
@keyframes cfi-window-glow { 0% { opacity:0.7; transform: scale(0.98) rotate(-0.5deg); } 50% { opacity:1; transform: scale(1) rotate(0deg); } 100% { opacity:0.85; transform: scale(0.99) rotate(0.3deg); } }
@keyframes cfi-figure-sway { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes cfi-girl-bob { 0%,100% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-4px) rotate(0.5deg); } }
@keyframes cfi-lamp-pulse { 0% { box-shadow: 0 0 20px 5px rgba(255,224,128,0.4); } 50% { box-shadow: 0 0 40px 12px rgba(255,224,128,0.7); } 100% { box-shadow: 0 0 25px 6px rgba(255,224,128,0.5); } }

.scn-queen-mab-foreboding { background: linear-gradient(180deg, #2e1b4a 0%, #4a2e5e 20%, #735961 50%, #a07a6a 80%, #d4a070 100%); }
.scn-queen-mab-foreboding .dusk-sky { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 30%, #8b6a5a 0%, transparent 60%); animation: qmb-twilight 12s ease-in-out infinite alternate; }
.scn-queen-mab-foreboding .moon-crescent { position:absolute; top:10%; right:20%; width:40px; height:40px; background: radial-gradient(circle at 35% 35%, #f0e4d0 0%, #d4c0a0 60%, transparent 90%); border-radius: 50%; box-shadow: 0 0 20px 5px rgba(240,228,200,0.3); animation: qmb-moon-glide 30s linear infinite; }
.scn-queen-mab-foreboding .figure-mercutio { position:absolute; bottom:15%; left:20%; width:30px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qmb-stand 6s ease-in-out infinite; }
.scn-queen-mab-foreboding .queen-mab { position:absolute; top:30%; left:50%; width:12px; height:12px; background: radial-gradient(circle, #ffe680 0%, #d4a040 70%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,230,128,0.6); animation: qmb-mab-dance 4s ease-in-out infinite alternate; }
.scn-queen-mab-foreboding .cloud-drift { position:absolute; top:18%; left:0; width:80px; height:14px; background: linear-gradient(180deg, rgba(255,235,200,0.4) 0%, rgba(200,170,140,0.1) 100%); border-radius: 50%; filter: blur(4px); animation: qmb-cloud 40s linear infinite; }
@keyframes qmb-twilight { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes qmb-moon-glide { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-20px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }
@keyframes qmb-stand { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } }
@keyframes qmb-mab-dance { 0% { transform: translate(0,0) scale(1) rotate(-5deg); opacity:0.8; } 50% { transform: translate(8px,-6px) scale(1.2) rotate(0deg); opacity:1; } 100% { transform: translate(-4px,4px) scale(0.9) rotate(5deg); opacity:0.7; } }
@keyframes qmb-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

.scn-item-sonnet-kiss { background: linear-gradient(180deg, #4a1a1a 0%, #7a2a1a 30%, #b84a2a 60%, #d4632a 100%); }
.scn-item-sonnet-kiss .firelit-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #d48040 0%, transparent 70%); animation: snk-glow-dance 8s ease-in-out infinite; }
.scn-item-sonnet-kiss .figure-romeo-close { position:absolute; bottom:10%; left:30%; width:35px; height:80px; background: linear-gradient(180deg, #1c1210 0%, #0a0808 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: center 80%; animation: snk-lean-in 6s ease-in-out infinite; }
.scn-item-sonnet-kiss .figure-juliet-close { position:absolute; bottom:10%; left:45%; width:30px; height:75px; background: linear-gradient(180deg, #1c1210 0%, #0a0808 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: center 80%; animation: snk-lean-in 6s ease-in-out infinite 0.2s; }
.scn-item-sonnet-kiss .hearth-fire { position:absolute; bottom:0; left:50%; width:60px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #ff8c40 0%, #c0441a 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 50px 15px rgba(255,140,64,0.6); animation: snk-fire-flicker 2s ease-in-out infinite alternate; }
.scn-item-sonnet-kiss .spark { position:absolute; width:4px; height:4px; background: radial-gradient(circle, #ffcc60 0%, #ff8030 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,204,96,0.8); }
.scn-item-sonnet-kiss .spark-a { bottom:30%; left:46%; animation: snk-spark-rise 3s ease-out infinite; }
.scn-item-sonnet-kiss .spark-b { bottom:20%; left:54%; animation: snk-spark-rise 3.5s ease-out infinite 1s; }
.scn-item-sonnet-kiss .warm-glow { position:absolute; inset:0; background: radial-gradient(circle at 50% 90%, rgba(255,200,100,0.15) 0%, transparent 60%); animation: snk-glow-pulse 4s ease-in-out infinite alternate; }
@keyframes snk-glow-dance { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes snk-lean-in { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes snk-fire-flicker { 0% { opacity:0.8; transform: translateX(-50%) scale(0.95); } 50% { opacity:1; transform: translateX(-50%) scale(1.05); } 100% { opacity:0.85; transform: translateX(-50%) scale(0.98); } }
@keyframes snk-spark-rise { 0% { transform: translate(0,0) scale(1); opacity:1; } 100% { transform: translate(-10px,-60px) scale(0.3); opacity:0; } }
@keyframes snk-glow-pulse { 0% { opacity:0.4; } 100% { opacity:0.8; } }

.scn-balcony-confession { background: linear-gradient(180deg, #0a0a1a 0%, #14142e 30%, #1a1a3a 60%, #2a2a4e 100%); }
.scn-balcony-confession .moonlit-sky { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 20%, #3a3a5e 0%, transparent 70%); animation: bal-sky-breathe 12s ease-in-out infinite; }
.scn-balcony-confession .wall-capulet { position:absolute; bottom:0; left:30%; width:40%; height:70%; background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); animation: bal-wall-shift 20s ease-in-out infinite alternating; }
.scn-balcony-confession .balcony { position:absolute; bottom:45%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 0 0 30% 30% / 0 0 60% 60%; box-shadow: 0 -4px 8px rgba(0,0,0,0.6); animation: bal-balcony-glow 8s ease-in-out infinite alternate; }
.scn-balcony-confession .juliet-silhouette { position:absolute; bottom:47%; left:47%; width:20px; height:45px; background: linear-gradient(180deg, #0a0a14 0%, #14141e 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bal-figure-sway 6s ease-in-out infinite; }
.scn-balcony-confession .romeo-silhouette { position:absolute; bottom:10%; left:48%; width:18px; height:50px; background: linear-gradient(180deg, #0a0a14 0%, #14141e 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: bal-figure-sway 7s ease-in-out infinite 0.3s; }
.scn-balcony-confession .lantern-balcony { position:absolute; bottom:47%; left:36%; width:8px; height:12px; background: radial-gradient(circle, #ffcc60 0%, #c08030 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px rgba(255,204,96,0.4); animation: bal-lantern-flicker 3s ease-in-out infinite alternate; }
.scn-balcony-confession .moon-full { position:absolute; top:8%; right:20%; width:40px; height:40px; background: radial-gradient(circle at 40% 40%, #e8e0d0 0%, #b8a890 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(232,224,208,0.3); animation: bal-moon-drift 30s linear infinite; }
@keyframes bal-sky-breathe { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes bal-wall-shift { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes bal-balcony-glow { 0% { box-shadow: 0 -4px 8px rgba(0,0,0,0.6), 0 0 10px rgba(255,200,100,0); } 50% { box-shadow: 0 -4px 8px rgba(0,0,0,0.6), 0 0 20px rgba(255,200,100,0.2); } 100% { box-shadow: 0 -4px 8px rgba(0,0,0,0.6), 0 0 10px rgba(255,200,100,0); } }
@keyframes bal-figure-sway { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } }
@keyframes bal-lantern-flicker { 0% { opacity:0.8; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.85; transform: scale(0.98); } }
@keyframes bal-moon-drift { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-15px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }

/* item-juliet-ring */
.scn-item-juliet-ring { 
  background: linear-gradient(180deg, #2a1e18 0%, #1a0f0a 60%, #0d0604 100%), radial-gradient(ellipse at 50% 0%, #3d2a20 0%, transparent 70%);
}
.scn-item-juliet-ring .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #3a2b24 0%, #1e1310 100%);
  animation: ijr-wall 20s ease-in-out infinite alternate;
}
.scn-item-juliet-ring .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a110e 0%, #0e0805 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
}
.scn-item-juliet-ring .window {
  position:absolute; top:15%; left:68%; width:60px; height:90px;
  background: linear-gradient(135deg, #e6d5b8 0%, #b89a7a 60%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 30px 10px rgba(200,170,120,0.6), 0 0 60px 20px rgba(200,170,120,0.3);
  animation: ijr-win-glow 8s ease-in-out infinite alternate;
}
.scn-item-juliet-ring .candle {
  position:absolute; bottom:40%; left:25%; width:8px; height:30px;
  background: linear-gradient(180deg, #f0d080 0%, #a07030 100%);
  border-radius: 50%;
  transform: rotate(5deg);
  box-shadow: 0 0 20px 8px rgba(255,200,80,0.6);
  animation: ijr-candle 3s ease-in-out infinite alternate;
}
.scn-item-juliet-ring .figure-romeo {
  position:absolute; bottom:28%; left:32%; width:30px; height:60px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ijr-bow 4s ease-in-out infinite;
}
.scn-item-juliet-ring .figure-friar {
  position:absolute; bottom:30%; left:50%; width:36px; height:80px;
  background: linear-gradient(180deg, #2c1f18 0%, #1a100c 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform: scale(0.95);
  animation: ijr-stand 6s ease-in-out infinite;
}
.scn-item-juliet-ring .ring-glow {
  position:absolute; bottom:40%; left:44%; width:8px; height:8px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(255,200,80,0.7), 0 0 32px 12px rgba(255,200,80,0.3);
  animation: ijr-ring 2s ease-in-out infinite alternate;
}
@keyframes ijr-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ijr-win-glow { 0% { filter: brightness(0.8) } 50% { filter: brightness(1.2) } 100% { filter: brightness(0.9) } }
@keyframes ijr-candle { 0% { transform: rotate(3deg) scaleY(1) } 50% { transform: rotate(7deg) scaleY(1.05) } 100% { transform: rotate(4deg) scaleY(0.95) } }
@keyframes ijr-bow { 0%,100% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(3px) rotate(-10deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-2px) rotate(0deg) } }
@keyframes ijr-stand { 0%,100% { transform: scale(0.95) translateY(0) } 50% { transform: scale(0.95) translateY(-2px) rotate(-1deg) } }
@keyframes ijr-ring { 0% { transform: scale(1); opacity:0.8; box-shadow: 0 0 16px 6px rgba(255,200,80,0.5); } 50% { transform: scale(1.3); opacity:1; box-shadow: 0 0 28px 12px rgba(255,200,80,0.8); } 100% { transform: scale(0.9); opacity:0.7; box-shadow: 0 0 12px 4px rgba(255,200,80,0.4); } }

/* wedding-night-farewell */
.scn-wedding-night-farewell { 
  background: linear-gradient(180deg, #0a1926 0%, #1a2e40 40%, #3a4a5e 70%, #6a7a8a 100%), radial-gradient(ellipse at 50% 100%, #3a4a5e 0%, transparent 80%);
}
.scn-wedding-night-farewell .sky-dawn {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #0a1926 0%, #2a3a4e 40%, #4a5a6e 70%, #8a7a6a 100%);
  animation: wnf-sky 20s ease-in-out infinite alternate;
}
.scn-wedding-night-farewell .window-frame {
  position:absolute; top:12%; left:60%; width:100px; height:140px;
  background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%);
  border: 6px solid #3a4a5a;
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 40px 20px rgba(200,180,140,0.3);
  animation: wnf-frame 12s ease-in-out infinite alternate;
}
.scn-wedding-night-farewell .curtain {
  position:absolute; top:8%; height:90%; width:40px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 0 20% 20% 0;
}
.scn-wedding-night-farewell .curtain.left {
  left:55%;
  transform-origin: left center;
  animation: wnf-curtain 6s ease-in-out infinite;
}
.scn-wedding-night-farewell .curtain.right {
  right:calc(100% - 75%);
  transform-origin: right center;
  animation: wnf-curtain 6s ease-in-out infinite reverse;
}
.scn-wedding-night-farewell .bed-altar {
  position:absolute; bottom:20%; left:30%; width:80px; height:40px;
  background: linear-gradient(180deg, #3a4a4a 0%, #1a2a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.6);
  animation: wnf-bed 8s ease-in-out infinite;
}
.scn-wedding-night-farewell .figure-romeo {
  position:absolute; bottom:22%; left:36%; width:24px; height:50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wnf-figure 5s ease-in-out infinite;
}
.scn-wedding-night-farewell .figure-juliet {
  position:absolute; bottom:22%; left:48%; width:22px; height:48px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0e0a1a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  animation: wnf-figure 5s ease-in-out infinite 0.5s;
}
.scn-wedding-night-farewell .tomb-vision {
  position:absolute; bottom:5%; left:20%; width:120px; height:20px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 30% 30% 0 0;
  filter: blur(4px);
  animation: wnf-tomb 15s ease-in-out infinite;
}
@keyframes wnf-sky { 0% { opacity:0.7; filter: brightness(0.8) } 50% { opacity:1; filter: brightness(1.1) } 100% { opacity:0.85; filter: brightness(0.9) } }
@keyframes wnf-frame { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes wnf-curtain { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(8deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-8deg) } }
@keyframes wnf-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes wnf-figure { 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 wnf-tomb { 0% { transform: translateY(10px); opacity:0 } 30% { transform: translateY(0); opacity:0.5 } 70% { transform: translateY(-5px); opacity:0.8 } 100% { transform: translateY(20px); opacity:0 } }

/* item-friar-potion */
.scn-item-friar-potion { 
  background: linear-gradient(180deg, #1a1412 0%, #2a221e 40%, #3a3028 70%, #2a2018 100%), radial-gradient(ellipse at 50% 0%, #3a3028 0%, transparent 80%);
}
.scn-item-friar-potion .bg-stone {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(135deg, #2a221e 0%, #1a1412 50%, #2e2622 100%);
  animation: ifp-stone 25s ease-in-out infinite alternate;
}
.scn-item-friar-potion .pillar {
  position:absolute; top:10%; width:12px; height:75%;
  background: linear-gradient(180deg, #3a322e 0%, #1a1412 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
}
.scn-item-friar-potion .pillar.left {
  left:20%;
  animation: ifp-pillar 10s ease-in-out infinite;
}
.scn-item-friar-potion .pillar.right {
  right:20%;
  animation: ifp-pillar 10s ease-in-out infinite reverse;
}
.scn-item-friar-potion .altar {
  position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:80px; height:40px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a12 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.7);
}
.scn-item-friar-potion .figure-juliet {
  position:absolute; bottom:27%; left:38%; width:24px; height:50px;
  background: linear-gradient(180deg, #1a1620 0%, #0e0a12 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: ifp-kneel 4s ease-in-out infinite;
}
.scn-item-friar-potion .figure-friar {
  position:absolute; bottom:30%; left:55%; width:32px; height:70px;
  background: linear-gradient(180deg, #2a221e 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ifp-lean 6s ease-in-out infinite;
}
.scn-item-friar-potion .potion-glow {
  position:absolute; bottom:32%; left:44%; width:10px; height:14px;
  background: radial-gradient(circle, #c0d080 0%, #809040 60%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(192,208,128,0.6), 0 0 40px 16px rgba(192,208,128,0.3);
  animation: ifp-potion 2s ease-in-out infinite alternate;
}
.scn-item-friar-potion .shadow {
  position:absolute; bottom:25%; left:35%; width:40px; height:6px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(4px);
  animation: ifp-shadow 6s ease-in-out infinite;
}
@keyframes ifp-stone { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ifp-pillar { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } }
@keyframes ifp-kneel { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-6deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(2px) rotate(6deg) } }
@keyframes ifp-lean { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-6deg) } }
@keyframes ifp-potion { 0% { transform: scale(1); opacity:0.7; box-shadow: 0 0 12px 4px rgba(192,208,128,0.4); } 50% { transform: scale(1.4); opacity:1; box-shadow: 0 0 30px 14px rgba(192,208,128,0.8); } 100% { transform: scale(0.8); opacity:0.6; box-shadow: 0 0 8px 2px rgba(192,208,128,0.3); } }
@keyframes ifp-shadow { 0%,100% { transform: skewX(0deg) scaleX(1); opacity:0.5 } 50% { transform: skewX(-15deg) scaleX(1.2); opacity:0.8 } }

/* juliet-fakes-obedience */
.scn-juliet-fakes-obedience { 
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #c0b098 70%, #b0a090 100%), radial-gradient(ellipse at 50% 100%, #d4c4a8 0%, transparent 80%);
}
.scn-juliet-fakes-obedience .bg-hall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #e8dcc8 0%, #d4c4a8 50%, #c0b098 100%);
  animation: jfo-hall 15s ease-in-out infinite alternate;
}
.scn-juliet-fakes-obedience .floor-tile {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #b0a090 0%, #a09080 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-juliet-fakes-obedience .window-bright {
  position:absolute; top:15%; left:20%; width:80px; height:120px;
  background: linear-gradient(135deg, #faf0e0 0%, #e0d0b8 80%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 60px 30px rgba(255,240,200,0.9), 0 0 100px 40px rgba(255,240,200,0.4);
  animation: jfo-window 8s ease-in-out infinite alternate;
}
.scn-juliet-fakes-obedience .figure-juliet {
  position:absolute; bottom:25%; left:40%; width:26px; height:55px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: jfo-bow 4s ease-in-out infinite;
}
.scn-juliet-fakes-obedience .figure-capulet {
  position:absolute; bottom:28%; left:58%; width:40px; height:70px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: jfo-tower 6s ease-in-out infinite;
}
.scn-juliet-fakes-obedience .table {
  position:absolute; bottom:25%; left:30%; width:50px; height:8px;
  background: linear-gradient(180deg, #b09880 0%, #8a7a6a 100%);
  border-radius: 20% / 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-juliet-fakes-obedience .shadow-creep {
  position:absolute; bottom:20%; left:40%; width:40px; height:20px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(8px);
  animation: jfo-shadow 10s ease-in-out infinite;
}
@keyframes jfo-hall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes jfo-window { 0% { filter: brightness(0.9) } 50% { filter: brightness(1.2) } 100% { filter: brightness(1.0) } }
@keyframes jfo-bow { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-8deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(2px) rotate(8deg) } }
@keyframes jfo-tower { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-2px) } }
@keyframes jfo-shadow { 0%,100% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(5px) scaleX(1.3) } }

.scn-verona-street-brawl {
  background:
    linear-gradient(180deg, #87CEEB 0%, #f0d78c 50%, #c9a96e 100%),
    radial-gradient(circle at 70% 20%, #fff3b0 0%, transparent 60%);
}
.scn-verona-street-brawl .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, rgba(255,255,240,0.3) 0%, transparent 100%);
  animation: vsb-sky 10s ease-in-out infinite alternate;
}
.scn-verona-street-brawl .sun {
  position: absolute; top: 15%; left: 70%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff0b0 0%, #ffe080 40%, transparent 70%);
  border-radius: 50%;
  animation: vsb-sun 4s ease-in-out infinite alternate;
}
.scn-verona-street-brawl .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b38b6d 0%, #8c6b4f 100%);
  border-top: 3px solid #6b4f3a;
  animation: vsb-street 12s ease-in-out infinite;
}
.scn-verona-street-brawl .fig-l-1,
.scn-verona-street-brawl .fig-l-2,
.scn-verona-street-brawl .fig-r-1,
.scn-verona-street-brawl .fig-r-2 {
  position: absolute; bottom: 28%;
  width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vsb-fig 3s ease-in-out infinite;
}
.scn-verona-street-brawl .fig-l-1 { left: 20%; animation-delay: 0s; }
.scn-verona-street-brawl .fig-l-2 { left: 28%; animation-delay: 0.4s; }
.scn-verona-street-brawl .fig-r-1 { right: 20%; animation-delay: 1s; }
.scn-verona-street-brawl .fig-r-2 { right: 28%; animation-delay: 1.4s; }
.scn-verona-street-brawl .sword-clash {
  position: absolute; bottom: 55%; left: 50%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 2px;
  transform: translateX(-50%) rotate(45deg);
  box-shadow: -5px -5px 6px rgba(0,0,0,0.3), 5px 5px 6px rgba(255,255,255,0.3);
  animation: vsb-sword 0.6s ease-in-out infinite alternate;
}
@keyframes vsb-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes vsb-sun { 0% { transform: scale(0.95); box-shadow: 0 0 30px 10px #ffe080; } 50% { transform: scale(1.05); box-shadow: 0 0 50px 20px #fff3b0; } 100% { transform: scale(0.98); box-shadow: 0 0 35px 12px #ffe080; } }
@keyframes vsb-street { 0% { background-position: 0 0; } 50% { background-position: 5px 0; } 100% { background-position: 0 0; } }
@keyframes vsb-fig { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes vsb-sword { 0% { transform: translateX(-50%) rotate(40deg) scaleY(1); } 100% { transform: translateX(-50%) rotate(50deg) scaleY(1.1); } }

.scn-tybalt-arrives-fight {
  background:
    linear-gradient(180deg, #e8c97a 0%, #d4a85c 40%, #b88a4a 100%),
    radial-gradient(circle at 65% 15%, #fff4c0 0%, transparent 70%);
}
.scn-tybalt-arrives-fight .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, rgba(255,255,230,0.4) 0%, transparent 100%);
  animation: tyb-sky 12s ease-in-out infinite alternate;
}
.scn-tybalt-arrives-fight .sun {
  position: absolute; top: 12%; left: 60%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff4b0 0%, #ffe070 40%, transparent 70%);
  border-radius: 50%;
  animation: tyb-sun 5s ease-in-out infinite alternate;
}
.scn-tybalt-arrives-fight .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #9e7f5e 0%, #7a5f42 100%);
  border-top: 3px solid #5e4530;
  animation: tyb-street 10s ease-in-out infinite;
}
.scn-tybalt-arrives-fight .building-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 50%;
  background: linear-gradient(90deg, #6a4a32 0%, #8b653e 50%, #6a4a32 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
  animation: tyb-build 8s ease-in-out infinite alternate;
}
.scn-tybalt-arrives-fight .tybalt {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tyb-tybalt 2s ease-in-out infinite;
}
.scn-tybalt-arrives-fight .benvolio {
  position: absolute; bottom: 28%; left: 55%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tyb-ben 3s ease-in-out infinite;
}
.scn-tybalt-arrives-fight .sword-tybalt {
  position: absolute; bottom: 60%; left: 45%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #d0d0d0 0%, #909090 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: tyb-sword 1s ease-in-out infinite alternate;
}
.scn-tybalt-arrives-fight .cape {
  position: absolute; bottom: 25%; left: 38%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #5e1a1d 0%, transparent 80%);
  border-radius: 50% 50% 40% 40% / 100% 100% 60% 60%;
  filter: blur(3px);
  animation: tyb-cape 4s ease-in-out infinite alternate;
}
@keyframes tyb-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes tyb-sun { 0% { transform: scale(0.95); box-shadow: 0 0 40px 15px #ffe070; } 50% { transform: scale(1.05); box-shadow: 0 0 60px 25px #fff4b0; } 100% { transform: scale(0.98); box-shadow: 0 0 45px 18px #ffe070; } }
@keyframes tyb-street { 0% { background-position: 0 0; } 50% { background-position: -3px 0; } 100% { background-position: 0 0; } }
@keyframes tyb-build { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes tyb-tybalt { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(3deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tyb-ben { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(-5px) rotate(-2deg) scaleY(0.95); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes tyb-sword { 0% { transform: rotate(-25deg); } 100% { transform: rotate(-15deg); } }
@keyframes tyb-cape { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.9; transform: scaleX(1.2); } 100% { opacity: 0.6; transform: scaleX(1); } }

.scn-prince-intervenes-romeo-melancholy {
  background:
    linear-gradient(180deg, #b8d4e6 0%, #e6d8b8 40%, #c4a87a 100%),
    radial-gradient(ellipse at 50% 10%, #fff4c0 0%, transparent 70%);
}
.scn-prince-intervenes-romeo-melancholy .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, rgba(255,255,240,0.3) 0%, transparent 100%);
  animation: pri-sky 15s ease-in-out infinite alternate;
}
.scn-prince-intervenes-romeo-melancholy .sun {
  position: absolute; top: 10%; left: 50%; width: 90px; height: 90px;
  background: radial-gradient(circle, #fff8d0 0%, #ffe48a 30%, transparent 70%);
  border-radius: 50%;
  animation: pri-sun 6s ease-in-out infinite alternate;
}
.scn-prince-intervenes-romeo-melancholy .dais {
  position: absolute; bottom: 20%; left: 50%; width: 200px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7050 0%, #5e4530 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
  animation: pri-dais 8s ease-in-out infinite;
}
.scn-prince-intervenes-romeo-melancholy .prince {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pri-prince 4s ease-in-out infinite;
}
.scn-prince-intervenes-romeo-melancholy .crowd {
  position: absolute; bottom: 22%; left: 10%; right: 10%; height: 60px;
  background:
    radial-gradient(ellipse at 20% 100%, #2a1a1a 0%, transparent 70%),
    radial-gradient(ellipse at 80% 100%, #2a1a1a 0%, transparent 70%);
  filter: blur(4px);
  animation: pri-crowd 10s ease-in-out infinite alternate;
}
.scn-prince-intervenes-romeo-melancholy .romeo {
  position: absolute; bottom: 28%; right: 15%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pri-romeo 5s ease-in-out infinite;
}
.scn-prince-intervenes-romeo-melancholy .scroll {
  position: absolute; bottom: 50%; left: 50%; width: 30px; height: 4px;
  transform: translateX(-50%) rotate(-10deg);
  background: linear-gradient(90deg, #c0a070 0%, #a08050 50%, #c0a070 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: pri-scroll 3s ease-in-out infinite alternate;
}
.scn-prince-intervenes-romeo-melancholy .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  animation: pri-shadow 12s ease-in-out infinite alternate;
}
@keyframes pri-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pri-sun { 0% { transform: scale(0.95); box-shadow: 0 0 50px 20px #ffe48a; } 50% { transform: scale(1.05); box-shadow: 0 0 70px 30px #fff8d0; } 100% { transform: scale(0.98); box-shadow: 0 0 55px 22px #ffe48a; } }
@keyframes pri-dais { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes pri-prince { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-2deg); } 75% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes pri-crowd { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.05); } 100% { opacity: 0.5; transform: scaleX(1); } }
@keyframes pri-romeo { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 25% { transform: translateX(-4px) rotate(-3deg) scaleY(0.95); } 50% { transform: translateX(0) rotate(2deg) scaleY(1); } 75% { transform: translateX(4px) rotate(1deg) scaleY(0.95); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes pri-scroll { 0% { transform: translateX(-50%) rotate(-15deg) scaleX(1); } 100% { transform: translateX(-50%) rotate(-5deg) scaleX(1.2); } }
@keyframes pri-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

.scn-romeo-lovesick-rosaline {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2c2440 50%, #3a2e52 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a5e 0%, transparent 70%);
}
.scn-romeo-lovesick-rosaline .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2c2440 0%, #1e1a30 100%);
  border-bottom: 2px solid #3a2e52;
  animation: ros-wall 20s ease-in-out infinite alternate;
}
.scn-romeo-lovesick-rosaline .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2e3e 0%, #1e1a28 100%);
  animation: ros-floor 15s ease-in-out infinite alternate;
}
.scn-romeo-lovesick-rosaline .window {
  position: absolute; top: 15%; left: 50%; width: 100px; height: 130px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #ffe8b0 0%, #c09050 50%, transparent 80%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 60px 30px rgba(255,232,176,0.2);
  animation: ros-window 8s ease-in-out infinite alternate;
}
.scn-romeo-lovesick-rosaline .romeo-seated {
  position: absolute; bottom: 25%; left: 35%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ros-romeo 6s ease-in-out infinite;
}
.scn-romeo-lovesick-rosaline .benvolio-standing {
  position: absolute; bottom: 32%; left: 55%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ros-ben 7s ease-in-out infinite;
}
.scn-romeo-lovesick-rosaline .candle {
  position: absolute; bottom: 28%; left: 48%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c08040 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 -10px 20px 6px rgba(255,200,100,0.5);
  animation: ros-candle 3s ease-in-out infinite alternate;
}
.scn-romeo-lovesick-rosaline .light-glow {
  position: absolute; bottom: 25%; left: 45%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%);
  filter: blur(15px);
  animation: ros-glow 4s ease-in-out infinite alternate;
}
@keyframes ros-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes ros-floor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ros-window { 0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 50px 20px rgba(255,232,176,0.15); } 50% { transform: translateX(-50%) scaleY(1.02); box-shadow: 0 0 80px 40px rgba(255,232,176,0.25); } 100% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 60px 30px rgba(255,232,176,0.2); } }
@keyframes ros-romeo { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(2px, -2px) rotate(2deg); } 50% { transform: translate(0, 0) rotate(-2deg); } 75% { transform: translate(-2px, -2px) rotate(1deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes ros-ben { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ros-candle { 0% { transform: scaleY(0.9); box-shadow: 0 -8px 15px 4px rgba(255,200,100,0.4); } 50% { transform: scaleY(1.1); box-shadow: 0 -12px 25px 8px rgba(255,200,100,0.6); } 100% { transform: scaleY(1); box-shadow: 0 -10px 20px 6px rgba(255,200,100,0.5); } }
@keyframes ros-glow { 0% { opacity: 0.4; transform: scale(0.95); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(1); } }
/* end per-scene blocks */
