/* 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) */
/* carmen-persuasion - tense bright interior */
.scn-carmen-persuasion {
  background: linear-gradient(135deg, #6b4a2e 0%, #4a2c1a 50%, #2e1f0f 100%), radial-gradient(circle at 60% 40%, #c8a878 10%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-carmen-persuasion .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #8b6a4a 0%, #4a2c1a 100%); opacity:0.7; animation: cp-shimmer 10s ease-in-out infinite alternate; }
.scn-carmen-persuasion .table { position:absolute; bottom:18%; left:30%; right:30%; height:8%; background: linear-gradient(180deg, #5e3a1e 0%, #3a2212 100%); border-radius:4px; box-shadow: 0 4px 10px rgba(0,0,0,0.5); }
.scn-carmen-persuasion .lamp { position:absolute; bottom:32%; left:45%; width:12px; height:24px; background: #a07848; border-radius: 50% 50% 4px 4px; transform-origin: bottom center; animation: cp-sway 5s ease-in-out infinite; }
.scn-carmen-persuasion .lamp-glow { position:absolute; bottom:32%; left:45%; width:80px; height:80px; transform:translate(-50%, -50%); background: radial-gradient(circle, #ffd080 0%, #c89850 40%, transparent 70%); opacity:0.6; animation: cp-glow 3s ease-in-out infinite alternate; }
.scn-carmen-persuasion .figure-a { position:absolute; bottom:18%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-turn 8s ease-in-out infinite; }
.scn-carmen-persuasion .figure-b { position:absolute; bottom:18%; right:35%; width:18px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-lean 6s ease-in-out infinite alternate; }
@keyframes cp-shimmer { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes cp-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes cp-glow { 0% { transform:translate(-50%, -50%) scale(0.8); opacity:0.4; } 50% { transform:translate(-50%, -50%) scale(1.2); opacity:0.7; } 100% { transform:translate(-50%, -50%) scale(0.9); opacity:0.5; } }
@keyframes cp-turn { 0% { transform: scaleX(1); } 25% { transform: scaleX(-1); } 50% { transform: scaleX(1); } 75% { transform: scaleX(-1); } 100% { transform: scaleX(1); } }
@keyframes cp-lean { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }

/* joining-smugglers - warm moonlit */
.scn-joining-smugglers {
  background: linear-gradient(180deg, #102030 0%, #0a1520 40%, #1a2a3a 100%), radial-gradient(ellipse at 50% 0%, #2a4a6a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-joining-smugglers .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a1a2a 0%, #152a40 100%); animation: js-sky 15s ease-in-out infinite alternate; }
.scn-joining-smugglers .moon { position:absolute; top:8%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #d4dce8 0%, #b0c0d0 60%, #8090a0 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(180,200,230,0.3); animation: js-moon 20s linear infinite; }
.scn-joining-smugglers .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a3040 0%, #0a1a28 100%); border-radius: 20% 30% 0 0; animation: js-sea 12s ease-in-out infinite alternate; }
.scn-joining-smugglers .ship { position:absolute; bottom:30%; left:15%; width:80px; height:30px; background: #3a2a1a; border-radius: 10% 10% 30% 30%; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); animation: js-ship 8s ease-in-out infinite; }
.scn-joining-smugglers .lantern { position:absolute; bottom:38%; left:20%; width:8px; height:12px; background: #c89a48; border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px 2px #ffc860; animation: js-lantern 4s ease-in-out infinite alternate; }
.scn-joining-smugglers .lantern-glow { position:absolute; bottom:38%; left:20%; width:60px; height:60px; transform:translate(-50%, -50%); background: radial-gradient(circle, #ffc860 0%, #b08040 30%, transparent 60%); opacity:0.5; animation: js-lantern-glow 4s ease-in-out infinite alternate; }
.scn-joining-smugglers .figure-c { position:absolute; bottom:22%; left:30%; width:16px; height:34px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: js-walk 6s ease-in-out infinite; }
@keyframes js-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes js-moon { 0% { transform: translateY(0); } 100% { transform: translateY(20px); } }
@keyframes js-sea { 0% { transform: translateY(-2px); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes js-ship { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(10px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes js-lantern { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes js-lantern-glow { 0% { transform:translate(-50%, -50%) scale(0.8); opacity:0.3; } 50% { transform:translate(-50%, -50%) scale(1.2); opacity:0.6; } 100% { transform:translate(-50%, -50%) scale(0.9); opacity:0.4; } }
@keyframes js-walk { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(3deg); } 50% { transform: translateX(16px) rotate(0); } 75% { transform: translateX(24px) rotate(-3deg); } 100% { transform: translateX(32px) rotate(0); } }

/* gang-scattered-veger - calm dark */
.scn-gang-scattered-veger {
  background: linear-gradient(180deg, #0a0a12 0%, #141420 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-gang-scattered-veger .dark-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a20 0%, #0a0a10 100%); border-radius: 30% 70% 0 0; animation: gs-ground 20s ease-in-out infinite alternate; }
.scn-gang-scattered-veger .hill-line { position:absolute; bottom:35%; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1a28 0%, #10101a 100%); border-radius: 50% 50% 0 0; }
.scn-gang-scattered-veger .figure-1 { position:absolute; bottom:20%; left:15%; width:12px; height:28px; background: #14141a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.6; animation: gs-stand 10s ease-in-out infinite; }
.scn-gang-scattered-veger .figure-2 { position:absolute; bottom:22%; left:45%; width:14px; height:30px; background: #1a1a24; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.5; animation: gs-stand 12s ease-in-out infinite 2s; }
.scn-gang-scattered-veger .figure-3 { position:absolute; bottom:18%; left:70%; width:10px; height:26px; background: #101016; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.7; animation: gs-stand 8s ease-in-out infinite 4s; }
.scn-gang-scattered-veger .starlight { position:absolute; top:10%; left:20%; width:4px; height:4px; background: #c0d0e0; border-radius:50%; box-shadow: 0 0 6px 2px rgba(192,208,224,0.5), 40px 30px 0 0 #b0c0d0, -30px 50px 0 0 #a0b0c0; animation: gs-twinkle 6s ease-in-out infinite; }
@keyframes gs-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes gs-stand { 0% { transform: translateY(0); } 25% { transform: translateY(-2px); } 50% { transform: translateY(0); } 75% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes gs-twinkle { 0% { opacity:0.3; } 50% { opacity:1; } 100% { opacity:0.4; } }

/* meeting-garcia - dark moonlit */
.scn-meeting-garcia {
  background: linear-gradient(180deg, #0a0a14 0%, #141428 50%, #0e0e1a 100%), radial-gradient(circle at 70% 60%, #1a1a30 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-meeting-garcia .moonlit-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0a1a 0%, #101022 100%); animation: mg-skydim 15s ease-in-out infinite alternate; }
.scn-meeting-garcia .moon { position:absolute; top:10%; left:60%; width:35px; height:35px; background: radial-gradient(circle, #b0b8c8 0%, #8090a8 60%, #506070 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(128,144,168,0.3); animation: mg-moon 25s linear infinite; }
.scn-meeting-garcia .shadow-ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: #0a0a12; border-radius: 60% 40% 0 0; }
.scn-meeting-garcia .figure-g { position:absolute; bottom:15%; left:25%; width:24px; height:48px; background: linear-gradient(180deg, #1a1a24 0%, #0a0a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mg-brute 8s ease-in-out infinite; }
.scn-meeting-garcia .figure-c2 { position:absolute; bottom:18%; left:55%; width:16px; height:36px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mg-turn 6s ease-in-out infinite alternate; }
.scn-meeting-garcia .blade { position:absolute; bottom:28%; left:38%; width:4px; height:20px; background: #8090a0; border-radius: 0 0 50% 50%; transform: rotate(15deg); animation: mg-blade 4s ease-in-out infinite alternate; }
@keyframes mg-skydim { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes mg-moon { 0% { transform: translateY(0); } 100% { transform: translateY(15px); } }
@keyframes mg-brute { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(-5px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes mg-turn { 0% { transform: scaleX(1); } 50% { transform: scaleX(-1); } 100% { transform: scaleX(1); } }
@keyframes mg-blade { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(12deg) translateY(1px); } }

/* Scene: language-spanish-romany-verbs (calm, bright interior) */
.scn-language-spanish-romany-verbs {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 40%, #d4c1a8 100%),
    radial-gradient(ellipse at 50% 0%, #fff9ee 0%, transparent 70%);
}
.scn-language-spanish-romany-verbs .table {
  position: absolute;
  bottom: 0; left: 5%; right: 5%;
  height: 30%;
  background: linear-gradient(180deg, #b8896a 0%, #8c6a4e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
}
.scn-language-spanish-romany-verbs .book {
  position: absolute;
  bottom: 22%; left: 22%;
  width: 120px; height: 80px;
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3), inset 0 2px 4px rgba(255,255,240,0.2);
  transform: rotate(2deg);
  animation: sv-book-breathe 6s ease-in-out infinite;
}
.scn-language-spanish-romany-verbs .lamp {
  position: absolute;
  bottom: 28%; left: 55%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: sv-lamp-sway 4s ease-in-out infinite alternate;
}
.scn-language-spanish-romany-verbs .lamp::after {
  content: '';
  position: absolute;
  top: -12px; left: -8px;
  width: 36px; height: 18px;
  background: radial-gradient(ellipse, #ffe680 0%, #eebb55 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,230,128,0.4);
}
.scn-language-spanish-romany-verbs .cup {
  position: absolute;
  bottom: 20%; right: 18%;
  width: 28px; height: 22px;
  background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.1);
  animation: sv-cup-ripple 8s ease-in-out infinite;
}
.scn-language-spanish-romany-verbs .papers {
  position: absolute;
  bottom: 20%; left: 38%;
  width: 70px; height: 10px;
  background: #f0e6d0;
  border-radius: 2px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
  transform: rotate(-5deg);
  animation: sv-paper-shift 10s ease-in-out infinite;
}
.scn-language-spanish-romany-verbs .window-light {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 60%;
  background: linear-gradient(180deg, rgba(255,250,235,0.6) 0%, transparent 100%);
  pointer-events: none;
  animation: sv-light-pulse 12s ease-in-out infinite alternate;
}
.scn-language-spanish-romany-verbs .shadow {
  position: absolute;
  bottom: 0; left: 10%; right: 10%;
  height: 8%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.15) 100%);
  border-radius: 50%;
  filter: blur(6px);
}

@keyframes sv-book-breathe {
  0%, 100% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
}
@keyframes sv-lamp-sway {
  0% { transform: rotate(-2deg); }
  100% { transform: rotate(2deg); }
}
@keyframes sv-cup-ripple {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
}
@keyframes sv-paper-shift {
  0%, 100% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(3px); }
}
@keyframes sv-light-pulse {
  0% { opacity: 0.7; }
  100% { opacity: 1; }
}

/* Scene: item-chourin-etymology (calm, bright interior) */
.scn-item-chourin-etymology {
  background:
    linear-gradient(180deg, #efe4d0 0%, #d8c8b0 50%, #b8a890 100%),
    radial-gradient(ellipse at 70% 30%, #fff5e0 0%, transparent 70%);
}
.scn-item-chourin-etymology .desk {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #9c7a5a 0%, #7a5a3a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
}
.scn-item-chourin-etymology .bookshelf {
  position: absolute;
  top: 12%; left: 10%; right: 10%;
  height: 40%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 0 4px #8c6a4a, 0 4px 12px rgba(0,0,0,0.3);
}
.scn-item-chourin-etymology .dictionary {
  position: absolute;
  bottom: 20%; left: 30%;
  width: 80px; height: 60px;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4), inset 0 1px 2px rgba(255,255,240,0.1);
  transform: rotate(-2deg);
  animation: ce-dict-shift 7s ease-in-out infinite;
}
.scn-item-chourin-etymology .horse-figurine {
  position: absolute;
  bottom: 28%; left: 12%;
  width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 50% 30% 40% / 50% 60% 30% 30%;
  transform: scale(0.8);
  animation: ce-horse-bob 5s ease-in-out infinite;
}
.scn-item-chourin-etymology .magnifying-glass {
  position: absolute;
  bottom: 22%; left: 55%;
  width: 24px; height: 28px;
  background: radial-gradient(circle, #e0e0e0 0%, #b0b0b0 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 0 2px #8a7a6a, inset 0 0 10px rgba(0,0,0,0.2);
  animation: ce-mag-sway 6s ease-in-out infinite alternate;
}
.scn-item-chourin-etymology .window {
  position: absolute;
  top: 6%; left: 15%; right: 15%;
  height: 25%;
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0c0 100%);
  border-radius: 4px 4px 8% 8%;
  box-shadow: inset 0 0 0 6px #8c6a4a, 0 2px 10px rgba(0,0,0,0.2);
}
.scn-item-chourin-etymology .dust-mote {
  position: absolute;
  top: 30%; left: 20%;
  width: 4px; height: 4px;
  background: rgba(255,255,240,0.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: ce-drift-1 20s linear infinite;
}
.scn-item-chourin-etymology .dust-mote-2 {
  position: absolute;
  top: 45%; left: 60%;
  width: 3px; height: 3px;
  background: rgba(255,255,240,0.4);
  border-radius: 50%;
  filter: blur(1px);
  animation: ce-drift-2 25s linear infinite;
}

@keyframes ce-dict-shift {
  0%, 100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-3px); }
}
@keyframes ce-horse-bob {
  0%, 100% { transform: scale(0.8) rotate(0deg); }
  50% { transform: scale(0.8) rotate(5deg); }
}
@keyframes ce-mag-sway {
  0% { transform: rotate(-4deg); }
  100% { transform: rotate(4deg); }
}
@keyframes ce-drift-1 {
  0% { transform: translate(0, 0); opacity: 0.6; }
  50% { transform: translate(30px, -20px); opacity: 0.2; }
  100% { transform: translate(0, 0); opacity: 0.6; }
}
@keyframes ce-drift-2 {
  0% { transform: translate(0, 0); opacity: 0.4; }
  50% { transform: translate(-20px, 30px); opacity: 0.1; }
  100% { transform: translate(0, 0); opacity: 0.4; }
}

/* Scene: etymology-frimousse-concluded (warm, bright interior) */
.scn-etymology-frimousse-concluded {
  background:
    linear-gradient(180deg, #f2dfc0 0%, #e0c8a8 40%, #c8a888 100%),
    radial-gradient(ellipse at 40% 20%, #fff2d0 0%, transparent 60%);
}
.scn-etymology-frimousse-concluded .desk-fc {
  position: absolute;
  bottom: 0; left: 8%; right: 8%;
  height: 28%;
  background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-etymology-frimousse-concluded .old-book-fc {
  position: absolute;
  bottom: 18%; left: 25%;
  width: 100px; height: 70px;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4), inset 0 1px 2px rgba(255,245,220,0.2);
  transform: rotate(-3deg);
  animation: fc-book-pulse 8s ease-in-out infinite;
}
.scn-etymology-frimousse-concluded .candle-fc {
  position: absolute;
  bottom: 22%; left: 60%;
  width: 12px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 0 4px transparent;
  animation: fc-candle-flicker 2s ease-in-out infinite alternate;
}
.scn-etymology-frimousse-concluded .candle-fc::before {
  content: '';
  position: absolute;
  top: -10px; left: -4px;
  width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd060 0%, #e09a30 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(224,154,48,0.4);
  animation: fc-flame 1.5s ease-in-out infinite alternate;
}
.scn-etymology-frimousse-concluded .scroll-fc {
  position: absolute;
  bottom: 16%; left: 42%;
  width: 60px; height: 12px;
  background: linear-gradient(90deg, #dcc8a8 0%, #b8a080 100%);
  border-radius: 20px;
  transform: rotate(10deg);
  animation: fc-scroll-unroll 12s ease-in-out infinite;
}
.scn-etymology-frimousse-concluded .quill-fc {
  position: absolute;
  bottom: 24%; left: 50%;
  width: 4px; height: 30px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 0 0 50% 50% / 0 0 90% 90%;
  transform-origin: bottom center;
  animation: fc-quill-twitch 4s ease-in-out infinite;
}
.scn-etymology-frimousse-concluded .inkwell-fc {
  position: absolute;
  bottom: 20%; left: 48%;
  width: 18px; height: 16px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-etymology-frimousse-concluded .shadow-fc {
  position: absolute;
  bottom: 0; left: 15%; right: 15%;
  height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
}

@keyframes fc-book-pulse {
  0%, 100% { transform: rotate(-3deg) scale(1); }
  50% { transform: rotate(-2deg) scale(1.02); }
}
@keyframes fc-candle-flicker {
  0% { transform: scaleY(1) translateY(0); }
  100% { transform: scaleY(0.95) translateY(-1px); }
}
@keyframes fc-flame {
  0% { transform: scale(0.9); opacity: 0.8; }
  100% { transform: scale(1.1); opacity: 1; }
}
@keyframes fc-scroll-unroll {
  0%, 100% { width: 60px; opacity: 1; }
  50% { width: 80px; opacity: 0.9; }
}
@keyframes fc-quill-twitch {
  0%, 100% { transform: rotate(2deg); }
  50% { transform: rotate(-2deg); }
}

.scn-gipsy-complexion { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, transparent 60%); }
.scn-gipsy-complexion .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 30%, #2a1a0a 100%); }
.scn-gipsy-complexion .window-frame { position:absolute; top:10%; left:10%; width:30%; height:40%; border:6px solid #4a3a2a; border-radius:4px; background: transparent; box-shadow: inset 0 0 40px #1a0a00; }
.scn-gipsy-complexion .window-light { position:absolute; top:10%; left:10%; width:30%; height:40%; background: radial-gradient(ellipse at 30% 40%, #c8a870 0%, transparent 70%); animation: gy-window-glow 6s ease-in-out infinite alternate; }
.scn-gipsy-complexion .candle { position:absolute; bottom:35%; left:55%; width:6px; height:40px; background: linear-gradient(180deg, #d4a060 0%, #a07040 100%); border-radius:2px; transform:rotate(-5deg); }
.scn-gipsy-complexion .candle-glow { position:absolute; bottom:50%; left:55%; width:40px; height:40px; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 50%, transparent 70%); border-radius:50%; animation: gy-candle-glow 2s ease-in-out infinite alternate; }
.scn-gipsy-complexion .figure { position:absolute; bottom:20%; left:40%; width:50px; height:120px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: gy-figure-breathe 4s ease-in-out infinite; }
.scn-gipsy-complexion .shawl { position:absolute; bottom:25%; left:36%; width:70px; height:50px; background: linear-gradient(135deg, #8a4a3a 0%, #6a2a1a 100%); border-radius: 60% 40% 50% 50% / 40% 60% 50% 50%; transform: rotate(10deg); animation: gy-shawl-sway 5s ease-in-out infinite; }
.scn-gipsy-complexion .table { position:absolute; bottom:8%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.5); }
@keyframes gy-window-glow { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:0.8; transform:scale(1.05); } 100% { opacity:0.5; transform:scale(0.95); } }
@keyframes gy-candle-glow { 0% { transform:scale(0.8); opacity:0.7; } 50% { transform:scale(1.2); opacity:1; } 100% { transform:scale(0.85); opacity:0.75; } }
@keyframes gy-figure-breathe { 0%,100% { transform:translateY(0px) rotate(-1deg); } 50% { transform:translateY(-3px) rotate(1deg); } }
@keyframes gy-shawl-sway { 0%,100% { transform:rotate(8deg) translateX(0px); } 50% { transform:rotate(12deg) translateX(4px); } }

.scn-strange-beauty { background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 40%, #1a0a0a 100%), radial-gradient(ellipse at 50% 0%, #3a2a2a 0%, transparent 70%); }
.scn-strange-beauty .bg-dark { position:absolute; inset:0; background: linear-gradient(90deg, #0a0a1a 0%, #1a0a0a 50%, #0a0a1a 100%); }
.scn-strange-beauty .hair-back { position:absolute; bottom:30%; left:30%; width:120px; height:130px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(5deg); }
.scn-strange-beauty .hair-strand-1 { position:absolute; bottom:35%; left:20%; width:80px; height:30px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius: 100% 0% 50% 50% / 100% 0% 50% 50%; transform:rotate(-20deg); animation: sb-hair-1 8s ease-in-out infinite alternate; }
.scn-strange-beauty .hair-strand-2 { position:absolute; bottom:38%; right:20%; width:70px; height:25px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius: 0% 100% 50% 50% / 0% 100% 50% 50%; transform:rotate(15deg); animation: sb-hair-2 10s ease-in-out infinite alternate; }
.scn-strange-beauty .face-silhouette { position:absolute; bottom:35%; left:40%; width:50px; height:70px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-strange-beauty .earring { position:absolute; bottom:43%; left:36%; width:6px; height:14px; background: #d4a060; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; animation: sb-earring-swing 2s ease-in-out infinite alternate; }
.scn-strange-beauty .shoulder { position:absolute; bottom:15%; left:35%; right:35%; height:40px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%; }
.scn-strange-beauty .blue-light { position:absolute; bottom:35%; left:20%; right:20%; height:100px; background: radial-gradient(ellipse at 50% 100%, rgba(80,100,200,0.6) 0%, transparent 70%); animation: sb-blue-glow 5s ease-in-out infinite alternate; mix-blend-mode: screen; }
@keyframes sb-hair-1 { 0% { transform:rotate(-20deg) translateY(0); } 50% { transform:rotate(-15deg) translateY(-4px); } 100% { transform:rotate(-22deg) translateY(2px); } }
@keyframes sb-hair-2 { 0% { transform:rotate(15deg) translateY(0); } 50% { transform:rotate(10deg) translateY(-3px); } 100% { transform:rotate(18deg) translateY(1px); } }
@keyframes sb-earring-swing { 0% { transform:rotate(-5deg); } 100% { transform:rotate(5deg); } }
@keyframes sb-blue-glow { 0% { opacity:0.3; transform:scale(0.9); } 50% { opacity:0.7; transform:scale(1.1); } 100% { opacity:0.4; transform:scale(0.95); } }

.scn-fortune-telling-request { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 100%, #4a3222 0%, transparent 60%); }
.scn-fortune-telling-request .bg-room { position:absolute; inset:0; background: linear-gradient(90deg, #2a1a0a 0%, #3a2212 40%, #2a1a0a 100%); }
.scn-fortune-telling-request .tabletop { position:absolute; bottom:15%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: 0 -8px 30px rgba(0,0,0,0.6); }
.scn-fortune-telling-request .cards { position:absolute; bottom:22%; left:30%; width:40px; height:30px; background: linear-gradient(135deg, #d4a060 0%, #b08040 100%); border-radius:2px; transform:rotate(-15deg); animation: fr-cards-fan 7s ease-in-out infinite; }
.scn-fortune-telling-request .candle { position:absolute; bottom:30%; right:25%; width:5px; height:35px; background: linear-gradient(180deg, #d4a060 0%, #a07040 100%); border-radius:2px; transform:rotate(3deg); }
.scn-fortune-telling-request .candle-glow { position:absolute; bottom:40%; right:25%; width:35px; height:35px; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.2) 50%, transparent 70%); border-radius:50%; animation: fr-candle-glow 3s ease-in-out infinite alternate; }
.scn-fortune-telling-request .hand-fortune { position:absolute; bottom:20%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(10deg); animation: fr-hand-read 5s ease-in-out infinite alternate; }
.scn-fortune-telling-request .hand-gypsy { position:absolute; bottom:22%; left:45%; width:18px; height:28px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(-15deg); animation: fr-hand-point 6s ease-in-out infinite alternate; }
.scn-fortune-telling-request .figure-gypsy { position:absolute; bottom:25%; left:55%; width:45px; height:110px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: fr-breathe 4s ease-in-out infinite; }
@keyframes fr-cards-fan { 0% { transform:rotate(-15deg) translateY(0); } 50% { transform:rotate(-10deg) translateY(-2px); } 100% { transform:rotate(-18deg) translateY(1px); } }
@keyframes fr-candle-glow { 0% { transform:scale(0.8); opacity:0.6; } 50% { transform:scale(1.15); opacity:1; } 100% { transform:scale(0.85); opacity:0.7; } }
@keyframes fr-hand-read { 0% { transform:rotate(10deg) translateX(0); } 50% { transform:rotate(15deg) translateX(3px); } 100% { transform:rotate(8deg) translateX(-2px); } }
@keyframes fr-hand-point { 0% { transform:rotate(-15deg) translateY(0); } 50% { transform:rotate(-10deg) translateY(-3px); } 100% { transform:rotate(-18deg) translateY(1px); } }
@keyframes fr-breathe { 0%,100% { transform:translateY(0px); } 50% { transform:translateY(-2px); } }

.scn-item-repeater { background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 70%); }
.scn-item-repeater .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 60%, #0a0a0a 100%); }
.scn-item-repeater .bridge { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 -5px 20px rgba(0,0,0,0.8); }
.scn-item-repeater .river { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); animation: ir-river-flow 20s linear infinite; }
.scn-item-repeater .house-door { position:absolute; bottom:45%; left:40%; width:40px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: 0 0 20px rgba(0,0,0,0.5); }
.scn-item-repeater .door-light { position:absolute; bottom:50%; left:42%; width:10px; height:10px; background: radial-gradient(circle, #f0c060 0%, rgba(240,192,96,0.3) 50%, transparent 70%); border-radius:50%; animation: ir-door-glow 4s ease-in-out infinite alternate; }
.scn-item-repeater .figure { position:absolute; bottom:40%; left:50%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ir-walk 6s ease-in-out infinite; }
.scn-item-repeater .lantern { position:absolute; bottom:43%; left:48%; width:8px; height:12px; background: #d4a060; border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 0 15px 3px rgba(212,160,96,0.5); animation: ir-lantern-swing 3s ease-in-out infinite alternate; }
.scn-item-repeater .cobblestone-1 { position:absolute; bottom:30%; left:20%; width:30px; height:15px; background: #3a2a1a; border-radius: 30% 30% 20% 20%; transform:rotate(5deg); animation: ir-stone-glow 8s ease-in-out infinite alternate; }
.scn-item-repeater .cobblestone-2 { position:absolute; bottom:28%; left:50%; width:25px; height:12px; background: #4a3a2a; border-radius: 30% 30% 20% 20%; transform:rotate(-8deg); animation: ir-stone-glow 10s ease-in-out infinite alternate; animation-delay: 2s; }
@keyframes ir-river-flow { 0% { background-position: 0 0; } 100% { background-position: -200px 0; } }
@keyframes ir-door-glow { 0% { opacity:0.2; transform:scale(0.8); } 50% { opacity:0.8; transform:scale(1.3); } 100% { opacity:0.3; transform:scale(0.9); } }
@keyframes ir-walk { 0% { transform:translateX(0) translateY(0) rotate(0); } 25% { transform:translateX(10px) translateY(-1px) rotate(-2deg); } 50% { transform:translateX(20px) translateY(0) rotate(0); } 75% { transform:translateX(30px) translateY(-1px) rotate(2deg); } 100% { transform:translateX(40px) translateY(0) rotate(0); } }
@keyframes ir-lantern-swing { 0% { transform:rotate(-10deg) translateX(0); } 50% { transform:rotate(0deg) translateX(2px); } 100% { transform:rotate(10deg) translateX(0); } }
@keyframes ir-stone-glow { 0% { opacity:0.5; } 50% { opacity:0.9; } 100% { opacity:0.6; } }

/* melancholic-thought */
.scn-melancholic-thought {
  background: linear-gradient(180deg, #1a1018 0%, #2c1c14 40%, #3a2218 70%, #2c1c14 100%),
              radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 60%);
}
.scn-melancholic-thought .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1c1210 0%, #2a1a14 60%, #3a2218 100%);
  border-radius: 0 0 30% 30% / 0 0 40% 40%;
}
.scn-melancholic-thought .fire {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #cc5522 40%, #882200 70%, transparent 100%);
  animation: mbt-fire 4s ease-in-out infinite alternate;
}
.scn-melancholic-thought .figure {
  position: absolute; bottom: 25%; left: 45%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #0e0a0a 0%, #1a1212 50%, #0e0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mbt-figure 8s ease-in-out infinite alternate;
}
.scn-melancholic-thought .mandolin {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 30px;
  background: linear-gradient(90deg, #4a3020, #2a1a10, #4a3020);
  border-radius: 40% 60% 60% 40% / 50% 50% 50% 50%;
  transform: rotate(-25deg);
  animation: mbt-mandolin 12s ease-in-out infinite alternate;
}
.scn-melancholic-thought .glow {
  position: absolute; bottom: 20%; left: 50%; width: 200px; height: 200px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,140,66,0.3) 0%, transparent 70%);
  animation: mbt-glow 5s ease-in-out infinite alternate;
}
.scn-melancholic-thought .shadow {
  position: absolute; bottom: 0; left: 30%; width: 150px; height: 80px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  filter: blur(8px);
  animation: mbt-shad 6s ease-in-out infinite alternate;
}
@keyframes mbt-fire {
  0% { transform: scale(1) translateX(-50%) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.05) translateX(-50%) translateY(-5px); opacity: 1; }
  100% { transform: scale(0.95) translateX(-50%) translateY(3px); opacity: 0.9; }
}
@keyframes mbt-figure {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(-5px); }
  100% { transform: rotate(2deg) translateX(5px); }
}
@keyframes mbt-mandolin {
  0% { transform: rotate(-25deg) scale(1); }
  50% { transform: rotate(-30deg) scale(0.98); }
  100% { transform: rotate(-20deg) scale(1.02); }
}
@keyframes mbt-glow {
  0% { opacity: 0.4; transform: scale(1) translateX(-50%); }
  50% { opacity: 0.7; transform: scale(1.1) translateX(-50%); }
  100% { opacity: 0.5; transform: scale(0.9) translateX(-50%); }
}
@keyframes mbt-shad {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.2) translateX(5px); }
  100% { transform: scaleX(0.8) translateX(-5px); }
}

/* night-rest */
.scn-night-rest {
  background: linear-gradient(180deg, #1a1210 0%, #2c1c14 40%, #3a2218 70%, #2c1c14 100%),
              radial-gradient(ellipse at 60% 85%, #5a3a22 0%, transparent 70%);
}
.scn-night-rest .corner {
  position: absolute; inset: 20% 0 0 0;
  background: linear-gradient(135deg, #1c1412 0%, #2a1c14 50%, #3a2418 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%);
}
.scn-night-rest .rug {
  position: absolute; bottom: 20%; left: 10%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #6a4a3a, #4a3020);
  border-radius: 0 20% 40% 20%;
  transform: rotate(-5deg);
}
.scn-night-rest .figure-old {
  position: absolute; bottom: 22%; left: 15%; width: 45px; height: 70px;
  background: linear-gradient(180deg, #1a1212, #0e0a0a);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: nrt-sleep 6s ease-in-out infinite alternate;
}
.scn-night-rest .figure-young {
  position: absolute; bottom: 22%; left: 25%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #1a1412, #0e0a0a);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: nrt-sleep 6s ease-in-out infinite alternate-reverse;
}
.scn-night-rest .fire-nr {
  position: absolute; bottom: 18%; right: 20%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #cc5522 40%, #882200 70%, transparent 100%);
  animation: nrt-fire 5s ease-in-out infinite alternate;
}
.scn-night-rest .rope {
  position: absolute; top: 30%; left: 5%; width: 4px; height: 60%;
  background: #3a2a1a;
  border-radius: 2px;
  animation: nrt-rope 8s ease-in-out infinite alternate;
}
.scn-night-rest .warm-glow {
  position: absolute; bottom: 10%; right: 10%; width: 250px; height: 250px;
  background: radial-gradient(circle, rgba(255,140,66,0.2) 0%, transparent 70%);
  animation: nrt-glow 6s ease-in-out infinite alternate;
}
@keyframes nrt-sleep {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes nrt-fire {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.1) translateY(-6px); opacity: 1; }
  100% { transform: scale(0.95) translateY(3px); opacity: 0.9; }
}
@keyframes nrt-rope {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes nrt-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

/* guide-deception */
.scn-guide-deception {
  background: linear-gradient(180deg, #0e0a0e 0%, #1a1216 40%, #2c1c24 70%, #1a1216 100%),
              radial-gradient(ellipse at 30% 50%, #3a2a2a 0%, transparent 60%);
}
.scn-guide-deception .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #141018 0%, #221a20 50%, #2a2028 100%);
}
.scn-guide-deception .table {
  position: absolute; bottom: 25%; left: 20%; width: 100px; height: 20px;
  background: linear-gradient(180deg, #3a2a22, #2a1a14);
  border-radius: 4px;
  transform: rotate(-3deg);
}
.scn-guide-deception .antonio {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1418, #0e0a0e);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gdd-antonio 3s ease-in-out infinite alternate;
}
.scn-guide-deception .narrator {
  position: absolute; bottom: 22%; left: 55%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1418, #0e0a0e);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gdd-narrator 3s ease-in-out infinite alternate-reverse;
}
.scn-guide-deception .donjose-bg {
  position: absolute; bottom: 20%; right: 5%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1418, #0e0a0e);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  opacity: 0.6;
  filter: blur(2px);
  animation: gdd-donjose 5s ease-in-out infinite alternate;
}
.scn-guide-deception .doorway {
  position: absolute; right: 0; top: 10%; width: 50px; height: 80%;
  background: linear-gradient(90deg, #0e0a0e 0%, #1a1216 100%);
  border-radius: 0 30% 0 0;
}
.scn-guide-deception .tension-glow {
  position: absolute; top: 30%; left: 40%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(180,130,70,0.15) 0%, transparent 70%);
  animation: gdd-glow 2s ease-in-out infinite alternate;
}
@keyframes gdd-antonio {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(4px); }
  100% { transform: rotate(5deg) translateX(-2px); }
}
@keyframes gdd-narrator {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(-4px); }
  100% { transform: rotate(-5deg) translateX(2px); }
}
@keyframes gdd-donjose {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.4; }
  50% { transform: translateY(-5px) rotate(-2deg); opacity: 0.7; }
  100% { transform: translateY(2px) rotate(2deg); opacity: 0.5; }
}
@keyframes gdd-glow {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.3); }
  100% { opacity: 0.3; transform: scale(0.8); }
}

/* stable-search */
.scn-stable-search {
  background: linear-gradient(180deg, #0e0e10 0%, #1a1a1e 40%, #2c2a2e 70%, #1a1a1e 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a22 0%, transparent 70%);
}
.scn-stable-search .stable-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #141416 0%, #1e1c20 50%, #28262a 100%);
}
.scn-stable-search .horse {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #2a2220, #1a1412, #0e0a0a);
  border-radius: 30% 40% 20% 20% / 60% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: sts-horse 8s ease-in-out infinite alternate;
}
.scn-stable-search .lantern-ss {
  position: absolute; top: 25%; right: 25%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 80%, #ffaa55 0%, #cc6622 50%, #882200 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 8px rgba(255,170,85,0.4);
  animation: sts-lantern 3s ease-in-out infinite alternate;
}
.scn-stable-search .straw {
  position: absolute; bottom: 15%; left: 10%; width: 120px; height: 40px;
  background: repeating-linear-gradient(45deg, #4a3a2a 0px, #4a3a2a 4px, #5a4a3a 4px, #5a4a3a 8px);
  border-radius: 30% 30% 50% 50%;
  opacity: 0.6;
  animation: sts-straw 12s linear infinite;
}
.scn-stable-search .door-ss {
  position: absolute; right: 5%; top: 10%; width: 60px; height: 80%;
  background: linear-gradient(90deg, #1a1416 0%, #2a2224 50%, #1a1416 100%);
  border-radius: 10% 20% 0 0;
}
.scn-stable-search .figure-donjose {
  position: absolute; bottom: 20%; left: 60%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #1e181a, #0e0a0c);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: sts-donjose 6s ease-in-out infinite alternate;
}
.scn-stable-search .shadow-ss {
  position: absolute; bottom: 0; left: 20%; width: 200px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(6px);
  animation: sts-shadow 7s ease-in-out infinite alternate;
}
@keyframes sts-horse {
  0% { transform: rotate(-5deg) scaleX(1); }
  50% { transform: rotate(0deg) scaleX(1.02); }
  100% { transform: rotate(5deg) scaleX(0.98); }
}
@keyframes sts-lantern {
  0% { transform: rotate(-3deg) scale(1); opacity: 0.8; }
  50% { transform: rotate(3deg) scale(1.05); opacity: 1; }
  100% { transform: rotate(0deg) scale(0.95); opacity: 0.9; }
}
@keyframes sts-straw {
  0% { background-position: 0 0; }
  100% { background-position: 100px 0; }
}
@keyframes sts-donjose {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(2px) rotate(2deg); }
}
@keyframes sts-shadow {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.3) translateX(10px); }
  100% { transform: scaleX(0.8) translateX(-10px); }
}

/* betrayal-confirmed */
.scn-betrayal-confirmed {
  background:
    linear-gradient(180deg, #0f1a2e 0%, #1a2a40 60%, #101c28 100%),
    radial-gradient(ellipse at 70% 30%, rgba(100,120,160,0.4) 0%, transparent 60%);
}
.scn-betrayal-confirmed .moon-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #1a2a4a 0%, #0e1828 100%);
  animation: bc-sky 20s ease-in-out infinite alternate;
}
.scn-betrayal-confirmed .stable-wall {
  position:absolute; bottom:20%; left:10%; width:80%; height:50%;
  background: linear-gradient(135deg, #2a3a3a 0%, #1a2a2a 50%, #0e1a1a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-betrayal-confirmed .stable-roof {
  position:absolute; bottom:68%; left:5%; width:90%; height:15%;
  background: linear-gradient(180deg, #1a2828 0%, #0f1a1a 100%);
  clip-path: polygon(5% 0%, 95% 0%, 100% 100%, 0% 100%);
  animation: bc-roof 12s ease-in-out infinite;
}
.scn-betrayal-confirmed .sleeping-figure {
  position:absolute; bottom:22%; left:20%; width:40px; height:50px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2828 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bc-sleep 8s ease-in-out infinite alternate;
}
.scn-betrayal-confirmed .horse {
  position:absolute; bottom:18%; right:18%; width:70px; height:60px;
  background: linear-gradient(135deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 40% 30% 40% / 60% 40% 40% 50%;
  animation: bc-horse 15s ease-in-out infinite;
}
.scn-betrayal-confirmed .muffling-figure {
  position:absolute; bottom:22%; right:28%; width:30px; height:45px;
  background: linear-gradient(180deg, #1e2e2e 0%, #0e1e1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bc-muffle 5s ease-in-out infinite alternate;
}
.scn-betrayal-confirmed .moonbeam {
  position:absolute; top:10%; left:35%; width:200px; height:250px;
  background: linear-gradient(180deg, rgba(180,200,240,0.15) 0%, rgba(180,200,240,0.05) 80%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  filter: blur(8px);
  animation: bc-beam 10s ease-in-out infinite alternate;
}
.scn-betrayal-confirmed .dust {
  position:absolute; bottom:25%; left:50%; width:20px; height:20px;
  background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: bc-dust 6s ease-in-out infinite alternate;
}
@keyframes bc-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes bc-roof { 0% { transform:scaleY(1); } 50% { transform:scaleY(0.98) translateY(-1px); } 100% { transform:scaleY(1); } }
@keyframes bc-sleep { 0% { transform:translateX(0) rotate(-2deg); } 50% { transform:translateX(3px) rotate(0deg); } 100% { transform:translateX(-2px) rotate(1deg); } }
@keyframes bc-horse { 0% { transform:rotate(-1deg) translateX(0); } 50% { transform:rotate(1deg) translateX(3px); } 100% { transform:rotate(0deg) translateX(-2px); } }
@keyframes bc-muffle { 0% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-5px) rotate(0deg); } 100% { transform:translateY(0) rotate(3deg); } }
@keyframes bc-beam { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:0.9; transform:scale(1.05); } 100% { opacity:0.7; transform:scale(0.95); } }
@keyframes bc-dust { 0% { transform:translate(0,0) scale(1); opacity:0.3; } 50% { transform:translate(10px,-10px) scale(1.5); opacity:0.1; } 100% { transform:translate(-5px,5px) scale(0.8); opacity:0.4; } }

/* jose-navarro-revealed */
.scn-jose-navarro-revealed {
  background:
    linear-gradient(180deg, #0d1a2e 0%, #1a2a40 60%, #0f1c2a 100%),
    radial-gradient(ellipse at 60% 20%, rgba(180,200,240,0.2) 0%, transparent 70%);
}
.scn-jose-navarro-revealed .night-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #152a4a 0%, #0e1a2e 100%);
  animation: jnr-sky 25s ease-in-out infinite alternate;
}
.scn-jose-navarro-revealed .moon {
  position:absolute; top:10%; left:70%; width:50px; height:50px;
  background: radial-gradient(circle, #c8d0e8 0%, #a0b0d0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(160,180,220,0.3);
  animation: jnr-moon 20s ease-in-out infinite;
}
.scn-jose-navarro-revealed .figure-right {
  position:absolute; bottom:20%; right:30%; width:28px; height:60px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jnr-right 7s ease-in-out infinite alternate;
}
.scn-jose-navarro-revealed .figure-left {
  position:absolute; bottom:20%; left:30%; width:30px; height:58px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jnr-left 7s ease-in-out infinite alternate;
}
.scn-jose-navarro-revealed .whisper-lines {
  position:absolute; bottom:45%; left:40%; width:40px; height:20px;
  border: 1px solid rgba(180,200,240,0.2);
  border-left: none; border-right: none;
  border-radius: 70% 70% 0 0;
  animation: jnr-whisper 3s ease-in-out infinite alternate;
}
.scn-jose-navarro-revealed .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0e1a1a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
@keyframes jnr-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes jnr-moon { 0% { transform:scale(1) translateY(0); } 50% { transform:scale(1.05) translateY(-3px); } 100% { transform:scale(0.95) translateY(2px); } }
@keyframes jnr-right { 0% { transform:rotate(-5deg) translateX(0); } 50% { transform:rotate(0deg) translateX(2px); } 100% { transform:rotate(5deg) translateX(-2px); } }
@keyframes jnr-left { 0% { transform:rotate(5deg) translateX(0); } 50% { transform:rotate(0deg) translateX(-2px); } 100% { transform:rotate(-5deg) translateX(2px); } }
@keyframes jnr-whisper { 0% { opacity:0.1; transform:scaleY(0.5); } 50% { opacity:0.5; transform:scaleY(1); } 100% { opacity:0.2; transform:scaleY(0.7); } }

/* moral-dilemma */
.scn-moral-dilemma {
  background:
    linear-gradient(180deg, #0a1a2e 0%, #152a40 60%, #0c1a28 100%),
    radial-gradient(ellipse at 50% 80%, rgba(140,120,100,0.3) 0%, transparent 70%);
}
.scn-moral-dilemma .stable-shadow {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #1a2a2a 0%, #0e1e1e 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: md-shadow 15s ease-in-out infinite alternate;
}
.scn-moral-dilemma .horse-silhouette {
  position:absolute; bottom:22%; right:25%; width:90px; height:70px;
  background: linear-gradient(135deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 40% 30% 40% / 60% 40% 40% 50%;
  animation: md-horse 12s ease-in-out infinite;
}
.scn-moral-dilemma .man-standing {
  position:absolute; bottom:20%; left:35%; width:35px; height:70px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: md-man 4s ease-in-out infinite alternate;
}
.scn-moral-dilemma .lantern-glow {
  position:absolute; bottom:40%; left:35%; width:12px; height:12px;
  background: radial-gradient(circle, #d0b080 0%, #a08060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(160,128,96,0.4);
  animation: md-lantern 3s ease-in-out infinite alternate;
}
.scn-moral-dilemma .thought-rings {
  position:absolute; bottom:55%; left:38%; width:30px; height:30px;
  border: 2px solid rgba(180,200,240,0.15);
  border-radius: 50%;
  animation: md-thought 6s ease-in-out infinite;
}
.scn-moral-dilemma .straw-floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 0 0 / 50% 50% 0 0;
  background-size: 20px 20px;
}
@keyframes md-shadow { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes md-horse { 0% { transform:translateX(0) rotate(-1deg); } 50% { transform:translateX(5px) rotate(1deg); } 100% { transform:translateX(-3px) rotate(0deg); } }
@keyframes md-man { 0% { transform:rotate(-2deg) translateX(0) scaleY(1); } 50% { transform:rotate(0deg) translateX(3px) scaleY(1.02); } 100% { transform:rotate(2deg) translateX(-2px) scaleY(0.98); } }
@keyframes md-lantern { 0% { box-shadow: 0 0 20px 5px rgba(160,128,96,0.3); opacity:0.8; } 50% { box-shadow: 0 0 40px 15px rgba(180,150,110,0.6); opacity:1; } 100% { box-shadow: 0 0 25px 8px rgba(160,128,96,0.4); opacity:0.85; } }
@keyframes md-thought { 0% { transform:scale(0.5) rotate(0deg); opacity:0.1; } 50% { transform:scale(1.2) rotate(180deg); opacity:0.4; } 100% { transform:scale(0.8) rotate(360deg); opacity:0.2; } }

/* guide-rides-away */
.scn-guide-rides-away {
  background:
    linear-gradient(180deg, #0a1a30 0%, #142a40 50%, #1a2a3a 100%),
    radial-gradient(ellipse at 70% 20%, rgba(180,200,240,0.2) 0%, transparent 70%);
}
.scn-guide-rides-away .moonlit-sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #152a4a 0%, #0e1a2e 100%);
  animation: gra-sky 30s ease-in-out infinite alternate;
}
.scn-guide-rides-away .distant-mountains {
  position:absolute; bottom:30%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 100%);
  clip-path: polygon(0% 60%, 15% 20%, 30% 40%, 50% 10%, 70% 30%, 85% 15%, 100% 40%, 100% 100%, 0% 100%);
  animation: gra-mtn 20s ease-in-out infinite;
}
.scn-guide-rides-away .plain {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0e1a1a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
}
.scn-guide-rides-away .rider-horse {
  position:absolute; bottom:22%; left:20%; width:100px; height:80px;
  background: linear-gradient(135deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 40% 30% 40% / 60% 40% 40% 50%;
  animation: gra-ride 8s ease-in-out infinite alternate;
}
.scn-guide-rides-away .rider-horse::before {
  content:""; position:absolute; top:-20px; left:10px; width:30px; height:40px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gra-rider 8s ease-in-out infinite alternate;
}
.scn-guide-rides-away .dust-trail {
  position:absolute; bottom:15%; left:30%; width:200px; height:30px;
  background: linear-gradient(90deg, transparent 0%, rgba(180,170,150,0.15) 30%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: gra-dust 4s ease-in-out infinite alternate;
}
.scn-guide-rides-away .moon {
  position:absolute; top:8%; right:20%; width:40px; height:40px;
  background: radial-gradient(circle, #c8d0e8 0%, #a0b0d0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(160,180,220,0.3);
  animation: gra-moon 25s ease-in-out infinite;
}
@keyframes gra-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes gra-mtn { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(1px); } }
@keyframes gra-ride { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(40px) rotate(1deg); } 100% { transform:translateX(0) rotate(-1deg); } }
@keyframes gra-rider { 0% { transform:rotate(-3deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-2px); } 100% { transform:rotate(-1deg) translateY(0); } }
@keyframes gra-dust { 0% { opacity:0.1; transform:scaleX(1); } 50% { opacity:0.4; transform:scaleX(1.5); } 100% { opacity:0.2; transform:scaleX(0.8); } }
@keyframes gra-moon { 0% { transform:scale(1) translateY(0); } 50% { transform:scale(1.03) translateY(-2px); } 100% { transform:scale(0.97) translateY(1px); } }

.scn-don-jose-background { background: linear-gradient(180deg, #2a1e12 0%, #1e140c 40%, #120c08 100%), radial-gradient(ellipse at 40% 50%, #4a3020 0%, transparent 60%); }
.scn-don-jose-background .interior-wall { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #3d2b1a 0%, #2a1e12 100%); }
.scn-don-jose-background .window { position:absolute; top:15%; left:55%; width:80px; height:120px; background: radial-gradient(circle at 50% 40%, #6a5a4a 0%, #3a2a1a 100%); border:4px solid #1e140c; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: djb-window 10s ease-in-out infinite alternate; }
.scn-don-jose-background .table { position:absolute; bottom:10%; left:20%; width:60%; height:30px; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius:2px; box-shadow: 0 -6px 12px rgba(0,0,0,.5); }
.scn-don-jose-background .candle { position:absolute; bottom:15%; left:35%; width:8px; height:40px; background: linear-gradient(180deg, #c89050 0%, #8a6030 70%, #3a2010 100%); border-radius:4px 4px 2px 2px; transform-origin: bottom center; animation: djb-candle 5s ease-in-out infinite; }
.scn-don-jose-background .candle-glow { position:absolute; bottom:22%; left:35%; width:40px; height:40px; background: radial-gradient(circle, #ffcc70 0%, #c08040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px #b07040, 0 0 60px 20px rgba(160,80,40,.2); animation: djb-glow 4s ease-in-out infinite alternate; }
.scn-don-jose-background .figure-silhouette { position:absolute; bottom:8%; left:20%; width:60px; height:120px; background: linear-gradient(180deg, #1a1008 0%, #0d0804 100%); border-radius: 60% 40% 30% 40% / 70% 60% 40% 50%; transform-origin: bottom center; animation: djb-figure 8s ease-in-out infinite; }
@keyframes djb-window   { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:.8; transform: scaleY(1.02) } 100% { opacity:.7; transform: scaleY(.98) } }
@keyframes djb-candle   { 0%,100% { transform: translateY(0) rotate(0) scaleY(1) } 25% { transform: translateY(-1px) rotate(2deg) scaleY(1.01) } 50% { transform: translateY(0) rotate(-1deg) scaleY(1) } 75% { transform: translateY(-1px) rotate(1deg) scaleY(1) } }
@keyframes djb-glow     { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:.8; transform: scale(1.05) } }
@keyframes djb-figure   { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(5px) rotate(2deg) } 70% { transform: translateX(-3px) rotate(-1deg) } }

.scn-seville-tobacco-factory { background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #c0ac8c 100%), radial-gradient(ellipse at 50% 60%, #f0e4d0 0%, transparent 70%); }
.scn-seville-tobacco-factory .room-bg { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #e0d4be 0%, #c8bca6 100%); }
.scn-seville-tobacco-factory .window-row { position:absolute; top:10%; left:5%; right:5%; height:30%; background: repeating-linear-gradient(90deg, #f5eedd 0%, #f5eedd 50px, transparent 50px, transparent 80px); border-radius:8px; box-shadow: inset 0 10px 20px rgba(255,255,200,.4); animation: stf-window 15s ease-in-out infinite alternate; }
.scn-seville-tobacco-factory .sunbeam { position:absolute; top:0%; left:20%; width:80px; height:100%; background: linear-gradient(180deg, rgba(255,255,220,.4) 0%, transparent 100%); transform: skewX(-15deg); filter: blur(6px); animation: stf-sunbeam 12s linear infinite; }
.scn-seville-tobacco-factory .table-line { position:absolute; bottom:25%; left:10%; right:10%; height:4px; background: linear-gradient(90deg, transparent, #8a7a6a, transparent); }
.scn-seville-tobacco-factory .worker { position:absolute; bottom:20%; width:40px; height:80px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: stf-worker 6s ease-in-out infinite; }
.scn-seville-tobacco-factory .worker-1 { left:20%; animation-delay:0s; }
.scn-seville-tobacco-factory .worker-2 { left:45%; animation-delay:-2s; }
.scn-seville-tobacco-factory .worker-3 { left:70%; animation-delay:-4s; }
.scn-seville-tobacco-factory .cigar-pile { position:absolute; bottom:10%; left:30%; right:30%; height:20px; background: repeating-linear-gradient(45deg, #6a4a2a 0%, #6a4a2a 8px, #8a6a4a 8px, #8a6a4a 16px); border-radius:40% 40% 20% 20%; }
@keyframes stf-window   { 0% { opacity:.7; transform: scaleX(1) } 50% { opacity:.9; transform: scaleX(1.03) } 100% { opacity:.8; transform: scaleX(.97) } }
@keyframes stf-sunbeam  { 0% { transform: skewX(-15deg) translateX(-20px) } 50% { transform: skewX(-10deg) translateX(20px) } 100% { transform: skewX(-15deg) translateX(-20px) } }
@keyframes stf-worker   { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(2deg) } }

.scn-carmen-first-appearance { background: linear-gradient(180deg, #f0e6d0 0%, #e0c8a0 30%, #c8a880 100%), radial-gradient(ellipse at 50% 70%, #ffd080 0%, transparent 60%); }
.scn-carmen-first-appearance .street-bg { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #e8dcc4 0%, #d0c0a8 100%); }
.scn-carmen-first-appearance .doorway { position:absolute; left:50%; top:10%; width:120px; height:90%; transform:translateX(-50%); background: #1a1008; border-radius: 0 0 20px 20px; box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 0 50px rgba(255,200,100,.2); }
.scn-carmen-first-appearance .sunburst { position:absolute; top:0; left:50%; width:200px; height:100%; background: radial-gradient(ellipse at 50% 40%, rgba(255,230,150,.7) 0%, transparent 70%); transform:translateX(-50%); animation: cfa-sunburst 8s ease-in-out infinite alternate; }
.scn-carmen-first-appearance .shadow-figure { position:absolute; bottom:5%; left:50%; width:50px; height:140px; background: linear-gradient(180deg, #2a1a10 0%, #0d0804 100%); border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%; transform:translateX(-50%); animation: cfa-figure 5s ease-in-out infinite; }
.scn-carmen-first-appearance .skirt-flash { position:absolute; bottom:5%; left:48%; width:30px; height:50px; background: linear-gradient(180deg, #c8553d 0%, #a03a2a 100%); border-radius: 0 0 30% 30% / 0 0 60% 60%; transform:rotate(10deg); animation: cfa-skirt 3s ease-in-out infinite; }
.scn-carmen-first-appearance .dust-motes { position:absolute; top:30%; left:20%; width:100px; height:200px; background: radial-gradient(circle at 30% 40%, rgba(255,200,100,.15) 0%, transparent 80%); filter: blur(8px); animation: cfa-dust 20s linear infinite; }
@keyframes cfa-sunburst { 0% { opacity:.5; transform:translateX(-50%) scale(1) } 50% { opacity:.8; transform:translateX(-50%) scale(1.1) } 100% { opacity:.6; transform:translateX(-50%) scale(.95) } }
@keyframes cfa-figure   { 0%,100% { transform:translateX(-50%) translateY(0) rotate(0) } 25% { transform:translateX(-50%) translateY(-3px) rotate(2deg) } 50% { transform:translateX(-50%) translateY(0) rotate(-1deg) } 75% { transform:translateX(-50%) translateY(-3px) rotate(1deg) } }
@keyframes cfa-skirt    { 0% { transform:rotate(10deg) scaleX(1) } 50% { transform:rotate(-5deg) scaleX(1.1) } 100% { transform:rotate(10deg) scaleX(1) } }
@keyframes cfa-dust     { 0% { transform: translateY(0) translateX(0) } 50% { transform: translateY(-40px) translateX(20px) } 100% { transform: translateY(0) translateX(0) } }

.scn-carmen-description { background: linear-gradient(135deg, #f5e8d0 0%, #e8c890 50%, #d0a070 100%), radial-gradient(ellipse at 70% 30%, #ffd080 0%, transparent 60%); }
.scn-carmen-description .warm-bg { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #f0dbc0 0%, #e0c098 100%); }
.scn-carmen-description .mantilla { position:absolute; top:10%; left:30%; width:90px; height:80px; background: linear-gradient(135deg, #f0e0c0 0%, #c8a880 100%); border-radius: 0 50% 50% 50% / 0 60% 40% 60%; transform:rotate(-15deg); box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: cds-mantilla 8s ease-in-out infinite alternate; }
.scn-carmen-description .shoulders { position:absolute; top:30%; left:35%; width:80px; height:60px; background: radial-gradient(ellipse at 50% 30%, #e0c8a0 0%, #c8a880 100%); border-radius: 60% 40% 40% 60%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); }
.scn-carmen-description .skirt-short { position:absolute; bottom:20%; left:30%; width:100px; height:80px; background: linear-gradient(180deg, #a0461a 0%, #7a3010 100%); border-radius: 0 0 40% 40% / 0 0 80% 80%; transform:rotate(5deg); animation: cds-skirt 6s ease-in-out infinite; }
.scn-carmen-description .stockings { position:absolute; bottom:5%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #f5f0e0 0%, #e0d0b8 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform:skewX(2deg); }
.scn-carmen-description .shoes { position:absolute; bottom:3%; left:32%; width:30px; height:20px; background: linear-gradient(180deg, #c8553d 0%, #a03a2a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform:rotate(-10deg); animation: cds-shoe 4s ease-in-out infinite; }
.scn-carmen-description .ribbon-flame { position:absolute; bottom:20%; left:28%; width:40px; height:8px; background: linear-gradient(90deg, #c8553d 0%, #e87850 100%); border-radius:4px; transform:rotate(-25deg); box-shadow: 0 0 12px #e87850; animation: cds-ribbon 5s ease-in-out infinite alternate; }
@keyframes cds-mantilla { 0% { transform:rotate(-15deg) translateY(0) } 50% { transform:rotate(-10deg) translateY(-2px) } 100% { transform:rotate(-15deg) translateY(0) } }
@keyframes cds-skirt    { 0% { transform:rotate(5deg) scaleY(1) } 50% { transform:rotate(0deg) scaleY(1.05) } 100% { transform:rotate(5deg) scaleY(1) } }
@keyframes cds-shoe     { 0%,100% { transform:rotate(-10deg) translateY(0) } 25% { transform:rotate(-5deg) translateY(-2px) } 50% { transform:rotate(-10deg) translateY(0) } 75% { transform:rotate(-15deg) translateY(-1px) } }
@keyframes cds-ribbon   { 0% { opacity:.6; transform:rotate(-25deg) scaleX(1) } 50% { opacity:1; transform:rotate(-20deg) scaleX(1.2) } 100% { opacity:.7; transform:rotate(-25deg) scaleX(1) } }

/* vosges-death-prospect */
.scn-vosges-death-prospect {
  background: linear-gradient(180deg, #2a1e1e 0%, #1f1414 40%, #0f0909 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a2a 0%, transparent 70%);
}
.scn-vosges-death-prospect .room-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #1f1414 0%, #140c0c 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,0.7); }
.scn-vosges-death-prospect .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #0f0909 0%, #1a1111 100%); }
.scn-vosges-death-prospect .window { position:absolute; top:15%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #3a2e2e 0%, #1f1414 100%); border:4px solid #2a1e1e; border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); }
.scn-vosges-death-prospect .candle-glow { position:absolute; bottom:50%; left:50%; width:60px; height:60px; transform:translate(-50%,-50%); background: radial-gradient(circle, #c87540 0%, #a05a30 40%, transparent 70%); border-radius:50%; animation: vdp-glow 4s ease-in-out infinite alternate; }
.scn-vosges-death-prospect .candle-flame { position:absolute; bottom:52%; left:50%; width:8px; height:20px; transform:translateX(-50%); background: linear-gradient(0deg, #e09050 0%, #f0c860 60%, #fff5e0 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 20px 10px #c87540; animation: vdp-flame 1.5s ease-in-out infinite alternate; }
.scn-vosges-death-prospect .figure-silhouette { position:absolute; bottom:38%; left:30%; width:24px; height:60px; background: #0f0909; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: vdp-figure 8s ease-in-out infinite; }
.scn-vosges-death-prospect .table { position:absolute; bottom:35%; left:25%; width:50%; height:6%; background: linear-gradient(180deg, #3a2a2a 0%, #1f1414 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-vosges-death-prospect .chair { position:absolute; bottom:35%; left:60%; width:20px; height:40px; background: #1f1414; border-radius:2px 2px 8px 8px; transform:rotate(5deg); }
.scn-vosges-death-prospect .shadow-creep { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(0deg, #0f0909 0%, transparent 100%); animation: vdp-creep 6s ease-in-out infinite alternate; }
@keyframes vdp-glow { 0%,100% { opacity:0.8; transform:translate(-50%,-50%) scale(0.9); } 50% { opacity:1; transform:translate(-50%,-50%) scale(1.1); } }
@keyframes vdp-flame { 0% { transform:translateX(-50%) scaleY(1) rotate(-3deg); } 50% { transform:translateX(-50%) scaleY(1.2) rotate(2deg); } 100% { transform:translateX(-50%) scaleY(0.9) rotate(-1deg); } }
@keyframes vdp-figure { 0%,100% { transform:translateX(0) translateY(0) rotate(-2deg); } 25% { transform:translateX(2px) translateY(-1px) rotate(0deg); } 50% { transform:translateX(4px) translateY(0) rotate(2deg); } 75% { transform:translateX(2px) translateY(-1px) rotate(0deg); } }
@keyframes vdp-creep { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }

/* religion-and-superstition */
.scn-religion-and-superstition {
  background: linear-gradient(180deg, #1e1a2a 0%, #151121 40%, #0a0715 100%),
              radial-gradient(ellipse at 50% 30%, #2a2540 0%, transparent 70%);
}
.scn-religion-and-superstition .deep-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 60%, #2a2540 0%, transparent 80%); }
.scn-religion-and-superstition .wall-panels { position:absolute; top:10%; left:10%; right:10%; bottom:10%; border:2px solid #3a3650; border-radius:4px; background: linear-gradient(180deg, #1e1a2a 0%, #151121 100%); box-shadow: inset 0 0 20px rgba(0,0,0,0.6); }
.scn-religion-and-superstition .book { position:absolute; bottom:40%; left:40%; width:40px; height:55px; background: linear-gradient(180deg, #4a3a5a 0%, #2a1e3a 100%); border:2px solid #6a5a7a; border-radius:2px; transform:rotate(-10deg); box-shadow: 2px 4px 10px rgba(0,0,0,0.5); animation: ras-book 5s ease-in-out infinite alternate; }
.scn-religion-and-superstition .hand { position:absolute; bottom:38%; left:45%; width:20px; height:30px; background: linear-gradient(180deg, #2a1e3a 0%, #1a1225 100%); border-radius:20% 20% 50% 50% / 30% 30% 40% 40%; transform:rotate(15deg); transform-origin:bottom left; animation: ras-hand 4s ease-in-out infinite; }
.scn-religion-and-superstition .candle { position:absolute; bottom:45%; left:55%; width:8px; height:25px; background: linear-gradient(180deg, #b08040 0%, #7a5a30 100%); border-radius:2px; box-shadow: 0 0 12px 4px #c08040; animation: ras-candle 6s ease-in-out infinite alternate; }
.scn-religion-and-superstition .smoke { position:absolute; bottom:60%; left:55%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,255,255,0.15) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: ras-smoke 8s ease-in-out infinite; }
.scn-religion-and-superstition .amulet { position:absolute; bottom:45%; left:48%; width:12px; height:12px; background: radial-gradient(circle, #805080 0%, #503060 70%); border-radius:50%; box-shadow: 0 0 10px 2px #704080; animation: ras-amulet 3s ease-in-out infinite alternate; }
@keyframes ras-book { 0% { transform:rotate(-10deg) translateY(0); } 50% { transform:rotate(-8deg) translateY(-2px); } 100% { transform:rotate(-12deg) translateY(0); } }
@keyframes ras-hand { 0% { transform:rotate(15deg) translateY(0); } 25% { transform:rotate(10deg) translateY(-2px); } 50% { transform:rotate(12deg) translateY(0); } 75% { transform:rotate(18deg) translateY(-2px); } 100% { transform:rotate(15deg) translateY(0); } }
@keyframes ras-candle { 0% { opacity:0.7; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.05); } 100% { opacity:0.8; transform:scaleY(0.95); } }
@keyframes ras-smoke { 0% { transform:translateY(0) scale(1) rotate(0deg); opacity:0.5; } 50% { transform:translateY(-15px) scale(1.5) rotate(30deg); opacity:0.2; } 100% { transform:translateY(0) scale(1) rotate(0deg); opacity:0.5; } }
@keyframes ras-amulet { 0% { transform:scale(1) rotate(0deg); box-shadow: 0 0 10px 2px #704080; } 100% { transform:scale(1.2) rotate(45deg); box-shadow: 0 0 15px 4px #9060a0; } }

/* fortune-telling-charms */
.scn-fortune-telling-charms {
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d8c0 40%, #c8b898 100%),
              radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 70%);
}
.scn-fortune-telling-charms .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c8d8f0 0%, #e0e8f0 100%); }
.scn-fortune-telling-charms .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #b8a888 0%, #d8c8a8 100%); }
.scn-fortune-telling-charms .stall-top { position:absolute; top:30%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #c8a868 0%, #a88848 100%); border-radius:4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-fortune-telling-charms .stall-front { position:absolute; top:38%; left:22%; width:56%; height:30%; background: linear-gradient(180deg, #e0d0b0 0%, #c8b898 100%); border:2px solid #a88848; }
.scn-fortune-telling-charms .charms-row { position:absolute; top:42%; left:25%; width:50%; height:6%; display:flex; justify-content:space-around; }
.scn-fortune-telling-charms .charms-row div { width:10px; height:10px; background: radial-gradient(circle, #e0c080 0%, #c0a060 100%); border-radius:50%; }
.scn-fortune-telling-charms .charms-row-2 { position:absolute; top:50%; left:25%; width:50%; height:6%; display:flex; justify-content:space-around; }
.scn-fortune-telling-charms .charms-row-2 div { width:8px; height:8px; background: radial-gradient(circle, #c0a060 0%, #a08040 100%); border-radius:50%; }
.scn-fortune-telling-charms .hand-offering { position:absolute; bottom:42%; left:30%; width:18px; height:22px; background: linear-gradient(180deg, #e8c8a0 0%, #c8a880 100%); border-radius:20% 20% 40% 40% / 30% 30% 50% 50%; transform:rotate(-10deg); transform-origin:bottom center; animation: ftc-hand 3s ease-in-out infinite alternate; }
.scn-fortune-telling-charms .coin-flash { position:absolute; bottom:45%; left:36%; width:12px; height:12px; background: radial-gradient(circle, #ffd700 0%, #ffb800 70%); border-radius:50%; box-shadow: 0 0 20px 6px #ffd700; animation: ftc-coin 2.5s ease-in-out infinite; }
@keyframes ftc-hand { 0% { transform:rotate(-10deg) translateY(0); } 100% { transform:rotate(-5deg) translateY(-3px); } }
@keyframes ftc-coin { 0% { opacity:0.9; transform:scale(1) rotate(0deg); } 50% { opacity:0.5; transform:scale(0.8) rotate(180deg); } 100% { opacity:0.9; transform:scale(1) rotate(360deg); } }

/* madrid-gitana-approach */
.scn-madrid-gitana-approach {
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d8c0 40%, #c8b898 100%),
              radial-gradient(ellipse at 50% 20%, #ffe8c0 0%, transparent 50%);
}
.scn-madrid-gitana-approach .sky-bright { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0c8e0 0%, #d0e0f0 100%); }
.scn-madrid-gitana-approach .sun { position:absolute; top:10%; left:70%; width:30px; height:30px; background: radial-gradient(circle, #fff5e0 0%, #ffe0a0 70%); border-radius:50%; box-shadow: 0 0 40px 20px #ffe0a0; animation: mga-sun 20s linear infinite; }
.scn-madrid-gitana-approach .pavement { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #a89888 0%, #c8b8a8 100%); }
.scn-madrid-gitana-approach .woman-1 { position:absolute; bottom:38%; left:25%; width:20px; height:55px; background: linear-gradient(180deg, #8080a0 0%, #606080 100%); border-radius:50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin:bottom center; animation: mga-walk1 6s ease-in-out infinite; }
.scn-madrid-gitana-approach .woman-2 { position:absolute; bottom:36%; left:60%; width:20px; height:50px; background: linear-gradient(180deg, #b08060 0%, #906040 100%); border-radius:50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin:bottom center; animation: mga-walk2 6s ease-in-out infinite reverse; }
.scn-madrid-gitana-approach .shadow { position:absolute; bottom:40%; left:20%; width:40px; height:6px; background: rgba(0,0,0,0.2); border-radius:50%; filter: blur(3px); animation: mga-shadow 8s ease-in-out infinite; }
.scn-madrid-gitana-approach .dust { position:absolute; bottom:42%; left:30%; width:20px; height:20px; background: radial-gradient(circle, rgba(255,255,200,0.2) 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: mga-dust 10s ease-in-out infinite; }
.scn-madrid-gitana-approach .shawl { position:absolute; bottom:55%; left:62%; width:30px; height:15px; background: linear-gradient(180deg, #c04030 0%, #a03020 100%); border-radius:50% 50% 10% 10% / 60% 60% 20% 20%; transform:rotate(-20deg); animation: mga-shawl 4s ease-in-out infinite alternate; }
@keyframes mga-sun { 0% { transform:translateX(0) scale(1); } 50% { transform:translateX(-10px) scale(0.95); } 100% { transform:translateX(0) scale(1); } }
@keyframes mga-walk1 { 0% { transform:translateX(0) translateY(0) rotate(-2deg); } 25% { transform:translateX(5px) translateY(-1px) rotate(1deg); } 50% { transform:translateX(10px) translateY(0) rotate(-1deg); } 75% { transform:translateX(5px) translateY(-1px) rotate(1deg); } 100% { transform:translateX(0) translateY(0) rotate(-2deg); } }
@keyframes mga-walk2 { 0% { transform:translateX(0) translateY(0) rotate(2deg); } 25% { transform:translateX(-5px) translateY(-1px) rotate(-1deg); } 50% { transform:translateX(-10px) translateY(0) rotate(1deg); } 75% { transform:translateX(-5px) translateY(-1px) rotate(-1deg); } 100% { transform:translateX(0) translateY(0) rotate(2deg); } }
@keyframes mga-shadow { 0% { opacity:0.3; transform:scaleX(1); } 50% { opacity:0.6; transform:scaleX(0.8); } 100% { opacity:0.3; transform:scaleX(1); } }
@keyframes mga-dust { 0% { opacity:0.3; transform:translateY(0) scale(1); } 50% { opacity:0; transform:translateY(-10px) scale(2); } 100% { opacity:0.3; transform:translateY(0) scale(1); } }
@keyframes mga-shawl { 0% { transform:rotate(-20deg) translateY(0); } 100% { transform:rotate(-15deg) translateY(-2px); } }

/* guide-silence */
.scn-guide-silence {
  background: linear-gradient(180deg, #1f1a2b 0%, #2a2040 40%, #3a2a50 70%, #4a3a5e 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a5e 0%, transparent 70%);
}
.scn-guide-silence .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2240 0%, #1f1a2b 100%); opacity:.5; }
.scn-guide-silence .bg-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 80% 50%, rgba(0,0,0,.4) 0%, transparent 70%); animation: gs-shadow 8s ease-in-out infinite alternate; }
.scn-guide-silence .table { position:absolute; bottom:18%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-guide-silence .guide { position:absolute; bottom:26%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gs-guide 6s ease-in-out infinite; }
.scn-guide-silence .narrator { position:absolute; bottom:26%; left:55%; width:20px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gs-narrator 5s ease-in-out infinite; }
.scn-guide-silence .lamp { position:absolute; bottom:30%; left:48%; width:8px; height:14px; background: #d49a3a; border-radius:50% 50% 30% 30%; box-shadow: 0 0 20px 6px #d49a3a; animation: gs-lamp-flicker 2s ease-in-out infinite; }
.scn-guide-silence .lamp-glow { position:absolute; bottom:28%; left:44%; width:16%; height:20%; background: radial-gradient(circle, rgba(212,154,58,.4) 0%, transparent 70%); animation: gs-glow-pulse 3s ease-in-out infinite alternate; }
.scn-guide-silence .window { position:absolute; top:15%; right:12%; width:40px; height:50px; background: radial-gradient(circle, #4a6a8a 0%, #2a3a4a 100%); border:2px solid #2a1a10; border-radius:4px; box-shadow: inset 0 0 12px rgba(0,0,0,.8); opacity:.6; animation: gs-window-dim 10s ease-in-out infinite; }
@keyframes gs-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes gs-guide { 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(0deg) } }
@keyframes gs-narrator { 0% { transform: translateY(0) rotate(1deg) } 33% { transform: translateY(-1px) rotate(-1deg) } 66% { transform: translateY(1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes gs-lamp-flicker { 0% { opacity:.8; box-shadow:0 0 18px 4px #d49a3a } 25% { opacity:1; box-shadow:0 0 24px 6px #d49a3a } 50% { opacity:.9; box-shadow:0 0 20px 5px #d49a3a } 75% { opacity:1; box-shadow:0 0 26px 7px #d49a3a } 100% { opacity:.85; box-shadow:0 0 16px 3px #d49a3a } }
@keyframes gs-glow-pulse { 0% { transform:scale(.95); opacity:.5 } 100% { transform:scale(1.05); opacity:.8 } }
@keyframes gs-window-dim { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

/* venta-bound */
.scn-venta-bound {
  background: linear-gradient(180deg, #4a3a5a 0%, #6a4a5a 30%, #8a6a5a 60%, #6a5a4a 100%),
              radial-gradient(ellipse at 50% 100%, #8a6a5a 0%, transparent 70%);
}
.scn-venta-bound .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #7a6a8a 0%, #5a4a6a 100%); animation: vb-sky 15s ease-in-out infinite alternate; }
.scn-venta-bound .hills { position:absolute; bottom:25%; left:0; right:0; height:25%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius:60% 40% 0 0; box-shadow:inset 0 6px 14px rgba(0,0,0,.3); animation: vb-hills 20s ease-in-out infinite alternate; }
.scn-venta-bound .road { position:absolute; bottom:20%; left:10%; width:80%; height:6%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:20px; opacity:.7; animation: vb-road 10s ease-in-out infinite alternate; }
.scn-venta-bound .horse-a { position:absolute; bottom:26%; left:20%; width:24px; height:16px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 20% 30% 20%; transform-origin:left center; animation: vb-horse 5s ease-in-out infinite; }
.scn-venta-bound .horse-b { position:absolute; bottom:26%; left:50%; width:24px; height:16px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius:50% 20% 30% 20%; transform-origin:left center; animation: vb-horse 5s ease-in-out infinite reverse; animation-delay: -2.5s; }
.scn-venta-bound .figure-a { position:absolute; bottom:30%; left:22%; width:14px; height:24px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius:50% 50% 30% 30%; transform-origin:bottom center; animation: vb-figure 4s ease-in-out infinite; }
.scn-venta-bound .figure-b { position:absolute; bottom:30%; left:52%; width:14px; height:24px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:50% 50% 30% 30%; transform-origin:bottom center; animation: vb-figure 4s ease-in-out infinite; animation-delay: -1s; }
@keyframes vb-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes vb-hills { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes vb-road { 0% { transform:translateX(-5px) scaleY(1) } 50% { transform:translateX(0) scaleY(1.05) } 100% { transform:translateX(5px) scaleY(1) } }
@keyframes vb-horse { 0% { transform: rotate(-3deg) translateY(0) } 25% { transform: rotate(0deg) translateY(-1px) } 50% { transform: rotate(3deg) translateY(0) } 75% { transform: rotate(0deg) translateY(-1px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes vb-figure { 0% { transform: rotate(-2deg) translateY(0) } 33% { transform: rotate(1deg) translateY(-1px) } 66% { transform: rotate(-1deg) translateY(0) } 100% { transform: rotate(2deg) translateY(0) } }

/* venta-invitation */
.scn-venta-invitation {
  background: linear-gradient(180deg, #6a5a5a 0%, #8a6a5a 40%, #6a4a3a 100%),
              radial-gradient(ellipse at 50% 100%, #6a4a3a 0%, transparent 70%);
}
.scn-venta-invitation .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #9a8a7a 0%, #6a5a4a 100%); animation: vi-sky 12s ease-in-out infinite alternate; }
.scn-venta-invitation .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 60% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.4); animation: vi-ground 18s ease-in-out infinite alternate; }
.scn-venta-invitation .horse-narrator { position:absolute; bottom:25%; left:25%; width:28px; height:18px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 20% 30% 20%; transform-origin:left center; animation: vi-horse 4s ease-in-out infinite; }
.scn-venta-invitation .horse-stranger { position:absolute; bottom:25%; left:55%; width:28px; height:18px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:50% 20% 30% 20%; transform-origin:left center; animation: vi-horse 4s ease-in-out infinite reverse; animation-delay: -2s; }
.scn-venta-invitation .guide-side { position:absolute; bottom:28%; left:15%; width:12px; height:22px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30%; transform-origin:bottom center; animation: vi-guide 4s ease-in-out infinite; }
.scn-venta-invitation .signpost { position:absolute; bottom:20%; left:8%; width:4px; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); transform:rotate(-10deg); animation: vi-sign 20s ease-in-out infinite; box-shadow: 2px 0 4px rgba(0,0,0,.3); }
@keyframes vi-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes vi-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes vi-horse { 0% { transform: rotate(-4deg) translateY(0) } 25% { transform: rotate(0deg) translateY(-2px) } 50% { transform: rotate(4deg) translateY(0) } 75% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-4deg) translateY(0) } }
@keyframes vi-guide { 0% { transform: rotate(0deg) translateY(0) } 33% { transform: rotate(3deg) translateY(-1px) } 66% { transform: rotate(-2deg) translateY(0) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes vi-sign { 0% { transform:rotate(-10deg) scaleX(1) } 50% { transform:rotate(-5deg) scaleX(1.05) } 100% { transform:rotate(-10deg) scaleX(1) } }

/* suspicions-rise */
.scn-suspicions-rise {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4a 70%, #3a3a5a 100%),
              radial-gradient(ellipse at 50% 110%, #3a3a5a 0%, transparent 70%);
}
.scn-suspicions-rise .moon { position:absolute; top:12%; left:75%; width:40px; height:40px; background: radial-gradient(circle, #c0c0e0 0%, #8a8aba 100%); border-radius:50%; box-shadow: 0 0 40px 15px #8a8aba, 0 0 80px 30px rgba(138,138,186,.3); animation: sr-moon 15s ease-in-out infinite; }
.scn-suspicions-rise .sky { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 100%); opacity:.8; animation: sr-sky 12s ease-in-out infinite alternate; }
.scn-suspicions-rise .hills { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%); border-radius:30% 70% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.5); animation: sr-hills 20s ease-in-out infinite alternate; }
.scn-suspicions-rise .fig-antonio { position:absolute; bottom:25%; left:15%; width:16px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sr-fig 6s ease-in-out infinite; }
.scn-suspicions-rise .fig-narrator { position:absolute; bottom:25%; left:40%; width:16px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sr-fig 6s ease-in-out infinite reverse; animation-delay: -1s; }
.scn-suspicions-rise .fig-stranger { position:absolute; bottom:25%; left:65%; width:16px; height:36px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sr-fig 6s ease-in-out infinite; animation-delay: -3s; }
.scn-suspicions-rise .shadow-antonio { position:absolute; bottom:20%; left:10%; width:30px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); animation: sr-shadow 8s ease-in-out infinite; }
.scn-suspicions-rise .shadow-stranger { position:absolute; bottom:20%; left:60%; width:30px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); animation: sr-shadow 8s ease-in-out infinite; animation-delay: -4s; }
.scn-suspicions-rise .road { position:absolute; bottom:15%; left:5%; width:90%; height:4%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius:10px; opacity:.5; animation: sr-road 15s ease-in-out infinite alternate; }
@keyframes sr-moon { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-3px) scale(1.02) } 100% { transform:translateY(0) scale(1) } }
@keyframes sr-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes sr-hills { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes sr-fig { 0% { transform: rotate(-2deg) translateY(0) } 25% { transform: rotate(1deg) translateY(-1px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-1deg) translateY(-1px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes sr-shadow { 0% { opacity:.3; transform:scaleX(1) } 50% { opacity:.6; transform:scaleX(1.1) } 100% { opacity:.4; transform:scaleX(1) } }
@keyframes sr-road { 0% { transform:translateX(-3px) } 50% { transform:translateX(3px) } 100% { transform:translateX(-3px) } }

.scn-brigand-identification { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a5e 80%, #1a1a3e 100%), radial-gradient(ellipse at 50% 20%, rgba(200,200,255,0.15) 0%, transparent 60%); }
.scn-brigand-identification .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0e0e3a 0%, transparent 100%); }
.scn-brigand-identification .moon { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #e0e8ff 0%, #b0b8e0 60%, #8088b0 100%); border-radius:50%; box-shadow:0 0 40px 10px rgba(200,200,255,0.3); animation: bi-moon 6s ease-in-out infinite alternate; }
.scn-brigand-identification .wanted-poster { position:absolute; top:22%; left:20%; width:80px; height:110px; background: linear-gradient(180deg, #d0c8a0 0%, #b0a880 100%); border:2px solid #5a4a2a; border-radius:4px; box-shadow:2px 4px 8px rgba(0,0,0,0.6); animation: bi-poster 3s ease-in-out infinite alternate; }
.scn-brigand-identification .figure { position:absolute; bottom:32%; left:40%; width:28px; height:60px; background: linear-gradient(180deg, #0a0a12 0%, #1a1a2a 50%, #0a0a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: bi-figure 2s ease-in-out infinite; }
.scn-brigand-identification .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 0 0 / 20% 20% 0 0; }
.scn-brigand-identification .shadow { position:absolute; bottom:30%; left:35%; width:80px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); animation: bi-shadow 4s ease-in-out infinite alternate; }

@keyframes bi-moon { 0% { transform: translate(0,0) scale(1); opacity:0.8; } 50% { transform: translate(-4px,2px) scale(1.05); opacity:1; } 100% { transform: translate(2px,-1px) scale(0.95); opacity:0.9; } }
@keyframes bi-poster { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-1deg); } }
@keyframes bi-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-3deg); } 50% { transform: translateX(-2px) rotate(2deg); } 75% { transform: translateX(4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bi-shadow { 0% { transform: scaleX(1); opacity:0.4; } 50% { transform: scaleX(1.2); opacity:0.6; } 100% { transform: scaleX(0.9); opacity:0.3; } }

.scn-venta-arrival { background: linear-gradient(180deg, #1a1008 0%, #2a1a0e 40%, #3a2210 100%); }
.scn-venta-arrival .wall-left { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%); box-shadow:inset -4px 0 8px rgba(0,0,0,0.5); }
.scn-venta-arrival .wall-right { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%); box-shadow:inset 4px 0 8px rgba(0,0,0,0.5); }
.scn-venta-arrival .floor { position:absolute; bottom:0; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #3a2a18 0%, #1a1008 100%); border-radius:20% 20% 0 0; }
.scn-venta-arrival .fire { position:absolute; bottom:25%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #d0602a 0%, #b84018 50%, #802010 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow:0 0 30px 10px rgba(200,80,40,0.4); animation: va-fire 0.6s ease-in-out infinite alternate; }
.scn-venta-arrival .glow { position:absolute; bottom:20%; left:30%; right:30%; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(200,100,40,0.25) 0%, transparent 70%); animation: va-glow 2s ease-in-out infinite alternate; }
.scn-venta-arrival .smoke { position:absolute; top:20%; left:45%; width:60px; height:30px; background: radial-gradient(ellipse, rgba(60,40,20,0.3) 0%, transparent 70%); filter:blur(6px); animation: va-smoke 8s ease-in-out infinite; }

@keyframes va-fire { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.1) scaleX(0.9); } 100% { transform: translateX(-50%) scaleY(0.95) scaleX(1.05); } }
@keyframes va-glow { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes va-smoke { 0% { transform: translateY(0) scale(1); opacity:0.3; } 50% { transform: translateY(-20px) scale(1.5); opacity:0.1; } 100% { transform: translateY(-40px) scale(2); opacity:0; } }

.scn-venta-interior { background: linear-gradient(180deg, #1e1208 0%, #2e1a0e 50%, #1a0e06 100%); }
.scn-venta-interior .bg-room { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #2e1a0e 0%, #1a0e06 100%); }
.scn-venta-interior .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2210 0%, #1a0e06 100%); }
.scn-venta-interior .rug-1 { position:absolute; bottom:20%; left:15%; width:25%; height:12%; background: linear-gradient(90deg, #4a3020 0%, #3a2210 50%, #4a3020 100%); border-radius:8px; box-shadow:0 2px 6px rgba(0,0,0,0.4); animation: vi-rug 5s ease-in-out infinite alternate; }
.scn-venta-interior .rug-2 { position:absolute; bottom:20%; right:20%; width:20%; height:10%; background: linear-gradient(90deg, #5a3a28 0%, #4a3020 50%, #5a3a28 100%); border-radius:6px; box-shadow:0 2px 4px rgba(0,0,0,0.4); animation: vi-rug 5s ease-in-out infinite alternate-reverse; }
.scn-venta-interior .doorway { position:absolute; top:15%; left:5%; width:20%; height:55%; background: #0a0603; border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,0.8); }
.scn-venta-interior .shed { position:absolute; top:20%; left:2%; width:26%; height:40%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius:2px; box-shadow:2px 0 8px rgba(0,0,0,0.5); }
.scn-venta-interior .glow { position:absolute; bottom:20%; left:35%; right:35%; height:35%; background: radial-gradient(ellipse at 50% 100%, rgba(200,100,40,0.2) 0%, transparent 70%); animation: vi-glow 2s ease-in-out infinite alternate; }

@keyframes vi-rug { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(0.95) translateY(-2px); } 100% { transform: scaleX(1.03) translateY(0); } }
@keyframes vi-glow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

.scn-venta-inhabitants { background: linear-gradient(180deg, #1e1208 0%, #2e1a0e 40%, #1a0e06 100%); }
.scn-venta-inhabitants .wall-back { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2e1a0e 0%, #1a0e06 100%); }
.scn-venta-inhabitants .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2210 0%, #1a0e06 100%); }
.scn-venta-inhabitants .fire { position:absolute; bottom:25%; left:50%; width:36px; height:44px; transform:translateX(-50%); background: linear-gradient(180deg, #d0602a 0%, #b84018 50%, #802010 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow:0 0 28px 10px rgba(200,80,40,0.4); animation: vh-fire 0.5s ease-in-out infinite alternate; }
.scn-venta-inhabitants .glow { position:absolute; bottom:20%; left:25%; right:25%; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(200,100,40,0.3) 0%, transparent 70%); animation: vh-glow 2.5s ease-in-out infinite alternate; }
.scn-venta-inhabitants .woman { position:absolute; bottom:25%; left:28%; width:34px; height:60px; background: linear-gradient(180deg, #1a0e06 0%, #0a0603 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: vh-woman 4s ease-in-out infinite; }
.scn-venta-inhabitants .girl { position:absolute; bottom:25%; right:30%; width:22px; height:40px; background: linear-gradient(180deg, #1a0e06 0%, #0a0603 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: vh-girl 3s ease-in-out infinite alternate; }
.scn-venta-inhabitants .pot { position:absolute; bottom:25%; left:52%; width:20px; height:18px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius:0 0 8px 8px; box-shadow:0 -2px 6px rgba(0,0,0,0.3); animation: vh-pot 1.5s ease-in-out infinite alternate; }

@keyframes vh-fire { 0% { transform: translateX(-50%) scaleY(1) scaleX(1); } 50% { transform: translateX(-50%) scaleY(1.12) scaleX(0.88); } 100% { transform: translateX(-50%) scaleY(0.92) scaleX(1.06); } }
@keyframes vh-glow { 0% { opacity:0.5; } 50% { opacity:0.85; } 100% { opacity:0.6; } }
@keyframes vh-woman { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(-1px) rotate(1deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes vh-girl { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-3px) scale(0.95); } 100% { transform: translateX(2px) scale(1.02); } }
@keyframes vh-pot { 0% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-1deg); } }

.scn-carmen-escape {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #deb887 70%, #8b4513 100%),
              radial-gradient(ellipse at 70% 30%, #fff8dc 0%, transparent 60%);
}
.scn-carmen-escape .lane-left {
  position: absolute; left: 0; top: 0; bottom: 0; width: 25%;
  background: linear-gradient(180deg, #a0522d 0%, #5c3a21 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
  animation: ce-shimmer 8s ease-in-out infinite alternate;
}
.scn-carmen-escape .lane-right {
  position: absolute; right: 0; top: 0; bottom: 0; width: 30%;
  background: linear-gradient(180deg, #a0522d 0%, #5c3a21 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: ce-shimmer 8s ease-in-out infinite alternate-reverse;
}
.scn-carmen-escape .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #deb887 0%, #8b4513 100%);
  animation: ce-dust 3s ease-in-out infinite;
}
.scn-carmen-escape .sunrays {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(135deg, rgba(255,255,200,0.6) 0%, transparent 60%);
  filter: blur(8px);
  animation: ce-rays 6s ease-in-out infinite alternate;
}
.scn-carmen-escape .figure-carmen {
  position: absolute; bottom: 25%; left: 60%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ce-run 0.8s steps(4) infinite;
}
.scn-carmen-escape .figure-carmen::after {
  content: ''; position: absolute; bottom: -8px; left: -2px; width: 24px; height: 12px;
  background: #2a1a0a; border-radius: 0 0 50% 50%;
  animation: ce-legs 0.4s steps(2) infinite;
}
.scn-carmen-escape .figure-soldier {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg) translateX(5px);
  animation: ce-fall 2s ease-in-out infinite;
}
.scn-carmen-escape .dust {
  position: absolute; bottom: 15%; left: 40%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(210,180,140,0.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: ce-drift 4s ease-in-out infinite;
}
@keyframes ce-shimmer { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ce-dust { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) scaleX(1.05) } 100% { transform: translateY(0) } }
@keyframes ce-rays { 0% { opacity: 0.6; transform: rotate(0deg) } 50% { opacity: 1; transform: rotate(3deg) } 100% { opacity: 0.7; transform: rotate(-2deg) } }
@keyframes ce-run {
  0% { transform: translateX(0) rotate(0deg) }
  25% { transform: translateX(6px) rotate(5deg) }
  50% { transform: translateX(12px) rotate(0deg) }
  75% { transform: translateX(18px) rotate(-5deg) }
  100% { transform: translateX(24px) rotate(0deg) }
}
@keyframes ce-legs { 0% { transform: rotate(0deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(0deg) } }
@keyframes ce-fall { 0% { transform: rotate(-15deg) translateX(5px) } 50% { transform: rotate(-25deg) translateX(10px) translateY(5px) } 100% { transform: rotate(-15deg) translateX(5px) } }
@keyframes ce-drift { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(15px) scale(1.3) } 100% { transform: translateX(0) scale(1) } }

.scn-punishment-demotion {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%),
              radial-gradient(ellipse at 50% 80%, #4a4a5e 0%, transparent 70%);
}
.scn-punishment-demotion .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
}
.scn-punishment-demotion .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #2a1a0a 2px, #3a2a1a 4px);
}
.scn-punishment-demotion .desk {
  position: absolute; bottom: 28%; left: 20%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: pd-desk 10s ease-in-out infinite;
}
.scn-punishment-demotion .lantern {
  position: absolute; bottom: 40%; left: 32%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 50%, #ffd060 0%, #b08030 60%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 8px #ffd060, 0 0 60px 15px rgba(255,208,96,0.3);
  animation: pd-flicker 2s ease-in-out infinite alternate;
}
.scn-punishment-demotion .figure-narrator {
  position: absolute; bottom: 22%; left: 25%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: pd-slouch 6s ease-in-out infinite;
}
.scn-punishment-demotion .figure-officer {
  position: absolute; bottom: 25%; left: 55%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  animation: pd-stand 4s ease-in-out infinite;
}
.scn-punishment-demotion .shadow-bars {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, rgba(0,0,0,0.3) 0px, transparent 8px, rgba(0,0,0,0.3) 10px);
  filter: blur(2px);
  animation: pd-shadow 15s linear infinite;
}
@keyframes pd-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pd-flicker { 0% { opacity: 0.7; box-shadow: 0 0 20px 4px #ffd060; } 50% { opacity: 1; box-shadow: 0 0 40px 12px #ffd060; } 100% { opacity: 0.8; box-shadow: 0 0 25px 6px #ffd060; } }
@keyframes pd-slouch { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(10deg) translateY(3px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes pd-stand { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pd-shadow { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.3 } }

.scn-prison-thoughts {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, transparent 70%);
}
.scn-prison-thoughts .cell-wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, #2a2a3a 0px, #1a1a2a 3px, #2a2a3a 6px);
  box-shadow: inset 0 0 30px #000;
}
.scn-prison-thoughts .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-prison-thoughts .window-light {
  position: absolute; top: 10%; left: 35%; width: 20%; height: 25%;
  background: radial-gradient(ellipse, rgba(200,200,255,0.6) 0%, transparent 70%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px rgba(200,200,255,0.3);
  animation: pt-light 8s ease-in-out infinite alternate;
}
.scn-prison-thoughts .bars {
  position: absolute; top: 10%; left: 35%; width: 20%; height: 25%;
  background: repeating-linear-gradient(90deg, #0a0a1a 0px, transparent 8px, #0a0a1a 10px);
  opacity: 0.8;
}
.scn-prison-thoughts .figure-prisoner {
  position: absolute; bottom: 18%; left: 40%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg) scale(0.95);
  animation: pt-sit 12s ease-in-out infinite;
}
.scn-prison-thoughts .cot {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.7);
}
.scn-prison-thoughts .chains {
  position: absolute; bottom: 22%; left: 38%; width: 30px; height: 20px;
  background: repeating-linear-gradient(0deg, #6a6a6a 0px, #4a4a4a 2px, #6a6a6a 4px);
  border-radius: 50%;
  opacity: 0.5;
  animation: pt-rattle 5s ease-in-out infinite;
}
@keyframes pt-light { 0% { opacity: 0.4; transform: scaleY(1) } 50% { opacity: 0.8; transform: scaleY(1.05) } 100% { opacity: 0.5; transform: scaleY(0.95) } }
@keyframes pt-sit { 0% { transform: rotate(10deg) scale(0.95) translateY(0) } 50% { transform: rotate(15deg) scale(0.95) translateY(2px) } 100% { transform: rotate(10deg) scale(0.95) translateY(0) } }
@keyframes pt-rattle { 0% { transform: rotate(0deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(-5deg) } 75% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }

.scn-thinking-of-carmen {
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 40%, #2a2a3e 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a3a 0%, transparent 70%);
}
.scn-thinking-of-carmen .cell-bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, #1a1a2a 0px, #0a0a1a 3px, #1a1a2a 6px);
  box-shadow: inset 0 0 40px #000;
}
.scn-thinking-of-carmen .candle {
  position: absolute; bottom: 30%; left: 50%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #ffd060 0%, #b08030 100%);
  border-radius: 30% 30% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,208,96,0.3);
  animation: tc-candle 3s ease-in-out infinite alternate;
}
.scn-thinking-of-carmen .figure-narrator {
  position: absolute; bottom: 18%; left: 40%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg) scale(0.95);
  animation: tc-tilt 8s ease-in-out infinite;
}
.scn-thinking-of-carmen .vision-carmen {
  position: absolute; bottom: 25%; left: 55%; width: 18px; height: 45px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.4) 0%, transparent 70%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  filter: blur(2px);
  animation: tc-vision 4s ease-in-out infinite alternate;
}
.scn-thinking-of-carmen .shadow-shift {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 50%, rgba(0,0,0,0.3) 0%, transparent 60%);
  animation: tc-shadow 6s ease-in-out infinite alternate;
}
@keyframes tc-candle { 0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 20px 6px #ffd060; } 50% { transform: translateX(-50%) scaleY(1.1); box-shadow: 0 0 30px 10px #ffd060; } 100% { transform: translateX(-50%) scaleY(0.95); box-shadow: 0 0 15px 4px #ffd060; } }
@keyframes tc-tilt { 0% { transform: rotate(-5deg) scale(0.95) } 50% { transform: rotate(-8deg) scale(0.95) translateY(2px) } 100% { transform: rotate(-5deg) scale(0.95) } }
@keyframes tc-vision { 0% { opacity: 0.2; transform: scale(0.8) rotate(-10deg) } 50% { opacity: 0.6; transform: scale(1) rotate(0deg) } 100% { opacity: 0.3; transform: scale(0.85) rotate(5deg) } }
@keyframes tc-shadow { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }

.scn-gipsy-paraphernalia {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-gipsy-paraphernalia .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, rgba(200,160,100,.15) 0%, transparent 100%); animation: gs-ambient 12s ease-in-out infinite alternate; }
.scn-gipsy-paraphernalia .table { position:absolute; bottom:10%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius:8px; box-shadow: 0 4px 20px rgba(0,0,0,.8); transform: perspective(400px) rotateX(15deg); }
.scn-gipsy-paraphernalia .cards { position:absolute; bottom:25%; left:35%; width:30px; height:40px; background: linear-gradient(135deg, #d4c4a0 0%, #c4b48a 100%); border-radius:2px; box-shadow: 1px 1px 4px rgba(0,0,0,.6); transform: rotate(-10deg); animation: gs-card 5s ease-in-out infinite; }
.scn-gipsy-paraphernalia .magnet { position:absolute; bottom:28%; left:45%; width:8px; height:20px; background: linear-gradient(180deg, #8a6a4a 0%, #5a4a3a 100%); border-radius:50% 50% 0 0; transform: rotate(-15deg); animation: gs-magnet 8s ease-in-out infinite alternate; }
.scn-gipsy-paraphernalia .chameleon { position:absolute; bottom:22%; left:55%; width:12px; height:6px; background: linear-gradient(90deg, #4a6a3a 0%, #3a5a2a 100%); border-radius:40% 60% 40% 40% / 60% 40% 60% 40%; transform: rotate(20deg); animation: gs-cham 7s ease-in-out infinite; }
.scn-gipsy-paraphernalia .chest { position:absolute; bottom:5%; right:10%; width:50px; height:30px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); transform: perspective(200px) rotateX(5deg); animation: gs-chest 10s ease-in-out infinite alternate; }
.scn-gipsy-paraphernalia .candle { position:absolute; bottom:35%; left:38%; width:4px; height:18px; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius:2px; box-shadow: 0 0 10px 3px rgba(220,180,100,.6), 0 0 20px 6px rgba(220,180,100,.3); animation: gs-flame 2s ease-in-out infinite alternate; }
.scn-gipsy-paraphernalia .shadow-soft { position:absolute; bottom:10%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: gs-shadow 15s ease-in-out infinite alternate; }

@keyframes gs-ambient { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes gs-card { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) scale(1.02) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes gs-magnet { 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-10deg) translateX(4px) } 100% { transform: rotate(-15deg) translateX(0) } }
@keyframes gs-cham { 0% { transform: rotate(20deg) translateX(0) } 30% { transform: rotate(25deg) translateX(3px) } 70% { transform: rotate(15deg) translateX(-2px) } 100% { transform: rotate(20deg) translateX(0) } }
@keyframes gs-chest { 0% { transform: perspective(200px) rotateX(5deg) scaleY(1) } 50% { transform: perspective(200px) rotateX(6deg) scaleY(1.01) } 100% { transform: perspective(200px) rotateX(5deg) scaleY(1) } }
@keyframes gs-flame { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.2) scaleX(.9) translateY(-2px) } 100% { opacity:.8; transform: scaleY(1) } }
@keyframes gs-shadow { 0% { opacity:.2; transform: translateY(0) } 50% { opacity:.4; transform: translateY(2px) } 100% { opacity:.2; transform: translateY(0) } }

/* ---------------------------------------------------- */

.scn-interruption {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #1a100a 50%, #0a0505 100%),
    radial-gradient(ellipse at 70% 40%, #4a2a1a 0%, transparent 60%);
}
.scn-interruption .room-dim { position:absolute; inset:0; background: linear-gradient(180deg, rgba(30,20,10,.8) 0%, rgba(10,5,5,.95) 100%); animation: int-pulse 4s ease-in-out infinite alternate; }
.scn-interruption .door { position:absolute; bottom:20%; left:0; width:30%; height:60%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-right:4px solid #0a0505; transform: rotateY(-70deg); transform-origin: left center; animation: int-door 0.8s ease-out 1 both; }
.scn-interruption .intruder { position:absolute; bottom:10%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: int-rush 1.5s ease-in-out infinite; }
.scn-interruption .cloak { position:absolute; bottom:10%; left:22%; width:30px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 20% 20% / 80% 80% 20% 20%; transform: rotate(5deg); animation: int-cloak 2s ease-in-out infinite alternate; }
.scn-interruption .startle-figure { position:absolute; bottom:15%; right:30%; width:18px; height:45px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(15deg); animation: int-recoil 0.5s ease-in-out infinite alternate; }
.scn-interruption .spark { position:absolute; top:30%; left:40%; width:4px; height:4px; background: #ff8822; border-radius:50%; box-shadow: 0 0 12px 4px #ff8822, 0 0 24px 8px rgba(255,136,34,.5); animation: int-spark 0.3s ease-in-out infinite alternate; }
.scn-interruption .shadow-hard { position:absolute; bottom:0; left:20%; right:10%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.8) 0%, transparent 100%); filter: blur(10px); animation: int-shad 3s ease-in-out infinite alternate; }

@keyframes int-pulse { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes int-door { 0% { transform: rotateY(-90deg) } 100% { transform: rotateY(-70deg) } }
@keyframes int-rush { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-2deg) translateX(8px) scale(1.02) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes int-cloak { 0% { transform: rotate(5deg) translateY(0) } 100% { transform: rotate(-5deg) translateY(-4px) } }
@keyframes int-recoil { 0% { transform: rotate(15deg) scaleY(1) } 100% { transform: rotate(25deg) scaleY(1.05) translateX(-3px) } }
@keyframes int-spark { 0% { opacity:.5; transform: scale(1) } 100% { opacity:1; transform: scale(1.5) } }
@keyframes int-shad { 0% { opacity:.3; transform: skewX(0) } 50% { opacity:.6; transform: skewX(-5deg) } 100% { opacity:.3; transform: skewX(0) } }

/* ---------------------------------------------------- */

.scn-recognition {
  background: 
    linear-gradient(180deg, #2a2018 0%, #1a1410 50%, #0a0805 100%),
    radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 60%);
}
.scn-recognition .bg-murky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(40,30,20,.6) 0%, rgba(10,8,5,.9) 100%); animation: rec-sway 10s ease-in-out infinite alternate; }
.scn-recognition .table-small { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 2px 10px rgba(0,0,0,.7); transform: perspective(200px) rotateX(10deg); }
.scn-recognition .figure-right { position:absolute; bottom:10%; right:20%; width:22px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: rec-right 6s ease-in-out infinite; }
.scn-recognition .figure-left { position:absolute; bottom:10%; left:20%; width:22px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(5deg); animation: rec-left 6s ease-in-out infinite; }
.scn-recognition .flicker-warm { position:absolute; bottom:40%; left:35%; width:6px; height:18px; background: linear-gradient(180deg, #e0a060 0%, #c08040 100%); border-radius:2px; box-shadow: 0 0 16px 4px rgba(220,160,80,.6), 0 0 32px 8px rgba(220,160,80,.3); animation: rec-candle 2s ease-in-out infinite alternate; }
.scn-recognition .wine-cup { position:absolute; bottom:25%; left:45%; width:10px; height:14px; background: linear-gradient(180deg, #8a6040 0%, #5a4020 100%); border-radius:0 0 30% 30% / 0 0 50% 50%; box-shadow: inset 0 -2px 6px rgba(0,0,0,.6); transform: rotate(10deg); animation: rec-cup 8s ease-in-out infinite; }
.scn-recognition .shadow-rec { position:absolute; bottom:0; left:10%; right:10%; height:25%; background: linear-gradient(180deg, rgba(0,0,0,.7) 0%, transparent 100%); filter: blur(12px); animation: rec-shad 5s ease-in-out infinite alternate; }
.scn-recognition .sparkle-eye { position:absolute; bottom:35%; right:28%; width:2px; height:2px; background: #d0b080; border-radius:50%; box-shadow: 0 0 4px 1px rgba(208,176,128,.8); animation: rec-eye 1s ease-in-out infinite alternate; }

@keyframes rec-sway { 0% { opacity:.6; filter: blur(0) } 50% { opacity:.8; filter: blur(1px) } 100% { opacity:.7; filter: blur(0) } }
@keyframes rec-right { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) scale(1.02) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes rec-left { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) scale(1.01) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes rec-candle { 0% { transform: scaleY(1); opacity:.8 } 50% { transform: scaleY(1.3) scaleX(.9) translateY(-2px); opacity:1 } 100% { transform: scaleY(1); opacity:.85 } }
@keyframes rec-cup { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-1px) scale(1.01) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes rec-shad { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.1) } 100% { opacity:.4; transform: scaleY(1) } }
@keyframes rec-eye { 0% { opacity:.3 } 100% { opacity:.8 } }

/* ---------------------------------------------------- */

.scn-dismissed {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #050510 50%, #000005 100%),
    radial-gradient(ellipse at 30% 60%, #1a1a3a 0%, transparent 70%);
}
.scn-dismissed .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a2a 0%, #050515 100%); animation: dis-sky 20s ease-in-out infinite alternate; }
.scn-dismissed .street { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.8); }
.scn-dismissed .bridge { position:absolute; bottom:15%; left:30%; width:20%; height:8%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:2px; transform: perspective(200px) rotateX(15deg); box-shadow: 0 -2px 8px rgba(0,0,0,.9); animation: dis-bridge 8s ease-in-out infinite alternate; }
.scn-dismissed .figure-back { position:absolute; bottom:20%; left:35%; width:18px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(5deg); animation: dis-walk-a 4s ease-in-out infinite; }
.scn-dismissed .figure-facing { position:absolute; bottom:20%; right:30%; width:18px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: dis-walk-b 4s ease-in-out infinite 2s; }
.scn-dismissed .lamp { position:absolute; bottom:30%; left:20%; width:4px; height:20px; background: linear-gradient(180deg, #6a6a7a 0%, #3a3a4a 100%); border-radius:1px; box-shadow: 0 0 12px 4px rgba(200,200,220,.1); animation: dis-lamp 6s ease-in-out infinite alternate; }
.scn-dismissed .shadow-long { position:absolute; bottom:5%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, rgba(0,0,0,.9) 0%, transparent 100%); border-radius:50%; filter: blur(6px); animation: dis-shad 8s ease-in-out infinite alternate; }
.scn-dismissed .mist { position:absolute; bottom:10%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(100,100,140,.05) 0%, transparent 100%); filter: blur(20px); animation: dis-mist 30s linear infinite; }

@keyframes dis-sky { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes dis-bridge { 0% { transform: perspective(200px) rotateX(15deg) translateY(0) } 50% { transform: perspective(200px) rotateX(14deg) translateY(-1px) } 100% { transform: perspective(200px) rotateX(15deg) translateY(0) } }
@keyframes dis-walk-a { 0% { transform: rotate(5deg) translateX(0) } 25% { transform: rotate(7deg) translateX(3px) scale(1.01) } 50% { transform: rotate(5deg) translateX(6px) } 75% { transform: rotate(3deg) translateX(9px) scale(1.01) } 100% { transform: rotate(5deg) translateX(12px) } }
@keyframes dis-walk-b { 0% { transform: rotate(-5deg) translateX(0) } 25% { transform: rotate(-3deg) translateX(-3px) scale(1.01) } 50% { transform: rotate(-5deg) translateX(-6px) } 75% { transform: rotate(-7deg) translateX(-9px) scale(1.01) } 100% { transform: rotate(-5deg) translateX(-12px) } }
@keyframes dis-lamp { 0% { opacity:.2; box-shadow: 0 0 8px 2px rgba(200,200,220,.05) } 50% { opacity:.6; box-shadow: 0 0 20px 6px rgba(200,200,220,.2) } 100% { opacity:.3; box-shadow: 0 0 12px 4px rgba(200,200,220,.1) } }
@keyframes dis-shad { 0% { opacity:.5; transform: skewX(0) } 50% { opacity:.8; transform: skewX(-3deg) scaleX(1.02) } 100% { opacity:.5; transform: skewX(0) } }
@keyframes dis-mist { 0% { transform: translateX(-10%) } 100% { transform: translateX(110%) } }

/* andalusian-anecdote-gold-ounces */
.scn-andalusian-anecdote-gold-ounces { background: linear-gradient(180deg, #f5e6c8 0%, #d4b88c 60%, #b8956a 100%), radial-gradient(circle at 30% 40%, #ffd700 0%, transparent 60%); }
.scn-andalusian-anecdote-gold-ounces .bg-wall    { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #e8d5b0 0%, #d4b88c 100%); border-radius: 0 0 30% 30% / 0 0 15% 15%; }
.scn-andalusian-anecdote-gold-ounces .table      { position:absolute; bottom:20%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #a67c52 0%, #8b6542 100%); border-radius: 8% 8% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.3); }
.scn-andalusian-anecdote-gold-ounces .fig-andaluz{ position:absolute; bottom:22%; left:28%; width:40px; height:70px; background: linear-gradient(180deg, #d4a373 0%, #b07850 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aag-walk 3s ease-in-out infinite; }
.scn-andalusian-anecdote-gold-ounces .fig-girl   { position:absolute; bottom:22%; right:30%; width:34px; height:64px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aag-turn 4s ease-in-out infinite; }
.scn-andalusian-anecdote-gold-ounces .coin-gold  { position:absolute; bottom:38%; left:48%; width:20px; height:20px; background: radial-gradient(circle, #ffd700 0%, #daa520 60%, #b8860b 100%); border-radius: 50%; box-shadow: 0 0 16px 6px rgba(218,165,32,.6); animation: aag-coin 2s ease-in-out infinite alternate; }
.scn-andalusian-anecdote-gold-ounces .coin-shadow{ position:absolute; bottom:36%; left:50%; width:14px; height:4px; background: rgba(0,0,0,.25); border-radius: 50%; filter: blur(3px); animation: aag-shadow 2s ease-in-out infinite alternate; }
.scn-andalusian-anecdote-gold-ounces .chair-back { position:absolute; bottom:22%; left:22%; width:30px; height:40px; background: linear-gradient(180deg, #6b4e2e 0%, #4a3520 100%); border-radius: 10% 10% 0 0; transform: rotate(-8deg); }
@keyframes aag-walk   { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes aag-turn   { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-10px) rotate(-5deg); } 70% { transform: translateX(-10px) rotate(5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes aag-coin   { 0% { transform: translateY(0) scale(1); opacity:.8; } 100% { transform: translateY(-10px) scale(1.6); opacity:1; } }
@keyframes aag-shadow { 0% { transform: translateX(0) scale(1); opacity:.3; } 100% { transform: translateX(4px) scale(0.6); opacity:.15; } }

/* gypsy-patriotism-and-marriage */
.scn-gypsy-patriotism-and-marriage { background: linear-gradient(180deg, #f2dac2 0%, #e0bc8c 40%, #c89b64 100%), radial-gradient(circle at 50% 60%, #ffdb9e 0%, transparent 70%); }
.scn-gypsy-patriotism-and-marriage .bg-altar   { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #c9a87c 0%, transparent 80%); }
.scn-gypsy-patriotism-and-marriage .arch       { position:absolute; top:5%; left:15%; right:15%; bottom:50%; border: 6px solid #a67c52; border-bottom: none; border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 0 20px rgba(166,124,82,.4); }
.scn-gypsy-patriotism-and-marriage .fig-bride  { position:absolute; bottom:28%; left:38%; width:36px; height:72px; background: linear-gradient(180deg, #fff5e1 0%, #f0dbbb 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: gpm-sway 6s ease-in-out infinite; }
.scn-gypsy-patriotism-and-marriage .fig-groom  { position:absolute; bottom:28%; right:38%; width:40px; height:76px; background: linear-gradient(180deg, #5e3a2a 0%, #3a2212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: gpm-sway 6s ease-in-out infinite reverse; }
.scn-gypsy-patriotism-and-marriage .heart-symbol{ position:absolute; top:45%; left:50%; width:30px; height:26px; background: #c8553d; transform: translateX(-50%) rotate(45deg); border-radius: 50% 50% 0 0; box-shadow: 0 0 18px 4px rgba(200,85,61,.4); animation: gpm-pulse 3s ease-in-out infinite; }
.scn-gypsy-patriotism-and-marriage .heart-symbol::before{ content:''; position:absolute; top:-12px; left:0; width:30px; height:26px; background: #c8553d; border-radius: 50% 50% 0 0; }
.scn-gypsy-patriotism-and-marriage .petals     { position:absolute; bottom:20%; left:30%; right:30%; height:8%; background: radial-gradient(circle at 30% 50%, #f7d794 0%, transparent 50%), radial-gradient(circle at 70% 50%, #f7d794 0%, transparent 50%); animation: gpm-drift 8s linear infinite; }
@keyframes gpm-sway  { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 75% { transform: translateY(-6px) rotate(1deg); } }
@keyframes gpm-pulse { 0%,100% { transform: translateX(-50%) rotate(45deg) scale(1); } 50% { transform: translateX(-50%) rotate(45deg) scale(1.15); } }
@keyframes gpm-drift { 0% { background-position: 0 0, 0 0; } 100% { background-position: -50px 0, 50px 0; } }

/* footnote-german-gipsies */
.scn-footnote-german-gipsies { background: linear-gradient(180deg, #e8ddd0 0%, #d4c4b0 50%, #b8a494 100%), radial-gradient(circle at 30% 40%, #f0e6d6 0%, transparent 70%); }
.scn-footnote-german-gipsies .bg-study    { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #dac9b8 0%, #e8ddd0 100%); border-radius: 0 0 40% 40%; }
.scn-footnote-german-gipsies .desk        { position:absolute; bottom:22%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #8b7355 0%, #6b553a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-footnote-german-gipsies .fig-writer  { position:absolute; bottom:22%; left:28%; width:40px; height:68px; background: linear-gradient(180deg, #7c6550 0%, #4d3b2c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: fgg-write 4s ease-in-out infinite; }
.scn-footnote-german-gipsies .fig-visitor { position:absolute; bottom:22%; right:28%; width:36px; height:64px; background: linear-gradient(180deg, #a0856a 0%, #6b553a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: fgg-tilt 6s ease-in-out infinite; }
.scn-footnote-german-gipsies .cup-writer  { position:absolute; bottom:40%; left:32%; width:18px; height:14px; background: linear-gradient(180deg, #d4b88c 0%, #b8956a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.15); }
.scn-footnote-german-gipsies .cup-visitor { position:absolute; bottom:40%; right:32%; width:18px; height:14px; background: linear-gradient(180deg, #d4b88c 0%, #b8956a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.15); animation: fgg-steam 8s ease-in-out infinite; }
.scn-footnote-german-gipsies .paper-scroll{ position:absolute; bottom:38%; left:48%; width:40px; height:30px; background: linear-gradient(180deg, #f5e6c8 0%, #e8d5b0 100%); border-radius: 4%; transform: rotate(-3deg); box-shadow: 0 2px 6px rgba(0,0,0,.1); }
@keyframes fgg-write { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes fgg-tilt  { 0%,100% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-3px) rotate(3deg); } 70% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes fgg-steam { 0% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(-8px) scale(1.1); opacity:.3; } 100% { transform: translateY(0) scale(1); opacity:.6; } }

/* vosges-hospitality-detail */
.scn-vosges-hospitality-detail { background: linear-gradient(180deg, #2c1e1a 0%, #3d2a24 40%, #1a1110 100%), radial-gradient(circle at 35% 55%, #5a3e34 0%, transparent 70%); }
.scn-vosges-hospitality-detail .bg-tent      { position:absolute; inset:0; background: linear-gradient(135deg, #3a2b25 0%, #241b17 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-vosges-hospitality-detail .bed-frame    { position:absolute; bottom:18%; left:20%; right:20%; height:22%; background: linear-gradient(180deg, #5e3e30 0%, #3a2418 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 4px 10px rgba(0,0,0,.6); }
.scn-vosges-hospitality-detail .fig-patient  { position:absolute; bottom:20%; left:30%; width:32px; height:56px; background: linear-gradient(180deg, #786050 0%, #4a3428 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: vhd-breathe 8s ease-in-out infinite; }
.scn-vosges-hospitality-detail .fig-attendant{ position:absolute; bottom:22%; right:32%; width:30px; height:60px; background: linear-gradient(180deg, #4a3428 0%, #2c1e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: vhd-bend 5s ease-in-out infinite; }
.scn-vosges-hospitality-detail .lantern-glow { position:absolute; bottom:45%; left:55%; width:16px; height:24px; background: radial-gradient(circle at 50% 50%, #ffd680 0%, #e0a040 60%, #804020 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 0 30px 10px rgba(255,214,128,.5), 0 0 60px 20px rgba(255,214,128,.2); animation: vhd-flicker 2s ease-in-out infinite alternate; }
.scn-vosges-hospitality-detail .blanket-fold { position:absolute; bottom:22%; left:22%; right:22%; height:8%; background: linear-gradient(180deg, #6b4a3a 0%, #4a3020 100%); border-radius: 20% 20% 40% 40% / 40% 40% 20% 20%; opacity:.7; }
@keyframes vhd-breathe { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } }
@keyframes vhd-bend   { 0%,100% { transform: translateY(0) rotate(0); } 40% { transform: translateY(-4px) rotate(8deg); } 60% { transform: translateY(-2px) rotate(-3deg); } }
@keyframes vhd-flicker { 0% { box-shadow: 0 0 20px 6px rgba(255,214,128,.4), 0 0 40px 12px rgba(255,214,128,.15); opacity:.8; } 50% { box-shadow: 0 0 40px 14px rgba(255,214,128,.7), 0 0 80px 24px rgba(255,214,128,.3); opacity:1; } 100% { box-shadow: 0 0 25px 8px rgba(255,214,128,.5), 0 0 50px 16px rgba(255,214,128,.2); opacity:.85; } }

/* history-of-gipsies */
.scn-history-of-gipsies {
  background: linear-gradient(180deg, #fdf3e2 0%, #e8d5b0 50%, #d4b08c 100%), 
              radial-gradient(ellipse at 50% 80%, #e8d5b0 0%, transparent 70%);
}
.scn-history-of-gipsies .desk { position:absolute; bottom:0; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #8b6f47 0%, #5a432a 100%); border-radius: 20% 20% 0 0 / 12% 12% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); }
.scn-history-of-gipsies .book { position:absolute; bottom:20%; left:30%; width:30%; height:22%; background: linear-gradient(135deg, #c9a87c 0%, #a8825a 100%); border-radius: 6% 6% 8% 8% / 10% 10% 14% 14%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: rotate(-2deg); animation: hg-book 8s ease-in-out infinite alternate; }
.scn-history-of-gipsies .globe { position:absolute; bottom:30%; right:15%; width:16%; aspect-ratio:1/1; background: radial-gradient(circle at 40% 40%, #7baf5a 0%, #3d6a2a 60%, #2b4a1a 100%); border-radius:50%; box-shadow: 0 0 20px 4px rgba(0,0,0,.3); animation: hg-globe 20s linear infinite; }
.scn-history-of-gipsies .candle { position:absolute; bottom:28%; left:18%; width:3%; height:18%; background: linear-gradient(180deg, #f5e1c0 0%, #d4b080 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 0 6px rgba(0,0,0,.3); }
.scn-history-of-gipsies .flame { position:absolute; bottom:45%; left:18.5%; width:1.5%; height:6%; background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, transparent 100%); border-radius:50% 50% 20% 20%; animation: hg-flame 1.5s ease-in-out infinite alternate; }
.scn-history-of-gipsies .scholar { position:absolute; bottom:8%; left:40%; width:12%; height:28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; transform: rotate(3deg); animation: hg-scholar 6s ease-in-out infinite; }
.scn-history-of-gipsies .manuscript { position:absolute; bottom:18%; left:45%; width:20%; height:8%; background: linear-gradient(135deg, #f5e6c8 0%, #d4c4a0 100%); border-radius: 4% 4% 6% 6%; box-shadow: 0 2px 4px rgba(0,0,0,.2); transform: rotate(-5deg); animation: hg-paper 12s ease-in-out infinite alternate; }
.scn-history-of-gipsies .light-beam { position:absolute; bottom:20%; left:18%; right:0; top:10%; background: linear-gradient(135deg, rgba(255,210,100,0.15) 0%, transparent 70%); pointer-events:none; animation: hg-beam 4s ease-in-out infinite alternate; }
@keyframes hg-book { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(0deg) scale(1.01); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes hg-globe { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(180deg) translateY(-3px); } 100% { transform: rotate(360deg) translateY(0); } }
@keyframes hg-flame { 0% { transform: scaleY(0.9) rotate(-2deg); opacity:0.9; } 50% { transform: scaleY(1.1) rotate(2deg); opacity:1; } 100% { transform: scaleY(0.95) rotate(-1deg); opacity:0.9; } }
@keyframes hg-scholar { 0% { transform: translateY(0) rotate(3deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(3deg); } }
@keyframes hg-paper { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes hg-beam { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }

/* language-indian-origin */
.scn-language-indian-origin {
  background: linear-gradient(180deg, #fcf4e8 0%, #eaddc8 40%, #d4c0a0 100%), 
              radial-gradient(ellipse at 60% 70%, #eaddc8 0%, transparent 60%);
}
.scn-language-indian-origin .map { position:absolute; bottom:20%; left:20%; right:20%; top:15%; background: radial-gradient(ellipse at 50% 50%, #b8a080 0%, #8a7050 70%, #5a3a2a 100%); border-radius: 30% 20% 50% 40% / 40% 30% 60% 50%; box-shadow: 0 8px 20px rgba(0,0,0,.4); animation: li-map 30s ease-in-out infinite alternate; }
.scn-language-indian-origin .book-stack { position:absolute; bottom:8%; left:10%; width:25%; height:30%; background: linear-gradient(180deg, #b0906a 0%, #7a603a 100%); border-radius: 10% 10% 8% 8%; box-shadow: 0 4px 10px rgba(0,0,0,.3); transform: rotate(-4deg); }
.scn-language-indian-origin .compass { position:absolute; bottom:40%; right:15%; width:10%; aspect-ratio:1/1; background: radial-gradient(circle, #d4b080 0%, #a0825a 50%, #70502a 100%); border-radius:50%; box-shadow: 0 0 12px 3px rgba(0,0,0,.2); animation: li-compass 10s ease-in-out infinite; }
.scn-language-indian-origin .pen { position:absolute; bottom:20%; left:55%; width:2%; height:20%; background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius: 50% 50% 10% 10%; transform: rotate(20deg); transform-origin: bottom center; animation: li-pen 5s ease-in-out infinite alternate; }
.scn-language-indian-origin .inkwell { position:absolute; bottom:15%; left:50%; width:6%; height:8%; background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a0e05 100%); border-radius: 30% 30% 50% 50%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.5); }
.scn-language-indian-origin .magnifier { position:absolute; bottom:35%; left:55%; width:12%; aspect-ratio:1/1; background: radial-gradient(circle, rgba(200,180,150,0.3) 0%, rgba(200,180,150,0.1) 60%, transparent 80%); border: 3px solid #8a6a3a; border-radius:50%; box-shadow: 0 0 20px rgba(0,0,0,.2); animation: li-magnify 8s ease-in-out infinite; }
.scn-language-indian-origin .papers { position:absolute; bottom:12%; right:18%; width:22%; height:18%; background: linear-gradient(135deg, #f0e0c0 0%, #d4c4a0 100%); border-radius: 6% 6% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.2); transform: rotate(6deg); animation: li-papers 14s ease-in-out infinite alternate; }
@keyframes li-map { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes li-compass { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes li-pen { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(25deg) scaleY(1.02); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes li-magnify { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes li-papers { 0% { transform: rotate(6deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-2px); } 100% { transform: rotate(6deg) translateY(0); } }

/* language-dialect-comparison */
.scn-language-dialect-comparison {
  background: linear-gradient(180deg, #fdf6eb 0%, #ebddc6 50%, #d4bea8 100%), 
              radial-gradient(ellipse at 80% 50%, #ebddc6 0%, transparent 60%);
}
.scn-language-dialect-comparison .book-left { position:absolute; bottom:10%; left:15%; width:30%; height:45%; background: linear-gradient(135deg, #b0906a 0%, #7a603a 100%); border-radius: 8% 8% 12% 12%; box-shadow: 0 8px 16px rgba(0,0,0,.4); transform: rotate(-3deg); animation: dc-book-left 12s ease-in-out infinite alternate; }
.scn-language-dialect-comparison .book-right { position:absolute; bottom:10%; right:15%; width:30%; height:45%; background: linear-gradient(225deg, #a88a64 0%, #705832 100%); border-radius: 8% 8% 12% 12%; box-shadow: 0 8px 16px rgba(0,0,0,.4); transform: rotate(3deg); animation: dc-book-right 12s ease-in-out infinite alternate; }
.scn-language-dialect-comparison .quill { position:absolute; bottom:40%; left:48%; width:1.5%; height:20%; background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius: 50% 50% 10% 10%; transform: rotate(-10deg); transform-origin: bottom center; animation: dc-quill 4s ease-in-out infinite; }
.scn-language-dialect-comparison .inkpot { position:absolute; bottom:35%; left:46%; width:5%; height:7%; background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a0e05 100%); border-radius: 30% 30% 50% 50%; box-shadow: inset 0 -3px 5px rgba(0,0,0,.5); }
.scn-language-dialect-comparison .candle { position:absolute; bottom:20%; left:50%; width:2%; height:15%; background: linear-gradient(180deg, #f5e1c0 0%, #d4b080 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 0 6px rgba(0,0,0,.3); }
.scn-language-dialect-comparison .flame { position:absolute; bottom:34%; left:50.3%; width:1.2%; height:5%; background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, transparent 100%); border-radius: 50% 50% 20% 20%; animation: dc-flame 1.8s ease-in-out infinite alternate; }
.scn-language-dialect-comparison .reader { position:absolute; bottom:8%; left:36%; width:10%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; transform: rotate(-2deg); animation: dc-reader 7s ease-in-out infinite; }
@keyframes dc-book-left { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.01); } 100% { transform: rotate(-3deg) scale(1); } }
@keyframes dc-book-right { 0% { transform: rotate(3deg) scale(1); } 50% { transform: rotate(1deg) scale(1.01); } 100% { transform: rotate(3deg) scale(1); } }
@keyframes dc-quill { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(-5deg) scaleY(1.03); } 100% { transform: rotate(-10deg) scaleY(1); } }
@keyframes dc-flame { 0% { transform: scaleY(0.9) rotate(-3deg); opacity:0.9; } 50% { transform: scaleY(1.15) rotate(3deg); opacity:1; } 100% { transform: scaleY(0.95) rotate(-2deg); opacity:0.9; } }
@keyframes dc-reader { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }

/* language-common-words */
.scn-language-common-words {
  background: linear-gradient(180deg, #fdf4e3 0%, #e8d2b8 50%, #d4b690 100%), 
              radial-gradient(ellipse at 50% 70%, #e8d2b8 0%, transparent 60%);
}
.scn-language-common-words .table { position:absolute; bottom:0; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #a88a64 0%, #685232 100%); border-radius: 20% 20% 0 0 / 15% 15% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); }
.scn-language-common-words .cup { position:absolute; bottom:18%; left:25%; width:8%; height:15%; background: linear-gradient(180deg, #f5e1c0 0%, #d4b080 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: cw-cup 10s ease-in-out infinite alternate; }
.scn-language-common-words .loaf { position:absolute; bottom:22%; left:40%; width:12%; height:10%; background: radial-gradient(ellipse at 50% 50%, #e0b080 0%, #c09060 60%, #a07040 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: cw-loaf 8s ease-in-out infinite; }
.scn-language-common-words .meat { position:absolute; bottom:20%; right:35%; width:10%; height:6%; background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-language-common-words .salt { position:absolute; bottom:25%; right:18%; width:5%; height:8%; background: linear-gradient(180deg, #e8d4b8 0%, #c4a88a 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.2); }
.scn-language-common-words .lantern { position:absolute; bottom:55%; left:40%; right:40%; top:10%; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b08040 70%, transparent 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 10px rgba(255,208,128,0.4); animation: cw-lantern 5s ease-in-out infinite alternate; }
.scn-language-common-words .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, rgba(255,210,100,0.08) 0%, transparent 60%); pointer-events:none; animation: cw-glow 6s ease-in-out infinite alternate; }
@keyframes cw-cup { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cw-loaf { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes cw-lantern { 0% { opacity:0.85; transform: scale(0.98); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:0.9; transform: scale(1); } }
@keyframes cw-glow { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

/* Scene: carmen-dialogue — funny, sunlit */
.scn-carmen-dialogue {
  background: linear-gradient(180deg, #fef4d0 0%, #fae6b0 50%, #ecd89a 100%),
              radial-gradient(circle at 70% 30%, #fff9e6 0%, transparent 60%);
}
.scn-carmen-dialogue .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f5e6c8 0%, #e3d0a0 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.08);
}
.scn-carmen-dialogue .window {
  position: absolute; top: 10%; left: 55%; width: 25%; height: 30%;
  background: radial-gradient(ellipse at 60% 40%, #fff8d0 0%, #e8d8a0 70%, transparent 100%);
  border-radius: 8px 8px 40% 40% / 8px 8px 20% 20%;
  box-shadow: inset 0 0 30px rgba(255,220,100,0.3);
  animation: cd-window 6s ease-in-out infinite alternate;
}
.scn-carmen-dialogue .sunbeam {
  position: absolute; top: 10%; left: 55%; width: 15%; height: 50%;
  background: linear-gradient(180deg, rgba(255,240,180,0.4) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  transform: rotate(-8deg);
  animation: cd-sunbeam 8s ease-in-out infinite alternate;
}
.scn-carmen-dialogue .table {
  position: absolute; bottom: 20%; left: 20%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 20% 20% 8% 8% / 40% 40% 8% 8%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
}
.scn-carmen-dialogue .carmen {
  position: absolute; bottom: 25%; left: 30%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #8a6040 0%, #6a4020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cd-carmen 3s ease-in-out infinite;
}
.scn-carmen-dialogue .narrator {
  position: absolute; bottom: 25%; right: 25%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #706050 0%, #504030 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cd-narrator 4s ease-in-out infinite 0.5s;
}
.scn-carmen-dialogue .wineglass {
  position: absolute; bottom: 28%; left: 38%; width: 4%; height: 10%;
  background: linear-gradient(135deg, #d4c8a0 30%, transparent 30%, transparent 70%, #d4c8a0 70%);
  border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 0 8px rgba(255,200,100,0.3);
  animation: cd-wine 2s ease-in-out infinite alternate;
}
.scn-carmen-dialogue .lantern {
  position: absolute; top: 8%; left: 15%; width: 6%; height: 8%;
  background: radial-gradient(circle, #ffe070 0%, #b08020 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,200,80,0.6);
  animation: cd-lantern 5s ease-in-out infinite alternate;
}
@keyframes cd-window {
  0%,100% { opacity: 0.9; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.05); }
}
@keyframes cd-sunbeam {
  0% { transform: rotate(-10deg); opacity: 0.6; }
  100% { transform: rotate(-2deg); opacity: 0.9; }
}
@keyframes cd-carmen {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(5px) rotate(2deg); }
  60% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cd-narrator {
  0% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(-6px) rotate(-2deg); }
  80% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cd-wine {
  0% { transform: scaleY(1) rotate(0deg); }
  100% { transform: scaleY(0.95) rotate(5deg); }
}
@keyframes cd-lantern {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 20px 6px rgba(255,200,80,0.4); }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 40px 12px rgba(255,200,80,0.7); }
  100% { transform: scale(0.95); opacity: 0.85; box-shadow: 0 0 25px 8px rgba(255,200,80,0.5); }
}

/* Scene: item-acacia-blossom — tense, sunlit */
.scn-item-acacia-blossom {
  background: linear-gradient(180deg, #d4b070 0%, #c09860 50%, #b08850 100%),
              radial-gradient(ellipse at 50% 20%, #f0d8a0 0%, transparent 60%);
}
.scn-item-acacia-blossom .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c8b080 0%, #b8a070 100%);
  animation: ab-sky 12s ease-in-out infinite alternate;
}
.scn-item-acacia-blossom .sun {
  position: absolute; top: 8%; left: 60%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffe090 0%, #ffc070 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(255,200,100,0.5);
  animation: ab-sun 10s ease-in-out infinite alternate;
}
.scn-item-acacia-blossom .blossom {
  position: absolute; top: 30%; left: 45%; width: 6%; height: 6%;
  background: radial-gradient(circle, #f0c8a0 0%, #c08850 100%);
  border-radius: 50%;
  transform: rotate(45deg);
  animation: ab-blossom 0.8s ease-in-out 3;
  animation-delay: 0.5s;
}
.scn-item-acacia-blossom .hand {
  position: absolute; bottom: 30%; left: 38%; width: 10%; height: 15%;
  background: linear-gradient(180deg, #d0a080 0%, #b08060 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ab-hand 4s ease-in-out infinite;
}
.scn-item-acacia-blossom .face {
  position: absolute; bottom: 35%; right: 25%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #c09070 0%, #a07050 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: inset 0 -10px 15px rgba(0,0,0,0.2);
  animation: ab-face 2s ease-in-out infinite;
}
.scn-item-acacia-blossom .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,0.3) 0%, transparent 80%);
  animation: ab-shadow 6s ease-in-out infinite alternate;
}
.scn-item-acacia-blossom .petals {
  position: absolute; top: 25%; left: 20%; width: 20%; height: 20%;
  background: radial-gradient(circle at 30% 40%, #e8c090 10%, transparent 10%),
              radial-gradient(circle at 70% 60%, #d0a070 8%, transparent 8%);
  background-size: 30% 30%;
  animation: ab-petals 8s linear infinite;
}
@keyframes ab-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes ab-sun {
  0% { transform: scale(1); opacity: 0.9; }
  100% { transform: scale(1.15); opacity: 1; }
}
@keyframes ab-blossom {
  0% { transform: rotate(45deg) scale(1); opacity: 1; }
  50% { transform: rotate(90deg) scale(1.3); opacity: 0.8; }
  100% { transform: rotate(135deg) scale(1); opacity: 0; }
}
@keyframes ab-hand {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(10deg); }
  50% { transform: translateX(5px) rotate(-5deg); }
  75% { transform: translateX(15px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ab-face {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(1); }
}
@keyframes ab-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  100% { transform: scaleX(1.2); opacity: 0.8; }
}
@keyframes ab-petals {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 0.6; }
  100% { transform: translate(-30px, 20px) rotate(360deg); opacity: 0.2; }
}

/* Scene: tobacco-stabbing — tense, bright interior */
.scn-tobacco-stabbing {
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 50%, #3a2820 100%),
              radial-gradient(ellipse at 50% 30%, #7a6050 0%, transparent 60%);
}
.scn-tobacco-stabbing .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #4a3828 0%, #5a4838 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-tobacco-stabbing .wall-left {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #5a4838 0%, #3a2820 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  animation: ts-wall 10s ease-in-out infinite alternate;
}
.scn-tobacco-stabbing .wall-right {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #5a4838 0%, #3a2820 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 20% 100%);
  animation: ts-wall 10s ease-in-out infinite alternate-reverse;
}
.scn-tobacco-stabbing .cigar-table {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-tobacco-stabbing .victim {
  position: absolute; bottom: 20%; left: 30%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #806050 0%, #604030 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  transform: rotate(-20deg);
  animation: ts-victim 4s ease-in-out infinite;
}
.scn-tobacco-stabbing .assailant {
  position: absolute; bottom: 25%; right: 25%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #504030 0%, #302010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ts-assailant 3s ease-in-out infinite;
}
.scn-tobacco-stabbing .knife {
  position: absolute; bottom: 48%; right: 30%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #a0a0a0 0%, #707070 100%);
  border-radius: 20% 20% 50% 50% / 10% 10% 30% 30%;
  transform: rotate(30deg);
  animation: ts-knife 0.8s ease-in-out infinite alternate;
}
.scn-tobacco-stabbing .blood {
  position: absolute; bottom: 15%; left: 32%; width: 8%; height: 4%;
  background: radial-gradient(ellipse, #a0461a 0%, transparent 100%);
  border-radius: 50%;
  animation: ts-blood 5s ease-in-out infinite;
}
.scn-tobacco-stabbing .smoke {
  position: absolute; top: 15%; left: 40%; width: 12%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: ts-smoke 15s linear infinite;
}
@keyframes ts-wall {
  0% { opacity: 0.8; }
  100% { opacity: 1; }
}
@keyframes ts-victim {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-25deg) translateX(5px); }
  100% { transform: rotate(-20deg) translateX(0); }
}
@keyframes ts-assailant {
  0% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(-8px) rotate(5deg); }
  80% { transform: translateX(4px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ts-knife {
  0% { transform: rotate(30deg) scaleY(1); }
  100% { transform: rotate(35deg) scaleY(1.1); }
}
@keyframes ts-blood {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.6; }
}
@keyframes ts-smoke {
  0% { transform: translate(0, 0) scale(1); opacity: 0.4; }
  50% { transform: translate(20px, -30px) scale(1.5); opacity: 0.2; }
  100% { transform: translate(40px, -60px) scale(0.8); opacity: 0; }
}

/* Scene: tobacco-quarrel — tense, bright interior */
.scn-tobacco-quarrel {
  background: linear-gradient(180deg, #7a6040 0%, #5a4830 50%, #4a3820 100%),
              radial-gradient(ellipse at 50% 50%, #8a7050 0%, transparent 70%);
}
.scn-tobacco-quarrel .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  clip-path: polygon(5% 0%, 95% 0%, 100% 100%, 0% 100%);
  animation: tq-room 15s ease-in-out infinite alternate;
}
.scn-tobacco-quarrel .shelf {
  position: absolute; top: 15%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(180deg, #5a4838 0%, #3a2820 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-tobacco-quarrel .woman-left {
  position: absolute; bottom: 25%; left: 20%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #8a6850 0%, #6a4830 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tq-woman-left 3s ease-in-out infinite;
}
.scn-tobacco-quarrel .woman-right {
  position: absolute; bottom: 25%; right: 20%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #7a6040 0%, #5a4030 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tq-woman-right 3.2s ease-in-out infinite 0.4s;
}
.scn-tobacco-quarrel .broom {
  position: absolute; bottom: 30%; right: 25%; width: 3%; height: 30%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 4px;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: tq-broom 1.5s ease-in-out infinite;
}
.scn-tobacco-quarrel .basket {
  position: absolute; bottom: 20%; left: 45%; width: 12%; height: 15%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-tobacco-quarrel .dust-motes {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 40%;
  background: radial-gradient(circle at 20% 30%, rgba(255,220,160,0.2) 2px, transparent 2px),
              radial-gradient(circle at 70% 60%, rgba(255,220,160,0.15) 3px, transparent 3px);
  background-size: 10% 10%;
  animation: tq-dust 20s linear infinite;
}
@keyframes tq-room {
  0% { opacity: 0.85; }
  100% { opacity: 1; }
}
@keyframes tq-woman-left {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(5deg); }
  50% { transform: translateX(-4px) rotate(-2deg); }
  75% { transform: translateX(6px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tq-woman-right {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-8px) rotate(-5deg); }
  60% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tq-broom {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-5px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes tq-dust {
  0% { transform: translate(0, 0); opacity: 0.3; }
  50% { transform: translate(20px, -30px); opacity: 0.6; }
  100% { transform: translate(40px, -60px); opacity: 0.1; }
}

.scn-shopping-spree {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f5f5dc 100%),
    radial-gradient(ellipse at 30% 20%, #fff8dc 0%, transparent 50%);
}
.scn-shopping-spree .sun {
  position: absolute; top: 5%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd700 0%, #ffb347 60%, transparent 100%);
  border-radius: 50%;
  animation: ss-sun 8s ease-in-out infinite alternate;
}
.scn-shopping-spree .shop-window {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 50%;
  background: linear-gradient(180deg, #e0c9a0 0%, #c9a87c 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
}
.scn-shopping-spree .counter {
  position: absolute; bottom: 0; left: -5%; width: 110%; height: 30%;
  background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-shopping-spree .figure-customer {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss-walk 3s ease-in-out infinite;
}
.scn-shopping-spree .bags {
  position: absolute; bottom: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-shopping-spree .bag-left {
  left: 30%; animation: ss-bag-left 4s ease-in-out infinite;
}
.scn-shopping-spree .bag-right {
  left: 50%; animation: ss-bag-right 4s ease-in-out infinite 1s;
}
.scn-shopping-spree .yema {
  position: absolute; width: 18px; height: 18px;
  background: radial-gradient(circle at 35% 35%, #ffdb58 0%, #daa520 100%);
  border-radius: 50%;
  animation: ss-yema 5s linear infinite;
}
.scn-shopping-spree .yema-1 { top: 10%; left: 20%; }
.scn-shopping-spree .yema-2 { top: 25%; left: 60%; animation-delay: -2s; }
.scn-shopping-spree .yema-3 { top: 40%; left: 40%; animation-delay: -4s; }
@keyframes ss-sun { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.1) translateY(-10px); } 100% { transform: scale(0.95) translateY(5px); } }
@keyframes ss-walk { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(1deg); } }
@keyframes ss-bag-left { 0%,100% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-6px) rotate(5deg); } }
@keyframes ss-bag-right { 0%,100% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-8px) rotate(-5deg); } }
@keyframes ss-yema { 0% { transform: translateY(0) rotate(0deg) scale(1); } 25% { transform: translateY(-20px) rotate(90deg) scale(1.3); } 50% { transform: translateY(0) rotate(180deg) scale(1); } 75% { transform: translateY(-15px) rotate(270deg) scale(0.8); } 100% { transform: translateY(0) rotate(360deg) scale(1); } }

.scn-calle-del-candilejo {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 60%, #6b4226 0%, transparent 70%);
}
.scn-calle-del-candilejo .room-back {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, transparent 100%);
  animation: cdc-room 15s ease-in-out infinite alternate;
}
.scn-calle-del-candilejo .table {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%);
  border-radius: 8% 8% 4% 4%;
}
.scn-calle-del-candilejo .bottle {
  position: absolute; bottom: 35%; left: 45%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 40% 40%;
  animation: cdc-bottle 6s ease-in-out infinite;
}
.scn-calle-del-candilejo .orange {
  position: absolute; bottom: 38%; width: 20px; height: 20px;
  background: radial-gradient(circle at 30% 30%, #ff8833 0%, #c8553d 100%);
  border-radius: 50%;
  animation: cdc-orange 4s ease-in-out infinite;
}
.scn-calle-del-candilejo .orange-1 { left: 30%; }
.scn-calle-del-candilejo .orange-2 { left: 55%; animation-delay: -2s; }
.scn-calle-del-candilejo .figure-carmen {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #a0461a 0%, #5a1a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: cdc-carmen 5s ease-in-out infinite;
}
.scn-calle-del-candilejo .figure-hag {
  position: absolute; bottom: 20%; left: 55%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 70% 70%;
  animation: cdc-hag 7s ease-in-out infinite;
}
.scn-calle-del-candilejo .cloak {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #702243 0%, #3a001a 100%);
  border-radius: 40% 60% 20% 80% / 60% 40% 80% 20%;
  animation: cdc-cloak 8s ease-in-out infinite;
}
.scn-calle-del-candilejo .candle-glow {
  position: absolute; bottom: 40%; left: 60%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd680 0%, #b08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,0.4);
  animation: cdc-glow 3s ease-in-out infinite alternate;
}
@keyframes cdc-room { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cdc-bottle { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes cdc-orange { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-8px) scale(1.1); } }
@keyframes cdc-carmen { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cdc-hag { 0%,100% { transform: translateY(0) rotate(3deg); } 50% { transform: translateY(-4px) rotate(-3deg); } }
@keyframes cdc-cloak { 0%,100% { transform: skewX(0deg) rotate(0deg); } 50% { transform: skewX(5deg) rotate(3deg); } }
@keyframes cdc-glow { 0% { box-shadow: 0 0 20px 5px #b08040, 0 0 40px 10px rgba(176,128,64,0.3); opacity: 0.9; } 50% { box-shadow: 0 0 40px 15px #ffd680, 0 0 80px 25px rgba(255,214,128,0.5); opacity: 1; } 100% { box-shadow: 0 0 25px 8px #b08040, 0 0 50px 15px rgba(176,128,64,0.35); opacity: 0.85; } }

.scn-wild-frolic {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 80%, #5a3a1a 0%, transparent 60%);
}
.scn-wild-frolic .wall-splat {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30%;
}
.scn-wild-frolic .floor {
  position: absolute; bottom: 0; left: -5%; width: 110%; height: 55%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%);
  border-radius: 40% 40% 0 0;
}
.scn-wild-frolic .dancer {
  position: absolute; bottom: 25%; left: 30%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #c8553d 0%, #8b3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wf-dancer 2.5s ease-in-out infinite;
}
.scn-wild-frolic .skirt {
  position: absolute; bottom: 20%; left: 27%; width: 45px; height: 30px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a001a 100%);
  border-radius: 40% 60% 80% 20% / 60% 40% 20% 80%;
  animation: wf-skirt 3s ease-in-out infinite;
}
.scn-wild-frolic .splatter {
  position: absolute; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffdb58 0%, #daa520 100%);
  border-radius: 50%;
  animation: wf-splat 2s ease-in-out infinite;
}
.scn-wild-frolic .splatter-1 { top: 20%; left: 10%; width: 20px; height: 15px; border-radius: 40% 60% 80% 20% / 60% 40% 20% 80%; }
.scn-wild-frolic .splatter-2 { top: 35%; left: 70%; width: 18px; height: 12px; animation-delay: -0.5s; border-radius: 50% 50% 40% 60% / 30% 30% 70% 70%; }
.scn-wild-frolic .splatter-3 { top: 50%; left: 50%; width: 14px; height: 14px; animation-delay: -1s; border-radius: 30% 70% 50% 50% / 50% 50% 70% 30%; }
.scn-wild-frolic .lamp {
  position: absolute; top: 10%; left: 50%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #b08040 0%, #704010 100%);
  border-radius: 10% 10% 50% 50%;
  animation: wf-lamp 4s ease-in-out infinite;
}
.scn-wild-frolic .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  border-radius: 50%;
  animation: wf-shadow 3s ease-in-out infinite;
}
@keyframes wf-dancer { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(15px) rotate(5deg); } 50% { transform: translateX(0) rotate(-5deg); } 75% { transform: translateX(-15px) rotate(5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes wf-skirt { 0%,100% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.3); } }
@keyframes wf-splat { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-10px) scale(1.4); } }
@keyframes wf-lamp { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes wf-shadow { 0%,100% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.2) scaleY(0.8); } }

.scn-call-to-quarters {
  background: 
    linear-gradient(180deg, #1a2a3e 0%, #2a3a4e 30%, #4a5a6e 60%, #6a7a8e 100%),
    radial-gradient(ellipse at 70% 20%, #8a9aae 0%, transparent 50%);
}
.scn-call-to-quarters .dusk-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a4a5e 0%, #1a2a3e 100%);
  animation: ctq-sky 12s ease-in-out infinite alternate;
}
.scn-call-to-quarters .barracks-wall {
  position: absolute; bottom: 20%; left: 5%; width: 90%; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-call-to-quarters .door {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 8% 8% 0 0;
  animation: ctq-door 5s ease-in-out infinite;
}
.scn-call-to-quarters .figure-soldier {
  position: absolute; bottom: 30%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a5a6e 0%, #2a3a4e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ctq-soldier 3.5s ease-in-out infinite;
}
.scn-call-to-quarters .ramrod {
  position: absolute; bottom: 40%; left: 20%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #8b7355 0%, #5a4a3a 100%);
  border-radius: 20%;
  transform: rotate(-15deg);
  animation: ctq-ramrod 2s ease-in-out infinite alternate;
}
.scn-call-to-quarters .figure-woman {
  position: absolute; bottom: 35%; left: 55%; width: 25px; height: 65px;
  background: linear-gradient(180deg, #702243 0%, #3a001a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: ctq-woman 4s ease-in-out infinite;
}
.scn-call-to-quarters .canary-bird {
  position: absolute; bottom: 50%; left: 60%; width: 12px; height: 8px;
  background: radial-gradient(circle at 30% 30%, #ffdb58 0%, #b8860b 100%);
  border-radius: 50% 50% 30% 70% / 60% 40% 60% 40%;
  animation: ctq-canary 2.5s ease-in-out infinite;
}
.scn-call-to-quarters .lamp-post {
  position: absolute; bottom: 20%; left: 10%; width: 6px; height: 80px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 4% 4% 0 0;
}
.scn-call-to-quarters .ground-haze {
  position: absolute; bottom: 0; left: -5%; width: 110%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: ctq-haze 8s ease-in-out infinite alternate;
}
@keyframes ctq-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ctq-door { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } }
@keyframes ctq-soldier { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(10px) rotate(2deg); } }
@keyframes ctq-ramrod { 0% { transform: rotate(-15deg) translateX(0); } 100% { transform: rotate(5deg) translateX(3px); } }
@keyframes ctq-woman { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-5px) rotate(2deg); } }
@keyframes ctq-canary { 0%,100% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-8px) rotate(10deg); } }
@keyframes ctq-haze { 0% { opacity: 0.4; } 100% { opacity: 0.8; } }

/* rational-fearlessness - calm moonlit */
.scn-rational-fearlessness {
  background:
    radial-gradient(ellipse at 80% 20%, #4a5a7a 0%, transparent 50%),
    linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 40%, #3a3a6e 100%);
}
.scn-rational-fearlessness .moon {
  position: absolute;
  top: 8%;
  left: 75%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle at 35% 35%, #d0e0f0 0%, #a0b8d0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(160,184,208,0.4);
  animation: rf-moon 20s ease-in-out infinite alternate;
}
.scn-rational-fearlessness .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, rgba(30,30,60,0.6) 0%, transparent 100%);
  animation: rf-sky 15s ease-in-out infinite alternate;
}
.scn-rational-fearlessness .hill {
  position: absolute;
  bottom: 35%;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: rf-hill 12s ease-in-out infinite alternate;
}
.scn-rational-fearlessness .table {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 100px;
  height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  transform: perspective(300px) rotateX(10deg);
}
.scn-rational-fearlessness .figure-a {
  position: absolute;
  bottom: 20%;
  left: 32%;
  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: rf-figure-a 4s ease-in-out infinite;
}
.scn-rational-fearlessness .figure-b {
  position: absolute;
  bottom: 20%;
  left: 54%;
  width: 22px;
  height: 52px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rf-figure-b 4.5s ease-in-out infinite;
}
.scn-rational-fearlessness .lantern {
  position: absolute;
  bottom: 26%;
  left: 42%;
  width: 8px;
  height: 12px;
  background: #c0a060;
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 12px 4px rgba(192,160,96,0.6);
  animation: rf-lantern 3s ease-in-out infinite alternate;
}
.scn-rational-fearlessness .candle {
  position: absolute;
  bottom: 28%;
  left: 44%;
  width: 4px;
  height: 10px;
  background: linear-gradient(180deg, #ffd080 0%, #806040 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px 2px rgba(255,208,128,0.5);
  animation: rf-candle 2s ease-in-out infinite alternate;
}
@keyframes rf-moon {
  0% { opacity: 0.8; transform: translate(0, 0); }
  50% { opacity: 1; transform: translate(2px, -1px); }
  100% { opacity: 0.9; transform: translate(-1px, 1px); }
}
@keyframes rf-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes rf-hill {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes rf-figure-a {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes rf-figure-b {
  0% { transform: translateY(0) rotate(1deg); }
  25% { transform: translateY(-1px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes rf-lantern {
  0% { box-shadow: 0 0 8px 2px rgba(192,160,96,0.4); opacity: 0.7; }
  50% { box-shadow: 0 0 16px 6px rgba(192,160,96,0.8); opacity: 1; }
  100% { box-shadow: 0 0 10px 3px rgba(192,160,96,0.5); opacity: 0.8; }
}
@keyframes rf-candle {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.2); opacity: 1; }
  100% { transform: scaleY(0.9); opacity: 0.7; }
}

/* dangerous-charm - warm moonlit */
.scn-dangerous-charm {
  background:
    radial-gradient(ellipse at 40% 60%, #3a4a5a 0%, transparent 60%),
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 50%, #3a3a5e 100%);
}
.scn-dangerous-charm .moon {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 32px;
  height: 32px;
  background: radial-gradient(circle at 30% 30%, #c0d0e0 0%, #a0b0c0 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(160,176,192,0.3);
  animation: dc-moon 15s ease-in-out infinite alternate;
}
.scn-dangerous-charm .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, rgba(30,30,60,0.5) 0%, transparent 100%);
}
.scn-dangerous-charm .wall {
  position: absolute;
  bottom: 20%;
  left: 10%;
  right: 10%;
  height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
  transform: scaleX(1.02);
}
.scn-dangerous-charm .table {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 80px;
  height: 25px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(15deg);
}
.scn-dangerous-charm .candle {
  position: absolute;
  bottom: 22%;
  left: 42%;
  width: 6px;
  height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #806040 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px rgba(255,208,128,0.5);
  animation: dc-candle 2.5s ease-in-out infinite alternate;
}
.scn-dangerous-charm .figure-c {
  position: absolute;
  bottom: 16%;
  left: 30%;
  width: 18px;
  height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dc-figure-c 5s ease-in-out infinite;
}
.scn-dangerous-charm .hand {
  position: absolute;
  bottom: 24%;
  left: 47%;
  width: 10px;
  height: 6px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40%;
  transform-origin: left center;
  animation: dc-hand 3s ease-in-out infinite alternate;
}
.scn-dangerous-charm .shadow {
  position: absolute;
  bottom: 0;
  left: 20%;
  right: 20%;
  height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(4px);
}
@keyframes dc-moon {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(-1px, 1px) scale(1.02); }
  100% { transform: translate(1px, -1px) scale(0.98); }
}
@keyframes dc-candle {
  0% { transform: scaleY(1); opacity: 0.7; box-shadow: 0 0 12px 4px rgba(255,208,128,0.3); }
  50% { transform: scaleY(1.3); opacity: 1; box-shadow: 0 0 24px 10px rgba(255,208,128,0.6); }
  100% { transform: scaleY(0.9); opacity: 0.8; box-shadow: 0 0 16px 6px rgba(255,208,128,0.4); }
}
@keyframes dc-figure-c {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes dc-hand {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(15deg) scaleX(1.1); }
  100% { transform: rotate(-5deg) scaleX(0.9); }
}

/* josé-maria-reference - calm moonlit */
.scn-josé-maria-reference {
  background:
    radial-gradient(ellipse at 50% 10%, #4a5a7a 0%, transparent 50%),
    linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 50%, #3a3a6e 100%);
}
.scn-josé-maria-reference .moon {
  position: absolute;
  top: 6%;
  left: 70%;
  width: 38px;
  height: 38px;
  background: radial-gradient(circle at 30% 30%, #d0e0f0 0%, #a0b8d0 100%);
  border-radius: 50%;
  box-shadow: 0 0 28px 8px rgba(160,184,208,0.3);
  animation: jm-moon 18s ease-in-out infinite alternate;
}
.scn-josé-maria-reference .sky {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, rgba(30,30,60,0.6) 0%, transparent 100%);
}
.scn-josé-maria-reference .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-josé-maria-reference .path {
  position: absolute;
  bottom: 20%;
  left: 20%;
  right: 20%;
  height: 5%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: jm-path 10s ease-in-out infinite alternate;
}
.scn-josé-maria-reference .figure-d {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 20px;
  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: jm-figure-d 6s ease-in-out infinite;
}
.scn-josé-maria-reference .horse {
  position: absolute;
  bottom: 16%;
  left: 48%;
  width: 40px;
  height: 28px;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 20% 30% 50% / 50% 20% 40% 30%;
  transform-origin: bottom center;
  animation: jm-horse 7s ease-in-out infinite;
}
.scn-josé-maria-reference .tree {
  position: absolute;
  bottom: 28%;
  left: 10%;
  width: 6px;
  height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: jm-tree 8s ease-in-out infinite alternate;
}
@keyframes jm-moon {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.02); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes jm-path {
  0% { transform: translateX(0) scaleX(1); opacity: 0.6; }
  50% { transform: translateX(-5px) scaleX(1.05); opacity: 0.8; }
  100% { transform: translateX(3px) scaleX(0.95); opacity: 0.7; }
}
@keyframes jm-figure-d {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes jm-horse {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-3px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes jm-tree {
  0% { transform: scaleY(1) rotate(0); }
  50% { transform: scaleY(1.05) rotate(1deg); }
  100% { transform: scaleY(0.95) rotate(-1deg); }
}

/* jose-maria-dismissal - tense moonlit */
.scn-jose-maria-dismissal {
  background:
    radial-gradient(ellipse at 30% 50%, #3a3a5a 0%, transparent 50%),
    linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 50%, #2a2a4e 100%);
}
.scn-jose-maria-dismissal .moon {
  position: absolute;
  top: 8%;
  left: 60%;
  width: 30px;
  height: 30px;
  background: radial-gradient(circle at 30% 30%, #a0b0c0 0%, #8090a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 18px 4px rgba(128,144,160,0.4);
  animation: jd-moon 12s ease-in-out infinite alternate;
}
.scn-jose-maria-dismissal .sky {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, rgba(20,20,40,0.7) 0%, transparent 100%);
  animation: jd-sky 8s ease-in-out infinite alternate;
}
.scn-jose-maria-dismissal .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.6);
  transform: skewY(1deg);
}
.scn-jose-maria-dismissal .figure-e {
  position: absolute;
  bottom: 18%;
  left: 40%;
  width: 18px;
  height: 46px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jd-figure-e 3s ease-in-out infinite;
}
.scn-jose-maria-dismissal .arm {
  position: absolute;
  bottom: 28%;
  left: 45%;
  width: 14px;
  height: 4px;
  background: #1a1a2a;
  border-radius: 50% 40% 40% 50%;
  transform-origin: left center;
  animation: jd-arm 2.5s ease-in-out infinite alternate;
}
.scn-jose-maria-dismissal .shadow-fast {
  position: absolute;
  bottom: 10%;
  left: 30%;
  right: 30%;
  height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(5px);
  animation: jd-shadow 1.5s ease-in-out infinite alternate;
}
@keyframes jd-moon {
  0% { transform: scale(1) translate(0,0); opacity: 0.6; }
  50% { transform: scale(1.03) translate(2px,-1px); opacity: 0.9; }
  100% { transform: scale(0.96) translate(-2px,1px); opacity: 0.7; }
}
@keyframes jd-sky {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes jd-figure-e {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-1px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes jd-arm {
  0% { transform: rotate(40deg) scaleX(1); }
  50% { transform: rotate(-10deg) scaleX(1.2); }
  100% { transform: rotate(50deg) scaleX(0.9); }
}
@keyframes jd-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.5; }
  50% { transform: translateX(5px) scaleX(1.2); opacity: 0.8; }
  100% { transform: translateX(-3px) scaleX(0.8); opacity: 0.4; }
}

.scn-bullfight-lucas { background: linear-gradient(180deg, #87ceeb 0%, #f5deb3 60%, #d2a679 100%), radial-gradient(ellipse at 50% 80%, #f4d03f 0%, transparent 60%); }
.scn-bullfight-lucas .sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #f0e6d2 0%, #d4c4a8 100%); animation: bf-sky 20s ease-in-out infinite alternate; }
.scn-bullfight-lucas .sun    { position:absolute; top:5%; left:55%; width:50px; height:50px; background: radial-gradient(circle, #fff5cc 0%, #ffe066 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px #ffe066, 0 0 120px 40px rgba(255,224,102,.3); animation: bf-sun 8s ease-in-out infinite; }
.scn-bullfight-lucas .arena  { position:absolute; bottom:10%; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #c8956e 0%, #b07a4f 40%, #8a5a35 100%); border-radius: 40% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: bf-arena 10s ease-in-out infinite; }
.scn-bullfight-lucas .horse  { position:absolute; bottom:30%; left:25%; width:80px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 30% 20% 30% / 50% 40% 40% 40%; transform-origin: center bottom; animation: bf-horse 3s ease-in-out infinite alternate; }
.scn-bullfight-lucas .rider  { position:absolute; bottom:48%; left:33%; width:20px; height:40px; background: linear-gradient(180deg, #c8553d 0%, #a03a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 6px 8px rgba(0,0,0,.3); animation: bf-rider 2s ease-in-out infinite alternate; }
.scn-bullfight-lucas .cape   { position:absolute; bottom:38%; left:45%; width:50px; height:30px; background: linear-gradient(135deg, #c8553d 0%, #a03a1a 100%); border-radius: 80% 20% 40% 40%; transform-origin: left center; animation: bf-cape 1.5s ease-in-out infinite alternate; }
.scn-bullfight-lucas .dust   { position:absolute; bottom:8%; left:20%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(210,166,121,.6) 0%, transparent 100%); border-radius:50%; filter: blur(6px); animation: bf-dust 6s ease-in-out infinite; }
.scn-bullfight-lucas .dust2  { position:absolute; bottom:12%; right:30%; width:60px; height:30px; background: radial-gradient(ellipse, rgba(200,149,110,.5) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: bf-dust2 8s ease-in-out infinite reverse; }
@keyframes bf-sky   { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes bf-sun   { 0%,100% { transform: scale(1) translateX(0) } 50% { transform: scale(1.1) translateX(5px) } }
@keyframes bf-arena { 0%,100% { transform: translateY(0); opacity:.9 } 50% { transform: translateY(-5px); opacity:1 } }
@keyframes bf-horse { 0% { transform: rotate(-2deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(-2deg) scaleY(1) } }
@keyframes bf-rider { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(2px) rotate(3deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes bf-cape  { 0% { transform: rotateY(0deg) scaleX(1) } 50% { transform: rotateY(20deg) scaleX(1.1) } 100% { transform: rotateY(-20deg) scaleX(0.9) } }
@keyframes bf-dust  { 0% { transform: translateX(0) translateY(0); opacity:.4 } 50% { transform: translateX(20px) translateY(-10px); opacity:.8 } 100% { transform: translateX(40px) translateY(0); opacity:.4 } }
@keyframes bf-dust2 { 0% { transform: translateX(0) translateY(0); opacity:.3 } 50% { transform: translateX(-30px) translateY(-5px); opacity:.6 } 100% { transform: translateX(-60px) translateY(0); opacity:.3 } }

.scn-cordova-theft { background: linear-gradient(180deg, #1a1a1a 0%, #2a1a0a 40%, #0d0d0d 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%); }
.scn-cordova-theft .wall   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.6); animation: ct-wall 20s ease-in-out infinite alternate; }
.scn-cordova-theft .table  { position:absolute; bottom:20%; left:30%; right:30%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.5); animation: ct-table 12s ease-in-out infinite; }
.scn-cordova-theft .candle { position:absolute; bottom:45%; left:50%; width:10px; height:28px; transform:translateX(-50%); background: linear-gradient(180deg, #f5e6c0 0%, #e0c080 40%, #8a6030 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 10px 2px rgba(255,200,100,.3); animation: ct-candle-move 5s ease-in-out infinite alternate; }
.scn-cordova-theft .glow   { position:absolute; bottom:40%; left:50%; width:120px; height:120px; transform:translateX(-50%); background: radial-gradient(circle, rgba(255,200,100,.25) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: ct-glow 3s ease-in-out infinite alternate; }
.scn-cordova-theft .watch  { position:absolute; bottom:25%; left:42%; width:24px; height:24px; background: radial-gradient(circle, #d4af37 0%, #b8860b 60%, #8a6020 100%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(212,175,55,.5); animation: ct-watch 7s ease-in-out infinite; }
.scn-cordova-theft .ring   { position:absolute; bottom:28%; left:52%; width:16px; height:16px; background: radial-gradient(circle, #d4af37 0%, #b8860b 60%, #8a6020 100%); border-radius:50%; box-shadow: 0 0 6px 1px rgba(212,175,55,.4); animation: ct-ring 8s ease-in-out infinite reverse; }
.scn-cordova-theft .hand   { position:absolute; bottom:35%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ct-hand 4s ease-in-out infinite alternate; }
@keyframes ct-wall   { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes ct-table  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ct-candle-move { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-48%) rotate(2deg); } 100% { transform: translateX(-52%) rotate(-2deg); } }
@keyframes ct-glow   { 0% { opacity:.4; transform: translateX(-50%) scale(1) } 50% { opacity:.8; transform: translateX(-48%) scale(1.1) } 100% { opacity:.5; transform: translateX(-52%) scale(0.95) } }
@keyframes ct-watch  { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(10deg) translateX(3px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes ct-ring   { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(15deg) scale(1.05) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes ct-hand   { 0% { transform: translateX(0) rotate(5deg) } 50% { transform: translateX(5px) rotate(-5deg) } 100% { transform: translateX(0) rotate(5deg) } }

.scn-bullfight-cordova { background: linear-gradient(180deg, #87ceeb 0%, #f5deb3 60%, #d2a679 100%), radial-gradient(ellipse at 50% 80%, #f4d03f 0%, transparent 60%); }
.scn-bullfight-cordova .sky     { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #f0e6d2 0%, #d4c4a8 100%); animation: bc-sky 20s ease-in-out infinite alternate; }
.scn-bullfight-cordova .crowd   { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 60% 60% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: bc-crowd 10s ease-in-out infinite; }
.scn-bullfight-cordova .bull    { position:absolute; bottom:28%; left:35%; width:90px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: center bottom; animation: bc-bull 2s ease-in-out infinite alternate; }
.scn-bullfight-cordova .matador { position:absolute; bottom:40%; left:55%; width:24px; height:60px; background: linear-gradient(180deg, #c8553d 0%, #a03a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 6px 8px rgba(0,0,0,.3); animation: bc-matador 1.5s ease-in-out infinite alternate; }
.scn-bullfight-cordova .cape    { position:absolute; bottom:38%; left:45%; width:80px; height:40px; background: linear-gradient(135deg, #c8553d 0%, #a03a1a 60%, #6a2010 100%); border-radius: 80% 20% 50% 50%; transform-origin: right center; animation: bc-cape 1s ease-in-out infinite alternate; }
.scn-bullfight-cordova .shadow  { position:absolute; bottom:12%; left:30%; width:120px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); border-radius:50%; filter: blur(6px); animation: bc-shadow 8s ease-in-out infinite; }
.scn-bullfight-cordova .dust    { position:absolute; bottom:8%; left:20%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(210,166,121,.6) 0%, transparent 100%); border-radius:50%; filter: blur(6px); animation: bc-dust 6s ease-in-out infinite; }
@keyframes bc-sky   { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes bc-crowd { 0%,100% { transform: translateY(0); opacity:.85 } 50% { transform: translateY(-3px); opacity:1 } }
@keyframes bc-bull  { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes bc-matador { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(-3px) rotate(3deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes bc-cape  { 0% { transform: rotateY(0deg) scaleX(1) } 50% { transform: rotateY(30deg) scaleX(1.2) } 100% { transform: rotateY(-30deg) scaleX(0.8) } }
@keyframes bc-shadow { 0%,100% { opacity:.5; transform: scaleX(1) } 50% { opacity:.8; transform: scaleX(1.2) } }
@keyframes bc-dust  { 0% { transform: translateX(0) translateY(0); opacity:.4 } 50% { transform: translateX(15px) translateY(-8px); opacity:.8 } 100% { transform: translateX(30px) translateY(0); opacity:.4 } }

.scn-after-bullfight { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 40%, #0d0d1a 100%), radial-gradient(ellipse at 50% 20%, #2a2a4e 0%, transparent 70%); }
.scn-after-bullfight .sky    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 100%); animation: ab-sky 20s ease-in-out infinite alternate; }
.scn-after-bullfight .moon   { position:absolute; top:10%; left:60%; width:60px; height:60px; background: radial-gradient(circle, #e0e8f0 0%, #b0b8c8 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 15px #c0c8d8, 0 0 80px 30px rgba(192,200,216,.3); animation: ab-moon 12s ease-in-out infinite; }
.scn-after-bullfight .house  { position:absolute; bottom:20%; left:30%; width:140px; height:120px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,.5); animation: ab-house 15s ease-in-out infinite; }
.scn-after-bullfight .window { position:absolute; bottom:40%; left:38%; width:20px; height:28px; background: radial-gradient(circle, #404060 0%, #202040 70%); border-radius:20%; box-shadow: 0 0 20px 4px rgba(100,100,150,.3); animation: ab-window 4s ease-in-out infinite alternate; }
.scn-after-bullfight .door   { position:absolute; bottom:22%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); animation: ab-door 8s ease-in-out infinite; }
.scn-after-bullfight .figure { position:absolute; bottom:30%; left:55%; width:18px; height:40px; background: linear-gradient(180deg, #0d0d1a 0%, #05050a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ab-figure 3s ease-in-out infinite alternate; }
.scn-after-bullfight .lamp   { position:absolute; bottom:32%; left:60%; width:10px; height:10px; background: radial-gradient(circle, #ffcc90 0%, #b08040 70%); border-radius:50%; box-shadow: 0 0 24px 6px #b08040, 0 0 48px 12px rgba(176,128,64,.3); animation: ab-lamp 5s ease-in-out infinite alternate; }
@keyframes ab-sky    { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes ab-moon   { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(5px) scale(1.05) } 100% { transform: translateX(0) scale(1) } }
@keyframes ab-house  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ab-window { 0% { opacity:.5; box-shadow: 0 0 10px 2px rgba(100,100,150,.2) } 50% { opacity:1; box-shadow: 0 0 30px 8px rgba(150,150,200,.5) } 100% { opacity:.6; box-shadow: 0 0 15px 3px rgba(100,100,150,.25) } }
@keyframes ab-door   { 0%,100% { transform: rotateY(0deg) } 50% { transform: rotateY(15deg) } }
@keyframes ab-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes ab-lamp   { 0% { opacity:.7; box-shadow: 0 0 18px 4px #b08040 } 50% { opacity:1; box-shadow: 0 0 32px 10px #ffcc90 } 100% { opacity:.8; box-shadow: 0 0 22px 6px #b08040 } }

.scn-englishman-robbery { background: linear-gradient(180deg, #0d1b2a 0%, #1b2a3a 40%, #2a3b4b 100%), radial-gradient(ellipse at 50% 0%, #2a3b4b 0%, transparent 70%); }
.scn-englishman-robbery .er-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a2a3a 0%, #2a3b4b 100%); animation: er-sky 8s ease-in-out infinite alternate; }
.scn-englishman-robbery .er-moon { position:absolute; top:8%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #c8d8e8 0%, #a0b8d0 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(160,184,208,.4); animation: er-moon 12s ease-in-out infinite alternate; }
.scn-englishman-robbery .er-building { position:absolute; bottom:30%; left:20%; width:60%; height:50%; background: linear-gradient(180deg, #1a2a3a 0%, #0d1b2a 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.5); animation: er-building 15s ease-in-out infinite alternate; }
.scn-englishman-robbery .er-window { position:absolute; bottom:48%; left:40%; width:24px; height:30px; background: radial-gradient(circle, #e8d8a0 0%, #b8a060 70%); border-radius:4% 4% 8% 8%; box-shadow: 0 0 20px 6px rgba(232,216,160,.4), 0 0 40px 12px rgba(232,216,160,.2); animation: er-window 4s ease-in-out infinite alternate; }
.scn-englishman-robbery .er-figure { position:absolute; bottom:46%; left:35%; width:16px; height:30px; background: linear-gradient(180deg, #0d1b2a 0%, #1a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: er-figure 3s ease-in-out infinite; }
.scn-englishman-robbery .er-lamp { position:absolute; bottom:34%; left:45%; width:8px; height:12px; background: radial-gradient(circle, #e8d8a0 0%, #c8b080 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 16px 4px rgba(232,216,160,.6); animation: er-lamp 5s ease-in-out infinite alternate; }
.scn-englishman-robbery .er-shadow { position:absolute; bottom:30%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); border-radius: 0 0 20% 20%; animation: er-shadow 10s ease-in-out infinite alternate; }
@keyframes er-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes er-moon { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes er-building { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(.99) } }
@keyframes er-window { 0% { box-shadow: 0 0 16px 4px rgba(232,216,160,.3); opacity:.85 } 50% { box-shadow: 0 0 28px 8px rgba(232,216,160,.6); opacity:1 } 100% { box-shadow: 0 0 20px 5px rgba(232,216,160,.35); opacity:.9 } }
@keyframes er-figure { 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 er-lamp { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(.95) } }
@keyframes er-shadow { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-continued-smuggling { background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 40%, #2a3a4a 100%), radial-gradient(ellipse at 50% 0%, #3a4a5a 0%, transparent 70%); }
.scn-continued-smuggling .cs-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%); animation: cs-sky 20s ease-in-out infinite alternate; }
.scn-continued-smuggling .cs-moon { position:absolute; top:10%; left:50%; width:40px; height:40px; background: radial-gradient(circle, #d0e0f0 0%, #a0b8d0 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(160,184,208,.3); animation: cs-moon 15s ease-in-out infinite alternate; }
.scn-continued-smuggling .cs-water { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 50%, #1a2a3a 100%); animation: cs-water 18s ease-in-out infinite alternate; }
.scn-continued-smuggling .cs-boat { position:absolute; bottom:20%; left:30%; width:80px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:0 0 40% 40% / 0 0 80% 80%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: cs-boat 6s ease-in-out infinite; }
.scn-continued-smuggling .cs-sail { position:absolute; bottom:30%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #c8b8a0 0%, #a09080 100%); border-radius:20% 20% 10% 10%; transform-origin: bottom center; animation: cs-sail 7s ease-in-out infinite alternate; }
.scn-continued-smuggling .cs-lantern { position:absolute; bottom:28%; left:34%; width:6px; height:6px; background: radial-gradient(circle, #e8d8a0 0%, #c8b080 100%); border-radius:50%; box-shadow: 0 0 12px 3px rgba(232,216,160,.5); animation: cs-lantern 4s ease-in-out infinite alternate; }
.scn-continued-smuggling .cs-reflection { position:absolute; bottom:5%; left:30%; width:80px; height:10px; background: linear-gradient(180deg, rgba(160,184,208,.2) 0%, transparent 100%); border-radius:50%; animation: cs-reflection 10s ease-in-out infinite; }
.scn-continued-smuggling .cs-wave { position:absolute; bottom:30%; left:0; width:200%; height:10px; background: linear-gradient(180deg, rgba(42,58,74,.5) 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: cs-wave 12s linear infinite; }
@keyframes cs-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cs-moon { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes cs-water { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cs-boat { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-4px) rotate(-1deg) } }
@keyframes cs-sail { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(-1deg) scaleY(.98) } }
@keyframes cs-lantern { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cs-reflection { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes cs-wave { 0% { transform: translateX(0) } 100% { transform: translateX(-50%) } }

.scn-malaga-uneasiness { background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 30%, #f0e8c0 100%), radial-gradient(ellipse at 50% 0%, #f0e8c0 0%, transparent 60%); }
.scn-malaga-uneasiness .mu-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 100%); animation: mu-sky 10s ease-in-out infinite alternate; }
.scn-malaga-uneasiness .mu-sun { position:absolute; top:10%; left:20%; width:60px; height:60px; background: radial-gradient(circle, #fff0c0 0%, #f0d080 100%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(240,208,128,.4); animation: mu-sun 8s ease-in-out infinite alternate; }
.scn-malaga-uneasiness .mu-building { position:absolute; bottom:30%; left:10%; width:40%; height:60%; background: linear-gradient(180deg, #d0c8b0 0%, #a09880 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.2); animation: mu-building 12s ease-in-out infinite alternate; }
.scn-malaga-uneasiness .mu-stall { position:absolute; bottom:30%; left:40%; width:30%; height:20%; background: linear-gradient(180deg, #c8b8a0 0%, #a09080 100%); border-radius:8% 8% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: mu-stall 6s ease-in-out infinite; }
.scn-malaga-uneasiness .mu-merchant { position:absolute; bottom:30%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mu-merchant 4s ease-in-out infinite; }
.scn-malaga-uneasiness .mu-figure { position:absolute; bottom:32%; left:35%; width:18px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mu-figure 5s ease-in-out infinite; }
.scn-malaga-uneasiness .mu-shadow { position:absolute; bottom:30%; left:35%; width:20px; height:10px; background: rgba(0,0,0,.3); border-radius:50%; animation: mu-shadow 5s ease-in-out infinite; }
.scn-malaga-uneasiness .mu-awning { position:absolute; bottom:48%; left:40%; width:30%; height:4px; background: linear-gradient(90deg, #e0d0b0 0%, #c0b090 100%); border-radius:4px; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: mu-awning 7s ease-in-out infinite alternate; }
@keyframes mu-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes mu-sun { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(.98) } }
@keyframes mu-building { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(.995) } }
@keyframes mu-stall { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes mu-merchant { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mu-figure { 0% { transform: translateX(0) } 50% { transform: translateX(6px) } 100% { transform: translateX(0) } }
@keyframes mu-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 } }
@keyframes mu-awning { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(.98) } }

.scn-wounded-nursing { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a2a3a 100%), radial-gradient(ellipse at 30% 80%, #3a2a1a 0%, transparent 70%); }
.scn-wounded-nursing .wn-cave { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 60%, #2a1a0a 100%); border-radius:0 0 40% 40% / 0 0 20% 20%; animation: wn-cave 15s ease-in-out infinite alternate; }
.scn-wounded-nursing .wn-entrance { position:absolute; top:10%; left:10%; width:80%; height:40%; background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%); border-radius:0 0 50% 50% / 0 0 100% 100%; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: wn-entrance 12s ease-in-out infinite alternate; }
.scn-wounded-nursing .wn-moonlight { position:absolute; top:10%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, rgba(160,184,208,.2) 0%, transparent 100%); filter: blur(8px); animation: wn-moonlight 10s ease-in-out infinite alternate; }
.scn-wounded-nursing .wn-fire { position:absolute; bottom:20%; left:50%; width:20px; height:30px; background: radial-gradient(circle, #ff8040 0%, #c04020 60%, #802010 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 30px 10px rgba(255,128,64,.4), 0 0 60px 20px rgba(192,64,32,.2); animation: wn-fire 3s ease-in-out infinite alternate; }
.scn-wounded-nursing .wn-wounded { position:absolute; bottom:18%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wn-wounded 6s ease-in-out infinite; }
.scn-wounded-nursing .wn-nurse { position:absolute; bottom:20%; left:45%; width:18px; height:32px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wn-nurse 4s ease-in-out infinite; }
.scn-wounded-nursing .wn-blanket { position:absolute; bottom:18%; left:33%; width:24px; height:8px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:20% 20% 40% 40%; animation: wn-blanket 8s ease-in-out infinite alternate; }
.scn-wounded-nursing .wn-shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.8) 100%); animation: wn-shadow 10s ease-in-out infinite alternate; }
@keyframes wn-cave { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes wn-entrance { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes wn-moonlight { 0% { opacity:.2 } 50% { opacity:.4 } 100% { opacity:.15 } }
@keyframes wn-fire { 0% { transform: scale(1) rotate(0deg); opacity:.8 } 25% { transform: scale(1.05) rotate(3deg); opacity:1 } 50% { transform: scale(.95) rotate(-2deg); opacity:.9 } 75% { transform: scale(1.1) rotate(1deg); opacity:1 } 100% { transform: scale(1) rotate(0deg); opacity:.85 } }
@keyframes wn-wounded { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wn-nurse { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes wn-blanket { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(.9) } }
@keyframes wn-shadow { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }

/* ambush-by-soldiers (tense, dawn) */
.scn-ambush-by-soldiers {
  background:
    linear-gradient(180deg, #ff7b4a 0%, #e85d2a 40%, #b34a1a 70%, #6b2e0e 100%),
    radial-gradient(ellipse at 50% 0, #ff9f6e 0%, transparent 60%);
}
.scn-ambush-by-soldiers .sky-dawn { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffa76b 0%, #e85d2a 40%, transparent 100%); animation: amb-sky 14s ease-in-out infinite alternate; }
.scn-ambush-by-soldiers .sun-haze { position:absolute; top:10%; left:40%; width:60px; height:60px; background: radial-gradient(circle, #ffd17e 0%, #ff8a4a 30%, transparent 70%); border-radius:50%; filter: blur(8px); animation: amb-sun 20s ease-in-out infinite; }
.scn-ambush-by-soldiers .cliff { position:absolute; bottom:28%; height:40%; width:28%; background: linear-gradient(180deg, #4e2e18 0%, #2e1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 -20px 30px #1a0e05; }
.scn-ambush-by-soldiers .left-cliff { left:0; border-radius:0 30% 0 0; animation: amb-cliff-l 17s ease-in-out infinite; }
.scn-ambush-by-soldiers .right-cliff { right:0; border-radius:30% 0 0 0; animation: amb-cliff-r 17s ease-in-out infinite; }
.scn-ambush-by-soldiers .mule { position:absolute; bottom:26%; left:35%; width:40px; height:30px; background: linear-gradient(135deg, #7a5a3a 0%, #4a3020 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: amb-mule 5s ease-in-out infinite; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-ambush-by-soldiers .soldier-on-horse { position:absolute; bottom:28%; left:52%; width:45px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; transform: scaleX(-1); animation: amb-horse 3s ease-in-out infinite; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-ambush-by-soldiers .soldier-foot { position:absolute; bottom:26%; left:62%; width:18px; height:36px; background: #2a1a0e; border-radius:30% 30% 10% 10%; transform: rotate(10deg); animation: amb-foot 2.5s ease-in-out infinite; box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
.scn-ambush-by-soldiers .dust { position:absolute; bottom:24%; left:40%; width:80px; height:12px; background: radial-gradient(ellipse, rgba(180,120,70,0.4) 0%, transparent 60%); filter: blur(3px); animation: amb-dust 6s ease-in-out infinite; }

@keyframes amb-sky { 0%{ opacity:0.7 } 50%{ opacity:1 } 100%{ opacity:0.8 } }
@keyframes amb-sun { 0%{ transform: scale(1); opacity:0.8 } 50%{ transform: scale(1.1); opacity:1 } 100%{ transform: scale(0.95); opacity:0.7 } }
@keyframes amb-cliff-l { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-5px) } }
@keyframes amb-cliff-r { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-4px) } }
@keyframes amb-mule { 0%{ transform: rotate(-5deg) translateX(0) } 25%{ transform: rotate(-3deg) translateX(6px) } 50%{ transform: rotate(-5deg) translateX(12px) } 75%{ transform: rotate(-7deg) translateX(6px) } 100%{ transform: rotate(-5deg) translateX(0) } }
@keyframes amb-horse { 0%{ transform: scaleX(-1) translateY(0) rotate(0) } 50%{ transform: scaleX(-1) translateY(-2px) rotate(-2deg) } 100%{ transform: scaleX(-1) translateY(0) rotate(0) } }
@keyframes amb-foot { 0%{ transform: rotate(10deg) translateY(0) } 50%{ transform: rotate(8deg) translateY(-1px) } 100%{ transform: rotate(10deg) translateY(0) } }
@keyframes amb-dust { 0%{ opacity:0.3; transform: translateX(0) } 50%{ opacity:0.6; transform: translateX(-10px) } 100%{ opacity:0.2; transform: translateX(20px) } }

/* remendado-death (dark, dawn) */
.scn-remendado-death {
  background:
    linear-gradient(180deg, #3a2a1e 0%, #251a12 40%, #120c08 100%),
    radial-gradient(ellipse at 50% 0, #5a3a2a 0%, transparent 60%);
}
.scn-remendado-death .sky-dim { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); animation: rem-sky 18s ease-in-out infinite alternate; }
.scn-remendado-death .rock-bg { position:absolute; bottom:30%; left:10%; width:80%; height:50%; background: #1e140e; border-radius: 40% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); animation: rem-rock-bg 12s ease-in-out infinite; }
.scn-remendado-death .rock-fg { position:absolute; bottom:18%; left:15%; width:60%; height:35%; background: radial-gradient(ellipse at 20% 80%, #2e1a0e 0%, #160e08 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform: rotate(-5deg); box-shadow: 0 8px 20px #0a0604; animation: rem-rock-fg 15s ease-in-out infinite; }
.scn-remendado-death .body-remendado { position:absolute; bottom:20%; left:30%; width:30px; height:25px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(15deg); box-shadow: inset 0 -4px 6px #0a0604; animation: rem-body 8s ease-in-out infinite; }
.scn-remendado-death .figure-garcia { position:absolute; bottom:22%; left:55%; width:22px; height:44px; background: #2a1a12; border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; transform: skew(5deg); box-shadow: 0 4px 8px #0a0604; animation: rem-garcia 6s ease-in-out infinite; }
.scn-remendado-death .blood-pool { position:absolute; bottom:18%; left:34%; width:20px; height:6px; background: radial-gradient(ellipse, #7a3a2a 0%, #4a2218 100%); border-radius:50%; filter: blur(2px); animation: rem-blood 9s ease-in-out infinite; box-shadow: 0 0 12px #7a3a2a; }
.scn-remendado-death .shadow-long { position:absolute; bottom:10%; left:20%; width:70%; height:4px; background: linear-gradient(90deg, transparent 0%, #0a0604 40%, transparent 100%); filter: blur(4px); animation: rem-shadow 20s linear infinite; }

@keyframes rem-sky { 0%{ opacity:0.5 } 50%{ opacity:0.8 } 100%{ opacity:0.6 } }
@keyframes rem-rock-bg { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-3px) } }
@keyframes rem-rock-fg { 0%{ transform: rotate(-5deg) scale(1) } 50%{ transform: rotate(-4deg) scale(1.02) } 100%{ transform: rotate(-5deg) scale(0.98) } }
@keyframes rem-body { 0%{ transform: rotate(15deg) translateY(0) } 50%{ transform: rotate(14deg) translateY(-2px) } 100%{ transform: rotate(15deg) translateY(0) } }
@keyframes rem-garcia { 0%{ transform: skew(5deg) translateX(0) } 50%{ transform: skew(6deg) translateX(3px) } 100%{ transform: skew(5deg) translateX(0) } }
@keyframes rem-blood { 0%{ opacity:0.8 } 50%{ opacity:1 } 100%{ opacity:0.7 } }
@keyframes rem-shadow { 0%{ transform: translateX(0) scaleX(1) } 50%{ transform: translateX(-10px) scaleX(1.2) } 100%{ transform: translateX(0) scaleX(1) } }

/* aftermath-thicket (dark, moonlit) */
.scn-aftermath-thicket {
  background:
    linear-gradient(180deg, #0e142a 0%, #181e38 40%, #1a1e30 100%),
    radial-gradient(ellipse at 50% 0, #2a3456 0%, transparent 60%);
}
.scn-aftermath-thicket .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #14183a 0%, #0a0e20 100%); animation: aft-sky 15s ease-in-out infinite alternate; }
.scn-aftermath-thicket .moon { position:absolute; top:12%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #c0c8e0 0%, #8890b0 100%); border-radius:50%; box-shadow: 0 0 40px #a0a8c8, 0 0 80px rgba(160,168,200,0.3); animation: aft-moon 30s linear infinite; }
.scn-aftermath-thicket .thicket-left { position:absolute; bottom:10%; left:0; width:40%; height:70%; background: linear-gradient(135deg, #1a2218 0%, #0e140e 100%); border-radius: 0 40% 0 20%; filter: blur(2px); animation: aft-thicket 20s ease-in-out infinite; }
.scn-aftermath-thicket .thicket-right { position:absolute; bottom:8%; right:0; width:35%; height:65%; background: linear-gradient(225deg, #1a2218 0%, #0e140e 100%); border-radius: 40% 0 20% 0; filter: blur(2px); animation: aft-thicket 20s ease-in-out infinite reverse; }
.scn-aftermath-thicket .garcia-figure { position:absolute; bottom:22%; left:45%; width:24px; height:50px; background: #202a20; border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(5deg); box-shadow: 0 4px 10px rgba(0,0,0,0.6); animation: aft-garcia 8s ease-in-out infinite; }
.scn-aftermath-thicket .card { position:absolute; bottom:24%; width:12px; height:18px; background: linear-gradient(180deg, #d8d0c0 0%, #b8a890 100%); border-radius: 4px; box-shadow: 0 1px 4px rgba(0,0,0,0.4); transform: rotate(20deg); }
.scn-aftermath-thicket .card-1 { left:42%; animation: aft-card1 5s ease-in-out infinite; }
.scn-aftermath-thicket .card-2 { left:46%; animation: aft-card2 5.3s ease-in-out infinite; animation-delay: -1.2s; }
.scn-aftermath-thicket .card-3 { left:50%; animation: aft-card3 4.8s ease-in-out infinite; animation-delay: -2.5s; }
.scn-aftermath-thicket .firefly { position:absolute; top:30%; left:20%; width:4px; height:4px; background: radial-gradient(circle, #ffffa0 0%, transparent 80%); border-radius:50%; filter: blur(2px); animation: aft-firefly 7s ease-in-out infinite; box-shadow: 0 0 12px #ffffa0; }

@keyframes aft-sky { 0%{ opacity:0.3 } 50%{ opacity:0.6 } 100%{ opacity:0.4 } }
@keyframes aft-moon { 0%{ transform: translate(0,0) } 50%{ transform: translate(-5px, 3px) } 100%{ transform: translate(0,0) } }
@keyframes aft-thicket { 0%{ transform: scaleY(1) } 50%{ transform: scaleY(1.02) } 100%{ transform: scaleY(1) } }
@keyframes aft-garcia { 0%{ transform: rotate(5deg) translateY(0) } 25%{ transform: rotate(8deg) translateY(-2px) } 50%{ transform: rotate(5deg) translateY(0) } 75%{ transform: rotate(2deg) translateY(-1px) } 100%{ transform: rotate(5deg) translateY(0) } }
@keyframes aft-card1 { 0%{ transform: rotate(20deg) translateY(0) } 50%{ transform: rotate(15deg) translateY(-5px) } 100%{ transform: rotate(20deg) translateY(0) } }
@keyframes aft-card2 { 0%{ transform: rotate(-15deg) translateY(0) } 50%{ transform: rotate(-10deg) translateY(-4px) } 100%{ transform: rotate(-15deg) translateY(0) } }
@keyframes aft-card3 { 0%{ transform: rotate(30deg) translateY(0) } 50%{ transform: rotate(25deg) translateY(-6px) } 100%{ transform: rotate(30deg) translateY(0) } }
@keyframes aft-firefly { 0%{ opacity:0; transform: translate(0,0) } 20%{ opacity:1 } 40%{ transform: translate(20px, -10px) } 60%{ opacity:0.8 } 80%{ transform: translate(-10px, 5px) } 100%{ opacity:0; transform: translate(0,0) } }

/* carmen-disguised (funny, sunlit) */
.scn-carmen-disguised {
  background:
    linear-gradient(180deg, #fce2b8 0%, #f2c78a 30%, #d9a85a 60%, #b88538 100%),
    radial-gradient(ellipse at 50% 100%, #ffeac0 0%, transparent 70%);
}
.scn-carmen-disguised .sunlit-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 20%, #fff5e0 0%, transparent 60%); animation: car-bg 12s ease-in-out infinite; }
.scn-carmen-disguised .sky-blue { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #b0d4f0 0%, #e8f0ff 70%, transparent 100%); opacity:0.6; animation: car-sky 20s ease-in-out infinite alternate; }
.scn-carmen-disguised .mule { position:absolute; bottom:22%; left:25%; width:50px; height:35px; background: linear-gradient(135deg, #8a6a4a 0%, #5a4028 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-3deg); box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: car-mule 6s ease-in-out infinite; }
.scn-carmen-disguised .muleteer { position:absolute; bottom:22%; left:18%; width:20px; height:45px; background: linear-gradient(180deg, #7a6a4a 0%, #4a382a 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; transform: skewX(3deg); animation: car-muleteer 8s ease-in-out infinite; }
.scn-carmen-disguised .carmen-figure { position:absolute; bottom:24%; left:50%; width:22px; height:48px; background: linear-gradient(180deg, #c8a878 0%, #a88050 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(5deg); animation: car-carmen 4s ease-in-out infinite; box-shadow: 0 4px 10px rgba(0,0,0,0.15); }
.scn-carmen-disguised .parasol { position:absolute; bottom:55%; left:52%; width:40px; height:20px; background: radial-gradient(ellipse 40px 20px at 50% 50%, #f0c8a0 0%, #d8a070 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform: rotate(15deg); box-shadow: 0 2px 8px rgba(0,0,0,0.2); animation: car-parasol 5s ease-in-out infinite; }
.scn-carmen-disguised .girl-servant { position:absolute; bottom:24%; left:62%; width:16px; height:32px; background: linear-gradient(180deg, #b8a090 0%, #88706a 100%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; transform: scale(0.8); animation: car-girl 7s ease-in-out infinite; }
.scn-carmen-disguised .dust-particles { position:absolute; bottom:20%; left:20%; width:80px; height:10px; background: radial-gradient(ellipse, rgba(200,160,120,0.3) 0%, transparent 70%); filter: blur(2px); animation: car-dust 9s linear infinite; }

@keyframes car-bg { 0%{ opacity:0.7 } 50%{ opacity:1 } 100%{ opacity:0.8 } }
@keyframes car-sky { 0%{ opacity:0.4 } 50%{ opacity:0.7 } 100%{ opacity:0.5 } }
@keyframes car-mule { 0%{ transform: rotate(-3deg) translateX(0) } 25%{ transform: rotate(-1deg) translateX(4px) } 50%{ transform: rotate(-3deg) translateX(8px) } 75%{ transform: rotate(-5deg) translateX(4px) } 100%{ transform: rotate(-3deg) translateX(0) } }
@keyframes car-muleteer { 0%{ transform: skewX(3deg) translateY(0) } 50%{ transform: skewX(5deg) translateY(-2px) } 100%{ transform: skewX(3deg) translateY(0) } }
@keyframes car-carmen { 0%{ transform: rotate(5deg) scale(1) } 25%{ transform: rotate(8deg) scale(1.02) } 50%{ transform: rotate(5deg) scale(1) } 75%{ transform: rotate(2deg) scale(0.98) } 100%{ transform: rotate(5deg) scale(1) } }
@keyframes car-parasol { 0%{ transform: rotate(15deg) scale(1) } 50%{ transform: rotate(18deg) scale(1.05) } 100%{ transform: rotate(15deg) scale(1) } }
@keyframes car-girl { 0%{ transform: scale(0.8) translateY(0) } 50%{ transform: scale(0.8) translateY(-1px) } 100%{ transform: scale(0.8) translateY(0) } }
@keyframes car-dust { 0%{ transform: translateX(0) } 50%{ transform: translateX(-15px) } 100%{ transform: translateX(15px) } }

/* watch-stolen: dark tense street at night */
.scn-watch-stolen {
  background: linear-gradient(180deg, #0b0b1a 0%, #1c1c2e 40%, #2a1f30 100%),
              radial-gradient(ellipse at 30% 80%, #3a2a3a 0%, transparent 70%);
}
.scn-watch-stolen .ws-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #12122a 0%, transparent 100%);
  animation: ws-sky 14s ease-in-out infinite alternate;
}
.scn-watch-stolen .ws-buildings {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  clip-path: polygon(0% 100%, 0% 40%, 8% 40%, 8% 15%, 20% 15%, 20% 30%,
                     35% 30%, 35% 10%, 50% 10%, 50% 35%, 65% 35%, 65% 20%,
                     80% 20%, 80% 40%, 92% 40%, 92% 25%, 100% 25%, 100% 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.7);
  animation: ws-build 20s ease-in-out infinite alternate;
}
.scn-watch-stolen .ws-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #2a2020 0%, #0d0808 100%);
  box-shadow: inset 0 15px 20px rgba(0,0,0,.5);
}
.scn-watch-stolen .ws-lamp {
  position: absolute; bottom: 18%; left: 65%;
  width: 6px; height: 40px;
  background: linear-gradient(180deg, #444 0%, #222 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: ws-lamp 8s ease-in-out infinite;
}
.scn-watch-stolen .ws-lampglow {
  position: absolute; bottom: 24%; left: 65%; width: 60px; height: 80px;
  margin-left: -30px;
  background: radial-gradient(ellipse, rgba(200,180,50,0.25) 0%, transparent 70%);
  border-radius: 50%;
  animation: ws-lampglow 4s ease-in-out infinite alternate;
}
.scn-watch-stolen .ws-figure {
  position: absolute; bottom: 14%; left: 40%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #050505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ws-figwalk 4s cubic-bezier(0.4, 0.0, 0.2, 1) infinite;
}
.scn-watch-stolen .ws-watchglow {
  position: absolute; bottom: 18%; left: 42%;
  width: 6px; height: 8px;
  background: radial-gradient(circle, #f0d060 0%, #c08030 70%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px #d0a040, 0 0 30px 8px rgba(208,160,64,0.4);
  animation: ws-watch 1s ease-in-out infinite alternate;
}
@keyframes ws-sky { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.6} }
@keyframes ws-build { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} 100%{transform:scaleY(1)} }
@keyframes ws-lamp { 0%{transform:rotate(-1deg)} 50%{transform:rotate(1deg)} 100%{transform:rotate(-1deg)} }
@keyframes ws-lampglow { 0%{opacity:.4;transform:scale(1)} 50%{opacity:.7;transform:scale(1.1)} 100%{opacity:.4;transform:scale(1)} }
@keyframes ws-figwalk { 0%{transform:translateX(0) translateY(0) rotate(-2deg)} 25%{transform:translateX(5px) translateY(-2px) rotate(2deg)} 50%{transform:translateX(10px) translateY(0) rotate(-2deg)} 75%{transform:translateX(15px) translateY(-2px) rotate(2deg)} 100%{transform:translateX(20px) translateY(0) rotate(0deg)} }
@keyframes ws-watch { 0%{box-shadow:0 0 6px 2px #d0a040;opacity:.6} 100%{box-shadow:0 0 20px 6px #e0b050;opacity:1} }

/* reluctant-return: dim interior, calm, figure by window */
.scn-reluctant-return {
  background: linear-gradient(180deg, #2a2a2e 0%, #1c1c20 40%, #141418 100%),
              radial-gradient(ellipse at 60% 40%, #3a3a42 0%, transparent 60%);
}
.scn-reluctant-return .rr-wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #222228 0%, #1a1a1e 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,.6);
  animation: rr-wall 20s ease-in-out infinite alternate;
}
.scn-reluctant-return .rr-window {
  position: absolute; top: 15%; right: 10%; width: 35%; height: 50%;
  border: 4px solid #4a4a4e;
  border-radius: 12px;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,.4);
  animation: rr-window 12s ease-in-out infinite alternate;
}
.scn-reluctant-return .rr-outside {
  position: absolute; top: 17%; right: 12%; width: 31%; height: 46%;
  background: radial-gradient(ellipse at 50% 60%, #7a8a9a 0%, #3a4a5a 60%, #1a2a3a 100%);
  border-radius: 8px;
  opacity: .6;
  animation: rr-outside 30s linear infinite alternate;
}
.scn-reluctant-return .rr-table {
  position: absolute; bottom: 10%; left: 15%; width: 60%; height: 5%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.4);
}
.scn-reluctant-return .rr-candle {
  position: absolute; bottom: 16%; left: 35%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #d0c8b0 0%, #a09880 100%);
  border-radius: 4px 4px 2px 2px;
  animation: rr-candle 6s ease-in-out infinite alternate;
}
.scn-reluctant-return .rr-figure {
  position: absolute; bottom: 10%; left: 45%;
  width: 24px; height: 55px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rr-fig 8s ease-in-out infinite alternate;
}
.scn-reluctant-return .rr-chair {
  position: absolute; bottom: 8%; left: 43%;
  width: 20px; height: 8px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform: skewX(-10deg);
  box-shadow: -2px 4px 6px rgba(0,0,0,.3);
  animation: rr-chair 10s ease-in-out infinite;
}
@keyframes rr-wall { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes rr-window { 0%{border-color:#3a3a3e;box-shadow:inset 0 0 30px rgba(0,0,0,.6)} 50%{border-color:#5a5a5e;box-shadow:inset 0 0 40px rgba(0,0,0,.4)} 100%{border-color:#4a4a4e;box-shadow:inset 0 0 30px rgba(0,0,0,.5)} }
@keyframes rr-outside { 0%{background-position: 0% 50%} 100%{background-position: 100% 50%} }
@keyframes rr-candle { 0%{height:30px;opacity:.9} 50%{height:28px;opacity:.7} 100%{height:30px;opacity:.9} }
@keyframes rr-fig { 0%{transform:scaleY(1) translateY(0) rotate(-1deg)} 50%{transform:scaleY(1.01) translateY(-2px) rotate(1deg)} 100%{transform:scaleY(1) translateY(0) rotate(-1deg)} }
@keyframes rr-chair { 0%{transform:skewX(-10deg)} 50%{transform:skewX(-8deg)} 100%{transform:skewX(-10deg)} }

/* monastery-welcome: warm dim interior, two figures embracing, candle glow */
.scn-monastery-welcome {
  background: linear-gradient(180deg, #4a3020 0%, #3a2218 40%, #2a1810 100%),
              radial-gradient(ellipse at 50% 40%, #6a4a3a 0%, transparent 60%);
}
.scn-monastery-welcome .mw-arch {
  position: absolute; top: 0; left: 10%; width: 80%; height: 70%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
  animation: mw-arch 18s ease-in-out infinite alternate;
}
.scn-monastery-welcome .mw-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-monastery-welcome .mw-leftfigure {
  position: absolute; bottom: 20%; left: 32%;
  width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a1a10 0%, #0d0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-figleft 6s ease-in-out infinite;
}
.scn-monastery-welcome .mw-rightfigure {
  position: absolute; bottom: 20%; left: 50%;
  width: 22px; height: 58px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-figright 8s ease-in-out infinite alternate;
}
.scn-monastery-welcome .mw-candle {
  position: absolute; bottom: 40%; left: 48%;
  width: 6px; height: 20px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 2px;
  animation: mw-candle 4s ease-in-out infinite alternate;
}
.scn-monastery-welcome .mw-glow {
  position: absolute; bottom: 35%; left: 44%; width: 100px; height: 100px;
  margin-left: -50px;
  background: radial-gradient(circle, rgba(240,200,100,0.3) 0%, rgba(200,150,60,0.1) 40%, transparent 70%);
  border-radius: 50%;
  animation: mw-glow 5s ease-in-out infinite alternate;
}
.scn-monastery-welcome .mw-book {
  position: absolute; bottom: 10%; left: 60%;
  width: 16px; height: 20px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,.3);
  animation: mw-book 12s ease-in-out infinite;
}
@keyframes mw-arch { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} 100%{transform:scaleY(1)} }
@keyframes mw-figleft { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-3px) rotate(0deg)} 100%{transform:translateY(0) rotate(-2deg)} }
@keyframes mw-figright { 0%{transform:translateY(0) rotate(2deg)} 50%{transform:translateY(-3px) rotate(0deg)} 100%{transform:translateY(0) rotate(2deg)} }
@keyframes mw-candle { 0%{height:20px;opacity:.8} 100%{height:22px;opacity:1} }
@keyframes mw-glow { 0%{opacity:.3;transform:scale(1)} 50%{opacity:.6;transform:scale(1.2)} 100%{opacity:.3;transform:scale(1)} }
@keyframes mw-book { 0%{transform:rotate(-10deg) translateY(0)} 50%{transform:rotate(-8deg) translateY(-1px)} 100%{transform:rotate(-10deg) translateY(0)} }

/* thief-identified: dim interior jail, tense */
.scn-thief-identified {
  background: linear-gradient(180deg, #1a1a22 0%, #0e0e14 40%, #0a0a0f 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, transparent 60%);
}
.scn-thief-identified .ti-walls {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #1a1a22 0%, #101018 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.8);
  animation: ti-walls 20s ease-in-out infinite alternate;
}
.scn-thief-identified .ti-bars {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 80%;
  border: none;
  background: repeating-linear-gradient(
    90deg,
    #555 0px, #555 4px,
    transparent 4px, transparent 16px
  );
  opacity: .7;
  box-shadow: 0 0 20px rgba(0,0,0,.6);
  animation: ti-bars 8s ease-in-out infinite alternate;
}
.scn-thief-identified .ti-prisoner {
  position: absolute; bottom: 20%; left: 35%;
  width: 20px; 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: ti-prisoner 6s cubic-bezier(0.4, 0.0, 0.2, 1) infinite;
}
.scn-thief-identified .ti-guard {
  position: absolute; bottom: 18%; left: 65%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0d0d0d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ti-guard 10s ease-in-out infinite alternate;
}
.scn-thief-identified .ti-lantern {
  position: absolute; bottom: 25%; left: 60%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 2px;
  animation: ti-lantern 4s ease-in-out infinite alternate;
}
.scn-thief-identified .ti-lanternglow {
  position: absolute; bottom: 28%; left: 58%;
  width: 50px; height: 60px;
  margin-left: -25px;
  background: radial-gradient(ellipse, rgba(200,160,50,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: ti-glow 3s ease-in-out infinite alternate;
}
.scn-thief-identified .ti-door {
  position: absolute; bottom: 15%; left: 10%;
  width: 16%; height: 70%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px 0 0 4px;
  box-shadow: -4px 0 10px rgba(0,0,0,.6);
  animation: ti-door 12s ease-in-out infinite;
}
@keyframes ti-walls { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes ti-bars { 0%{opacity:.5;transform:scaleX(1)} 50%{opacity:.7;transform:scaleX(1.02)} 100%{opacity:.5;transform:scaleX(1)} }
@keyframes ti-prisoner { 0%{transform:translateY(0) rotate(-2deg)} 25%{transform:translateY(-4px) rotate(0deg)} 50%{transform:translateY(0) rotate(2deg)} 75%{transform:translateY(-4px) rotate(0deg)} 100%{transform:translateY(0) rotate(-2deg)} }
@keyframes ti-guard { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} 100%{transform:scaleY(1)} }
@keyframes ti-lantern { 0%{transform:rotate(-3deg)} 50%{transform:rotate(3deg)} 100%{transform:rotate(-3deg)} }
@keyframes ti-glow { 0%{opacity:.2;transform:scale(1)} 50%{opacity:.5;transform:scale(1.1)} 100%{opacity:.2;transform:scale(1)} }
@keyframes ti-door { 0%{transform:scaleX(1)} 50%{transform:scaleX(1.01)} 100%{transform:scaleX(1)} }

.scn-don-jose-revealed {
  background:
    linear-gradient(180deg, #2b1b0e 0%, #3d2815 30%, #4a301a 60%, #26160a 100%),
    radial-gradient(ellipse at 30% 70%, #a55a2e 0%, transparent 60%),
    radial-gradient(circle at 70% 40%, #c87a3a 0%, transparent 50%);
}
.scn-don-jose-revealed .wall-bg { position:absolute; inset:0; background: linear-gradient(90deg, #1e1108 0%, #3b2310 40%, #2f1b0a 100%); animation: dj-wall 18s ease-in-out infinite; }
.scn-don-jose-revealed .fire-glow { position:absolute; bottom:0; left:15%; width:45%; height:60%; background: radial-gradient(ellipse at 50% 100%, #ff9a4a 0%, #c0581a 40%, transparent 70%); opacity:.65; animation: dj-fire 4s ease-in-out infinite alternate; }
.scn-don-jose-revealed .old-woman { position:absolute; bottom:8%; left:8%; width:50px; height:70px; background: radial-gradient(ellipse at 50% 0%, #4a2a1a 0%, #2a1a0a 80%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-8deg) translateY(0); animation: dj-bow 6s ease-in-out infinite; }
.scn-don-jose-revealed .don-jose { position:absolute; bottom:12%; right:15%; width:65px; height:90px; background: linear-gradient(180deg, #1c1008 0%, #0f0804 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: -8px 0 12px rgba(0,0,0,.5); transform-origin: bottom center; animation: dj-upright 10s ease-in-out infinite; }
.scn-don-jose-revealed .don-jose-hand { position:absolute; bottom:28%; right:32%; width:20px; height:14px; background: #1c1008; border-radius: 50% 0 0 50% / 80% 0 0 80%; transform: rotate(-20deg); animation: dj-hand 3s ease-in-out infinite alternate; }
.scn-don-jose-revealed .shadow-pool { position:absolute; bottom:0; left:0; right:0; height:22%; background: radial-gradient(ellipse at 40% 100%, #0a0503 0%, transparent 70%); animation: dj-shadow 5s ease-in-out infinite alternate; }
.scn-don-jose-revealed .ember-a, .scn-don-jose-revealed .ember-b { position:absolute; width:6px; height:6px; background: #ffbb55; border-radius:50%; filter: blur(1px); }
.scn-don-jose-revealed .ember-a { bottom:30%; left:20%; animation: dj-ember 2.5s ease-in-out infinite; }
.scn-don-jose-revealed .ember-b { bottom:25%; left:35%; animation: dj-ember 3.2s ease-in-out infinite 1s; }

@keyframes dj-wall { 0%,100% { opacity:.9 } 50% { opacity:.7 } }
@keyframes dj-fire { 0% { opacity:.5; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.05) } 100% { opacity:.55; transform: scaleY(.98) } }
@keyframes dj-bow { 0%,100% { transform: rotate(-8deg) translateY(0) } 25% { transform: rotate(-6deg) translateY(-2px) } 50% { transform: rotate(-9deg) translateY(0) } 75% { transform: rotate(-7deg) translateY(1px) } }
@keyframes dj-upright { 0%,100% { transform: rotate(0) translateY(0) } 25% { transform: rotate(1deg) translateY(-1px) } 50% { transform: rotate(-.5deg) translateY(0) } 75% { transform: rotate(.5deg) translateY(1px) } }
@keyframes dj-hand { 0% { transform: rotate(-20deg) translateY(0) } 100% { transform: rotate(-15deg) translateY(-3px) } }
@keyframes dj-shadow { 0% { opacity: .8 } 50% { opacity: .6 } 100% { opacity: .75 } }
@keyframes dj-ember { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(-40px) scale(.6); opacity:.3 } 100% { transform: translateY(-80px) scale(0); opacity:0 } }

.scn-knowing-signals {
  background:
    linear-gradient(180deg, #1e140b 0%, #2f1e10 40%, #1f1107 100%),
    radial-gradient(ellipse at 20% 60%, #b8662a 0%, transparent 55%),
    radial-gradient(circle at 80% 30%, #d47a35 0%, transparent 45%);
}
.scn-knowing-signals .room-bg { position:absolute; inset:0; background: linear-gradient(90deg, #1a0f07 0%, #3a2212 50%, #1a0f07 100%); animation: ks-room 20s ease-in-out infinite; }
.scn-knowing-signals .low-table { position:absolute; bottom:8%; left:25%; width:120px; height:20px; background: linear-gradient(180deg, #4a2f1a 0%, #2b1a0c 100%); border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%; transform: perspective(200px) rotateX(10deg); animation: ks-table 12s ease-in-out infinite; }
.scn-knowing-signals .plate { position:absolute; bottom:11%; left:40%; width:30px; height:8px; background: radial-gradient(ellipse, #d4965a 0%, #8a5a2a 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ks-plate 5s ease-in-out infinite alternate; }
.scn-knowing-signals .narrator-hand { position:absolute; bottom:18%; left:44%; width:18px; height:16px; background: #1c1008; border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform: rotate(-10deg) translateX(-10px); animation: ks-hand 4s ease-in-out infinite; }
.scn-knowing-signals .guide-figure { position:absolute; bottom:10%; right:20%; width:55px; height:75px; background: linear-gradient(180deg, #1f150c 0%, #0f0a05 100%); border-radius: 50% 50% 30% 30% / 55% 55% 35% 35%; box-shadow: 6px 0 10px rgba(0,0,0,.6); transform-origin: bottom center; animation: ks-guide 8s ease-in-out infinite; }
.scn-knowing-signals .fire-hearth { position:absolute; bottom:0; left:5%; width:30%; height:25%; background: radial-gradient(ellipse at 50% 100%, #c86a2a 0%, #723a16 60%, transparent 80%); opacity:.8; animation: ks-hearth 3s ease-in-out infinite alternate; }
.scn-knowing-signals .spark-a, .scn-knowing-signals .spark-b { position:absolute; width:4px; height:4px; background: #ffcc66; border-radius:50%; filter: blur(2px); }
.scn-knowing-signals .spark-a { bottom:15%; left:10%; animation: ks-spark 2s ease-in-out infinite; }
.scn-knowing-signals .spark-b { bottom:10%; left:20%; animation: ks-spark 2.6s ease-in-out infinite .8s; }

@keyframes ks-room { 0%,100% { opacity:.85 } 50% { opacity:.7 } }
@keyframes ks-table { 0%,100% { transform: perspective(200px) rotateX(10deg) translateY(0) } 25% { transform: perspective(200px) rotateX(9deg) translateY(-1px) } 50% { transform: perspective(200px) rotateX(11deg) translateY(0) } 75% { transform: perspective(200px) rotateX(10deg) translateY(1px) } }
@keyframes ks-plate { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-2px) scale(1.02) } }
@keyframes ks-hand { 0% { transform: rotate(-10deg) translateX(-10px) } 25% { transform: rotate(-8deg) translateX(-8px) } 50% { transform: rotate(-12deg) translateX(-12px) } 75% { transform: rotate(-9deg) translateX(-9px) } 100% { transform: rotate(-10deg) translateX(-10px) } }
@keyframes ks-guide { 0%,100% { transform: rotate(0) translateY(0) } 30% { transform: rotate(2deg) translateY(-2px) } 60% { transform: rotate(-1deg) translateY(0) } 80% { transform: rotate(1deg) translateY(1px) } }
@keyframes ks-hearth { 0% { opacity:.6; transform: scale(1) } 50% { opacity:.85; transform: scale(1.03) } 100% { opacity:.7; transform: scale(.98) } }
@keyframes ks-spark { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(-30px) scale(.5); opacity:.4 } 100% { transform: translateY(-60px) scale(0); opacity:0 } }

.scn-item-mandolin {
  background:
    linear-gradient(180deg, #2e1e10 0%, #4d311a 40%, #2b180c 100%),
    radial-gradient(ellipse at 40% 50%, #db9248 0%, transparent 60%),
    radial-gradient(circle at 70% 20%, #f0b060 0%, transparent 50%);
}
.scn-item-mandolin .wall-warm { position:absolute; inset:0; background: linear-gradient(90deg, #2a1a0e 0%, #4c311c 50%, #2a1a0e 100%); animation: im-wall 22s ease-in-out infinite; }
.scn-item-mandolin .mandolin-player { position:absolute; bottom:8%; left:50%; width:70px; height:95px; background: linear-gradient(180deg, #1d120a 0%, #0d0804 100%); border-radius: 45% 45% 25% 25% / 55% 55% 30% 30%; transform: translateX(-50%) rotate(2deg); animation: im-player 6s ease-in-out infinite; }
.scn-item-mandolin .mandolin { position:absolute; bottom:22%; left:42%; width:40px; height:24px; background: radial-gradient(ellipse at 30% 50%, #a26a3a 0%, #6a4220 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform: rotate(-30deg); animation: im-mandolin 5s ease-in-out infinite alternate; }
.scn-item-mandolin .child-arm { position:absolute; bottom:18%; left:20%; width:14px; height:40px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%; transform: rotate(40deg) translateX(10px); animation: im-arm 4s ease-in-out infinite; }
.scn-item-mandolin .fire-pit { position:absolute; bottom:0; left:10%; width:50%; height:30%; background: radial-gradient(ellipse at 50% 100%, #d87a34 0%, #954a1e 50%, transparent 80%); opacity:.75; animation: im-pit 3.5s ease-in-out infinite alternate; }
.scn-item-mandolin .golden-haze { position:absolute; top:10%; left:20%; width:60%; height:40%; background: radial-gradient(ellipse at 30% 30%, rgba(240,180,80,.25) 0%, transparent 70%); filter: blur(8px); animation: im-haze 12s ease-in-out infinite; }
.scn-item-mandolin .candle-a, .scn-item-mandolin .candle-b { position:absolute; bottom:35%; width:8px; height:12px; background: linear-gradient(180deg, #ffdd88 0%, #cc9930 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 0 12px 4px #ffbb44; }
.scn-item-mandolin .candle-a { left:30%; animation: im-candle 4s ease-in-out infinite; }
.scn-item-mandolin .candle-b { left:60%; animation: im-candle 4.5s ease-in-out infinite .7s; }

@keyframes im-wall { 0%,100% { opacity:.8 } 50% { opacity:.6 } }
@keyframes im-player { 0% { transform: translateX(-50%) rotate(2deg) } 25% { transform: translateX(-50%) rotate(1deg) translateY(-1px) } 50% { transform: translateX(-50%) rotate(3deg) translateY(0) } 75% { transform: translateX(-50%) rotate(1.5deg) translateY(1px) } 100% { transform: translateX(-50%) rotate(2deg) } }
@keyframes im-mandolin { 0% { transform: rotate(-30deg) scale(1) } 50% { transform: rotate(-28deg) scale(1.02) } 100% { transform: rotate(-32deg) scale(.98) } }
@keyframes im-arm { 0% { transform: rotate(40deg) translateX(10px) } 25% { transform: rotate(38deg) translateX(8px) } 50% { transform: rotate(42deg) translateX(12px) } 75% { transform: rotate(39deg) translateX(9px) } 100% { transform: rotate(40deg) translateX(10px) } }
@keyframes im-pit { 0% { opacity:.65; transform: scaleY(1) } 50% { opacity:.8; transform: scaleY(1.04) } 100% { opacity:.7; transform: scaleY(.97) } }
@keyframes im-haze { 0%,100% { opacity:.3 } 50% { opacity:.5 } }
@keyframes im-candle { 0% { transform: scaleY(1) scaleX(1); opacity:.9 } 25% { transform: scaleY(1.1) scaleX(.95); opacity:1 } 50% { transform: scaleY(.9) scaleX(1.05); opacity:.85 } 75% { transform: scaleY(1.05) scaleX(.98); opacity:.95 } 100% { transform: scaleY(1) scaleX(1); opacity:.9 } }

.scn-basque-song {
  background:
    linear-gradient(180deg, #1c1108 0%, #2c1a0e 40%, #1a0e06 100%),
    radial-gradient(ellipse at 30% 60%, #7a3a1e 0%, transparent 60%),
    radial-gradient(circle at 70% 20%, #5a2a14 0%, transparent 50%);
}
.scn-basque-song .deep-wall { position:absolute; inset:0; background: linear-gradient(90deg, #1a0e06 0%, #2c1a0e 50%, #1a0e06 100%); animation: bs-wall 25s ease-in-out infinite; }
.scn-basque-song .singer-silhouette { position:absolute; bottom:10%; left:50%; width:75px; height:100px; background: linear-gradient(180deg, #0d0804 0%, #050302 100%); border-radius: 45% 45% 20% 20% / 55% 55% 30% 30%; transform: translateX(-50%) rotate(-1deg); animation: bs-singer 8s ease-in-out infinite; }
.scn-basque-song .instrument { position:absolute; bottom:25%; left:42%; width:45px; height:30px; background: radial-gradient(ellipse at 40% 50%, #522a14 0%, #2e150a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform: rotate(-15deg); animation: bs-instr 6s ease-in-out infinite alternate; }
.scn-basque-song .drop-shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, #0a0503 100%); animation: bs-shadow 4s ease-in-out infinite alternate; }
.scn-basque-song .fire-coals { position:absolute; bottom:5%; left:20%; width:40%; height:15%; background: radial-gradient(ellipse at 50% 100%, #6a3016 0%, #3a180a 50%, transparent 80%); opacity:.7; animation: bs-coals 3.5s ease-in-out infinite alternate; }
.scn-basque-song .vocal-vibration { position:absolute; top:25%; left:45%; width:80px; height:60px; background: radial-gradient(ellipse at 50% 50%, rgba(200,150,80,.12) 0%, transparent 70%); filter: blur(6px); animation: bs-vibe 5s ease-in-out infinite; }
.scn-basque-song .glimmer-a, .scn-basque-song .glimmer-b { position:absolute; width:10px; height:10px; background: radial-gradient(circle, #dda86a 0%, transparent 60%); border-radius:50%; filter: blur(3px); }
.scn-basque-song .glimmer-a { bottom:35%; left:25%; animation: bs-glimmer 4s ease-in-out infinite; }
.scn-basque-song .glimmer-b { bottom:30%; left:55%; animation: bs-glimmer 5.2s ease-in-out infinite 1.5s; }

@keyframes bs-wall { 0%,100% { opacity:.7 } 50% { opacity:.5 } }
@keyframes bs-singer { 0% { transform: translateX(-50%) rotate(-1deg) } 25% { transform: translateX(-50%) rotate(0deg) translateY(-1px) } 50% { transform: translateX(-50%) rotate(-2deg) translateY(0) } 75% { transform: translateX(-50%) rotate(-.5deg) translateY(1px) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes bs-instr { 0% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(-12deg) scale(1.03) } 100% { transform: rotate(-18deg) scale(.97) } }
@keyframes bs-shadow { 0% { opacity:.8 } 50% { opacity:.6 } 100% { opacity:.75 } }
@keyframes bs-coals { 0% { opacity:.5; transform: scaleY(1) } 50% { opacity:.75; transform: scaleY(1.06) } 100% { opacity:.6; transform: scaleY(.95) } }
@keyframes bs-vibe { 0%,100% { opacity:.2; transform: scale(1) } 50% { opacity:.4; transform: scale(1.08) } }
@keyframes bs-glimmer { 0% { transform: translateY(0) scale(1); opacity:.8 } 50% { transform: translateY(-20px) scale(.7); opacity:.3 } 100% { transform: translateY(-40px) scale(0); opacity:0 } }

.scn-relaxed-interaction { background: linear-gradient(180deg, #87ceeb 0%, #f4d03f 40%, #e67e22 100%), radial-gradient(ellipse at 50% 100%, #d35400 0%, transparent 80%); }
.scn-relaxed-interaction .sky-ri1 { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f6e3ba 0%, #f4d03f 70%, transparent 100%); animation: ri1-sky 14s ease-in-out infinite alternate; }
.scn-relaxed-interaction .sun-ri1 { position:absolute; top:8%; left:65%; width:60px; height:60px; background: radial-gradient(circle, #fff5c0 0%, #f1c40f 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(241,196,15,.5); animation: ri1-sun 10s ease-in-out infinite alternate; }
.scn-relaxed-interaction .hills-ri1 { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #8e6b3e 0%, #6b4e2a 100%); border-radius: 60% 40% 0 0 / 70% 80% 0 0; transform-origin: bottom; animation: ri1-hills 20s ease-in-out infinite alternate; }
.scn-relaxed-interaction .horse-ri1 { position:absolute; bottom:33%; left:22%; width:50px; height:35px; background: linear-gradient(180deg, #a0522d 0%, #704214 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: ri1-horse 6s ease-in-out infinite; }
.scn-relaxed-interaction .figure-a-ri1 { position:absolute; bottom:32%; left:10%; width:14px; height:28px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ri1-fig-a 5s ease-in-out infinite; }
.scn-relaxed-interaction .figure-b-ri1 { position:absolute; bottom:32%; left:30%; width:14px; height:28px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ri1-fig-b 5s ease-in-out infinite 2.5s; }
.scn-relaxed-interaction .cloud-ri1 { position:absolute; top:15%; left:10%; width:100px; height:20px; background: rgba(255,255,255,.6); border-radius:50%; filter: blur(8px); animation: ri1-cloud 40s linear infinite; }
.scn-relaxed-interaction .blunderbuss-ri1 { position:absolute; bottom:34%; left:17%; width:35px; height:5px; background: linear-gradient(90deg, #4a3b32 0%, #7f5e3a 100%); border-radius:10px; transform: rotate(-15deg); transform-origin: right center; animation: ri1-gun 4s ease-in-out infinite; }
@keyframes ri1-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ri1-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes ri1-hills { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes ri1-horse { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ri1-fig-a { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(4px) translateY(-2px) } 50% { transform: translateX(8px) translateY(0) } 75% { transform: translateX(4px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes ri1-fig-b { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(-3px) translateY(-2px) } 50% { transform: translateX(-6px) translateY(0) } 75% { transform: translateX(-3px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes ri1-cloud { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes ri1-gun { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-5deg) } }

.scn-cigar-case { background: linear-gradient(180deg, #8b5e3c 0%, #cda87a 30%, #eae2d7 60%, #fff5e6 100%), radial-gradient(ellipse at 50% 0%, #f5deb3 0%, transparent 70%); }
.scn-cigar-case .bg-deep-cc2 { position:absolute; inset:0; background: linear-gradient(180deg, #5c3a21 0%, #7a5233 100%); animation: cc2-bg 12s ease-in-out infinite alternate; }
.scn-cigar-case .bg-mid-cc2 { position:absolute; inset:20% 10% 20% 10%; background: linear-gradient(135deg, #c19a6b 0%, #a07848 100%); border-radius:20px; transform: perspective(600px) rotateX(5deg); box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.scn-cigar-case .hand-left-cc2 { position:absolute; bottom:25%; left:25%; width:30px; height:50px; background: linear-gradient(180deg, #e8c8a0 0%, #c8a07a 100%); border-radius:80% 20% 40% 40% / 60% 50% 50% 40%; transform: rotate(15deg); transform-origin: bottom center; animation: cc2-hand-l 4s ease-in-out infinite; }
.scn-cigar-case .hand-right-cc2 { position:absolute; bottom:25%; right:25%; width:30px; height:50px; background: linear-gradient(180deg, #e8c8a0 0%, #c8a07a 100%); border-radius:20% 80% 40% 40% / 50% 60% 40% 50%; transform: rotate(-15deg); transform-origin: bottom center; animation: cc2-hand-r 4s ease-in-out infinite 2s; }
.scn-cigar-case .case-cc2 { position:absolute; bottom:38%; left:40%; width:30px; height:20px; background: linear-gradient(180deg, #4a3520 0%, #2c1f10 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: cc2-case 3s ease-in-out infinite; }
.scn-cigar-case .spark-cc2 { position:absolute; bottom:42%; left:48%; width:8px; height:8px; background: radial-gradient(circle, #fff5c0 0%, #f39c12 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 10px rgba(243,156,18,.6); animation: cc2-spark 1.5s ease-in-out infinite alternate; }
.scn-cigar-case .smoke-cc2 { position:absolute; bottom:45%; left:52%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,200,200,.3) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: cc2-smoke 5s ease-out infinite; }
@keyframes cc2-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cc2-hand-l { 0% { transform: rotate(15deg) translateY(0) } 25% { transform: rotate(18deg) translateY(-3px) } 50% { transform: rotate(15deg) translateY(0) } 75% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes cc2-hand-r { 0% { transform: rotate(-15deg) translateY(0) } 25% { transform: rotate(-12deg) translateY(-3px) } 50% { transform: rotate(-15deg) translateY(0) } 75% { transform: rotate(-18deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes cc2-case { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes cc2-spark { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.3); opacity:1 } 100% { transform: scale(1); opacity:.8 } }
@keyframes cc2-smoke { 0% { transform: translateY(0) scale(1); opacity:.3 } 50% { transform: translateY(-20px) scale(1.5); opacity:.2 } 100% { transform: translateY(-40px) scale(2); opacity:0 } }

.scn-andalusian-pronunciation { background: linear-gradient(180deg, #ffd89b 0%, #f5b041 30%, #e67e22 60%, #a04000 100%), radial-gradient(ellipse at 50% 0%, #ffd89b 0%, transparent 80%); }
.scn-andalusian-pronunciation .sky-ap3 { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fceabb 0%, #f4d03f 70%, transparent 100%); animation: ap3-sky 15s ease-in-out infinite alternate; }
.scn-andalusian-pronunciation .sun-ap3 { position:absolute; top:10%; left:20%; width:50px; height:50px; background: radial-gradient(circle, #fff5c0 0%, #f39c12 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(243,156,18,.5); animation: ap3-sun 12s ease-in-out infinite alternate; }
.scn-andalusian-pronunciation .ground-ap3 { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #bd6b3b 0%, #8b4513 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; }
.scn-andalusian-pronunciation .figure-left-ap3 { position:absolute; bottom:20%; left:25%; width:16px; height:35px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(5deg); transform-origin: bottom; animation: ap3-fig-l 6s ease-in-out infinite; }
.scn-andalusian-pronunciation .figure-right-ap3 { position:absolute; bottom:20%; right:25%; width:16px; height:32px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg); transform-origin: bottom; animation: ap3-fig-r 6s ease-in-out infinite 3s; }
.scn-andalusian-pronunciation .cloud-ap3 { position:absolute; top:15%; right:10%; width:70px; height:15px; background: rgba(255,255,255,.4); border-radius:50%; filter: blur(5px); animation: ap3-cloud 35s linear infinite reverse; }
.scn-andalusian-pronunciation .hat-ap3 { position:absolute; bottom:42%; left:27%; width:20px; height:10px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%); border-radius: 50% 50% 20% 20%; transform: rotate(-8deg); animation: ap3-hat 5s ease-in-out infinite; }
@keyframes ap3-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ap3-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.04) } 100% { transform: translateY(0) scale(1) } }
@keyframes ap3-fig-l { 0% { transform: rotate(5deg) translateY(0) } 25% { transform: rotate(7deg) translateY(-2px) } 50% { transform: rotate(5deg) translateY(0) } 75% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes ap3-fig-r { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(-3deg) translateY(-2px) } 50% { transform: rotate(-5deg) translateY(0) } 75% { transform: rotate(-7deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes ap3-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes ap3-hat { 0%,100% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } }

.scn-cigar-enjoyment { background: linear-gradient(180deg, #cfa776 0%, #e8c8a0 30%, #fff5e6 60%, #fff0d0 100%), radial-gradient(ellipse at 50% 60%, #f5deb3 0%, transparent 70%); }
.scn-cigar-enjoyment .bg-warm-ce4 { position:absolute; inset:0; background: linear-gradient(180deg, #7a5233 0%, #c19a6b 100%); animation: ce4-bg 10s ease-in-out infinite alternate; }
.scn-cigar-enjoyment .hand-ce4 { position:absolute; bottom:20%; left:42%; width:40px; height:60px; background: linear-gradient(180deg, #e8c8a0 0%, #c8a07a 100%); border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%; transform: rotate(10deg); transform-origin: bottom center; animation: ce4-hand 5s ease-in-out infinite; }
.scn-cigar-enjoyment .cigar-ce4 { position:absolute; bottom:42%; left:45%; width:50px; height:8px; background: linear-gradient(90deg, #5c3a21 0%, #8b5e3c 50%, #5c3a21 100%); border-radius:20px; transform: rotate(20deg); transform-origin: 0 center; animation: ce4-cigar 6s ease-in-out infinite; }
.scn-cigar-enjoyment .ember-ce4 { position:absolute; bottom:40%; left:56%; width:6px; height:6px; background: radial-gradient(circle, #ff7e41 0%, #e67e22 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 6px rgba(230,126,34,.5); animation: ce4-ember 1.5s ease-in-out infinite alternate; }
.scn-cigar-enjoyment .smoke-a-ce4 { position:absolute; bottom:50%; left:50%; width:15px; height:15px; background: radial-gradient(circle, rgba(200,200,200,.4) 0%, transparent 100%); border-radius:50%; filter: blur(3px); animation: ce4-smoke-a 4s ease-out infinite; }
.scn-cigar-enjoyment .smoke-b-ce4 { position:absolute; bottom:55%; left:48%; width:10px; height:10px; background: radial-gradient(circle, rgba(200,200,200,.3) 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: ce4-smoke-b 5s ease-out infinite 2s; }
@keyframes ce4-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ce4-hand { 0% { transform: rotate(10deg) translateY(0) } 25% { transform: rotate(12deg) translateY(-2px) } 50% { transform: rotate(10deg) translateY(0) } 75% { transform: rotate(8deg) translateY(-1px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes ce4-cigar { 0% { transform: rotate(20deg) } 25% { transform: rotate(18deg) } 50% { transform: rotate(20deg) } 75% { transform: rotate(22deg) } 100% { transform: rotate(20deg) } }
@keyframes ce4-ember { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(1); opacity:.7 } }
@keyframes ce4-smoke-a { 0% { transform: translateY(0) scale(1); opacity:.4 } 50% { transform: translateY(-25px) scale(1.5); opacity:.2 } 100% { transform: translateY(-50px) scale(2); opacity:0 } }
@keyframes ce4-smoke-b { 0% { transform: translateY(0) scale(1); opacity:.3 } 50% { transform: translateY(-20px) scale(1.3); opacity:.15 } 100% { transform: translateY(-40px) scale(1.8); opacity:0 } }

/* prisoner-name - tense, dim interior, cold blues */
.scn-prisoner-name {
  background:
    linear-gradient(180deg, #0f0f1e 0%, #1a1a30 40%, #0e0e20 100%);
  position: relative;
  overflow: hidden;
}
.scn-prisoner-name .cell-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #1a1a30 0%, #0f0f1e 50%, #151528 100%);
  animation: pn-wall-pulse 12s ease-in-out infinite alternate;
}
.scn-prisoner-name .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #1e1e2a 0%, #0a0a12 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-prisoner-name .bars-fore {
  position: absolute; inset: 5% 15% 20% 15%;
  background: repeating-linear-gradient(90deg, 
    #3a3a5a 0px, #3a3a5a 6px, 
    transparent 6px, transparent 20px);
  opacity: 0.7;
  animation: pn-bars-shimmer 8s ease-in-out infinite;
}
.scn-prisoner-name .bars-mid {
  position: absolute; inset: 8% 20% 22% 20%;
  background: repeating-linear-gradient(90deg, 
    #2a2a4a 0px, #2a2a4a 4px, 
    transparent 4px, transparent 28px);
  opacity: 0.5;
  animation: pn-bars-shimmer 12s ease-in-out infinite reverse;
}
.scn-prisoner-name .prisoner-silhouette {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 55%;
  background: radial-gradient(ellipse 60% 100% at 50% 100%, 
    #0a0a14 0%, #0a0a14 60%, transparent 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pn-prisoner 6s ease-in-out infinite;
}
.scn-prisoner-name .guard-silhouette {
  position: absolute; bottom: 18%; right: 8%; width: 28%; height: 65%;
  background: radial-gradient(ellipse 50% 100% at 50% 100%, 
    #12121e 0%, #12121e 55%, transparent 65%);
  border-radius: 30% 30% 20% 20% / 70% 70% 20% 20%;
  transform-origin: bottom right;
  animation: pn-guard 8s ease-in-out infinite;
}
.scn-prisoner-name .window-slit {
  position: absolute; top: 12%; right: 12%; width: 8%; height: 3%;
  background: linear-gradient(135deg, #2a3a5a 0%, #4a6a8a 100%);
  box-shadow: inset 0 0 10px #4a6a8a;
  animation: pn-slit 15s ease-in-out infinite alternate;
}
.scn-prisoner-name .dust-mote {
  position: absolute; top: 30%; left: 45%; width: 4px; height: 4px;
  background: rgba(180,200,220,0.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: pn-dust 20s linear infinite;
  box-shadow: 8px 40px 0 rgba(180,200,220,0.2), -12px 60px 0 rgba(180,200,220,0.15);
}
@keyframes pn-wall-pulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pn-bars-shimmer {
  0% { opacity: 0.5; transform: scaleX(1); }
  33% { opacity: 0.7; transform: scaleX(1.02); }
  66% { opacity: 0.6; transform: scaleX(0.98); }
  100% { opacity: 0.5; transform: scaleX(1); }
}
@keyframes pn-prisoner {
  0% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-2px) scaleY(0.98); }
  50% { transform: translateY(1px) scaleY(1.02); }
  75% { transform: translateY(-1px) scaleY(0.99); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes pn-guard {
  0% { transform: rotate(0deg) scaleX(1); }
  33% { transform: rotate(-1deg) scaleX(0.97); }
  66% { transform: rotate(1deg) scaleX(1.03); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes pn-slit {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes pn-dust {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-8px) rotate(90deg); }
  50% { transform: translateY(4px) rotate(180deg); }
  75% { transform: translateY(-12px) rotate(270deg); }
  100% { transform: translateY(0) rotate(360deg); }
}

/* jail-visit - dark, dim interior, warm lantern glow */
.scn-jail-visit {
  background:
    radial-gradient(ellipse at 35% 65%, #2a1a0a 0%, #0f0f0f 60%, #050508 100%);
  position: relative;
  overflow: hidden;
}
.scn-jail-visit .stone-wall {
  position: absolute; inset: 0;
  background: 
    linear-gradient(90deg, rgba(30,30,35,0.5) 2px, transparent 2px, transparent 30px) 0 0 / 60px 60px,
    linear-gradient(180deg, rgba(30,30,35,0.3) 2px, transparent 2px, transparent 30px) 0 0 / 60px 60px,
    linear-gradient(135deg, #1a1a20 0%, #0e0e12 100%);
  opacity: 0.6;
  animation: jv-stones 20s linear infinite;
}
.scn-jail-visit .cell-door {
  position: absolute; left: 8%; top: 10%; bottom: 15%; width: 30%;
  background: linear-gradient(135deg, #2a2a30 0%, #15151a 100%);
  border-right: 4px solid #1a1a22;
  box-shadow: 4px 0 12px rgba(0,0,0,0.7);
}
.scn-jail-visit .visitor-figure {
  position: absolute; bottom: 18%; left: 42%; width: 22%; height: 55%;
  background: radial-gradient(ellipse 50% 100% at 50% 100%, 
    #0c0c10 0%, #0c0c10 50%, transparent 65%);
  border-radius: 35% 35% 25% 25% / 65% 65% 25% 25%;
  transform-origin: bottom center;
  animation: jv-visitor 7s ease-in-out infinite;
}
.scn-jail-visit .prisoner-seated {
  position: absolute; bottom: 18%; left: 10%; width: 20%; height: 40%;
  background: radial-gradient(ellipse 50% 100% at 50% 100%, 
    #08080c 0%, #08080c 45%, transparent 60%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: jv-prisoner 9s ease-in-out infinite;
}
.scn-jail-visit .lantern-light {
  position: absolute; left: 38%; bottom: 40%; width: 12%; height: 15%;
  background: radial-gradient(circle, #ffa040 0%, #ff8020 30%, #cc5500 60%, transparent 80%);
  border-radius: 50%;
  opacity: 0.8;
  box-shadow: 0 0 60px 30px rgba(255,128,32,0.3), 0 0 120px 60px rgba(255,128,32,0.1);
  animation: jv-light-pulse 4s ease-in-out infinite alternate;
}
.scn-jail-visit .lantern-body {
  position: absolute; left: 40%; bottom: 45%; width: 8%; height: 10%;
  background: linear-gradient(135deg, #3a3020 0%, #1a1510 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-jail-visit .shadow-pool {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 8%;
  background: radial-gradient(ellipse at 40% 50%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: jv-shadow 6s ease-in-out infinite;
}
.scn-jail-visit .straw-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: 
    linear-gradient(45deg, #2a2018 3px, transparent 3px) 0 0 / 15px 15px,
    linear-gradient(-45deg, #2a2018 3px, transparent 3px) 7px 7px / 15px 15px,
    #1a1410;
  opacity: 0.7;
}
@keyframes jv-stones {
  0% { background-position: 0 0; }
  100% { background-position: 60px 60px; }
}
@keyframes jv-visitor {
  0% { transform: translateY(0) rotate(0deg) scaleY(1); }
  30% { transform: translateY(-2px) rotate(-1deg) scaleY(0.98); }
  60% { transform: translateY(1px) rotate(0deg) scaleY(1.02); }
  100% { transform: translateY(0) rotate(1deg) scaleY(1); }
}
@keyframes jv-prisoner {
  0% { transform: translateY(0) scaleX(1); }
  25% { transform: translateY(-1px) scaleX(0.97); }
  50% { transform: translateY(2px) scaleX(1.03); }
  75% { transform: translateY(0) scaleX(0.98); }
  100% { transform: translateY(1px) scaleX(1); }
}
@keyframes jv-light-pulse {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes jv-shadow {
  0% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(1.2); }
  100% { opacity: 0.5; transform: scaleY(0.9); }
}

/* meeting-don-jose - calm, dim interior, warm ochre/amber */
.scn-meeting-don-jose {
  background:
    linear-gradient(180deg, #2a2018 0%, #1e1812 30%, #14100a 100%);
  position: relative;
  overflow: hidden;
}
.scn-meeting-don-jose .room-bg {
  position: absolute; inset: 0;
  background: 
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a1410 70%);
  animation: dj-ambient 15s ease-in-out infinite alternate;
}
.scn-meeting-don-jose .table-surface {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 8%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-meeting-don-jose .don-jose-seated {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 50%;
  background: radial-gradient(ellipse 50% 100% at 50% 100%, 
    #1e1610 0%, #1e1610 50%, transparent 65%);
  border-radius: 35% 35% 25% 25% / 60% 60% 25% 25%;
  transform-origin: bottom center;
  animation: dj-seated 8s ease-in-out infinite;
}
.scn-meeting-don-jose .cigar-bundle {
  position: absolute; bottom: 26%; left: 45%; width: 12%; height: 6%;
  background: linear-gradient(135deg, #5a4a30 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: dj-bundle 10s ease-in-out infinite;
}
.scn-meeting-don-jose .cigar-count {
  position: absolute; bottom: 27%; left: 42%; width: 4%; height: 2%;
  background: #6a5a3a;
  border-radius: 20%;
  box-shadow: 8px 0 0 #6a5a3a, 16px 0 0 #6a5a3a, 24px 0 0 #6a5a3a, 32px 0 0 #6a5a3a;
  animation: dj-count 12s ease-in-out infinite;
}
.scn-meeting-don-jose .candle-glow {
  position: absolute; bottom: 45%; left: 20%; width: 10%; height: 12%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 30%, #cc6600 60%, transparent 80%);
  border-radius: 50%;
  opacity: 0.7;
  box-shadow: 0 0 40px 20px rgba(255,160,64,0.2), 0 0 80px 40px rgba(255,160,64,0.1);
  animation: dj-candle-pulse 5s ease-in-out infinite alternate;
}
.scn-meeting-don-jose .candle-body {
  position: absolute; bottom: 35%; left: 23%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-meeting-don-jose .wall-shelf {
  position: absolute; top: 25%; left: 10%; right: 15%; height: 3%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1e1410 100%);
  border-radius: 1%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: dj-shelf 20s ease-in-out infinite;
}
@keyframes dj-ambient {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes dj-seated {
  0% { transform: translateY(0) rotate(0deg) scaleY(1); }
  20% { transform: translateY(-1px) rotate(-0.5deg) scaleY(0.98); }
  40% { transform: translateY(1px) rotate(0deg) scaleY(1.01); }
  60% { transform: translateY(-1px) rotate(0.5deg) scaleY(0.99); }
  80% { transform: translateY(2px) rotate(0deg) scaleY(1.02); }
  100% { transform: translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes dj-bundle {
  0% { transform: translateX(0) scaleX(1); }
  25% { transform: translateX(2px) scaleX(0.95); }
  50% { transform: translateX(-1px) scaleX(1.05); }
  75% { transform: translateX(3px) scaleX(0.98); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes dj-count {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes dj-candle-pulse {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 0.9; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes dj-shelf {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

/* item-silver-medal - tense, dim interior, focus on medal glow */
.scn-item-silver-medal {
  background:
    radial-gradient(ellipse at 50% 60%, #1a1412 0%, #0a0806 70%);
  position: relative;
  overflow: hidden;
}
.scn-item-silver-medal .dark-bg {
  position: absolute; inset: 0;
  background: 
    linear-gradient(135deg, #0e0c0a 0%, #161210 50%, #0a0806 100%);
  animation: sm-bg-pulse 10s ease-in-out infinite alternate;
}
.scn-item-silver-medal .figure-torso {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 70%;
  background: radial-gradient(ellipse 50% 100% at 50% 100%, 
    #181410 0%, #181410 55%, transparent 70%);
  border-radius: 30% 30% 25% 25% / 60% 60% 25% 25%;
  transform-origin: bottom center;
  animation: sm-torso 6s ease-in-out infinite;
}
.scn-item-silver-medal .figure-hand {
  position: absolute; bottom: 28%; left: 42%; width: 14%; height: 22%;
  background: radial-gradient(ellipse 50% 100% at 50% 100%, 
    #201a14 0%, #201a14 40%, transparent 55%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sm-hand 4s ease-in-out infinite;
}
.scn-item-silver-medal .medal-chain {
  position: absolute; bottom: 32%; left: 46%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #c8c0b0 0%, #a0a0a0 50%, #808080 100%);
  border-radius: 40%;
  box-shadow: 0 0 4px rgba(192,192,192,0.3);
  transform: rotate(15deg);
  animation: sm-chain 5s ease-in-out infinite;
}
.scn-item-silver-medal .medal-disc {
  position: absolute; bottom: 26%; left: 44.5%; width: 11%; height: 11%;
  background: radial-gradient(circle, #e8e0d0 0%, #b0b0a0 40%, #909090 70%, #707070 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5), inset 0 0 8px rgba(255,255,255,0.2);
  transform: rotate(10deg);
  animation: sm-disc 6s ease-in-out infinite;
}
.scn-item-silver-medal .medal-glow {
  position: absolute; bottom: 24%; left: 43%; width: 14%; height: 15%;
  background: radial-gradient(circle, rgba(200,200,200,0.4) 0%, rgba(200,200,200,0.1) 40%, transparent 70%);
  border-radius: 50%;
  opacity: 0.6;
  animation: sm-glow-pulse 3s ease-in-out infinite alternate;
  box-shadow: 0 0 30px 15px rgba(200,200,200,0.1);
}
.scn-item-silver-medal .shadow-arm {
  position: absolute; bottom: 20%; left: 58%; width: 18%; height: 40%;
  background: radial-gradient(ellipse 30% 100% at 50% 100%, 
    rgba(0,0,0,0.5) 0%, transparent 60%);
  transform: rotate(20deg);
  transform-origin: bottom left;
  animation: sm-arm 8s ease-in-out infinite;
}
.scn-item-silver-medal .paper-wrap {
  position: absolute; bottom: 28%; left: 40%; width: 6%; height: 4%;
  background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 100%);
  border-radius: 10%;
  opacity: 0.4;
  animation: sm-paper 7s ease-in-out infinite;
}
@keyframes sm-bg-pulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sm-torso {
  0% { transform: translateY(0) scaleY(1); }
  30% { transform: translateY(-1px) scaleY(0.98); }
  60% { transform: translateY(1px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes sm-hand {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  25% { transform: translateY(-2px) rotate(-2deg) scaleX(0.95); }
  50% { transform: translateY(1px) rotate(1deg) scaleX(1.05); }
  75% { transform: translateY(-1px) rotate(-1deg) scaleX(0.98); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes sm-chain {
  0% { transform: rotate(12deg) translateY(0); }
  33% { transform: rotate(15deg) translateY(-1px); }
  66% { transform: rotate(10deg) translateY(1px); }
  100% { transform: rotate(14deg) translateY(0); }
}
@keyframes sm-disc {
  0% { transform: rotate(8deg) scale(1); }
  25% { transform: rotate(10deg) scale(1.02); }
  50% { transform: rotate(6deg) scale(0.98); }
  75% { transform: rotate(12deg) scale(1.01); }
  100% { transform: rotate(10deg) scale(1); }
}
@keyframes sm-glow-pulse {
  0% { opacity: 0.4; transform: scale(0.95); }
  50% { opacity: 0.8; transform: scale(1.08); }
  100% { opacity: 0.5; transform: scale(0.98); }
}
@keyframes sm-arm {
  0% { transform: rotate(18deg) scaleX(1); }
  50% { transform: rotate(22deg) scaleX(0.95); }
  100% { transform: rotate(18deg) scaleX(1); }
}
@keyframes sm-paper {
  0% { opacity: 0.3; transform: translateY(0) rotate(-2deg); }
  50% { opacity: 0.6; transform: translateY(-2px) rotate(2deg); }
  100% { opacity: 0.4; transform: translateY(0) rotate(0deg); }
}

.scn-spring-discovery { background: linear-gradient(180deg, #b8e0ff 0%, #e6f5ff 40%, #f0fff0 70%, #a0c0a0 100%), radial-gradient(ellipse at 70% 30%, #fff4c0 0%, transparent 60%); }
.scn-spring-discovery .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #cceeff 0%, #e6f5ff 100%); animation: spd-sky 15s ease-in-out infinite alternate; }
.scn-spring-discovery .sun { position:absolute; top:12%; left:65%; width:40px; height:40px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,215,0,.4); animation: spd-sun 8s ease-in-out infinite; }
.scn-spring-discovery .hills { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a9a5a 0%, #4a7a3a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 -10px 20px rgba(0,30,0,.3); animation: spd-hills 20s ease-in-out infinite; }
.scn-spring-discovery .reed { position:absolute; bottom:40%; width:6px; height:60px; background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%); border-radius: 40% 40% 10% 10%; transform-origin: bottom center; }
.scn-spring-discovery .reed-a { left:20%; animation: spd-reed 4s ease-in-out infinite; }
.scn-spring-discovery .reed-b { left:35%; height:70px; animation: spd-reed 5s ease-in-out infinite 0.5s; }
.scn-spring-discovery .reed-c { left:50%; height:55px; animation: spd-reed 3.5s ease-in-out infinite 1s; }
.scn-spring-discovery .water { position:absolute; bottom:20%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #89cff0 0%, #5fa8d3 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,50,.2); animation: spd-water 12s ease-in-out infinite; }
.scn-spring-discovery .ripple { position:absolute; bottom:30%; left:40%; width:30px; height:8px; background: radial-gradient(ellipse, #ffffff88 0%, transparent 100%); border-radius:50%; animation: spd-ripple 3s ease-in-out infinite; }
@keyframes spd-sky { 0% { opacity:0.85; transform: translateY(0); } 50% { opacity:1; transform: translateY(-4px); } 100% { opacity:0.9; transform: translateY(2px); } }
@keyframes spd-sun { 0% { transform: scale(1); box-shadow: 0 0 40px 15px rgba(255,215,0,.3); } 50% { transform: scale(1.08); box-shadow: 0 0 70px 30px rgba(255,215,0,.5); } 100% { transform: scale(0.98); box-shadow: 0 0 50px 20px rgba(255,215,0,.35); } }
@keyframes spd-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(2px) scaleY(0.98); } }
@keyframes spd-reed { 0% { transform: rotate(-3deg); } 30% { transform: rotate(2deg); } 60% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes spd-water { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes spd-ripple { 0% { transform: translateX(0) scale(1); opacity:0.6; } 50% { transform: translateX(8px) scale(1.5); opacity:0.2; } 100% { transform: translateX(0) scale(1); opacity:0.6; } }

.scn-amphitheatre-discovery { background: linear-gradient(180deg, #7a8a7a 0%, #9a9a7a 40%, #6a7a6a 100%), radial-gradient(ellipse at 50% 100%, #8a7a6a 0%, transparent 70%); }
.scn-amphitheatre-discovery .overcast-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0b8a0 0%, #909888 100%); animation: amd-sky 20s ease-in-out infinite alternate; }
.scn-amphitheatre-discovery .cliff-left { position:absolute; top:20%; left:0; width:35%; height:60%; background: linear-gradient(135deg, #6a5a4a 0%, #5a4a3a 100%); border-radius: 0 20% 40% 10%; box-shadow: inset -5px 0 15px rgba(0,0,0,.3); transform-origin: left center; animation: amd-cliff 25s ease-in-out infinite; }
.scn-amphitheatre-discovery .cliff-right { position:absolute; top:25%; right:0; width:30%; height:55%; background: linear-gradient(225deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 20% 0 10% 40%; box-shadow: inset 5px 0 15px rgba(0,0,0,.3); transform-origin: right center; animation: amd-cliff 25s ease-in-out infinite 2s; }
.scn-amphitheatre-discovery .stream { position:absolute; bottom:15%; left:15%; right:15%; height:12%; background: linear-gradient(180deg, #7a9a8a 0%, #6a8a7a 100%); border-radius: 30% 30% 0 0; animation: amd-stream 10s ease-in-out infinite; }
.scn-amphitheatre-discovery .horse { position:absolute; bottom:22%; left:55%; width:24px; height:30px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: amd-horse 4s ease-in-out infinite; }
.scn-amphitheatre-discovery .bush { position:absolute; bottom:20%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 60%, #4a6a3a 0%, #3a5a2a 100%); border-radius: 50%; }
.scn-amphitheatre-discovery .bush-a { left:30%; animation: amd-bush 8s ease-in-out infinite; }
.scn-amphitheatre-discovery .bush-b { left:75%; animation: amd-bush 8s ease-in-out infinite 4s; }
.scn-amphitheatre-discovery .mist { position:absolute; top:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(200,200,180,.4) 0%, transparent 100%); filter: blur(6px); animation: amd-mist 30s ease-in-out infinite; }
@keyframes amd-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes amd-cliff { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.03) translateY(-2px); } 100% { transform: scaleY(0.97) translateY(1px); } }
@keyframes amd-stream { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes amd-horse { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes amd-bush { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(0.95) rotate(-2deg); } }
@keyframes amd-mist { 0% { opacity:0.3; transform: translateY(0); } 50% { opacity:0.6; transform: translateY(-5px); } 100% { opacity:0.2; transform: translateY(3px); } }

.scn-delightful-halting { background: linear-gradient(180deg, #8a8a7a 0%, #a0a090 40%, #7a7a6a 100%), radial-gradient(ellipse at 50% 0%, #b0a890 0%, transparent 80%); }
.scn-delightful-halting .warm-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c8c0b0 0%, #b0a890 100%); animation: dlh-sky 18s ease-in-out infinite alternate; }
.scn-delightful-halting .cliff-bg { position:absolute; top:10%; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: dlh-cliff 22s ease-in-out infinite; }
.scn-delightful-halting .oak { position:absolute; bottom:35%; width:50px; height:80px; background: radial-gradient(ellipse at 50% 40%, #3a5a2a 0%, #2a3a1a 100%); border-radius: 50% 50% 30% 30%; }
.scn-delightful-halting .oak-left { left:25%; transform-origin: bottom center; animation: dlh-oak 6s ease-in-out infinite; }
.scn-delightful-halting .oak-right { right:25%; width:60px; height:90px; animation: dlh-oak 6s ease-in-out infinite 3s; }
.scn-delightful-halting .basin { position:absolute; bottom:15%; left:30%; right:30%; height:20%; background: linear-gradient(180deg, #7a9a8a 0%, #5a7a6a 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; box-shadow: inset 0 4px 10px rgba(0,30,0,.2); animation: dlh-basin 14s ease-in-out infinite; }
.scn-delightful-halting .sand { position:absolute; bottom:10%; left:35%; right:35%; height:8%; background: radial-gradient(ellipse at 50% 100%, #e8e0c0 0%, #c8c0a0 100%); border-radius: 50% 50% 0 0; animation: dlh-sand 8s ease-in-out infinite; }
.scn-delightful-halting .bubbles { position:absolute; bottom:22%; left:45%; width:12px; height:12px; background: radial-gradient(circle, #ffffff88 0%, transparent 100%); border-radius:50%; animation: dlh-bubbles 4s ease-in-out infinite; }
.scn-delightful-halting .light-sparkle { position:absolute; bottom:28%; left:55%; width:6px; height:6px; background: radial-gradient(circle, #fff8e0 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,248,224,.6); animation: dlh-sparkle 3s ease-in-out infinite alternate; }
@keyframes dlh-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes dlh-cliff { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(1px) scaleY(0.98); } }
@keyframes dlh-oak { 0% { transform: rotate(-1deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(-2deg) translateY(1px); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes dlh-basin { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes dlh-sand { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes dlh-bubbles { 0% { transform: translateY(0) scale(0.8); opacity:0.5; } 50% { transform: translateY(-8px) scale(1.2); opacity:0; } 100% { transform: translateY(0) scale(0.8); opacity:0.5; } }
@keyframes dlh-sparkle { 0% { opacity:0.3; transform: scale(0.8); } 100% { opacity:1; transform: scale(1.2); } }

.scn-stranger-introduced { background: linear-gradient(180deg, #d8e8f0 0%, #e8f0f8 40%, #b0c8d0 100%), radial-gradient(ellipse at 80% 30%, #fff8e0 0%, transparent 60%); }
.scn-stranger-introduced .bright-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c0d8e8 0%, #e8f0f8 100%); animation: sti-sky 12s ease-in-out infinite alternate; }
.scn-stranger-introduced .turf { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #5a7a4a 0%, #4a6a3a 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,30,0,.3); animation: sti-turf 18s ease-in-out infinite; }
.scn-stranger-introduced .figure { position:absolute; bottom:18%; left:45%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sti-figure 6s ease-in-out infinite; }
.scn-stranger-introduced .shadow { position:absolute; bottom:10%; left:42%; width:36px; height:6px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); border-radius:50%; animation: sti-shadow 6s ease-in-out infinite; }
.scn-stranger-introduced .grass-blade { position:absolute; bottom:15%; width:4px; height:20px; background: linear-gradient(180deg, #3a5a2a 0%, #2a3a1a 100%); border-radius: 40% 40% 10% 10%; transform-origin: bottom center; }
.scn-stranger-introduced .blade-a { left:30%; animation: sti-blade 3s ease-in-out infinite; }
.scn-stranger-introduced .blade-b { left:55%; height:25px; animation: sti-blade 3.5s ease-in-out infinite 0.8s; }
.scn-stranger-introduced .blade-c { left:70%; height:18px; animation: sti-blade 2.8s ease-in-out infinite 1.5s; }
.scn-stranger-introduced .sunflare { position:absolute; top:25%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(255,215,0,.3); animation: sti-sunflare 7s ease-in-out infinite; }
@keyframes sti-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes sti-turf { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(0.99); } }
@keyframes sti-figure { 0% { transform: scaleY(1) translateY(0); } 30% { transform: scaleY(1.02) translateY(-1px); } 60% { transform: scaleY(0.98) translateY(0.5px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes sti-shadow { 0% { transform: scaleX(1); opacity:0.6; } 50% { transform: scaleX(1.1); opacity:0.8; } 100% { transform: scaleX(1); opacity:0.6; } }
@keyframes sti-blade { 0% { transform: rotate(0deg); } 25% { transform: rotate(4deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes sti-sunflare { 0% { transform: scale(1); box-shadow: 0 0 30px 10px rgba(255,215,0,.2); } 50% { transform: scale(1.15); box-shadow: 0 0 60px 25px rgba(255,215,0,.5); } 100% { transform: scale(0.95); box-shadow: 0 0 40px 15px rgba(255,215,0,.3); } }

.scn-item-scarf-instructions {
  background: 
    linear-gradient(180deg, #f5e6c0 0%, #e8d4a0 40%, #d4bf8a 100%),
    radial-gradient(ellipse at 50% 30%, #fff4d6 0%, transparent 70%);
}
.scn-item-scarf-instructions .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #f9eed0 0%, #e8d4a0 100%); }
.scn-item-scarf-instructions .table { position:absolute; bottom:10%; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #b8916e 0%, #8b6f4e 100%); border-radius:20% 20% 0 0; box-shadow: 0 -4px 15px rgba(0,0,0,0.3); animation: si-table 12s ease-in-out infinite alternate; }
.scn-item-scarf-instructions .scarf { position:absolute; bottom:30%; left:20%; width:60%; height:40%; background: linear-gradient(135deg, #c8553d 0%, #a0461a 40%, #702243 100%); border-radius:8% 8% 50% 50% / 30% 30% 70% 70%; transform: rotate(-5deg); box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: si-scarf 8s ease-in-out infinite; }
.scn-item-scarf-instructions .coin-a { position:absolute; bottom:38%; left:30%; width:18px; height:18px; border-radius:50%; background: radial-gradient(circle, #ffd700 0%, #daa520 100%); box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: si-coin 5s ease-in-out infinite; }
.scn-item-scarf-instructions .coin-b { position:absolute; bottom:42%; left:50%; width:20px; height:20px; border-radius:50%; background: radial-gradient(circle, #ffd700 0%, #b8860b 100%); box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: si-coin 5s ease-in-out infinite 1.5s; }
.scn-item-scarf-instructions .coin-c { position:absolute; bottom:36%; left:65%; width:16px; height:16px; border-radius:50%; background: radial-gradient(circle, #ffd700 0%, #c0a060 100%); box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: si-coin 5s ease-in-out infinite 3s; }
.scn-item-scarf-instructions .needle { position:absolute; bottom:48%; left:45%; width:2px; height:40px; background: linear-gradient(180deg, #ccc 0%, #999 100%); transform: rotate(-20deg); border-radius:0 0 50% 50%; box-shadow: 0 1px 3px rgba(0,0,0,0.3); animation: si-needle 4s ease-in-out infinite alternate; }
.scn-item-scarf-instructions .thread { position:absolute; bottom:48%; left:45%; width:1px; height:60px; background: #c8553d; transform: rotate(-20deg); transform-origin: bottom left; border-radius:50%; box-shadow: 0 0 2px rgba(200,85,61,0.6); animation: si-thread 4s ease-in-out infinite alternate; }
.scn-item-scarf-instructions .hand { position:absolute; bottom:42%; left:38%; width:30px; height:20px; background: linear-gradient(180deg, #e8b88a 0%, #c2956e 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(15deg); box-shadow: 0 3px 6px rgba(0,0,0,0.3); animation: si-hand 6s ease-in-out infinite; }
@keyframes si-table { 0% { box-shadow: 0 -4px 15px rgba(0,0,0,0.3); } 50% { box-shadow: 0 -4px 20px rgba(0,0,0,0.35); } 100% { box-shadow: 0 -4px 15px rgba(0,0,0,0.3); } }
@keyframes si-scarf { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes si-coin { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes si-needle { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes si-thread { 0% { transform: rotate(-20deg) scaleY(1); opacity:0.7; } 50% { transform: rotate(-15deg) scaleY(1.2); opacity:1; } 100% { transform: rotate(-20deg) scaleY(1); opacity:0.7; } }
@keyframes si-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

.scn-item-scarf-campo-santo {
  background: 
    linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 50%, #0f0f2a 100%),
    radial-gradient(ellipse at 80% 20%, #2c3e70 0%, transparent 60%);
}
.scn-item-scarf-campo-santo .night-sky { position:absolute; inset:0; background: linear-gradient(180deg, #101530 0%, #0a0a1e 100%); }
.scn-item-scarf-campo-santo .moon { position:absolute; top:8%; right:15%; width:70px; height:70px; border-radius:50%; background: radial-gradient(circle at 35% 35%, #e6e0d0 0%, #b0a898 100%); box-shadow: 0 0 40px 15px rgba(200,190,170,0.4), 0 0 80px 30px rgba(200,190,170,0.1); animation: cs-moon 20s ease-in-out infinite alternate; }
.scn-item-scarf-campo-santo .gate { position:absolute; bottom:20%; left:35%; width:30%; height:60%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:5% 5% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); clip-path: polygon(5% 0, 95% 0, 100% 100%, 0% 100%); animation: cs-gate 15s ease-in-out infinite; }
.scn-item-scarf-campo-santo .figure { position:absolute; bottom:18%; left:45%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 10px rgba(0,0,0,0.5); animation: cs-figure 8s ease-in-out infinite alternate; }
.scn-item-scarf-campo-santo .scarf-draped { position:absolute; bottom:20%; left:42%; width:40px; height:30px; background: linear-gradient(135deg, #5e1a1d 0%, #3a0a0a 100%); border-radius:0 0 50% 50%; transform: rotate(10deg); box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: cs-scarf 12s ease-in-out infinite; }
.scn-item-scarf-campo-santo .tombstone { position:absolute; bottom:15%; left:60%; width:20px; height:30px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:10% 10% 0 0; box-shadow: 0 2px 6px rgba(0,0,0,0.7); animation: cs-tomb 10s ease-in-out infinite; }
.scn-item-scarf-campo-santo .shadow-inset { position:absolute; inset:0; background: radial-gradient(ellipse at 45% 60%, rgba(0,0,0,0.6) 0%, transparent 70%); pointer-events:none; animation: cs-shadow 25s ease-in-out infinite alternate; }
@keyframes cs-moon { 0% { transform: translateX(0) scale(1); opacity:0.9; } 50% { transform: translateX(-5px) scale(1.02); opacity:1; } 100% { transform: translateX(5px) scale(0.98); opacity:0.85; } }
@keyframes cs-gate { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1); } }
@keyframes cs-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes cs-scarf { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes cs-tomb { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cs-shadow { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

.scn-gypsy-pride-and-deception {
  background: 
    linear-gradient(180deg, #e8cfa0 0%, #d4b07a 40%, #c09560 100%),
    radial-gradient(ellipse at 50% 20%, #f5e0b0 0%, transparent 70%);
}
.scn-gypsy-pride-and-deception .tavern-wall { position:absolute; inset:0; background: linear-gradient(135deg, #d4b88a 0%, #b89870 100%); }
.scn-gypsy-pride-and-deception .table-round { position:absolute; bottom:10%; left:15%; right:15%; height:30%; background: radial-gradient(ellipse at 50% 50%, #7a5a3a 0%, #4a2a1a 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 -6px 20px rgba(0,0,0,0.4); animation: gd-table 14s ease-in-out infinite alternate; }
.scn-gypsy-pride-and-deception .gypsy-figure { position:absolute; bottom:28%; left:30%; width:35px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: gd-gypsy 6s ease-in-out infinite; }
.scn-gypsy-pride-and-deception .gypsy-hat { position:absolute; bottom:60%; left:28%; width:40px; height:15px; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius:30% 30% 0 0; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.6); animation: gd-hat 6s ease-in-out infinite 0.5s; }
.scn-gypsy-pride-and-deception .listener-1 { position:absolute; bottom:25%; left:55%; width:30px; height:45px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform: scaleX(-1); box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: gd-listener 10s ease-in-out infinite; }
.scn-gypsy-pride-and-deception .listener-2 { position:absolute; bottom:23%; left:65%; width:28px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform: scaleX(-1); box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: gd-listener 10s ease-in-out infinite 3s; }
.scn-gypsy-pride-and-deception .candle { position:absolute; bottom:40%; left:25%; width:8px; height:20px; background: linear-gradient(180deg, #f0d080 0%, #c0a060 100%); border-radius:2px; box-shadow: 0 0 15px 5px rgba(240,208,128,0.6); animation: gd-candle 4s ease-in-out infinite alternate; }
.scn-gypsy-pride-and-deception .wine-cup { position:absolute; bottom:22%; left:40%; width:12px; height:16px; background: linear-gradient(180deg, #c8553d 0%, #702243 100%); border-radius:0 0 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); transform: rotate(10deg); animation: gd-cup 8s ease-in-out infinite; }
@keyframes gd-table { 0% { transform: scaleX(1); box-shadow: 0 -6px 20px rgba(0,0,0,0.4); } 50% { transform: scaleX(0.98); box-shadow: 0 -6px 25px rgba(0,0,0,0.45); } 100% { transform: scaleX(1); box-shadow: 0 -6px 20px rgba(0,0,0,0.4); } }
@keyframes gd-gypsy { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes gd-hat { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes gd-listener { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-2px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes gd-candle { 0% { box-shadow: 0 0 15px 5px rgba(240,208,128,0.6); height:20px; } 50% { box-shadow: 0 0 20px 8px rgba(240,208,128,0.8); height:22px; } 100% { box-shadow: 0 0 15px 5px rgba(240,208,128,0.6); height:20px; } }
@keyframes gd-cup { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(0); } }

.scn-vosges-gypsy-story-stove {
  background: 
    linear-gradient(180deg, #f0d8b0 0%, #d4b07a 40%, #b89060 100%),
    radial-gradient(ellipse at 30% 70%, #e8c080 0%, transparent 70%);
}
.scn-vosges-gypsy-story-stove .kitchen-wall { position:absolute; inset:0; background: linear-gradient(135deg, #e8d4a0 0%, #c8a870 100%); }
.scn-vosges-gypsy-story-stove .stove { position:absolute; bottom:5%; left:15%; width:40%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6), 0 -4px 10px rgba(0,0,0,0.4); animation: vs-stove 15s ease-in-out infinite alternate; }
.scn-vosges-gypsy-story-stove .stove-fire { position:absolute; bottom:10%; left:22%; width:30%; height:30%; background: radial-gradient(circle at 50% 80%, #ff8c00 0%, #e65c00 40%, #8a2a00 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 40px 20px rgba(255,140,0,0.5); animation: vs-fire 3s ease-in-out infinite alternate; }
.scn-vosges-gypsy-story-stove .bacon { position:absolute; bottom:25%; left:28%; width:40px; height:12px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius:20%; transform: rotate(-15deg); box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: vs-bacon 5s ease-in-out infinite; }
.scn-vosges-gypsy-story-stove .cook-figure { position:absolute; bottom:25%; right:20%; width:30px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform: scaleX(-1); box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: vs-cook 7s ease-in-out infinite; }
.scn-vosges-gypsy-story-stove .smoke-cloud { position:absolute; top:10%; left:40%; width:60px; height:30px; 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: vs-smoke 12s linear infinite; }
.scn-vosges-gypsy-story-stove .pot { position:absolute; bottom:15%; left:35%; width:20px; height:15px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: vs-pot 8s ease-in-out infinite; }
@keyframes vs-stove { 0% { box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6), 0 -4px 10px rgba(0,0,0,0.4); } 50% { box-shadow: inset 0 -20px 35px rgba(0,0,0,0.7), 0 -4px 15px rgba(0,0,0,0.5); } 100% { box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6), 0 -4px 10px rgba(0,0,0,0.4); } }
@keyframes vs-fire { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.7; } }
@keyframes vs-bacon { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes vs-cook { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(2px); } 100% { transform: scaleX(-1) translateX(-2px); } }
@keyframes vs-smoke { 0% { transform: translateY(0) scale(1); opacity:0.4; } 50% { transform: translateY(-20px) scale(1.2); opacity:0.2; } 100% { transform: translateY(-40px) scale(1.5); opacity:0; } }
@keyframes vs-pot { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-sleeping-arrangement {
  background: linear-gradient(180deg, #2a1f1a 0%, #0d0808 100%), radial-gradient(ellipse at 30% 60%, #3a2a22 0%, transparent 70%);
}
.scn-sleeping-arrangement .wall {
  position: absolute; inset: 0; background: repeating-linear-gradient(90deg, rgba(20,12,8,0.15) 0px, rgba(20,12,8,0.15) 4px, transparent 4px, transparent 8px); animation: sa-wall 12s ease-in-out infinite alternate;
}
.scn-sleeping-arrangement .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a2a1e 0%, #1f1410 100%); box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
}
.scn-sleeping-arrangement .cloak {
  position: absolute; bottom: 8%; left: 20%; width: 40%; height: 18%; background: linear-gradient(135deg, #2a1a14 0%, #0f0806 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; transform: rotate(-5deg); animation: sa-cloak 6s ease-in-out infinite;
}
.scn-sleeping-arrangement .figure {
  position: absolute; bottom: 6%; left: 22%; width: 12%; height: 20%; background: linear-gradient(180deg, #1a0e0a 0%, #0a0503 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: sa-figure 8s ease-in-out infinite alternate;
}
.scn-sleeping-arrangement .door {
  position: absolute; bottom: 0; right: 15%; width: 30%; height: 80%; background: linear-gradient(180deg, #4a3528 0%, #2a1a12 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -4px 12px rgba(0,0,0,0.5), 2px 0 6px rgba(0,0,0,0.3); animation: sa-door 10s ease-in-out infinite;
}
.scn-sleeping-arrangement .lamp {
  position: absolute; bottom: 22%; left: 35%; width: 6%; height: 8%; background: radial-gradient(circle, #f0d080 0%, #c0a060 60%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 8px #c0a060, 0 0 60px 16px rgba(192,160,96,0.3); animation: sa-lamp 3s ease-in-out infinite alternate;
}
.scn-sleeping-arrangement .shadow {
  position: absolute; bottom: 0; left: 25%; width: 35%; height: 10%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); border-radius: 50% 50% 0 0; filter: blur(4px); animation: sa-shadow 9s ease-in-out infinite;
}
@keyframes sa-wall {
  0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; }
}
@keyframes sa-cloak {
  0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes sa-figure {
  0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); }
}
@keyframes sa-door {
  0% { box-shadow: inset 0 -4px 12px rgba(0,0,0,0.5), 2px 0 6px rgba(0,0,0,0.3); } 50% { box-shadow: inset 0 -4px 12px rgba(0,0,0,0.6), 3px 0 8px rgba(0,0,0,0.4); } 100% { box-shadow: inset 0 -4px 12px rgba(0,0,0,0.5), 2px 0 6px rgba(0,0,0,0.3); }
}
@keyframes sa-lamp {
  0% { box-shadow: 0 0 30px 8px #c0a060, 0 0 60px 16px rgba(192,160,96,0.3); opacity: 0.9; } 50% { box-shadow: 0 0 40px 12px #e0c080, 0 0 80px 20px rgba(224,192,128,0.5); opacity: 1; } 100% { box-shadow: 0 0 30px 8px #c0a060, 0 0 60px 16px rgba(192,160,96,0.3); opacity: 0.9; }
}
@keyframes sa-shadow {
  0% { transform: scaleX(1); opacity: 0.4; } 50% { transform: scaleX(1.05); opacity: 0.7; } 100% { transform: scaleX(1); opacity: 0.4; }
}

.scn-bugs-disturbance {
  background: linear-gradient(180deg, #0a0808 0%, #050303 50%, #0f0c0a 100%), radial-gradient(ellipse at 50% 20%, #1a1410 0%, transparent 80%);
}
.scn-bugs-disturbance .bg {
  position: absolute; inset: 0; background: repeating-linear-gradient(180deg, rgba(10,8,8,0.3) 0px, rgba(10,8,8,0.3) 2px, transparent 2px, transparent 6px);
}
.scn-bugs-disturbance .figure {
  position: absolute; bottom: 10%; left: 30%; width: 20%; height: 35%; background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: bd-figure 5s ease-in-out infinite;
}
.scn-bugs-disturbance .bed {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 15%; background: linear-gradient(180deg, #2a1e16 0%, #1a100c 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-bugs-disturbance .itch {
  position: absolute; bottom: 28%; left: 45%; width: 4%; height: 4%; background: radial-gradient(circle, #8a5a3a 0%, transparent 70%); border-radius: 50%; animation: bd-itch 1.5s ease-in-out infinite;
}
.scn-bugs-disturbance .crack {
  position: absolute; bottom: 0; left: 5%; width: 3%; height: 60%; background: linear-gradient(180deg, rgba(200,180,140,0.4) 0%, transparent 100%); border-radius: 50% 0 0 0; filter: blur(2px); animation: bd-crack 10s ease-in-out infinite alternate;
}
.scn-bugs-disturbance .shadow {
  position: absolute; bottom: 0; left: 20%; width: 40%; height: 12%; background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: bd-shadow 7s ease-in-out infinite;
}
@keyframes bd-figure {
  0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bd-itch {
  0% { opacity: 0; transform: scale(0.5); } 30% { opacity: 1; transform: scale(1.2); } 60% { opacity: 0.8; transform: scale(0.8); } 100% { opacity: 0; transform: scale(0.5); }
}
@keyframes bd-crack {
  0% { opacity: 0.1; } 50% { opacity: 0.4; } 100% { opacity: 0.1; }
}
@keyframes bd-shadow {
  0% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } 100% { transform: scaleX(1); }
}

.scn-escape-to-bench {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 40%, #1a2a3a 100%), radial-gradient(ellipse at 50% 100%, #2a3a5a 0%, transparent 70%);
}
.scn-escape-to-bench .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #0a1a2a 0%, #2a3a5a 100%); animation: eb-sky 20s ease-in-out infinite alternate;
}
.scn-escape-to-bench .moon {
  position: absolute; top: 10%; left: 70%; width: 12%; height: 12%; background: radial-gradient(circle, #e0e8f0 0%, #c0d0e0 60%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 10px #c0d0e0; animation: eb-moon 30s linear infinite;
}
.scn-escape-to-bench .wall {
  position: absolute; bottom: 0; left: 0; width: 25%; height: 90%; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 0 10% 0 0; box-shadow: inset -10px 0 20px rgba(0,0,0,0.5); animation: eb-wall 15s ease-in-out infinite;
}
.scn-escape-to-bench .bench {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: eb-bench 8s ease-in-out infinite;
}
.scn-escape-to-bench .figure {
  position: absolute; bottom: 12%; left: 35%; width: 15%; height: 25%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eb-figure 6s ease-in-out infinite alternate;
}
.scn-escape-to-bench .shadow {
  position: absolute; bottom: 8%; left: 32%; width: 20%; height: 6%; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(8px); animation: eb-shadow 12s ease-in-out infinite;
}
.scn-escape-to-bench .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(0deg, #2a4a3a 0%, #3a5a4a 50%, transparent 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; animation: eb-grass 9s ease-in-out infinite alternate;
}
@keyframes eb-sky {
  0%, 100% { opacity: 0.8; } 50% { opacity: 1; }
}
@keyframes eb-moon {
  0% { transform: translateX(0); } 100% { transform: translateX(-10vw); }
}
@keyframes eb-wall {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes eb-bench {
  0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); }
}
@keyframes eb-figure {
  0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(0.98) rotate(1deg); } 100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes eb-shadow {
  0%, 100% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.05) translateX(5px); }
}
@keyframes eb-grass {
  0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); }
}

.scn-shadow-seen {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%), radial-gradient(ellipse at 50% 30%, #2a4a5a 0%, transparent 70%);
}
.scn-shadow-seen .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%); animation: ss-sky 25s ease-in-out infinite alternate;
}
.scn-shadow-seen .moon {
  position: absolute; top: 8%; left: 20%; width: 10%; height: 10%; background: radial-gradient(circle, #d0d8e0 0%, #a0b0c0 60%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 8px #a0b0c0; animation: ss-moon 40s linear infinite;
}
.scn-shadow-seen .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-shadow-seen .man-shadow {
  position: absolute; bottom: 20%; left: 30%; width: 8%; height: 30%; background: rgba(0,0,0,0.6); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; filter: blur(2px); transform-origin: bottom center; animation: ss-man 5s ease-in-out infinite;
}
.scn-shadow-seen .horse-shadow {
  position: absolute; bottom: 18%; left: 42%; width: 20%; height: 18%; background: rgba(0,0,0,0.5); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; filter: blur(3px); animation: ss-horse 6s ease-in-out infinite;
}
.scn-shadow-seen .fence {
  position: absolute; bottom: 0; left: 50%; width: 4%; height: 60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 2px 0 4px rgba(0,0,0,0.4); animation: ss-fence 9s ease-in-out infinite alternate;
}
.scn-shadow-seen .tree {
  position: absolute; bottom: 0; right: 10%; width: 15%; height: 70%; background: linear-gradient(180deg, #1a1a10 0%, #0a0a05 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; animation: ss-tree 12s ease-in-out infinite;
}
@keyframes ss-sky {
  0%, 100% { opacity: 0.7; } 50% { opacity: 1; }
}
@keyframes ss-moon {
  0% { transform: translateX(0); } 100% { transform: translateX(15vw); }
}
@keyframes ss-man {
  0% { transform: translateX(0) translateY(0) scaleX(1); } 25% { transform: translateX(10px) translateY(-5px) scaleX(0.95); } 50% { transform: translateX(20px) translateY(0) scaleX(1); } 75% { transform: translateX(10px) translateY(-3px) scaleX(0.98); } 100% { transform: translateX(0) translateY(0) scaleX(1); }
}
@keyframes ss-horse {
  0% { transform: translateX(0) translateY(0) scaleX(1); } 25% { transform: translateX(15px) translateY(-4px) scaleX(1.02); } 50% { transform: translateX(30px) translateY(0) scaleX(1); } 75% { transform: translateX(15px) translateY(-2px) scaleX(0.98); } 100% { transform: translateX(0) translateY(0) scaleX(1); }
}
@keyframes ss-fence {
  0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(0.95); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.8; }
}
@keyframes ss-tree {
  0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); }
}

.scn-gipsy-reveal {
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #4a3a6e 60%, #6a4a3a 100%),
    radial-gradient(ellipse at 50% 100%, #c87540 0%, transparent 50%);
}
.scn-gipsy-reveal .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a3e 0%, #3a2a5e 100%); animation: si2-sky 15s ease-in-out infinite alternate; }
.scn-gipsy-reveal .stars { position:absolute; inset:0 0 40% 0; background: radial-gradient(1px 1px at 10% 20%, #fff, transparent), radial-gradient(1px 1px at 30% 60%, #ffd, transparent), radial-gradient(1.5px 1.5px at 60% 10%, #fff, transparent), radial-gradient(1px 1px at 80% 40%, #ffd, transparent), radial-gradient(1px 1px at 20% 80%, #fff, transparent), radial-gradient(1.5px 1.5px at 50% 50%, #ffd, transparent), radial-gradient(1px 1px at 90% 70%, #fff, transparent); animation: si2-twinkle 4s ease-in-out infinite alternate; }
.scn-gipsy-reveal .hills { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: si2-hills 20s ease-in-out infinite alternate; }
.scn-gipsy-reveal .campfire { position:absolute; bottom:35%; left:45%; width:50px; height:40px; background: radial-gradient(circle, #f0a040 0%, #c06020 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(240,160,64,.4); animation: si2-fire 3s ease-in-out infinite; }
.scn-gipsy-reveal .figure { position:absolute; bottom:32%; left:42%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: si2-walk 6s ease-in-out infinite; }
.scn-gipsy-reveal .glow { position:absolute; bottom:40%; left:45%; width:30px; height:30px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,208,128,.3); animation: si2-glow 4s ease-in-out infinite alternate; }
.scn-gipsy-reveal .motes { position:absolute; bottom:33%; left:40%; width:100px; height:100px; background: radial-gradient(circle, rgba(255,200,100,.2) 0%, transparent 80%); border-radius: 50%; filter: blur(8px); animation: si2-motes 10s ease-in-out infinite; }

@keyframes si2-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes si2-twinkle { 0% { opacity:.5 } 100% { opacity:1 } }
@keyframes si2-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes si2-fire { 0%,100% { transform: scale(1) } 50% { transform: scale(1.15) translateY(-2px); box-shadow: 0 0 60px 30px rgba(240,160,64,.6); } }
@keyframes si2-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(1deg) } 50% { transform: translateX(16px) rotate(-2deg) } 75% { transform: translateX(24px) rotate(1deg) } 100% { transform: translateX(30px) rotate(0) } }
@keyframes si2-glow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.7; transform: scale(.9) } }
@keyframes si2-motes { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-10px) scale(1.2) } 100% { transform: translateY(5px) scale(.9) } }

.scn-occult-curiosity {
  background: 
    linear-gradient(180deg, #1a1020 0%, #2a1a2a 40%, #1a1a30 100%),
    radial-gradient(ellipse at 50% 100%, #3a2040 0%, transparent 70%);
}
.scn-occult-curiosity .cave-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a1a1a 0%, #1a1020 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.6); }
.scn-occult-curiosity .table { position:absolute; bottom:20%; left:30%; right:30%; height:10%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 10%; box-shadow: 0 4px 10px rgba(0,0,0,.7); animation: si3-table 8s ease-in-out infinite alternate; }
.scn-occult-curiosity .candle-flame { position:absolute; bottom:35%; left:48%; width:12px; height:24px; background: radial-gradient(circle, #ffc060 0%, #ff8030 40%, transparent 70%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 30px 10px rgba(255,192,96,.5); animation: si3-flame 2s ease-in-out infinite; }
.scn-occult-curiosity .sorceress { position:absolute; bottom:20%; left:42%; width:35px; height:90px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 60%, #0a0010 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: si3-sway 5s ease-in-out infinite; }
.scn-occult-curiosity .smoke { position:absolute; bottom:42%; left:50%; width:80px; height:60px; background: radial-gradient(ellipse, rgba(100,80,60,.3) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: si3-smoke 12s linear infinite; }
.scn-occult-curiosity .orb { position:absolute; bottom:30%; left:55%; width:40px; height:40px; background: radial-gradient(circle, #80c0ff 0%, #4080c0 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(64,128,192,.5), inset 0 0 10px #fff; animation: si3-orb 6s ease-in-out infinite alternate; }
.scn-occult-curiosity .crystal { position:absolute; bottom:24%; left:56%; width:8px; height:18px; background: linear-gradient(180deg, #d0e0ff 0%, #80a0d0 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 5px rgba(128,160,208,.4); animation: si3-crystal 4s ease-in-out infinite; }

@keyframes si3-table { 0% { transform: perspective(200px) rotateX(2deg) } 50% { transform: perspective(200px) rotateX(0deg) } 100% { transform: perspective(200px) rotateX(-2deg) } }
@keyframes si3-flame { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.3) scaleX(.9) } }
@keyframes si3-sway { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes si3-smoke { 0% { transform: translateY(0) scale(1); opacity:.5 } 50% { transform: translateY(-30px) scale(1.5); opacity:.2 } 100% { transform: translateY(-60px) scale(2); opacity:0 } }
@keyframes si3-orb { 0% { transform: scale(1); box-shadow: 0 0 40px 20px rgba(64,128,192,.5) } 50% { transform: scale(1.2); box-shadow: 0 0 60px 30px rgba(64,128,192,.7) } 100% { transform: scale(.9); box-shadow: 0 0 30px 15px rgba(64,128,192,.4) } }
@keyframes si3-crystal { 0%,100% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-3px) rotate(5deg) } }

.scn-neveria-walk {
  background: 
    linear-gradient(180deg, #1a1420 0%, #2a1a2a 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a1a 0%, transparent 70%);
}
.scn-neveria-walk .shop-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 20% 20% / 0 0 40% 40%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); }
.scn-neveria-walk .window { position:absolute; top:15%; left:30%; right:30%; height:30%; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%); border: 4px solid #5a4a3a; border-radius: 8% 8% 2% 2%; box-shadow: inset 0 0 30px rgba(100,150,200,.2); animation: si4-window 10s ease-in-out infinite alternate; }
.scn-neveria-walk .table { position:absolute; bottom:20%; left:32%; right:32%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: si4-table 6s ease-in-out infinite alternate; }
.scn-neveria-walk .glass-globe { position:absolute; bottom:30%; left:48%; width:45px; height:45px; background: radial-gradient(circle, rgba(255,255,255,.2) 0%, rgba(255,200,100,.1) 40%, transparent 70%); border-radius: 50%; border: 1px solid rgba(200,180,160,.3); box-shadow: 0 0 30px 10px rgba(255,200,100,.2); animation: si4-globe 8s ease-in-out infinite; }
.scn-neveria-walk .taper { position:absolute; bottom:36%; left:49%; width:6px; height:20px; background: linear-gradient(180deg, #ffc060 0%, #ff8030 40%, #8a5a2a 100%); border-radius: 30% 30% 0 0; box-shadow: 0 0 20px 5px rgba(255,192,96,.6); animation: si4-taper 3s ease-in-out infinite; }
.scn-neveria-walk .figure-left { position:absolute; bottom:20%; left:28%; width:30px; height:75px; background: linear-gradient(180deg, #1a1420 0%, #2a1a2a 50%, #0a0a10 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: si4-left 5s ease-in-out infinite; }
.scn-neveria-walk .figure-right { position:absolute; bottom:20%; right:28%; width:30px; height:70px; background: linear-gradient(180deg, #1a1050 0%, #2a1a2a 50%, #0a0a10 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: si4-right 5s ease-in-out infinite alternate; }
.scn-neveria-walk .shadows { position:absolute; bottom:15%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); filter: blur(8px); animation: si4-shadows 12s ease-in-out infinite; }

@keyframes si4-window { 0% { opacity:.6; box-shadow: inset 0 0 30px rgba(100,150,200,.2) } 50% { opacity:1; box-shadow: inset 0 0 50px rgba(100,150,200,.4) } 100% { opacity:.8; box-shadow: inset 0 0 30px rgba(100,150,200,.2) } }
@keyframes si4-table { 0% { transform: perspective(300px) rotateX(2deg) } 50% { transform: perspective(300px) rotateX(0) } 100% { transform: perspective(300px) rotateX(-2deg) } }
@keyframes si4-globe { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) } }
@keyframes si4-taper { 0%,100% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.2) scaleX(.9) } }
@keyframes si4-left { 0% { transform: rotate(-3deg) } 25% { transform: rotate(0) translateX(3px) } 50% { transform: rotate(3deg) } 75% { transform: rotate(0) translateX(-3px) } 100% { transform: rotate(-3deg) } }
@keyframes si4-right { 0% { transform: rotate(3deg) } 25% { transform: rotate(0) translateX(-3px) } 50% { transform: rotate(-3deg) } 75% { transform: rotate(0) translateX(3px) } 100% { transform: rotate(3deg) } }
@keyframes si4-shadows { 0%,100% { opacity:.5 } 50% { opacity:.8 } }

.scn-beauty-survey {
  background: 
    linear-gradient(180deg, #1a1010 0%, #2a1818 40%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 100%, #3a2020 0%, transparent 70%);
}
.scn-beauty-survey .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a1818 0%, #1a0a0a 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; box-shadow: inset 0 -15px 25px rgba(0,0,0,.5); }
.scn-beauty-survey .drapery { position:absolute; top:0; left:15%; right:15%; height:45%; background: linear-gradient(180deg, #4a2828 0%, #2a1818 100%); border-radius: 0 0 30% 30% / 0 0 40% 40%; box-shadow: 0 4px 15px rgba(0,0,0,.4); animation: si5-drape 12s ease-in-out infinite alternate; }
.scn-beauty-survey .chair { position:absolute; bottom:20%; left:35%; right:35%; height:20%; background: linear-gradient(180deg, #3a2020 0%, #1a0a0a 100%); border-radius: 40% 40% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.6); animation: si5-chair 8s ease-in-out infinite alternate; }
.scn-beauty-survey .figure { position:absolute; bottom:25%; left:42%; width:35px; height:85px; background: linear-gradient(180deg, #2a1010 0%, #3a1818 40%, #1a0505 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: si5-figure 7s ease-in-out infinite; }
.scn-beauty-survey .lamp { position:absolute; bottom:40%; left:30%; width:20px; height:30px; background: radial-gradient(circle, #ffc080 0%, #b06030 50%, transparent 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 50px 20px rgba(255,192,128,.4); animation: si5-lamp 4s ease-in-out infinite alternate; }
.scn-beauty-survey .bloom { position:absolute; bottom:35%; left:38%; width:15px; height:15px; background: radial-gradient(circle, #ffd0a0 0%, #ffa060 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 5px rgba(255,160,96,.5); animation: si5-bloom 6s ease-in-out infinite; }
.scn-beauty-survey .fan { position:absolute; bottom:28%; right:35%; width:40px; height:20px; background: linear-gradient(180deg, #b87878 0%, #8a5858 100%); border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%; transform-origin: left center; animation: si5-fan 3s ease-in-out infinite alternate; }

@keyframes si5-drape { 0% { transform: perspective(300px) rotateX(3deg) } 50% { transform: perspective(300px) rotateX(0) } 100% { transform: perspective(300px) rotateX(-3deg) } }
@keyframes si5-chair { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(.98) } }
@keyframes si5-figure { 0%,100% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } }
@keyframes si5-lamp { 0% { opacity:.7; box-shadow: 0 0 50px 20px rgba(255,192,128,.4) } 50% { opacity:1; box-shadow: 0 0 70px 30px rgba(255,192,128,.6) } 100% { opacity:.8; box-shadow: 0 0 50px 20px rgba(255,192,128,.4) } }
@keyframes si5-bloom { 0%,100% { transform: scale(1) rotate(0) } 50% { transform: scale(1.2) rotate(10deg) } }
@keyframes si5-fan { 0% { transform: rotate(-15deg) } 100% { transform: rotate(15deg) } }

.scn-munda-doubt {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1e0e 40%, #1a1208 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}

.scn-munda-doubt .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1e0e 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
}

.scn-munda-doubt .window {
  position: absolute; top: 12%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #1a1a30 0%, #0e0e20 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 8px rgba(200,180,120,0.3);
  animation: md-window 12s ease-in-out infinite alternate;
}

.scn-munda-doubt .desk {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  transform: perspective(300px) rotateX(5deg);
}

.scn-munda-doubt .candle {
  position: absolute; bottom: 28%; left: 48%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a070 100%);
  border-radius: 3px 3px 1px 1px;
  box-shadow: 0 0 20px 6px rgba(200,160,80,0.6);
  animation: md-candle 3s ease-in-out infinite alternate;
}

.scn-munda-doubt .map {
  position: absolute; bottom: 16%; left: 30%; width: 40%; height: 18%;
  background: linear-gradient(135deg, #c8b090 0%, #a08870 50%, #8a705a 100%);
  border-radius: 2px;
  transform: perspective(400px) rotateX(10deg) rotateY(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: md-map 8s ease-in-out infinite alternate;
}

.scn-munda-doubt .chair {
  position: absolute; bottom: 10%; left: 15%; width: 18%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e0e 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  transform: scaleY(0.9);
  box-shadow: -2px 0 8px rgba(0,0,0,0.4);
}

.scn-munda-doubt .books {
  position: absolute; bottom: 16%; right: 8%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  display: flex; flex-direction: column; gap: 2px;
  /* using pseudo-elements for book spines would be nice but we avoid extra HTML; rely on background gradient alone */
}

.scn-munda-doubt .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: md-shadow 6s ease-in-out infinite alternate;
}

@keyframes md-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes md-candle { 0% { transform: scaleY(1) rotate(-2deg); box-shadow: 0 0 20px 6px rgba(200,160,80,0.6); } 50% { transform: scaleY(1.05) rotate(2deg); box-shadow: 0 0 30px 10px rgba(200,160,80,0.8); } 100% { transform: scaleY(1) rotate(-1deg); box-shadow: 0 0 18px 4px rgba(200,160,80,0.5); } }
@keyframes md-map { 0% { transform: perspective(400px) rotateX(10deg) rotateY(-5deg) translateY(0); } 50% { transform: perspective(400px) rotateX(12deg) rotateY(-3deg) translateY(-2px); } 100% { transform: perspective(400px) rotateX(8deg) rotateY(-6deg) translateY(0); } }
@keyframes md-shadow { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }

/* ========================== */

.scn-andalusia-excursion {
  background:
    linear-gradient(180deg, #b8a080 0%, #9a8060 40%, #7a6040 100%),
    radial-gradient(ellipse at 50% 80%, #c8b090 0%, transparent 60%);
}

.scn-andalusia-excursion .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 60%, transparent 100%);
  animation: ae-sky 20s ease-in-out infinite alternate;
}

.scn-andalusia-excursion .clouds {
  position: absolute; top: 10%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 20% 50%, rgba(230,220,200,0.5) 0%, transparent 40%),
              radial-gradient(ellipse at 70% 40%, rgba(240,230,210,0.4) 0%, transparent 35%);
  filter: blur(4px);
  animation: ae-clouds 30s linear infinite;
}

.scn-andalusia-excursion .hills-bg {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  transform: scale(1.05);
}

.scn-andalusia-excursion .hills-fg {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 0 0 / 80% 90% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: ae-hills-fg 15s ease-in-out infinite alternate;
}

.scn-andalusia-excursion .path {
  position: absolute; bottom: 12%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: perspective(200px) rotateX(20deg);
  box-shadow: inset 0 2px 8px rgba(0,0,0,0.4);
}

.scn-andalusia-excursion .figure {
  position: absolute; bottom: 18%; left: 42%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a1e0e 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ae-walk 6s ease-in-out infinite;
}

.scn-andalusia-excursion .tree {
  position: absolute; bottom: 22%; right: 15%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e0e 100%);
  border-radius: 40% 40% 10% 10% / 20% 20% 10% 10%;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
  animation: ae-tree 8s ease-in-out infinite alternate;
}

@keyframes ae-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ae-clouds { 0% { transform: translateX(-10vw); } 100% { transform: translateX(110vw); } }
@keyframes ae-hills-fg { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ae-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-2deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes ae-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }

/* ========================== */

.scn-tale-introduction {
  background:
    linear-gradient(180deg, #2a1e0e 0%, #1a1208 50%, #0e0a04 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 60%);
}

.scn-tale-introduction .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1208 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.7);
}

.scn-tale-introduction .lamp {
  position: absolute; top: 20%; left: 20%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 60%, #f0d080 0%, #c8a050 60%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 40px 12px rgba(200,160,80,0.5), 0 0 80px 20px rgba(200,160,80,0.2);
  animation: ti-lamp 4s ease-in-out infinite alternate;
}

.scn-tale-introduction .desk {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 22%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  transform: perspective(300px) rotateX(8deg);
  box-shadow: 0 -4px 20px rgba(0,0,0,0.6);
}

.scn-tale-introduction .book {
  position: absolute; bottom: 16%; left: 35%; width: 30%; height: 16%;
  background: linear-gradient(135deg, #b8a090 0%, #908070 100%);
  border-radius: 2px;
  transform: perspective(400px) rotateX(12deg) rotateY(-4deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: ti-book 10s ease-in-out infinite alternate;
}

.scn-tale-introduction .quill {
  position: absolute; bottom: 22%; left: 55%; width: 3px; height: 30px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  box-shadow: 0 0 6px rgba(200,180,160,0.3);
  animation: ti-quill 6s ease-in-out infinite alternate;
}

.scn-tale-introduction .figure {
  position: absolute; bottom: 10%; right: 15%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1208 0%, #0e0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: ti-figure 8s ease-in-out infinite alternate;
}

.scn-tale-introduction .page-glow {
  position: absolute; bottom: 16%; left: 38%; width: 20%; height: 10%;
  background: radial-gradient(ellipse, rgba(240,220,180,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: ti-glow 5s ease-in-out infinite alternate;
}

@keyframes ti-lamp { 0% { transform: scaleY(1) rotate(-3deg); box-shadow: 0 0 40px 12px rgba(200,160,80,0.4), 0 0 80px 20px rgba(200,160,80,0.15); } 50% { transform: scaleY(1.05) rotate(3deg); box-shadow: 0 0 50px 16px rgba(200,160,80,0.6), 0 0 100px 25px rgba(200,160,80,0.25); } 100% { transform: scaleY(1) rotate(-2deg); box-shadow: 0 0 35px 10px rgba(200,160,80,0.35), 0 0 70px 15px rgba(200,160,80,0.1); } }
@keyframes ti-book { 0% { transform: perspective(400px) rotateX(12deg) rotateY(-4deg) translateY(0); } 50% { transform: perspective(400px) rotateX(14deg) rotateY(-2deg) translateY(-2px); } 100% { transform: perspective(400px) rotateX(10deg) rotateY(-6deg) translateY(0); } }
@keyframes ti-quill { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-3px); } 100% { transform: rotate(-22deg) translateY(0); } }
@keyframes ti-figure { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes ti-glow { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* ========================== */

.scn-cachena-plain {
  background:
    linear-gradient(180deg, #f0d090 0%, #d0a060 40%, #b08040 100%),
    radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, transparent 70%);
}

.scn-cachena-plain .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0d8b0 0%, #e0c8a0 60%, transparent 100%);
  animation: cp-sky 15s ease-in-out infinite alternate;
}

.scn-cachena-plain .sun {
  position: absolute; top: 8%; left: 45%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff0d0 0%, #f0d090 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  box-shadow: 0 0 80px 30px rgba(240,208,144,0.6);
  animation: cp-sun 6s ease-in-out infinite alternate;
}

.scn-cachena-plain .plain {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b08040 0%, #8a5a20 50%, #604010 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
  animation: cp-plain 12s ease-in-out infinite alternate;
}

.scn-cachena-plain .figure {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #1a1208 0%, #0e0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: cp-figure 5s ease-in-out infinite;
  /* figure on horse? could add a horse shape but keep simple silhouette */
}

.scn-cachena-plain .heat-wave {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 10px, rgba(255,200,100,0.05) 10px, rgba(255,200,100,0.1) 12px);
  pointer-events: none;
  animation: cp-heat 2s linear infinite;
}

.scn-cachena-plain .cactus {
  position: absolute; bottom: 22%; left: 10%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 10% 10% / 20% 20% 10% 10%;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: cp-cactus 8s ease-in-out infinite alternate;
}

.scn-cachena-plain .dust {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,120,0.15) 0%, transparent 60%);
  filter: blur(8px);
  animation: cp-dust 4s ease-in-out infinite alternate;
}

@keyframes cp-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cp-sun { 0% { transform: scale(1); box-shadow: 0 0 80px 30px rgba(240,208,144,0.6); } 50% { transform: scale(1.1); box-shadow: 0 0 100px 40px rgba(240,208,144,0.8); } 100% { transform: scale(0.95); box-shadow: 0 0 70px 25px rgba(240,208,144,0.4); } }
@keyframes cp-plain { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes cp-figure { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(8px) translateY(-2px); } 50% { transform: translateX(16px) translateY(0); } 75% { transform: translateX(24px) translateY(-2px); } 100% { transform: translateX(32px) translateY(0); } }
@keyframes cp-heat { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes cp-cactus { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes cp-dust { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.1); } 100% { transform: translateY(0) scaleX(1); } }

.scn-item-file-in-bread {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e16 40%, #3a2a1e 100%),
    radial-gradient(ellipse at 60% 80%, #4a3020 0%, transparent 70%);
}
.scn-item-file-in-bread .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0a0806, #1a1410);
}
.scn-item-file-in-bread .table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 2% 2% 0 0 / 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-item-file-in-bread .bread {
  position: absolute; bottom: 40%; left: 35%; width: 18%; height: 18%;
  background: radial-gradient(ellipse at 40% 40%, #b08050, #6a4020 70%);
  border-radius: 50% 40% 45% 50% / 55% 45% 50% 45%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: sif-bread 6s ease-in-out infinite;
}
.scn-item-file-in-bread .knife {
  position: absolute; bottom: 38%; left: 55%; width: 30%; height: 4%;
  background: linear-gradient(90deg, #706050 0%, #b0a090 30%, #d0c0b0 50%, #b0a090 70%, #706050 100%);
  border-radius: 0 40% 40% 0 / 0 60% 60% 0;
  transform-origin: 10% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: sif-knife 8s ease-in-out infinite alternate;
}
.scn-item-file-in-bread .file {
  position: absolute; bottom: 42%; left: 20%; width: 12%; height: 2%;
  background: linear-gradient(90deg, #808080 0%, #c0c0c0 40%, #a0a0a0 60%, #808080 100%);
  border-radius: 20% / 50%;
  box-shadow: 0 0 8px 2px rgba(192,192,192,.3);
  transform: rotate(-15deg);
  animation: sif-file 4s ease-in-out infinite;
}
.scn-item-file-in-bread .coin {
  position: absolute; bottom: 36%; left: 25%; width: 6%; height: 6%;
  background: radial-gradient(circle at 45% 45%, #ffd080, #b09050 60%, #806030);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,160,80,.5);
  animation: sif-coin 3s ease-in-out infinite alternate;
}
.scn-item-file-in-bread .shadow {
  position: absolute; bottom: 38%; left: 30%; width: 40%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%);
  filter: blur(4px);
  animation: sif-shadow 6s ease-in-out infinite;
}
.scn-item-file-in-bread .candle {
  position: absolute; bottom: 50%; left: 5%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #ffe0a0 0%, #f0c080 30%, #c08040 70%, #604020 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(255,200,100,.4);
  animation: sif-candle 5s ease-in-out infinite;
}
@keyframes sif-bread { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes sif-knife { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes sif-file { 0% { opacity: .6; transform: rotate(-15deg) translateX(0); } 50% { opacity: 1; transform: rotate(-12deg) translateX(2px); } 100% { opacity: .6; transform: rotate(-15deg) translateX(0); } }
@keyframes sif-coin { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 12px 4px rgba(200,160,80,.5); } 50% { transform: scale(1.1) rotate(10deg); box-shadow: 0 0 20px 8px rgba(200,160,80,.7); } 100% { transform: scale(1) rotate(0deg); box-shadow: 0 0 12px 4px rgba(200,160,80,.5); } }
@keyframes sif-shadow { 0% { transform: scaleX(1) scaleY(1); opacity: .5; } 50% { transform: scaleX(1.1) scaleY(.9); opacity: .7; } 100% { transform: scaleX(1) scaleY(1); opacity: .5; } }
@keyframes sif-candle { 0% { transform: translateY(0) scaleY(1); opacity: .8; } 50% { transform: translateY(-3px) scaleY(1.05); opacity: 1; } 100% { transform: translateY(0) scaleY(1); opacity: .8; } }

.scn-humiliation-on-sentry {
  background: linear-gradient(180deg, #4a8ab5 0%, #7ab5d0 30%, #d0e8f0 60%, #f0f8ff 100%),
    radial-gradient(ellipse at 80% 20%, #ffe080 0%, transparent 60%);
}
.scn-humiliation-on-sentry .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #3a7aa0, #b0d8e8);
  animation: shs-sky 20s ease-in-out infinite alternate;
}
.scn-humiliation-on-sentry .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #d4c8b0 0%, #b0a080 100%);
  border-radius: 0 0 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.3);
}
.scn-humiliation-on-sentry .sentry-box {
  position: absolute; bottom: 25%; left: 35%; width: 6%; height: 35%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
  animation: shs-box 12s ease-in-out infinite;
}
.scn-humiliation-on-sentry .figure {
  position: absolute; bottom: 28%; left: 42%; width: 8%; height: 32%;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: shs-figure 8s ease-in-out infinite;
}
.scn-humiliation-on-sentry .shadow {
  position: absolute; bottom: 23%; left: 38%; width: 18%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: shs-shadow 10s linear infinite;
}
.scn-humiliation-on-sentry .sun {
  position: absolute; top: 10%; right: 15%; width: 10%; height: 10%;
  background: radial-gradient(circle, #ffe080 0%, #ffd060 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255, 224, 128, .3);
  animation: shs-sun 15s ease-in-out infinite alternate;
}
.scn-humiliation-on-sentry .glare {
  position: absolute; top: 0; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(135deg, rgba(255,255,255,.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: shs-glare 5s ease-in-out infinite alternate;
}
@keyframes shs-sky { 0% { background: linear-gradient(180deg, #3a7aa0, #b0d8e8); } 100% { background: linear-gradient(180deg, #2a6a90, #90c8d8); } }
@keyframes shs-box { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes shs-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes shs-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(1); } }
@keyframes shs-sun { 0% { transform: scale(1); opacity: .9; } 100% { transform: scale(1.1); opacity: 1; } }
@keyframes shs-glare { 0% { opacity: .3; transform: translateX(-10px); } 100% { opacity: .6; transform: translateX(10px); } }

.scn-colonel-house {
  background: linear-gradient(180deg, #9ac0d8 0%, #c0dce8 40%, #e8f0f4 100%),
    radial-gradient(ellipse at 60% 30%, #ffe890 0%, transparent 50%);
}
.scn-colonel-house .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #7ab0c8, #c8e0ec);
  animation: sch-sky 25s ease-in-out infinite alternate;
}
.scn-colonel-house .house {
  position: absolute; bottom: 25%; left: 15%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a08870 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 12px 24px rgba(0,0,0,.3);
}
.scn-colonel-house .door {
  position: absolute; bottom: 25%; left: 42%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  animation: sch-door 4s ease-in-out infinite alternate;
}
.scn-colonel-house .window {
  position: absolute; bottom: 50%; left: 20%; width: 6%; height: 8%;
  background: radial-gradient(circle, #d0e8f0, #8ab0c0);
  border-radius: 10%;
  box-shadow: 0 0 12px 4px rgba(138,176,192,.5);
  animation: sch-window 6s ease-in-out infinite;
}
.scn-colonel-house .carriage {
  position: absolute; bottom: 30%; right: 10%; width: 25%; height: 20%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
  animation: sch-carriage 8s ease-in-out infinite;
}
.scn-colonel-house .girl {
  position: absolute; bottom: 28%; right: 20%; width: 5%; height: 22%;
  background: linear-gradient(180deg, #c87040 0%, #a05030 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sch-girl 6s ease-in-out infinite;
}
.scn-colonel-house .shadow {
  position: absolute; bottom: 24%; left: 10%; right: 5%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: sch-shadow 10s ease-in-out infinite;
}
.scn-colonel-house .crowd {
  position: absolute; bottom: 22%; left: 40%; width: 20%; height: 10%;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 4px, transparent 4px, transparent 8px);
  filter: blur(2px);
  animation: sch-crowd 20s linear infinite;
}
@keyframes sch-sky { 0% { background: linear-gradient(180deg, #7ab0c8, #c8e0ec); } 100% { background: linear-gradient(180deg, #6aa0b8, #b8d8e8); } }
@keyframes sch-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes sch-window { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes sch-carriage { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sch-girl { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sch-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes sch-crowd { 0% { transform: translateX(0); } 100% { transform: translateX(-10px); } }

.scn-carmen-at-colonels {
  background: linear-gradient(180deg, #3a2a1e 0%, #5a4a3a 40%, #7a6a5a 100%),
    radial-gradient(ellipse at 50% 60%, #8a7a6a 0%, transparent 80%);
}
.scn-carmen-at-colonels .floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0 / 8% 8% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-carmen-at-colonels .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 45%;
  background: linear-gradient(135deg, #5a4a3a 0%, #7a6a5a 50%, #6a5a4a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.3);
}
.scn-carmen-at-colonels .guitarist {
  position: absolute; bottom: 35%; left: 15%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: scc-guitarist 7s ease-in-out infinite;
}
.scn-carmen-at-colonels .dancer {
  position: absolute; bottom: 30%; left: 40%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #c8553d 0%, #a04030 40%, #702020 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scc-dancer 3s ease-in-out infinite;
}
.scn-carmen-at-colonels .old-woman {
  position: absolute; bottom: 30%; right: 18%; width: 7%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: scc-old-woman 9s ease-in-out infinite;
}
.scn-carmen-at-colonels .spotlight {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,200,100,.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: scc-spotlight 5s ease-in-out infinite alternate;
}
.scn-carmen-at-colonels .shadow-dance {
  position: absolute; bottom: 30%; left: 38%; width: 20%; height: 12%;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: scc-shadow 3s ease-in-out infinite;
}
@keyframes scc-guitarist { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes scc-dancer { 0% { transform: translateY(0) rotate(0deg) scale(1); } 25% { transform: translateY(-10px) rotate(15deg) scale(1.05); } 50% { transform: translateY(0) rotate(0deg) scale(1); } 75% { transform: translateY(-10px) rotate(-15deg) scale(1.05); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes scc-old-woman { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes scc-spotlight { 0% { opacity: .5; transform: scaleY(.9); } 100% { opacity: .8; transform: scaleY(1.1); } }
@keyframes scc-shadow { 0% { transform: scaleX(1); opacity: .4; } 50% { transform: scaleX(1.2); opacity: .6; } 100% { transform: scaleX(1); opacity: .4; } }

.scn-carmen-warning {
  background: linear-gradient(180deg, #2a1e1a 0%, #3a2a24 50%, #4d3630 100%),
              radial-gradient(ellipse at 60% 40%, rgba(180,200,255,0.25) 0%, transparent 60%);
}
.scn-carmen-warning .room-wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a1e1a 0%, #3a2a24 80%); }
.scn-carmen-warning .window-frame { position:absolute; top:15%; left:60%; width:120px; height:150px; background: #1a1412; border:6px solid #2a1e1a; border-radius:4px; box-shadow:inset 0 0 0 2px #4d3630; animation:cw-frame 6s ease-in-out infinite; }
.scn-carmen-warning .window-glass { position:absolute; top:16%; left:61%; width:108px; height:138px; background: linear-gradient(135deg, rgba(180,200,255,0.3) 0%, rgba(200,220,255,0.1) 60%); border-radius:2px; animation:cw-glass 4s ease-in-out infinite alternate; }
.scn-carmen-warning .light-shaft { position:absolute; top:18%; left:62%; width:100px; height:70%; background: linear-gradient(180deg, rgba(180,200,255,0.2) 0%, rgba(180,200,255,0) 100%); clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); animation:cw-shaft 7s ease-in-out infinite; }
.scn-carmen-warning .figure-cw { position:absolute; bottom:22%; left:52%; width:40px; height:80px; background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation:cw-figure 5s ease-in-out infinite alternate; }
.scn-carmen-warning .chair-cw { position:absolute; bottom:18%; left:48%; width:30px; height:40px; background:#2a1e1a; border-radius:10% 10% 20% 20%; transform:rotate(5deg); animation:cw-chair 8s ease-in-out infinite; }
.scn-carmen-warning .floor-cw { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1412 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,0.5); }
@keyframes cw-frame { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.01) } }
@keyframes cw-glass { 0% { opacity:0.15; filter:blur(0px) } 50% { opacity:0.25; filter:blur(1px) } 100% { opacity:0.1; filter:blur(0px) } }
@keyframes cw-shaft { 0% { transform:translateX(0) scaleY(1); opacity:0.15 } 50% { transform:translateX(4px) scaleY(0.98); opacity:0.25 } 100% { transform:translateX(-2px) scaleY(1); opacity:0.12 } }
@keyframes cw-figure { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-3px) rotate(1deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes cw-chair { 0%,100% { transform:rotate(5deg) translateY(0) } 50% { transform:rotate(3deg) translateY(1px) } }

.scn-seeking-carmen {
  background: linear-gradient(180deg, #8bb8e0 0%, #f0d080 40%, #c09040 70%, #7a5a2a 100%),
              radial-gradient(ellipse at 70% 20%, #ffe090 0%, transparent 50%);
}
.scn-seeking-carmen .sky-sc { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #a0c8e8 0%, #f0d080 100%); }
.scn-seeking-carmen .sun-sc { position:absolute; top:8%; right:25%; width:60px; height:60px; background: radial-gradient(circle, #fff4c0 0%, #ffe080 60%, transparent 100%); border-radius:50%; box-shadow:0 0 80px 30px #ffe080; animation:sc-sun 12s ease-in-out infinite alternate; }
.scn-seeking-carmen .building-left { position:absolute; bottom:30%; left:5%; width:35%; height:70%; background: linear-gradient(90deg, #c09040 0%, #a07830 100%); border-radius:4% 4% 0 0; box-shadow:inset -8px 0 12px rgba(0,0,0,0.3); }
.scn-seeking-carmen .building-right { position:absolute; bottom:30%; right:5%; width:30%; height:55%; background: linear-gradient(90deg, #b08838 0%, #906828 100%); border-radius:4% 4% 0 0; box-shadow:inset 8px 0 12px rgba(0,0,0,0.3); }
.scn-seeking-carmen .alley { position:absolute; bottom:30%; left:35%; width:30%; height:30%; background: linear-gradient(180deg, #7a5a2a 0%, #5a3a1a 100%); clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%); }
.scn-seeking-carmen .figure-sc { position:absolute; bottom:28%; left:40%; width:14px; height:36px; background:#1a120a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:sc-walk 5s ease-in-out infinite; }
.scn-seeking-carmen .shadow-sc { position:absolute; bottom:28%; left:39%; width:20px; height:6px; background:rgba(0,0,0,0.4); border-radius:50%; filter:blur(2px); animation:sc-shadow 5s ease-in-out infinite; }
.scn-seeking-carmen .dust-sc { position:absolute; bottom:40%; left:45%; width:20px; height:20px; background:radial-gradient(circle, rgba(200,150,80,0.3) 0%, transparent 100%); filter:blur(4px); animation:sc-dust 7s ease-in-out infinite; }
@keyframes sc-sun { 0% { transform:scale(1); opacity:0.8 } 50% { transform:scale(1.1); opacity:1 } 100% { transform:scale(0.95); opacity:0.7 } }
@keyframes sc-walk { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 25% { transform:translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform:translateX(16px) translateY(0) rotate(-1deg) } 75% { transform:translateX(24px) translateY(-1px) rotate(0deg) } 100% { transform:translateX(32px) translateY(0) rotate(1deg) } }
@keyframes sc-shadow { 0% { transform:translateX(0) scaleX(1); opacity:0.3 } 50% { transform:translateX(16px) scaleX(1.2); opacity:0.5 } 100% { transform:translateX(32px) scaleX(0.9); opacity:0.2 } }
@keyframes sc-dust { 0% { transform:translate(0,0) scale(1); opacity:0 } 30% { opacity:0.6 } 100% { transform:translate(-10px,-20px) scale(2); opacity:0 } }

.scn-smugglers-gate {
  background: linear-gradient(180deg, #8cb8d8 0%, #f4d89a 40%, #c8a060 70%, #8a6838 100%),
              radial-gradient(ellipse at 60% 25%, #fff0b0 0%, transparent 60%);
}
.scn-smugglers-gate .sky-sg { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #a0c8e8 0%, #f4d89a 100%); }
.scn-smugglers-gate .gate-arch { position:absolute; bottom:30%; left:35%; width:30%; height:55%; background: radial-gradient(ellipse at 50% 100%, #8a6838 0%, #6a4828 100%); border-radius:50% 50% 10% 10% / 80% 80% 20% 20%; box-shadow:inset 0 20px 30px rgba(0,0,0,0.4); animation:sg-gate 10s ease-in-out infinite alternate; }
.scn-smugglers-gate .wall-left { position:absolute; bottom:30%; left:0; width:35%; height:70%; background: linear-gradient(180deg, #c8a060 0%, #a07838 100%); box-shadow:inset -10px 0 20px rgba(0,0,0,0.3); }
.scn-smugglers-gate .wall-right { position:absolute; bottom:30%; right:0; width:35%; height:70%; background: linear-gradient(180deg, #c8a060 0%, #a07838 100%); box-shadow:inset 10px 0 20px rgba(0,0,0,0.3); }
.scn-smugglers-gate .ground-sg { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a6838 0%, #5a4020 100%); }
.scn-smugglers-gate .guard-sg { position:absolute; bottom:28%; left:48%; width:16px; height:40px; background:#3a2a1a; border-radius:30% 30% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom center; animation:sg-guard 4s ease-in-out infinite; }
.scn-smugglers-gate .pastia-sg { position:absolute; bottom:28%; left:52%; width:14px; height:34px; background:#4a3a2a; border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation:sg-pastia 5s ease-in-out infinite; }
.scn-smugglers-gate .sunbeam-sg { position:absolute; top:10%; left:45%; width:8%; height:70%; background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, rgba(255,240,200,0) 100%); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation:sg-beam 8s ease-in-out infinite alternate; }
.scn-smugglers-gate .mote-sg { position:absolute; top:20%; left:50%; width:8px; height:8px; background:radial-gradient(circle, #fff4c0 0%, transparent 100%); border-radius:50%; animation:sg-mote 12s linear infinite; }
@keyframes sg-gate { 0% { transform:scaleY(1) } 50% { transform:scaleY(0.98) } 100% { transform:scaleY(1.01) } }
@keyframes sg-guard { 0%,100% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(4px) rotate(2deg) } }
@keyframes sg-pastia { 0% { transform:translateX(0) translateY(0) } 25% { transform:translateX(10px) translateY(-2px) } 50% { transform:translateX(20px) translateY(0) } 75% { transform:translateX(30px) translateY(-1px) } 100% { transform:translateX(40px) translateY(0) } }
@keyframes sg-beam { 0% { opacity:0.3; transform:skewX(0deg) } 50% { opacity:0.6; transform:skewX(-5deg) } 100% { opacity:0.2; transform:skewX(5deg) } }
@keyframes sg-mote { 0% { transform:translate(0,0) scale(0.5); opacity:0 } 20% { opacity:0.8 } 80% { opacity:0.4 } 100% { transform:translate(30px,-40px) scale(1.5); opacity:0 } }

.scn-carmen-rejection {
  background: linear-gradient(180deg, #0a0a12 0%, #14141f 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 30%, rgba(100,120,180,0.15) 0%, transparent 70%);
}
.scn-carmen-rejection .room-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a12 0%, #14141f 80%); }
.scn-carmen-rejection .window-cr { position:absolute; top:20%; left:65%; width:90px; height:120px; background:#1a1a2a; border:4px solid #2a2a3a; border-radius:2px; box-shadow:inset 0 0 0 2px #3a3a4a; animation:cr-window 7s ease-in-out infinite; }
.scn-carmen-rejection .moon-cr { position:absolute; top:18%; left:68%; width:40px; height:40px; background: radial-gradient(circle, #d0d8f0 0%, #b0b8d0 80%, transparent 100%); border-radius:50%; box-shadow:0 0 60px 20px rgba(180,200,255,0.2); animation:cr-moon 9s ease-in-out infinite alternate; }
.scn-carmen-rejection .moonlight { position:absolute; top:22%; left:66%; width:70px; height:65%; background: linear-gradient(180deg, rgba(180,200,255,0.1) 0%, rgba(180,200,255,0) 100%); clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%); animation:cr-light 6s ease-in-out infinite; }
.scn-carmen-rejection .carmen-fig { position:absolute; bottom:22%; left:60%; width:34px; height:70px; background:#0a0a12; border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation:cr-carmen 5s ease-in-out infinite alternate; }
.scn-carmen-rejection .narrator-fig { position:absolute; bottom:22%; left:50%; width:30px; height:60px; background:#14141f; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation:cr-narrator 6s ease-in-out infinite; }
.scn-carmen-rejection .floor-cr { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #14141f 0%, #0a0a12 100%); box-shadow:inset 0 8px 12px rgba(0,0,0,0.6); }
.scn-carmen-rejection .curtain-cr { position:absolute; top:20%; left:63%; width:20px; height:130px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%); border-radius:4px; animation:cr-curtain 8s ease-in-out infinite alternate; }
@keyframes cr-window { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(0.98) } }
@keyframes cr-moon { 0% { transform:scale(0.95); opacity:0.6 } 50% { transform:scale(1.05); opacity:0.8 } 100% { transform:scale(1); opacity:0.7 } }
@keyframes cr-light { 0% { opacity:0.1; transform:translateX(0) } 50% { opacity:0.3; transform:translateX(3px) } 100% { opacity:0.15; transform:translateX(-2px) } }
@keyframes cr-carmen { 0% { transform:translateY(0) rotate(-1deg) } 50% { transform:translateY(-4px) rotate(2deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes cr-narrator { 0%,100% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(2px) scaleY(0.95) } }
@keyframes cr-curtain { 0% { transform:scaleX(1) translateX(0) } 50% { transform:scaleX(0.9) translateX(-2px) } 100% { transform:scaleX(1.05) translateX(1px) } }

/* === church-tears === */
.scn-church-tears {
  background: linear-gradient(180deg, #1e1620 0%, #2a1f2a 40%, #3a2535 100%),
              radial-gradient(ellipse at 50% 30%, #4a3040 0%, transparent 80%);
}
.scn-church-tears .ct-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1f2a 0%, transparent 60%);
  animation: ct-bg 12s ease-in-out infinite alternate;
}
.scn-church-tears .ct-pillar-left {
  position: absolute; left: 12%; bottom: 0; width: 8%; height: 76%;
  background: linear-gradient(90deg, #3a2a30 0%, #4a3a40 50%, #2a1a20 100%);
  border-radius: 4px;
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.6);
  animation: ct-pillar 20s ease-in-out infinite alternate;
}
.scn-church-tears .ct-pillar-right {
  position: absolute; right: 12%; bottom: 0; width: 8%; height: 76%;
  background: linear-gradient(90deg, #2a1a20 0%, #4a3a40 50%, #3a2a30 100%);
  border-radius: 4px;
  box-shadow: inset 4px 0 10px rgba(0,0,0,0.6);
  animation: ct-pillar 20s ease-in-out infinite alternate-reverse;
}
.scn-church-tears .ct-altar {
  position: absolute; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 30%; height: 12%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.7);
}
.scn-church-tears .ct-stained-glass {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(circle at 50% 50%, #6a4a5a 0%, #3a2030 60%, transparent 100%),
              linear-gradient(135deg, rgba(180,120,140,0.2) 25%, transparent 25%);
  border-radius: 16px;
  box-shadow: inset 0 0 30px rgba(100,60,80,0.3);
  animation: ct-glass 6s ease-in-out infinite alternate;
}
.scn-church-tears .ct-figure-protagonist {
  position: absolute; bottom: 14%; left: 38%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1218 0%, #0a080a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ct-kneel 4s ease-in-out infinite;
}
.scn-church-tears .ct-figure-carmen {
  position: absolute; bottom: 20%; left: 55%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 2px rgba(200,100,50,0.2);
  animation: ct-carmen-enter 8s ease-in-out infinite;
}
.scn-church-tears .ct-tear {
  position: absolute; bottom: 32%; left: 41%; width: 4px; height: 8px;
  background: radial-gradient(circle, rgba(200,180,220,0.7) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ct-tear-fall 3s ease-in-out infinite;
}
.scn-church-tears .ct-candle {
  position: absolute; bottom: 15%; left: 65%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #b08040 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 18px 6px rgba(255,180,80,0.5), 0 0 36px 12px rgba(255,180,80,0.2);
  animation: ct-candle 2s ease-in-out infinite alternate;
}
@keyframes ct-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ct-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes ct-glass { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes ct-kneel { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(2deg); } }
@keyframes ct-carmen-enter { 0% { opacity: 0; transform: translateX(20px) scale(0.9); } 20%,80% { opacity: 1; transform: translateX(0) scale(1); } 100% { opacity: 0; transform: translateX(-10px) scale(0.95); } }
@keyframes ct-tear-fall { 0% { transform: translateY(0) scale(1); opacity: 1; } 60% { transform: translateY(10px) scale(0.8); opacity: 0.7; } 100% { transform: translateY(18px) scale(0.4); opacity: 0; } }
@keyframes ct-candle { 0% { transform: scaleY(1) rotate(-1deg); } 50% { transform: scaleY(1.02) rotate(1deg); } 100% { transform: scaleY(1) rotate(0deg); } }

/* === carmen-disappears === */
.scn-carmen-disappears {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 30%, #f5deb3 60%, #d2b48c 100%),
              radial-gradient(ellipse at 80% 20%, #fff8dc 0%, transparent 60%);
}
.scn-carmen-disappears .cd-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, transparent 100%);
  animation: cd-sky 15s ease-in-out infinite alternate;
}
.scn-carmen-disappears .cd-building-left {
  position: absolute; bottom: 30%; left: 5%; width: 22%; height: 60%;
  background: linear-gradient(180deg, #d2b48c 0%, #c4a47a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset -6px 0 15px rgba(0,0,0,0.2);
  animation: cd-buildings 20s ease-in-out infinite alternate;
}
.scn-carmen-disappears .cd-building-right {
  position: absolute; bottom: 30%; right: 5%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #d2b48c 0%, #b09070 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 6px 0 15px rgba(0,0,0,0.2);
  animation: cd-buildings 20s ease-in-out infinite alternate-reverse;
}
.scn-carmen-disappears .cd-archway {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 55%;
  background: radial-gradient(ellipse at 50% 100%, #8b7355 0%, transparent 70%),
              linear-gradient(180deg, #a08060 0%, #8b7355 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
}
.scn-carmen-disappears .cd-sunrays {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(135deg, rgba(255,255,200,0.15) 0%, transparent 50%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: cd-rays 8s linear infinite alternate;
}
.scn-carmen-disappears .cd-figure-carmen {
  position: absolute; bottom: 32%; left: 35%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cd-carmen-walk 5s ease-in-out infinite;
}
.scn-carmen-disappears .cd-figure-protagonist {
  position: absolute; bottom: 30%; left: 15%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #1a1218 0%, #0a080a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-protag 4s ease-in-out infinite;
}
@keyframes cd-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cd-buildings { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cd-rays { 0% { opacity: 0.6; transform: rotate(0deg); } 50% { opacity: 1; transform: rotate(2deg); } 100% { opacity: 0.7; transform: rotate(-1deg); } }
@keyframes cd-carmen-walk { 0% { transform: translateX(0) translateY(0) scale(1); } 25% { transform: translateX(10px) translateY(-2px) scale(0.95); } 50% { transform: translateX(20px) translateY(0) scale(0.9); } 75% { transform: translateX(30px) translateY(-1px) scale(0.85); } 100% { transform: translateX(40px) translateY(0) scale(0.8); opacity: 0.5; } }
@keyframes cd-protag { 0%,100% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-2px) rotate(3deg); } 40% { transform: translateY(0) rotate(-3deg); } 60% { transform: translateY(-1px) rotate(2deg); } 80% { transform: translateY(0) rotate(-2deg); } }

/* === confrontation-lieutenant === */
.scn-confrontation-lieutenant {
  background: linear-gradient(180deg, #1a1218 0%, #2a1a22 40%, #3a2028 100%),
              radial-gradient(ellipse at 50% 60%, #4a2a30 0%, transparent 70%);
}
.scn-confrontation-lieutenant .cl-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a22 0%, transparent 50%);
  animation: cl-bg 10s ease-in-out infinite alternate;
}
.scn-confrontation-lieutenant .cl-wall-left {
  position: absolute; left: 0; top: 0; width: 25%; height: 100%;
  background: linear-gradient(90deg, #3a2a30 0%, #2a1a22 100%);
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.5);
}
.scn-confrontation-lieutenant .cl-door {
  position: absolute; bottom: 0; right: 15%; width: 18%; height: 80%;
  background: linear-gradient(180deg, #4a3028 0%, #2a1a14 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.6);
  animation: cl-door 7s ease-in-out infinite alternate;
}
.scn-confrontation-lieutenant .cl-lamp {
  position: absolute; top: 15%; left: 40%; width: 20px; height: 10px;
  background: radial-gradient(circle at 50% 0%, #ffd080 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(255,200,100,0.4);
  animation: cl-lamp-swing 5s ease-in-out infinite;
}
.scn-confrontation-lieutenant .cl-figure-lieutenant {
  position: absolute; bottom: 20%; left: 48%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cl-lieutenant 3s ease-in-out infinite;
}
.scn-confrontation-lieutenant .cl-figure-protagonist {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1218 0%, #0a080a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cl-protag 4s ease-in-out infinite;
}
.scn-confrontation-lieutenant .cl-figure-carmen {
  position: absolute; bottom: 22%; right: 25%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: cl-carmen-shadow 6s ease-in-out infinite alternate;
}
@keyframes cl-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cl-door { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes cl-lamp-swing { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes cl-lieutenant { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(-3deg); } 60% { transform: translateY(0) rotate(3deg); } }
@keyframes cl-protag { 0%,100% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-2px) rotate(2deg); } 40% { transform: translateY(0) rotate(-2deg); } 60% { transform: translateY(-1px) rotate(1deg); } 80% { transform: translateY(0) rotate(-1deg); } }
@keyframes cl-carmen-shadow { 0% { opacity: 0.5; transform: translateY(0); } 50% { opacity: 0.8; transform: translateY(-3px); } 100% { opacity: 0.6; transform: translateY(0); } }

/* === fight-lieutenant === */
.scn-fight-lieutenant {
  background: linear-gradient(180deg, #0f0a0d 0%, #1a1218 30%, #2a1a22 60%, #1a1218 100%),
              radial-gradient(ellipse at 50% 70%, #3a2028 0%, transparent 80%);
}
.scn-fight-lieutenant .fl-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1218 0%, #0f0a0d 100%);
  animation: fl-darken 8s ease-in-out infinite;
}
.scn-fight-lieutenant .fl-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: fl-floor-wave 12s ease-in-out infinite alternate;
}
.scn-fight-lieutenant .fl-table {
  position: absolute; bottom: 18%; left: 25%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #4a3028 0%, #2a1a14 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: fl-table 5s ease-in-out infinite;
}
.scn-fight-lieutenant .fl-chair {
  position: absolute; bottom: 18%; left: 20%; width: 18%; height: 30%;
  background: linear-gradient(180deg, #3a2018 0%, #1a0e0a 100%);
  border-radius: 8% 8% 4% 4%;
  transform-origin: bottom left;
  animation: fl-chair-fall 6s ease-in-out infinite;
}
.scn-fight-lieutenant .fl-figure-lieutenant {
  position: absolute; bottom: 22%; left: 40%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fl-lieutenant-fall 4s ease-in-out infinite;
}
.scn-fight-lieutenant .fl-figure-protagonist {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1218 0%, #0a080a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fl-protag-lunge 3s ease-in-out infinite;
}
.scn-fight-lieutenant .fl-lamp {
  position: absolute; top: 20%; left: 50%; width: 14px; height: 8px;
  background: radial-gradient(circle at 50% 0%, #ffa060 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px rgba(255,160,96,0.3);
  animation: fl-lamp-out 7s ease-in-out infinite;
}
@keyframes fl-darken { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes fl-floor-wave { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes fl-table { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(0) rotate(-2deg); } }
@keyframes fl-chair-fall { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-15deg) translateY(-5px); } 50% { transform: rotate(-30deg) translateY(-2px); } 75% { transform: rotate(-45deg) translateY(0); } 100% { transform: rotate(-60deg) translateY(0); } }
@keyframes fl-lieutenant-fall { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(-5deg); } 60% { transform: translateY(0) rotate(10deg); } 100% { transform: translateY(-2px) rotate(5deg); } }
@keyframes fl-protag-lunge { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 20% { transform: translateX(15px) translateY(-2px) rotate(10deg); } 40% { transform: translateX(30px) translateY(0) rotate(5deg); } 60% { transform: translateX(15px) translateY(-1px) rotate(-5deg); } 80% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes fl-lamp-out { 0% { opacity: 0.9; box-shadow: 0 0 20px 4px rgba(255,160,96,0.5); } 30% { opacity: 0.7; box-shadow: 0 0 15px 2px rgba(255,160,96,0.3); } 60% { opacity: 0.3; box-shadow: 0 0 5px 1px rgba(255,160,96,0.1); } 100% { opacity: 0.1; box-shadow: none; } }

/* arrest-walk – tense sunlit */
.scn-arrest-walk {
  background: linear-gradient(180deg, #87ceeb 0%, #ffdead 40%, #ffe4b5 100%),
              radial-gradient(ellipse at 50% 0%, #fff7e0 0%, transparent 70%);
}
.scn-arrest-walk .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d4f1 0%, transparent 100%); animation: aw-sky 20s ease-in-out infinite alternate; }
.scn-arrest-walk .sun { position:absolute; top:8%; right:15%; width:60px; height:60px; background: radial-gradient(circle, #fffbe6 0%, #ffe68f 60%, transparent 80%); border-radius:50%; box-shadow:0 0 40px 20px #ffe68f; animation: aw-sun 12s ease-in-out infinite alternate; }
.scn-arrest-walk .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #c2a57a 0%, #8b7340 100%); border-radius:40% 30% 0 0 / 60% 50% 0 0; box-shadow:inset 0 10px 30px rgba(0,0,0,.4); }
.scn-arrest-walk .shadow { position:absolute; bottom:18%; left:20%; width:60%; height:8%; background: linear-gradient(135deg, rgba(0,0,0,.25) 0%, transparent 70%); filter: blur(4px); animation: aw-shadow 8s ease-in-out infinite alternate; }
.scn-arrest-walk .guard-left { position:absolute; bottom:22%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: aw-walk-left 4s ease-in-out infinite; }
.scn-arrest-walk .guard-right { position:absolute; bottom:22%; right:30%; width:30px; height:70px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: aw-walk-right 4s ease-in-out infinite 0.3s; }
.scn-arrest-walk .prisoner { position:absolute; bottom:20%; left:50%; width:28px; height:68px; transform:translateX(-50%); background: linear-gradient(180deg, #5e1a1d 0%, #2a0a0c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 0 10px 2px rgba(0,0,0,.3); animation: aw-walk-prisoner 4s ease-in-out infinite 0.15s; }
.scn-arrest-walk .building { position:absolute; bottom:30%; left:70%; width:80px; height:100px; background: linear-gradient(180deg, #8b7a60 0%, #5a4a38 100%); border-radius:4% 4% 0 0; box-shadow:-4px 0 10px rgba(0,0,0,.5); animation: aw-building 30s ease-in-out infinite alternate; }
@keyframes aw-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes aw-sun { 0% { transform:translate(0,0); box-shadow:0 0 30px 15px #ffe68f } 50% { transform:translate(8px,-6px); box-shadow:0 0 50px 25px #ffeeaa } 100% { transform:translate(-4px,4px); box-shadow:0 0 35px 18px #ffe68f } }
@keyframes aw-shadow { 0% { transform:translateX(-10px) scaleX(1) } 50% { transform:translateX(5px) scaleX(1.1) } 100% { transform:translateX(-5px) scaleX(.95) } }
@keyframes aw-walk-left { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(-4px) rotate(-2deg) } 50% { transform:translateX(0) rotate(0deg) } 75% { transform:translateX(4px) rotate(2deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes aw-walk-right { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(4px) rotate(2deg) } 50% { transform:translateX(0) rotate(0deg) } 75% { transform:translateX(-4px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes aw-walk-prisoner { 0% { transform:translateX(-50%) } 25% { transform:translateX(-50%) translateY(-2px) } 50% { transform:translateX(-50%) } 75% { transform:translateX(-50%) translateY(-2px) } 100% { transform:translateX(-50%) } }
@keyframes aw-building { 0% { transform:scaleY(1); opacity:.9 } 50% { transform:scaleY(1.02); opacity:1 } 100% { transform:scaleY(.98); opacity:.85 } }

/* basque-recognition – warm sunlit */
.scn-basque-recognition {
  background: linear-gradient(180deg, #ffd699 0%, #ffc073 40%, #e8a25e 100%),
              radial-gradient(ellipse at 70% 20%, #fff7d6 0%, transparent 60%);
}
.scn-basque-recognition .sky-warm { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #ffecd2 0%, #ffd699 100%); animation: br-sky 25s ease-in-out infinite alternate; }
.scn-basque-recognition .hills-gold { position:absolute; bottom:28%; left:0; right:0; height:20%; background: linear-gradient(180deg, #c8a45a 0%, #a0783a 100%); border-radius:50% 60% 0 0 / 80% 70% 0 0; box-shadow:inset 0 6px 20px rgba(0,0,0,.3); }
.scn-basque-recognition .path { position:absolute; bottom:10%; left:20%; width:60%; height:4%; background: linear-gradient(90deg, #dbb77a 0%, #c8a45a 50%, #dbb77a 100%); border-radius:50%; filter: blur(3px); animation: br-path 15s ease-in-out infinite alternate; }
.scn-basque-recognition .cart-body { position:absolute; bottom:18%; left:15%; width:90px; height:40px; background: linear-gradient(180deg, #8b6936 0%, #5a4220 100%); border-radius:20% 20% 40% 40%; box-shadow:0 4px 8px rgba(0,0,0,.4); animation: br-cart 10s ease-in-out infinite; }
.scn-basque-recognition .cart-wheel { position:absolute; bottom:14%; left:22%; width:20px; height:20px; border:4px solid #4a3218; border-radius:50%; background: radial-gradient(circle, #6a5028 0%, #4a3218 100%); animation: br-wheel 2s linear infinite; }
.scn-basque-recognition .figure-a { position:absolute; bottom:15%; left:35%; width:24px; height:60px; background: linear-gradient(180deg, #8b4530 0%, #5a2a1c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: br-figureA 6s ease-in-out infinite; }
.scn-basque-recognition .figure-b { position:absolute; bottom:15%; left:50%; width:24px; height:60px; background: linear-gradient(180deg, #6a4231 0%, #3a2218 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: br-figureB 6s ease-in-out infinite 1.5s; }
.scn-basque-recognition .campfire { position:absolute; bottom:12%; left:28%; width:16px; height:20px; background: radial-gradient(circle at 50% 100%, #ffa54d 0%, #e67e22 40%, transparent 70%); border-radius:50% 50% 20% 20%; box-shadow:0 0 20px 8px rgba(230,126,34,.5); animation: br-fire 3s ease-in-out infinite alternate; }
@keyframes br-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes br-path { 0% { transform:translateX(-5px) scaleY(1) } 50% { transform:translateX(5px) scaleY(1.1) } 100% { transform:translateX(0) scaleY(1) } }
@keyframes br-cart { 0% { transform:translateY(0) rotate(0deg) } 25% { transform:translateY(-2px) rotate(1deg) } 50% { transform:translateY(0) rotate(0deg) } 75% { transform:translateY(-2px) rotate(-1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes br-wheel { 0% { transform:rotate(0deg) } 100% { transform:rotate(360deg) } }
@keyframes br-figureA { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(4px) rotate(-2deg) } 50% { transform:translateX(0) rotate(0deg) } 75% { transform:translateX(-4px) rotate(2deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes br-figureB { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(-4px) rotate(2deg) } 50% { transform:translateX(0) rotate(0deg) } 75% { transform:translateX(4px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes br-fire { 0% { transform:scaleY(1); opacity:.6 } 50% { transform:scaleY(1.3); opacity:1 } 100% { transform:scaleY(.8); opacity:.7 } }

/* deception-and-belief – tense sunlit */
.scn-deception-and-belief {
  background: linear-gradient(180deg, #e6e9f0 0%, #c0c8d4 50%, #a0aaba 100%),
              radial-gradient(ellipse at 30% 80%, #fff5cc 0%, transparent 60%);
}
.scn-deception-and-belief .bg-white { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f2f4f8 0%, #d5dce6 100%); animation: db-bg 15s ease-in-out infinite alternate; }
.scn-deception-and-belief .wall-shadow { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(90deg, rgba(30,30,40,.5) 0%, transparent 30%, transparent 70%, rgba(30,30,40,.5) 100%); filter: blur(8px); }
.scn-deception-and-belief .figure-profile { position:absolute; bottom:15%; left:25%; width:25px; height:65px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 30% 40% 40% / 60% 50% 40% 40%; transform-origin:bottom center; box-shadow:4px 0 8px rgba(0,0,0,.4); animation: db-profile 5s ease-in-out infinite; }
.scn-deception-and-belief .figure-turning { position:absolute; bottom:15%; right:30%; width:25px; height:65px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:30% 50% 40% 40% / 50% 60% 40% 40%; transform-origin:bottom center; box-shadow:-4px 0 8px rgba(0,0,0,.4); animation: db-turning 7s ease-in-out infinite; }
.scn-deception-and-belief .lantern-harsh { position:absolute; bottom:35%; left:45%; width:10px; height:14px; border-radius:30% 30% 10% 10%; background: radial-gradient(circle, #ffe599 0%, #cc9a3e 80%); box-shadow:0 0 30px 10px rgba(204,154,62,.7); animation: db-lantern 4s ease-in-out infinite alternate; }
.scn-deception-and-belief .shadow-long { position:absolute; bottom:10%; left:20%; width:35%; height:6%; background: linear-gradient(90deg, rgba(0,0,0,.3) 0%, transparent 100%); filter: blur(4px); animation: db-shadow 8s ease-in-out infinite alternate; }
.scn-deception-and-belief .eye-slit { position:absolute; bottom:48%; left:27%; width:4px; height:6px; background:#fff; border-radius:50%; box-shadow:0 0 8px 2px rgba(255,255,200,.8); animation: db-eye 3s ease-in-out infinite; }
@keyframes db-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes db-profile { 0% { transform:rotate(0deg) } 25% { transform:rotate(-3deg) translateY(-1px) } 50% { transform:rotate(0deg) } 75% { transform:rotate(3deg) translateY(-1px) } 100% { transform:rotate(0deg) } }
@keyframes db-turning { 0% { transform:rotate(0deg) scaleX(1) } 33% { transform:rotate(5deg) scaleX(.9) } 66% { transform:rotate(-5deg) scaleX(.9) } 100% { transform:rotate(0deg) scaleX(1) } }
@keyframes db-lantern { 0% { transform:rotate(-5deg); box-shadow:0 0 20px 8px rgba(204,154,62,.5) } 50% { transform:rotate(5deg); box-shadow:0 0 40px 15px rgba(204,154,62,.8) } 100% { transform:rotate(-3deg); box-shadow:0 0 25px 10px rgba(204,154,62,.6) } }
@keyframes db-shadow { 0% { transform:translateX(-10px) scaleX(1) } 50% { transform:translateX(10px) scaleX(1.2) } 100% { transform:translateX(-5px) scaleX(.9) } }
@keyframes db-eye { 0% { opacity:.7; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.3) } 100% { opacity:.8; transform:scaleY(.9) } }

/* decision-to-help – tense sunlit */
.scn-decision-to-help {
  background: linear-gradient(180deg, #a8c8e8 0%, #d4e4f2 40%, #f2e8d0 100%),
              radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 60%);
}
.scn-decision-to-help .sky-cliff { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #bfd9f5 0%, #dce7f5 100%); animation: dh-sky 20s ease-in-out infinite alternate; }
.scn-decision-to-help .cliff-edge { position:absolute; bottom:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #8b7a60 0%, #5a4a38 100%); border-radius:20% 50% 0 0 / 30% 60% 0 0; box-shadow:inset 0 20px 40px rgba(0,0,0,.6); }
.scn-decision-to-help .void { position:absolute; bottom:0; left:10%; width:30%; height:60%; background: linear-gradient(180deg, #7a9aba 0%, #2a3a4a 100%); border-radius:0 0 20% 20%; box-shadow:inset 0 10px 30px rgba(0,0,0,.5); animation: dh-void 15s ease-in-out infinite alternate; }
.scn-decision-to-help .figure-edge { position:absolute; bottom:25%; left:20%; width:28px; height:68px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: dh-edge 5s ease-in-out infinite; }
.scn-decision-to-help .figure-reach { position:absolute; bottom:25%; right:25%; width:28px; height:68px; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: dh-reach 5s ease-in-out infinite 1s; }
.scn-decision-to-help .rock { position:absolute; bottom:40%; left:45%; width:30px; height:20px; background: linear-gradient(135deg, #7a6a52 0%, #4a3a28 100%); border-radius:40% 60% 30% 70% / 50% 40% 60% 50%; box-shadow:0 0 0 2px rgba(255,255,255,.1); animation: dh-rock 20s ease-in-out infinite alternate; }
.scn-decision-to-help .shadow-cliff { position:absolute; bottom:15%; left:0; width:70%; height:5%; background: linear-gradient(90deg, rgba(0,0,0,.4) 0%, transparent 100%); filter: blur(5px); animation: dh-shadow 8s ease-in-out infinite alternate; }
@keyframes dh-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes dh-void { 0% { transform:scaleY(1); opacity:.9 } 50% { transform:scaleY(1.05); opacity:1 } 100% { transform:scaleY(.95); opacity:.8 } }
@keyframes dh-edge { 0% { transform:rotate(0deg) translateX(0) } 25% { transform:rotate(4deg) translateX(2px) } 50% { transform:rotate(0deg) translateX(0) } 75% { transform:rotate(-4deg) translateX(-2px) } 100% { transform:rotate(0deg) translateX(0) } }
@keyframes dh-reach { 0% { transform:rotate(0deg) scaleX(1) } 25% { transform:rotate(-15deg) scaleX(1.1) translateX(-5px) } 50% { transform:rotate(0deg) scaleX(1) } 75% { transform:rotate(15deg) scaleX(1.1) translateX(5px) } 100% { transform:rotate(0deg) scaleX(1) } }
@keyframes dh-rock { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-3px) rotate(3deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes dh-shadow { 0% { transform:translateX(-5px) scaleX(1) } 50% { transform:translateX(10px) scaleX(1.3) } 100% { transform:translateX(0) scaleX(.9) } }

.scn-meeting-carmen {
  background:
    linear-gradient(180deg, #4a2a5e 0%, #2a1a3e 30%, #1a1a2e 60%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 0%, #5a3a6e 0%, transparent 70%);
}
.scn-meeting-carmen .mc-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a4a7e 0%, #4a2a5e 40%, #2a1a3e 100%); animation: mc-sky 14s ease-in-out infinite alternate; }
.scn-meeting-carmen .mc-river { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 40%, #1a1a2e 100%); border-radius: 20% 30% 0 0 / 10% 15% 0 0; box-shadow: inset 0 8px 20px rgba(90,58,110,.4); animation: mc-river 8s ease-in-out infinite; }
.scn-meeting-carmen .mc-parapet { position:absolute; bottom:45%; left:10%; right:10%; height:8%; background: linear-gradient(90deg, #3a2a3e 0%, #5a4a5e 20%, #3a2a3e 50%, #5a4a5e 80%, #3a2a3e 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-meeting-carmen .mc-woman { position:absolute; bottom:38%; left:48%; width:30px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: mc-woman 6s ease-in-out infinite; }
.scn-meeting-carmen .mc-jasmine { position:absolute; bottom:48%; left:49%; width:14px; height:14px; background: radial-gradient(circle, #e8d0a0 0%, #c8a060 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(232,208,160,.6), 0 0 40px 12px rgba(232,208,160,.3); animation: mc-jasmine 3s ease-in-out infinite alternate; }
.scn-meeting-carmen .mc-stars { position:absolute; top:5%; left:0; right:0; height:30%; background: radial-gradient(circle, rgba(255,240,200,.8) 0%, transparent 2%), radial-gradient(circle, rgba(255,240,200,.6) 0%, transparent 1.5%), radial-gradient(circle, rgba(255,240,200,.5) 0%, transparent 1%); background-size: 120px 120px, 80px 80px, 50px 50px; background-position: 20% 10%, 70% 5%, 40% 20%; filter: blur(1px); animation: mc-stars 20s ease-in-out infinite alternate; }
.scn-meeting-carmen .mc-lamplight { position:absolute; bottom:40%; left:35%; width:8px; height:16px; background: radial-gradient(ellipse at center, #e0b060 0%, #c08840 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(224,176,96,.5); animation: mc-lamp 4s ease-in-out infinite; }
@keyframes mc-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes mc-river { 0% { transform: translateY(0) scaleY(1) } 30% { transform: translateY(3px) scaleY(1.02) } 60% { transform: translateY(-2px) scaleY(.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes mc-woman { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 30% { transform: translateX(-48%) translateY(-2px) rotate(2deg) } 60% { transform: translateX(-52%) translateY(-1px) rotate(-1deg) } }
@keyframes mc-jasmine { 0% { box-shadow: 0 0 15px 4px rgba(232,208,160,.4); opacity:.8 } 50% { box-shadow: 0 0 30px 8px rgba(232,208,160,.8); opacity:1 } 100% { box-shadow: 0 0 20px 5px rgba(232,208,160,.5); opacity:.9 } }
@keyframes mc-stars { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes mc-lamp { 0%,100% { transform: scale(1) } 50% { transform: scale(1.15) } }

.scn-first-glance {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 40%, #2a2a4e 100%),
    radial-gradient(ellipse at 50% 20%, #3a3a5e 0%, transparent 60%);
}
.scn-first-glance .fg-bg { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, transparent 50%, #0a0a1a 100%); filter: blur(2px); animation: fg-bg 12s ease-in-out infinite; }
.scn-first-glance .fg-figure-a { position:absolute; bottom:30%; left:35%; width:40px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: fg-fig-a 5s ease-in-out infinite; }
.scn-first-glance .fg-figure-b { position:absolute; bottom:30%; left:55%; width:36px; height:65px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a3e 0%, #2a1a2e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: fg-fig-b 5.5s ease-in-out infinite 0.3s; }
.scn-first-glance .fg-hand { position:absolute; bottom:42%; left:42%; width:14px; height:18px; background: linear-gradient(180deg, #4a3a4e 0%, #3a2a3e 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-20deg); animation: fg-hand 4s ease-in-out infinite; }
.scn-first-glance .fg-cigarette { position:absolute; bottom:46%; left:43%; width:20px; height:4px; background: linear-gradient(90deg, #e8d0a0 0%, #c8a060 40%, #a07040 70%, #4a3a2e 100%); border-radius: 50% 10% 10% 50%; box-shadow: 0 0 12px 3px rgba(232,208,160,.5); animation: fg-cig 4s ease-in-out infinite; }
.scn-first-glance .fg-stars { position:absolute; top:8%; left:0; right:0; height:40%; background: radial-gradient(circle, rgba(255,240,200,.8) 0%, transparent 2%), radial-gradient(circle, rgba(255,240,200,.6) 0%, transparent 1.5%); background-size: 100px 100px, 60px 60px; background-position: 30% 10%, 70% 20%; filter: blur(1px); animation: fg-stars 18s ease-in-out infinite alternate; }
.scn-first-glance .fg-smoke-1 { position:absolute; bottom:50%; left:44%; width:30px; height:40px; background: radial-gradient(ellipse at center, rgba(200,180,160,.3) 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: fg-smoke-1 6s ease-in-out infinite; }
.scn-first-glance .fg-smoke-2 { position:absolute; bottom:52%; left:46%; width:25px; height:35px; background: radial-gradient(ellipse at center, rgba(200,180,160,.2) 0%, transparent 70%); border-radius:50%; filter: blur(5px); animation: fg-smoke-2 7s ease-in-out infinite 1s; }
@keyframes fg-bg { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fg-fig-a { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 30% { transform: translateX(-48%) translateY(-3px) rotate(2deg) } 60% { transform: translateX(-52%) translateY(-1px) rotate(-1deg) } }
@keyframes fg-fig-b { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 30% { transform: translateX(-52%) translateY(-2px) rotate(-1deg) } 60% { transform: translateX(-48%) translateY(-3px) rotate(2deg) } }
@keyframes fg-hand { 0% { transform: rotate(-20deg) translate(0,0) } 25% { transform: rotate(-15deg) translate(3px,-2px) } 50% { transform: rotate(-22deg) translate(-1px,1px) } 75% { transform: rotate(-18deg) translate(2px,-1px) } 100% { transform: rotate(-20deg) translate(0,0) } }
@keyframes fg-cig { 0% { opacity:.7 } 30% { opacity:1; box-shadow: 0 0 16px 5px rgba(232,208,160,.6) } 60% { opacity:.8; box-shadow: 0 0 10px 2px rgba(232,208,160,.3) } 100% { opacity:.7 } }
@keyframes fg-stars { 0% { opacity:.4 } 50% { opacity:1 } 100% { opacity:.5 } }
@keyframes fg-smoke-1 { 0% { transform: translate(0,0) scale(1); opacity:.5 } 50% { transform: translate(8px,-12px) scale(1.3); opacity:.2 } 100% { transform: translate(15px,-25px) scale(1.5); opacity:0 } }
@keyframes fg-smoke-2 { 0% { transform: translate(0,0) scale(1); opacity:.5 } 50% { transform: translate(-6px,-10px) scale(1.2); opacity:.2 } 100% { transform: translate(-12px,-20px) scale(1.4); opacity:0 } }

.scn-paper-smoking {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a0a1e 40%, #2a1a2e 100%),
    radial-gradient(ellipse at 40% 50%, #3a2a3e 0%, transparent 70%);
}
.scn-paper-smoking .ps-bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 60%, #0a0a1a 100%); filter: blur(3px); animation: ps-bg 10s ease-in-out infinite alternate; }
.scn-paper-smoking .ps-flame { position:absolute; bottom:42%; left:40%; width:8px; height:12px; background: radial-gradient(ellipse at 50% 60%, #e0a040 0%, #c08030 40%, transparent 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 20px 6px rgba(224,160,64,.6), 0 0 40px 12px rgba(224,160,64,.3); animation: ps-flame 1.5s ease-in-out infinite alternate; }
.scn-paper-smoking .ps-child { position:absolute; bottom:36%; left:35%; width:22px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ps-child 4s ease-in-out infinite; }
.scn-paper-smoking .ps-figure-a { position:absolute; bottom:32%; left:48%; width:32px; height:56px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a3e 0%, #2a1a2e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ps-fig-a 5s ease-in-out infinite 0.2s; }
.scn-paper-smoking .ps-figure-b { position:absolute; bottom:32%; left:58%; width:30px; height:52px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a3e 0%, #1a0a2e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ps-fig-b 5.5s ease-in-out infinite 0.5s; }
.scn-paper-smoking .ps-smoke-a { position:absolute; bottom:48%; left:44%; width:35px; height:45px; background: radial-gradient(ellipse at center, rgba(200,180,160,.25) 0%, transparent 70%); border-radius:50%; filter: blur(5px); animation: ps-smoke-a 7s ease-in-out infinite; }
.scn-paper-smoking .ps-smoke-b { position:absolute; bottom:50%; left:42%; width:30px; height:40px; background: radial-gradient(ellipse at center, rgba(200,180,160,.2) 0%, transparent 70%); border-radius:50%; filter: blur(6px); animation: ps-smoke-b 8s ease-in-out infinite 1.5s; }
.scn-paper-smoking .ps-glow-halo { position:absolute; bottom:40%; left:38%; width:40px; height:40px; background: radial-gradient(circle, rgba(224,160,64,.2) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: ps-glow 3s ease-in-out infinite; }
@keyframes ps-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ps-flame { 0% { transform: scale(1) translateY(0); opacity:.8 } 30% { transform: scale(1.2) translateY(-2px); opacity:1 } 60% { transform: scale(.9) translateY(1px); opacity:.7 } 100% { transform: scale(1) translateY(0); opacity:.9 } }
@keyframes ps-child { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 30% { transform: translateX(-48%) translateY(-2px) rotate(3deg) } 60% { transform: translateX(-52%) translateY(-1px) rotate(-2deg) } }
@keyframes ps-fig-a { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 30% { transform: translateX(-48%) translateY(-2px) rotate(1deg) } 60% { transform: translateX(-52%) translateY(-1px) rotate(-1deg) } }
@keyframes ps-fig-b { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 30% { transform: translateX(-52%) translateY(-3px) rotate(-1deg) } 60% { transform: translateX(-48%) translateY(-1px) rotate(2deg) } }
@keyframes ps-smoke-a { 0% { transform: translate(0,0) scale(1); opacity:.4 } 50% { transform: translate(10px,-15px) scale(1.4); opacity:.15 } 100% { transform: translate(20px,-30px) scale(1.8); opacity:0 } }
@keyframes ps-smoke-b { 0% { transform: translate(0,0) scale(1); opacity:.4 } 50% { transform: translate(-8px,-12px) scale(1.3); opacity:.15 } 100% { transform: translate(-16px,-25px) scale(1.6); opacity:0 } }
@keyframes ps-glow { 0% { transform: scale(1); opacity:.4 } 50% { transform: scale(1.2); opacity:.7 } 100% { transform: scale(.95); opacity:.5 } }

.scn-watch-wonder {
  background:
    linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 30%, #2a2a4e 60%, #1a1a3e 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 50%);
}
.scn-watch-wonder .ww-bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 50%, #0a0a1e 100%); filter: blur(2px); animation: ww-bg 15s ease-in-out infinite; }
.scn-watch-wonder .ww-figure { position:absolute; bottom:25%; left:50%; width:40px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a3e 0%, #1a0a2e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ww-fig 6s ease-in-out infinite; }
.scn-watch-wonder .ww-hands { position:absolute; bottom:38%; left:50%; width:20px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a5e 0%, #3a2a4e 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ww-hands 4s ease-in-out infinite; }
.scn-watch-wonder .ww-watch-glow { position:absolute; bottom:40%; left:50%; width:18px; height:22px; transform:translateX(-50%); background: radial-gradient(circle at center, #e0c080 0%, #c0a060 40%, #a08040 70%, transparent 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 24px 6px rgba(224,192,128,.6), 0 0 48px 12px rgba(224,192,128,.3); animation: ww-watch 3s ease-in-out infinite alternate; }
.scn-watch-wonder .ww-gears { position:absolute; bottom:42%; left:50%; width:12px; height:12px; transform:translateX(-50%); background: radial-gradient(circle, #806040 0%, #604020 60%, transparent 100%); border-radius:50%; animation: ww-gears 4s linear infinite; }
.scn-watch-wonder .ww-sparkles { position:absolute; bottom:44%; left:48%; width:6px; height:6px; background: #f0d8a0; border-radius:50%; box-shadow: 0 0 8px 2px rgba(240,216,160,.8); animation: ww-sparkle 2s ease-in-out infinite; }
.scn-watch-wonder .ww-amazement { position:absolute; top:20%; left:50%; width:30px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse at center, rgba(224,200,160,.15) 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: ww-amaze 5s ease-in-out infinite; }
.scn-watch-wonder .ww-stars { position:absolute; top:5%; left:0; right:0; height:35%; background: radial-gradient(circle, rgba(255,240,200,.7) 0%, transparent 2%), radial-gradient(circle, rgba(255,240,200,.5) 0%, transparent 1.5%); background-size: 90px 90px, 50px 50px; background-position: 15% 5%, 60% 15%; filter: blur(1px); animation: ww-stars 22s ease-in-out infinite alternate; }
@keyframes ww-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ww-fig { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 30% { transform: translateX(-48%) translateY(-2px) rotate(1deg) } 60% { transform: translateX(-52%) translateY(-1px) rotate(-1deg) } }
@keyframes ww-hands { 0% { transform: translateX(-50%) rotate(0deg) } 30% { transform: translateX(-48%) rotate(8deg) } 70% { transform: translateX(-52%) rotate(-5deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes ww-watch { 0% { box-shadow: 0 0 18px 4px rgba(224,192,128,.4); opacity:.8 } 50% { box-shadow: 0 0 35px 10px rgba(224,192,128,.9); opacity:1 } 100% { box-shadow: 0 0 22px 5px rgba(224,192,128,.5); opacity:.9 } }
@keyframes ww-gears { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(90deg) } 50% { transform: translateX(-50%) rotate(180deg) } 75% { transform: translateX(-50%) rotate(270deg) } 100% { transform: translateX(-50%) rotate(360deg) } }
@keyframes ww-sparkle { 0%,100% { opacity:0; transform: scale(.5) } 30% { opacity:1; transform: scale(1.2) } 60% { opacity:.6; transform: scale(.8) } }
@keyframes ww-amaze { 0% { transform: translateX(-50%) scale(1); opacity:.3 } 50% { transform: translateX(-50%) scale(1.3); opacity:.6 } 100% { transform: translateX(-50%) scale(.95); opacity:.4 } }
@keyframes ww-stars { 0% { opacity:.3 } 50% { opacity:.9 } 100% { opacity:.4 } }

/* Scene: decision-to-warn (moonlit, tense) */
.scn-decision-to-warn {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a5e 70%, #0a0a2e 100%),
              radial-gradient(ellipse at 60% 20%, rgba(192,192,224,0.15) 0%, transparent 60%);
}
.scn-decision-to-warn .sky { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 100%); animation: dtw-sky 12s ease-in-out infinite alternate; }
.scn-decision-to-warn .moon { position:absolute; top:8%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #e0e0f0 0%, #b0b0d0 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(192,192,224,0.3); animation: dtw-moon 15s ease-in-out infinite alternate; }
.scn-decision-to-warn .cloud-a { position:absolute; top:12%; left:10%; width:80px; height:14px; background: linear-gradient(90deg, rgba(192,192,224,0.3) 0%, rgba(192,192,224,0.1) 100%); border-radius:50%; filter: blur(6px); animation: dtw-cloudA 35s linear infinite; }
.scn-decision-to-warn .cloud-b { position:absolute; top:18%; right:5%; width:60px; height:10px; background: linear-gradient(90deg, rgba(192,192,224,0.25) 0%, rgba(192,192,224,0.05) 100%); border-radius:50%; filter: blur(5px); animation: dtw-cloudB 45s linear infinite reverse; }
.scn-decision-to-warn .hills { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a2e 0%, #0a1a1a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); animation: dtw-hills 18s ease-in-out infinite alternate; }
.scn-decision-to-warn .figure-standing { position:absolute; bottom:25%; left:35%; width:16px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dtw-stand 4s ease-in-out infinite; }
.scn-decision-to-warn .figure-lying { position:absolute; bottom:22%; left:55%; width:40px; height:16px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 40% 40% 20% 20%; transform: rotate(-5deg); animation: dtw-lying 6s ease-in-out infinite; }
.scn-decision-to-warn .path { position:absolute; bottom:18%; left:20%; right:20%; height:4px; background: linear-gradient(90deg, transparent, #3a3a4e 20% 80%, transparent); border-radius:2px; animation: dtw-path 8s ease-in-out infinite; }

@keyframes dtw-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes dtw-moon { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 15px rgba(192,192,224,0.2) } 50% { transform: translateY(-4px) scale(1.02); box-shadow: 0 0 50px 25px rgba(192,192,224,0.4) } 100% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 15px rgba(192,192,224,0.2) } }
@keyframes dtw-cloudA { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes dtw-cloudB { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes dtw-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dtw-stand { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes dtw-lying { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes dtw-path { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

/* Scene: warning-given (dim interior, tense) */
.scn-warning-given {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 40%, #1a0a0a 100%),
              radial-gradient(ellipse at 40% 60%, rgba(100,80,60,0.2) 0%, transparent 70%);
}
.scn-warning-given .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 50%, #1a0a0a 100%); animation: wng-bg 10s ease-in-out infinite alternate; }
.scn-warning-given .window { position:absolute; top:10%; left:10%; width:30px; height:20px; background: radial-gradient(circle, #a0b0c0 0%, #2a3a4a 80%); border:2px solid #3a2a1a; border-radius:2px; animation: wng-window 4s ease-in-out infinite; }
.scn-warning-given .table { position:absolute; bottom:30%; left:35%; right:35%; height:6px; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-warning-given .lantern { position:absolute; bottom:45%; left:48%; width:10px; height:14px; background: radial-gradient(circle, #d08040 0%, #a06030 80%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 20px 6px rgba(200,120,60,0.4), 0 0 40px 12px rgba(200,120,60,0.2); animation: wng-lantern 3s ease-in-out infinite alternate; }
.scn-warning-given .figure-sitting { position:absolute; bottom:26%; left:38%; width:30px; height:35px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 40% 40% 60%; transform-origin: bottom center; animation: wng-sit 5s ease-in-out infinite; }
.scn-warning-given .figure-standing { position:absolute; bottom:24%; left:58%; width:14px; height:48px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wng-stand 3.5s ease-in-out infinite; }
.scn-warning-given .floor { position:absolute; bottom:18%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent, #3a2a1a 30% 70%, transparent); }

@keyframes wng-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes wng-window { 0% { opacity:0.4; transform: scaleY(1) } 50% { opacity:0.8; transform: scaleY(1.02) } 100% { opacity:0.4; transform: scaleY(1) } }
@keyframes wng-lantern { 0% { box-shadow: 0 0 15px 4px rgba(200,120,60,0.3); opacity:0.8 } 50% { box-shadow: 0 0 30px 10px rgba(200,120,60,0.6); opacity:1 } 100% { box-shadow: 0 0 20px 6px rgba(200,120,60,0.35); opacity:0.85 } }
@keyframes wng-sit { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes wng-stand { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }

/* Scene: denials-and-truth (dim interior, tense, close-up) */
.scn-denials-and-truth {
  background: linear-gradient(180deg, #1a1a0a 0%, #2a2a1a 40%, #1a1a0a 100%),
              radial-gradient(ellipse at 50% 50%, rgba(80,60,40,0.25) 0%, transparent 70%);
}
.scn-denials-and-truth .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a0a 0%, #2a2a1a 50%, #1a1a0a 100%); animation: dnt-bg 12s ease-in-out infinite alternate; }
.scn-denials-and-truth .table { position:absolute; bottom:35%; left:20%; right:20%; height:8px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-denials-and-truth .candle { position:absolute; bottom:50%; left:50%; width:6px; height:12px; background: linear-gradient(180deg, #d0a060 0%, #8a5a2a 100%); border-radius:2px; transform:translateX(-50%); animation: dnt-candle 2s ease-in-out infinite; }
.scn-denials-and-truth .candle::after { content:''; position:absolute; top:-8px; left:-2px; width:10px; height:10px; background: radial-gradient(circle, #ffd080 0%, transparent 100%); border-radius:50%; animation: dnt-flame 0.8s ease-in-out infinite alternate; }
.scn-denials-and-truth .head-left { position:absolute; bottom:28%; left:25%; width:24px; height:28px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dnt-headL 4s ease-in-out infinite; }
.scn-denials-and-truth .head-right { position:absolute; bottom:28%; right:25%; width:24px; height:28px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dnt-headR 4s ease-in-out infinite; }
.scn-denials-and-truth .shadow { position:absolute; bottom:20%; left:30%; right:30%; height:15px; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); filter: blur(4px); animation: dnt-shadow 6s ease-in-out infinite; }

@keyframes dnt-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes dnt-candle { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.05) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes dnt-flame { 0% { transform: scale(1) } 100% { transform: scale(1.2) } }
@keyframes dnt-headL { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dnt-headR { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dnt-shadow { 0% { opacity:0.3; transform: scaleY(1) } 50% { opacity:0.6; transform: scaleY(1.2) } 100% { opacity:0.3; transform: scaleY(1) } }

/* Scene: gift-of-cigars (warm, dim interior) */
.scn-gift-of-cigars {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 70%, rgba(200,150,80,0.15) 0%, transparent 70%);
}
.scn-gift-of-cigars .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%); animation: goc-bg 14s ease-in-out infinite alternate; }
.scn-gift-of-cigars .table { position:absolute; bottom:30%; left:25%; right:25%; height:6px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:3px; box-shadow: 0 3px 6px rgba(0,0,0,0.5); }
.scn-gift-of-cigars .candle { position:absolute; bottom:50%; left:45%; width:6px; height:12px; background: linear-gradient(180deg, #d0a060 0%, #8a5a2a 100%); border-radius:2px; transform:translateX(-50%); animation: goc-candle 3s ease-in-out infinite; box-shadow: 0 0 12px 4px rgba(200,120,60,0.3); }
.scn-gift-of-cigars .hand { position:absolute; bottom:34%; left:52%; width:12px; height:16px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(20deg); animation: goc-hand 4s ease-in-out infinite; }
.scn-gift-of-cigars .figure-a { position:absolute; bottom:26%; left:30%; width:22px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: goc-figA 5s ease-in-out infinite; }
.scn-gift-of-cigars .figure-b { position:absolute; bottom:26%; right:30%; width:22px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: goc-figB 5s ease-in-out infinite; }
.scn-gift-of-cigars .cigar-box { position:absolute; bottom:34%; left:48%; width:14px; height:10px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 10% 10%; transform: translateX(-50%); animation: goc-box 6s ease-in-out infinite; }
.scn-gift-of-cigars .glow { position:absolute; bottom:30%; left:45%; right:40%; height:20px; background: radial-gradient(ellipse, rgba(200,150,80,0.2) 0%, transparent 100%); filter: blur(8px); animation: goc-glow 4s ease-in-out infinite alternate; }

@keyframes goc-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes goc-candle { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.04) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes goc-hand { 0% { transform: rotate(20deg) translateX(0) } 30% { transform: rotate(15deg) translateX(6px) } 60% { transform: rotate(20deg) translateX(0) } 100% { transform: rotate(20deg) translateX(0) } }
@keyframes goc-figA { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes goc-figB { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes goc-box { 0% { transform: translateX(-50%) scale(1) } 30% { transform: translateX(-50%) scale(1.05) } 70% { transform: translateX(-50%) scale(0.95) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes goc-glow { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(1) } }

.scn-next-morning-visit {
  background: linear-gradient(180deg, #f5e6c8 0%, #c8a97e 40%, #6b4a2e 100%), radial-gradient(ellipse at 70% 20%, #ffe066 0%, transparent 50%);
}
.scn-next-morning-visit .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fce3b6 0%, #e0b07a 70%, #a0784a 100%);
  animation: nvm-sky 20s ease-in-out infinite alternate;
}
.scn-next-morning-visit .sun {
  position: absolute; top: 8%; left: 65%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff5cc 0%, #ffd966 40%, #e6982e 100%);
  border-radius: 50%; box-shadow: 0 0 80px 40px rgba(255,200,50,0.3);
  animation: nvm-sun 12s ease-in-out infinite alternate;
}
.scn-next-morning-visit .buildings {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(90deg, #4a3520 0%, #3a2a18 20%, #2a1a10 50%, #3a2a18 80%, #4a3520 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: nvm-build 30s ease-in-out infinite;
}
.scn-next-morning-visit .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5c4a32 0%, #3d2e1c 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
}
.scn-next-morning-visit .figure {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nvm-walk 4s ease-in-out infinite alternate;
}
.scn-next-morning-visit .net {
  position: absolute; bottom: 28%; left: 34%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.5) 0%, transparent 70%);
  border-radius: 40% 60% 40% 60% / 50% 50% 50% 50%;
  filter: blur(2px);
  animation: nvm-net 6s ease-in-out infinite;
}
.scn-next-morning-visit .shadow-figure {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 36px;
  background: rgba(10,8,6,0.6);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nvm-shadow 5s ease-in-out infinite alternate;
}
.scn-next-morning-visit .drum {
  position: absolute; bottom: 24%; left: 18%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4028 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: nvm-drum 2s ease-in-out infinite;
}
@keyframes nvm-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes nvm-sun { 0% { transform: scale(0.9) translateY(0); box-shadow: 0 0 60px 20px rgba(255,200,50,0.2); } 50% { transform: scale(1.05) translateY(-2px); box-shadow: 0 0 100px 50px rgba(255,200,50,0.4); } 100% { transform: scale(0.95) translateY(1px); box-shadow: 0 0 70px 30px rgba(255,200,50,0.25); } }
@keyframes nvm-build { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(2px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes nvm-walk { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(16px) rotate(-1deg); } }
@keyframes nvm-net { 0% { transform: rotate(0deg) translateX(0) scaleX(1); } 50% { transform: rotate(5deg) translateX(4px) scaleX(0.9); } 100% { transform: rotate(-3deg) translateX(2px) scaleX(1.05); } }
@keyframes nvm-shadow { 0% { transform: translateX(0) scaleY(1); opacity:0.4; } 50% { transform: translateX(10px) scaleY(0.95); opacity:0.6; } 100% { transform: translateX(0) scaleY(1); opacity:0.4; } }
@keyframes nvm-drum { 0% { transform: scaleY(1); } 25% { transform: scaleY(1.1) scaleX(0.9); } 50% { transform: scaleY(1); } 75% { transform: scaleY(0.9) scaleX(1.1); } 100% { transform: scaleY(1); } }

.scn-return-to-gang {
  background: linear-gradient(180deg, #0d1428 0%, #1a2440 40%, #2a3650 100%), radial-gradient(ellipse at 50% 100%, #304060 0%, transparent 70%);
}
.scn-return-to-gang .night-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #0b1428 0%, #162040 50%, #1d2a4a 100%);
  animation: rtg-sky 30s ease-in-out infinite alternate;
}
.scn-return-to-gang .moon {
  position: absolute; top: 6%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e6eafe 0%, #b8c4e0 60%, #8090b0 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px rgba(200,210,240,0.3);
  animation: rtg-moon 25s ease-in-out infinite alternate;
}
.scn-return-to-gang .alley-wall {
  position: absolute; bottom: 20%; left: 0; right: 40%; height: 60%;
  background: linear-gradient(180deg, #2a344a 0%, #1a2030 100%);
  box-shadow: inset -10px 0 30px rgba(0,0,0,0.6);
  border-radius: 0 10% 0 0 / 0 20% 0 0;
}
.scn-return-to-gang .alley-wall-far {
  position: absolute; bottom: 20%; left: 50%; right: 0; height: 45%;
  background: linear-gradient(180deg, #1e2840 0%, #121a28 100%);
  border-radius: 20% 0 0 0 / 40% 0 0 0;
  filter: blur(4px);
}
.scn-return-to-gang .figure-return {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #0a1018 0%, #05080c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rtg-walk 6s ease-in-out infinite alternate;
}
.scn-return-to-gang .shadow-return {
  position: absolute; bottom: 22%; left: 60%; width: 18px; height: 30px;
  background: rgba(0,0,0,0.5);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(6px);
  animation: rtg-shadow 8s ease-in-out infinite alternate;
}
.scn-return-to-gang .lantern-post {
  position: absolute; bottom: 30%; left: 28%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #504030 0%, #2a1e14 100%);
  border-radius: 2px;
}
.scn-return-to-gang .lantern-post::before {
  content: ''; position: absolute; top: 0; left: -8px; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffe080 0%, #b08040 50%, transparent 100%);
  border-radius: 50%;
  animation: rtg-lantern 4s ease-in-out infinite alternate;
}
@keyframes rtg-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes rtg-moon { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 10px rgba(200,210,240,0.2); } 50% { transform: translateY(2px) scale(1.02); box-shadow: 0 0 50px 20px rgba(200,210,240,0.4); } 100% { transform: translateY(-1px) scale(0.98); box-shadow: 0 0 35px 12px rgba(200,210,240,0.3); } }
@keyframes rtg-walk { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(12px) rotate(2deg); } 100% { transform: translateX(24px) rotate(-1deg); } }
@keyframes rtg-shadow { 0% { transform: translateX(0) scaleY(1); opacity:0.3; } 50% { transform: translateX(10px) scaleY(0.9); opacity:0.6; } 100% { transform: translateX(20px) scaleY(1); opacity:0.3; } }
@keyframes rtg-lantern { 0% { box-shadow: 0 0 10px 5px rgba(255,224,128,0.3); opacity:0.7; } 50% { box-shadow: 0 0 25px 12px rgba(255,224,128,0.6); opacity:1; } 100% { box-shadow: 0 0 15px 6px rgba(255,224,128,0.4); opacity:0.8; } }

.scn-duel-with-garcia {
  background: linear-gradient(180deg, #1a0e08 0%, #3a1a10 30%, #5e2414 70%, #1a0e08 100%), radial-gradient(ellipse at 60% 50%, #e06520 0%, transparent 60%);
}
.scn-duel-with-garcia .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1410 0%, #1a0a08 50%, #2a1410 100%);
  animation: dwg-bg 15s ease-in-out infinite alternate;
}
.scn-duel-with-garcia .fire {
  position: absolute; bottom: 30%; left: 20%; width: 50px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #ffb040 0%, #e07020 40%, #a03010 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  filter: blur(8px);
  animation: dwg-fire 0.8s ease-in-out infinite alternate;
}
.scn-duel-with-garcia .table {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 15%;
  background: linear-gradient(180deg, #8a6040 0%, #5a3824 100%);
  border-radius: 10% 10% 2% 2% / 30% 30% 5% 5%;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.6);
}
.scn-duel-with-garcia .cards-scattered {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 14px;
  background: #e8dcc8; border-radius: 2px; box-shadow: 0 0 6px rgba(0,0,0,0.4);
  transform: rotate(20deg);
  animation: dwg-cards 3s ease-in-out infinite;
}
.scn-duel-with-garcia .cards-scattered::after {
  content: ''; position: absolute; bottom: -4px; left: 18px; width: 20px; height: 14px;
  background: #d4c4a8; border-radius: 2px; transform: rotate(-15deg);
}
.scn-duel-with-garcia .figure-duelist {
  position: absolute; bottom: 22%; left: 38%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dwg-duelist 2s ease-in-out infinite alternate;
}
.scn-duel-with-garcia .figure-garcia {
  position: absolute; bottom: 22%; left: 58%; width: 26px; height: 42px;
  background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dwg-garcia 2.5s ease-in-out infinite alternate;
}
.scn-duel-with-garcia .knife {
  position: absolute; bottom: 28%; left: 52%; width: 18px; height: 4px;
  background: linear-gradient(90deg, #c0b0a0 0%, #e0d0c0 50%, #c0b0a0 100%);
  border-radius: 2px; transform: rotate(30deg);
  box-shadow: 0 0 4px rgba(255,200,100,0.4);
  animation: dwg-knife 1.2s ease-in-out infinite alternate;
}
.scn-duel-with-garcia .shadow-duel {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: dwg-shadow 4s ease-in-out infinite alternate;
}
@keyframes dwg-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes dwg-fire { 0% { transform: scaleY(0.9) scaleX(1.1); opacity:0.8; } 50% { transform: scaleY(1.1) scaleX(0.9); opacity:1; } 100% { transform: scaleY(0.95) scaleX(1.05); opacity:0.9; } }
@keyframes dwg-cards { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-3px); } 100% { transform: rotate(18deg) translateY(0); } }
@keyframes dwg-duelist { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes dwg-garcia { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes dwg-knife { 0% { transform: rotate(30deg) translateX(0); } 50% { transform: rotate(35deg) translateX(2px); } 100% { transform: rotate(28deg) translateX(0); } }
@keyframes dwg-shadow { 0% { opacity:0.5; transform: scaleY(1); } 50% { opacity:0.8; transform: scaleY(0.9); } 100% { opacity:0.5; transform: scaleY(1); } }

.scn-garcia-killed {
  background: linear-gradient(180deg, #0a0503 0%, #1a0a06 30%, #2a140e 60%, #0a0503 100%), radial-gradient(ellipse at 40% 60%, #c04020 0%, transparent 60%);
}
.scn-garcia-killed .darkness {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 70%, transparent 40%, #050302 100%);
  animation: gak-dark 20s ease-in-out infinite alternate;
}
.scn-garcia-killed .embers {
  position: absolute; bottom: 30%; left: 15%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #ff7020 0%, #a03010 50%, transparent 100%);
  border-radius: 50%; filter: blur(10px);
  animation: gak-ember 1.5s ease-in-out infinite alternate;
}
.scn-garcia-killed .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2014 0%, #1a0e08 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-garcia-killed .figure-standing {
  position: absolute; bottom: 25%; left: 35%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #0a0806 0%, #050302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gak-stand 8s ease-in-out infinite alternate;
}
.scn-garcia-killed .figure-standing-other {
  position: absolute; bottom: 25%; left: 55%; width: 22px; height: 36px;
  background: linear-gradient(180deg, #0a0806 0%, #050302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gak-stand-other 8s ease-in-out infinite alternate-reverse;
}
.scn-garcia-killed .body-garcia {
  position: absolute; bottom: 12%; left: 45%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #2a1410 0%, #1a0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(10deg);
  filter: blur(1px);
  animation: gak-body 12s ease-in-out infinite alternate;
}
.scn-garcia-killed .blood-pool {
  position: absolute; bottom: 8%; left: 42%; width: 40px; height: 12px;
  background: radial-gradient(ellipse, #7a2020 0%, #3a1010 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: gak-blood 15s ease-in-out infinite alternate;
}
.scn-garcia-killed .knife-dropped {
  position: absolute; bottom: 15%; left: 48%; width: 16px; height: 3px;
  background: linear-gradient(90deg, #a09080 0%, #d0c0b0 50%, #a09080 100%);
  border-radius: 1px; transform: rotate(-40deg);
  box-shadow: 0 0 4px rgba(200,100,50,0.5);
  animation: gak-knife 10s ease-in-out infinite alternate;
}
@keyframes gak-dark { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes gak-ember { 0% { transform: scaleY(0.8) scaleX(1.2); opacity:0.6; } 50% { transform: scaleY(1.1) scaleX(0.9); opacity:1; } 100% { transform: scaleY(0.9) scaleX(1.1); opacity:0.7; } }
@keyframes gak-stand { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gak-stand-other { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes gak-body { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(1px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes gak-blood { 0% { transform: scaleX(1) scaleY(1); opacity:0.4; } 50% { transform: scaleX(1.1) scaleY(0.9); opacity:0.7; } 100% { transform: scaleX(0.95) scaleY(1.05); opacity:0.5; } }
@keyframes gak-knife { 0% { transform: rotate(-40deg) translateX(0); } 50% { transform: rotate(-35deg) translateX(2px); } 100% { transform: rotate(-42deg) translateX(0); } }

/* Scene: colonel-house-patio (chp) */
.scn-colonel-house-patio {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4a76a 50%, #8b5e3c 100%),
              radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 60%);
}
.scn-colonel-house-patio .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #d4a76a 0%, #b8874e 100%);
  animation: chp-wall 15s ease-in-out infinite alternate;
}
.scn-colonel-house-patio .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #6b4226 0%, #a16b3b 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-colonel-house-patio .lattice {
  position: absolute; top: 20%; left: 15%; right: 15%; bottom: 40%;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 8px, rgba(0,0,0,0.2) 8px, rgba(0,0,0,0.2) 10px),
              repeating-linear-gradient(90deg, transparent 0px, transparent 8px, rgba(0,0,0,0.2) 8px, rgba(0,0,0,0.2) 10px);
  mask-image: radial-gradient(ellipse at 50% 60%, black 40%, transparent 70%);
  animation: chp-lattice 8s ease-in-out infinite alternate;
}
.scn-colonel-house-patio .light-ray {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, rgba(255,245,200,0.6) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: chp-light 4s ease-in-out infinite alternate;
}
.scn-colonel-house-patio .dancer {
  position: absolute; bottom: 30%; left: 40%; width: 40px; height: 70px;
  background: radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: chp-dancer 2s ease-in-out infinite;
}
.scn-colonel-house-patio .tambourine {
  position: absolute; bottom: 42%; left: 32%; width: 20px; height: 20px;
  border-radius: 50%;
  background: radial-gradient(circle, #c8553d 0%, #8a2e1a 100%);
  box-shadow: 0 0 8px 2px rgba(200,85,61,0.6);
  animation: chp-tambourine 0.8s ease-in-out infinite alternate;
}
.scn-colonel-house-patio .shadow {
  position: absolute; bottom: 30%; left: 35%; right: 35%; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: chp-shadow 2s ease-in-out infinite;
}
@keyframes chp-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes chp-lattice { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(.98) } }
@keyframes chp-light { 0% { opacity: .4; transform: skewX(2deg) } 50% { opacity: .7; transform: skewX(-1deg) } 100% { opacity: .3; transform: skewX(0deg) } }
@keyframes chp-dancer { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-10px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-8px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes chp-tambourine { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(15deg) scale(1.1) } 100% { transform: rotate(-5deg) scale(.95) } }
@keyframes chp-shadow { 0% { opacity: .3; transform: scaleX(1) } 25% { opacity: .5; transform: scaleX(1.3) } 50% { opacity: .4; transform: scaleX(.8) } 75% { opacity: .6; transform: scaleX(1.1) } 100% { opacity: .3; transform: scaleX(1) } }

/* Scene: carmen-invitation (ca) */
.scn-carmen-invitation {
  background: linear-gradient(180deg, #fdf4e3 0%, #e8c9a0 30%, #c49a6c 100%),
              radial-gradient(ellipse at 50% 100%, #fff8e0 0%, transparent 60%);
}
.scn-carmen-invitation .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffe8c8 0%, #fdf4e3 100%);
  animation: ca-sky 20s ease-in-out infinite alternate;
}
.scn-carmen-invitation .road {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b8886a 0%, #8a663e 100%);
  border-radius: 10% 10% 0 0;
}
.scn-carmen-invitation .building-left {
  position: absolute; bottom: 30%; left: 0; width: 30%; height: 45%;
  background: linear-gradient(90deg, #d4b48c 0%, #bf9a70 100%);
  border-radius: 8% 0 0 0;
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.3);
  animation: ca-buildings 12s ease-in-out infinite alternate;
}
.scn-carmen-invitation .building-right {
  position: absolute; bottom: 30%; right: 0; width: 35%; height: 50%;
  background: linear-gradient(270deg, #d4b48c 0%, #bf9a70 100%);
  border-radius: 0 8% 0 0;
  box-shadow: inset 8px 0 12px rgba(0,0,0,0.3);
  animation: ca-buildings 14s ease-in-out infinite alternate-reverse;
}
.scn-carmen-invitation .carriage {
  position: absolute; bottom: 28%; left: 20%; width: 80px; height: 50px;
  background: linear-gradient(135deg, #5e3a1a 0%, #3a220e 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: ca-carriage 8s ease-in-out infinite;
}
.scn-carmen-invitation .carmen {
  position: absolute; bottom: 32%; left: 30%; width: 30px; height: 60px;
  background: radial-gradient(ellipse at 50% 20%, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-carmen 6s ease-in-out infinite alternate;
}
.scn-carmen-invitation .shadow {
  position: absolute; bottom: 20%; left: 25%; width: 100px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: ca-shadow 8s ease-in-out infinite;
}
@keyframes ca-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes ca-buildings { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes ca-carriage { 0% { transform: translateX(0) } 25% { transform: translateX(15px) } 50% { transform: translateX(-10px) } 75% { transform: translateX(8px) } 100% { transform: translateX(0) } }
@keyframes ca-carmen { 0% { transform: translateX(0) rotate(-5deg) } 30% { transform: translateX(5px) rotate(3deg) } 60% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ca-shadow { 0% { opacity: .3; transform: scaleX(1) } 50% { opacity: .5; transform: scaleX(1.5) } 100% { opacity: .2; transform: scaleX(.8) } }

/* Scene: triana-fritata (tf) */
.scn-triana-fritata {
  background: linear-gradient(180deg, #d9b382 0%, #b78a5c 40%, #8a5e32 100%),
              radial-gradient(ellipse at 50% 100%, #ffd899 0%, transparent 60%);
}
.scn-triana-fritata .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c49a6c 0%, #a37a4a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
  animation: tf-wall 18s ease-in-out infinite alternate;
}
.scn-triana-fritata .window {
  position: absolute; top: 10%; left: 25%; width: 50%; height: 40%;
  background: radial-gradient(ellipse at 50% 40%, #fff8e0 0%, #f0d0a0 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 0 30px 10px rgba(255,248,224,0.4);
  animation: tf-window 5s ease-in-out infinite alternate;
}
.scn-triana-fritata .table {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #a46b3e 0%, #7a4d2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-triana-fritata .plate {
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 10%;
  background: radial-gradient(ellipse, #e0d0b8 0%, #c0a88a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tf-plate 3s ease-in-out infinite alternate;
}
.scn-triana-fritata .fish {
  position: absolute; bottom: 27%; left: 40%; width: 12%; height: 6%;
  background: linear-gradient(135deg, #b87878 0%, #8a4a4a 100%);
  border-radius: 40% 60% 40% 60% / 50% 50% 50% 50%;
  transform: rotate(10deg);
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: tf-fish 4s ease-in-out infinite;
}
.scn-triana-fritata .cat {
  position: absolute; bottom: 20%; left: 55%; width: 25px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tf-cat 6s ease-in-out infinite alternate;
}
.scn-triana-fritata .stool {
  position: absolute; bottom: 10%; right: 20%; width: 40px; height: 15px;
  background: linear-gradient(180deg, #5e3a1a 0%, #3a220e 100%);
  border-radius: 20% 20% 0 0;
}
@keyframes tf-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes tf-window { 0% { opacity: .6; transform: scaleY(1) } 50% { opacity: .9; transform: scaleY(1.05) } 100% { opacity: .5; transform: scaleY(.95) } }
@keyframes tf-plate { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tf-fish { 0% { transform: rotate(5deg) scale(1) } 50% { transform: rotate(-5deg) scale(1.1) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes tf-cat { 0% { transform: translateX(0) rotate(-3deg) } 30% { transform: translateX(5px) rotate(2deg) } 60% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* Scene: triana-walk (tw) */
.scn-triana-walk {
  background: linear-gradient(180deg, #fdf4e3 0%, #e8c9a0 40%, #c49a6c 100%),
              radial-gradient(ellipse at 50% 100%, #fffbe8 0%, transparent 60%);
}
.scn-triana-walk .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffe8c8 0%, #fdf4e3 100%);
  animation: tw-sky 15s ease-in-out infinite alternate;
}
.scn-triana-walk .ground {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b8886a 0%, #8a663e 100%);
  border-radius: 20% 20% 0 0;
}
.scn-triana-walk .building {
  position: absolute; bottom: 25%; left: 5%; width: 40%; height: 45%;
  background: linear-gradient(90deg, #d4b48c 0%, #bf9a70 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.2);
  animation: tw-building 20s ease-in-out infinite alternate;
}
.scn-triana-walk .figure-left {
  position: absolute; bottom: 22%; left: 25%; width: 24px; height: 50px;
  background: radial-gradient(ellipse at 50% 20%, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tw-figure-left 4s ease-in-out infinite;
}
.scn-triana-walk .figure-right {
  position: absolute; bottom: 22%; left: 40%; width: 22px; height: 48px;
  background: radial-gradient(ellipse at 50% 20%, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tw-figure-right 4s ease-in-out infinite alternate;
}
.scn-triana-walk .coin {
  position: absolute; bottom: 28%; left: 33%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,215,0,0.5);
  animation: tw-coin 4s ease-in-out infinite;
}
.scn-triana-walk .shadow-ground {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: tw-shadow 4s ease-in-out infinite;
}
@keyframes tw-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes tw-building { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(.97) } }
@keyframes tw-figure-left { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(6px) rotate(1deg) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(18px) rotate(2deg) } 100% { transform: translateX(24px) rotate(0deg) } }
@keyframes tw-figure-right { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-4px) rotate(-2deg) } 50% { transform: translateX(-8px) rotate(1deg) } 75% { transform: translateX(-12px) rotate(-1deg) } 100% { transform: translateX(-16px) rotate(0deg) } }
@keyframes tw-coin { 0% { opacity: 0; transform: translateY(10px) scale(.5) } 20% { opacity: 1; transform: translateY(0) scale(1) } 80% { opacity: 1; transform: translateY(0) scale(1) } 100% { opacity: 0; transform: translateY(-5px) scale(.5) } }
@keyframes tw-shadow { 0% { opacity: .2; transform: scaleX(1) } 25% { opacity: .4; transform: scaleX(1.2) } 50% { opacity: .3; transform: scaleX(.8) } 75% { opacity: .5; transform: scaleX(1.1) } 100% { opacity: .2; transform: scaleX(1) } }

/* carmen-gibraltar-plan - dark calm planning */
.scn-carmen-gibraltar-plan {
  background: linear-gradient(180deg, #0b0b1a 0%, #1a1a3e 40%, #2c1f3a 100%), radial-gradient(ellipse at 50% 100%, #3a2a4a 0%, transparent 70%);
}
.scn-carmen-gibraltar-plan .bg-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1e3a 0%, transparent 100%);
  animation: cgp-sky 12s ease-in-out infinite alternate;
}
.scn-carmen-gibraltar-plan .bg-mountains {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 40% 60% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: cgp-mountains 18s ease-in-out infinite alternate;
}
.scn-carmen-gibraltar-plan .table {
  position: absolute; bottom: 15%; left: 50%; width: 160px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-carmen-gibraltar-plan .map {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 70px;
  transform: translateX(-50%) rotate(2deg);
  background: linear-gradient(135deg, #c8a878 0%, #a08050 60%, #907040 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,.4), inset 0 0 8px rgba(100,80,40,.2);
  animation: cgp-map 20s ease-in-out infinite;
}
.scn-carmen-gibraltar-plan .figure-sit {
  position: absolute; bottom: 25%; left: 35%; width: 30px; 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: cgp-figure 5s ease-in-out infinite;
}
.scn-carmen-gibraltar-plan .lantern-glow {
  position: absolute; bottom: 30%; left: 55%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd070 0%, #b08030 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 8px #c08030, 0 0 40px 16px rgba(192,128,48,.4);
  animation: cgp-lantern 4s ease-in-out infinite alternate;
}
.scn-carmen-gibraltar-plan .shadow-cast {
  position: absolute; bottom: 24%; left: 38%; width: 50px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 50%;
  transform: rotate(-10deg);
  animation: cgp-shadow 5s ease-in-out infinite;
}
@keyframes cgp-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cgp-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes cgp-map { 0% { transform: translateX(-50%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(0deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(1.5deg) } }
@keyframes cgp-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(1px) rotate(-0.5deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes cgp-lantern { 0% { box-shadow: 0 0 15px 6px #c08030, 0 0 30px 12px rgba(192,128,48,.3); opacity:.8 } 50% { box-shadow: 0 0 25px 10px #ffd060, 0 0 50px 20px rgba(255,208,96,.4); opacity:1 } 100% { box-shadow: 0 0 18px 7px #c08030, 0 0 35px 14px rgba(192,128,48,.35); opacity:.9 } }
@keyframes cgp-shadow { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-8deg) scaleX(1.1) } 100% { transform: rotate(-10deg) scaleX(1) } }

/* english-lords-robbery - night calm robber */
.scn-english-lords-robbery {
  background: linear-gradient(180deg, #0c0c24 0%, #1c1c40 50%, #2a2a4e 100%), radial-gradient(ellipse at 50% 100%, #3a3a5e 0%, transparent 70%);
}
.scn-english-lords-robbery .bg-night {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, transparent 100%);
  animation: elr-sky 15s ease-in-out infinite alternate;
}
.scn-english-lords-robbery .moon {
  position: absolute; top: 12%; left: 60%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d0d0f0 0%, #a0a0d0 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(160,160,208,.4), 0 0 60px 24px rgba(160,160,208,.2);
  animation: elr-moon 10s ease-in-out infinite alternate;
}
.scn-english-lords-robbery .mountains {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a30 100%);
  clip-path: polygon(0% 100%, 10% 40%, 20% 30%, 35% 45%, 50% 20%, 65% 35%, 80% 25%, 90% 40%, 100% 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: elr-mountains 20s ease-in-out infinite alternate;
}
.scn-english-lords-robbery .road {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(90deg, transparent, #3a3a4e 10%, #2a2a3e 50%, #3a3a4e 90%, transparent);
  border-radius: 2px;
  animation: elr-road 8s linear infinite alternate;
}
.scn-english-lords-robbery .horse-rider {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: elr-rider 6s ease-in-out infinite;
}
.scn-english-lords-robbery .cloud-a {
  position: absolute; top: 20%; left: 10%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(200,200,220,.3) 0%, rgba(200,200,220,.05) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: elr-drift-a 40s linear infinite;
}
.scn-english-lords-robbery .cloud-b {
  position: absolute; top: 30%; right: 15%; width: 50px; height: 12px;
  background: linear-gradient(180deg, rgba(200,200,220,.25) 0%, rgba(200,200,220,.03) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: elr-drift-b 50s linear infinite reverse;
}
@keyframes elr-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes elr-moon { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 12px rgba(160,160,208,.4); } 50% { transform: translateY(-2px) scale(1.02); box-shadow: 0 0 40px 16px rgba(160,160,208,.5); } 100% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 12px rgba(160,160,208,.4); } }
@keyframes elr-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes elr-road { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes elr-rider { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(1px) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes elr-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes elr-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* sierra-de-ronda - moonlit calm couple */
.scn-sierra-de-ronda {
  background: linear-gradient(180deg, #12123a 0%, #1e1e4a 40%, #2c2c54 100%), radial-gradient(ellipse at 50% 100%, #3a3a6a 0%, transparent 70%);
}
.scn-sierra-de-ronda .bg-moonlit {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a4a 0%, transparent 100%);
  animation: sdr-bg 15s ease-in-out infinite alternate;
}
.scn-sierra-de-ronda .stars {
  position: absolute; top: 5%; left: 0; right: 0; height: 30%;
  background: radial-gradient(1px 1px at 10% 20%, #fff, transparent),
              radial-gradient(1px 1px at 30% 10%, #fff, transparent),
              radial-gradient(1px 1px at 50% 30%, #fff, transparent),
              radial-gradient(1px 1px at 70% 15%, #fff, transparent),
              radial-gradient(1px 1px at 90% 25%, #fff, transparent),
              radial-gradient(2px 2px at 20% 8%, #fff, transparent);
  background-size: 100% 100%;
  animation: sdr-stars 30s linear infinite;
}
.scn-sierra-de-ronda .moon-crescent {
  position: absolute; top: 10%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle at 55% 50%, #e0e0f0 0%, #b0b0d0 70%, transparent 72%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(180,180,220,.3);
  animation: sdr-moon 12s ease-in-out infinite alternate;
}
.scn-sierra-de-ronda .ridge {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2a52 0%, #1a1a3a 100%);
  clip-path: polygon(0% 100%, 15% 45%, 30% 55%, 50% 40%, 70% 50%, 85% 35%, 100% 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: sdr-ridge 20s ease-in-out infinite alternate;
}
.scn-sierra-de-ronda .figure-left {
  position: absolute; bottom: 30%; left: 35%; width: 24px; 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: sdr-fig-left 6s ease-in-out infinite;
}
.scn-sierra-de-ronda .figure-right {
  position: absolute; bottom: 30%; left: 48%; width: 22px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sdr-fig-right 6s ease-in-out infinite 0.5s;
}
.scn-sierra-de-ronda .blanket {
  position: absolute; bottom: 27%; left: 38%; width: 30px; height: 8px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(-5deg);
  animation: sdr-blanket 8s ease-in-out infinite;
}
@keyframes sdr-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sdr-stars { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes sdr-moon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes sdr-ridge { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes sdr-fig-left { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(1px) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes sdr-fig-right { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(1px) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes sdr-blanket { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(-3deg) scaleX(1.1) } 100% { transform: rotate(-5deg) scaleX(1) } }

/* decision-to-go-to-gibraltar - tense moonlit council */
.scn-decision-to-go-to-gibraltar {
  background: linear-gradient(180deg, #0a0a1e 0%, #14143a 40%, #1e1e48 100%), radial-gradient(ellipse at 50% 100%, #2a2a5a 0%, transparent 70%);
}
.scn-decision-to-go-to-gibraltar .bg-tense-night {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1c1c3e 0%, transparent 100%);
  animation: dtg-sky 8s ease-in-out infinite alternate;
}
.scn-decision-to-go-to-gibraltar .moon-faint {
  position: absolute; top: 8%; left: 70%; width: 35px; height: 35px;
  background: radial-gradient(circle, #c0c0d8 0%, #9090b0 80%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px rgba(144,144,176,.3);
  opacity: 0.7;
  animation: dtg-moon 10s ease-in-out infinite alternate;
}
.scn-decision-to-go-to-gibraltar .table-tense {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%);
  border-radius: 3px;
  box-shadow: 0 4px 8px rgba(0,0,0,.7);
  animation: dtg-table 5s ease-in-out infinite;
}
.scn-decision-to-go-to-gibraltar .figure-left {
  position: absolute; bottom: 25%; left: 30%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dtg-figure 4s ease-in-out infinite;
}
.scn-decision-to-go-to-gibraltar .figure-center {
  position: absolute; bottom: 25%; left: 48%; width: 26px; height: 46px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dtg-figure 4s ease-in-out infinite 0.3s;
}
.scn-decision-to-go-to-gibraltar .figure-right {
  position: absolute; bottom: 25%; right: 30%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dtg-figure 4s ease-in-out infinite 0.6s;
}
.scn-decision-to-go-to-gibraltar .lantern-pulse {
  position: absolute; bottom: 30%; left: 45%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffb040 0%, #b07020 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 25px 10px #b07020, 0 0 50px 20px rgba(176,112,32,.3);
  animation: dtg-lantern 2s ease-in-out infinite alternate;
}
.scn-decision-to-go-to-gibraltar .shadow-sharp {
  position: absolute; bottom: 24%; left: 35%; width: 80px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.7) 0%, transparent 100%);
  border-radius: 50%;
  transform: rotate(-3deg);
  animation: dtg-shadow 3s ease-in-out infinite;
}
@keyframes dtg-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes dtg-moon { 0% { transform: translateY(0) scale(1); opacity:.7 } 50% { transform: translateY(-1px) scale(1.01); opacity:.8 } 100% { transform: translateY(0) scale(1); opacity:.7 } }
@keyframes dtg-table { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes dtg-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes dtg-lantern { 0% { box-shadow: 0 0 15px 6px #b07020, 0 0 30px 12px rgba(176,112,32,.3); opacity:.8 } 50% { box-shadow: 0 0 30px 12px #ffb040, 0 0 60px 24px rgba(255,176,64,.5); opacity:1 } 100% { box-shadow: 0 0 20px 8px #b07020, 0 0 40px 16px rgba(176,112,32,.35); opacity:.9 } }
@keyframes dtg-shadow { 0% { transform: rotate(-3deg) scaleX(1) } 50% { transform: rotate(-1deg) scaleX(1.2) } 100% { transform: rotate(-3deg) scaleX(1) } }

.scn-journey-to-gibraltar {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f4d03f 60%, #e67e22 100%),
    radial-gradient(ellipse at 50% 0%, #fff9c4 0%, transparent 60%);
}
.scn-journey-to-gibraltar .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a0d8ef 0%, #f7dc6f 100%);
  animation: jg-sky 15s ease-in-out infinite alternate;
}
.scn-journey-to-gibraltar .sun {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffecb3 0%, #f39c12 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #f1c40f, 0 0 120px 60px rgba(241,196,15,0.3);
  animation: jg-sun 20s linear infinite alternate;
}
.scn-journey-to-gibraltar .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7d6608 0%, #5a3e1b 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: jg-hills 12s ease-in-out infinite alternate;
}
.scn-journey-to-gibraltar .path {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #d4a373 0%, #bc8f4f 100%);
  border-radius: 30% 70% 50% 50% / 100% 100% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.2);
}
.scn-journey-to-gibraltar .donkey {
  position: absolute; bottom: 22%; left: 30%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #8c6a4a 0%, #5c4033 100%);
  border-radius: 40% 20% 40% 20% / 80% 60% 40% 60%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: jg-donkey 6s ease-in-out infinite;
}
.scn-journey-to-gibraltar .figure {
  position: absolute; bottom: 20%; left: 48%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jg-figure 7s ease-in-out infinite;
}
.scn-journey-to-gibraltar .cloud {
  position: absolute; top: 12%; left: 20%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: jg-cloud 40s linear infinite;
}
.scn-journey-to-gibraltar .dust {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 12px;
  background: radial-gradient(ellipse, rgba(210,180,140,0.6) 0%, transparent 100%);
  filter: blur(4px);
  animation: jg-dust 8s ease-in-out infinite;
}
@keyframes jg-sky     { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes jg-sun     { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(-15px,5px) scale(1.05) } 100% { transform: translate(10px,-3px) scale(0.95) } }
@keyframes jg-hills   { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes jg-donkey  { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes jg-figure  { 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(0deg) } }
@keyframes jg-cloud   { 0% { transform: translateX(0) } 50% { transform: translateX(80vw) } 100% { transform: translateX(0) } }
@keyframes jg-dust    { 0% { transform:scale(1); opacity:0.6 } 50% { transform:scale(1.3); opacity:0.2 } 100% { transform:scale(1); opacity:0.6 } }

.scn-gibraltar-fruit-seller {
  background:
    linear-gradient(180deg, #f0e68c 0%, #d4a373 40%, #c0855a 100%),
    radial-gradient(ellipse at 50% 0%, #fffacd 0%, transparent 50%);
}
.scn-gibraltar-fruit-seller .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #fff9c4 0%, #f0e68c 100%);
  animation: gfs-sky 10s ease-in-out infinite alternate;
}
.scn-gibraltar-fruit-seller .building-left {
  position: absolute; left: 0; top: 8%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #c8a27a 0%, #a07658 100%);
  border-radius: 0 5% 0 0;
  box-shadow: inset -8px 0 15px rgba(0,0,0,0.3);
}
.scn-gibraltar-fruit-seller .building-right {
  position: absolute; right: 0; top: 5%; width: 45%; height: 75%;
  background: linear-gradient(180deg, #d4b48a 0%, #b08c62 100%);
  border-radius: 5% 0 0 0;
  box-shadow: inset 8px 0 15px rgba(0,0,0,0.3);
}
.scn-gibraltar-fruit-seller .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c79b6e 0%, #a57a4e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-gibraltar-fruit-seller .figure-a {
  position: absolute; bottom: 10%; left: 20%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #5c4033 0%, #2c1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gfs-figure-a 3s ease-in-out infinite;
}
.scn-gibraltar-fruit-seller .figure-b {
  position: absolute; bottom: 8%; left: 50%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1e140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gfs-figure-b 2.5s ease-in-out infinite;
}
.scn-gibraltar-fruit-seller .figure-c {
  position: absolute; bottom: 12%; left: 70%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #6b4e3a 0%, #362418 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gfs-figure-c 3.7s ease-in-out infinite;
}
.scn-gibraltar-fruit-seller .shadow {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  filter: blur(4px);
  animation: gfs-shadow 4s ease-in-out infinite;
}
@keyframes gfs-sky       { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes gfs-figure-a  { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(5px) rotate(-3deg) } 50% { transform:translateX(10px) rotate(0deg) } 75% { transform:translateX(5px) rotate(3deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes gfs-figure-b  { 0% { transform:translateX(0) translateY(0) scaleY(1) } 30% { transform:translateX(-4px) translateY(-2px) scaleY(1.05) } 60% { transform:translateX(-8px) translateY(0) scaleY(1) } 100% { transform:translateX(-12px) translateY(0) scaleY(1) } }
@keyframes gfs-figure-c  { 0% { transform:translateX(0) rotate(0deg) } 20% { transform:translateX(2px) rotate(2deg) } 40% { transform:translateX(4px) rotate(-2deg) } 60% { transform:translateX(2px) rotate(2deg) } 80% { transform:translateX(0) rotate(-2deg) } 100% { transform:translateX(-2px) rotate(0deg) } }
@keyframes gfs-shadow    { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

.scn-finding-carmen-gibraltar {
  background:
    linear-gradient(180deg, #2c3e50 0%, #4a235a 30%, #1a1a2e 70%),
    radial-gradient(ellipse at 50% 100%, #6c3483 0%, transparent 60%);
}
.scn-finding-carmen-gibraltar .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #34495e 0%, #4a235a 100%);
  animation: fcg-sky 15s ease-in-out infinite alternate;
}
.scn-finding-carmen-gibraltar .facade {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 70%;
  background: linear-gradient(180deg, #5b3a4a 0%, #2a1a2a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 -8px 15px rgba(0,0,0,0.5);
}
.scn-finding-carmen-gibraltar .balcony {
  position: absolute; bottom: 52%; left: 35%; right: 35%; height: 10%;
  background: linear-gradient(180deg, #4a3040 0%, #2a1a28 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 2px 10px rgba(0,0,0,0.6);
}
.scn-finding-carmen-gibraltar .carmen {
  position: absolute; bottom: 58%; left: 38%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #702243 0%, #4a1429 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 15px 5px rgba(112,34,67,0.4);
  animation: fcg-carmen 4s ease-in-out infinite;
}
.scn-finding-carmen-gibraltar .officer {
  position: absolute; bottom: 58%; left: 48%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0d0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px 2px rgba(94,26,29,0.3);
  animation: fcg-officer 5s ease-in-out infinite;
}
.scn-finding-carmen-gibraltar .lamp {
  position: absolute; bottom: 65%; left: 30%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #daa520, 0 0 40px 15px rgba(218,165,32,0.3);
  animation: fcg-lamp 2s ease-in-out infinite alternate;
}
.scn-finding-carmen-gibraltar .glow {
  position: absolute; bottom: 60%; left: 25%; right: 25%; height: 20%;
  background: radial-gradient(ellipse at 30% 50%, rgba(255,215,0,0.15) 0%, transparent 100%);
  filter: blur(6px);
  animation: fcg-glow 3s ease-in-out infinite alternate;
}
.scn-finding-carmen-gibraltar .shrub {
  position: absolute; bottom: 20%; left: 15%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, #1e5631 0%, #0d1f12 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: fcg-shrub 12s ease-in-out infinite alternate;
}
@keyframes fcg-sky     { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes fcg-carmen  { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-3px) rotate(2deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes fcg-officer { 0% { transform:translateX(0) translateY(0) } 30% { transform:translateX(2px) translateY(-1px) } 60% { transform:translateX(-2px) translateY(1px) } 100% { transform:translateX(0) translateY(0) } }
@keyframes fcg-lamp   { 0% { box-shadow:0 0 15px 5px #daa520, 0 0 30px 10px rgba(218,165,32,0.2); opacity:0.7 } 50% { box-shadow:0 0 25px 10px #ffd700, 0 0 50px 20px rgba(255,215,0,0.5); opacity:1 } 100% { box-shadow:0 0 18px 6px #daa520, 0 0 35px 12px rgba(218,165,32,0.25); opacity:0.8 } }
@keyframes fcg-glow   { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes fcg-shrub  { 0% { transform:scaleY(1) } 50% { transform:scaleY(0.9) } 100% { transform:scaleY(1) } }

.scn-englishman-house {
  background:
    linear-gradient(180deg, #f5deb3 0%, #deb887 40%, #c4956a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 50%);
}
.scn-englishman-house .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0d9b5 0%, #d8b88a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.1);
}
.scn-englishman-house .window {
  position: absolute; top: 20%; left: 65%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  border: 6px solid #8b6f47;
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 30px rgba(135,206,235,0.4);
  animation: ewh-window 12s ease-in-out infinite alternate;
}
.scn-englishman-house .hearth {
  position: absolute; bottom: 10%; left: 10%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0e 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-englishman-house .table {
  position: absolute; bottom: 15%; left: 35%; right: 35%; height: 10%;
  background: linear-gradient(180deg, #a0724a 0%, #7a5430 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-englishman-house .carmen {
  position: absolute; bottom: 22%; left: 28%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0d0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: ewh-carmen 6s ease-in-out infinite;
}
.scn-englishman-house .englishman {
  position: absolute; bottom: 24%; left: 52%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #6b5b4e 0%, #3d2e24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: ewh-englishman 7s ease-in-out infinite;
}
.scn-englishman-house .candle {
  position: absolute; bottom: 28%; left: 50%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px #ffd700, 0 0 50px 20px rgba(255,215,0,0.4);
  animation: ewh-candle 2s ease-in-out infinite alternate;
}
.scn-englishman-house .warmth {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(255,215,0,0.15) 0%, transparent 70%);
  pointer-events: none;
  animation: ewh-warmth 4s ease-in-out infinite alternate;
}
@keyframes ewh-window      { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ewh-carmen      { 0% { transform:translateY(0) rotate(0deg) } 25% { transform:translateY(-2px) rotate(2deg) } 50% { transform:translateY(0) rotate(-1deg) } 75% { transform:translateY(-1px) rotate(1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes ewh-englishman  { 0% { transform:translateX(0) translateY(0) } 33% { transform:translateX(2px) translateY(-1px) } 66% { transform:translateX(-2px) translateY(1px) } 100% { transform:translateX(0) translateY(0) } }
@keyframes ewh-candle      { 0% { box-shadow:0 0 15px 5px #ffd700, 0 0 35px 12px rgba(255,215,0,0.3); opacity:0.7 } 50% { box-shadow:0 0 25px 10px #ffd700, 0 0 60px 25px rgba(255,215,0,0.6); opacity:1 } 100% { box-shadow:0 0 18px 6px #ffd700, 0 0 40px 15px rgba(255,215,0,0.35); opacity:0.8 } }
@keyframes ewh-warmth      { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

/* ── scene: tobacco-hospitality ── */
.scn-tobacco-hospitality {
  background:
    linear-gradient(135deg, #f9e6b3 0%, #e8c87a 50%, #c9a15b 100%),
    radial-gradient(ellipse at 30% 70%, #f2d9a0 0%, transparent 80%);
}
.scn-tobacco-hospitality .sun-bg { position:absolute; inset:0; background: linear-gradient(180deg, #fff7e0 0%, #fce4b0 40%, transparent 70%); animation: tb-sun 12s ease-in-out infinite alternate; }
.scn-tobacco-hospitality .wall   { position:absolute; top:15%; left:10%; right:10%; bottom:25%; background: linear-gradient(180deg, #d9b382 0%, #b58a5a 100%); border-radius:4px; box-shadow: inset 0 6px 12px rgba(0,0,0,.15); }
.scn-tobacco-hospitality .table  { position:absolute; bottom:18%; left:15%; right:15%; height:12%; background: linear-gradient(180deg, #8a6e4a 0%, #5c482e 100%); border-radius: 2px 2px 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,.3); }
.scn-tobacco-hospitality .hand-a { position:absolute; bottom:28%; left:8%; width:30px; height:45px; background: linear-gradient(135deg, #e8c8a0 0%, #c8a070 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(15deg); transform-origin: left 80%; animation: tb-hand-a 4s ease-in-out infinite; }
.scn-tobacco-hospitality .hand-b { position:absolute; bottom:28%; right:8%; width:30px; height:45px; background: linear-gradient(225deg, #dbb690 0%, #c09860 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(-15deg); transform-origin: right 80%; animation: tb-hand-b 4.5s ease-in-out infinite; }
.scn-tobacco-hospitality .cigar  { position:absolute; bottom:38%; left:43%; width:40px; height:6px; background: linear-gradient(90deg, #6b4226 0%, #a0673a 30%, #7a4f2e 60%, #3a2410 100%); border-radius:3px; transform: rotate(-5deg); animation: tb-cigar 3s ease-in-out infinite; }
.scn-tobacco-hospitality .ember  { position:absolute; bottom:38%; left:45%; width:8px; height:8px; background: radial-gradient(circle at 40% 40%, #ffa366 0%, #e65c00 60%, #b32400 100%); border-radius:50%; box-shadow: 0 0 12px 4px #ff6600, 0 0 24px 8px rgba(255,100,0,.3); animation: tb-ember 1.5s ease-in-out infinite alternate; }
.scn-tobacco-hospitality .smoke-1{ position:absolute; bottom:42%; left:46%; width:20px; height:20px; background: radial-gradient(circle, rgba(255,255,255,.5) 0%, rgba(200,180,150,.2) 70%, transparent 100%); border-radius:50%; filter: blur(4px); animation: tb-smoke 6s ease-out infinite; }
.scn-tobacco-hospitality .smoke-2{ position:absolute; bottom:40%; left:48%; width:16px; height:16px; background: radial-gradient(circle, rgba(255,240,220,.4) 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: tb-smoke2 8s ease-out infinite; animation-delay: 2s; }

@keyframes tb-sun { 0%{opacity:.85} 50%{opacity:1} 100%{opacity:.9} }
@keyframes tb-hand-a { 0%,100%{transform:rotate(15deg) translateY(0)} 50%{transform:rotate(18deg) translateY(-2px)} }
@keyframes tb-hand-b { 0%,100%{transform:rotate(-15deg) translateY(0)} 50%{transform:rotate(-12deg) translateY(-1px)} }
@keyframes tb-cigar { 0%,100%{transform:rotate(-5deg) scaleX(1)} 50%{transform:rotate(-3deg) scaleX(1.02)} }
@keyframes tb-ember { 0%{box-shadow:0 0 10px 2px #ff6600; opacity:.8} 50%{box-shadow:0 0 20px 6px #ffa366; opacity:1} 100%{box-shadow:0 0 12px 3px #e65c00; opacity:.7} }
@keyframes tb-smoke { 0%{transform:translate(0,0) scale(1); opacity:.6} 100%{transform:translate(10px,-30px) scale(2); opacity:0} }
@keyframes tb-smoke2{ 0%{transform:translate(0,0) scale(1); opacity:.5} 100%{transform:translate(-8px,-40px) scale(2.5); opacity:0} }

/* ── scene: horse-expertise ── */
.scn-horse-expertise {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0f0 30%, #f0e68c 70%, #f5deb3 100%),
    radial-gradient(ellipse at 70% 20%, #fff4b0 0%, transparent 60%);
}
.scn-horse-expertise .sky   { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #a0d8ef 0%, #c8e8f8 60%, transparent 100%); animation: hx-sky 18s ease-in-out infinite alternate; }
.scn-horse-expertise .sun   { position:absolute; top:8%; left:75%; width:40px; height:40px; background: radial-gradient(circle at 30% 30%, #fff7c0 0%, #ffd700 60%, #ffaa00 100%); border-radius:50%; box-shadow: 0 0 30px 10px #ffd700; animation: hx-sun 20s ease-in-out infinite; }
.scn-horse-expertise .field { position:absolute; bottom:10%; left:0; right:0; height:55%; background: linear-gradient(180deg, #7a9e4a 0%, #5c7a3a 40%, #3e5a2a 100%); border-radius: 60% 40% 0 0 / 80% 50% 0 0; animation: hx-field 15s ease-in-out infinite alternate; }
.scn-horse-expertise .horse { position:absolute; bottom:30%; left:35%; width:80px; height:50px; background: linear-gradient(135deg, #6b5030 0%, #4a3520 50%, #2a1a10 100%); border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%; transform: scaleX(-1); animation: hx-horse 6s ease-in-out infinite; }
.scn-horse-expertise .man   { position:absolute; bottom:30%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; animation: hx-man 7s ease-in-out infinite; }
.scn-horse-expertise .fence { position:absolute; bottom:20%; right:10%; width:70px; height:4px; background: #5c4a32; border-radius:2px; box-shadow: 0 12px 0 #5c4a32, 0 24px 0 #5c4a32; animation: hx-fence 12s linear infinite; }
.scn-horse-expertise .tree  { position:absolute; bottom:45%; left:10%; width:40px; height:80px; background: linear-gradient(180deg, #3a6a2a 0%, #2a4a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: hx-tree 30s ease-in-out infinite alternate; }

@keyframes hx-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes hx-sun { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes hx-field { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes hx-horse { 0%{transform:scaleX(-1) translateY(0)} 25%{transform:scaleX(-1) translateY(-2px)} 50%{transform:scaleX(-1) translateY(0)} 75%{transform:scaleX(-1) translateY(-1px)} 100%{transform:scaleX(-1) translateY(0)} }
@keyframes hx-man { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes hx-fence { 0%{opacity:1} 50%{opacity:.6} 100%{opacity:1} }
@keyframes hx-tree { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} 100%{transform:scaleY(1)} }

/* ── scene: thirty-leagues-brag ── */
.scn-thirty-leagues-brag {
  background:
    linear-gradient(180deg, #2a2030 0%, #4a3050 30%, #8a6a50 60%, #c09060 100%),
    radial-gradient(ellipse at 50% 100%, #d4a070 0%, transparent 70%);
}
.scn-thirty-leagues-brag .sky-dusk { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2a4a 0%, #7a5a4a 60%, #c09060 100%); animation: slb-sky 15s ease-in-out infinite alternate; }
.scn-thirty-leagues-brag .sunset   { position:absolute; top:10%; left:60%; width:60px; height:30px; background: radial-gradient(ellipse at 50% 100%, #ffa060 0%, #d07040 50%, transparent 100%); border-radius:50%; animation: slb-sunset 20s ease-in-out infinite; }
.scn-thirty-leagues-brag .ground   { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; animation: slb-ground 10s ease-in-out infinite alternate; }
.scn-thirty-leagues-brag .horse-body { position:absolute; bottom:28%; left:25%; width:90px; height:40px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%; animation: slb-horse 1s ease-in-out infinite; }
.scn-thirty-leagues-brag .horse-legs { position:absolute; bottom:20%; left:28%; width:50px; height:50px; background: transparent; border-left: 4px solid #2a1a0a; border-right: 4px solid #2a1a0a; border-radius:0 0 50% 50%; transform: rotate(10deg); animation: slb-legs 0.8s linear infinite; }
.scn-thirty-leagues-brag .rider    { position:absolute; bottom:35%; left:30%; width:28px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform: rotate(5deg); animation: slb-rider 1s ease-in-out infinite; }
.scn-thirty-leagues-brag .dust     { position:absolute; bottom:15%; left:20%; width:80px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(180,150,100,.3) 0%, transparent 70%); filter: blur(5px); animation: slb-dust 2s ease-out infinite; }

@keyframes slb-sky { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8} }
@keyframes slb-sunset { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.1)} 100%{transform:scaleY(1)} }
@keyframes slb-ground { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes slb-horse { 0%{transform:translateX(0) scaleX(1)} 25%{transform:translateX(4px) scaleX(1.02)} 50%{transform:translateX(8px) scaleX(1)} 75%{transform:translateX(4px) scaleX(0.98)} 100%{transform:translateX(0) scaleX(1)} }
@keyframes slb-legs { 0%{transform:rotate(10deg) translateY(0)} 25%{transform:rotate(5deg) translateY(-2px)} 50%{transform:rotate(10deg) translateY(0)} 75%{transform:rotate(15deg) translateY(-2px)} 100%{transform:rotate(10deg) translateY(0)} }
@keyframes slb-rider { 0%{transform:rotate(5deg) translateY(0)} 50%{transform:rotate(8deg) translateY(-2px)} 100%{transform:rotate(5deg) translateY(0)} }
@keyframes slb-dust { 0%{transform:translateX(0) scale(1); opacity:.6} 100%{transform:translateX(30px) scale(1.5); opacity:0} }

/* ── scene: sharing-ham ── */
.scn-sharing-ham {
  background:
    linear-gradient(180deg, #2a2030 0%, #4a3a4a 30%, #6a5a4a 60%, #8a7a5a 100%),
    radial-gradient(ellipse at 30% 80%, #6a5a4a 0%, transparent 70%);
}
.scn-sharing-ham .bg-dusk      { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a3a 0%, #5a4a3a 50%, #7a6a4a 100%); animation: shh-bg 20s ease-in-out infinite alternate; }
.scn-sharing-ham .tree-branch  { position:absolute; top:0; left:10%; right:30%; height:30%; background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 100%); border-radius: 0 0 60% 40% / 0 0 80% 60%; animation: shh-branch 15s ease-in-out infinite alternate; }
.scn-sharing-ham .tablecloth   { position:absolute; bottom:15%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #c8b090 0%, #a08870 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: shh-cloth 8s ease-in-out infinite; }
.scn-sharing-ham .ham          { position:absolute; bottom:25%; left:40%; width:50px; height:30px; background: linear-gradient(135deg, #b08060 0%, #906040 50%, #704030 100%); border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: shh-ham 6s ease-in-out infinite; }
.scn-sharing-ham .plate        { position:absolute; bottom:22%; left:38%; width:60px; height:10px; background: linear-gradient(180deg, #e0d0c0 0%, #c0b0a0 100%); border-radius: 50%; animation: shh-plate 7s ease-in-out infinite; }
.scn-sharing-ham .figure-left  { position:absolute; bottom:15%; left:15%; width:30px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform: rotate(5deg); animation: shh-fig-l 5s ease-in-out infinite; }
.scn-sharing-ham .figure-right { position:absolute; bottom:15%; right:15%; width:30px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform: rotate(-5deg); animation: shh-fig-r 5.5s ease-in-out infinite; }
.scn-sharing-ham .stream       { position:absolute; bottom:5%; left:0; right:0; height:10%; background: linear-gradient(90deg, #4a7a9a 0%, #6a9aba 50%, #4a7a9a 100%); border-radius: 0 0 20% 20%; filter: blur(2px); animation: shh-stream 12s linear infinite; }

@keyframes shh-bg { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes shh-branch { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.03)} 100%{transform:scaleY(1)} }
@keyframes shh-cloth { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes shh-ham { 0%{transform:rotate(0deg)} 25%{transform:rotate(2deg)} 50%{transform:rotate(0deg)} 75%{transform:rotate(-2deg)} 100%{transform:rotate(0deg)} }
@keyframes shh-plate { 0%{transform:scale(1)} 50%{transform:scale(1.02)} 100%{transform:scale(1)} }
@keyframes shh-fig-l { 0%{transform:rotate(5deg) translateY(0)} 50%{transform:rotate(7deg) translateY(-2px)} 100%{transform:rotate(5deg) translateY(0)} }
@keyframes shh-fig-r { 0%{transform:rotate(-5deg) translateY(0)} 50%{transform:rotate(-3deg) translateY(-2px)} 100%{transform:rotate(-5deg) translateY(0)} }
@keyframes shh-stream { 0%{background-position:0% 50%} 100%{background-position:100% 50%} }

.scn-after-fight {
  background: 
    linear-gradient(180deg, #0d0d1a 0%, #1a0f0f 40%, #0a0508 100%),
    radial-gradient(ellipse at 50% 70%, #1a0f0f 0%, transparent 70%);
}

.scn-after-fight .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,10,10,0.6) 0%, rgba(5,0,0,0.8) 100%);
}

.scn-after-fight .candle {
  position: absolute; bottom: 50%; left: 30%;
  width: 6px; height: 24px;
  background: linear-gradient(180deg, #8c6a3a 0%, #5a4020 100%);
  border-radius: 3px 3px 2px 2px;
  transform-origin: bottom center;
  animation: af-candle 4s ease-in-out infinite alternate;
}

.scn-after-fight .candle-glow {
  position: absolute; bottom: 62%; left: calc(30% + 3px);
  width: 50px; height: 50px;
  background: radial-gradient(circle, #ffb84d 0%, #cc7a30 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: af-glow 2s ease-in-out infinite alternate;
}

.scn-after-fight .figure-silhouette {
  position: absolute; bottom: 10%; left: 50%;
  width: 80px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0f0f 0%, #050200 60%, #000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: af-figure 6s ease-in-out infinite;
}

.scn-after-fight .wound {
  position: absolute; bottom: 55%; left: 50%;
  width: 12px; height: 8px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #4a1a1a 0%, #2a0a0a 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 4px 2px rgba(74,26,26,0.6);
  animation: af-wound 3s ease-in-out infinite alternate;
}

.scn-after-fight .handkerchief {
  position: absolute; bottom: 45%; left: 45%;
  width: 40px; height: 30px;
  background: linear-gradient(135deg, #d4c9b8 0%, #a89880 100%);
  border-radius: 10% 10% 30% 20% / 20% 30% 20% 30%;
  transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: af-handkerchief 5s ease-in-out infinite alternate;
}

.scn-after-fight .shadow {
  position: absolute; bottom: 5%; left: 0; right: 0;
  height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.7) 0%, transparent 80%);
  animation: af-shadow 8s ease-in-out infinite alternate;
}

@keyframes af-candle {
  0% { transform: rotate(-2deg) scaleY(1); opacity: 0.9; }
  50% { transform: rotate(1deg) scaleY(1.05); opacity: 1; }
  100% { transform: rotate(-1deg) scaleY(0.95); opacity: 0.85; }
}
@keyframes af-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}
@keyframes af-figure {
  0% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  30% { transform: translateX(-50%) rotate(1deg) translateY(-2px); }
  70% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
  100% { transform: translateX(-50%) rotate(0deg) translateY(-1px); }
}
@keyframes af-wound {
  0% { opacity: 0.6; transform: translateX(-50%) scale(1); }
  50% { opacity: 0.9; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.5; transform: translateX(-50%) scale(0.9); }
}
@keyframes af-handkerchief {
  0% { transform: rotate(12deg) translate(0,0); }
  50% { transform: rotate(18deg) translate(3px,-2px); }
  100% { transform: rotate(14deg) translate(0,0); }
}
@keyframes af-shadow {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.1); }
  100% { opacity: 0.4; transform: scaleY(0.9); }
}

/* disguise-recovery */
.scn-disguise-recovery {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #0f0f1a 40%, #050510 100%),
    radial-gradient(ellipse at 30% 50%, #2a2a3a 0%, transparent 60%);
}

.scn-disguise-recovery .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,20,30,0.5) 0%, rgba(0,0,5,0.8) 100%);
}

.scn-disguise-recovery .mirror-frame {
  position: absolute; top: 20%; right: 30%;
  width: 120px; height: 160px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 8%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: dr-mirror 6s ease-in-out infinite alternate;
}

.scn-disguise-recovery .mirror-glass {
  position: absolute; top: calc(20% + 8px); right: calc(30% + 8px);
  width: 104px; height: 144px;
  background: linear-gradient(180deg, rgba(100,120,140,0.15) 0%, rgba(30,40,60,0.25) 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: dr-glass 8s ease-in-out infinite;
}

.scn-disguise-recovery .figure {
  position: absolute; bottom: 10%; left: 50%;
  width: 70px; height: 150px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1320 0%, #0a0510 60%, #000 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  animation: dr-figure 5s ease-in-out infinite;
}

.scn-disguise-recovery .peasant-hat {
  position: absolute; bottom: 80%; left: 48%;
  width: 70px; height: 20px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(-8deg);
  animation: dr-hat 7s ease-in-out infinite alternate;
}

.scn-disguise-recovery .cloak {
  position: absolute; bottom: 10%; left: 40%;
  width: 90px; height: 120px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  transform-origin: top center;
  animation: dr-cloak 4s ease-in-out infinite;
}

.scn-disguise-recovery .head-bandage {
  position: absolute; bottom: 75%; left: 50%;
  width: 40px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4c9b8 0%, #b8a88a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: dr-bandage 3s ease-in-out infinite alternate;
}

@keyframes dr-mirror {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(3deg) scale(0.98); }
  100% { transform: rotate(-2deg) scale(1.01); }
}
@keyframes dr-glass {
  0% { opacity: 0.2; }
  50% { opacity: 0.4; }
  100% { opacity: 0.25; }
}
@keyframes dr-figure {
  0% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  40% { transform: translateX(-50%) rotate(2deg) translateY(-2px); }
  80% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
  100% { transform: translateX(-50%) rotate(0deg) translateY(-1px); }
}
@keyframes dr-hat {
  0% { transform: rotate(-6deg) translate(0,0); }
  50% { transform: rotate(-10deg) translate(5px,-2px); }
  100% { transform: rotate(-7deg) translate(0,0); }
}
@keyframes dr-cloak {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(2deg) scaleX(1.02); }
  100% { transform: rotate(-1deg) scaleX(0.98); }
}
@keyframes dr-bandage {
  0% { opacity: 0.6; transform: translateX(-50%) scaleX(1); }
  50% { opacity: 0.9; transform: translateX(-50%) scaleX(1.1); }
  100% { opacity: 0.7; transform: translateX(-50%) scaleX(0.95); }
}

/* soporific-sleep */
.scn-soporific-sleep {
  background:
    linear-gradient(180deg, #1a2030 0%, #0f1525 40%, #0a0e1a 100%),
    radial-gradient(ellipse at 50% 30%, #2a3050 0%, transparent 60%);
}

.scn-soporific-sleep .room-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(15,20,30,0.6) 0%, rgba(5,8,15,0.8) 100%);
}

.scn-soporific-sleep .window {
  position: absolute; top: 10%; right: 20%;
  width: 80px; height: 120px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 6%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: ss-window 10s ease-in-out infinite alternate;
}

.scn-soporific-sleep .moonbeam {
  position: absolute; top: 10%; right: 20%;
  width: 70px; height: 200px;
  background: linear-gradient(180deg, rgba(200,220,255,0.1) 0%, rgba(200,220,255,0.03) 100%);
  border-radius: 0 0 20% 20%;
  filter: blur(4px);
  animation: ss-moonbeam 12s ease-in-out infinite;
}

.scn-soporific-sleep .bed {
  position: absolute; bottom: 10%; left: 15%;
  width: 70%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.6);
  animation: ss-bed 8s ease-in-out infinite alternate;
}

.scn-soporific-sleep .figure-sleeping {
  position: absolute; bottom: 25%; left: 30%;
  width: 80px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(10deg);
  animation: ss-figure 4s ease-in-out infinite;
}

.scn-soporific-sleep .nightstand {
  position: absolute; bottom: 15%; left: 15%;
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}

.scn-soporific-sleep .glass {
  position: absolute; bottom: 40%; left: 17%;
  width: 18px; height: 24px;
  background: linear-gradient(180deg, rgba(200,220,255,0.2) 0%, rgba(150,180,220,0.1) 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 6px rgba(200,220,255,0.3);
  animation: ss-glass 6s ease-in-out infinite alternate;
}

@keyframes ss-window {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.02); }
  100% { opacity: 0.8; transform: scaleY(0.98); }
}
@keyframes ss-moonbeam {
  0% { opacity: 0.2; transform: rotate(-2deg) translateX(0); }
  50% { opacity: 0.3; transform: rotate(1deg) translateX(3px); }
  100% { opacity: 0.15; transform: rotate(0deg) translateX(-2px); }
}
@keyframes ss-bed {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.005); }
  100% { transform: translateY(0) scale(0.995); }
}
@keyframes ss-figure {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
  100% { transform: rotate(9deg) translateY(0); }
}
@keyframes ss-glass {
  0% { transform: rotate(0deg) scale(1); opacity: 0.6; }
  50% { transform: rotate(2deg) scale(1.02); opacity: 0.8; }
  100% { transform: rotate(-1deg) scale(0.98); opacity: 0.5; }
}

/* decision-to-become-bandit */
.scn-decision-to-become-bandit {
  background:
    linear-gradient(180deg, #1a1a0a 0%, #2a2a10 30%, #3a3a1a 70%, #1a1a0a 100%),
    radial-gradient(ellipse at 60% 50%, #4a4a2a 0%, transparent 70%);
}

.scn-decision-to-become-bandit .wall-lit {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(30,30,10,0.4) 0%, rgba(10,10,5,0.7) 100%);
}

.scn-decision-to-become-bandit .window-frame {
  position: absolute; top: 20%; left: 70%;
  width: 100px; height: 140px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 8%;
  box-shadow: 0 4px 16px rgba(0,0,0,0.6);
  animation: db-window 8s ease-in-out infinite alternate;
}

.scn-decision-to-become-bandit .window-light {
  position: absolute; top: 20%; left: 70%;
  width: 90px; height: 200px;
  background: linear-gradient(180deg, rgba(255,230,150,0.3) 0%, rgba(255,200,100,0.1) 80%);
  border-radius: 0 0 30% 30%;
  filter: blur(6px);
  animation: db-light 5s ease-in-out infinite;
}

.scn-decision-to-become-bandit .figure-standing {
  position: absolute; bottom: 10%; left: 50%;
  width: 60px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 60%, #000 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  animation: db-figure 6s ease-in-out infinite;
}

.scn-decision-to-become-bandit .bandit-hat {
  position: absolute; bottom: 80%; left: 48%;
  width: 60px; height: 18px;
  background: linear-gradient(180deg, #3a2a0a 0%, #1a1000 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  transform: rotate(-5deg);
  animation: db-hat 7s ease-in-out infinite alternate;
}

.scn-decision-to-become-bandit .table {
  position: absolute; bottom: 10%; right: 20%;
  width: 100px; height: 20px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 4%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: db-table 9s ease-in-out infinite alternate;
}

.scn-decision-to-become-bandit .weapon {
  position: absolute; bottom: 20%; right: 40%;
  width: 30px; height: 6px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-30deg);
  box-shadow: 0 1px 4px rgba(0,0,0,0.5);
  animation: db-weapon 4s ease-in-out infinite alternate;
}

.scn-decision-to-become-bandit .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 30%, rgba(255,230,150,0.08) 0%, transparent 60%);
  animation: db-motes 15s linear infinite;
}

@keyframes db-window {
  0% { transform: rotate(0deg) scale(1); opacity: 0.8; }
  50% { transform: rotate(2deg) scale(0.98); opacity: 0.95; }
  100% { transform: rotate(-1deg) scale(1.01); opacity: 0.85; }
}
@keyframes db-light {
  0% { opacity: 0.2; transform: translateX(0) scaleY(1); }
  50% { opacity: 0.4; transform: translateX(5px) scaleY(1.05); }
  100% { opacity: 0.25; transform: translateX(-3px) scaleY(0.95); }
}
@keyframes db-figure {
  0% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  40% { transform: translateX(-50%) rotate(1deg) translateY(-2px); }
  80% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
  100% { transform: translateX(-50%) rotate(0deg) translateY(-1px); }
}
@keyframes db-hat {
  0% { transform: rotate(-4deg) translate(0,0); }
  50% { transform: rotate(-8deg) translate(4px,-1px); }
  100% { transform: rotate(-3deg) translate(0,0); }
}
@keyframes db-table {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-1px) scaleX(0.98); }
  100% { transform: translateY(0) scaleX(1.01); }
}
@keyframes db-weapon {
  0% { transform: rotate(-30deg) translate(0,0); opacity: 0.6; }
  50% { transform: rotate(-25deg) translate(2px,-1px); opacity: 0.9; }
  100% { transform: rotate(-32deg) translate(0,0); opacity: 0.5; }
}
@keyframes db-motes {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}

/* gypsy-glance-character – tense, sunlit, close-up profile */
.scn-gypsy-glance-character {
  background: linear-gradient(135deg, #ffe0b0 0%, #d4a060 50%, #b07840 100%),
              radial-gradient(circle at 70% 30%, #ffedcc 0%, transparent 30%);
}
.scn-gypsy-glance-character .sun-burst {
  position: absolute; inset: 0; background: radial-gradient(circle at 80% 20%, rgba(255,230,180,0.4), transparent 50%);
  animation: gy1-sun 3s ease-in-out infinite alternate;
}
.scn-gypsy-glance-character .wall-shadow {
  position: absolute; left: 0; top: 0; bottom: 0; width: 40%;
  background: linear-gradient(180deg, #3a3020 0%, #2a1c0e 100%);
  clip-path: polygon(0 0, 100% 0, 70% 50%, 100% 100%, 0 100%);
  animation: gy1-shadow 4s ease-in-out infinite;
}
.scn-gypsy-glance-character .doorway {
  position: absolute; left: 38%; top: 10%; width: 30%; height: 80%;
  background: #1a1008; border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-gypsy-glance-character .figure {
  position: absolute; left: 45%; bottom: 20%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #2a1e12, #0e0a06);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: gy1-figure-sway 5s ease-in-out infinite;
}
.scn-gypsy-glance-character .head {
  position: absolute; left: 46%; top: 10%; width: 30px; height: 36px;
  background: radial-gradient(circle at 40% 30%, #c89060 0%, #7a4e2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: gy1-head-turn 6s ease-in-out infinite alternate;
}
.scn-gypsy-glance-character .glance {
  position: absolute; left: 50%; top: 15%; width: 6px; height: 4px;
  background: #1a0a00; border-radius: 50%;
  box-shadow: 0 0 0 2px rgba(200,140,80,0.6);
  animation: gy1-eye-gleam 1.5s ease-in-out infinite, gy1-eye-move 4s ease-in-out infinite;
}
.scn-gypsy-glance-character .hand-clutch {
  position: absolute; left: 48%; bottom: 35%; width: 12px; height: 20px;
  background: #8a5e3e; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(15deg);
  animation: gy1-hand-tremor 2s ease-in-out infinite;
}
.scn-gypsy-glance-character .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(2px 2px at 20% 30%, #ffe8c0, transparent),
              radial-gradient(3px 3px at 60% 50%, #ffe0a0, transparent),
              radial-gradient(1px 1px at 80% 20%, #ffe0a0, transparent);
  background-size: 80px 80px;
  animation: gy1-motes 20s linear infinite;
}
@keyframes gy1-sun { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes gy1-shadow { 0%{opacity:0.6;transform:scaleX(1)} 50%{opacity:1;transform:scaleX(1.05)} 100%{opacity:0.7;transform:scaleX(0.95)} }
@keyframes gy1-figure-sway { 0%{transform:rotate(-1deg)} 50%{transform:rotate(1deg)} 100%{transform:rotate(-1deg)} }
@keyframes gy1-head-turn { 0%{transform:rotate(-12deg) scaleX(1)} 50%{transform:rotate(-4deg) scaleX(1.08)} 100%{transform:rotate(-12deg) scaleX(1)} }
@keyframes gy1-eye-gleam { 0%,100%{opacity:0.3} 50%{opacity:1} }
@keyframes gy1-eye-move { 0%{transform:translate(0,0)} 25%{transform:translate(1px,-1px)} 75%{transform:translate(-1px,1px)} 100%{transform:translate(0,0)} }
@keyframes gy1-hand-tremor { 0%{transform:rotate(15deg) translate(0,0)} 50%{transform:rotate(13deg) translate(0.5px,-0.5px)} 100%{transform:rotate(15deg) translate(0,0)} }
@keyframes gy1-motes { 0%{background-position:0 0} 100%{background-position:80px 80px} }

/* gypsy-women-beauty – warm, sunlit, wide horizon with silhouette */
.scn-gypsy-women-beauty {
  background: linear-gradient(180deg, #ffeac0 0%, #fdd490 30%, #e8b070 70%, #b08050 100%),
              radial-gradient(ellipse at 50% 0%, #ffe0b0, transparent 60%);
}
.scn-gypsy-women-beauty .sky-warm {
  position: absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffdba0 0%, #ffe8c0 100%);
  animation: gy2-sky 12s ease-in-out infinite alternate;
}
.scn-gypsy-women-beauty .sun {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff5e0 0%, #ffdd80 40%, transparent 60%);
  border-radius: 50%;
  animation: gy2-sun-pulse 8s ease-in-out infinite;
}
.scn-gypsy-women-beauty .hills-gy2 {
  position: absolute; bottom: 30%; left:0; right:0; height: 20%;
  background: linear-gradient(180deg, #a07a50 0%, #7a5a3a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.3);
  animation: gy2-hills 20s ease-in-out infinite alternate;
}
.scn-gypsy-women-beauty .woman-silhouette {
  position: absolute; bottom: 28%; left: 30%; width: 50px; height: 140px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: gy2-body-sway 6s ease-in-out infinite;
}
.scn-gypsy-women-beauty .hair-gy2 {
  position: absolute; bottom: 85%; left: 26%; width: 70px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, #2a1a0a 0%, #0e0804 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: gy2-hair-flow 5s ease-in-out infinite;
}
.scn-gypsy-women-beauty .scarf-gy2 {
  position: absolute; bottom: 70%; left: 35%; width: 30px; height: 10px;
  background: linear-gradient(90deg, #c8553d 0%, #a0461a 50%, #c8553d 100%);
  border-radius: 20% 80% 20% 80% / 50% 50% 50% 50%;
  transform: rotate(-5deg);
  animation: gy2-scarf-flap 3s ease-in-out infinite alternate;
}
.scn-gypsy-women-beauty .flowers-gy2 {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #cf6d4c 0%, #b05030 50%, #702243 100%);
  border-radius: 50%;
  box-shadow: 10px -5px 0 #b87878, -5px -10px 0 #a0461a;
  animation: gy2-flowers 7s ease-in-out infinite;
}
@keyframes gy2-sky { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.85} }
@keyframes gy2-sun-pulse { 0%{transform:scale(1);opacity:0.8} 50%{transform:scale(1.05);opacity:1} 100%{transform:scale(0.98);opacity:0.9} }
@keyframes gy2-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(2px)} }
@keyframes gy2-body-sway { 0%{transform:rotate(-2deg)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-2deg)} }
@keyframes gy2-hair-flow { 0%{transform:rotate(0) scale(1)} 50%{transform:rotate(5deg) scale(1.05)} 100%{transform:rotate(-3deg) scale(0.95)} }
@keyframes gy2-scarf-flap { 0%{transform:rotate(-8deg) translateX(0)} 100%{transform:rotate(8deg) translateX(2px)} }
@keyframes gy2-flowers { 0%{transform:scale(1);opacity:0.8} 50%{transform:scale(1.2);opacity:1} 100%{transform:scale(0.9);opacity:0.7} }

/* gypsy-dancers-and-missionary – warm, sunlit, interior cutaway */
.scn-gypsy-dancers-and-missionary {
  background: linear-gradient(180deg, #ffe0b0 0%, #f5ca90 40%, #c89760 80%, #a07850 100%),
              radial-gradient(ellipse at 60% 50%, #ffe0b0 0%, transparent 50%);
}
.scn-gypsy-dancers-and-missionary .plaza-bg {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #eddcc0 0%, #d0b898 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: gy3-bgfade 10s ease-in-out infinite alternate;
}
.scn-gypsy-dancers-and-missionary .arcade {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #aa8866 0%, #7a5a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-gypsy-dancers-and-missionary .dancer-left {
  position: absolute; bottom: 30%; left: 20%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #2a1e12 0%, #0e0a06 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: gy3-dance-left 2s ease-in-out infinite;
}
.scn-gypsy-dancers-and-missionary .dancer-right {
  position: absolute; bottom: 30%; right: 20%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #1a1e2a 0%, #0a0e1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: gy3-dance-right 2.2s ease-in-out infinite;
}
.scn-gypsy-dancers-and-missionary .dress-spin {
  position: absolute; bottom: 25%; left: 18%; width: 70px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, #c8553d 0%, #a0461a 50%, #702243 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: gy3-spin 1.8s ease-in-out infinite;
}
.scn-gypsy-dancers-and-missionary .missionary {
  position: absolute; bottom: 28%; left: 42%; width: 40px; height: 130px;
  background: linear-gradient(180deg, #1a1a1a 0%, #080808 100%);
  border-radius: 10% 10% 10% 10% / 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: gy3-missionary 6s ease-in-out infinite;
}
.scn-gypsy-dancers-and-missionary .shadow-missionary {
  position: absolute; bottom: 20%; left: 42%; width: 50px; height: 20px;
  background: rgba(0,0,0,0.3); border-radius: 50%;
  filter: blur(4px);
  animation: gy3-shadow 6s ease-in-out infinite;
}
.scn-gypsy-dancers-and-missionary .castanets {
  position: absolute; bottom: 40%; left: 32%; width: 8px; height: 12px;
  background: #b08040; border-radius: 30%;
  box-shadow: 0 -5px 0 #8a6030;
  animation: gy3-castanet 0.6s ease-in-out infinite alternate;
}
@keyframes gy3-bgfade { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes gy3-dance-left { 0%{transform:rotate(-10deg) translateY(0)} 25%{transform:rotate(0) translateY(-5px)} 50%{transform:rotate(10deg) translateY(0)} 75%{transform:rotate(0) translateY(-3px)} 100%{transform:rotate(-10deg) translateY(0)} }
@keyframes gy3-dance-right { 0%{transform:rotate(10deg) translateY(0)} 25%{transform:rotate(0) translateY(-4px)} 50%{transform:rotate(-10deg) translateY(0)} 75%{transform:rotate(0) translateY(-6px)} 100%{transform:rotate(10deg) translateY(0)} }
@keyframes gy3-spin { 0%{transform:rotate(0deg) scale(1)} 50%{transform:rotate(180deg) scale(1.2)} 100%{transform:rotate(360deg) scale(1)} }
@keyframes gy3-missionary { 0%{transform:translateX(0) scale(1)} 50%{transform:translateX(2px) scale(1.02)} 100%{transform:translateX(-2px) scale(0.98)} }
@keyframes gy3-shadow { 0%{opacity:0.3;transform:scale(1)} 50%{opacity:0.5;transform:scale(1.1)} 100%{opacity:0.2;transform:scale(0.9)} }
@keyframes gy3-castanet { 0%{transform:rotate(-20deg)} 100%{transform:rotate(20deg)} }

/* mr-borrow-chastity-exaggerated – tense, bright-interior, vertical shaft */
.scn-mr-borrow-chastity-exaggerated {
  background: linear-gradient(180deg, #f9e6d0 0%, #e2c4a0 30%, #b89370 60%, #8a6b50 100%),
              radial-gradient(circle at 70% 10%, #fff0e0 0%, transparent 40%);
}
.scn-mr-borrow-chastity-exaggerated .room-bright {
  position: absolute; inset:0; background: linear-gradient(180deg, #f5e4cc 0%, #ddc4a8 50%, #b89870 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.15);
  animation: gy4-room 10s ease-in-out infinite alternate;
}
.scn-mr-borrow-chastity-exaggerated .window-gy4 {
  position: absolute; top: 8%; left: 50%; width: 70px; height: 100px;
  background: radial-gradient(circle at 50% 30%, #fff8e0 0%, #ffd890 60%, #a08050 100%);
  border: 4px solid #6a4a2a;
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 10px rgba(255,200,100,0.3);
  animation: gy4-window 5s ease-in-out infinite;
}
.scn-mr-borrow-chastity-exaggerated .chair {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
  animation: gy4-chair 8s ease-in-out infinite;
}
.scn-mr-borrow-chastity-exaggerated .woman-sit {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a1e12 0%, #0e0a06 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: translateX(-50%) rotate(-3deg);
  transform-origin: bottom center;
  animation: gy4-woman-sit 4s ease-in-out infinite alternate;
}
.scn-mr-borrow-chastity-exaggerated .book-gy4 {
  position: absolute; bottom: 28%; left: 48%; width: 20px; height: 28px;
  background: linear-gradient(135deg, #8a6a3a 0%, #4a2a0a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: -2px 2px 6px rgba(0,0,0,0.5);
  animation: gy4-book 6s ease-in-out infinite;
}
.scn-mr-borrow-chastity-exaggerated .hand-holding {
  position: absolute; bottom: 32%; left: 48%; width: 10px; height: 18px;
  background: #9a7a5a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(20deg);
  animation: gy4-hand 3s ease-in-out infinite;
}
.scn-mr-borrow-chastity-exaggerated .shadow-bar {
  position: absolute; top: 0; left: 55%; width: 4px; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5), transparent 30%, transparent 70%, rgba(0,0,0,0.5));
  filter: blur(8px);
  animation: gy4-shadow-bar 7s ease-in-out infinite alternate;
}
@keyframes gy4-room { 0%{opacity:0.85} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes gy4-window { 0%{box-shadow:0 0 30px 10px rgba(255,200,100,0.3);background: radial-gradient(circle at 50% 30%, #fff8e0 0%, #ffd890 60%, #a08050 100%)} 50%{box-shadow:0 0 50px 20px rgba(255,200,100,0.5);background: radial-gradient(circle at 50% 30%, #fffbe0 0%, #ffe0a0 60%, #b09060 100%)} 100%{box-shadow:0 0 20px 5px rgba(255,200,100,0.2);background: radial-gradient(circle at 50% 30%, #fff0d0 0%, #ffc880 60%, #906840 100%)} }
@keyframes gy4-chair { 0%{transform:translateX(-50%) scale(1)} 50%{transform:translateX(-50%) scale(1.02) rotate(1deg)} 100%{transform:translateX(-50%) scale(0.98) rotate(-1deg)} }
@keyframes gy4-woman-sit { 0%{transform:translateX(-50%) rotate(-3deg) translateY(0)} 50%{transform:translateX(-50%) rotate(0) translateY(-2px)} 100%{transform:translateX(-50%) rotate(-3deg) translateY(0)} }
@keyframes gy4-book { 0%{transform:rotate(10deg) translateY(0)} 50%{transform:rotate(12deg) translateY(-2px)} 100%{transform:rotate(8deg) translateY(0)} }
@keyframes gy4-hand { 0%{transform:rotate(20deg) scale(1)} 50%{transform:rotate(15deg) scale(1.05)} 100%{transform:rotate(20deg) scale(1)} }
@keyframes gy4-shadow-bar { 0%{opacity:0.3;transform:scaleX(1)} 50%{opacity:0.6;transform:scaleX(1.5)} 100%{opacity:0.2;transform:scaleX(0.8)} }

.scn-restless-conscience { background: linear-gradient(180deg, #0d0d2b 0%, #1a1a3e 40%, #2c2244 70%, #4a3a6e 100%), radial-gradient(ellipse at 30% 20%, #7a6a9e 0%, transparent 60%); }
.scn-restless-conscience .moon               { position:absolute; top:8%; left:24%; width:60px; height:60px; background: radial-gradient(circle at 40% 40%, #e0e4f0 0%, #a0a8c0 60%, #606a8a 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(160,168,192,.5); animation: rc-moon 20s ease-in-out infinite alternate; }
.scn-restless-conscience .window-frame       { position:absolute; top:5%; left:20%; width:90px; height:120px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:8%; box-shadow: inset 0 0 0 6px #1a1008, 0 8px 12px rgba(0,0,0,.6); animation: rc-pulse 8s ease-in-out infinite; }
.scn-restless-conscience .window-glow       { position:absolute; top:8%; left:22%; width:70px; height:95px; background: radial-gradient(circle at 50% 50%, #c0d0e0 0%, rgba(192,208,224,.1) 70%); border-radius:6%; box-shadow: 0 0 40px 20px rgba(192,208,224,.3); animation: rc-glow 6s ease-in-out infinite alternate; }
.scn-restless-conscience .bench              { position:absolute; bottom:16%; left:50%; width:140px; height:28px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5030 0%, #3a2818 100%); border-radius: 6px 6px 3px 3px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: rc-rock 12s ease-in-out infinite; }
.scn-restless-conscience .figure             { position:absolute; bottom:17%; left:48%; width:20px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 2px 4px rgba(0,0,0,.3); animation: rc-figure 4s ease-in-out infinite; }
.scn-restless-conscience .shadow             { position:absolute; bottom:13%; left:44%; width:50px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); border-radius:50%; animation: rc-shadow 4s ease-in-out infinite; }
.scn-restless-conscience .light-beam         { position:absolute; top:14%; left:26%; width:40px; height:70%; background: linear-gradient(180deg, rgba(200,210,230,.2) 0%, transparent 100%); transform: rotate(-8deg); filter: blur(8px); animation: rc-beam 10s ease-in-out infinite alternate; }
@keyframes rc-moon   { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(4px, -6px) scale(1.02); } 100% { transform: translate(-3px, 3px) scale(.98); } }
@keyframes rc-pulse  { 0% { opacity:.85; } 50% { opacity:1; box-shadow: inset 0 0 0 8px #1a1008, 0 10px 16px rgba(0,0,0,.7); } 100% { opacity:.9; } }
@keyframes rc-glow   { 0% { opacity:.6; box-shadow: 0 0 20px 10px rgba(192,208,224,.2); } 50% { opacity:1; box-shadow: 0 0 60px 30px rgba(192,208,224,.4); } 100% { opacity:.7; } }
@keyframes rc-rock   { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-30%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-70%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes rc-figure { 0% { transform: translateX(-50%) rotate(2deg); } 33% { transform: translateX(-40%) rotate(-3deg); } 66% { transform: translateX(-60%) rotate(4deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes rc-shadow { 0% { transform: scaleX(1); opacity:.5; } 50% { transform: scaleX(.8); opacity:.7; } 100% { transform: scaleX(1.1); opacity:.4; } }
@keyframes rc-beam   { 0% { opacity:.15; transform: rotate(-10deg) scaleX(1); } 50% { opacity:.25; transform: rotate(-6deg) scaleX(1.1); } 100% { opacity:.1; transform: rotate(-12deg) scaleX(.9); } }

.scn-moral-quandary { background: linear-gradient(180deg, #0f0f2a 0%, #1c1c40 35%, #3a2a5e 70%, #5a4a7a 100%), radial-gradient(ellipse at 40% 50%, #8070a0 0%, transparent 70%); }
.scn-moral-quandary .moon      { position:absolute; top:10%; right:15%; width:50px; height:50px; background: radial-gradient(circle at 30% 30%, #e8eaf0 0%, #b0b4c8 60%, #6a6e8a 100%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(176,180,200,.35); animation: mq-moon 22s ease-in-out infinite alternate; }
.scn-moral-quandary .horizon   { position:absolute; bottom:36%; left:0; right:0; height:4px; background: linear-gradient(90deg, transparent 0%, #6a5a7a 30%, #4a3a5a 70%, transparent 100%); transform: scaleY(1.2); filter: blur(2px); animation: mq-horizon 18s linear infinite; }
.scn-moral-quandary .ground    { position:absolute; bottom:0; left:0; right:0; height:38%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; box-shadow: inset 0 12px 20px rgba(0,0,0,.6); }
.scn-moral-quandary .rider-a   { position:absolute; bottom:28%; left:25%; width:14px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: mq-ride 10s ease-in-out infinite; }
.scn-moral-quandary .rider-b   { position:absolute; bottom:28%; left:38%; width:14px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: mq-ride 10s ease-in-out infinite .5s; }
.scn-moral-quandary .rider-c   { position:absolute; bottom:28%; left:50%; width:14px; height:30px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: mq-ride 10s ease-in-out infinite 1s; }
.scn-moral-quandary .dust      { position:absolute; bottom:24%; left:20%; width:200px; height:20px; background: linear-gradient(90deg, rgba(200,180,160,.15) 0%, transparent 100%); filter: blur(10px); animation: mq-dust 25s linear infinite; }
.scn-moral-quandary .lagging   { position:absolute; bottom:30%; left:70%; width:12px; height:24px; background: linear-gradient(180deg, #1a1020 0%, #0a0810 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: mq-lag 8s ease-in-out infinite; }
@keyframes mq-moon  { 0% { transform: scale(1); opacity:.9; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(.95); opacity:.8; } }
@keyframes mq-horizon { 0% { background-position: 0 0; } 100% { background-position: 100% 0; } }
@keyframes mq-ride  { 0% { transform: translateX(0) rotate(0deg); } 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 mq-dust  { 0% { transform: translateX(0) scaleX(1); opacity:.15; } 50% { transform: translateX(30px) scaleX(1.2); opacity:.2; } 100% { transform: translateX(60px) scaleX(.8); opacity:.1; } }
@keyframes mq-lag   { 0% { transform: translateX(0) rotate(3deg); } 30% { transform: translateX(-4px) rotate(-2deg); } 60% { transform: translateX(2px) rotate(4deg); } 100% { transform: translateX(0) rotate(-3deg); } }

.scn-soldiers-arrive { background: linear-gradient(180deg, #c85a3a 0%, #b0704a 20%, #9a8060 40%, #6a6a4a 70%, #3a3a2a 100%), radial-gradient(ellipse at 20% 30%, #e0a070 0%, transparent 60%); }
.scn-soldiers-arrive .sun             { position:absolute; top:10%; left:12%; width:50px; height:50px; background: radial-gradient(circle, #f0d0a0 0%, #d0a070 40%, #a07050 80%); border-radius:50%; box-shadow: 0 0 50px 25px rgba(208,160,112,.4); animation: sa-sunrise 40s ease-in-out infinite alternate; }
.scn-soldiers-arrive .sky             { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d09070 0%, #b08060 30%, #8a704a 60%, #5a4a2a 100%); }
.scn-soldiers-arrive .house           { position:absolute; bottom:22%; left:8%; width:70px; height:50px; background: linear-gradient(180deg, #7a6040 0%, #4a3820 100%); border-radius:6px 6px 2px 2px; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: sa-house 15s ease-in-out infinite; }
.scn-soldiers-arrive .door            { position:absolute; bottom:22%; left:10%; width:12px; height:24px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:2px; box-shadow: inset 0 0 0 1px #5a4a2a; animation: sa-door 12s ease-in-out infinite alternate; }
.scn-soldiers-arrive .old-woman       { position:absolute; bottom:24%; left:4%; width:16px; height:28px; background: linear-gradient(180deg, #2a1a10 0%, #0a0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sa-woman 6s ease-in-out infinite; }
.scn-soldiers-arrive .soldier-pair    { position:absolute; bottom:26%; right:24%; width:30px; height:32px; background: linear-gradient(135deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 0 0 2px #3a3a1a; animation: sa-march 8s ease-in-out infinite; }
.scn-soldiers-arrive .soldier-single  { position:absolute; bottom:26%; right:12%; width:16px; height:32px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; animation: sa-single 9s ease-in-out infinite .5s; }
.scn-soldiers-arrive .soldier-horse   { position:absolute; bottom:24%; right:8%; width:36px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: sa-horse 10s ease-in-out infinite; }
@keyframes sa-sunrise { 0% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(-8px) scale(1.1); opacity:1; } 100% { transform: translateY(0) scale(.95); opacity:.8; } }
@keyframes sa-house   { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes sa-door    { 0% { transform: scaleX(1); opacity:.8; } 30% { transform: scaleX(.3); opacity:.5; } 60% { transform: scaleX(1); opacity:.9; } 100% { transform: scaleX(1); opacity:.7; } }
@keyframes sa-woman   { 0% { transform: translateY(0) rotate(-2deg); } 33% { transform: translateY(-2px) rotate(3deg); } 66% { transform: translateY(1px) rotate(-4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sa-march   { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-6px) rotate(2deg); } 50% { transform: translateX(-12px) rotate(-1deg); } 75% { transform: translateX(-6px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sa-single  { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-3deg); } 50% { transform: translateX(10px) rotate(2deg); } 75% { transform: translateX(5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes sa-horse   { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(4deg); } 60% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-formalities { background: linear-gradient(180deg, #f2d8b0 0%, #e0c090 30%, #c8a878 60%, #b09060 100%), radial-gradient(ellipse at 30% 20%, #fff5e0 0%, transparent 60%); }
.scn-formalities .sun        { position:absolute; top:16%; left:28%; width:40px; height:40px; background: radial-gradient(circle, #ffe8c0 0%, #f0c890 50%, #d0a060 100%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(240,200,144,.3); animation: fo-sun 30s ease-in-out infinite alternate; }
.scn-formalities .sky        { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0d8b8 0%, #d8c0a0 40%, #b8a080 100%); }
.scn-formalities .path       { position:absolute; bottom:28%; left:0; right:0; height:14%; background: linear-gradient(90deg, transparent 0%, #d0b890 30%, #b89878 50%, #d0b890 70%, transparent 100%); border-radius:0 0 30% 30% / 0 0 50% 50%; filter: blur(3px); animation: fo-path 20s linear infinite; }
.scn-formalities .rider      { position:absolute; bottom:18%; left:36%; width:18px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: fo-ride 12s ease-in-out infinite; }
.scn-formalities .document   { position:absolute; bottom:22%; left:40%; width:12px; height:16px; background: linear-gradient(135deg, #f0e8d8 0%, #d0c8b8 100%); border-radius:2px; box-shadow: 0 1px 2px rgba(0,0,0,.2); transform: rotate(-10deg); animation: fo-paper 16s ease-in-out infinite alternate; }
.scn-formalities .town       { position:absolute; bottom:28%; right:10%; width:80px; height:40px; background: linear-gradient(180deg, #b0a080 0%, #8a7a60 50%, #6a5a40 100%); border-radius:10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 -4px 6px rgba(0,0,0,.2); animation: fo-town 25s ease-in-out infinite; }
.scn-formalities .tree-a     { position:absolute; bottom:22%; left:12%; width:22px; height:60px; background: linear-gradient(180deg, #7a8a5a 0%, #4a5a2a 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom; animation: fo-tree 18s ease-in-out infinite; }
.scn-formalities .tree-b     { position:absolute; bottom:24%; left:18%; width:18px; height:50px; background: linear-gradient(180deg, #8a9a6a 0%, #5a6a3a 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom; animation: fo-tree 18s ease-in-out infinite -6s; }
@keyframes fo-sun   { 0% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.08); opacity:1; } 100% { transform: scale(.95); opacity:.9; } }
@keyframes fo-path  { 0% { background-position: 0 0; } 100% { background-position: 100% 0; } }
@keyframes fo-ride  { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes fo-paper { 0% { transform: rotate(-12deg) scale(1); opacity:.8; } 50% { transform: rotate(-6deg) scale(1.05); opacity:1; } 100% { transform: rotate(-15deg) scale(.95); opacity:.7; } }
@keyframes fo-town  { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes fo-tree  { 0% { transform: rotate(-3deg); } 33% { transform: rotate(4deg); } 66% { transform: rotate(-2deg); } 100% { transform: rotate(3deg); } }

/* -- cordova-research (dim interior, calm) -- */
.scn-cordova-research {
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 50%, #0d0806 100%), radial-gradient(ellipse at 60% 20%, #6a4a3a 0%, transparent 70%);
}
.scn-cordova-research .window {
  position: absolute; inset: 15% 55% 55% 10%; background: radial-gradient(ellipse, #f0d4a0 0%, #d4b080 60%, transparent 80%);
  border-radius: 4% 4% 10% 10%; box-shadow: 0 0 40px 20px rgba(200,160,100,0.4); animation: cr-window 8s ease-in-out infinite alternate;
}
.scn-cordova-research .desk {
  position: absolute; bottom: 18%; left: 20%; right: 30%; height: 6%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: cr-desk 12s ease-in-out infinite;
}
.scn-cordova-research .book-open {
  position: absolute; bottom: 22%; left: 28%; width: 12%; height: 10%; background: linear-gradient(135deg, #e8d4a8 0%, #c8b48a 100%);
  border-radius: 4% 4% 8% 8%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); transform-origin: bottom left; animation: cr-book 6s ease-in-out infinite alternate;
}
.scn-cordova-research .candle {
  position: absolute; bottom: 25%; left: 48%; width: 2%; height: 12%; background: linear-gradient(180deg, #b87850 0%, #7a5030 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 -12px 30px 8px rgba(255,180,80,0.5); animation: cr-candle 4s ease-in-out infinite alternate;
}
.scn-cordova-research .figure {
  position: absolute; bottom: 18%; left: 36%; width: 8%; height: 16%; background: linear-gradient(180deg, #3a2a1e 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-figure 10s ease-in-out infinite;
}
.scn-cordova-research .bookshelf {
  position: absolute; top: 20%; right: 10%; width: 12%; height: 50%; background: linear-gradient(90deg, #4a3020 0%, #3a2010 100%);
  border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.7); animation: cr-shelf 20s linear infinite alternate;
}
@keyframes cr-window { 0% { opacity: 0.5; transform: scale(0.95); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes cr-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cr-book { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes cr-candle { 0% { box-shadow: 0 -8px 20px 4px rgba(255,180,80,0.4); } 50% { box-shadow: 0 -16px 36px 12px rgba(255,200,100,0.6); } 100% { box-shadow: 0 -10px 24px 6px rgba(255,180,80,0.45); } }
@keyframes cr-figure { 0% { transform: translateX(0) rotate(-0.5deg); } 30% { transform: translateX(2px) rotate(0.5deg); } 60% { transform: translateX(-1px) rotate(-0.3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cr-shelf { 0% { box-shadow: inset 0 0 10px rgba(0,0,0,0.7); } 50% { box-shadow: inset 0 0 20px rgba(0,0,0,0.9); } 100% { box-shadow: inset 0 0 10px rgba(0,0,0,0.7); } }

/* -- evening-promenade (warm dusk) -- */
.scn-evening-promenade {
  background: linear-gradient(180deg, #f0a060 0%, #d07030 30%, #6a4070 70%, #1a1a3a 100%), radial-gradient(ellipse at 50% 0%, #f0c080 0%, transparent 70%);
}
.scn-evening-promenade .sun {
  position: absolute; top: 10%; left: 65%; width: 12%; height: 18%; background: radial-gradient(circle, #f0d080 0%, #e8a040 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 80px 40px rgba(232,160,64,0.3); animation: ep-sun 14s ease-in-out infinite alternate;
}
.scn-evening-promenade .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #3a4a6a 0%, #2a3a5a 100%);
  border-radius: 60% 40% 0 0 / 20% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.4); animation: ep-river 20s linear infinite;
}
.scn-evening-promenade .quay {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 5%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: ep-quay 12s ease-in-out infinite;
}
.scn-evening-promenade .figure-walker {
  position: absolute; bottom: 30%; left: 20%; width: 4%; height: 12%; background: linear-gradient(180deg, #2a2030 0%, #0a0810 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ep-walker 6s ease-in-out infinite;
}
.scn-evening-promenade .figure-walker2 {
  position: absolute; bottom: 30%; left: 60%; width: 4%; height: 12%; background: linear-gradient(180deg, #2a2030 0%, #0a0810 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ep-walker2 8s ease-in-out infinite; animation-delay: -3s;
}
.scn-evening-promenade .building-back {
  position: absolute; bottom: 32%; left: 10%; width: 20%; height: 30%; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 8% 8% 2% 2%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: ep-building 18s ease-in-out infinite alternate;
}
.scn-evening-promenade .tree-silhouette {
  position: absolute; bottom: 32%; right: 15%; width: 8%; height: 25%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 60% 40% 20% 20% / 80% 70% 30% 30%; animation: ep-tree 14s ease-in-out infinite alternate;
}
@keyframes ep-sun { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.7; } }
@keyframes ep-river { 0% { background-position: 0% 0%; } 50% { background-position: 10% 0%; } 100% { background-position: 0% 0%; } }
@keyframes ep-quay { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ep-walker { 0% { transform: translateX(0) rotate(0deg); } 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 ep-walker2 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-6px) rotate(-1deg); } 50% { transform: translateX(-12px) rotate(2deg); } 75% { transform: translateX(-18px) rotate(-1deg); } 100% { transform: translateX(-24px) rotate(0deg); } }
@keyframes ep-building { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes ep-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }

/* -- angelus-bathing (warm dusk) -- */
.scn-angelus-bathing {
  background: linear-gradient(180deg, #f0b070 0%, #c08050 30%, #7a4a6a 60%, #1a1a3a 100%), radial-gradient(ellipse at 50% 0%, #f0c080 0%, transparent 60%);
}
.scn-angelus-bathing .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%);
  border-radius: 70% 30% 0 0 / 30% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.4); animation: ab-river 16s linear infinite alternate;
}
.scn-angelus-bathing .quay {
  position: absolute; bottom: 38%; left: 0; right: 0; height: 6%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: ab-quay 10s ease-in-out infinite;
}
.scn-angelus-bathing .bell-tower {
  position: absolute; bottom: 44%; right: 10%; width: 6%; height: 40%; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: ab-tower 20s ease-in-out infinite alternate;
}
.scn-angelus-bathing .woman-bath {
  position: absolute; bottom: 25%; left: 25%; width: 5%; height: 12%; background: linear-gradient(180deg, #e8c8a8 0%, #c8a888 50%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ab-woman 8s ease-in-out infinite;
}
.scn-angelus-bathing .woman-bath2 {
  position: absolute; bottom: 22%; left: 40%; width: 5%; height: 12%; background: linear-gradient(180deg, #e8c8a8 0%, #c8a888 50%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ab-woman2 10s ease-in-out infinite; animation-delay: -4s;
}
.scn-angelus-bathing .ripple {
  position: absolute; bottom: 28%; left: 20%; width: 8%; height: 2%; background: rgba(200,220,255,0.3);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(255,255,255,0.1); animation: ab-ripple 6s ease-in-out infinite;
}
.scn-angelus-bathing .ripple2 {
  position: absolute; bottom: 24%; left: 38%; width: 6%; height: 2%; background: rgba(200,220,255,0.3);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(255,255,255,0.1); animation: ab-ripple2 4s ease-in-out infinite; animation-delay: -2s;
}
@keyframes ab-river { 0% { background-position: 0% 0%; } 50% { background-position: 5% 0%; } 100% { background-position: 0% 0%; } }
@keyframes ab-quay { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ab-tower { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes ab-woman { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(8px) translateY(0) rotate(-2deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(16px) translateY(0) rotate(0deg); } }
@keyframes ab-woman2 { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-3px) translateY(-2px) rotate(-2deg); } 50% { transform: translateX(-6px) translateY(0) rotate(3deg); } 75% { transform: translateX(-9px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-12px) translateY(0) rotate(0deg); } }
@keyframes ab-ripple { 0% { transform: scale(1); opacity: 0.4; } 50% { transform: scale(1.5); opacity: 0.2; } 100% { transform: scale(2); opacity: 0; } }
@keyframes ab-ripple2 { 0% { transform: scale(1); opacity: 0.3; } 50% { transform: scale(1.3); opacity: 0.15; } 100% { transform: scale(1.8); opacity: 0; } }

/* -- angelus-prank (funny dusk but still bright) -- */
.scn-angelus-prank {
  background: linear-gradient(180deg, #f0c080 0%, #d09050 30%, #8a5a6a 60%, #2a2a4a 100%), radial-gradient(ellipse at 50% 0%, #f0d090 0%, transparent 60%);
}
.scn-angelus-prank .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #5a7a9a 0%, #3a5a7a 100%);
  border-radius: 70% 30% 0 0 / 30% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); animation: ap-river 12s linear infinite alternate;
}
.scn-angelus-prank .quay {
  position: absolute; bottom: 38%; left: 0; right: 0; height: 6%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ap-quay 8s ease-in-out infinite;
}
.scn-angelus-prank .bell-tower {
  position: absolute; bottom: 44%; right: 10%; width: 6%; height: 40%; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: ap-tower 15s ease-in-out infinite alternate;
}
.scn-angelus-prank .woman-surprise {
  position: absolute; bottom: 28%; left: 30%; width: 5%; height: 14%; background: linear-gradient(180deg, #e8c8a8 0%, #c8a888 50%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ap-surprise 3s ease-in-out infinite;
}
.scn-angelus-prank .woman-splash {
  position: absolute; bottom: 24%; left: 45%; width: 5%; height: 12%; background: linear-gradient(180deg, #e8c8a8 0%, #c8a888 50%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ap-splash 2.5s ease-in-out infinite; animation-delay: -1.2s;
}
.scn-angelus-prank .ripple-break {
  position: absolute; bottom: 26%; left: 28%; width: 10%; height: 3%; background: rgba(180,220,255,0.4);
  border-radius: 50%; box-shadow: 0 2px 8px rgba(255,255,255,0.2); animation: ap-ripple-break 1.5s ease-in-out infinite;
}
.scn-angelus-prank .ripple-break2 {
  position: absolute; bottom: 22%; left: 42%; width: 8%; height: 3%; background: rgba(180,220,255,0.4);
  border-radius: 50%; box-shadow: 0 2px 8px rgba(255,255,255,0.2); animation: ap-ripple-break2 2s ease-in-out infinite; animation-delay: -0.8s;
}
.scn-angelus-prank .prankster {
  position: absolute; bottom: 40%; left: 15%; width: 4%; height: 16%; background: linear-gradient(180deg, #2a2030 0%, #0a0810 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ap-prankster 4s ease-in-out infinite;
}
@keyframes ap-river { 0% { background-position: 0% 0%; } 50% { background-position: 8% 0%; } 100% { background-position: 0% 0%; } }
@keyframes ap-quay { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ap-tower { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes ap-surprise { 0% { transform: translateX(0) translateY(0) rotate(0deg) scale(1); } 30% { transform: translateX(8px) translateY(-6px) rotate(10deg) scale(1.1); } 60% { transform: translateX(16px) translateY(-10px) rotate(-5deg) scale(0.95); } 100% { transform: translateX(24px) translateY(0) rotate(0deg) scale(1); } }
@keyframes ap-splash { 0% { transform: translateX(0) rotate(0deg) scale(1); } 25% { transform: translateX(-5px) rotate(-8deg) scale(0.9); } 50% { transform: translateX(-10px) rotate(5deg) scale(1.05); } 75% { transform: translateX(-15px) rotate(-3deg) scale(0.95); } 100% { transform: translateX(-20px) rotate(0deg) scale(1); } }
@keyframes ap-ripple-break { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(2.5); opacity: 0.1; } 100% { transform: scale(4); opacity: 0; } }
@keyframes ap-ripple-break2 { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(2); opacity: 0.15; } 100% { transform: scale(3.5); opacity: 0; } }
@keyframes ap-prankster { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(5deg); } 50% { transform: translateX(20px) rotate(-5deg); } 75% { transform: translateX(30px) rotate(3deg); } 100% { transform: translateX(40px) rotate(0deg); } }

.scn-surrender { background: linear-gradient(180deg, #87CEEB 0%, #F4A460 60%, #D2691E 100%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 50%); }
.scn-surrender .sky-surr { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87CEEB 0%, #F4A460 100%); animation: surr-sky 12s ease-in-out infinite alternate; }
.scn-surrender .ground-surr { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8B4513 0%, #A0522D 50%, #6B3A2A 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.4); }
.scn-surrender .guard-wall-surr { position:absolute; bottom:25%; left:20%; width:120px; height:100px; background: linear-gradient(180deg, #C19A6B 0%, #9E7B4F 100%); border-radius: 5% 5% 0 0; box-shadow: 5px 5px 15px rgba(0,0,0,0.5); }
.scn-surrender .guard-roof-surr { position:absolute; bottom:45%; left:18%; width:130px; height:30px; background: linear-gradient(180deg, #8B5A2B 0%, #6B3A1F 100%); border-radius: 20% 20% 0 0; transform: scale(1.02); }
.scn-surrender .window-surr { position:absolute; bottom:30%; left:25%; width:20px; height:25px; background: radial-gradient(circle at 50% 50%, #FFD700 0%, #FFA500 70%, #CC7722 100%); border-radius: 10%; box-shadow: 0 0 15px 5px rgba(255,165,0,0.6); animation: surr-window 3s ease-in-out infinite alternate; }
.scn-surrender .figure-surr { position:absolute; bottom:15%; left:45%; width:20px; height:60px; background: linear-gradient(180deg, #2F1B0E 0%, #1A0F06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: surr-figure 4s ease-in-out infinite; }
.scn-surrender .figure-surr::before, .scn-surrender .figure-surr::after { content:''; position:absolute; top:5%; width:12px; height:25px; background: #2F1B0E; border-radius: 50% 50% 0 0; transform-origin: bottom; animation: surr-arms 4s ease-in-out infinite; }
.scn-surrender .figure-surr::before { left:-10px; transform: rotate(-30deg); }
.scn-surrender .figure-surr::after { right:-10px; transform: rotate(30deg); }
.scn-surrender .sunburst-surr { position:absolute; inset:0; background: radial-gradient(circle at 50% 5%, rgba(255,215,0,0.3) 0%, transparent 60%); mix-blend-mode: overlay; animation: surr-sun 6s ease-in-out infinite alternate; }
@keyframes surr-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes surr-window { 0% { box-shadow: 0 0 10px 3px rgba(255,165,0,0.5); opacity:0.8; } 50% { box-shadow: 0 0 20px 8px rgba(255,165,0,0.8); opacity:1; } 100% { box-shadow: 0 0 12px 4px rgba(255,165,0,0.6); opacity:0.9; } }
@keyframes surr-figure { 0%,100% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } }
@keyframes surr-arms { 0%,100% { transform: rotate(-30deg); } 50% { transform: rotate(-20deg); } }
@keyframes surr-sun { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-gypsy-presence-spain { background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 60%, #CD853F 100%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 40%); }
.scn-gypsy-presence-spain .sky-gps { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 100%); animation: gps-sky 15s ease-in-out infinite alternate; }
.scn-gypsy-presence-spain .mountains-gps { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #6B8E23 0%, #556B2F 70%, #3B5323 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: gps-mountains 20s ease-in-out infinite alternate; }
.scn-gypsy-presence-spain .road-gps { position:absolute; bottom:18%; left:0; right:0; height:12%; background: linear-gradient(180deg, #8B7355 0%, #6B5B45 50%, #4A3C2E 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.4); animation: gps-road 10s linear infinite; }
.scn-gypsy-presence-spain .wagon-gps { position:absolute; bottom:20%; left:30%; width:100px; height:50px; background: linear-gradient(180deg, #A0522D 0%, #8B4513 100%); border-radius: 10% 10% 5% 5%; box-shadow: 5px 5px 10px rgba(0,0,0,0.5); animation: gps-wagon 5s ease-in-out infinite; }
.scn-gypsy-presence-spain .horse-gps { position:absolute; bottom:14%; left:20%; width:50px; height:30px; background: linear-gradient(180deg, #8B7355 0%, #6B5B45 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; animation: gps-horse 3s ease-in-out infinite; }
.scn-gypsy-presence-spain .driver-gps { position:absolute; bottom:27%; left:35%; width:15px; height:35px; background: linear-gradient(180deg, #2F1B0E 0%, #1A0F06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gps-driver 4s ease-in-out infinite; }
.scn-gypsy-presence-spain .cloud-gps-a { position:absolute; top:12%; left:10%; width:90px; 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: gps-drift-a 40s linear infinite; }
.scn-gypsy-presence-spain .cloud-gps-b { position:absolute; top:20%; right:15%; width:70px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.08) 100%); border-radius: 50%; filter: blur(5px); animation: gps-drift-b 55s linear infinite reverse; }
@keyframes gps-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes gps-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes gps-road { 0% { background-position: 0 0; } 100% { background-position: 100% 0; } }
@keyframes gps-wagon { 0%,100% { transform: translateX(0); } 50% { transform: translateX(5px) translateY(-2px); } }
@keyframes gps-horse { 0%,100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } }
@keyframes gps-driver { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes gps-drift-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(130vw); } }
@keyframes gps-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

.scn-gypsy-trades-and-tricks { background: linear-gradient(180deg, #F5DEB3 0%, #DEB887 40%, #D2B48C 100%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 40%); }
.scn-gypsy-trades-and-tricks .bg-gtt { position:absolute; inset:0; background: linear-gradient(180deg, #E8D5B7 0%, #C9A96E 100%); border-radius: 20% 20% 0 0; }
.scn-gypsy-trades-and-tricks .table-gtt { position:absolute; bottom:30%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%); border-radius: 5% 5% 0 0; box-shadow: 0 -5px 15px rgba(0,0,0,0.3); }
.scn-gypsy-trades-and-tricks .hand-left-gtt { position:absolute; bottom:35%; left:25%; width:25px; height:40px; background: linear-gradient(180deg, #D2A679 0%, #A0785A 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: gtt-hand-l 5s ease-in-out infinite; }
.scn-gypsy-trades-and-tricks .hand-right-gtt { position:absolute; bottom:35%; right:25%; width:25px; height:40px; background: linear-gradient(180deg, #D2A679 0%, #A0785A 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: gtt-hand-r 5s ease-in-out infinite 2s; }
.scn-gypsy-trades-and-tricks .card-gtt { position:absolute; bottom:40%; left:42%; width:12px; height:18px; background: linear-gradient(135deg, #FFF8DC 0%, #F5DEB3 100%); border-radius: 5%; box-shadow: 2px 2px 5px rgba(0,0,0,0.3); animation: gtt-card 4s ease-in-out infinite; }
.scn-gypsy-trades-and-tricks .coin-gtt { position:absolute; bottom:45%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #FFD700 0%, #DAA520 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(255,215,0,0.5); animation: gtt-coin 3s ease-in-out infinite; }
.scn-gypsy-trades-and-tricks .cloth-gtt { position:absolute; bottom:25%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, #A0522D 0%, #8B4513 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,0.3); }
@keyframes gtt-hand-l { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } }
@keyframes gtt-hand-r { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } }
@keyframes gtt-card { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(15deg); } 50% { transform: translateY(0) rotate(30deg); } 75% { transform: translateY(5px) rotate(15deg); } }
@keyframes gtt-coin { 0%,100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.2) rotate(180deg); } }

.scn-gypsy-physiognomy { background: linear-gradient(180deg, #F5DEB3 0%, #DEB887 50%, #C9A96E 100%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 40%); }
.scn-gypsy-physiognomy .bg-gphy { position:absolute; inset:0; background: linear-gradient(135deg, #F0E68C 0%, #D2B48C 100%); border-radius: 10% 10% 0 0; }
.scn-gypsy-physiognomy .profile-left-gphy { position:absolute; bottom:20%; left:15%; width:50px; height:80px; background: linear-gradient(180deg, #5C3A21 0%, #3A2110 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: gphy-left 6s ease-in-out infinite alternate; }
.scn-gypsy-physiognomy .profile-left-gphy::after { content:''; position:absolute; top:25%; left:5%; width:8px; height:12px; background: #2F1B0E; border-radius: 50% 50% 0 0; transform: rotate(10deg); } /* nose */
.scn-gypsy-physiognomy .profile-right-gphy { position:absolute; bottom:20%; right:15%; width:50px; height:80px; background: linear-gradient(180deg, #5C3A21 0%, #3A2110 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1) rotate(15deg); animation: gphy-right 8s ease-in-out infinite alternate; }
.scn-gypsy-physiognomy .profile-right-gphy::after { content:''; position:absolute; top:30%; left:2%; width:6px; height:10px; background: #2F1B0E; border-radius: 50% 50% 0 0; transform: rotate(5deg); }
.scn-gypsy-physiognomy .hand-gphy { position:absolute; bottom:30%; left:45%; width:20px; height:30px; background: linear-gradient(180deg, #D2A679 0%, #A0785A 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: gphy-hand 5s ease-in-out infinite; }
.scn-gypsy-physiognomy .shadow-gphy { position:absolute; bottom:0; left:10%; right:10%; height:15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); border-radius: 50% 50% 0 0; }
.scn-gypsy-physiognomy .accent-gphy { position:absolute; top:15%; left:25%; width:40px; height:40px; background: radial-gradient(circle, #8B4513 0%, transparent 70%); border-radius: 50%; opacity:0.4; animation: gphy-accent 10s ease-in-out infinite alternate; }
@keyframes gphy-left { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(10deg) translateX(2px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes gphy-right { 0% { transform: scaleX(-1) rotate(15deg) translateX(0); } 50% { transform: scaleX(-1) rotate(10deg) translateX(-2px); } 100% { transform: scaleX(-1) rotate(15deg) translateX(0); } }
@keyframes gphy-hand { 0%,100% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-4px) rotate(5deg); } }
@keyframes gphy-accent { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(0.9); } }

/* ride-to-lonely-inn */
.scn-ride-to-lonely-inn {
  background:
    linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 50%, #2a2a4e 100%),
    radial-gradient(ellipse at 50% 20%, #3a4a7e 0%, transparent 60%);
}
.scn-ride-to-lonely-inn .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg,#1a1a3e 0%,transparent 100%); animation:lon-sky 20s ease-in-out infinite alternate; }
.scn-ride-to-lonely-inn .moon { position:absolute; top:12%; left:60%; width:40px; height:40px; background:radial-gradient(circle,#e0e8ff 0%,#b0c0ff 100%); border-radius:50%; box-shadow:0 0 40px 10px #c0d0ff; animation:lon-moon 30s linear infinite; }
.scn-ride-to-lonely-inn .hills-back { position:absolute; bottom:45%; left:0; right:0; height:20%; background:linear-gradient(180deg,#1a2a2a 0%,#0a1a1a 100%); border-radius:60% 40% 0 0 / 80% 60% 0 0; animation:lon-hills 15s ease-in-out infinite alternate; }
.scn-ride-to-lonely-inn .hills-front { position:absolute; bottom:40%; left:0; right:0; height:15%; background:linear-gradient(180deg,#0a1a1a 0%,#050f0f 100%); border-radius:50% 50% 0 0; animation:lon-hills 20s ease-in-out infinite alternate-reverse; }
.scn-ride-to-lonely-inn .inn { position:absolute; bottom:40%; left:30%; width:100px; height:60px; background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 100%); border-radius:10% 10% 4% 4%; box-shadow:0 4px 8px rgba(0,0,0,0.6); }
.scn-ride-to-lonely-inn .window { position:absolute; bottom:42%; left:35%; width:16px; height:20px; background:radial-gradient(circle,#f0c060 0%,#c08030 70%); border-radius:20%; box-shadow:0 0 20px 5px #c08030; animation:lon-window 3s ease-in-out infinite alternate; }
.scn-ride-to-lonely-inn .road { position:absolute; bottom:35%; left:0; right:0; height:8%; background:linear-gradient(180deg,#3a3a2a 0%,#2a2a1a 100%); border-radius:40% 60% 0 0; }
.scn-ride-to-lonely-inn .figure { position:absolute; bottom:30%; left:10%; width:14px; height:30px; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:lon-walk 4s ease-in-out infinite; }
.scn-ride-to-lonely-inn .cloud { position:absolute; top:20%; left:20%; width:70px; height:12px; background:rgba(200,210,240,0.3); border-radius:50%; filter:blur(8px); animation:lon-cloud 40s linear infinite; }
@keyframes lon-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes lon-moon { 0% { transform:translateX(0); } 50% { transform:translateX(20px); } 100% { transform:translateX(0); } }
@keyframes lon-hills { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes lon-window { 0% { box-shadow:0 0 10px 2px #c08030; opacity:0.8; } 50% { box-shadow:0 0 30px 8px #d09040; opacity:1; } 100% { box-shadow:0 0 15px 3px #c08030; opacity:0.85; } }
@keyframes lon-walk { 0% { transform:translateX(0) translateY(0) rotate(-1deg); } 25% { transform:translateX(5px) translateY(-1px) rotate(1deg); } 50% { transform:translateX(10px) translateY(0) rotate(-1deg); } 75% { transform:translateX(15px) translateY(-1px) rotate(1deg); } 100% { transform:translateX(20px) translateY(0) rotate(0deg); } }
@keyframes lon-cloud { 0% { transform:translateX(-40px); } 100% { transform:translateX(120vw); } }

/* hermit-mass */
.scn-hermit-mass {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 50%, #4a3a2a 100%),
    radial-gradient(ellipse at 30% 20%, #4a4a3a 0%, transparent 70%);
}
.scn-hermit-mass .wall { position:absolute; inset:0 30% 0 0; background:linear-gradient(180deg,#3a2a2a 0%,#2a1a1a 100%); border-radius:0 20% 20% 0; }
.scn-hermit-mass .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg,#2a1a1a 0%,#1a0a0a 100%); border-radius:20% 30% 0 0; }
.scn-hermit-mass .window { position:absolute; top:15%; right:10%; width:60px; height:80px; background:linear-gradient(180deg,#4a5a6a 0%,#3a4a5a 100%); border:4px solid #2a1a1a; border-radius:4px 4px 20% 20%; }
.scn-hermit-mass .dawn-light { position:absolute; top:15%; right:10%; width:60px; height:80px; background:linear-gradient(135deg,rgba(255,200,150,0.6) 0%,transparent 50%); clip-path:polygon(0 0,100% 0,100% 100%,0 100%); animation:her-light 15s ease-in-out infinite alternate; }
.scn-hermit-mass .figure { position:absolute; bottom:25%; left:20%; width:20px; height:40px; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:her-figure 6s ease-in-out infinite; }
.scn-hermit-mass .altar { position:absolute; bottom:28%; left:20%; width:60px; height:30px; background:linear-gradient(180deg,#4a3a2a 0%,#3a2a1a 100%); border-radius:10% 10% 4% 4%; box-shadow:0 4px 8px rgba(0,0,0,0.5); }
.scn-hermit-mass .cross { position:absolute; bottom:50%; left:22%; width:4px; height:40px; background:#5a4a3a; border-radius:2px; transform-origin:bottom center; }
.scn-hermit-mass .cross::before { content:''; position:absolute; top:10px; left:-12px; width:28px; height:4px; background:#5a4a3a; border-radius:2px; }
.scn-hermit-mass .candle { position:absolute; bottom:30%; left:30%; width:6px; height:20px; background:linear-gradient(180deg,#f0c060 0%,#c08030 100%); border-radius:2px 2px 10% 10%; box-shadow:0 0 10px 3px #c08030; animation:her-candle 2s ease-in-out infinite alternate; }
@keyframes her-light { 0% { opacity:0.4; transform:scaleY(0.8); } 50% { opacity:0.7; transform:scaleY(1); } 100% { opacity:0.5; transform:scaleY(0.9); } }
@keyframes her-figure { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes her-candle { 0% { transform:scaleY(1); opacity:0.8; } 50% { transform:scaleY(1.1); opacity:1; } 100% { transform:scaleY(1); opacity:0.85; } }

/* final-confrontation */
.scn-final-confrontation {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%),
    radial-gradient(ellipse at 50% 30%, #3a4a5e 0%, transparent 60%);
}
.scn-final-confrontation .wall { position:absolute; inset:0 0 0 40%; background:linear-gradient(180deg,#2a2a3e 0%,#1a1a2e 100%); border-radius:30% 0 0 0; }
.scn-final-confrontation .window { position:absolute; top:10%; right:10%; width:50px; height:60px; background:linear-gradient(180deg,#4a5a6a 0%,#3a4a5a 100%); border:4px solid #1a1a2e; border-radius:4px; }
.scn-final-confrontation .table { position:absolute; bottom:20%; left:10%; right:30%; height:40%; background:linear-gradient(180deg,#3a2a1a 0%,#2a1a0a 100%); border-radius:10% 10% 0 0; }
.scn-final-confrontation .bowl { position:absolute; bottom:45%; left:28%; width:40px; height:20px; background:radial-gradient(ellipse,#4a3a2a 0%,#3a2a1a 100%); border-radius:50%; box-shadow:0 -2px 4px rgba(0,0,0,0.5); }
.scn-final-confrontation .water { position:absolute; bottom:45%; left:28%; width:36px; height:18px; background:linear-gradient(180deg,#5a6a7a 0%,#4a5a6a 100%); border-radius:50%; animation:fin-water 4s ease-in-out infinite; }
.scn-final-confrontation .figure { position:absolute; bottom:10%; left:15%; width:24px; 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:fin-figure 5s ease-in-out infinite; }
.scn-final-confrontation .chair { position:absolute; bottom:10%; left:12%; width:30px; height:10px; background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 100%); border-radius:2px; }
@keyframes fin-water { 0% { transform:scaleX(1) translateY(0); opacity:0.8; } 50% { transform:scaleX(1.1) translateY(-1px); opacity:1; } 100% { transform:scaleX(1) translateY(0); opacity:0.85; } }
@keyframes fin-figure { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }

/* carmen-death */
.scn-carmen-death {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 10%, #5a4a3a 0%, transparent 60%);
}
.scn-carmen-death .sky { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg,#5a4a3a 0%,#4a3a2a 100%); animation:car-sky 20s ease-in-out infinite alternate; }
.scn-carmen-death .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background:linear-gradient(180deg,#2a1a0a 0%,#1a0a00 100%); border-radius:50% 50% 0 0; }
.scn-carmen-death .brush-left { position:absolute; bottom:50%; left:10%; width:40px; height:30px; background:radial-gradient(ellipse at 50% 100%,#3a2a1a 0%,transparent 70%); border-radius:50%; filter:blur(2px); animation:car-brush 6s ease-in-out infinite; }
.scn-carmen-death .brush-right { position:absolute; bottom:50%; right:10%; width:50px; height:40px; background:radial-gradient(ellipse at 50% 100%,#3a2a1a 0%,transparent 70%); border-radius:50%; filter:blur(2px); animation:car-brush 5s ease-in-out infinite reverse; }
.scn-carmen-death .tree { position:absolute; bottom:60%; left:5%; width:20px; height:60px; background:linear-gradient(180deg,#2a1a0a 0%,#1a0a00 100%); border-radius:10px; }
.scn-carmen-death .figure { position:absolute; bottom:40%; left:40%; width:20px; height:40px; background:linear-gradient(180deg,#2a1a1a 0%,#1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:car-figure 10s ease-in-out infinite; }
.scn-carmen-death .ring { position:absolute; bottom:45%; left:45%; width:8px; height:8px; background:radial-gradient(circle,#c8a060 0%,#806040 100%); border-radius:50%; box-shadow:0 0 8px 2px #a08050; animation:car-ring 3s ease-in-out infinite; }
@keyframes car-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes car-brush { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(-3deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes car-figure { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes car-ring { 0% { transform:scale(1); opacity:0.7; } 50% { transform:scale(1.2); opacity:1; } 100% { transform:scale(1); opacity:0.8; } }

.scn-item-blunderbuss {
  background: linear-gradient(180deg, #87CEEB 0%, #FFE4B5 60%, #FFD700 100%), radial-gradient(ellipse at 80% 30%, #FFD700 0%, transparent 50%);
}
.scn-item-blunderbuss .sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,0.3), transparent); animation: ib-sky 8s ease-in-out infinite alternate; }
.scn-item-blunderbuss .sun { position:absolute; top:15%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #FFD700 0%, #FFA500 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 100px 40px rgba(255,215,0,0.5); animation: ib-sun 6s ease-in-out infinite alternate; }
.scn-item-blunderbuss .sunrays { position:absolute; top:15%; right:20%; width:200px; height:200px; transform:translate(-50%,-50%) rotate(0deg); background: conic-gradient(from 0deg, transparent 0deg, rgba(255,215,0,0.1) 10deg, transparent 20deg, rgba(255,215,0,0.1) 30deg, transparent 40deg, rgba(255,215,0,0.1) 50deg, transparent 60deg, rgba(255,215,0,0.1) 70deg, transparent 80deg, rgba(255,215,0,0.1) 90deg, transparent 100deg); animation: ib-rays 12s linear infinite; }
.scn-item-blunderbuss .figure { position:absolute; bottom:30%; left:50%; width:40px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #2B1810 0%, #1A0D08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ib-figure 4s ease-in-out infinite; }
.scn-item-blunderbuss .weapon { position:absolute; bottom:45%; left:48%; width:80px; height:8px; background: linear-gradient(90deg, #4A3A2A 0%, #2A1A0A 100%); border-radius: 4px; transform-origin: right center; animation: ib-weapon 2s ease-in-out infinite alternate; }
.scn-item-blunderbuss .shadow { position:absolute; bottom:25%; left:50%; width:60px; height:10px; background: rgba(0,0,0,0.4); border-radius:50%; transform:translateX(-50%); animation: ib-shadow 4s ease-in-out infinite; }
.scn-item-blunderbuss .grass { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7CFC00 0%, #228B22 100%); border-radius: 40% 60% 0 0; animation: ib-grass 6s ease-in-out infinite alternate; }
@keyframes ib-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ib-sun { 0% { transform: scale(1); box-shadow: 0 0 80px 30px rgba(255,215,0,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 120px 50px rgba(255,215,0,0.7); } 100% { transform: scale(0.95); box-shadow: 0 0 60px 20px rgba(255,215,0,0.3); } }
@keyframes ib-rays { 0% { transform: translate(-50%,-50%) rotate(0deg); } 100% { transform: translate(-50%,-50%) rotate(360deg); } }
@keyframes ib-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(0.5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes ib-weapon { 0% { transform: rotate(-10deg); } 100% { transform: rotate(10deg); } }
@keyframes ib-shadow { 0% { transform: translateX(-50%) scaleX(1); opacity:0.4; } 50% { transform: translateX(-50%) scaleX(1.2); opacity:0.6; } 100% { transform: translateX(-50%) scaleX(0.9); opacity:0.3; } }
@keyframes ib-grass { 0% { transform: translateY(0); } 50% { transform: translateY(-8px); } 100% { transform: translateY(0); } }

.scn-initial-fear-overcome {
  background: linear-gradient(135deg, #FFE4B5 0%, #87CEEB 100%), radial-gradient(ellipse at 50% 30%, #FFD700 0%, transparent 70%);
}
.scn-initial-fear-overcome .bg-blur { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 40%, rgba(255,215,0,0.3), transparent); filter: blur(8px); animation: if-bg 5s ease-in-out infinite alternate; }
.scn-initial-fear-overcome .muzzle { position:absolute; top:40%; left:30%; width:90px; height:90px; background: radial-gradient(circle at 30% 30%, #555 0%, #111 60%, #000 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(0,0,0,0.8); animation: if-muzzle 2s ease-in-out infinite; }
.scn-initial-fear-overcome .barrel { position:absolute; top:42%; left:25%; width:160px; height:20px; background: linear-gradient(90deg, #333 0%, #555 50%, #777 100%); border-radius: 10px; transform: rotate(-15deg); animation: if-barrel 1.5s ease-in-out infinite alternate; }
.scn-initial-fear-overcome .stock { position:absolute; bottom:30%; left:50%; width:30px; height:80px; background: linear-gradient(180deg, #5C3A1E 0%, #3A2212 100%); border-radius: 5px; transform: rotate(10deg); animation: if-stock 3s ease-in-out infinite alternate; }
.scn-initial-fear-overcome .hand { position:absolute; bottom:38%; left:48%; width:25px; height:40px; background: #8B4513; border-radius: 50% 30% 40% 50%; transform: rotate(20deg); animation: if-hand 2s ease-in-out infinite; }
.scn-initial-fear-overcome .flash { position:absolute; top:38%; left:28%; width:40px; height:40px; background: radial-gradient(circle, #FFF 0%, #FFD700 30%, transparent 70%); border-radius:50%; opacity:0; animation: if-flash 0.5s ease-in-out infinite; }
@keyframes if-bg { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes if-muzzle { 0% { transform: scale(0.95); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }
@keyframes if-barrel { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(3px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes if-stock { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes if-hand { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-3px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes if-flash { 0% { opacity:0; } 10% { opacity:1; } 20% { opacity:0; } 100% { opacity:0; } }

.scn-nod-and-scrutiny {
  background: linear-gradient(180deg, #87CEEB 0%, #FFF8DC 100%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 70%);
}
.scn-nod-and-scrutiny .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, rgba(255,255,255,0.2), transparent); animation: ns-sky 10s ease-in-out infinite alternate; }
.scn-nod-and-scrutiny .sun { position:absolute; top:10%; left:50%; width:80px; height:80px; background: radial-gradient(circle, #FFD700 0%, #FFA500 50%, transparent 100%); border-radius:50%; transform:translateX(-50%); box-shadow: 0 0 120px 60px rgba(255,215,0,0.5); animation: ns-sun 8s ease-in-out infinite alternate; }
.scn-nod-and-scrutiny .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8FBC8F 0%, #556B2F 100%); border-radius: 20% 20% 0 0; }
.scn-nod-and-scrutiny .figure-left-body { position:absolute; bottom:15%; left:25%; width:30px; height:70px; background: #2B1A0E; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ns-body-left 5s ease-in-out infinite; }
.scn-nod-and-scrutiny .figure-left-head { position:absolute; bottom:60%; left:25%; width:25px; height:25px; margin-left:2.5px; background: #2B1A0E; border-radius:50%; animation: ns-head-left 4s ease-in-out infinite; }
.scn-nod-and-scrutiny .figure-right-body { position:absolute; bottom:15%; right:25%; width:30px; height:70px; background: #3D2B1F; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ns-body-right 5s ease-in-out infinite 2.5s; }
.scn-nod-and-scrutiny .figure-right-head { position:absolute; bottom:60%; right:25%; width:25px; height:25px; margin-right:2.5px; background: #3D2B1F; border-radius:50%; animation: ns-head-right 4s ease-in-out infinite 2s; }
@keyframes ns-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ns-sun { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 100px 50px rgba(255,215,0,0.4); } 50% { transform: translateX(-50%) scale(1.03); box-shadow: 0 0 140px 70px rgba(255,215,0,0.6); } 100% { transform: translateX(-50%) scale(0.97); box-shadow: 0 0 80px 30px rgba(255,215,0,0.3); } }
@keyframes ns-body-left { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ns-body-right { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ns-head-left { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-10deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(5deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ns-head-right { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }

.scn-meeting-anxiety {
  background: linear-gradient(180deg, #2E8B57 0%, #3CB371 30%, #F0E68C 100%), radial-gradient(ellipse at 50% 40%, #F0E68C 0%, transparent 80%);
}
.scn-meeting-anxiety .water { position:absolute; bottom:0; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #4682B4 0%, #87CEEB 100%); border-radius: 20% 20% 0 0; animation: ma-water 12s ease-in-out infinite alternate; }
.scn-meeting-anxiety .bank { position:absolute; bottom:50%; left:0; right:0; height:10%; background: linear-gradient(180deg, #8B7355 0%, #5C4033 100%); }
.scn-meeting-anxiety .figure-kneeling { position:absolute; bottom:35%; left:45%; width:30px; height:40px; background: #2B1A0E; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotateX(60deg); transform-origin: bottom center; animation: ma-kneel 6s ease-in-out infinite; }
.scn-meeting-anxiety .figure-standing { position:absolute; bottom:40%; right:30%; width:25px; height:60px; background: #3D2B1F; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ma-stand 8s ease-in-out infinite; }
.scn-meeting-anxiety .reflection-kneeling { position:absolute; bottom:20%; left:45%; width:30px; height:30px; background: #2B1A0E; opacity:0.5; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; filter: blur(2px); transform: scaleY(-1); animation: ma-reflect 8s ease-in-out infinite; }
.scn-meeting-anxiety .reflection-standing { position:absolute; bottom:25%; right:30%; width:25px; height:50px; background: #3D2B1F; opacity:0.5; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; filter: blur(2px); transform: scaleY(-1); animation: ma-reflect 8s ease-in-out infinite 2s; }
.scn-meeting-anxiety .ripples { position:absolute; bottom:30%; left:50%; width:100px; height:100px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(255,255,255,0.2) 0%, transparent 70%); border-radius:50%; animation: ma-ripple 4s ease-out infinite; }
.scn-meeting-anxiety .horses { position:absolute; bottom:45%; left:15%; width:40px; height:25px; background: #4A3A2A; border-radius: 30% 50% 30% 50% / 50% 30% 50% 30%; transform: rotate(10deg); animation: ma-horse 7s ease-in-out infinite; }
@keyframes ma-water { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes ma-kneel { 0% { transform: rotateX(60deg) translateY(0); } 50% { transform: rotateX(65deg) translateY(-5px); } 100% { transform: rotateX(60deg) translateY(0); } }
@keyframes ma-stand { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes ma-reflect { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes ma-ripple { 0% { transform: translate(-50%,-50%) scale(0.5); opacity:0.8; } 100% { transform: translate(-50%,-50%) scale(2); opacity:0; } }
@keyframes ma-horse { 0% { transform: rotate(10deg) translateX(0); } 25% { transform: rotate(8deg) translateX(-2px); } 50% { transform: rotate(12deg) translateX(2px); } 75% { transform: rotate(9deg) translateX(-1px); } 100% { transform: rotate(10deg) translateX(0); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.beam { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.silhouette { position: absolute; pointer-events: none; }
.sparkle { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
/* one block per scene id. Append to style.css. */
.scn-closing-editorial-note { 
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #d8c8b0 40%, #b8a88e 100%),
    radial-gradient(ellipse at 50% 20%, #fff8ee 0%, transparent 70%);
}
.scn-closing-editorial-note .bg-wall { 
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #c4b59a 0%, #a6977c 100%);
  animation: cen-wall 20s ease-in-out infinite alternate;
}
.scn-closing-editorial-note .shelf-left { 
  position: absolute; top: 8%; left: 5%; width: 22%; height: 70%; 
  background: 
    linear-gradient(90deg, #8b7a62 0%, #7a6951 50%, #8b7a62 100%),
    repeating-linear-gradient(0deg, transparent, transparent 14%, #6b5a42 14%, #6b5a42 14.5%);
  border-radius: 4px; 
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.2);
  animation: cen-shelf 30s ease-in-out infinite alternate;
}
.scn-closing-editorial-note .shelf-right { 
  position: absolute; top: 10%; right: 5%; width: 18%; height: 65%; 
  background: 
    linear-gradient(270deg, #8b7a62 0%, #7a6951 50%, #8b7a62 100%),
    repeating-linear-gradient(0deg, transparent, transparent 12%, #6b5a42 12%, #6b5a42 12.5%);
  border-radius: 4px; 
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.2);
  animation: cen-shelf 35s ease-in-out infinite alternate;
}
.scn-closing-editorial-note .desk { 
  position: absolute; bottom: 8%; left: 25%; width: 50%; height: 14%; 
  background: linear-gradient(180deg, #a3866a 0%, #8c7054 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  animation: cen-desk 12s ease-in-out infinite;
}
.scn-closing-editorial-note .window { 
  position: absolute; top: 12%; left: 38%; width: 24%; height: 40%; 
  background: linear-gradient(180deg, #fffbe6 0%, #fee9b0 50%, #fff8dc 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.6), 0 0 20px rgba(255,235,150,0.3);
  animation: cen-window 8s ease-in-out infinite alternate;
  /* window cross */
  clip-path: polygon(0% 0%, 0% 100%, 100% 100%, 100% 0%, 50% 0%, 50% 100%, 0% 50%, 100% 50%);
}
.scn-closing-editorial-note .lamp { 
  position: absolute; bottom: 22%; left: 20%; width: 8px; height: 16%; 
  background: linear-gradient(180deg, #b89670 0%, #8c6a44 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(255,200,100,0.4);
  transform-origin: bottom center;
  animation: cen-lamp 6s ease-in-out infinite alternate;
}
.scn-closing-editorial-note .lamp::before { 
  content: ''; position: absolute; top: -8px; left: -10px; width: 28px; height: 16px; 
  background: radial-gradient(ellipse, #ffd080 0%, #e8a040 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(255,200,100,0.5);
  animation: cen-lampglow 4s ease-in-out infinite alternate;
}
.scn-closing-editorial-note .books { 
  position: absolute; bottom: 22%; left: 40%; width: 20%; height: 10%; 
  display: flex; gap: 2px; align-items: flex-end;
  background: none; /* placeholder for multiple books */
}
/* Simulate stacked books using multiple background positions */
.scn-closing-editorial-note .books { 
  background: 
    linear-gradient(90deg, #5a4a3a 0%, #6a5a4a 100%) no-repeat 0% 100% / 18% 80%,
    linear-gradient(90deg, #7a6a5a 0%, #8a7a6a 100%) no-repeat 20% 100% / 22% 60%,
    linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 100%) no-repeat 44% 100% / 16% 90%,
    linear-gradient(90deg, #8a7a5a 0%, #9a8a6a 100%) no-repeat 62% 100% / 20% 50%,
    linear-gradient(90deg, #6a5a4a 0%, #7a6a5a 100%) no-repeat 84% 100% / 16% 70%;
  border-radius: 2px;
  animation: cen-books 15s ease-in-out infinite alternate;
}
.scn-closing-editorial-note .scroll { 
  position: absolute; bottom: 12%; left: 38%; width: 20%; height: 6%; 
  background: linear-gradient(90deg, #ecd8b0 0%, #f0e0c0 50%, #e8d0a0 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: cen-scroll 10s ease-in-out infinite;
}

/* Keyframes */
@keyframes cen-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes cen-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes cen-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes cen-window { 0% { opacity:0.8; box-shadow:inset 0 0 20px rgba(255,255,200,0.4), 0 0 10px rgba(255,235,150,0.2); } 50% { opacity:1; box-shadow:inset 0 0 40px rgba(255,255,200,0.7), 0 0 30px rgba(255,235,150,0.4); } 100% { opacity:0.85; box-shadow:inset 0 0 25px rgba(255,255,200,0.5), 0 0 15px rgba(255,235,150,0.3); } }
@keyframes cen-lamp { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes cen-lampglow { 0% { opacity:0.7; box-shadow:0 0 30px 10px rgba(255,200,100,0.4); } 50% { opacity:1; box-shadow:0 0 50px 20px rgba(255,200,100,0.7); } 100% { opacity:0.8; box-shadow:0 0 35px 12px rgba(255,200,100,0.5); } }
@keyframes cen-books { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cen-scroll { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }

.scn-item-silver-medal-message {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1e12 40%, #1e1410 100%),
              radial-gradient(ellipse at 50% 70%, #3a2518 0%, transparent 70%);
}
.scn-item-silver-medal-message .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #24180c 0%, #2e1e14 50%, #1f140e 100%); }
.scn-item-silver-medal-message .table   { position:absolute; bottom:10%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #4a2e1e 0%, #2a1a0e 100%); border-radius:8% 8% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.6); }
.scn-item-silver-medal-message .paper   { position:absolute; bottom:30%; left:40%; width:50px; height:40px; background: radial-gradient(ellipse at 50% 50%, #f0e8d8 0%, #c8b898 100%); border-radius:4%; box-shadow: 0 2px 6px rgba(0,0,0,.4); transform:rotate(5deg); animation: ism-paper 12s ease-in-out infinite; }
.scn-item-silver-medal-message .medal   { position:absolute; bottom:36%; left:48%; width:14px; height:14px; background: radial-gradient(circle, #e0d0b0 0%, #a09070 100%); border-radius:50%; box-shadow: 0 0 8px 2px #c8b088; transform:rotate(45deg); animation: ism-medal 4s ease-in-out infinite; }
.scn-item-silver-medal-message .hand    { position:absolute; bottom:28%; left:36%; width:20px; height:30px; background: linear-gradient(180deg, #6a5038 0%, #4a3628 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform:rotate(10deg); animation: ism-hand 5s ease-in-out infinite; }
.scn-item-silver-medal-message .candle  { position:absolute; bottom:36%; left:30%; width:8px; height:36px; background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 70%, #8a6a48 100%); border-radius:8% 8% 4% 4%; animation: ism-candle 3s ease-in-out infinite; }
.scn-item-silver-medal-message .glow    { position:absolute; bottom:32%; left:28%; width:40px; height:50px; background: radial-gradient(circle, rgba(240,200,120,.5) 0%, transparent 80%); filter:blur(6px); animation: ism-glow 3s ease-in-out infinite alternate; }
@keyframes ism-paper   { 0%,100% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(7deg) translateY(-2px); } }
@keyframes ism-medal   { 0%,100% { transform:rotate(45deg) scale(1); } 50% { transform:rotate(55deg) scale(1.05); } }
@keyframes ism-hand    { 0%,100% { transform:rotate(10deg) translateX(0); } 50% { transform:rotate(12deg) translateX(-2px); } }
@keyframes ism-candle  { 0%,100% { height:36px; } 50% { height:38px; } }
@keyframes ism-glow    { 0% { opacity:.6; transform:scale(1); } 100% { opacity:.9; transform:scale(1.1); } }

.scn-jose-begins-his-story {
  background: linear-gradient(180deg, #1c1510 0%, #2a1e16 30%, #1a120e 100%),
              radial-gradient(ellipse at 40% 60%, #3a2a1e 0%, transparent 60%);
}
.scn-jose-begins-his-story .bg-room { position:absolute; inset:0; background: linear-gradient(90deg, #1a1410 0%, #241a14 50%, #1a1210 100%); }
.scn-jose-begins-his-story .hearth  { position:absolute; bottom:10%; left:10%; right:40%; height:40%; background: linear-gradient(180deg, #3a2216 0%, #1e120c 100%); border-radius:30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-jose-begins-his-story .fire    { position:absolute; bottom:28%; left:12%; width:30px; height:30px; background: radial-gradient(circle, #e86424 0%, #b04020 40%, #5a1a0e 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; filter:blur(2px); animation: jbh-fire 1.5s ease-in-out infinite alternate; }
.scn-jose-begins-his-story .chair   { position:absolute; bottom:10%; left:55%; width:40px; height:50px; background: linear-gradient(180deg, #3a2a1e 0%, #221810 100%); border-radius:10% 10% 30% 30% / 20% 20% 50% 50%; box-shadow: -4px 0 8px rgba(0,0,0,.5); }
.scn-jose-begins-his-story .figure  { position:absolute; bottom:12%; left:58%; width:24px; height:40px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jbh-figure 6s ease-in-out infinite; }
.scn-jose-begins-his-story .shadow  { position:absolute; bottom:8%; left:50%; width:60px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); animation: jbh-shadow 6s ease-in-out infinite; }
@keyframes jbh-fire    { 0%,100% { transform:scale(1) rotate(0deg); } 50% { transform:scale(1.2) rotate(5deg); } }
@keyframes jbh-figure  { 0%,100% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(2px) rotate(-1deg); } 50% { transform:translateX(0) rotate(1deg); } 75% { transform:translateX(-2px) rotate(-1deg); } }
@keyframes jbh-shadow  { 0%,100% { opacity:.5; transform:scaleX(1); } 50% { opacity:.7; transform:scaleX(1.1); } }

.scn-tennis-fight-enlistment {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 40%, #f0e68c 100%),
              radial-gradient(ellipse at 50% 100%, #b0e0ff 0%, transparent 60%);
}
.scn-tennis-fight-enlistment .sky      { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0ff 0%, #e0f0ff 100%); animation: tfe-sky 20s ease-in-out infinite alternate; }
.scn-tennis-fight-enlistment .ground   { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8a46a 0%, #a07840 100%); border-radius:30% 30% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); }
.scn-tennis-fight-enlistment .net      { position:absolute; bottom:35%; left:45%; right:45%; height:20%; border:2px solid #4a4a4a; border-top: none; background: repeating-linear-gradient(90deg, #4a4a4a 0px, #4a4a4a 2px, transparent 2px, transparent 8px); opacity:.7; }
.scn-tennis-fight-enlistment .fig-left { position:absolute; bottom:28%; left:38%; width:24px; height:44px; background: linear-gradient(180deg, #1e1a1a 0%, #0e0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tfe-fight 0.5s ease-in-out infinite alternate; }
.scn-tennis-fight-enlistment .fig-right{ position:absolute; bottom:28%; right:38%; width:24px; height:44px; background: linear-gradient(180deg, #2a2626 0%, #12100e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tfe-fight 0.5s ease-in-out infinite alternate-reverse; }
.scn-tennis-fight-enlistment .stick-l  { position:absolute; bottom:38%; left:40%; width:4px; height:32px; background: #4a3020; transform:rotate(-30deg); animation: tfe-stick 0.4s ease-in-out infinite alternate; }
.scn-tennis-fight-enlistment .stick-r  { position:absolute; bottom:38%; right:40%; width:4px; height:32px; background: #4a3020; transform:rotate(30deg); animation: tfe-stick 0.4s ease-in-out infinite alternate-reverse; }
.scn-tennis-fight-enlistment .dust     { position:absolute; bottom:24%; left:45%; width:20px; height:10px; background: radial-gradient(ellipse, rgba(200,160,80,.5) 0%, transparent 100%); animation: tfe-dust 0.8s ease-in-out infinite; }
@keyframes tfe-sky   { 0% { opacity:.8; } 100% { opacity:1; } }
@keyframes tfe-fight { 0% { transform:translateX(0) rotate(-5deg); } 100% { transform:translateX(8px) rotate(5deg); } }
@keyframes tfe-stick { 0% { transform:rotate(-30deg) scaleY(1); } 100% { transform:rotate(-25deg) scaleY(1.1); } }
@keyframes tfe-dust  { 0%,100% { opacity:.5; transform:scaleX(1); } 50% { opacity:.8; transform:scaleX(1.5) translateY(-2px); } }

.scn-guard-duty-tobacco-factory {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #e8c86a 100%),
              radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, transparent 70%);
}
.scn-guard-duty-tobacco-factory .sky      { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0e0ff 0%, #f0e68c 100%); animation: gdt-sky 30s ease-in-out infinite alternate; }
.scn-guard-duty-tobacco-factory .building { position:absolute; bottom:10%; left:20%; right:20%; height:60%; background: linear-gradient(180deg, #c09860 0%, #a07840 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); }
.scn-guard-duty-tobacco-factory .door     { position:absolute; bottom:10%; left:44%; right:44%; height:40%; background: linear-gradient(180deg, #604020 0%, #402810 100%); border-radius:6% 6% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-guard-duty-tobacco-factory .guard    { position:absolute; bottom:12%; left:30%; width:18px; height:36px; background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gdt-guard 8s ease-in-out infinite; }
.scn-guard-duty-tobacco-factory .tree     { position:absolute; bottom:10%; right:15%; width:16px; height:50px; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius:50% 50% 30% 30% / 40% 40% 30% 30%; animation: gdt-tree 20s ease-in-out infinite; }
.scn-guard-duty-tobacco-factory .cloud-a  { position:absolute; top:12%; left:10%; width:60px; height:18px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, transparent 100%); border-radius:50%; filter:blur(4px); animation: gdt-cloud 40s linear infinite; }
.scn-guard-duty-tobacco-factory .cloud-b  { position:absolute; top:20%; right:5%; width:40px; height:12px; background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, transparent 100%); border-radius:50%; filter:blur(3px); animation: gdt-cloud 50s linear infinite reverse; }
@keyframes gdt-sky   { 0% { opacity:.85; } 100% { opacity:1; } }
@keyframes gdt-guard { 0%,100% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(3px) rotate(1deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-3px) rotate(-1deg); } }
@keyframes gdt-tree  { 0%,100% { transform:scaleY(1) rotate(0deg); } 50% { transform:scaleY(1.05) rotate(2deg); } }
@keyframes gdt-cloud { 0% { transform:translateX(-50px); } 100% { transform:translateX(100vw); } }

/* Scene: jose-reacts-gloomily – firelit, dark mood */
.scn-jose-reacts-gloomily {
  background:
    radial-gradient(ellipse at 30% 30%, #2a1a0a 0%, #0e0804 70%),
    linear-gradient(180deg, #1f1208 0%, #0d0805 100%);
}
.scn-jose-reacts-gloomily .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2310 0%, #1a0f07 100%);
  animation: jrg-wall 20s ease-in-out infinite alternate;
}
.scn-jose-reacts-gloomily .fireplace {
  position: absolute; bottom: 10%; left: 30%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-jose-reacts-gloomily .fire {
  position: absolute; bottom: 22%; left: 38%; width: 12%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #ff8800 0%, #cc4400 40%, #441100 70%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(3px);
  animation: jrg-fire 0.8s ease-in-out infinite alternate;
}
.scn-jose-reacts-gloomily .mandolin {
  position: absolute; bottom: 20%; left: 55%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #5c3a1a 0%, #3a2210 100%);
  border-radius: 0 60% 40% 0 / 0 80% 60% 0;
  transform: rotate(-15deg);
  animation: jrg-mandolin 6s ease-in-out infinite alternate;
}
.scn-jose-reacts-gloomily .figure {
  position: absolute; bottom: 8%; left: 50%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #1f1208 0%, #0d0805 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jrg-figure 4s ease-in-out infinite alternate;
}
.scn-jose-reacts-gloomily .embers {
  position: absolute; bottom: 24%; left: 34%; width: 8%; height: 4%;
  background: radial-gradient(circle, #ffaa33 0%, transparent 70%);
  filter: blur(5px);
  animation: jrg-ember 2s ease-in-out infinite alternate;
}
.scn-jose-reacts-gloomily .glow {
  position: absolute; bottom: 20%; left: 30%; width: 50%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,136,0,0.3) 0%, transparent 70%);
  animation: jrg-glow 3s ease-in-out infinite alternate;
}

@keyframes jrg-wall { 0% { opacity: 0.9 } 50% { opacity: 0.95 } 100% { opacity: 0.85 } }
@keyframes jrg-fire { 0% { transform: scaleY(1) translateY(0); opacity: 0.9 } 50% { transform: scaleY(1.08) translateY(-2px); opacity: 1 } 100% { transform: scaleY(0.95) translateY(1px); opacity: 0.8 } }
@keyframes jrg-mandolin { 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-12deg) translateX(2px) } 100% { transform: rotate(-17deg) translateX(-1px) } }
@keyframes jrg-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(4px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-2px) translateY(0) rotate(0deg) } }
@keyframes jrg-ember { 0% { transform: translateY(0) scale(1); opacity: 0.6 } 50% { transform: translateY(-6px) scale(1.2); opacity: 0.9 } 100% { transform: translateY(3px) scale(0.8); opacity: 0.4 } }
@keyframes jrg-glow { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.2 } }

/* Scene: guide-wants-to-speak-privately – dim interior, tense */
.scn-guide-wants-to-speak-privately {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a2218 50%, #14100a 100%),
    radial-gradient(ellipse at 40% 60%, #3a2a20 0%, transparent 70%);
}
.scn-guide-wants-to-speak-privately .stable-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1a0e 0%, #1a1008 100%);
  animation: gws-wall 15s ease-in-out infinite alternate;
}
.scn-guide-wants-to-speak-privately .horse {
  position: absolute; bottom: 15%; right: 10%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gws-horse 8s ease-in-out infinite alternate;
}
.scn-guide-wants-to-speak-privately .figure-guide {
  position: absolute; bottom: 10%; left: 35%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a140e 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gws-fig1 5s ease-in-out infinite alternate;
}
.scn-guide-wants-to-speak-privately .figure-narrator {
  position: absolute; bottom: 12%; left: 48%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gws-fig2 5s ease-in-out infinite alternate-reverse;
}
.scn-guide-wants-to-speak-privately .lantern {
  position: absolute; bottom: 40%; left: 50%; width: 6%; height: 8%;
  background: radial-gradient(circle, #ffcc66 0%, #bb8822 40%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,200,80,0.5);
  animation: gws-lantern 2.5s ease-in-out infinite alternate;
}
.scn-guide-wants-to-speak-privately .hay {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #6a4a1a 0%, #4a3010 100%);
  border-radius: 40% 60% 20% 20%;
  filter: blur(2px);
  animation: gws-hay 12s ease-in-out infinite;
}
.scn-guide-wants-to-speak-privately .shadow {
  position: absolute; bottom: 5%; left: 30%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: gws-shadow 10s ease-in-out infinite alternate;
}

@keyframes gws-wall { 0% { opacity: 0.8 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes gws-horse { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(-3px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes gws-fig1 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(5px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(-3px) translateY(0) rotate(-1deg) } }
@keyframes gws-fig2 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(-4px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(3px) translateY(0) rotate(1deg) } }
@keyframes gws-lantern { 0% { transform: scale(1) rotate(0deg); opacity: 0.7 } 50% { transform: scale(1.1) rotate(5deg); opacity: 1 } 100% { transform: scale(0.95) rotate(-3deg); opacity: 0.8 } }
@keyframes gws-hay { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gws-shadow { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.2 } }

/* Scene: sleeping-across-the-door – dark, tense */
.scn-sleeping-across-the-door {
  background:
    linear-gradient(180deg, #0a0806 0%, #14100c 40%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a10 0%, transparent 80%);
}
.scn-sleeping-across-the-door .door {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  border: 4px solid #1a140e;
  background: linear-gradient(180deg, #1a140e 0%, #0e0a06 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-sleeping-across-the-door .figure-sleep {
  position: absolute; bottom: 5%; left: 35%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%);
  border-radius: 60% 20% 20% 60% / 40% 20% 20% 40%;
  transform-origin: bottom center;
  animation: sad-figure 6s ease-in-out infinite alternate;
}
.scn-sleeping-across-the-door .blunderbuss {
  position: absolute; bottom: 15%; left: 60%; width: 15%; height: 5%;
  background: linear-gradient(90deg, #2a2018 0%, #1a1410 50%, #2a2018 100%);
  border-radius: 40% 10% 10% 40%;
  transform: rotate(10deg);
  animation: sad-gun 3s ease-in-out infinite alternate;
}
.scn-sleeping-across-the-door .rug {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 50%, #1a1008 100%);
  border-radius: 30% 30% 0 0;
  filter: blur(1px);
}
.scn-sleeping-across-the-door .light-crack {
  position: absolute; bottom: 40%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, rgba(200,180,120,0.05) 0%, transparent 100%);
  border-left: 2px solid rgba(200,180,120,0.1);
  animation: sad-light 8s ease-in-out infinite alternate;
}
.scn-sleeping-across-the-door .breath {
  position: absolute; bottom: 18%; left: 40%; width: 10%; height: 18%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,180,150,0.03) 0%, transparent 70%);
  animation: sad-breath 4s ease-in-out infinite;
}

@keyframes sad-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes sad-gun { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(12deg) translateX(2px) } 100% { transform: rotate(8deg) translateX(-2px) } }
@keyframes sad-light { 0% { opacity: 0.1 } 50% { opacity: 0.25 } 100% { opacity: 0.05 } }
@keyframes sad-breath { 0% { transform: scaleY(1) translateY(0); opacity: 0.2 } 50% { transform: scaleY(1.3) translateY(-5px); opacity: 0.4 } 100% { transform: scaleY(0.8) translateY(2px); opacity: 0.1 } }

/* Scene: guide-betrayal-scheme – moonlit, tense */
.scn-guide-betrayal-scheme {
  background:
    linear-gradient(180deg, #0c0a18 0%, #1a1830 50%, #0e0c20 100%),
    radial-gradient(ellipse at 20% 20%, #3a3860 0%, transparent 70%);
}
.scn-guide-betrayal-scheme .moon {
  position: absolute; top: 8%; right: 20%; width: 12%; height: 12%;
  background: radial-gradient(circle at 35% 35%, #e8e0c0 0%, #c0b8a0 60%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,190,160,0.4);
  animation: gbs-moon 30s linear infinite alternate;
}
.scn-guide-betrayal-scheme .sky-clouds {
  position: absolute; top: 5%; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, rgba(200,195,180,0.08) 0%, transparent 100%);
  filter: blur(8px);
  animation: gbs-clouds 45s linear infinite;
}
.scn-guide-betrayal-scheme .figure-horse {
  position: absolute; bottom: 20%; left: 30%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #1a1830 0%, #0e0c20 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom left;
  animation: gbs-horse 6s ease-in-out infinite alternate;
}
.scn-guide-betrayal-scheme .tree {
  position: absolute; bottom: 5%; left: 5%; width: 15%; height: 70%;
  background: linear-gradient(180deg, #1a1420 0%, #0e0a10 100%);
  border-radius: 20% 20% 10% 10% / 80% 80% 10% 10%;
  transform-origin: bottom center;
  animation: gbs-tree 10s ease-in-out infinite alternate;
}
.scn-guide-betrayal-scheme .ground {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%;
  background: linear-gradient(180deg, #0a0a14 0%, #141018 100%);
  border-radius: 60% 40% 0 0;
}
.scn-guide-betrayal-scheme .shadow-figure {
  position: absolute; bottom: 15%; left: 25%; width: 25%; height: 50%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: gbs-shadow 8s ease-in-out infinite alternate;
}

@keyframes gbs-moon { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(5px) translateY(-3px) } 100% { transform: translateX(-3px) translateY(2px) } }
@keyframes gbs-clouds { 0% { transform: translateX(0) } 50% { transform: translateX(30px) } 100% { transform: translateX(-20px) } }
@keyframes gbs-horse { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(6px) rotate(-2deg) } 100% { transform: translateX(-4px) rotate(2deg) } }
@keyframes gbs-tree { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(-1deg) scaleY(0.98) } }
@keyframes gbs-shadow { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.2 } }

.scn-antonio-reveals-brigand { background: linear-gradient(180deg, #0d1b2a 0%, #1b2838 50%, #2c3e50 100%), radial-gradient(ellipse at 70% 20%, #2c3e50 0%, transparent 60%); }
.scn-antonio-reveals-brigand .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a2a3a 0%, #0d1b2a 80%); animation: ar1-sky 12s ease-in-out infinite alternate; }
.scn-antonio-reveals-brigand .wall { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 70% 70% / 0 0 20% 20%; box-shadow: inset 0 20px 30px rgba(0,0,0,.6); animation: ar1-wall 20s ease-in-out infinite alternate; }
.scn-antonio-reveals-brigand .window { position:absolute; top:12%; left:15%; width:40px; height:60px; background: #0d2b4a; border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: 0 0 30px 8px rgba(100,150,200,.3), inset 0 0 10px rgba(200,220,255,.2); animation: ar1-moon 8s ease-in-out infinite; }
.scn-antonio-reveals-brigand .bandit { position:absolute; bottom:5%; left:20%; width:50px; height:70px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 10px 20px rgba(0,0,0,.7); animation: ar1-sleep 6s ease-in-out infinite; }
.scn-antonio-reveals-brigand .horse { position:absolute; bottom:10%; right:20%; width:80px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: ar1-horse 10s ease-in-out infinite; }
.scn-antonio-reveals-brigand .rags { position:absolute; bottom:10%; right:20%; width:20px; height:15px; background: #4a3a2a; border-radius: 30% 30% 20% 20%; transform: translate(15px, 25px); box-shadow: 0 0 5px rgba(0,0,0,.4); animation: ar1-rags 4s ease-in-out infinite alternate; }
.scn-antonio-reveals-brigand .antonio { position:absolute; bottom:5%; left:50%; width:30px; height:80px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; transform-origin: bottom center; box-shadow: 0 10px 20px rgba(0,0,0,.6); animation: ar1-antonio 4s ease-in-out infinite; }
@keyframes ar1-sky { 0%,100% { opacity:.7; } 50% { opacity:1; } }
@keyframes ar1-wall { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(.95); } }
@keyframes ar1-moon { 0%,100% { box-shadow: 0 0 30px 8px rgba(100,150,200,.3), inset 0 0 10px rgba(200,220,255,.2); } 50% { box-shadow: 0 0 50px 12px rgba(100,150,200,.5), inset 0 0 15px rgba(200,220,255,.4); } }
@keyframes ar1-sleep { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes ar1-horse { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes ar1-rags { 0%,100% { opacity:.7; transform: translate(15px,25px) scale(1); } 50% { opacity:1; transform: translate(15px,28px) scale(1.1); } }
@keyframes ar1-antonio { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } }

.scn-narrator-refuses-betrayal { background: linear-gradient(180deg, #0b1a2a 0%, #1a2c3a 50%, #2a3a4a 100%), radial-gradient(ellipse at 50% 0%, #2a3a4a 0%, transparent 70%); }
.scn-narrator-refuses-betrayal .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a2c3a 0%, #0b1a2a 100%); animation: nr2-bg 15s ease-in-out infinite alternate; }
.scn-narrator-refuses-betrayal .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: nr2-ground 20s ease-in-out infinite alternate; }
.scn-narrator-refuses-betrayal .narrator { position:absolute; bottom:25%; left:20%; width:30px; height:80px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; transform-origin: bottom center; box-shadow: 0 10px 20px rgba(0,0,0,.5); animation: nr2-figure 5s ease-in-out infinite; }
.scn-narrator-refuses-betrayal .antonio { position:absolute; bottom:25%; right:25%; width:30px; height:85px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; transform-origin: bottom center; box-shadow: 0 10px 20px rgba(0,0,0,.5); animation: nr2-figure 5s ease-in-out infinite reverse; }
.scn-narrator-refuses-betrayal .moon { position:absolute; top:10%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #d0e0f0 0%, #8090a0 100%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(150,200,255,.3); animation: nr2-moon 10s ease-in-out infinite alternate; }
.scn-narrator-refuses-betrayal .lantern { position:absolute; bottom:35%; left:45%; width:8px; height:12px; background: #ffd080; border-radius: 30% 30% 50% 50%; box-shadow: 0 0 20px 6px rgba(255,200,100,.5); animation: nr2-lantern 3s ease-in-out infinite alternate; }
.scn-narrator-refuses-betrayal .grass { position:absolute; bottom:35%; left:10%; width:100%; height:20px; background: repeating-linear-gradient(90deg, #1a3a1a, #1a3a1a 10px, #0a2a0a 10px, #0a2a0a 20px); filter: blur(1px); animation: nr2-grass 8s ease-in-out infinite; }
@keyframes nr2-bg { 0%,100% { opacity:.7; } 50% { opacity:1; } }
@keyframes nr2-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes nr2-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes nr2-moon { 0%,100% { box-shadow: 0 0 40px 10px rgba(150,200,255,.3); } 50% { box-shadow: 0 0 60px 15px rgba(150,200,255,.5); } }
@keyframes nr2-lantern { 0%,100% { opacity:.7; transform: translateY(0) scale(1); } 50% { opacity:1; transform: translateY(-3px) scale(1.1); } }
@keyframes nr2-grass { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-10px); } }

.scn-warning-don-jose { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #1a1515 100%), radial-gradient(ellipse at 50% 100%, #1a1515 0%, transparent 60%); }
.scn-warning-don-jose .dark { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #15151a 100%); animation: wd3-dark 12s ease-in-out infinite alternate; }
.scn-warning-don-jose .antonio-face { position:absolute; bottom:15%; left:25%; width:35px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 10px 20px rgba(0,0,0,.7); animation: wd3-face 4s ease-in-out infinite; transform-origin: bottom left; }
.scn-warning-don-jose .narrator-face { position:absolute; bottom:15%; right:30%; width:35px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 10px 20px rgba(0,0,0,.7); animation: wd3-face 4s ease-in-out infinite reverse; transform-origin: bottom right; }
.scn-warning-don-jose .candle { position:absolute; bottom:35%; left:50%; width:6px; height:14px; background: linear-gradient(180deg, #ffd080 0%, #b08040 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 6px rgba(255,200,100,.6); animation: wd3-candle 2s ease-in-out infinite alternate; }
.scn-warning-don-jose .breath { position:absolute; bottom:30%; left:20%; width:20px; height:15px; background: rgba(200,220,255,.1); border-radius: 50%; filter: blur(2px); animation: wd3-breath 4s ease-in-out infinite; }
@keyframes wd3-dark { 0%,100% { opacity:.7; } 50% { opacity:1; } }
@keyframes wd3-face { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes wd3-candle { 0%,100% { transform: scaleY(1) translateX(0); opacity:.8; } 50% { transform: scaleY(1.2) translateX(-1px); opacity:1; } }
@keyframes wd3-breath { 0%,100% { transform: translateX(0) scale(1); opacity:.1; } 50% { transform: translateX(5px) scale(1.5); opacity:.3; } }

.scn-antonio-rides-for-lancers { background: linear-gradient(180deg, #0a0a1a 0%, #15152a 50%, #0a0a15 100%), radial-gradient(ellipse at 50% 0%, #15152a 0%, transparent 80%); }
.scn-antonio-rides-for-lancers .night { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #15152a 100%); animation: ar4-night 15s ease-in-out infinite alternate; }
.scn-antonio-rides-for-lancers .road { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 60% 60% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); animation: ar4-road 20s ease-in-out infinite alternate; }
.scn-antonio-rides-for-lancers .horse-rider { position:absolute; bottom:10%; left:10%; width:90px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; transform-origin: bottom left; box-shadow: 0 10px 30px rgba(0,0,0,.7); animation: ar4-rider 6s ease-in-out infinite; }
.scn-antonio-rides-for-lancers .dust-a { position:absolute; bottom:15%; left:20%; width:30px; height:20px; background: rgba(50,50,60,.3); border-radius: 50%; filter: blur(4px); animation: ar4-dust-a 4s ease-in-out infinite; }
.scn-antonio-rides-for-lancers .dust-b { position:absolute; bottom:20%; left:30%; width:25px; height:15px; background: rgba(50,50,60,.2); border-radius: 50%; filter: blur(4px); animation: ar4-dust-b 5s ease-in-out infinite; animation-delay: 1.5s; }
.scn-antonio-rides-for-lancers .tree { position:absolute; bottom:35%; right:10%; width:30px; height:50px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: 0 10px 20px rgba(0,0,0,.5); animation: ar4-tree 12s ease-in-out infinite; }
.scn-antonio-rides-for-lancers .moon { position:absolute; top:10%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #c0d0e0 0%, #8090a0 100%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(150,200,255,.3); animation: ar4-moon 10s ease-in-out infinite alternate; }
@keyframes ar4-night { 0%,100% { opacity:.7; } 50% { opacity:1; } }
@keyframes ar4-road { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ar4-rider { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(10px) translateY(-3px) rotate(-2deg); } }
@keyframes ar4-dust-a { 0%,100% { transform: translateX(0) scale(1); opacity:.2; } 50% { transform: translateX(20px) scale(1.5); opacity:.4; } }
@keyframes ar4-dust-b { 0%,100% { transform: translateX(0) scale(1); opacity:.15; } 50% { transform: translateX(25px) scale(1.3); opacity:.3; } }
@keyframes ar4-tree { 0%,100% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(.95) rotate(2deg); } }
@keyframes ar4-moon { 0%,100% { box-shadow: 0 0 30px 8px rgba(150,200,255,.3); } 50% { box-shadow: 0 0 50px 12px rgba(150,200,255,.5); } }

.scn-stabbing-in-cigar-room {
  background: 
    linear-gradient(180deg, #3c2a1e 0%, #1e140e 50%, #0f0a06 100%),
    radial-gradient(ellipse at 50% 30%, #5a3a24 0%, transparent 70%);
}
.scn-stabbing-in-cigar-room .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #4a3020 0%, #2a1a10 50%, #1a0e08 100%); }
.scn-stabbing-in-cigar-room .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-stabbing-in-cigar-room .chandelier { position:absolute; top:10%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: radial-gradient(circle at 50% 30%, #e8c070 0%, #b08030 50%, #604020 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 20px rgba(232,192,112,.5), 0 0 80px 40px rgba(232,192,112,.2); animation: s1-glow 2s ease-in-out infinite alternate; }
.scn-stabbing-in-cigar-room .table { position:absolute; bottom:25%; left:35%; width:120px; height:30px; background: linear-gradient(180deg, #5a3a24 0%, #3a2010 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: perspective(400px) rotateX(20deg); }
.scn-stabbing-in-cigar-room .fallen-figure { position:absolute; bottom:22%; left:40%; width:40px; height:80px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(10deg); transform-origin: bottom center; animation: s1-fallen 6s ease-in-out infinite; }
.scn-stabbing-in-cigar-room .knife { position:absolute; bottom:32%; left:52%; width:4px; height:16px; background: silver; border-radius: 20%; transform: rotate(45deg); transform-origin: bottom; box-shadow: 0 0 6px 2px rgba(192,192,192,.6); animation: s1-knife 3s ease-in-out infinite; }
.scn-stabbing-in-cigar-room .door { position:absolute; right:5%; bottom:30%; width:60px; height:90px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 5% 5% 0 0; border: 2px solid #1a0e08; box-shadow: inset -4px 0 10px rgba(0,0,0,.5); }
.scn-stabbing-in-cigar-room .porter { position:absolute; right:10%; bottom:30%; width:30px; height:80px; background: linear-gradient(180deg, #1a0e08 0%, #0a0502 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom; animation: s1-enter 8s ease-in-out infinite; }
@keyframes s1-glow   { 0% { box-shadow: 0 0 30px 15px rgba(232,192,112,.4), 0 0 60px 30px rgba(232,192,112,.15); } 50% { box-shadow: 0 0 50px 25px rgba(232,192,112,.6), 0 0 100px 50px rgba(232,192,112,.3); } 100% { box-shadow: 0 0 40px 20px rgba(232,192,112,.5), 0 0 80px 40px rgba(232,192,112,.2); } }
@keyframes s1-fallen { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes s1-knife  { 0% { transform: rotate(40deg) scale(1); } 50% { transform: rotate(50deg) scale(1.1); } 100% { transform: rotate(40deg) scale(1); } }
@keyframes s1-enter  { 0% { transform: translateX(-20px) scale(0.9); opacity:0; } 30% { transform: translateX(0) scale(1); opacity:1; } 70% { transform: translateX(0) scale(1); opacity:1; } 100% { transform: translateX(-20px) scale(0.9); opacity:0; } }

.scn-carmen-holds-knife {
  background: 
    linear-gradient(180deg, #d4c4a0 0%, #b8a488 30%, #8a7054 60%, #4a3420 100%),
    radial-gradient(ellipse at 50% 40%, #f0e0c0 0%, transparent 60%);
}
.scn-carmen-holds-knife .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #c8b898 0%, #a08870 50%, #705840 100%); }
.scn-carmen-holds-knife .bg-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #604830 0%, #3a2818 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.4); }
.scn-carmen-holds-knife .wounded-figure { position:absolute; bottom:28%; left:35%; width:50px; height:90px; background: linear-gradient(180deg, #d4c4a0 0%, #b8a488 50%, #a08870 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(15deg); transform-origin: bottom center; animation: s2-wounded 5s ease-in-out infinite; }
.scn-carmen-holds-knife .blood-pool { position:absolute; bottom:20%; left:33%; width:70px; height:20px; background: radial-gradient(ellipse, #8a2020 0%, #5a1010 60%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: s2-blood 7s ease-in-out infinite; }
.scn-carmen-holds-knife .carmen { position:absolute; bottom:25%; left:55%; width:45px; height:85px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(-5deg); transform-origin: bottom; animation: s2-carmen 4s ease-in-out infinite; }
.scn-carmen-holds-knife .arm-left { position:absolute; bottom:50%; left:48%; width:20px; height:8px; background: #2a1a10; border-radius: 40%; transform: rotate(-20deg); transform-origin: left; animation: s2-arm 3s ease-in-out infinite; }
.scn-carmen-holds-knife .arm-right { position:absolute; bottom:50%; left:58%; width:20px; height:8px; background: #2a1a10; border-radius: 40%; transform: rotate(30deg); transform-origin: right; animation: s2-arm2 3s ease-in-out infinite; }
.scn-carmen-holds-knife .knife { position:absolute; bottom:52%; left:50%; width:3px; height:18px; background: silver; border-radius: 20%; transform: rotate(-45deg); transform-origin: top; box-shadow: 0 0 4px 2px rgba(192,192,192,.5); animation: s2-knife 2s ease-in-out infinite; }
@keyframes s2-wounded { 0% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-3px); } 100% { transform: rotate(12deg) translateY(0); } }
@keyframes s2-blood   { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(1); } }
@keyframes s2-carmen  { 0% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(5px); } 100% { transform: rotate(-8deg) translateX(0); } }
@keyframes s2-arm     { 0% { transform: rotate(-25deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-25deg); } }
@keyframes s2-arm2    { 0% { transform: rotate(25deg); } 50% { transform: rotate(35deg); } 100% { transform: rotate(25deg); } }
@keyframes s2-knife   { 0% { transform: rotate(-50deg) scale(1); } 50% { transform: rotate(-40deg) scale(1.1); } 100% { transform: rotate(-50deg) scale(1); } }

.scn-quarrel-over-donkey-taunt {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #c8b898 40%, #a08870 70%, #705840 100%),
    radial-gradient(ellipse at 50% 20%, #f0e8d8 0%, transparent 50%);
}
.scn-quarrel-over-donkey-taunt .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #d8c8b0 0%, #b8a488 100%); }
.scn-quarrel-over-donkey-taunt .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #604830 0%, #3a2818 100%); }
.scn-quarrel-over-donkey-taunt .carmen { position:absolute; bottom:22%; left:25%; width:40px; height:80px; background: linear-gradient(180deg, #4a3420 0%, #2a1a10 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom; animation: s3-carmen 4s ease-in-out infinite; }
.scn-quarrel-over-donkey-taunt .other-girl { position:absolute; bottom:22%; left:55%; width:40px; height:80px; background: linear-gradient(180deg, #b8a488 0%, #a08870 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom; animation: s3-other 4s ease-in-out infinite; }
.scn-quarrel-over-donkey-taunt .broom { position:absolute; bottom:30%; left:62%; width:3px; height:60px; background: linear-gradient(180deg, #6a4a30 0%, #3a2818 100%); transform: rotate(15deg); transform-origin: bottom; border-radius: 20%; box-shadow: 0 0 2px 1px rgba(0,0,0,.3); }
.scn-quarrel-over-donkey-taunt .shadow { position:absolute; bottom:20%; left:20%; right:20%; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 80%); filter: blur(6px); animation: s3-shadow 4s ease-in-out infinite alternate; }
@keyframes s3-carmen { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes s3-other  { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-6px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes s3-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.2); opacity:0.7; } 100% { transform: scaleX(1); opacity:0.5; } }

.scn-carmen-cuts-face {
  background: 
    linear-gradient(180deg, #2a1a10 0%, #1a0e08 50%, #0a0502 100%),
    radial-gradient(ellipse at 50% 30%, #4a3020 0%, transparent 80%);
}
.scn-carmen-cuts-face .bg { position:absolute; inset:0; background: linear-gradient(135deg, #3c2a1e 0%, #1a0e08 100%); }
.scn-carmen-cuts-face .victim-profile { position:absolute; bottom:25%; left:50%; width:50px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #c8b898 0%, #a08870 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; outline: 2px solid #2a1a10; animation: s4-victim 6s ease-in-out infinite; }
.scn-carmen-cuts-face .carmen-hand { position:absolute; bottom:40%; left:55%; width:20px; height:30px; background: linear-gradient(180deg, #4a3420 0%, #2a1a10 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(20deg); transform-origin: bottom; animation: s4-hand 3s ease-in-out infinite; }
.scn-carmen-cuts-face .knife { position:absolute; bottom:50%; left:58%; width:3px; height:16px; background: silver; border-radius: 20%; transform: rotate(30deg); transform-origin: bottom; box-shadow: 0 0 4px 2px rgba(192,192,192,.6); animation: s4-knife 2s ease-in-out infinite alternate; }
.scn-carmen-cuts-face .cut-mark-1 { position:absolute; bottom:40%; left:48%; width:14px; height:2px; background: #a02020; transform: rotate(45deg); border-radius: 50%; filter: blur(1px); animation: s4-cut1 4s ease-in-out infinite; }
.scn-carmen-cuts-face .cut-mark-2 { position:absolute; bottom:42%; left:50%; width:14px; height:2px; background: #a02020; transform: rotate(-45deg); border-radius: 50%; filter: blur(1px); animation: s4-cut2 4s ease-in-out infinite reverse; }
@keyframes s4-victim { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes s4-hand   { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes s4-knife  { 0% { transform: rotate(25deg) scale(1); } 50% { transform: rotate(35deg) scale(1.1); } 100% { transform: rotate(25deg) scale(1); } }
@keyframes s4-cut1   { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes s4-cut2   { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-carmen-claims-navarre {
  background: linear-gradient(180deg, #7a4a2e 0%, #3a2a1a 40%, #1a1a0a 70%, #0a0a05 100%),
              radial-gradient(ellipse at 50% 0%, #c87a3a 0%, transparent 50%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-carmen-claims-navarre .bg-dusk {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d9a05a 0%, #b07040 30%, #5a3a20 60%, #1a1008 100%); animation: ccn-fade 10s ease-in-out infinite alternate;
}
.scn-carmen-claims-navarre .wall-left {
  position: absolute; left: 0; top: 0; bottom: 0; width: 30%; background: linear-gradient(90deg, #3a2010 0%, #2a1808 100%); box-shadow: 4px 0 12px rgba(0,0,0,0.7); animation: ccn-wall 15s ease-in-out infinite alternate;
}
.scn-carmen-claims-navarre .wall-right {
  position: absolute; right: 0; top: 0; bottom: 0; width: 30%; background: linear-gradient(270deg, #3a2010 0%, #2a1808 100%); box-shadow: -4px 0 12px rgba(0,0,0,0.7); animation: ccn-wall 15s ease-in-out infinite alternate-reverse;
}
.scn-carmen-claims-navarre .doorway {
  position: absolute; bottom: 10%; left: 50%; width: 120px; height: 200px; transform: translateX(-50%); background: #1a0a05; border-radius: 40px 40px 0 0; box-shadow: inset 0 0 30px rgba(200,120,50,0.3), 0 0 20px rgba(200,120,50,0.2); animation: ccn-door 8s ease-in-out infinite;
}
.scn-carmen-claims-navarre .figure-a {
  position: absolute; bottom: 18%; left: 38%; width: 24px; height: 50px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ccn-fig-a 6s ease-in-out infinite;
}
.scn-carmen-claims-navarre .figure-b {
  position: absolute; bottom: 18%; left: 54%; width: 28px; height: 55px; background: linear-gradient(180deg, #3a2018 0%, #1a0a05 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ccn-fig-b 6s ease-in-out infinite 3s;
}
.scn-carmen-claims-navarre .lantern {
  position: absolute; bottom: 40%; left: 45%; width: 10px; height: 14px; background: radial-gradient(circle, #ffc860 0%, #d08030 70%); border-radius: 30%; box-shadow: 0 0 30px 10px #d08030, 0 0 60px 20px rgba(208,128,48,0.3); animation: ccn-lantern 4s ease-in-out infinite alternate;
}
.scn-carmen-claims-navarre .dust-particles {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 60%, rgba(200,170,130,0.3) 0%, transparent 50%), radial-gradient(ellipse at 70% 40%, rgba(200,170,130,0.2) 0%, transparent 40%); filter: blur(2px); animation: ccn-dust 20s linear infinite;
}
@keyframes ccn-fade { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ccn-wall { 0% { opacity: 1; } 50% { opacity: 0.85; } 100% { opacity: 1; } }
@keyframes ccn-door { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes ccn-fig-a { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ccn-fig-b { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(-8px) rotate(1deg); } 75% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ccn-lantern { 0% { box-shadow: 0 0 20px 6px #d08030; opacity: 0.9; } 50% { box-shadow: 0 0 40px 14px #ffb050; opacity: 1; } 100% { box-shadow: 0 0 25px 8px #d08030; opacity: 0.9; } }
@keyframes ccn-dust { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }

.scn-carmen-tells-sad-story {
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 30%, #1a1a0a 60%, #0a0a05 100%),
              radial-gradient(ellipse at 50% 0%, #b08040 0%, transparent 60%);
}
.scn-carmen-tells-sad-story .bg-evening {
  position: absolute; inset: 0; background: linear-gradient(180deg, #b8884a 0%, #7a5a30 30%, #3a2a18 60%, #1a1008 100%); animation: cts-fade 12s ease-in-out infinite alternate;
}
.scn-carmen-tells-sad-story .window-frame {
  position: absolute; left: 10%; top: 20%; width: 120px; height: 160px; background: #2a1a10; border: 6px solid #4a3020; border-radius: 8px; box-shadow: 0 0 40px rgba(0,0,0,0.5); animation: cts-window 15s ease-in-out infinite;
}
.scn-carmen-tells-sad-story .distant-hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: cts-hills 20s ease-in-out infinite alternate;
}
.scn-carmen-tells-sad-story .factory-smoke {
  position: absolute; bottom: 45%; right: 20%; width: 40px; height: 60px; background: radial-gradient(ellipse at 50% 100%, rgba(100,80,60,0.4) 0%, transparent 70%); filter: blur(6px); animation: cts-smoke 30s linear infinite;
}
.scn-carmen-tells-sad-story .carmen-sitting {
  position: absolute; bottom: 12%; left: 30%; width: 30px; height: 45px; background: linear-gradient(180deg, #5a3a28 0%, #3a2010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cts-sit 8s ease-in-out infinite;
}
.scn-carmen-tells-sad-story .shawl {
  position: absolute; bottom: 16%; left: 28%; width: 40px; height: 20px; background: linear-gradient(180deg, #8a5a3a 0%, #6a3a1a 100%); border-radius: 60% 40% 50% 50% / 70% 50% 50% 30%; transform-origin: left center; animation: cts-shawl 6s ease-in-out infinite;
}
.scn-carmen-tells-sad-story .teardrop {
  position: absolute; bottom: 38%; left: 35%; width: 4px; height: 6px; background: radial-gradient(circle, rgba(200,180,160,0.8) 0%, transparent 80%); border-radius: 50%; animation: cts-tear 4s ease-in-out infinite;
}
@keyframes cts-fade { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cts-window { 0% { filter: brightness(0.7); } 50% { filter: brightness(1); } 100% { filter: brightness(0.8); } }
@keyframes cts-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes cts-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.1; } 100% { transform: translateY(0) scale(1); opacity: 0.3; } }
@keyframes cts-sit { 0% { transform: translateY(0) rotate(-2deg); } 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 cts-shawl { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes cts-tear { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 50% { transform: translateY(8px) scale(0.6); opacity: 0; } 100% { transform: translateY(0) scale(1); opacity: 0.5; } }

.scn-carmen-escapes-in-lane {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 30%, #0a0502 60%, #050200 100%),
              radial-gradient(ellipse at 50% 0%, #4a2a10 0%, transparent 70%);
}
.scn-carmen-escapes-in-lane .lane-shadow {
  position: absolute; inset: 0; background: linear-gradient(160deg, #1a1008 0%, #0a0502 50%, #050200 100%); animation: cel-pulse 4s ease-in-out infinite alternate;
}
.scn-carmen-escapes-in-lane .wall-left-tilt {
  position: absolute; left: 0; top: 0; bottom: 0; width: 35%; background: linear-gradient(90deg, #2a1a0a 0%, #1a0a05 100%); clip-path: polygon(0 0, 100% 10%, 100% 100%, 0 100%); animation: cel-tilt 8s ease-in-out infinite alternate;
}
.scn-carmen-escapes-in-lane .wall-right-tilt {
  position: absolute; right: 0; top: 0; bottom: 0; width: 35%; background: linear-gradient(270deg, #2a1a0a 0%, #1a0a05 100%); clip-path: polygon(0 10%, 100% 0, 100% 100%, 0 100%); animation: cel-tilt 8s ease-in-out infinite alternate-reverse;
}
.scn-carmen-escapes-in-lane .figure-running {
  position: absolute; bottom: 12%; left: 20%; width: 20px; height: 40px; background: linear-gradient(180deg, #3a2010 0%, #1a0a05 100%); border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%; transform-origin: bottom center; animation: cel-run 2s steps(2) infinite;
}
.scn-carmen-escapes-in-lane .pursuer-shadow {
  position: absolute; bottom: 12%; right: 25%; width: 30px; height: 55px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%); border-radius: 30% 40% 50% 40% / 40% 50% 40% 30%; transform-origin: bottom center; animation: cel-pursue 3s ease-in-out infinite;
}
.scn-carmen-escapes-in-lane .fire-escape {
  position: absolute; bottom: 0; right: 10%; width: 40px; height: 100%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,0.8); animation: cel-fire 12s ease-in-out infinite;
}
.scn-carmen-escapes-in-lane .garbage-bin {
  position: absolute; bottom: 5%; left: 45%; width: 30px; height: 35px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 10% 10% 20% 20%; transform: rotate(5deg); animation: cel-bin 6s ease-in-out infinite;
}
@keyframes cel-pulse { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cel-tilt { 0% { transform: skewX(0deg); } 50% { transform: skewX(2deg); } 100% { transform: skewX(0deg); } }
@keyframes cel-run { 0% { transform: translateX(0) rotate(-10deg) scaleY(1); } 50% { transform: translateX(10px) rotate(5deg) scaleY(0.9); } 100% { transform: translateX(20px) rotate(-5deg) scaleY(1); } }
@keyframes cel-pursue { 0% { transform: translateX(0) rotate(5deg); } 25% { transform: translateX(-5px) rotate(-5deg); } 50% { transform: translateX(-10px) rotate(5deg); } 75% { transform: translateX(-5px) rotate(-5deg); } 100% { transform: translateX(0) rotate(5deg); } }
@keyframes cel-fire { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes cel-bin { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }

.scn-carmen-flees-down-lane {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 40%, #0a0502 100%),
              radial-gradient(ellipse at 50% 0%, #6a4020 0%, transparent 60%);
}
.scn-carmen-flees-down-lane .bg-alley {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1008 0%, #0a0502 50%, #050200 100%); animation: cfd-dark 8s ease-in-out infinite alternate;
}
.scn-carmen-flees-down-lane .building-left {
  position: absolute; left: 0; top: 0; bottom: 0; width: 40%; background: linear-gradient(90deg, #2a1a0a 0%, #1a0a05 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%); animation: cfd-build 14s ease-in-out infinite alternate;
}
.scn-carmen-flees-down-lane .building-right {
  position: absolute; right: 0; top: 0; bottom: 0; width: 40%; background: linear-gradient(270deg, #2a1a0a 0%, #1a0a05 100%); clip-path: polygon(20% 0, 100% 0, 100% 100%, 0 100%); animation: cfd-build 14s ease-in-out infinite alternate-reverse;
}
.scn-carmen-flees-down-lane .fig-carmen {
  position: absolute; bottom: 12%; left: 30%; width: 20px; height: 45px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1508 100%); border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%; transform-origin: bottom center; animation: cfd-run 2s steps(2) infinite;
}
.scn-carmen-flees-down-lane .fig-soldier {
  position: absolute; bottom: 12%; left: 50%; width: 28px; height: 55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 30% 40% 50% 40% / 40% 50% 40% 30%; transform-origin: bottom center; animation: cfd-chase 3s ease-in-out infinite 1s;
}
.scn-carmen-flees-down-lane .broken-crate {
  position: absolute; bottom: 5%; left: 20%; width: 24px; height: 20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 10%; transform: rotate(15deg); animation: cfd-crate 10s ease-in-out infinite;
}
.scn-carmen-flees-down-lane .flying-kerchief {
  position: absolute; top: 30%; left: 60%; width: 14px; height: 10px; background: linear-gradient(180deg, #a06848 0%, #804830 100%); border-radius: 30% 70% 40% 60% / 50% 60% 40% 50%; animation: cfd-kerchief 4s ease-in-out infinite;
}
.scn-carmen-flees-down-lane .puddle {
  position: absolute; bottom: 8%; left: 40%; width: 40px; height: 12px; background: radial-gradient(ellipse at 50% 50%, rgba(80,60,40,0.5) 0%, transparent 70%); border-radius: 50%; animation: cfd-puddle 6s ease-in-out infinite alternate;
}
@keyframes cfd-dark { 0% { opacity: 0.9; } 50% { opacity: 0.7; } 100% { opacity: 0.8; } }
@keyframes cfd-build { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes cfd-run { 0% { transform: translateX(0) rotate(-8deg) scaleY(1); } 50% { transform: translateX(15px) rotate(7deg) scaleY(0.9); } 100% { transform: translateX(30px) rotate(-5deg) scaleY(1); } }
@keyframes cfd-chase { 0% { transform: translateX(0) rotate(5deg); } 25% { transform: translateX(-6px) rotate(-5deg); } 50% { transform: translateX(-12px) rotate(5deg); } 75% { transform: translateX(-6px) rotate(-5deg); } 100% { transform: translateX(0) rotate(5deg); } }
@keyframes cfd-crate { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes cfd-kerchief { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(10px, -15px) rotate(30deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes cfd-puddle { 0% { transform: scaleX(1); opacity: 0.4; } 100% { transform: scaleX(1.2); opacity: 0.6; } }

/* carmen-dances-romalis - funny dim interior, dancing plate-smashing */
.scn-carmen-dances-romalis {
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%), radial-gradient(ellipse at 50% 60%, #4a3a28 0%, transparent 70%);
}
.scn-carmen-dances-romalis .wall {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(135deg, #4a3a28 0%, #3a2a1a 50%, #2a1a0e 100%);
  animation: car1-wall 12s ease-in-out infinite alternate;
}
.scn-carmen-dances-romalis .floor {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-carmen-dances-romalis .dancer {
  position:absolute; bottom:38%; left:48%; width:40px; height:90px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #5e1a1d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: car1-dance 1.2s ease-in-out infinite alternate;
}
.scn-carmen-dances-romalis .dancer-leg {
  position:absolute; bottom:30%; left:50%; width:8px; height:30px;
  background: #2a1a0e;
  border-radius: 40%;
  transform-origin: top center;
  animation: car1-kick 0.6s ease-in-out infinite alternate;
}
.scn-carmen-dances-romalis .cast-a {
  position:absolute; bottom:45%; left:32%; width:14px; height:14px;
  background: radial-gradient(circle at 40% 40%, #b8a88a, #6a5a3a);
  border-radius: 50% 40% 50% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: car1-cast-fly 1s linear infinite;
}
.scn-carmen-dances-romalis .cast-b {
  position:absolute; bottom:48%; left:58%; width:12px; height:12px;
  background: radial-gradient(circle at 60% 30%, #c8b89a, #5a4a2a);
  border-radius: 40% 50% 40% 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: car1-cast-fly 1.3s linear infinite 0.3s;
}
.scn-carmen-dances-romalis .sparkle-a {
  position:absolute; bottom:50%; left:38%; width:4px; height:4px;
  background: #ffd080;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ffc060;
  animation: car1-sparkle 0.8s ease-in-out infinite alternate;
}
.scn-carmen-dances-romalis .sparkle-b {
  position:absolute; bottom:55%; left:55%; width:3px; height:3px;
  background: #ffc060;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #ffb040;
  animation: car1-sparkle 0.6s ease-in-out infinite alternate-reverse;
}
@keyframes car1-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes car1-dance { 0% { transform: rotate(-8deg) scaleY(1) } 25% { transform: rotate(6deg) scaleY(1.02) } 50% { transform: rotate(-4deg) scaleY(0.98) } 75% { transform: rotate(8deg) scaleY(1.01) } 100% { transform: rotate(-6deg) scaleY(1) } }
@keyframes car1-kick { 0% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-4px) } 100% { transform: rotate(-25deg) translateY(0) } }
@keyframes car1-cast-fly { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(10px,-12px) rotate(90deg) } 50% { transform: translate(-5px,-20px) rotate(180deg) } 75% { transform: translate(15px,-8px) rotate(270deg) } 100% { transform: translate(0,0) rotate(360deg) } }
@keyframes car1-sparkle { 0% { opacity:.2; transform: scale(0.5) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:.3; transform: scale(0.8) } }

/* carmen-mocks-roll-call - funny dim interior, mocking gesture */
.scn-carmen-mocks-roll-call {
  background: linear-gradient(180deg, #1e1a12 0%, #2a2218 50%, #1a140e 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-carmen-mocks-roll-call .barrack-wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-bottom: 2px solid #4a3a28;
}
.scn-carmen-mocks-roll-call .barrack-floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a120a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.4);
}
.scn-carmen-mocks-roll-call .birdcage {
  position:absolute; bottom:35%; left:20%; width:36px; height:44px;
  background: repeating-linear-gradient(0deg, #6a5a3a 0px, #6a5a3a 2px, transparent 2px, transparent 6px);
  border: 2px solid #5a4a2a;
  border-radius: 10% 10% 30% 30%;
  animation: car2-cage 8s ease-in-out infinite;
}
.scn-carmen-mocks-roll-call .canary {
  position:absolute; bottom:48%; left:22%; width:10px; height:10px;
  background: radial-gradient(circle, #f0c040 0%, #c89820 100%);
  border-radius: 50%;
  animation: car2-canary 2s ease-in-out infinite alternate;
}
.scn-carmen-mocks-roll-call .mocker {
  position:absolute; bottom:30%; left:55%; width:42px; height:80px;
  background: linear-gradient(180deg, #b87878 0%, #8a4a4a 50%, #5e1a1d 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: car2-mock 1s ease-in-out infinite alternate;
}
.scn-carmen-mocks-roll-call .mocker-arm {
  position:absolute; bottom:38%; left:70%; width:8px; height:34px;
  background: linear-gradient(180deg, #b87878 0%, #5e1a1d 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: 4px 34px;
  animation: car2-point 1.5s ease-in-out infinite;
}
.scn-carmen-mocks-roll-call .shadow {
  position:absolute; bottom:10%; left:30%; width:100px; height:20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: car2-shadow 6s ease-in-out infinite;
}
@keyframes car2-cage { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes car2-canary { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(4px,-4px) rotate(15deg) } 100% { transform: translate(-2px,2px) rotate(-10deg) } }
@keyframes car2-mock { 0% { transform: rotate(-3deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-5deg) } 75% { transform: rotate(4deg) } 100% { transform: rotate(-2deg) } }
@keyframes car2-point { 0% { transform: rotate(-20deg) } 25% { transform: rotate(30deg) } 50% { transform: rotate(-10deg) } 75% { transform: rotate(40deg) } 100% { transform: rotate(0deg) } }
@keyframes car2-shadow { 0%,100% { opacity:.4 } 50% { opacity:.7 } }

/* carmen-says-goodbye - warm dim interior, parting with coin */
.scn-carmen-says-goodbye {
  background: linear-gradient(180deg, #4a2a18 0%, #3a1a0e 50%, #2a1208 100%), radial-gradient(ellipse at 50% 80%, #6a3a1a 0%, transparent 70%);
}
.scn-carmen-says-goodbye .wall-warm {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #5a3a1e 0%, #3a1a0e 100%);
  border-bottom: 3px solid #6a4a2a;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: car3-wall 10s ease-in-out infinite alternate;
}
.scn-carmen-says-goodbye .doorway {
  position:absolute; bottom:25%; left:70%; width:40px; height:80px;
  background: #2a1208;
  border: 2px solid #5a3a1a;
  border-radius: 4% 4% 30% 30% / 8% 8% 20% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
}
.scn-carmen-says-goodbye .figure-left {
  position:absolute; bottom:20%; left:35%; width:38px; height:85px;
  background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 50%, #3a120a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: car3-turn 8s ease-in-out infinite;
}
.scn-carmen-says-goodbye .figure-right {
  position:absolute; bottom:22%; left:55%; width:35px; height:78px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0e 50%, #1a0a04 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%;
  transform-origin: bottom center;
  animation: car3-turn 8s ease-in-out infinite reverse;
}
.scn-carmen-says-goodbye .coin {
  position:absolute; bottom:45%; left:43%; width:12px; height:12px;
  background: radial-gradient(circle at 40% 40%, #ffd080 0%, #b08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(255,208,128,.6);
  animation: car3-coin 2s ease-in-out infinite alternate;
}
.scn-carmen-says-goodbye .lantern-warm {
  position:absolute; bottom:50%; left:60%; width:10px; height:16px;
  background: #d09030;
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #d09030, 0 0 40px 12px rgba(208,144,48,.4);
  animation: car3-glow 3s ease-in-out infinite alternate;
}
.scn-carmen-says-goodbye .parting-glow {
  position:absolute; bottom:30%; left:30%; right:30%; height:40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,208,128,.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: car3-glow-bg 5s ease-in-out infinite;
}
@keyframes car3-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes car3-turn { 0% { transform: rotate(0deg) } 25% { transform: rotate(3deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes car3-coin { 0% { transform: translate(0,0) rotate(-10deg) } 50% { transform: translate(8px,-12px) rotate(20deg) } 100% { transform: translate(-4px,6px) rotate(-5deg) } }
@keyframes car3-glow { 0% { opacity:.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(0.95) } }
@keyframes car3-glow-bg { 0%,100% { opacity:.3 } 50% { opacity:.6 } }

/* jose-haunted-by-carmen - dark dim interior, devilish haunting */
.scn-jose-haunted-by-carmen {
  background: linear-gradient(180deg, #0a0604 0%, #1a0e08 40%, #0a0402 100%), radial-gradient(ellipse at 50% 50%, #2a140a 0%, transparent 70%);
}
.scn-jose-haunted-by-carmen .dark-wall {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #0a0604 0%, #1a0e08 50%, #0a0402 100%);
  animation: car4-wall 15s ease-in-out infinite alternate;
}
.scn-jose-haunted-by-carmen .candle {
  position:absolute; bottom:20%; left:25%; width:8px; height:20px;
  background: linear-gradient(180deg, #f0d080 0%, #8a6030 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 -8px 12px 2px rgba(240,208,128,.3);
}
.scn-jose-haunted-by-carmen .flame {
  position:absolute; bottom:39%; left:24.5%; width:10px; height:14px;
  background: radial-gradient(ellipse at 50% 40%, #ffd080 0%, #ff8040 50%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  animation: car4-flame 1.5s ease-in-out infinite alternate;
}
.scn-jose-haunted-by-carmen .ghost-figure {
  position:absolute; bottom:20%; left:55%; width:50px; height:120px;
  background: linear-gradient(180deg, transparent 0%, #2a0e0a 30%, #1a0604 70%, #0a0200 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(42,14,10,.5);
  transform-origin: bottom center;
  animation: car4-ghost 6s ease-in-out infinite alternate;
}
.scn-jose-haunted-by-carmen .shadow-hand {
  position:absolute; bottom:25%; left:60%; width:15px; height:40px;
  background: linear-gradient(180deg, transparent 0%, #1a0604 40%, #0a0200 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  transform-origin: 50% 40px;
  animation: car4-hand 4s ease-in-out infinite alternate;
}
.scn-jose-haunted-by-carmen .eye {
  position:absolute; bottom:42%; left:53%; width:8px; height:8px;
  background: radial-gradient(circle, #c04020 0%, #802010 70%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px #c04020, 0 0 30px 10px rgba(192,64,32,.4);
  animation: car4-eye 2s ease-in-out infinite alternate;
}
.scn-jose-haunted-by-carmen .mist {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, transparent 0%, rgba(26,14,8,.4) 50%, rgba(10,4,2,.6) 100%);
  filter: blur(8px);
  animation: car4-mist 8s ease-in-out infinite alternate;
}
@keyframes car4-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes car4-flame { 0% { transform: scaleY(0.8) translateY(1px) } 25% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.1) translateY(-2px) } 75% { transform: scaleY(0.9) translateY(2px) } 100% { transform: scaleY(0.85) translateY(1px) } }
@keyframes car4-ghost { 0% { transform: translateY(0) scaleX(1) } 25% { transform: translateY(-5px) scaleX(1.02) } 50% { transform: translateY(2px) scaleX(0.98) } 75% { transform: translateY(-8px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes car4-hand { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-10px) rotate(15deg) } 50% { transform: translateY(5px) rotate(-10deg) } 75% { transform: translateY(-15px) rotate(20deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes car4-eye { 0% { opacity:.6; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.7; transform: scale(0.9) } }
@keyframes car4-mist { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-final-confrontation-gorge { background: linear-gradient(180deg, #1b1b3a 0%, #2a2a5e 40%, #3a2a4a 70%, #4a3a4a 100%), radial-gradient(ellipse at 50% 100%, #2a1a2a 0%, transparent 60%); }
.scn-final-confrontation-gorge .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a5e 0%, #4a3a6e 50%, #6a4a5e 100%); animation: fcg-sky 12s ease-in-out infinite alternate; }
.scn-final-confrontation-gorge .cliff-left { position:absolute; bottom:30%; left:0; width:35%; height:60%; background: linear-gradient(135deg, #3a2a3a 0%, #2a1a2a 100%); border-radius:0 40% 0 0 / 0 80% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.6); animation: fcg-cliff 8s ease-in-out infinite alternate; }
.scn-final-confrontation-gorge .cliff-right { position:absolute; bottom:30%; right:0; width:40%; height:65%; background: linear-gradient(225deg, #4a3a4a 0%, #2a1a2a 100%); border-radius:40% 0 0 0 / 80% 0 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.6); animation: fcg-cliff 8s ease-in-out infinite alternate-reverse; }
.scn-final-confrontation-gorge .figure-woman { position:absolute; bottom:30%; left:50%; width:20px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 60%, #2a1a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: fcg-woman 6s ease-in-out infinite; }
.scn-final-confrontation-gorge .figure-jose { position:absolute; bottom:30%; left:35%; width:22px; height:48px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: fcg-jose 10s ease-in-out infinite; }
.scn-final-confrontation-gorge .knife-gleam { position:absolute; bottom:38%; left:38%; width:4px; height:16px; background: radial-gradient(circle, #c0b0a0 0%, #6a5a4a 70%); border-radius:20% 20% 40% 40%; transform:rotate(30deg); box-shadow: 0 0 12px 2px rgba(192,176,160,.4); animation: fcg-knife 3s ease-in-out infinite alternate; }
.scn-final-confrontation-gorge .dust { position:absolute; bottom:20%; left:40%; width:80px; height:30px; background: radial-gradient(ellipse, rgba(200,180,160,0.15) 0%, transparent 70%); border-radius:50%; filter:blur(4px); animation: fcg-dust 15s linear infinite; }
@keyframes fcg-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes fcg-cliff { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes fcg-woman { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-48%) translateY(-2px) rotate(2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0) } 75% { transform: translateX(-52%) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes fcg-jose { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 30% { transform: translateX(-48%) translateY(-3px) rotate(3deg) } 60% { transform: translateX(-50%) translateY(0) rotate(0) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes fcg-knife { 0% { transform: rotate(25deg) scale(1); opacity:.7 } 50% { transform: rotate(35deg) scale(1.1); opacity:1 } 100% { transform: rotate(25deg) scale(1); opacity:.7 } }
@keyframes fcg-dust { 0% { transform: translateX(-20px); opacity:.2 } 50% { transform: translateX(10px); opacity:.5 } 100% { transform: translateX(-20px); opacity:.2 } }

.scn-carmen-rejects-jose-forever { background: linear-gradient(180deg, #1e1e40 0%, #2a2a5e 40%, #4a3a5a 70%, #5a4a4a 100%), radial-gradient(ellipse at 50% 100%, #3a2a3a 0%, transparent 60%); }
.scn-carmen-rejects-jose-forever .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a5e 0%, #5a4a7e 50%, #7a5a6e 100%); animation: crj-sky 14s ease-in-out infinite alternate; }
.scn-carmen-rejects-jose-forever .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius:40% 60% 0 0 / 20% 30% 0 0; box-shadow: inset 0 10px 40px rgba(0,0,0,.6); animation: crj-ground 20s ease-in-out infinite; }
.scn-carmen-rejects-jose-forever .jose-kneeling { position:absolute; bottom:30%; left:35%; width:24px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 70%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: crj-kneel 6s ease-in-out infinite; }
.scn-carmen-rejects-jose-forever .carmen-standing { position:absolute; bottom:30%; left:55%; width:22px; height:52px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a3e 0%, #2a1a2a 70%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: -2px 0 8px rgba(0,0,0,.4); animation: crj-stand 8s ease-in-out infinite; }
.scn-carmen-rejects-jose-forever .carmen-arm { position:absolute; bottom:45%; left:57%; width:20px; height:4px; background: linear-gradient(90deg, #2a1a2a 0%, #4a3a4a 100%); border-radius:40% 20% 20% 40%; transform-origin: right center; transform:rotate(-20deg); animation: crj-arm 4s ease-in-out infinite alternate; }
.scn-carmen-rejects-jose-forever .mantilla-drift { position:absolute; bottom:40%; left:50%; width:30px; height:20px; background: radial-gradient(ellipse at 50% 30%, rgba(80,60,70,0.4) 0%, transparent 70%); border-radius:50%; filter:blur(3px); animation: crj-mantilla 9s ease-in-out infinite; }
.scn-carmen-rejects-jose-forever .dust { position:absolute; bottom:20%; left:30%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(200,180,160,0.1) 0%, transparent 70%); border-radius:50%; filter:blur(4px); animation: crj-dust 18s linear infinite; }
@keyframes crj-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes crj-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes crj-kneel { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 30% { transform: translateX(-48%) translateY(-3px) rotate(5deg) } 60% { transform: translateX(-50%) translateY(0) rotate(0) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes crj-stand { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 50% { transform: translateX(-48%) translateY(-2px) rotate(2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg) } }
@keyframes crj-arm { 0% { transform: rotate(-25deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-25deg) } }
@keyframes crj-mantilla { 0% { transform: translate(0,0) rotate(-5deg) } 50% { transform: translate(3px,-1px) rotate(5deg) } 100% { transform: translate(0,0) rotate(-5deg) } }
@keyframes crj-dust { 0% { transform: translateX(0); opacity:.2 } 50% { transform: translateX(20px); opacity:.4 } 100% { transform: translateX(0); opacity:.2 } }

.scn-jose-kills-carmen { background: linear-gradient(180deg, #1a1a3a 0%, #2a2a5e 40%, #3a2a3a 70%, #4a3a3a 100%), radial-gradient(ellipse at 50% 100%, #2a1a2a 0%, transparent 60%); }
.scn-jose-kills-carmen .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a5e 0%, #5a4a6e 50%, #6a4a5e 100%); animation: jkc-sky 15s ease-in-out infinite alternate; }
.scn-jose-kills-carmen .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:30% 70% 0 0 / 20% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.7); animation: jkc-ground 25s ease-in-out infinite; }
.scn-jose-kills-carmen .grave-mound { position:absolute; bottom:22%; left:40%; width:50px; height:18px; background: radial-gradient(ellipse at 50% 40%, #3a2a2a 0%, #1a1a1a 100%); border-radius:50%; transform:rotate(-5deg); animation: jkc-mound 12s ease-in-out infinite; }
.scn-jose-kills-carmen .body-fallen { position:absolute; bottom:25%; left:42%; width:30px; height:16px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform:rotate(10deg); box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: jkc-body 8s ease-in-out infinite; }
.scn-jose-kills-carmen .knife-hand { position:absolute; bottom:30%; left:35%; width:18px; height:30px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jkc-hand 6s ease-in-out infinite alternate; }
.scn-jose-kills-carmen .ring-glint { position:absolute; bottom:28%; left:48%; width:6px; height:6px; background: radial-gradient(circle, #d0b80 0%, #8a7030 70%); border-radius:50%; box-shadow: 0 0 10px 2px rgba(208,184,64,0.5); animation: jkc-ring 3s ease-in-out infinite; }
.scn-jose-kills-carmen .blood-stain { position:absolute; bottom:24%; left:44%; width:20px; height:10px; background: radial-gradient(ellipse, #4a1a1a 0%, transparent 70%); border-radius:50%; filter:blur(4px); animation: jkc-blood 20s ease-in-out infinite; }
@keyframes jkc-sky { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes jkc-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes jkc-mound { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes jkc-body { 0% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-1px) } 100% { transform: rotate(8deg) translateY(0) } }
@keyframes jkc-hand { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 50% { transform: translateX(-48%) translateY(-2px) rotate(10deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes jkc-ring { 0% { opacity:.3; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.3; transform: scale(1) } }
@keyframes jkc-blood { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.2 } }

.scn-ethnographic-gipsy-women { background: linear-gradient(180deg, #8a7a5a 0%, #b0a080 30%, #d0c090 60%, #e0d0a0 100%), radial-gradient(ellipse at 50% 0%, #e0d0a0 0%, transparent 70%); }
.scn-ethnographic-gipsy-women .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a8aba 0%, #8abade 50%, #b0d0e0 100%); animation: egw-sky 20s ease-in-out infinite alternate; }
.scn-ethnographic-gipsy-women .sun { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #ffe080 0%, #ffc040 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,192,64,0.4); animation: egw-sun 30s linear infinite; }
.scn-ethnographic-gipsy-women .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius:60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.2); }
.scn-ethnographic-gipsy-women .dancer-left { position:absolute; bottom:30%; left:30%; width:28px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #8a4a3a 0%, #6a2a1a 70%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: egw-dance-left 4s ease-in-out infinite; }
.scn-ethnographic-gipsy-women .dancer-right { position:absolute; bottom:30%; left:60%; width:28px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 70%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: egw-dance-right 4s ease-in-out infinite 0.5s; }
.scn-ethnographic-gipsy-women .tent { position:absolute; bottom:30%; left:10%; width:60px; height:40px; background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); border-radius:10%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: egw-tent 12s ease-in-out infinite; }
.scn-ethnographic-gipsy-women .castanets-spark { position:absolute; bottom:45%; left:58%; width:8px; height:8px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,208,128,0.5); animation: egw-castanets 2s ease-in-out infinite; }
@keyframes egw-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes egw-sun { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-10px) translateY(-5px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes egw-dance-left { 0% { transform: translateX(-50%) rotate(-10deg) scaleY(1) } 25% { transform: translateX(-48%) rotate(5deg) scaleY(1.1) } 50% { transform: translateX(-50%) rotate(0) scaleY(1) } 75% { transform: translateX(-52%) rotate(-5deg) scaleY(1.1) } 100% { transform: translateX(-50%) rotate(-10deg) scaleY(1) } }
@keyframes egw-dance-right { 0% { transform: translateX(-50%) rotate(10deg) scaleY(1) } 25% { transform: translateX(-52%) rotate(-5deg) scaleY(1.1) } 50% { transform: translateX(-50%) rotate(0) scaleY(1) } 75% { transform: translateX(-48%) rotate(5deg) scaleY(1.1) } 100% { transform: translateX(-50%) rotate(10deg) scaleY(1) } }
@keyframes egw-tent { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes egw-castanets { 0% { opacity:.3; transform: scale(1) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:.3; transform: scale(1) } }

/* Scene: condemned-to-garrotte */
.scn-condemned-to-garrotte {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 60%, #0f0f1a 100%), radial-gradient(ellipse at 70% 30%, #4a5a6a 0%, transparent 70%);
}
.scn-condemned-to-garrotte .cg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%);
  animation: cg-shade 8s ease-in-out infinite alternate;
}
.scn-condemned-to-garrotte .cg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #1e1e2e 0%, #2a2a3a 100%);
  border-radius: 0 0 8% 8% / 0 0 4% 4%;
}
.scn-condemned-to-garrotte .cg-window {
  position: absolute; top: 18%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #d0d8e8 0%, #8090b0 60%, transparent 80%);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(128,144,176,.3);
  animation: cg-light 4s ease-in-out infinite alternate;
}
.scn-condemned-to-garrotte .cg-figure {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 35% 35%;
  animation: cg-breathe 3s ease-in-out infinite;
}
.scn-condemned-to-garrotte .cg-table {
  position: absolute; bottom: 28%; left: 40%; width: 70px; height: 12px;
  background: linear-gradient(0deg, #4a3a2a 0%, #6a5a4a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-condemned-to-garrotte .cg-noose {
  position: absolute; top: 12%; left: 50%; width: 20px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 70%, #8a6a4a 0%, #4a3a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 0 4px #6a5a4a, 0 0 8px 2px rgba(0,0,0,.4);
  animation: cg-swing 6s ease-in-out infinite;
}
@keyframes cg-shade { 0%{ opacity:.8 } 50%{ opacity:1 } 100%{ opacity:.85 } }
@keyframes cg-light { 0%{ opacity:.7; box-shadow: 0 0 20px 5px rgba(128,144,176,.2) } 50%{ opacity:1; box-shadow: 0 0 40px 15px rgba(128,144,176,.4) } 100%{ opacity:.8; box-shadow: 0 0 25px 8px rgba(128,144,176,.3) } }
@keyframes cg-breathe { 0%{ transform: translateX(-50%) scaleY(1) } 50%{ transform: translateX(-50%) scaleY(1.02) translateY(-2px) } 100%{ transform: translateX(-50%) scaleY(1) } }
@keyframes cg-swing { 0%{ transform: translateX(-50%) rotate(-3deg) } 50%{ transform: translateX(-50%) rotate(3deg) } 100%{ transform: translateX(-50%) rotate(-3deg) } }

/* Scene: visiting-jose-in-prison */
.scn-visiting-jose-in-prison {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 60%, #050510 100%), radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 80%);
}
.scn-visiting-jose-in-prison .vjp-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 50%, #0f0f1f 100%);
  animation: vjp-dim 10s ease-in-out infinite alternate;
}
.scn-visiting-jose-in-prison .vjp-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0a0a1a 0%, #1a1a2a 100%);
}
.scn-visiting-jose-in-prison .vjp-table {
  position: absolute; bottom: 22%; left: 25%; width: 100px; height: 8px;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%);
  border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,.6);
}
.scn-visiting-jose-in-prison .vjp-candle {
  position: absolute; bottom: 30%; left: 35%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #cc8840 60%, #6a3a1a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,.3);
  animation: vjp-flicker 2s ease-in-out infinite alternate;
}
.scn-visiting-jose-in-prison .vjp-jose {
  position: absolute; bottom: 20%; left: 22%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  animation: vjp-sit 5s ease-in-out infinite;
}
.scn-visiting-jose-in-prison .vjp-visitor {
  position: absolute; bottom: 20%; left: 52%; width: 30px; height: 72px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%;
  animation: vjp-sit 5s ease-in-out infinite reverse;
}
@keyframes vjp-dim { 0%{ opacity:.9 } 50%{ opacity:1 } 100%{ opacity:.85 } }
@keyframes vjp-flicker { 0%{ opacity:.6; box-shadow: 0 0 15px 3px rgba(255,208,128,.2) } 50%{ opacity:1; box-shadow: 0 0 25px 8px rgba(255,208,128,.4) } 100%{ opacity:.8; box-shadow: 0 0 18px 5px rgba(255,208,128,.3) } }
@keyframes vjp-sit { 0%{ transform: translateY(0) rotate(-1deg) } 50%{ transform: translateY(-2px) rotate(1deg) } 100%{ transform: translateY(0) rotate(-1deg) } }

/* Scene: jose-asks-for-mass */
.scn-jose-asks-for-mass {
  background: linear-gradient(180deg, #1f1f33 0%, #0f0f22 60%, #050510 100%), radial-gradient(ellipse at 30% 50%, #2a2a4a 0%, transparent 70%);
}
.scn-jose-asks-for-mass .jam-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 50%, #0f0f1a 100%);
  animation: jam-drift 12s ease-in-out infinite alternate;
}
.scn-jose-asks-for-mass .jam-shadow {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #000000 0%, transparent 70%);
  opacity: .5;
  animation: jam-pulse 8s ease-in-out infinite;
}
.scn-jose-asks-for-mass .jam-candle {
  position: absolute; bottom: 32%; left: 40%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #ffe0a0 0%, #d09040 60%, #6a3010 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 15px 5px rgba(255,224,160,.3);
  animation: jam-flame 2.5s ease-in-out infinite alternate;
}
.scn-jose-asks-for-mass .jam-jose {
  position: absolute; bottom: 18%; left: 32%; width: 26px; height: 65px;
  background: linear-gradient(180deg, #0f0f1f 0%, #050510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  animation: jam-bow 6s ease-in-out infinite;
}
.scn-jose-asks-for-mass .jam-cross {
  position: absolute; top: 20%; left: 45%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  clip-path: polygon(35% 0%, 65% 0%, 65% 30%, 100% 30%, 100% 70%, 65% 70%, 65% 100%, 35% 100%, 35% 70%, 0% 70%, 0% 30%, 35% 30%);
  animation: jam-glow 4s ease-in-out infinite alternate;
}
.scn-jose-asks-for-mass .jam-hand {
  position: absolute; bottom: 20%; left: 38%; width: 8px; height: 12px;
  background: radial-gradient(circle at 30% 40%, #4a3a2a 0%, #1a0f0a 100%);
  border-radius: 40% 40% 20% 20%;
  animation: jam-reach 5s ease-in-out infinite;
}
@keyframes jam-drift { 0%{ opacity:.9 } 50%{ opacity:1 } 100%{ opacity:.85 } }
@keyframes jam-pulse { 0%{ opacity:.3 } 50%{ opacity:.6 } 100%{ opacity:.4 } }
@keyframes jam-flame { 0%{ transform: scaleY(1); box-shadow: 0 0 12px 3px rgba(255,224,160,.2) } 50%{ transform: scaleY(1.1) scaleX(.95); box-shadow: 0 0 20px 6px rgba(255,224,160,.4) } 100%{ transform: scaleY(1); box-shadow: 0 0 14px 4px rgba(255,224,160,.3) } }
@keyframes jam-bow { 0%{ transform: translateY(0) rotate(-1deg) } 25%{ transform: translateY(-2px) rotate(1deg) } 50%{ transform: translateY(-1px) rotate(-.5deg) } 75%{ transform: translateY(-2px) rotate(1.5deg) } 100%{ transform: translateY(0) rotate(-1deg) } }
@keyframes jam-glow { 0%{ opacity:.7; box-shadow: 0 0 10px 2px rgba(138,122,106,.2) } 50%{ opacity:1; box-shadow: 0 0 25px 8px rgba(138,122,106,.4) } 100%{ opacity:.8; box-shadow: 0 0 15px 4px rgba(138,122,106,.3) } }
@keyframes jam-reach { 0%{ transform: translateX(0) rotate(0deg) } 50%{ transform: translateX(4px) rotate(5deg) } 100%{ transform: translateX(0) rotate(0deg) } }

/* Scene: joses-medal-commission */
.scn-joses-medal-commission {
  background: linear-gradient(180deg, #1a1a30 0%, #0f0f20 50%, #050510 100%), radial-gradient(ellipse at 60% 80%, #2a2a44 0%, transparent 70%);
}
.scn-joses-medal-commission .jmc-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a1a 100%);
  animation: jmc-inhale 8s ease-in-out infinite alternate;
}
.scn-joses-medal-commission .jmc-table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 6px;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.scn-joses-medal-commission .jmc-candle {
  position: absolute; bottom: 22%; left: 30%; width: 5px; height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #b07030 60%, #5a2a0a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(255,208,128,.25);
  animation: jmc-wick 3s ease-in-out infinite alternate;
}
.scn-joses-medal-commission .jmc-hand-left {
  position: absolute; bottom: 18%; left: 35%; width: 10px; height: 14px;
  background: radial-gradient(circle at 40% 30%, #4a3a2a 0%, #1a0f0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: jmc-reach-left 4s ease-in-out infinite;
}
.scn-joses-medal-commission .jmc-hand-right {
  position: absolute; bottom: 18%; left: 48%; width: 10px; height: 14px;
  background: radial-gradient(circle at 60% 30%, #4a3a2a 0%, #1a0f0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: jmc-reach-right 4s ease-in-out infinite;
}
.scn-joses-medal-commission .jmc-medal {
  position: absolute; bottom: 21%; left: 44%; width: 12px; height: 12px;
  background: radial-gradient(circle at 40% 30%, #d0a060 0%, #8a6030 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(208,160,96,.3);
  animation: jmc-sparkle 2.5s ease-in-out infinite alternate;
}
@keyframes jmc-inhale { 0%{ opacity:.9 } 50%{ opacity:1 } 100%{ opacity:.85 } }
@keyframes jmc-wick { 0%{ opacity:.7; box-shadow: 0 0 10px 2px rgba(255,208,128,.2) } 50%{ opacity:1; box-shadow: 0 0 18px 5px rgba(255,208,128,.35) } 100%{ opacity:.8; box-shadow: 0 0 12px 3px rgba(255,208,128,.25) } }
@keyframes jmc-reach-left { 0%{ transform: translateX(0) rotate(0deg) } 50%{ transform: translateX(3px) rotate(8deg) } 100%{ transform: translateX(0) rotate(0deg) } }
@keyframes jmc-reach-right { 0%{ transform: translateX(0) rotate(0deg) } 50%{ transform: translateX(-3px) rotate(-8deg) } 100%{ transform: translateX(0) rotate(0deg) } }
@keyframes jmc-sparkle { 0%{ opacity:.6; box-shadow: 0 0 5px 1px rgba(208,160,96,.2) } 50%{ opacity:1; box-shadow: 0 0 12px 4px rgba(208,160,96,.5) } 100%{ opacity:.7; box-shadow: 0 0 8px 2px rgba(208,160,96,.3) } }

/* === carmen-threatens-officer === */
.scn-carmen-threatens-officer { background: linear-gradient(180deg, #0a1128 0%, #1a2340 40%, #2a3560 100%), radial-gradient(ellipse at 50% 20%, #4a5a80 0%, transparent 60%); }
.scn-carmen-threatens-officer .moon { position:absolute; top:8%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #d0d8ff 0%, #8090b0 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(128,144,176,.5); animation: cto-moon 20s ease-in-out infinite alternate; }
.scn-carmen-threatens-officer .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a1128 0%, transparent 100%); opacity:.6; animation: cto-sky 25s linear infinite; }
.scn-carmen-threatens-officer .roof-line { position:absolute; bottom:35%; left:0; right:0; height:12%; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 30%, #3a3a4a 60%, #2a2a3a 80%, #1a1a2a 100%); border-radius: 0 0 20% 20% / 0 0 60% 60%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-carmen-threatens-officer .figure-left { position:absolute; bottom:20%; left:25%; width:28px; height:60px; background: linear-gradient(180deg, #0a0a12 0%, #1a1a2a 100%); border-radius: 55% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cto-figure-left 5s ease-in-out infinite; }
.scn-carmen-threatens-officer .figure-right { position:absolute; bottom:20%; right:25%; width:30px; height:65px; background: linear-gradient(180deg, #0a0a18 0%, #151528 100%); border-radius: 45% 55% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cto-figure-right 4s ease-in-out infinite; }
.scn-carmen-threatens-officer .shadow-left { position:absolute; bottom:20%; left:22%; width:40px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); border-radius:50%; transform:rotate(-5deg); animation: cto-shadow 5s ease-in-out infinite; }
.scn-carmen-threatens-officer .shadow-right { position:absolute; bottom:20%; right:22%; width:45px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); border-radius:50%; transform:rotate(5deg); animation: cto-shadow 5s ease-in-out infinite reverse; }
@keyframes cto-moon { 0% { transform: translateY(0); box-shadow: 0 0 40px 20px rgba(128,144,176,.5); } 50% { transform: translateY(-5px); box-shadow: 0 0 50px 30px rgba(128,144,176,.7); } 100% { transform: translateY(0); box-shadow: 0 0 30px 15px rgba(128,144,176,.4); } }
@keyframes cto-sky { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes cto-figure-left { 0% { transform: translate(0,0) rotate(-2deg); } 25% { transform: translate(3px,-2px) rotate(0); } 50% { transform: translate(-2px,0) rotate(2deg); } 75% { transform: translate(4px,-1px) rotate(0); } 100% { transform: translate(0,0) rotate(-2deg); } }
@keyframes cto-figure-right { 0% { transform: translate(0,0) rotate(1deg); } 50% { transform: translate(-6px,-2px) rotate(-2deg); } 100% { transform: translate(0,0) rotate(1deg); } }
@keyframes cto-shadow { 0%,100% { opacity:.5; transform: scale(1) rotate(-5deg); } 50% { opacity:.8; transform: scale(1.1) rotate(-5deg); } }

/* === letting-smugglers-pass === */
.scn-letting-smugglers-pass { background: linear-gradient(180deg, #0d1b2a 0%, #1b2d4a 40%, #345a7a 100%), radial-gradient(ellipse at 50% 10%, #4a7a9a 0%, transparent 70%); }
.scn-letting-smugglers-pass .moon { position:absolute; top:5%; left:55%; width:55px; height:55px; background: radial-gradient(circle, #e0e8ff 0%, #a0b0d0 70%); border-radius:50%; box-shadow: 0 0 50px 25px rgba(160,176,208,.6); animation: lsp-moon 15s ease-in-out infinite alternate; }
.scn-letting-smugglers-pass .hills { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1520 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: lsp-hills 20s ease-in-out infinite; }
.scn-letting-smugglers-pass .gate { position:absolute; bottom:18%; left:50%; width:60px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 5% 5% 2% 2%; box-shadow: 0 4px 15px rgba(0,0,0,.8); clip-path: inset(0 round 10px); }
.scn-letting-smugglers-pass .carmen { position:absolute; bottom:20%; left:30%; width:24px; height:55px; background: linear-gradient(180deg, #0a0a12 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lsp-carmen 6s ease-in-out infinite; }
.scn-letting-smugglers-pass .smuggler-a { position:absolute; bottom:20%; left:55%; width:22px; height:52px; background: linear-gradient(180deg, #12121a 0%, #1a1a2a 100%); border-radius: 45% 55% 40% 40% / 55% 55% 40% 40%; animation: lsp-smuggler-a 5s ease-in-out infinite; }
.scn-letting-smugglers-pass .smuggler-b { position:absolute; bottom:20%; left:65%; width:22px; height:50px; background: linear-gradient(180deg, #101018 0%, #181828 100%); border-radius: 50% 50% 30% 30% / 55% 55% 30% 30%; animation: lsp-smuggler-b 4s ease-in-out infinite; }
.scn-letting-smugglers-pass .dust { position:absolute; bottom:25%; left:0; right:0; height:10%; background: radial-gradient(ellipse at 30% 0%, rgba(200,200,220,.2) 0%, transparent 70%); filter: blur(8px); animation: lsp-dust 10s ease-in-out infinite; }
@keyframes lsp-moon { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 50px 25px rgba(160,176,208,.6); } 50% { transform: translateY(-8px) scale(1.02); box-shadow: 0 0 60px 30px rgba(160,176,208,.8); } 100% { transform: translateY(2px) scale(.98); box-shadow: 0 0 40px 20px rgba(160,176,208,.5); } }
@keyframes lsp-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes lsp-carmen { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(10px) rotate(0); } 50% { transform: translateX(20px) rotate(3deg); } 75% { transform: translateX(10px) rotate(0); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes lsp-smuggler-a { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes lsp-smuggler-b { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes lsp-dust { 0% { opacity:.3; transform: translateY(0); } 50% { opacity:.6; transform: translateY(-10px); } 100% { opacity:.3; transform: translateY(0); } }

/* === carmen-angry-after-bargain === */
.scn-carmen-angry-after-bargain { background: linear-gradient(180deg, #1a0f0a 0%, #2a1a0e 40%, #3a2515 100%), radial-gradient(ellipse at 50% 100%, #5a3a1a 0%, transparent 70%); }
.scn-carmen-angry-after-bargain .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1a0e 0%, #1a0f0a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.7); }
.scn-carmen-angry-after-bargain .table { position:absolute; bottom:20%; left:50%; width:120px; height:20px; transform:translateX(-50%); background: linear-gradient(90deg, #5a3a1a 0%, #8a5a2a 50%, #5a3a1a 100%); border-radius: 5px; box-shadow: 0 4px 10px rgba(0,0,0,.6); }
.scn-carmen-angry-after-bargain .candle { position:absolute; bottom:38%; left:40%; width:8px; height:20px; background: linear-gradient(180deg, #e0c080 0%, #a08050 100%); border-radius: 2px; box-shadow: 0 0 20px 8px #ffa060, 0 0 40px 15px rgba(255,160,96,.4); animation: cab-candle 4s ease-in-out infinite alternate; }
.scn-carmen-angry-after-bargain .carmen-stand { position:absolute; bottom:20%; left:25%; width:28px; height:58px; background: linear-gradient(180deg, #0a0a12 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cab-carmen 3s ease-in-out infinite; }
.scn-carmen-angry-after-bargain .jose-sit { position:absolute; bottom:20%; right:30%; width:30px; height:50px; background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2a 100%); border-radius: 40% 60% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: cab-jose 5s ease-in-out infinite; }
.scn-carmen-angry-after-bargain .shadow-cast { position:absolute; bottom:20%; left:10%; width:200px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%); transform: rotate(10deg); filter: blur(4px); animation: cab-shadow 6s ease-in-out infinite; }
.scn-carmen-angry-after-bargain .glow { position:absolute; bottom:35%; left:38%; width:100px; height:100px; background: radial-gradient(circle, rgba(255,180,100,.3) 0%, transparent 70%); animation: cab-glow 4s ease-in-out infinite alternate; }
@keyframes cab-candle { 0% { opacity:.6; box-shadow: 0 0 15px 5px #ffa060, 0 0 30px 10px rgba(255,160,96,.3); } 50% { opacity:1; box-shadow: 0 0 25px 10px #ffb070, 0 0 50px 20px rgba(255,176,112,.5); } 100% { opacity:.7; box-shadow: 0 0 18px 6px #ffa060, 0 0 35px 12px rgba(255,160,96,.35); } }
@keyframes cab-carmen { 0% { transform: translateX(0) scale(1) rotate(-5deg); } 25% { transform: translateX(-8px) scale(1.05) rotate(0); } 50% { transform: translateX(0) scale(1) rotate(5deg); } 75% { transform: translateX(8px) scale(.95) rotate(0); } 100% { transform: translateX(0) scale(1) rotate(-5deg); } }
@keyframes cab-jose { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes cab-shadow { 0% { opacity:.5; transform: rotate(10deg) scale(1); } 50% { opacity:.8; transform: rotate(12deg) scale(1.1); } 100% { opacity:.5; transform: rotate(10deg) scale(1); } }
@keyframes cab-glow { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.3; } }

/* === jose-cries-in-church === */
.scn-jose-cries-in-church { background: linear-gradient(180deg, #0a0a1a 0%, #12122a 50%, #1a1a3a 100%), radial-gradient(ellipse at 50% 100%, #1a1a3a 0%, transparent 80%); }
.scn-jose-cries-in-church .pew { position:absolute; bottom:10%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); transform-origin: bottom center; animation: jcc-pew 30s ease-in-out infinite; }
.scn-jose-cries-in-church .altar { position:absolute; bottom:15%; left:50%; width:80px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 -5px 20px rgba(0,0,0,.6); }
.scn-jose-cries-in-church .candle-a { position:absolute; bottom:40%; left:35%; width:6px; height:18px; background: linear-gradient(180deg, #e0c080 0%, #a08050 100%); border-radius: 2px; box-shadow: 0 0 15px 6px #ffa050, 0 0 30px 12px rgba(255,160,80,.3); animation: jcc-candle-a 5s ease-in-out infinite alternate; }
.scn-jose-cries-in-church .candle-b { position:absolute; bottom:40%; right:35%; width:6px; height:18px; background: linear-gradient(180deg, #d0b070 0%, #a08050 100%); border-radius: 2px; box-shadow: 0 0 12px 4px #ffa050, 0 0 25px 10px rgba(255,160,80,.2); animation: jcc-candle-b 6s ease-in-out infinite alternate; }
.scn-jose-cries-in-church .jose-kneel { position:absolute; bottom:20%; left:50%; width:28px; height:48px; transform:translateX(-50%); background: linear-gradient(180deg, #0a0a12 0%, #151525 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: jcc-jose 7s ease-in-out infinite; }
.scn-jose-cries-in-church .stained-glass { position:absolute; top:8%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a5a 0%, #3a2a4a 50%, #2a2a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(90,58,90,.4); animation: jcc-stained 12s ease-in-out infinite; }
.scn-jose-cries-in-church .shadow-cross { position:absolute; top:15%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: rgba(0,0,0,.4); clip-path: polygon(45% 0%, 55% 0%, 55% 40%, 100% 40%, 100% 55%, 55% 55%, 55% 100%, 45% 100%, 45% 55%, 0% 55%, 0% 40%, 45% 40%); animation: jcc-cross 8s ease-in-out infinite; }
.scn-jose-cries-in-church .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(200,200,220,.03) 0%, transparent 70%); filter: blur(10px); animation: jcc-dust 20s linear infinite; }
@keyframes jcc-pew { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes jcc-candle-a { 0% { opacity:.7; box-shadow: 0 0 12px 4px #ffa050, 0 0 25px 10px rgba(255,160,80,.2); } 50% { opacity:1; box-shadow: 0 0 18px 8px #ffb070, 0 0 35px 15px rgba(255,176,112,.4); } 100% { opacity:.8; box-shadow: 0 0 14px 5px #ffa050, 0 0 28px 12px rgba(255,160,80,.25); } }
@keyframes jcc-candle-b { 0% { opacity:.8; box-shadow: 0 0 10px 3px #ffa050, 0 0 20px 8px rgba(255,160,80,.15); } 50% { opacity:1; box-shadow: 0 0 16px 6px #ffb070, 0 0 30px 12px rgba(255,176,112,.35); } 100% { opacity:.7; box-shadow: 0 0 12px 4px #ffa050, 0 0 22px 9px rgba(255,160,80,.2); } }
@keyframes jcc-jose { 0% { transform: translate(-50%,0) scale(1) rotate(-2deg); } 25% { transform: translate(-45%,-3px) scale(1.02) rotate(1deg); } 50% { transform: translate(-50%,-2px) scale(1.01) rotate(0); } 75% { transform: translate(-55%,-3px) scale(.98) rotate(1deg); } 100% { transform: translate(-50%,0) scale(1) rotate(-2deg); } }
@keyframes jcc-stained { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.4; } }
@keyframes jcc-cross { 0% { opacity:.3; transform: translateX(-50%) scale(1); } 50% { opacity:.5; transform: translateX(-50%) scale(1.05); } 100% { opacity:.3; transform: translateX(-50%) scale(1); } }
@keyframes jcc-dust { 0% { background-position: 0% 0%; } 50% { background-position: 100% 100%; } 100% { background-position: 0% 0%; } }

/* carmen-reveals-herself */
.scn-carmen-reveals-herself {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0e05 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-carmen-reveals-herself .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a0a 0%, #1a0e05 100%);
}
.scn-carmen-reveals-herself .candle {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 20px; transform: translateX(-50%);
  background: linear-gradient(180deg, #c07040 0%, #a05030 100%); border-radius: 3px 3px 1px 1px;
  animation: crh-candle 2s ease-in-out infinite alternate;
}
.scn-carmen-reveals-herself .candlelight {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 40px; transform: translate(-50%, 0);
  background: radial-gradient(circle, #f0a060 0%, #c07040 40%, transparent 70%);
  border-radius: 50%; opacity: 0.8;
  animation: crh-light 3s ease-in-out infinite alternate;
}
.scn-carmen-reveals-herself .table {
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 8px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-carmen-reveals-herself .figure-left {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: crh-breathe 4s ease-in-out infinite;
}
.scn-carmen-reveals-herself .figure-right {
  position: absolute; bottom: 28%; right: 30%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #c08050 0%, #a06030 100%);
  border-radius: 45% 40% 30% 30% / 55% 50% 30% 30%; transform-origin: bottom center;
  animation: crh-breathe 4s ease-in-out infinite 1s;
}
@keyframes crh-candle { 0% { height: 18px; opacity: 0.9; } 50% { height: 20px; opacity: 1; } 100% { height: 18px; opacity: 0.95; } }
@keyframes crh-light { 0% { transform: translate(-50%, 0) scale(0.9); opacity: 0.7; } 50% { transform: translate(-50%, -2px) scale(1.05); opacity: 0.9; } 100% { transform: translate(-50%, 0) scale(0.95); opacity: 0.75; } }
@keyframes crh-breathe { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* eating-ices-neveria */
.scn-eating-ices-neveria {
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 40%, #0e0e05 100%), radial-gradient(ellipse at 50% 40%, #1a1a0e 0%, transparent 70%);
}
.scn-eating-ices-neveria .bg {
  position: absolute; inset: 0; background: linear-gradient(160deg, #1a1a0e 0%, #0e0e05 100%);
}
.scn-eating-ices-neveria .lamp {
  position: absolute; top: 20%; left: 50%; width: 12px; height: 16px; transform: translateX(-50%);
  background: linear-gradient(180deg, #c08040 0%, #a06020 100%); border-radius: 6px 6px 2px 2px;
  box-shadow: 0 0 30px 10px #c08040; animation: ein-lamp 4s ease-in-out infinite alternate;
}
.scn-eating-ices-neveria .table {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 6px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 3px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-eating-ices-neveria .chair-left {
  position: absolute; bottom: 30%; left: 25%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0;
  transform-origin: bottom center; animation: ein-rock 6s ease-in-out infinite;
}
.scn-eating-ices-neveria .chair-right {
  position: absolute; bottom: 30%; right: 25%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0;
  transform-origin: bottom center; animation: ein-rock 6s ease-in-out infinite 2s;
}
.scn-eating-ices-neveria .figure-left {
  position: absolute; bottom: 30%; left: 25%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center; animation: ein-bob 4s ease-in-out infinite;
}
.scn-eating-ices-neveria .figure-right {
  position: absolute; bottom: 30%; right: 25%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center; animation: ein-bob 4s ease-in-out infinite 1.5s;
}
.scn-eating-ices-neveria .ice-glass {
  position: absolute; bottom: 32%; left: 48%; width: 14px; height: 18px;
  background: linear-gradient(180deg, rgba(200,160,120,0.6) 0%, rgba(180,140,100,0.3) 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: 0 0 6px 2px rgba(200,160,120,0.4);
  animation: ein-melt 8s ease-in-out infinite alternate;
}
@keyframes ein-lamp { 0% { box-shadow: 0 0 20px 6px #c08040; opacity: 0.8; } 50% { box-shadow: 0 0 35px 12px #c08040; opacity: 1; } 100% { box-shadow: 0 0 25px 8px #c08040; opacity: 0.85; } }
@keyframes ein-rock { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes ein-bob { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ein-melt { 0% { height: 18px; opacity: 0.8; } 50% { height: 16px; opacity: 0.7; } 100% { height: 14px; opacity: 0.6; } }

/* studying-carmen-beauty */
.scn-studying-carmen-beauty {
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 50%, #1a0e08 100%), radial-gradient(ellipse at 40% 50%, #6a3a2a 0%, transparent 60%);
}
.scn-studying-carmen-beauty .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a10 0%, #1a0e08 100%);
}
.scn-studying-carmen-beauty .glow {
  position: absolute; top: 20%; left: 35%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, #d09060 0%, transparent 70%);
  opacity: 0.3; animation: scb-glow 6s ease-in-out infinite alternate;
}
.scn-studying-carmen-beauty .skin {
  position: absolute; bottom: 20%; right: 20%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #c08050 0%, #b07040 40%, #a06030 100%);
  border-radius: 50% 40% 60% 50% / 60% 50% 50% 40%; transform-origin: bottom center;
  animation: scb-breathe 4s ease-in-out infinite;
}
.scn-studying-carmen-beauty .eye {
  position: absolute; bottom: 50%; right: 35%; width: 12px; height: 6px;
  background: radial-gradient(circle at 40% 50%, #2a1a0a 30%, transparent 40%), #c08050;
  border-radius: 50%; animation: scb-blink 5s ease-in-out infinite;
}
.scn-studying-carmen-beauty .lip {
  position: absolute; bottom: 30%; right: 30%; width: 18px; height: 8px;
  background: linear-gradient(180deg, #a04030 0%, #802820 100%);
  border-radius: 40% 30% 30% 40% / 60% 40% 50% 50%; animation: scb-breathe 4s ease-in-out infinite 0.5s;
}
.scn-studying-carmen-beauty .hair {
  position: absolute; bottom: 35%; right: 15%; width: 70px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 50% 30% 40% / 50% 60% 40% 30%; transform-origin: bottom center;
  animation: scb-sway 7s ease-in-out infinite;
}
.scn-studying-carmen-beauty .shoulder {
  position: absolute; bottom: 0; right: 20%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #b07040 0%, #8a5028 100%);
  border-radius: 40% 40% 0 0; animation: scb-breathe 4s ease-in-out infinite 1s;
}
@keyframes scb-glow { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.4; transform: scale(1.1); } 100% { opacity: 0.25; transform: scale(0.95); } }
@keyframes scb-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes scb-blink { 0%,90%,100% { transform: scaleY(1); } 95% { transform: scaleY(0.3); } }
@keyframes scb-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }

/* walking-to-carmen-house */
.scn-walking-to-carmen-house {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #2a2a4e 60%, #1a1a2a 100%), radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 80%);
}
.scn-walking-to-carmen-house .sky {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 100%);
  animation: wtc-sky 12s ease-in-out infinite alternate;
}
.scn-walking-to-carmen-house .stars {
  position: absolute; top: 10%; left: 20%; width: 2px; height: 2px; background: #c0c0e0; border-radius: 50%;
  box-shadow: 30px 20px 0 #c0c0e0, 60px 50px 0 #d0d0f0, 100px 30px 0 #b0b0d0, 150px 10px 0 #c0c0e0, 200px 40px 0 #d0d0f0;
  animation: wtc-twinkle 4s ease-in-out infinite alternate;
}
.scn-walking-to-carmen-house .bridge {
  position: absolute; bottom: 45%; left: 10%; width: 80%; height: 6px;
  background: linear-gradient(90deg, #3a3a4a 0%, #4a4a5a 50%, #3a3a4a 100%);
  border-radius: 3px; box-shadow: 0 2px 4px rgba(0,0,0,0.8); animation: wtc-bridge 9s ease-in-out infinite;
}
.scn-walking-to-carmen-house .river {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  background-size: 100% 200%; animation: wtc-river 15s linear infinite;
}
.scn-walking-to-carmen-house .house {
  position: absolute; bottom: 38%; right: 15%; width: 40px; height: 35px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 2px 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
}
.scn-walking-to-carmen-house .house::after {
  content: ''; position: absolute; top: 20%; left: 50%; width: 8px; height: 10px;
  background: radial-gradient(circle, #f0d080 0%, #c0a050 60%, transparent 100%);
  transform: translateX(-50%); border-radius: 2px; animation: wtc-window 3s ease-in-out infinite alternate;
}
.scn-walking-to-carmen-house .figure1 {
  position: absolute; bottom: 48%; left: 30%; width: 8px; height: 18px;
  background: #1a1a1a; border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: wtc-walk 8s linear infinite;
}
.scn-walking-to-carmen-house .figure2 {
  position: absolute; bottom: 48%; left: 35%; width: 8px; height: 18px;
  background: #2a2a2a; border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: wtc-walk 8s linear infinite 2s;
}
@keyframes wtc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes wtc-twinkle { 0% { opacity: 0.3; } 50% { opacity: 1; } 100% { opacity: 0.4; } }
@keyframes wtc-bridge { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes wtc-river { 0% { background-position: 0 0; } 100% { background-position: 0 100%; } }
@keyframes wtc-window { 0% { box-shadow: 0 0 10px 2px #f0d080; opacity: 0.7; } 50% { box-shadow: 0 0 20px 6px #f0d080; opacity: 1; } 100% { box-shadow: 0 0 12px 3px #f0d080; opacity: 0.75; } }
@keyframes wtc-walk { 0% { transform: translateX(0); } 50% { transform: translateX(20px); } 100% { transform: translateX(0); } }

/* fortune-telling-cards */
.scn-fortune-telling-cards { background: linear-gradient(180deg, #1a1210 0%, #2a1a15 40%, #3a2018 100%), radial-gradient(ellipse at 30% 50%, #3a2018 0%, transparent 70%); }
.scn-fortune-telling-cards .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #1a1210 0%, #0d0a08 100%); animation: ftc-fade 8s ease-in-out infinite alternate; }
.scn-fortune-telling-cards .candle { position:absolute; bottom:45%; left:48%; width:10px; height:30px; background: linear-gradient(180deg, #f0c060 0%, #b08030 60%, #4a2a10 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 30px 10px rgba(240,192,96,0.5), 0 0 60px 20px rgba(240,192,96,0.2); animation: ftc-flame 2s ease-in-out infinite; }
.scn-fortune-telling-cards .table { position:absolute; bottom:25%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: ftc-table 10s ease-in-out infinite; }
.scn-fortune-telling-cards .cards { position:absolute; bottom:28%; left:38%; width:24%; height:2%; background: repeating-linear-gradient(90deg, #8a6a4a 0%, #8a6a4a 8%, #b09070 8%, #b09070 16%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: ftc-cards 6s ease-in-out infinite; }
.scn-fortune-telling-cards .magnet { position:absolute; bottom:33%; left:50%; width:16px; height:16px; background: radial-gradient(circle, #606060 0%, #303030 60%); border-radius: 50%; transform: rotate(20deg); animation: ftc-magnet 5s ease-in-out infinite; }
.scn-fortune-telling-cards .chameleon { position:absolute; bottom:36%; left:55%; width:24px; height:12px; background: linear-gradient(135deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 50% 60% 40% 50%; box-shadow: inset 0 2px 4px rgba(0,0,0,0.4); animation: ftc-chameleon 12s ease-in-out infinite alternate; }
.scn-fortune-telling-cards .gipsy-figure { position:absolute; bottom:28%; left:60%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 50%, #0d0704 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-3deg); animation: ftc-gipsy 7s ease-in-out infinite; }
.scn-fortune-telling-cards .stool { position:absolute; bottom:18%; left:62%; width:30px; height:10px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
@keyframes ftc-fade { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ftc-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.9 } 25% { transform: scaleY(1.2) translateY(-3px); opacity:1 } 50% { transform: scaleY(0.9) translateY(2px); opacity:0.8 } 75% { transform: scaleY(1.1) translateY(-1px); opacity:0.95 } 100% { transform: scaleY(1) translateY(0); opacity:0.9 } }
@keyframes ftc-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ftc-cards { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes ftc-magnet { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(25deg) scale(1.05); } 100% { transform: rotate(15deg) scale(0.95); } }
@keyframes ftc-chameleon { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(5deg) scale(1.1); } 100% { transform: rotate(-5deg) scale(0.9); } }
@keyframes ftc-gipsy { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(0) translateX(4px); } 100% { transform: rotate(-3deg) translateX(-2px); } }

/* don-jose-bursts-in */
.scn-don-jose-bursts-in { background: linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #3a2a20 100%), radial-gradient(ellipse at 70% 40%, #3a2a20 0%, transparent 70%); }
.scn-don-jose-bursts-in .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #120e0a 0%, #0a0806 100%); animation: djb-fade 10s ease-in-out infinite alternate; }
.scn-don-jose-bursts-in .door { position:absolute; bottom:20%; left:10%; width:25%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 0 8px 8px 0; transform: rotateY(0deg); box-shadow: inset 0 0 20px rgba(0,0,0,0.7); animation: djb-door 3s ease-in-out infinite; }
.scn-don-jose-bursts-in .cloak-figure { position:absolute; bottom:18%; left:20%; width:40px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 40% 30% 30% 40% / 60% 50% 40% 50%; transform: rotate(10deg); animation: djb-cloak 4s ease-in-out infinite; }
.scn-don-jose-bursts-in .gipsy-figure { position:absolute; bottom:22%; left:55%; width:28px; height:65px; background: linear-gradient(180deg, #2a1812 0%, #140c06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-8deg); animation: djb-gipsy 3s ease-in-out infinite; }
.scn-don-jose-bursts-in .table { position:absolute; bottom:18%; left:40%; width:20%; height:6%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-don-jose-bursts-in .stool { position:absolute; bottom:12%; left:60%; width:28px; height:12px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius: 4px; animation: djb-stool 8s ease-in-out infinite alternate; }
.scn-don-jose-bursts-in .candle { position:absolute; bottom:30%; left:48%; width:8px; height:25px; background: linear-gradient(180deg, #f0c060 0%, #b08030 60%, #4a2a10 100%); border-radius: 2px; box-shadow: 0 0 30px 10px rgba(240,192,96,0.5), 0 0 60px 20px rgba(240,192,96,0.2); animation: djb-flame 2.5s ease-in-out infinite; }
@keyframes djb-fade { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes djb-door { 0% { transform: rotateY(0deg); } 25% { transform: rotateY(-30deg); } 50% { transform: rotateY(-40deg); } 75% { transform: rotateY(-20deg); } 100% { transform: rotateY(0deg); } }
@keyframes djb-cloak { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(15deg) translateX(6px); } 100% { transform: rotate(8deg) translateX(-2px); } }
@keyframes djb-gipsy { 0% { transform: rotate(-8deg) translateY(0); } 20% { transform: rotate(-12deg) translateY(-5px); } 50% { transform: rotate(-5deg) translateY(3px); } 80% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes djb-stool { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.98); } 100% { transform: translateY(1px) scale(1.02); } }
@keyframes djb-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.9 } 30% { transform: scaleY(1.15) translateY(-2px); opacity:1 } 60% { transform: scaleY(0.85) translateY(1px); opacity:0.85 } 100% { transform: scaleY(1) translateY(0); opacity:0.9 } }

/* recognizing-don-jose */
.scn-recognizing-don-jose { background: linear-gradient(180deg, #1a1510 0%, #2a2018 40%, #3a2a20 100%), radial-gradient(ellipse at 50% 50%, #3a2a20 0%, transparent 70%); }
.scn-recognizing-don-jose .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #14100c 0%, #0c0a08 100%); animation: rdj-fade 9s ease-in-out infinite alternate; }
.scn-recognizing-don-jose .candle { position:absolute; bottom:40%; left:50%; width:8px; height:28px; background: linear-gradient(180deg, #f0c060 0%, #b08030 60%, #4a2a10 100%); border-radius: 2px; box-shadow: 0 0 30px 10px rgba(240,192,96,0.5), 0 0 60px 20px rgba(240,192,96,0.2); animation: rdj-flame 2s ease-in-out infinite; }
.scn-recognizing-don-jose .table { position:absolute; bottom:20%; left:35%; width:30%; height:5%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-recognizing-don-jose .chair-left { position:absolute; bottom:12%; left:32%; width:24px; height:30px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius: 6px 6px 2px 2px; transform: rotate(-5deg); }
.scn-recognizing-don-jose .chair-right { position:absolute; bottom:12%; right:32%; width:24px; height:30px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius: 6px 6px 2px 2px; transform: rotate(5deg); }
.scn-recognizing-don-jose .figure-left { position:absolute; bottom:18%; left:35%; width:28px; height:65px; background: linear-gradient(180deg, #2a1812 0%, #140c06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(5deg); animation: rdj-left 5s ease-in-out infinite; }
.scn-recognizing-don-jose .figure-right { position:absolute; bottom:18%; right:35%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 40% 30% 30% 40% / 60% 50% 40% 50%; transform: rotate(-5deg); animation: rdj-right 6s ease-in-out infinite; }
.scn-recognizing-don-jose .card-on-table { position:absolute; bottom:24%; left:48%; width:20px; height:14px; background: linear-gradient(135deg, #8a6a4a 0%, #b09070 100%); border-radius: 2px; transform: rotate(15deg); animation: rdj-card 4s ease-in-out infinite alternate; }
@keyframes rdj-fade { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rdj-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.9 } 30% { transform: scaleY(1.1) translateY(-2px); opacity:1 } 70% { transform: scaleY(0.9) translateY(1px); opacity:0.85 } 100% { transform: scaleY(1) translateY(0); opacity:0.9 } }
@keyframes rdj-left { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-4px); } 100% { transform: rotate(3deg) translateY(2px); } }
@keyframes rdj-right { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-4px); } 100% { transform: rotate(-3deg) translateY(2px); } }
@keyframes rdj-card { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(20deg) scale(1.05); } 100% { transform: rotate(10deg) scale(0.95); } }

/* carmen-angry-turkish */
.scn-carmen-angry-turkish { background: linear-gradient(180deg, #1a1210 0%, #2a1a15 40%, #3a2018 100%), radial-gradient(ellipse at 30% 50%, #3a2018 0%, transparent 70%); }
.scn-carmen-angry-turkish .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #120e0a 0%, #0a0806 100%); animation: cat-fade 8s ease-in-out infinite alternate; }
.scn-carmen-angry-turkish .candle { position:absolute; bottom:40%; left:45%; width:8px; height:28px; background: linear-gradient(180deg, #f0c060 0%, #b08030 60%, #4a2a10 100%); border-radius: 2px; box-shadow: 0 0 30px 10px rgba(240,192,96,0.5), 0 0 60px 20px rgba(240,192,96,0.2); animation: cat-flame 2.2s ease-in-out infinite; }
.scn-carmen-angry-turkish .table { position:absolute; bottom:18%; left:30%; width:40%; height:5%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-carmen-angry-turkish .gipsy-figure { position:absolute; bottom:22%; left:50%; width:30px; height:70px; background: linear-gradient(180deg, #2a1812 0%, #140c06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: cat-gipsy 3s ease-in-out infinite; }
.scn-carmen-angry-turkish .don-jose-figure { position:absolute; bottom:20%; left:25%; width:35px; height:75px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 40% 30% 30% 40% / 60% 50% 40% 50%; transform: rotate(5deg); animation: cat-don 4s ease-in-out infinite; }
.scn-carmen-angry-turkish .knife { position:absolute; bottom:30%; right:40%; width:4px; height:20px; background: linear-gradient(180deg, #a0a0a0 0%, #606060 100%); border-radius: 2px 2px 4px 4px; transform: rotate(30deg); box-shadow: 0 0 6px rgba(160,160,160,0.5); animation: cat-knife 2s ease-in-out infinite; }
.scn-carmen-angry-turkish .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); pointer-events: none; }
@keyframes cat-fade { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cat-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.9 } 30% { transform: scaleY(1.2) translateY(-3px); opacity:1 } 70% { transform: scaleY(0.85) translateY(2px); opacity:0.8 } 100% { transform: scaleY(1) translateY(0); opacity:0.9 } }
@keyframes cat-gipsy { 0% { transform: rotate(-10deg) translateX(0) scale(1); } 30% { transform: rotate(-15deg) translateX(5px) scale(1.05); } 60% { transform: rotate(-8deg) translateX(-2px) scale(0.95); } 100% { transform: rotate(-10deg) translateX(0) scale(1); } }
@keyframes cat-don { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(8deg) translateX(3px); } 100% { transform: rotate(3deg) translateX(-1px); } }
@keyframes cat-knife { 0% { transform: rotate(30deg) scale(1); } 30% { transform: rotate(35deg) scale(1.1); } 70% { transform: rotate(25deg) scale(0.9); } 100% { transform: rotate(30deg) scale(1); } }

.scn-carmen-plans-gibraltar-business {
  background: linear-gradient(180deg, #87CEEB 0%, #FFE4B5 50%, #F0C060 100%),
              radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 60%);
}
.scn-carmen-plans-gibraltar-business .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #5B9BD5 0%, #87CEEB 60%, transparent 100%);
  animation: cpb-sky 12s ease-in-out infinite alternate;
}
.scn-carmen-plans-gibraltar-business .sun {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #FFF8DC 0%, #FFD700 60%, transparent 70%);
  border-radius: 50%;
  animation: cpb-sun 8s ease-in-out infinite;
}
.scn-carmen-plans-gibraltar-business .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8B7355 0%, #6B5B45 50%, #4A3A2A 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  animation: cpb-hills 15s ease-in-out infinite alternate;
}
.scn-carmen-plans-gibraltar-business .figure-carmen {
  position: absolute; bottom: 28%; left: 45%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2C1810 0%, #1A0E0A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpb-figure-c 5s ease-in-out infinite;
}
.scn-carmen-plans-gibraltar-business .figure-jose {
  position: absolute; bottom: 28%; left: 55%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #3A2518 0%, #22140C 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpb-figure-j 5s ease-in-out infinite reverse;
}
.scn-carmen-plans-gibraltar-business .road {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #B8860B 0%, #8B6508 100%);
  border-radius: 30% 30% 0 0;
  animation: cpb-road 20s ease-in-out infinite alternate;
}
.scn-carmen-plans-gibraltar-business .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #228B22 0%, #006400 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: cpb-grass 10s ease-in-out infinite;
}
@keyframes cpb-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cpb-sun { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.92; } }
@keyframes cpb-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes cpb-figure-c { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cpb-figure-j { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-5px) rotate(-1deg); } 50% { transform: translateX(-10px) rotate(1deg); } 75% { transform: translateX(-5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cpb-road { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cpb-grass { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }

.scn-jose-seeks-carmen-gibraltar {
  background: linear-gradient(180deg, #FF8C00 0%, #FFD700 30%, #B8860B 100%),
              radial-gradient(ellipse at 50% 30%, #FFA500 0%, transparent 70%);
}
.scn-jose-seeks-carmen-gibraltar .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #D2691E 0%, #FF8C00 50%, transparent 100%);
  animation: jsc-sky 8s ease-in-out infinite alternate;
}
.scn-jose-seeks-carmen-gibraltar .sun-harsh {
  position: absolute; top: 10%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(circle, #FFE4B5 0%, #FFD700 60%, transparent 70%);
  border-radius: 50%;
  animation: jsc-sun 3s ease-in-out infinite;
}
.scn-jose-seeks-carmen-gibraltar .rocks {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(135deg, #5C4033 0%, #3E2723 40%, #2C1810 100%);
  clip-path: polygon(0% 20%, 15% 0%, 30% 15%, 50% 5%, 70% 20%, 85% 0%, 100% 15%, 100% 100%, 0% 100%);
  animation: jsc-rocks 12s ease-in-out infinite alternate;
}
.scn-jose-seeks-carmen-gibraltar .figure-jose {
  position: absolute; bottom: 30%; left: 45%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1A0E0A 0%, #0A0503 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jsc-figure 4s ease-in-out infinite;
}
.scn-jose-seeks-carmen-gibraltar .shadow {
  position: absolute; bottom: 26%; left: 42%; width: 30px; height: 8px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(3px);
  animation: jsc-shadow 4s ease-in-out infinite;
}
.scn-jose-seeks-carmen-gibraltar .cactus {
  position: absolute; bottom: 32%; left: 70%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #2E7D32 0%, #1B5E20 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-10deg);
  animation: jsc-cactus 10s ease-in-out infinite;
}
@keyframes jsc-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.84; } }
@keyframes jsc-sun { 0% { transform: scale(1); opacity: 0.95; } 30% { transform: scale(1.1); opacity: 1; } 60% { transform: scale(0.95); opacity: 0.9; } 100% { transform: scale(1.02); opacity: 0.92; } }
@keyframes jsc-rocks { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes jsc-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(-5px) rotate(-2deg); } 75% { transform: translateX(8px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes jsc-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); opacity: 0.6; } 100% { transform: scaleX(0.8); } }
@keyframes jsc-cactus { 0% { transform: rotate(-10deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-12deg); } }

.scn-fruit-seller-in-gibraltar {
  background: linear-gradient(180deg, #C19A6B 0%, #A0785A 50%, #7A5C3D 100%),
              radial-gradient(ellipse at 50% 100%, #8B7355 0%, transparent 60%);
}
.scn-fruit-seller-in-gibraltar .wall {
  position: absolute; inset: 40% 0 0 0;
  background: linear-gradient(180deg, #8B7355 0%, #6B5B45 100%);
  border-radius: 0 0 10% 10%;
  animation: fsg-wall 12s ease-in-out infinite alternate;
}
.scn-fruit-seller-in-gibraltar .window {
  position: absolute; top: 20%; right: 20%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #D2B48C 0%, #B8860B 100%);
  border: 4px solid #5C4033;
  border-radius: 4px;
  animation: fsg-window 8s ease-in-out infinite alternate;
}
.scn-fruit-seller-in-gibraltar .donkey {
  position: absolute; bottom: 12%; left: 30%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #808080 0%, #A9A9A9 50%, #696969 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fsg-donkey 5s ease-in-out infinite;
}
.scn-fruit-seller-in-gibraltar .figure-seller {
  position: absolute; bottom: 14%; left: 45%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2C1810 0%, #1A0E0A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fsg-figure 4s ease-in-out infinite;
}
.scn-fruit-seller-in-gibraltar .fruit-pile {
  position: absolute; bottom: 8%; left: 35%; width: 50px; height: 20px;
  background: radial-gradient(circle at 30% 50%, #FF8C00 0%, #FFA500 30%, #FFD700 60%, transparent 70%);
  border-radius: 50%;
  animation: fsg-fruit 6s ease-in-out infinite;
}
.scn-fruit-seller-in-gibraltar .sun-ray {
  position: absolute; top: 5%; left: 40%; width: 60px; height: 200px;
  background: linear-gradient(180deg, rgba(255,215,0,0.4) 0%, transparent 100%);
  transform: rotate(15deg);
  filter: blur(6px);
  animation: fsg-ray 10s linear infinite;
}
@keyframes fsg-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fsg-window { 0% { box-shadow: inset 0 0 10px #000; } 50% { box-shadow: inset 0 0 20px #000, 0 0 15px rgba(255,215,0,0.5); } 100% { box-shadow: inset 0 0 10px #000; } }
@keyframes fsg-donkey { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-8px) rotate(-2deg); } 100% { transform: translateX(0); } }
@keyframes fsg-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes fsg-fruit { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(0.98); } }
@keyframes fsg-ray { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

.scn-carmen-with-english-officer {
  background: linear-gradient(180deg, #4A2C4A 0%, #6B3A6B 40%, #8B5A8B 100%),
              radial-gradient(ellipse at 50% 30%, #DDA0DD 0%, transparent 70%);
}
.scn-carmen-with-english-officer .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4A2C4A 0%, #2C1A2C 100%);
  border-radius: 5%;
}
.scn-carmen-with-english-officer .window-dusk {
  position: absolute; top: 10%; right: 15%; width: 90px; height: 130px;
  background: linear-gradient(180deg, #1A0A2E 0%, #2C1A4A 40%, #4A2C6B 100%);
  border: 4px solid #C0A0C0;
  border-radius: 4px;
  animation: cwe-window 15s ease-in-out infinite alternate;
}
.scn-carmen-with-english-officer .lamp {
  position: absolute; top: 25%; left: 30%; width: 10px; height: 20px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,215,0,0.6), 0 0 60px 20px rgba(255,165,0,0.3);
  animation: cwe-lamp 4s ease-in-out infinite alternate;
}
.scn-carmen-with-english-officer .figure-carmen {
  position: absolute; bottom: 25%; left: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2C1A1A 0%, #1A0E0E 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwe-figure-c 6s ease-in-out infinite;
}
.scn-carmen-with-english-officer .figure-officer {
  position: absolute; bottom: 25%; left: 55%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #4A2C4A 0%, #2C1A2C 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwe-figure-o 6s ease-in-out infinite reverse;
}
.scn-carmen-with-english-officer .curtain {
  position: absolute; top: 0; right: 10%; width: 30px; height: 100%;
  background: linear-gradient(180deg, #8B5A8B 0%, #6B3A6B 100%);
  border-radius: 0 10% 10% 0;
  filter: blur(1px);
  animation: cwe-curtain 12s ease-in-out infinite alternate;
}
.scn-carmen-with-english-officer .table {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 10px;
  background: linear-gradient(90deg, #5C3A3A 0%, #2C1A1A 100%);
  border-radius: 2px;
  animation: cwe-table 8s ease-in-out infinite;
}
@keyframes cwe-window { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes cwe-lamp { 0% { opacity: 0.8; box-shadow: 0 0 20px 5px rgba(255,215,0,0.5); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,215,0,0.8); } 100% { opacity: 0.85; box-shadow: 0 0 25px 8px rgba(255,215,0,0.6); } }
@keyframes cwe-figure-c { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cwe-figure-o { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cwe-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes cwe-table { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }

.scn-carmen-at-cordova-fete {
  background: linear-gradient(180deg, #f6d3a0 0%, #e6b57a 30%, #c8945a 60%, #8a6a3a 100%),
              radial-gradient(ellipse at 50% 0%, #ffe6b0 0%, transparent 60%);
}
.scn-carmen-at-cordova-fete .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #fde8c0 0%, #f5c88a 50%, #daa85a 100%);
  animation: sky-cf 12s ease-in-out infinite alternate;
}
.scn-carmen-at-cordova-fete .sun {
  position:absolute; top:10%; left:70%; width:50px; height:50px;
  background: radial-gradient(circle, #ffe070 0%, #fcc040 50%, transparent 100%);
  border-radius:50%;
  animation: sun-cf 8s ease-in-out infinite;
}
.scn-carmen-at-cordova-fete .plaza {
  position:absolute; bottom:30%; left:5%; right:5%; height:20%;
  background: linear-gradient(180deg, #b8905a 0%, #8a6a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
  animation: plaza-cf 6s ease-in-out infinite alternate;
}
.scn-carmen-at-cordova-fete .bullring {
  position:absolute; bottom:30%; left:60%; width:100px; height:50px;
  background: linear-gradient(180deg, #a07848 0%, #705030 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.4);
}
.scn-carmen-at-cordova-fete .figure-carmen {
  position:absolute; bottom:28%; left:35%; width:20px; height:40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dance-cf 3s ease-in-out infinite;
}
.scn-carmen-at-cordova-fete .banner {
  position:absolute; bottom:32%; left:50%; width:60px; height:8px;
  background: linear-gradient(90deg, #c8553d 0%, #b84830 50%, #a03420 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: flag-cf 4s ease-in-out infinite;
}
.scn-carmen-at-cordova-fete .shadow {
  position:absolute; bottom:28%; left:30%; width:40px; height:8px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: shadow-cf 3s ease-in-out infinite;
}
@keyframes sky-cf {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes sun-cf {
  0%,100% { transform: scale(1); box-shadow: 0 0 30px 10px #ffe070; }
  50% { transform: scale(1.1); box-shadow: 0 0 50px 20px #ffd050; }
}
@keyframes plaza-cf {
  0% { transform: translateY(0); }
  100% { transform: translateY(-2px); }
}
@keyframes dance-cf {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(5deg); }
  75% { transform: translateX(-3px) rotate(-5deg); }
}
@keyframes flag-cf {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(10deg); }
  75% { transform: rotate(-10deg); }
}
@keyframes shadow-cf {
  0%,100% { transform: scaleX(1); opacity:0.3; }
  50% { transform: scaleX(1.2); opacity:0.5; }
}

/* ----- bull-avenges-jose ----- */
.scn-bull-avenges-jose {
  background: linear-gradient(180deg, #f8d89a 0%, #e8b86a 30%, #c89848 60%, #6a4a2a 100%),
              radial-gradient(ellipse at 50% 0%, #ffe8b0 0%, transparent 50%);
}
.scn-bull-avenges-jose .sky-ba {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #ffe0a0 0%, #f8c070 50%, #d8a050 100%);
  animation: sky-ba 10s ease-in-out infinite alternate;
}
.scn-bull-avenges-jose .sun-ba {
  position:absolute; top:5%; left:80%; width:60px; height:60px;
  background: radial-gradient(circle, #ffe080 0%, #fcb040 50%, transparent 100%);
  border-radius:50%;
  animation: sun-ba 6s ease-in-out infinite;
}
.scn-bull-avenges-jose .ground-ba {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #b08848 0%, #806030 30%, #5a3a1a 100%);
  border-radius: 30% 40% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,0.4);
}
.scn-bull-avenges-jose .bull {
  position:absolute; bottom:25%; left:40%; width:70px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: center bottom;
  animation: charge-ba 2s ease-in-out infinite;
}
.scn-bull-avenges-jose .figure-lucas {
  position:absolute; bottom:20%; left:60%; width:24px; height:36px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: fall-ba 3s ease-in-out infinite;
}
.scn-bull-avenges-jose .horse {
  position:absolute; bottom:22%; left:55%; width:50px; height:50px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-10deg);
  animation: horse-ba 2.5s ease-in-out infinite;
}
.scn-bull-avenges-jose .dust {
  position:absolute; bottom:15%; left:30%; width:80px; height:40px;
  background: radial-gradient(ellipse, rgba(200,160,80,0.5) 0%, transparent 70%);
  filter: blur(10px);
  animation: dust-ba 1.5s ease-in-out infinite alternate;
}
@keyframes sky-ba {
  0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.7; }
}
@keyframes sun-ba {
  0%,100% { transform: scale(1); box-shadow: 0 0 40px 15px #ffe080; }
  50% { transform: scale(1.15); box-shadow: 0 0 60px 25px #ffd060; }
}
@keyframes charge-ba {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(5deg); }
  75% { transform: translateX(-8px) rotate(-5deg); }
}
@keyframes fall-ba {
  0%,100% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(-25deg) translateX(5px); }
}
@keyframes horse-ba {
  0%,100% { transform: rotate(-10deg); }
  50% { transform: rotate(-20deg); }
}
@keyframes dust-ba {
  0% { transform: translateX(0) scaleX(1); opacity:0.5; }
  100% { transform: translateX(10px) scaleX(1.3); opacity:0.2; }
}

/* ----- carmen-foresees-her-death ----- */
.scn-carmen-foresees-her-death {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a4460 30%, #4c6a88 60%, #7a9ab0 100%),
              radial-gradient(ellipse at 50% 100%, #7a9ab0 0%, transparent 70%);
}
.scn-carmen-foresees-her-death .sky-cfd {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #1a3a5a 0%, #3a6a8a 50%, #6a9ab0 100%);
  animation: sky-cfd 15s ease-in-out infinite alternate;
}
.scn-carmen-foresees-her-death .dawn-glow {
  position:absolute; top:10%; left:40%; width:100px; height:60px;
  background: radial-gradient(ellipse, #ffcc80 0%, transparent 60%);
  border-radius:50%;
  filter: blur(15px);
  animation: dawn-cfd 12s ease-in-out infinite alternate;
}
.scn-carmen-foresees-her-death .road {
  position:absolute; bottom:20%; left:20%; right:20%; height:25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
.scn-carmen-foresees-her-death .hare {
  position:absolute; bottom:30%; left:30%; width:16px; height:20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hop-cfd 3s ease-in-out infinite;
}
.scn-carmen-foresees-her-death .figure-jose {
  position:absolute; bottom:22%; left:45%; width:22px; height:44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: walk-cfd 5s ease-in-out infinite;
}
.scn-carmen-foresees-her-death .figure-carmen-cfd {
  position:absolute; bottom:22%; left:55%; width:20px; height:42px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: walk-cfd 5s ease-in-out infinite reverse;
}
.scn-carmen-foresees-her-death .tree {
  position:absolute; bottom:25%; left:15%; width:30px; height:70px;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  animation: sway-cfd 8s ease-in-out infinite;
}
@keyframes sky-cfd {
  0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; }
}
@keyframes dawn-cfd {
  0% { transform: translateY(0) scale(1); opacity:0.3; }
  50% { transform: translateY(-5px) scale(1.2); opacity:0.6; }
  100% { transform: translateY(0) scale(1); opacity:0.4; }
}
@keyframes hop-cfd {
  0%,100% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(8px) translateY(-4px); }
  50% { transform: translateX(16px) translateY(0); }
  75% { transform: translateX(8px) translateY(-4px); }
}
@keyframes walk-cfd {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes sway-cfd {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
}

/* ----- jose-visits-hermit ----- */
.scn-jose-visits-hermit {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 30%, #3a2a1a 60%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-jose-visits-hermit .wall {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.8);
}
.scn-jose-visits-hermit .window-jh {
  position:absolute; top:10%; left:20%; width:60px; height:80px;
  background: radial-gradient(ellipse, #2a4a6a 0%, #0a1a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: window-jh 10s ease-in-out infinite alternate;
}
.scn-jose-visits-hermit .table {
  position:absolute; bottom:25%; left:25%; right:25%; height:10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.5);
}
.scn-jose-visits-hermit .candle {
  position:absolute; bottom:35%; left:45%; width:8px; height:30px;
  background: linear-gradient(180deg, #e8c888 0%, #c8a868 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px #c88848;
  animation: flicker-jh 2s ease-in-out infinite;
}
.scn-jose-visits-hermit .bowl {
  position:absolute; bottom:25%; left:50%; width:40px; height:16px;
  background: radial-gradient(ellipse, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: boil-jh 4s ease-in-out infinite;
}
.scn-jose-visits-hermit .hermit {
  position:absolute; bottom:20%; left:30%; width:24px; height:48px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pray-jh 6s ease-in-out infinite;
}
.scn-jose-visits-hermit .figure-jose-jh {
  position:absolute; bottom:20%; left:55%; width:22px; height:46px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: stand-jh 8s ease-in-out infinite;
}
.scn-jose-visits-hermit .magic-smoke {
  position:absolute; bottom:32%; left:48%; width:30px; height:40px;
  background: radial-gradient(ellipse, rgba(200,180,120,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: smoke-jh 5s ease-in-out infinite;
}
@keyframes window-jh {
  0% { opacity:0.4; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
  50% { opacity:0.7; box-shadow: inset 0 0 30px rgba(0,0,0,0.3); }
  100% { opacity:0.5; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
}
@keyframes flicker-jh {
  0%,100% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 20px 8px #c88848; }
  25% { transform: scaleY(1.05) scaleX(0.95); box-shadow: 0 0 25px 10px #d89858; }
  75% { transform: scaleY(0.95) scaleX(1.05); box-shadow: 0 0 15px 6px #b87838; }
}
@keyframes boil-jh {
  0%,100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.05) translateY(-2px); }
}
@keyframes pray-jh {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
}
@keyframes stand-jh {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes smoke-jh {
  0%,100% { transform: translateY(0) scale(1); opacity:0.3; }
  50% { transform: translateY(-10px) scale(1.5); opacity:0.1; }
}

.scn-jose-watches-for-carmen {
  background: linear-gradient(135deg, #1e1a2e 0%, #2c2535 30%, #3d3045 60%, #4a384a 100%),
              radial-gradient(ellipse at 80% 60%, #4a3040 0%, transparent 60%);
}
.scn-jose-watches-for-carmen .wall { position: absolute; inset: 20% 20% 10% 20%; background: linear-gradient(180deg, #463a3a 0%, #2e2424 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 40px rgba(0,0,0,.6); animation: jwc-wall 9s ease-in-out infinite alternate; }
.scn-jose-watches-for-carmen .door { position: absolute; bottom: 10%; right: 30%; width: 60px; height: 110px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2216 100%); border-radius: 4% 4% 10% 10% / 20% 20% 4% 4%; transform: skewY(1deg); box-shadow: 4px 0 12px rgba(0,0,0,.5); animation: jwc-door 1.5s ease-in-out infinite; }
.scn-jose-watches-for-carmen .figure-woman { position: absolute; bottom: 14%; right: 38%; width: 24px; height: 65px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(10deg); transform-origin: bottom center; animation: jwc-woman 4s ease-in-out infinite; }
.scn-jose-watches-for-carmen .figure-man { position: absolute; bottom: 12%; left: 30%; width: 22px; height: 60px; background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform: scaleX(-1); animation: jwc-man 4s ease-in-out infinite 0.5s; }
.scn-jose-watches-for-carmen .lamp { position: absolute; bottom: 42%; left: 52%; width: 8px; height: 14px; background: radial-gradient(circle, #e8c860 0%, #b89830 70%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 20px 8px #e8c860, 0 0 40px 16px rgba(232,200,96,.3); animation: jwc-lamp 4s ease-in-out infinite alternate; }
.scn-jose-watches-for-carmen .shadow.arch { position: absolute; inset: 30% 20% 10% 20%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 70%); border-radius: 50% 50% 0 0; box-shadow: 0 0 30px rgba(0,0,0,.7); }
.scn-jose-watches-for-carmen .dust { position: absolute; bottom: 10%; left: 40%; width: 40px; height: 20px; background: radial-gradient(ellipse, rgba(200,180,150,.15) 0%, transparent 80%); filter: blur(4px); animation: jwc-dust 6s ease-in-out infinite; }
.scn-jose-watches-for-carmen .star { position: absolute; top: 6%; left: 70%; width: 3px; height: 3px; background: #ffe0b0; box-shadow: 0 0 6px 2px rgba(255,224,176,.6); border-radius: 50%; animation: jwc-twinkle 3s ease-in-out infinite; }
.scn-jose-watches-for-carmen .star-2 { top: 12%; left: 20%; animation-delay: 1.5s; }
@keyframes jwc-wall { 0% { opacity: .8; transform: scale(1.01); } 50% { opacity: .9; } 100% { opacity: .7; transform: scale(1); } }
@keyframes jwc-door { 0%,100% { transform: skewY(1deg); } 50% { transform: skewY(0deg) translateX(-1px); } }
@keyframes jwc-woman { 0%,100% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(8deg) translateX(3px); } }
@keyframes jwc-man { 0%,100% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-2px); } }
@keyframes jwc-lamp { 0% { box-shadow: 0 0 16px 6px #e8c860; opacity: .8; } 50% { box-shadow: 0 0 30px 12px #f0d870; opacity: 1; } 100% { box-shadow: 0 0 20px 8px #e8c860; opacity: .85; } }
@keyframes jwc-dust { 0%,100% { transform: translateY(0) scale(1); opacity: .3; } 50% { transform: translateY(-8px) scale(1.2); opacity: .5; } }
@keyframes jwc-twinkle { 0%,100% { opacity: .3; } 50% { opacity: 1; transform: scale(1.3); } }

.scn-lillas-pastia-at-the-gate {
  background: linear-gradient(180deg, #2a2a3e 0%, #3e3a4a 40%, #5a505a 80%, #4a444a 100%),
              radial-gradient(ellipse at 50% 30%, #5a505a 0%, transparent 70%);
}
.scn-lillas-pastia-at-the-gate .gate-post.left { position: absolute; bottom: 20%; left: 25%; width: 16px; height: 80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 4px 0 10px rgba(0,0,0,.4); animation: lpg-post 3s ease-in-out infinite; }
.scn-lillas-pastia-at-the-gate .gate-post.right { position: absolute; bottom: 20%; right: 25%; width: 16px; height: 80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 4% 4%; animation: lpg-post 3s ease-in-out infinite 0.2s; }
.scn-lillas-pastia-at-the-gate .wall-top { position: absolute; bottom: 50%; left: 20%; right: 20%; height: 30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: lpg-wall 12s ease-in-out infinite alternate; }
.scn-lillas-pastia-at-the-gate .breach { position: absolute; bottom: 30%; left: 38%; right: 38%; height: 40px; background: linear-gradient(180deg, #1e1a1a 0%, #2a2222 100%); border-radius: 0 0 30% 30% / 40% 40%; box-shadow: inset 0 10px 20px rgba(0,0,0,.8); animation: lpg-breach 5s ease-in-out infinite; }
.scn-lillas-pastia-at-the-gate .guard { position: absolute; bottom: 18%; left: 45%; width: 20px; height: 55px; background: linear-gradient(180deg, #2a2a3a 0%, #10101a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%; transform: scaleX(-1); animation: lpg-guard 4s ease-in-out infinite; }
.scn-lillas-pastia-at-the-gate .sergeant { position: absolute; bottom: 20%; left: 32%; width: 22px; height: 50px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(1); animation: lpg-sergeant 6s ease-in-out infinite; }
.scn-lillas-pastia-at-the-gate .tool-pile { position: absolute; bottom: 25%; left: 60%; width: 30px; height: 20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 2px 2px 8px rgba(0,0,0,.5); animation: lpg-tools 7s ease-in-out infinite; }
.scn-lillas-pastia-at-the-gate .shadow-breach { position: absolute; bottom: 28%; left: 34%; right: 34%; height: 50px; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 80%); border-radius: 0 0 50% 50%; filter: blur(6px); animation: lpg-shadow 4s ease-in-out infinite alternate; }
@keyframes lpg-post { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(0.5deg); } }
@keyframes lpg-wall { 0% { opacity: .9; } 50% { opacity: .7; } 100% { opacity: .85; } }
@keyframes lpg-breach { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } }
@keyframes lpg-guard { 0%,100% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-3px) rotate(-2deg); } }
@keyframes lpg-sergeant { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(1deg); } }
@keyframes lpg-tools { 0%,100% { transform: scale(1); } 50% { transform: scale(0.95) rotate(-2deg); } }
@keyframes lpg-shadow { 0% { opacity: .5; } 100% { opacity: .8; } }

.scn-carmen-appears-at-breach {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5a 30%, #3a3a6a 60%, #2a2a4a 100%),
              radial-gradient(ellipse at 50% 90%, #3a3a6a 0%, transparent 70%);
}
.scn-carmen-appears-at-breach .sky-night { position: absolute; inset: 0; background: linear-gradient(180deg, #12122a 0%, #1a1a3a 40%, #2a2a5a 100%); animation: cab-sky 15s ease-in-out infinite alternate; }
.scn-carmen-appears-at-breach .wall-breach { position: absolute; bottom: 20%; left: 30%; right: 30%; height: 120px; background: linear-gradient(180deg, #3a2e2e 0%, #1e1a1a 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; box-shadow: inset 0 20px 40px rgba(0,0,0,.6); animation: cab-wall 8s ease-in-out infinite; }
.scn-carmen-appears-at-breach .figure-approaching { position: absolute; bottom: 15%; left: 45%; width: 20px; height: 55px; background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg); transform-origin: bottom center; animation: cab-figure 5s ease-in-out infinite; }
.scn-carmen-appears-at-breach .moon { position: absolute; top: 8%; right: 20%; width: 30px; height: 30px; background: radial-gradient(circle, #e8e0d0 0%, #c8c0b0 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(200,200,200,.15); animation: cab-moon 18s linear infinite; }
.scn-carmen-appears-at-breach .shadow-breach { position: absolute; bottom: 25%; left: 23%; right: 23%; height: 80px; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); border-radius: 50% 50% 0 0; filter: blur(12px); animation: cab-shadow 6s ease-in-out infinite alternate; }
.scn-carmen-appears-at-breach .dress-hem { position: absolute; bottom: 14%; left: 42%; width: 28px; height: 10px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%; transform: rotate(8deg); animation: cab-hem 4s ease-in-out infinite; }
.scn-carmen-appears-at-breach .hand-out { position: absolute; bottom: 25%; left: 48%; width: 8px; height: 12px; background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-20deg); transform-origin: bottom left; animation: cab-hand 3s ease-in-out infinite; }
@keyframes cab-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes cab-wall { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } }
@keyframes cab-figure { 0%,100% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(4px); } }
@keyframes cab-moon { 0% { transform: translateX(0); } 100% { transform: translateX(-30px); } }
@keyframes cab-shadow { 0% { opacity: .3; filter: blur(8px); } 100% { opacity: .6; filter: blur(14px); } }
@keyframes cab-hem { 0%,100% { transform: rotate(8deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } }
@keyframes cab-hand { 0%,100% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-4px); } }

.scn-carmen-bribes-for-smugglers {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5a 40%, #3a3a6a 80%, #2a2a4a 100%),
              radial-gradient(ellipse at 50% 30%, #4a4a7a 0%, transparent 60%);
}
.scn-carmen-bribes-for-smugglers .moonlight-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #12122a 0%, #1a1a3a 50%, #2a2a5a 100%); animation: cbs-bg 20s ease-in-out infinite alternate; }
.scn-carmen-bribes-for-smugglers .wall-arch { position: absolute; bottom: 15%; left: 20%; right: 20%; height: 140px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%; box-shadow: inset 0 20px 40px rgba(0,0,0,.7); animation: cbs-wall 7s ease-in-out infinite; }
.scn-carmen-bribes-for-smugglers .guard-silhouette { position: absolute; bottom: 20%; left: 35%; width: 22px; height: 60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform: scaleX(1); animation: cbs-guard 4s ease-in-out infinite; }
.scn-carmen-bribes-for-smugglers .woman-silhouette { position: absolute; bottom: 20%; left: 50%; width: 20px; height: 55px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: cbs-woman 5s ease-in-out infinite 0.5s; }
.scn-carmen-bribes-for-smugglers .bundle { position: absolute; bottom: 28%; left: 40%; width: 30px; height: 20px; background: linear-gradient(135deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%; box-shadow: 2px 2px 10px rgba(0,0,0,.5); animation: cbs-bundle 6s ease-in-out infinite; }
.scn-carmen-bribes-for-smugglers .coin-hand { position: absolute; bottom: 30%; left: 48%; width: 10px; height: 14px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(-15deg); transform-origin: bottom left; animation: cbs-hand 3s ease-in-out infinite; }
.scn-carmen-bribes-for-smugglers .shadow-pool { position: absolute; bottom: 12%; left: 30%; right: 30%; height: 40px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 80%); filter: blur(8px); animation: cbs-shadow 5s ease-in-out infinite alternate; }
.scn-carmen-bribes-for-smugglers .star.small { position: absolute; top: 10%; left: 70%; width: 2px; height: 2px; background: #d0d0ff; box-shadow: 0 0 4px 1px rgba(200,200,255,.5); border-radius: 50%; animation: cbs-star 4s ease-in-out infinite; }
.scn-carmen-bribes-for-smugglers .star.small-2 { top: 6%; left: 15%; animation-delay: 2s; }
@keyframes cbs-bg { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes cbs-wall { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes cbs-guard { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(-1deg); } }
@keyframes cbs-woman { 0%,100% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(-4px); } }
@keyframes cbs-bundle { 0%,100% { transform: scale(1) rotate(0); } 50% { transform: scale(0.95) rotate(3deg); } }
@keyframes cbs-hand { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-2px); } }
@keyframes cbs-shadow { 0% { opacity: .3; filter: blur(6px); } 100% { opacity: .5; filter: blur(10px); } }
@keyframes cbs-star { 0%,100% { opacity: .3; } 50% { opacity: .8; transform: scale(1.4); } }

/* Scene 1: arriving-wretched-venta */
.scn-arriving-wretched-venta {
  background:
    linear-gradient(180deg, #1a120e 0%, #2a1f18 40%, #1e1611 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-arriving-wretched-venta .bg { position:absolute; inset:0; background:radial-gradient(ellipse at 40% 60%, #2a1f18 0%, transparent 80%); animation: av-bg 8s ease-in-out infinite alternate; }
.scn-arriving-wretched-venta .wall { position:absolute; left:0; top:0; width:35%; height:100%; background:linear-gradient(180deg, #3d2e1e 0%, #2a1f18 100%); box-shadow:inset -20px 0 30px rgba(0,0,0,.6); animation: av-wall 12s ease-in-out infinite; }
.scn-arriving-wretched-venta .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(0deg, #1a120e 0%, #2a1f18 100%); border-radius:50% 50% 0 0 / 30% 30% 0 0; transform:scaleY(0.6); transform-origin:bottom; animation: av-floor 15s ease-in-out infinite alternate; }
.scn-arriving-wretched-venta .figure-old { position:absolute; bottom:25%; left:20%; width:30px; height:60px; background:linear-gradient(180deg, #1a120e 0%, #0a0806 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: av-fig-old 6s ease-in-out infinite; }
.scn-arriving-wretched-venta .figure-child { position:absolute; bottom:28%; left:28%; width:20px; height:40px; background:linear-gradient(180deg, #1a120e 0%, #0a0806 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: av-fig-child 5s ease-in-out infinite 0.5s; }
.scn-arriving-wretched-venta .candle { position:absolute; bottom:42%; left:50%; width:8px; height:14px; background:linear-gradient(180deg, #f0c060 0%, #b08030 100%); border-radius:10%; box-shadow:0 0 20px 6px #d09040, 0 0 40px 12px rgba(200,140,60,.3); animation: av-candle 2s ease-in-out infinite alternate; }
.scn-arriving-wretched-venta .shadow { position:absolute; bottom:0; left:10%; width:80%; height:50%; background:radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%); animation: av-shadow 10s ease-in-out infinite alternate; }

@keyframes av-bg { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes av-wall { 0%,100% { transform:scaleX(1) } 50% { transform:scaleX(0.97) } }
@keyframes av-floor { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes av-fig-old { 0%,100% { transform:translateY(0) rotate(-1deg) } 25% { transform:translateY(-2px) rotate(0.5deg) } 50% { transform:translateY(0) rotate(1deg) } 75% { transform:translateY(-1px) rotate(-0.5deg) } }
@keyframes av-fig-child { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) rotate(2deg) } }
@keyframes av-candle { 0% { transform:scaleY(1) scaleX(1); opacity:.9 } 50% { transform:scaleY(1.05) scaleX(0.95); opacity:1 } 100% { transform:scaleY(0.95) scaleX(1.05); opacity:.8 } }
@keyframes av-shadow { 0%,100% { opacity:.4 } 50% { opacity:.6 } }

/* Scene 2: old-woman-recognizes-jose */
.scn-old-woman-recognizes-jose {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1f2e 40%, #1e1622 100%),
    radial-gradient(ellipse at 30% 70%, #3a2a3a 0%, transparent 60%);
}
.scn-old-woman-recognizes-jose .bg { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.6) 0%, transparent 80%); animation: wr-bg 10s ease-in-out infinite alternate; }
.scn-old-woman-recognizes-jose .lamp { position:absolute; top:15%; left:45%; width:12px; height:20px; background:radial-gradient(circle, #e0c060 0%, #b08030 70%); border-radius:30%; box-shadow:0 0 30px 10px #c09040, 0 0 60px 20px rgba(200,140,60,.3); animation: wr-lamp 3s ease-in-out infinite alternate; }
.scn-old-woman-recognizes-jose .shadow { position:absolute; bottom:0; left:0; width:100%; height:60%; background:linear-gradient(0deg, rgba(0,0,0,.8) 0%, transparent 100%); animation: wr-shadow 8s ease-in-out infinite; }
.scn-old-woman-recognizes-jose .old-woman { position:absolute; bottom:25%; left:18%; width:28px; height:55px; background:linear-gradient(180deg, #1a1212 0%, #0a0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: wr-point 4s ease-in-out infinite; }
.scn-old-woman-recognizes-jose .don-jose { position:absolute; bottom:22%; left:45%; width:30px; height:65px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: wr-hand 3s ease-in-out infinite 0.3s; }
.scn-old-woman-recognizes-jose .narrator { position:absolute; bottom:28%; right:15%; width:25px; height:50px; background:linear-gradient(180deg, #1a1620 0%, #0a0a14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: wr-watch 5s ease-in-out infinite 1s; }

@keyframes wr-bg { 0%,100% { opacity:.7 } 50% { opacity:.9 } }
@keyframes wr-lamp { 0% { transform:rotate(-2deg); box-shadow:0 0 20px 8px #c09040 } 50% { transform:rotate(2deg); box-shadow:0 0 40px 15px #d0a050 } 100% { transform:rotate(-1deg); box-shadow:0 0 25px 10px #b08030 } }
@keyframes wr-shadow { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-5px) } }
@keyframes wr-point { 0%,100% { transform:translateY(0) rotate(0) } 25% { transform:translateY(0) rotate(10deg) } 50% { transform:translateY(-2px) rotate(0) } 75% { transform:translateY(0) rotate(-5deg) } }
@keyframes wr-hand { 0%,100% { transform:translateY(0) rotate(0) } 30% { transform:translateY(-3px) rotate(-15deg) } 60% { transform:translateY(0) rotate(5deg) } }
@keyframes wr-watch { 0%,100% { transform:translateY(0) scale(1) } 50% { transform:translateY(0) scale(0.95) } }

/* Scene 3: don-jose-sings-mandolin */
.scn-don-jose-sings-mandolin {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #1a120a 100%),
    radial-gradient(ellipse at 50% 80%, #5a3a20 0%, transparent 70%);
}
.scn-don-jose-sings-mandolin .bg { position:absolute; inset:0; background:radial-gradient(ellipse at 30% 70%, #4a2a18 0%, transparent 80%); animation: dj-bg 15s ease-in-out infinite alternate; }
.scn-don-jose-sings-mandolin .fire { position:absolute; bottom:10%; left:35%; width:40px; height:60px; background:radial-gradient(ellipse at 50% 100%, #ffa040 0%, #d06020 40%, transparent 70%); border-radius:50%; filter:blur(2px); animation: dj-fire 2s ease-in-out infinite alternate; }
.scn-don-jose-sings-mandolin .figure { position:absolute; bottom:20%; left:50%; width:35px; height:70px; background:linear-gradient(180deg, #1a120e 0%, #0a0806 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); transform-origin:bottom; animation: dj-figure 4s ease-in-out infinite; }
.scn-don-jose-sings-mandolin .mandolin { position:absolute; bottom:30%; left:48%; width:20px; height:14px; background:linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:50% 50% 30% 30% / 40% 40% 60% 60%; transform:translateX(-50%) rotate(-20deg); animation: dj-mandolin 2s ease-in-out infinite 0.5s; }
.scn-don-jose-sings-mandolin .glow { position:absolute; bottom:15%; left:calc(50% - 20px); width:40px; height:70px; background:radial-gradient(ellipse at 50% 50%, rgba(255,160,60,.3) 0%, transparent 70%); animation: dj-glow 4s ease-in-out infinite alternate; }
.scn-don-jose-sings-mandolin .shadow { position:absolute; bottom:0; left:20%; width:60%; height:40%; background:linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%); animation: dj-shadow 8s ease-in-out infinite; }

@keyframes dj-bg { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes dj-fire { 0% { transform:scale(0.9) rotate(-3deg); opacity:.8 } 50% { transform:scale(1.1) rotate(3deg); opacity:1 } 100% { transform:scale(0.95) rotate(0); opacity:.9 } }
@keyframes dj-figure { 0%,100% { transform:translateX(-50%) rotate(0) } 25% { transform:translateX(-50%) rotate(2deg) } 50% { transform:translateX(-50%) rotate(-1deg) } 75% { transform:translateX(-50%) rotate(1deg) } }
@keyframes dj-mandolin { 0%,100% { transform:translateX(-50%) rotate(-20deg) scale(1) } 50% { transform:translateX(-50%) rotate(-15deg) scale(0.95) } }
@keyframes dj-glow { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes dj-shadow { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }

/* Scene 4: item-mandolin-song-basque */
.scn-item-mandolin-song-basque {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #1a120a 100%),
    radial-gradient(ellipse at 50% 50%, #4a2a18 0%, transparent 70%);
}
.scn-item-mandolin-song-basque .bg { position:absolute; inset:0; background:radial-gradient(ellipse at 40% 60%, rgba(0,0,0,.4) 0%, transparent 80%); animation: mb-bg 12s ease-in-out infinite alternate; }
.scn-item-mandolin-song-basque .mandolin { position:absolute; bottom:30%; left:50%; width:60px; height:40px; background:linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:50% 50% 30% 30% / 40% 40% 60% 60%; transform:translateX(-50%) rotate(-10deg); box-shadow:inset 0 -4px 8px rgba(0,0,0,.5); animation: mb-mandolin 3s ease-in-out infinite; }
.scn-item-mandolin-song-basque .hand { position:absolute; bottom:38%; left:42%; width:18px; height:26px; background:linear-gradient(180deg, #1a120e 0%, #0a0806 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(30deg); animation: mb-hand 1.5s ease-in-out infinite alternate; }
.scn-item-mandolin-song-basque .glow { position:absolute; bottom:25%; left:calc(50% - 30px); width:60px; height:80px; background:radial-gradient(ellipse at 50% 50%, rgba(255,160,60,.3) 0%, transparent 70%); animation: mb-glow 3s ease-in-out infinite alternate; }
.scn-item-mandolin-song-basque .note { position:absolute; border-radius:50%; filter:blur(2px); background:radial-gradient(circle, #e0a050 0%, transparent 70%); }
.scn-item-mandolin-song-basque .note-1 { width:10px; height:10px; bottom:60%; left:55%; animation: mb-note1 5s linear infinite; }
.scn-item-mandolin-song-basque .note-2 { width:8px; height:8px; bottom:65%; left:45%; animation: mb-note2 6s linear infinite 1s; }
.scn-item-mandolin-song-basque .note-3 { width:6px; height:6px; bottom:70%; left:50%; animation: mb-note3 7s linear infinite 2s; }

@keyframes mb-bg { 0%,100% { opacity:.7 } 50% { opacity:.9 } }
@keyframes mb-mandolin { 0%,100% { transform:translateX(-50%) rotate(-10deg) scale(1) } 50% { transform:translateX(-50%) rotate(-8deg) scale(0.98) } }
@keyframes mb-hand { 0% { transform:rotate(30deg) translateY(0) } 100% { transform:rotate(20deg) translateY(-4px) } }
@keyframes mb-glow { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes mb-note1 { 0% { transform:translateY(0) translateX(0) scale(1); opacity:.8 } 100% { transform:translateY(-60px) translateX(30px) scale(0.3); opacity:0 } }
@keyframes mb-note2 { 0% { transform:translateY(0) translateX(0) scale(1); opacity:.8 } 100% { transform:translateY(-70px) translateX(-20px) scale(0.4); opacity:0 } }
@keyframes mb-note3 { 0% { transform:translateY(0) translateX(0) scale(1); opacity:.8 } 100% { transform:translateY(-80px) translateX(10px) scale(0.2); opacity:0 } }

.scn-twilight-on-quay {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 40%, #3a3a5e 70%, #4a4a6e 100%),
    radial-gradient(ellipse at 50% 100%, #6a5a7a 0%, transparent 70%);
}
.scn-twilight-on-quay .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3a5e 0%, transparent 100%);
  animation: twq-sky 15s ease-in-out infinite alternate;
}
.scn-twilight-on-quay .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a1a2a 0%, #2a2a4a 50%, #3a3a5a 100%);
  animation: twq-river 20s ease-in-out infinite;
}
.scn-twilight-on-quay .quay-wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
  animation: twq-wall 12s ease-in-out infinite alternate;
}
.scn-twilight-on-quay .parapet {
  position: absolute; bottom: 33%; left: 10%; width: 80%; height: 4px;
  background: #5a4a3a;
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-twilight-on-quay .lamp {
  position: absolute; bottom: 40%; left: 20%; width: 10px; height: 20px;
  background: #3a2a1a;
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: twq-lamp-sway 6s ease-in-out infinite;
}
.scn-twilight-on-quay .lamp.glow {
  position: absolute; bottom: 42%; left: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0c068 0%, #b08040 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(176,128,64,0.5), 0 0 80px 20px rgba(176,128,64,0.2);
  animation: twq-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-twilight-on-quay .figure-silhouette {
  position: absolute; bottom: 30%; left: 15%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: twq-figure 8s ease-in-out infinite;
}
.scn-twilight-on-quay .reflection {
  position: absolute; bottom: 10%; left: 15%; width: 30px; height: 30px;
  background: radial-gradient(ellipse, rgba(240,192,104,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: twq-reflect 4s ease-in-out infinite alternate;
}
.scn-twilight-on-quay .star-a,
.scn-twilight-on-quay .star-b {
  position: absolute; width: 3px; height: 3px;
  background: white;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,0.5);
  animation: twq-twinkle 3s ease-in-out infinite;
}
.scn-twilight-on-quay .star-a { top: 12%; left: 30%; }
.scn-twilight-on-quay .star-b { top: 20%; right: 40%; animation-delay: 1.5s; }

@keyframes twq-sky { 0%,100% { opacity: 0.8 } 50% { opacity: 1 } }
@keyframes twq-river { 0%,100% { background-position: 0 0 } 50% { background-position: -20px 10px } }
@keyframes twq-wall { 0% { height: 11% } 100% { height: 13% } }
@keyframes twq-lamp-sway { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes twq-lamp-glow { 0% { opacity: 0.6; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.8; transform: scale(1) } }
@keyframes twq-figure { 0%,100% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-3deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(-4px) } 75% { transform: rotate(3deg) translateY(-2px) } }
@keyframes twq-reflect { 0% { opacity: 0.2; transform: scale(0.8) } 100% { opacity: 0.6; transform: scale(1.2) } }
@keyframes twq-twinkle { 0%,100% { opacity: 0.4; transform: scale(0.8) } 50% { opacity: 1; transform: scale(1.2) } }

.scn-meeting-carmen-quay {
  background:
    linear-gradient(180deg, #0e0e2a 0%, #1a1a3a 40%, #2a1a3a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a4a 0%, transparent 70%);
}
.scn-meeting-carmen-quay .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%);
  animation: mcq-sky 20s ease-in-out infinite alternate;
}
.scn-meeting-carmen-quay .stars {
  position: absolute; inset: 0 0 50% 0;
  background: radial-gradient(circle at 20% 20%, white 1px, transparent 1px),
              radial-gradient(circle at 70% 10%, white 1px, transparent 1px),
              radial-gradient(circle at 40% 40%, white 0.5px, transparent 1px),
              radial-gradient(circle at 85% 25%, white 0.8px, transparent 1px);
  background-size: 50px 50px, 100px 100px, 80px 80px, 60px 60px;
  animation: mcq-stars 25s linear infinite;
}
.scn-meeting-carmen-quay .figure-woman {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mcq-figure 10s ease-in-out infinite;
}
.scn-meeting-carmen-quay .figure-woman.profile {
  width: 30px; height: 80px;
  border-radius: 40% 50% 40% 40% / 50% 60% 40% 40%;
  left: 42%;
}
.scn-meeting-carmen-quay .mantilla {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 10% 10%;
  transform-origin: top center;
  animation: mcq-mantilla 6s ease-in-out infinite;
}
.scn-meeting-carmen-quay .jasmine-glow {
  position: absolute; bottom: 50%; left: 44%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0e0a0 0%, #d0c080 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(240,224,160,0.4), 0 0 60px 15px rgba(240,224,160,0.2);
  animation: mcq-glow 4s ease-in-out infinite alternate;
}
.scn-meeting-carmen-quay .jasmine-cluster {
  position: absolute; bottom: 50%; left: 44%; width: 8px; height: 8px;
  background: radial-gradient(ellipse, #f0e0a0 0%, #b8a060 100%);
  border-radius: 50%;
  animation: mcq-jasmine 5s ease-in-out infinite;
}
.scn-meeting-carmen-quay .moon {
  position: absolute; top: 15%; left: 70%; width: 25px; height: 25px;
  background: radial-gradient(circle, #e0e0f0 0%, #c0c0d0 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(192,192,208,0.3);
  animation: mcq-moon 12s ease-in-out infinite alternate;
}
.scn-meeting-carmen-quay .breath-mist {
  position: absolute; bottom: 40%; left: 38%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,200,220,0.15) 0%, transparent 70%);
  filter: blur(5px);
  animation: mcq-breath 4s ease-in-out infinite;
}

@keyframes mcq-sky { 0%,100% { opacity: 0.7 } 50% { opacity: 1 } }
@keyframes mcq-stars { 0% { transform: translateY(0) } 100% { transform: translateY(-30px) } }
@keyframes mcq-figure { 0%,100% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } }
@keyframes mcq-mantilla { 0%,100% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(-5deg) scale(0.95) } }
@keyframes mcq-glow { 0% { opacity: 0.5; transform: scale(0.9) } 100% { opacity: 1; transform: scale(1.2) } }
@keyframes mcq-jasmine { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes mcq-moon { 0% { transform: translateY(0) } 100% { transform: translateY(-5px) } }
@keyframes mcq-breath { 0%,100% { opacity: 0.1; transform: translateX(0) } 50% { opacity: 0.3; transform: translateX(10px) } }

.scn-sharing-cigars-on-quay {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 30%, #3a2a1a 60%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-sharing-cigars-on-quay .dusk-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 100%);
  animation: scq-sky 15s ease-in-out infinite alternate;
}
.scn-sharing-cigars-on-quay .river-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0a0a1a 0%, #1a1a2a 100%);
  animation: scq-river 18s ease-in-out infinite;
}
.scn-sharing-cigars-on-quay .quay-stone {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 5px 12px rgba(0,0,0,0.6);
}
.scn-sharing-cigars-on-quay .parapet-front {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 5px;
  background: #4a3a2a;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-sharing-cigars-on-quay .figure-left {
  position: absolute; bottom: 26%; left: 20%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: scq-left 7s ease-in-out infinite;
}
.scn-sharing-cigars-on-quay .figure-right {
  position: absolute; bottom: 26%; right: 20%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: scq-right 7s ease-in-out infinite;
}
.scn-sharing-cigars-on-quay .cigar-glow-left {
  position: absolute; bottom: 40%; left: 22%; width: 6px; height: 6px;
  background: radial-gradient(circle, #d06020 0%, #b84010 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,80,20,0.6), 0 0 24px 8px rgba(200,80,20,0.3);
  animation: scq-glow 2s ease-in-out infinite;
}
.scn-sharing-cigars-on-quay .cigar-glow-right {
  position: absolute; bottom: 40%; right: 22%; width: 6px; height: 6px;
  background: radial-gradient(circle, #d06020 0%, #b84010 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,80,20,0.6), 0 0 24px 8px rgba(200,80,20,0.3);
  animation: scq-glow 2.5s ease-in-out infinite;
}
.scn-sharing-cigars-on-quay .smoke-1,
.scn-sharing-cigars-on-quay .smoke-2 {
  position: absolute; bottom: 45%; left: 30%; width: 30px; height: 40px;
  background: radial-gradient(ellipse, rgba(180,160,140,0.15) 0%, transparent 70%);
  filter: blur(6px);
  animation: scq-smoke 8s ease-in-out infinite;
}
.scn-sharing-cigars-on-quay .smoke-2 { left: auto; right: 30%; animation-delay: 3s; }

@keyframes scq-sky { 0%,100% { opacity: 0.7 } 50% { opacity: 0.9 } }
@keyframes scq-river { 0%,100% { background-position: 0 0 } 50% { background-position: -15px 8px } }
@keyframes scq-left { 0%,100% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-4deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(-4px) } 75% { transform: rotate(4deg) translateY(-2px) } }
@keyframes scq-right { 0%,100% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(4deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(-4px) } 75% { transform: rotate(-4deg) translateY(-2px) } }
@keyframes scq-glow { 0%,100% { opacity: 0.6; transform: scale(0.8) } 50% { opacity: 1; transform: scale(1.3) } }
@keyframes scq-smoke { 0% { opacity: 0; transform: translateY(0) scale(0.5) } 50% { opacity: 0.6; transform: translateY(-30px) scale(1.2) } 100% { opacity: 0; transform: translateY(-60px) scale(1.5) } }

.scn-item-repeater-watch {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #3a2a2a 60%, #2a1a1a 100%),
    radial-gradient(circle at 50% 50%, #4a3a3a 0%, transparent 70%);
}
.scn-item-repeater-watch .room-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%);
  animation: irw-wall 20s ease-in-out infinite alternate;
}
.scn-item-repeater-watch .table-top {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: irw-table 12s ease-in-out infinite;
}
.scn-item-repeater-watch .watch-body {
  position: absolute; bottom: 28%; left: 45%; width: 40px; height: 50px;
  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,0.6);
  animation: irw-watch 8s ease-in-out infinite;
}
.scn-item-repeater-watch .watch-face {
  position: absolute; bottom: 32%; left: 47%; width: 26px; height: 30px;
  background: radial-gradient(circle, #e0e0c0 0%, #c0c0a0 60%, #a0a080 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(224,224,192,0.4);
  animation: irw-face 3s ease-in-out infinite;
}
.scn-item-repeater-watch .watch-chain {
  position: absolute; bottom: 38%; left: 48%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: irw-chain 6s ease-in-out infinite;
}
.scn-item-repeater-watch .hand-shadow {
  position: absolute; bottom: 30%; left: 35%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: irw-shadow 10s ease-in-out infinite;
}
.scn-item-repeater-watch .curtain {
  position: absolute; top: 0; bottom: 0; width: 30%;
  background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 0 10% 10% 0 / 0 50% 50% 0;
  animation: irw-curtain 15s ease-in-out infinite alternate;
}
.scn-item-repeater-watch .curtain.left { left: 0; transform-origin: left center; }
.scn-item-repeater-watch .curtain.right { right: 0; border-radius: 10% 0 0 10% / 50% 0 0 50%; transform-origin: right center; }

@keyframes irw-wall { 0%,100% { opacity: 0.8 } 50% { opacity: 1 } }
@keyframes irw-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes irw-watch { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(3deg) } 50% { transform: rotate(-3deg) } 75% { transform: rotate(2deg) } }
@keyframes irw-face { 0% { box-shadow: 0 0 15px 4px rgba(224,224,192,0.3); opacity: 0.9 } 50% { box-shadow: 0 0 30px 10px rgba(224,224,192,0.6); opacity: 1 } 100% { box-shadow: 0 0 20px 6px rgba(224,224,192,0.4); opacity: 0.95 } }
@keyframes irw-chain { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } }
@keyframes irw-shadow { 0%,100% { opacity: 0.3; transform: scale(0.9) } 50% { opacity: 0.7; transform: scale(1.1) } }
@keyframes irw-curtain { 0% { transform: scaleX(1) } 100% { transform: scaleX(0.95) } }

.scn-jose-jealous-of-milord {
  background: linear-gradient(180deg, #1a0e0a 0%, #3a2218 40%, #2a1810 100%),
              radial-gradient(ellipse at 30% 60%, #5a3a28 0%, transparent 70%);
}
.scn-jose-jealous-of-milord .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #2a1a12 0%, #4a3222 50%, #2a1a12 100%);
  animation: jjm-wall 12s ease-in-out infinite alternate;
}
.scn-jose-jealous-of-milord .table {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1810 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-jose-jealous-of-milord .lamp {
  position: absolute; bottom: 55%; left: 48%; width: 12px; height: 16px;
  background: radial-gradient(circle, #d4a060 0%, #b08040 60%, #6a4020 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px #b08040;
  animation: jjm-lamp 3s ease-in-out infinite alternate;
}
.scn-jose-jealous-of-milord .figure-jose {
  position: absolute; bottom: 22%; left: 32%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jjm-jose 2s ease-in-out infinite;
}
.scn-jose-jealous-of-milord .figure-carmen {
  position: absolute; bottom: 22%; right: 32%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jjm-carmen 2.5s ease-in-out infinite 0.5s;
}
.scn-jose-jealous-of-milord .shadow-jose {
  position: absolute; bottom: 18%; left: 28%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: jjm-shadow 2s ease-in-out infinite;
}
.scn-jose-jealous-of-milord .glow-lamp {
  position: absolute; bottom: 55%; left: 48%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(180,120,60,0.4) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: jjm-glow 4s ease-in-out infinite alternate;
}
@keyframes jjm-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes jjm-lamp { 0% { box-shadow: 0 0 15px 5px #b08040; } 50% { box-shadow: 0 0 30px 10px #d4a060; } 100% { box-shadow: 0 0 20px 6px #b08040; } }
@keyframes jjm-jose { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(3deg); } 75% { transform: translateX(-3px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes jjm-carmen { 0% { transform: translateX(0) rotate(2deg); } 33% { transform: translateX(-2px) rotate(-1deg); } 66% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes jjm-shadow { 0% { transform: scaleX(1); opacity: 0.8; } 50% { transform: scaleX(1.2); opacity: 0.5; } 100% { transform: scaleX(1); opacity: 0.8; } }
@keyframes jjm-glow { 0% { transform: translate(-50%, -50%) scale(1); } 50% { transform: translate(-50%, -50%) scale(1.3); } 100% { transform: translate(-50%, -50%) scale(1); } }

.scn-carmen-dismisses-jose-jealousy {
  background: linear-gradient(180deg, #f0e6d0 0%, #e0d0b8 40%, #d0c0a8 100%),
              radial-gradient(ellipse at 70% 40%, #ffe8c0 0%, transparent 60%);
}
.scn-carmen-dismisses-jose-jealousy .bg-room {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d8c8b0 100%);
  animation: cdj-room 10s ease-in-out infinite alternate;
}
.scn-carmen-dismisses-jose-jealousy .sofa {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #c8a878 0%, #a88858 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
  animation: cdj-sofa 4s ease-in-out infinite;
}
.scn-carmen-dismisses-jose-jealousy .figure-carmen-laugh {
  position: absolute; bottom: 24%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #c85040 0%, #a03828 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cdj-carmen-laugh 1.5s ease-in-out infinite;
}
.scn-carmen-dismisses-jose-jealousy .figure-jose-stand {
  position: absolute; bottom: 22%; left: 50%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #303050 0%, #202038 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cdj-jose-stand 3s ease-in-out infinite 1s;
}
.scn-carmen-dismisses-jose-jealousy .figure-englishman {
  position: absolute; bottom: 22%; right: 20%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cdj-english 2s ease-in-out infinite 0.5s;
}
.scn-carmen-dismisses-jose-jealousy .small-table {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #b09870 0%, #907858 100%);
  border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,0.2);
}
.scn-carmen-dismisses-jose-jealousy .glass {
  position: absolute; bottom: 30%; left: 56%; width: 10px; height: 14px;
  background: radial-gradient(circle, #e0f0d8 0%, #c0d8b0 60%);
  border-radius: 0 0 4px 4px; box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
  animation: cdj-glass 2s ease-in-out infinite;
}
.scn-carmen-dismisses-jose-jealousy .glass-sparkle {
  position: absolute; bottom: 34%; left: 56%; width: 4px; height: 4px;
  background: #ffffff; border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,255,255,0.8);
  animation: cdj-sparkle 1.5s ease-in-out infinite alternate;
}
@keyframes cdj-room { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes cdj-sofa { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cdj-carmen-laugh { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(-5deg); } 60% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cdj-jose-stand { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cdj-english { 0% { transform: translateY(0) rotate(-1deg); } 33% { transform: translateY(-1px) rotate(1deg); } 66% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cdj-glass { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cdj-sparkle { 0% { opacity: 0; transform: scale(0.5); } 100% { opacity: 1; transform: scale(1.5); } }

.scn-maquila-oranges-tomorrow {
  background: linear-gradient(180deg, #f2e8d0 0%, #e0d0b0 40%, #c8b890 100%),
              radial-gradient(ellipse at 60% 50%, #ffe0b0 0%, transparent 70%);
}
.scn-maquila-oranges-tomorrow .bg-market {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #d8c8a8 0%, #e8d8b8 50%, #d0c0a0 100%);
  animation: mot-bg 15s ease-in-out infinite alternate;
}
.scn-maquila-oranges-tomorrow .counter {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 14%;
  background: linear-gradient(180deg, #a08868 0%, #807058 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-maquila-oranges-tomorrow .basket {
  position: absolute; bottom: 24%; left: 25%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #b09878 0%, #908068 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: mot-basket 8s ease-in-out infinite;
}
.scn-maquila-oranges-tomorrow .orange-a {
  position: absolute; bottom: 32%; left: 28%; width: 12px; height: 12px;
  background: radial-gradient(circle at 40% 30%, #f0a030 0%, #d08020 60%, #a06010 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: mot-orange-a 2s ease-in-out infinite;
}
.scn-maquila-oranges-tomorrow .orange-b {
  position: absolute; bottom: 34%; left: 34%; width: 10px; height: 10px;
  background: radial-gradient(circle at 40% 30%, #f0a030 0%, #d08020 60%, #a06010 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: mot-orange-b 2.5s ease-in-out infinite 0.5s;
}
.scn-maquila-oranges-tomorrow .girl-laugh {
  position: absolute; bottom: 20%; right: 28%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #d04838 0%, #a03028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mot-girl 1.8s ease-in-out infinite;
}
.scn-maquila-oranges-tomorrow .englishman-hand {
  position: absolute; bottom: 22%; right: 18%; width: 18px; height: 12px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89078 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: right bottom;
  animation: mot-hand 3s ease-in-out infinite 1s;
}
.scn-maquila-oranges-tomorrow .ring-glow {
  position: absolute; bottom: 30%; right: 18%; width: 6px; height: 6px;
  background: radial-gradient(circle, #f0d080 0%, #c8a060 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 12px 4px rgba(200,160,100,0.6);
  animation: mot-ring 4s ease-in-out infinite alternate;
}
@keyframes mot-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mot-basket { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mot-orange-a { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-6px) rotate(30deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mot-orange-b { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-20deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mot-girl { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(-6deg); } 60% { transform: translateY(-1px) rotate(4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mot-hand { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes mot-ring { 0% { box-shadow: 0 0 8px 2px rgba(200,160,100,0.4); } 100% { box-shadow: 0 0 20px 6px rgba(200,160,100,0.8); } }

.scn-carmen-plans-ambush-englishman {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a14 40%, #3a2218 100%),
              radial-gradient(ellipse at 50% 30%, #5a3020 0%, transparent 60%);
}
.scn-carmen-plans-ambush-englishman .bg-night {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0e0a14 0%, #1a1218 100%);
  animation: cpa-bg 20s ease-in-out infinite alternate;
}
.scn-carmen-plans-ambush-englishman .window-night {
  position: absolute; top: 10%; left: 70%; width: 30px; height: 36px;
  background: radial-gradient(ellipse at 50% 50%, #0c1628 0%, #060a14 100%);
  border: 2px solid #3a2a1a; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: cpa-window 12s ease-in-out infinite alternate;
}
.scn-carmen-plans-ambush-englishman .candle {
  position: absolute; bottom: 45%; left: 45%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e0b070 0%, #c09050 60%, #806030 100%);
  border-radius: 2px 2px 0 0; box-shadow: 0 0 20px 6px #c09050;
  animation: cpa-candle 2s ease-in-out infinite alternate;
}
.scn-carmen-plans-ambush-englishman .table-map {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #4a3222 0%, #2a1a12 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-carmen-plans-ambush-englishman .figure-carmen-plan {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a3020 0%, #3a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpa-carmen 3s ease-in-out infinite;
}
.scn-carmen-plans-ambush-englishman .figure-jose-plan {
  position: absolute; bottom: 24%; right: 35%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpa-jose 3.5s ease-in-out infinite 0.5s;
}
.scn-carmen-plans-ambush-englishman .candle-glow {
  position: absolute; bottom: 45%; left: 45%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(192,144,80,0.3) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: cpa-glow 3s ease-in-out infinite alternate;
}
@keyframes cpa-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes cpa-window { 0% { box-shadow: inset 0 0 10px rgba(0,0,0,0.3); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.6); } 100% { box-shadow: inset 0 0 15px rgba(0,0,0,0.4); } }
@keyframes cpa-candle { 0% { transform: translateY(0) scaleY(1); box-shadow: 0 0 15px 4px #c09050; } 50% { transform: translateY(-1px) scaleY(1.05); box-shadow: 0 0 25px 8px #d0a060; } 100% { transform: translateY(0) scaleY(1); box-shadow: 0 0 15px 4px #c09050; } }
@keyframes cpa-carmen { 0% { transform: translateX(0) rotate(-2deg); } 33% { transform: translateX(2px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes cpa-jose { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes cpa-glow { 0% { transform: translate(-50%, -50%) scale(1); } 50% { transform: translate(-50%, -50%) scale(1.4); } 100% { transform: translate(-50%, -50%) scale(1); } }

/* ---------- Scene 1: carmen-nurses-jose ---------- */
.scn-carmen-nurses-jose {
  background: 
    linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 40%, #1a0e08 100%),
    radial-gradient(ellipse at 50% 80%, #7a4a2a 0%, transparent 70%);
}
.scn-carmen-nurses-jose .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2212 0%, #2a1a0e 60%, #1a0e08 100%);
  animation: cnj-wall 12s ease-in-out infinite alternate;
}
.scn-carmen-nurses-jose .bed {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 10% 10% 0 0;
  transform: rotate(-2deg);
  box-shadow: 0 -8px 20px rgba(0,0,0,.6);
  animation: cnj-bed 8s ease-in-out infinite;
}
.scn-carmen-nurses-jose .figure-lying {
  position: absolute; bottom: 16%; left: 30%; width: 30%; height: 16%;
  background: radial-gradient(ellipse at 50% 50%, #6a4a32 0%, #3a2212 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: cnj-lying 4s ease-in-out infinite alternate;
}
.scn-carmen-nurses-jose .figure-standing {
  position: absolute; bottom: 18%; right: 25%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: cnj-standing 6s ease-in-out infinite;
}
.scn-carmen-nurses-jose .candle-glow {
  position: absolute; bottom: 38%; left: 48%; width: 12%; height: 8%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: cnj-glow 3s ease-in-out infinite alternate;
}
.scn-carmen-nurses-jose .flame {
  position: absolute; bottom: 44%; left: 49%; width: 2%; height: 4%;
  background: linear-gradient(180deg, #ffe080 0%, #ff8030 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 12px #ffa040, 0 0 24px rgba(255,160,64,.5);
  animation: cnj-flame 2s ease-in-out infinite alternate;
}
.scn-carmen-nurses-jose .rug {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(90deg, #4a2a1a 0%, #6a3a22 50%, #4a2a1a 100%);
  border-radius: 30% 30% 0 0;
  opacity: 0.7;
}
@keyframes cnj-wall {
  0% { opacity: 0.8; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.9; filter: brightness(0.95); }
}
@keyframes cnj-bed {
  0%,100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
}
@keyframes cnj-lying {
  0%,100% { transform: scale(1) translateY(0); }
  50% { transform: scale(0.98) translateY(2px); }
}
@keyframes cnj-standing {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(8px) rotate(0); }
  75% { transform: translateX(4px) rotate(-1deg); }
}
@keyframes cnj-glow {
  0% { opacity: 0.7; filter: blur(3px); }
  50% { opacity: 1; filter: blur(5px); }
  100% { opacity: 0.8; filter: blur(4px); }
}
@keyframes cnj-flame {
  0% { transform: scale(1) rotate(-2deg); }
  50% { transform: scale(1.1) rotate(3deg); }
  100% { transform: scale(0.95) rotate(-1deg); }
}

/* ---------- Scene 2: carmen-dresses-jose-as-peasant ---------- */
.scn-carmen-dresses-jose-as-peasant {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #16121e 60%, #1a1a2a 100%),
    radial-gradient(ellipse at 30% 60%, #2a2a3e 0%, transparent 70%);
}
.scn-carmen-dresses-jose-as-peasant .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1624 100%);
  animation: cdj-bg 15s ease-in-out infinite alternate;
}
.scn-carmen-dresses-jose-as-peasant .figure-left {
  position: absolute; bottom: 8%; left: 28%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #2a2a3e 0%, #16121e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 4px 10px rgba(0,0,0,.8);
  animation: cdj-figure-left 5s ease-in-out infinite;
}
.scn-carmen-dresses-jose-as-peasant .figure-right {
  position: absolute; bottom: 8%; right: 28%; width: 16%; height: 38%;
  background: linear-gradient(180deg, #3a2a3e 0%, #1a1a2e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 4px 10px rgba(0,0,0,.8);
  animation: cdj-figure-right 5.5s ease-in-out infinite;
}
.scn-carmen-dresses-jose-as-peasant .garment {
  position: absolute; bottom: 12%; left: 32%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(15deg);
  animation: cdj-garment 3s ease-in-out infinite alternate;
}
.scn-carmen-dresses-jose-as-peasant .lantern-glow {
  position: absolute; bottom: 40%; left: 44%; width: 14%; height: 10%;
  background: radial-gradient(circle, #c08040 0%, #8a5a20 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: cdj-lantern 4s ease-in-out infinite alternate;
}
.scn-carmen-dresses-jose-as-peasant .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 30% 30% 0 0;
  animation: cdj-shadow 6s ease-in-out infinite;
}
@keyframes cdj-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes cdj-figure-left {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-4px) rotate(1deg); }
  50% { transform: translateX(-8px) rotate(2deg); }
  75% { transform: translateX(-4px) rotate(0); }
}
@keyframes cdj-figure-right {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(4px) rotate(-1deg); }
  50% { transform: translateX(8px) rotate(-2deg); }
  75% { transform: translateX(4px) rotate(0); }
}
@keyframes cdj-garment {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-3px); }
  100% { transform: rotate(18deg) translateY(2px); }
}
@keyframes cdj-lantern {
  0% { opacity: 0.6; filter: blur(5px); }
  50% { opacity: 1; filter: blur(7px); }
  100% { opacity: 0.7; filter: blur(4px); }
}
@keyframes cdj-shadow {
  0%,100% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
}

/* ---------- Scene 3: gipsy-women-heal-wound ---------- */
.scn-gipsy-women-heal-wound {
  background: 
    linear-gradient(180deg, #2a1a0e 0%, #1a100a 50%, #0e0806 100%),
    radial-gradient(ellipse at 50% 50%, #3a2212 0%, transparent 70%);
}
.scn-gipsy-women-heal-wound .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a100a 100%);
  animation: gwh-bg 20s ease-in-out infinite alternate;
}
.scn-gipsy-women-heal-wound .window {
  position: absolute; top: 10%; right: 10%; width: 20%; height: 25%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.2) 0%, transparent 70%);
  border-radius: 20%;
  box-shadow: inset 0 0 20px rgba(200,180,160,0.1);
  animation: gwh-window 12s ease-in-out infinite alternate;
}
.scn-gipsy-women-heal-wound .bed {
  position: absolute; bottom: 8%; left: 15%; width: 70%; height: 25%;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,.6);
}
.scn-gipsy-women-heal-wound .figure-injured {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 14%;
  background: radial-gradient(ellipse at 50% 50%, #5a3a22 0%, #3a2212 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: gwh-injured 6s ease-in-out infinite alternate;
}
.scn-gipsy-women-heal-wound .woman-left {
  position: absolute; bottom: 12%; left: 18%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #6a3a2a 0%, #3a1a12 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gwh-woman-left 5s ease-in-out infinite;
}
.scn-gipsy-women-heal-wound .woman-right {
  position: absolute; bottom: 12%; right: 18%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #6a3a2a 0%, #3a1a12 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gwh-woman-right 5s ease-in-out infinite reverse;
}
.scn-gipsy-women-heal-wound .candle-aura {
  position: absolute; bottom: 48%; left: 50%; width: 16%; height: 12%;
  background: radial-gradient(circle, #c0a070 0%, #8a6a40 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(5px);
  animation: gwh-aura 4s ease-in-out infinite alternate;
}
@keyframes gwh-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes gwh-window {
  0% { opacity: 0.3; filter: brightness(0.8); }
  50% { opacity: 0.5; filter: brightness(1); }
  100% { opacity: 0.2; filter: brightness(0.9); }
}
@keyframes gwh-injured {
  0%,100% { transform: scale(1) translateY(0); }
  50% { transform: scale(0.97) translateY(2px); }
}
@keyframes gwh-woman-left {
  0%,100% { transform: rotate(0) translateY(0); }
  25% { transform: rotate(-1deg) translateY(-2px); }
  50% { transform: rotate(0) translateY(-4px); }
  75% { transform: rotate(1deg) translateY(-2px); }
}
@keyframes gwh-woman-right {
  0%,100% { transform: rotate(0) translateY(0); }
  25% { transform: rotate(1deg) translateY(-2px); }
  50% { transform: rotate(0) translateY(-4px); }
  75% { transform: rotate(-1deg) translateY(-2px); }
}
@keyframes gwh-aura {
  0% { opacity: 0.5; filter: blur(4px); }
  50% { opacity: 0.9; filter: blur(6px); }
  100% { opacity: 0.6; filter: blur(5px); }
}

/* ---------- Scene 4: carmen-proposes-smuggling ---------- */
.scn-carmen-proposes-smuggling {
  background: 
    linear-gradient(180deg, #3a1a0e 0%, #2a1008 50%, #1a0804 100%),
    radial-gradient(ellipse at 40% 60%, #5a2a1a 0%, transparent 70%);
}
.scn-carmen-proposes-smuggling .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a140a 0%, #1a0804 100%);
  animation: cps-bg 18s ease-in-out infinite alternate;
}
.scn-carmen-proposes-smuggling .table {
  position: absolute; bottom: 12%; left: 18%; width: 64%; height: 16%;
  background: linear-gradient(90deg, #4a2a1a 0%, #5a3a22 50%, #4a2a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 16px rgba(0,0,0,.6);
  transform: perspective(300px) rotateX(5deg);
  animation: cps-table 10s ease-in-out infinite;
}
.scn-carmen-proposes-smuggling .figure-left {
  position: absolute; bottom: 8%; left: 25%; width: 14%; height: 34%;
  background: linear-gradient(180deg, #6a3a22 0%, #4a2210 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cps-figure-left 6s ease-in-out infinite;
}
.scn-carmen-proposes-smuggling .figure-right {
  position: absolute; bottom: 8%; right: 25%; width: 14%; height: 34%;
  background: linear-gradient(180deg, #5a3220 0%, #3a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cps-figure-right 6s ease-in-out infinite reverse;
}
.scn-carmen-proposes-smuggling .lantern-glow {
  position: absolute; bottom: 42%; left: 48%; width: 12%; height: 8%;
  background: radial-gradient(circle, #d09050 0%, #a06030 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: cps-glow 3s ease-in-out infinite alternate;
}
.scn-carmen-proposes-smuggling .bottle {
  position: absolute; bottom: 20%; left: 46%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform: rotate(5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: cps-bottle 8s ease-in-out infinite alternate;
}
@keyframes cps-bg {
  0% { opacity: 0.85; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.9; filter: brightness(1); }
}
@keyframes cps-table {
  0%,100% { transform: perspective(300px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(300px) rotateX(4deg) translateY(-2px); }
}
@keyframes cps-figure-left {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(6px) rotate(0); }
  75% { transform: translateX(3px) rotate(-1deg); }
}
@keyframes cps-figure-right {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-3px) rotate(-1deg); }
  50% { transform: translateX(-6px) rotate(0); }
  75% { transform: translateX(-3px) rotate(1deg); }
}
@keyframes cps-glow {
  0% { opacity: 0.6; filter: blur(3px); }
  50% { opacity: 1; filter: blur(6px); }
  100% { opacity: 0.8; filter: blur(4px); }
}
@keyframes cps-bottle {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(7deg) translateY(1px); }
}

.scn-learning-of-garcia-el-tuerto {
  background: linear-gradient(180deg, #1c0e08 0%, #2a150c 40%, #3a1e12 100%), radial-gradient(ellipse at 50% 80%, #7a3a1a 0%, transparent 60%);
}
.scn-learning-of-garcia-el-tuerto .tent-wall {
  position:absolute; inset:0 0 10% 0; background: linear-gradient(135deg, #2a1a10 0%, #1a0e06 100%); clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); animation: lge-tent 8s ease-in-out infinite alternate;
}
.scn-learning-of-garcia-el-tuerto .fire-glow {
  position:absolute; bottom:25%; left:50%; width:60px; height:60px; transform:translate(-50%,0); background: radial-gradient(circle, #ff8a30 0%, #ff5a10 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 100px 40px rgba(255,90,16,.6), 0 0 200px 80px rgba(255,90,16,.2); animation: lge-fireglow 2s ease-in-out infinite alternate;
}
.scn-learning-of-garcia-el-tuerto .figure-captain {
  position:absolute; bottom:28%; left:30%; width:20px; height:45px; background: linear-gradient(180deg, #1a0e08 0%, #0d0604 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: lge-captain 6s ease-in-out infinite;
}
.scn-learning-of-garcia-el-tuerto .figure-garcia {
  position:absolute; bottom:26%; right:28%; width:22px; height:50px; background: linear-gradient(180deg, #2c1a12 0%, #0f0804 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom; animation: lge-garcia 9s ease-in-out infinite;
}
.scn-learning-of-garcia-el-tuerto .card-table {
  position:absolute; bottom:30%; left:35%; right:35%; height:8px; background: linear-gradient(90deg, #3a241a, #2a1a10, #3a241a); border-radius: 4px; box-shadow: 0 0 10px 2px #5a3020; animation: lge-table 4s ease-in-out infinite alternate;
}
.scn-learning-of-garcia-el-tuerto .flame {
  position:absolute; bottom:28%; left:50%; width:8px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #ffd080 0%, #ff7a20 50%, #cc4400 100%); border-radius: 50% 50% 40% 40% / 100% 100% 40% 40%; box-shadow: 0 0 16px 8px rgba(255,122,32,.5); animation: lge-flame 0.6s linear infinite alternate;
}
@keyframes lge-tent { 0% { opacity:.9; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.01) } 100% { opacity:.85; transform: scaleX(.98) } }
@keyframes lge-fireglow { 0% { opacity:.7; transform: translate(-50%,0) scale(1) } 50% { opacity:1; transform: translate(-50%,-2px) scale(1.05) } 100% { opacity:.6; transform: translate(-50%,0) scale(.95) } }
@keyframes lge-captain { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(2px,-1px) rotate(1deg) } 100% { transform: translate(-1px,0) rotate(-1deg) } }
@keyframes lge-garcia { 0% { transform: translate(0,0) rotate(1deg) } 33% { transform: translate(-3px,-1px) rotate(-2deg) } 66% { transform: translate(2px,0) rotate(2deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes lge-table { 0% { box-shadow: 0 0 8px 2px #5a3020; height:7px } 50% { box-shadow: 0 0 16px 4px #7a4020; height:9px } 100% { box-shadow: 0 0 10px 2px #5a3020; height:8px } }
@keyframes lge-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg); opacity:.9 } 25% { transform: translateX(-50%) scaleY(1.2) rotate(5deg); opacity:1 } 50% { transform: translateX(-50%) scaleY(.9) rotate(-3deg); opacity:.85 } 75% { transform: translateX(-50%) scaleY(1.1) rotate(2deg); opacity:1 } 100% { transform: translateX(-50%) scaleY(1) rotate(0deg); opacity:.9 } }

.scn-ambush-by-horsemen {
  background: linear-gradient(180deg, #f2c58a 0%, #d49a5a 30%, #b0703a 100%), radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 60%);
}
.scn-ambush-by-horsemen .sky-blaze {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffd699 0%, #f2b56a 60%, transparent 100%); animation: abh-sky 15s ease-in-out infinite alternate;
}
.scn-ambush-by-horsemen .sun-scorched {
  position:absolute; top:5%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #fff5d0 0%, #ffe080 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(255,224,128,.5); animation: abh-sun 8s ease-in-out infinite alternate;
}
.scn-ambush-by-horsemen .rock-left {
  position:absolute; bottom:10%; left:5%; width:35%; height:45%; background: linear-gradient(135deg, #8a6030 0%, #5a3a1a 100%); clip-path: polygon(0% 100%, 20% 20%, 50% 0%, 80% 30%, 100% 100%); animation: abh-rockl 20s linear infinite alternate;
}
.scn-ambush-by-horsemen .rock-right {
  position:absolute; bottom:8%; right:8%; width:30%; height:50%; background: linear-gradient(225deg, #7a5020 0%, #4a2a10 100%); clip-path: polygon(100% 100%, 80% 10%, 40% 0%, 10% 40%, 0% 100%); animation: abh-rockr 25s linear infinite alternate;
}
.scn-ambush-by-horsemen .horseman-a {
  position:absolute; bottom:28%; left:10%; width:30px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #0d0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: abh-horse1 3s ease-in-out infinite;
}
.scn-ambush-by-horsemen .horseman-b {
  position:absolute; bottom:30%; left:60%; width:28px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: abh-horse2 3.5s ease-in-out infinite 1.5s;
}
.scn-ambush-by-horsemen .dust {
  position:absolute; bottom:20%; left:30%; right:30%; height:20px; background: radial-gradient(ellipse, rgba(180,140,80,.3) 0%, transparent 70%); filter: blur(6px); animation: abh-dust 4s ease-in-out infinite;
}
@keyframes abh-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes abh-sun { 0% { transform: translate(0,0) scale(1); opacity:.9 } 50% { transform: translate(-8px,4px) scale(1.05); opacity:1 } 100% { transform: translate(4px,-2px) scale(.95); opacity:.85 } }
@keyframes abh-rockl { 0% { transform: translate(0,0) } 50% { transform: translate(-3px,2px) } 100% { transform: translate(2px,-1px) } }
@keyframes abh-rockr { 0% { transform: translate(0,0) } 50% { transform: translate(2px,-3px) } 100% { transform: translate(-1px,2px) } }
@keyframes abh-horse1 { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(12px) rotate(5deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes abh-horse2 { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-10px) rotate(-4deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes abh-dust { 0%,100% { opacity:.3; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.3) } }

.scn-garcia-kills-remendado {
  background: linear-gradient(180deg, #a07a4a 0%, #7a5020 40%, #4a2a10 100%), radial-gradient(ellipse at 50% 20%, #d4a060 0%, transparent 50%);
}
.scn-garcia-kills-remendado .rock-arch {
  position:absolute; bottom:10%; left:2%; right:2%; height:90%; background: linear-gradient(135deg, #6a4020 0%, #3a1a0a 100%); clip-path: polygon(0% 100%, 0% 60%, 15% 20%, 85% 20%, 100% 60%, 100% 100%); animation: gkr-rock 18s linear infinite alternate;
}
.scn-garcia-kills-remendado .figure-remendado {
  position:absolute; bottom:30%; left:40%; width:25px; height:35px; background: linear-gradient(180deg, #2a1a10 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(90deg); transform-origin: 50% 100%; animation: gkr-rem 6s ease-in-out infinite;
}
.scn-garcia-kills-remendado .figure-garcia-kill {
  position:absolute; bottom:30%; right:35%; width:28px; height:48px; background: linear-gradient(180deg, #3a2212 0%, #120804 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom; animation: gkr-garcia 4s ease-in-out infinite;
}
.scn-garcia-kills-remendado .blunderbuss {
  position:absolute; bottom:38%; right:35%; width:40px; height:8px; background: linear-gradient(90deg, #1a0e06 0%, #2a1a0e 40%, #1a0e06 100%); border-radius: 4px 40% 40% 4px; transform: rotate(-30deg); transform-origin: left center; animation: gkr-gun 1.5s ease-in-out infinite alternate;
}
.scn-garcia-kills-remendado .muzzle-flash {
  position:absolute; bottom:38%; right:70%; width:20px; height:20px; background: radial-gradient(circle, #fff5c0 0%, #ffd080 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,208,128,.8), 0 0 60px 20px rgba(255,208,128,.3); animation: gkr-flash 0.3s linear infinite alternate;
}
.scn-garcia-kills-remendado .shadow-donjose {
  position:absolute; bottom:26%; left:15%; width:20px; height:42px; background: linear-gradient(180deg, #1a0e08 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:.7; animation: gkr-dj 8s ease-in-out infinite;
}
@keyframes gkr-rock { 0% { transform: translate(0,0) } 50% { transform: translate(-2px,1px) } 100% { transform: translate(2px,-1px) } }
@keyframes gkr-rem { 0% { transform: rotate(90deg) translate(0,0) } 50% { transform: rotate(85deg) translate(2px,0) } 100% { transform: rotate(90deg) translate(-1px,0) } }
@keyframes gkr-garcia { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(3px,-2px) rotate(0deg) } 100% { transform: translate(-2px,0) rotate(2deg) } }
@keyframes gkr-gun { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-25deg) } 100% { transform: rotate(-32deg) } }
@keyframes gkr-flash { 0% { opacity:0; transform: scale(0.5) } 25% { opacity:1; transform: scale(1.2) } 50% { opacity:0.8; transform: scale(1) } 75% { opacity:0.3; transform: scale(0.8) } 100% { opacity:0; transform: scale(0.5) } }
@keyframes gkr-dj { 0% { transform: translate(0,0) } 50% { transform: translate(4px,-1px) } 100% { transform: translate(-2px,0) } }

.scn-carmen-departs-for-gibraltar {
  background: linear-gradient(180deg, #2a1a0e 0%, #4a2a15 35%, #6a3a1a 100%), radial-gradient(ellipse at 50% 90%, #8a4a20 0%, transparent 50%);
}
.scn-carmen-departs-for-gibraltar .evening-sky {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a0e08 0%, #2a180c 50%, transparent 100%); animation: cdg-sky 20s ease-in-out infinite alternate;
}
.scn-carmen-departs-for-gibraltar .campfire {
  position:absolute; bottom:28%; left:50%; width:50px; height:50px; transform:translateX(-50%); background: radial-gradient(circle, #ff9a40 0%, #cc5500 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(204,85,0,.5), 0 0 150px 60px rgba(204,85,0,.2); animation: cdg-fire 3s ease-in-out infinite alternate;
}
.scn-carmen-departs-for-gibraltar .tent-silhouette {
  position:absolute; bottom:25%; left:20%; width:25%; height:35%; background: linear-gradient(135deg, #1a0e08 0%, #0d0604 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: cdg-tent 12s ease-in-out infinite alternate;
}
.scn-carmen-departs-for-gibraltar .goatherd {
  position:absolute; bottom:30%; left:55%; width:18px; height:40px; background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: cdg-goat 8s ease-in-out infinite;
}
.scn-carmen-departs-for-gibraltar .mule-a {
  position:absolute; bottom:28%; right:15%; width:35px; height:25px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: cdg-mule1 10s ease-in-out infinite;
}
.scn-carmen-departs-for-gibraltar .mule-b {
  position:absolute; bottom:30%; right:5%; width:30px; height:22px; background: linear-gradient(180deg, #2a1a0e 0%, #0d0604 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: cdg-mule2 12s ease-in-out infinite 2s;
}
.scn-carmen-departs-for-gibraltar .woman-figure {
  position:absolute; bottom:30%; left:35%; width:16px; height:38px; background: linear-gradient(180deg, #4a2a15 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 4px 1px rgba(255,150,50,.3); animation: cdg-woman 7s ease-in-out infinite;
}
@keyframes cdg-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes cdg-fire { 0% { transform: translateX(-50%) scale(1); opacity:.8 } 50% { transform: translateX(-50%) scale(1.08); opacity:1 } 100% { transform: translateX(-50%) scale(.95); opacity:.75 } }
@keyframes cdg-tent { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes cdg-goat { 0% { transform: translate(0,0) rotate(-1deg) } 50% { transform: translate(4px,-2px) rotate(2deg) } 100% { transform: translate(-2px,0) rotate(-1deg) } }
@keyframes cdg-mule1 { 0% { transform: translate(0,0) } 50% { transform: translate(-3px,1px) } 100% { transform: translate(2px,0) } }
@keyframes cdg-mule2 { 0% { transform: translate(0,0) } 50% { transform: translate(4px,-1px) } 100% { transform: translate(-2px,0) } }
@keyframes cdg-woman { 0% { transform: translate(0,0) rotate(0deg) } 33% { transform: translate(3px,-1px) rotate(2deg) } 66% { transform: translate(-2px,1px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(0deg) } }

/* scene 1: jose-punished-for-helping */
.scn-jose-punished-for-helping {
  background: 
    linear-gradient(180deg, #1a1510 0%, #2c2218 50%, #3d3126 100%),
    radial-gradient(ellipse at 60% 50%, #4c3a2a 0%, transparent 70%);
}
.scn-jose-punished-for-helping .bg-alley {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2c2218 0%, #1a1510 100%);
  animation: jph-bg 20s ease-in-out infinite alternate;
}
.scn-jose-punished-for-helping .wall-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 85%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3d3126 100%);
  border-right: 3px solid #2c2218;
  box-shadow: inset -10px 0 20px rgba(0,0,0,.5);
}
.scn-jose-punished-for-helping .wall-right {
  position: absolute; top: 0; right: 0; width: 25%; height: 80%;
  background: linear-gradient(180deg, #3d3126 0%, #2c2218 100%);
  border-left: 3px solid #2c2218;
  box-shadow: inset 10px 0 20px rgba(0,0,0,.5);
}
.scn-jose-punished-for-helping .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2c2218 0%, #1a1510 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.6);
}
.scn-jose-punished-for-helping .figure-jose {
  position: absolute; bottom: 22%; left: 40%;
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jph-jose 2s ease-in-out infinite alternate;
}
.scn-jose-punished-for-helping .figure-carmen {
  position: absolute; bottom: 24%; left: 30%;
  width: 22px; height: 54px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jph-carmen 1.6s ease-in-out infinite alternate;
}
.scn-jose-punished-for-helping .lance {
  position: absolute; bottom: 28%; left: 10%;
  width: 60%; height: 6px;
  background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 50%, #5a4a3a 100%);
  border-radius: 3px;
  transform: rotate(-15deg);
  transform-origin: left center;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: jph-lance 2s ease-in-out infinite alternate;
}
.scn-jose-punished-for-helping .lantern {
  position: absolute; top: 20%; left: 50%;
  width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 60%, #ffd280 0%, #c08040 50%, transparent 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 12px rgba(255,210,128,.4), 0 0 60px 24px rgba(192,128,64,.2);
  animation: jph-lantern 3s ease-in-out infinite alternate;
}
@keyframes jph-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes jph-jose {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-8px) rotate(-12deg); }
  100% { transform: translateX(-4px) rotate(-6deg); }
}
@keyframes jph-carmen {
  0% { transform: translateX(0) rotate(0) scaleY(1); }
  50% { transform: translateX(12px) rotate(15deg) scaleY(0.95); }
  100% { transform: translateX(6px) rotate(8deg) scaleY(1); }
}
@keyframes jph-lance {
  0% { transform: rotate(-18deg) translateX(0); }
  50% { transform: rotate(-10deg) translateX(4px); }
  100% { transform: rotate(-15deg) translateX(0); }
}
@keyframes jph-lantern {
  0% { opacity: .8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05) translateY(-2px); }
  100% { opacity: .85; transform: scaleY(1); }
}

/* scene 2: longing-in-prison */
.scn-longing-in-prison {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1e1e30 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 70%);
}
.scn-longing-in-prison .bg-cell {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #101020 100%);
  animation: lip-bg 25s ease-in-out infinite alternate;
}
.scn-longing-in-prison .wall-back {
  position: absolute; top: 0; left: 10%; right: 10%; height: 70%;
  background: linear-gradient(180deg, #2a2a4a 0%, #20203a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
  border-radius: 4% 4% 0 0;
}
.scn-longing-in-prison .window-bars {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 40%;
  background: rgba(0,0,0,.6);
  border: 4px solid #4a4a6a;
  box-shadow: inset 0 0 20px rgba(100,100,160,.3);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 70%, 8% 70%, 8% 30%, 0 30%);
  animation: lip-bars 5s ease-in-out infinite alternate;
}
.scn-longing-in-prison .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.7);
}
.scn-longing-in-prison .figure-jose-sat {
  position: absolute; bottom: 15%; left: 45%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #0f0f1a 0%, #050510 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lip-jose 6s ease-in-out infinite;
}
.scn-longing-in-prison .acacia-blossom {
  position: absolute; bottom: 30%; left: 55%;
  width: 12px; height: 12px;
  background: radial-gradient(circle, #c0a080 0%, #806040 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(192,160,128,.6);
  animation: lip-flower 4s ease-in-out infinite alternate;
}
.scn-longing-in-prison .moonlight-ray {
  position: absolute; top: 5%; left: 38%; width: 24%; height: 60%;
  background: linear-gradient(180deg, rgba(180,200,255,.2) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: lip-ray 8s ease-in-out infinite alternate;
}
@keyframes lip-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes lip-bars { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes lip-jose {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-2px) rotate(2deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(-1px) rotate(0); }
}
@keyframes lip-flower {
  0% { transform: translate(0, 0) rotate(0); box-shadow: 0 0 6px 2px rgba(192,160,128,.5); }
  50% { transform: translate(2px, -3px) rotate(10deg); box-shadow: 0 0 12px 4px rgba(192,160,128,.7); }
  100% { transform: translate(-1px, -1px) rotate(-5deg); box-shadow: 0 0 8px 3px rgba(192,160,128,.6); }
}
@keyframes lip-ray {
  0% { opacity: .3; transform: translateX(0); }
  50% { opacity: .5; transform: translateX(8px); }
  100% { opacity: .35; transform: translateX(-4px); }
}

/* scene 3: item-file-and-gold-coin */
.scn-item-file-and-gold-coin {
  background: 
    linear-gradient(180deg, #1e1a24 0%, #2c2632 50%, #1e1a24 100%),
    radial-gradient(ellipse at 70% 40%, #3c3040 0%, transparent 70%);
}
.scn-item-file-and-gold-coin .bg-prison {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2c2632 0%, #1a1620 100%);
  animation: ifg-bg 30s ease-in-out infinite alternate;
}
.scn-item-file-and-gold-coin .bars-vert {
  position: absolute; top: 0; left: 20%; width: 4%; height: 100%;
  background: linear-gradient(180deg, #5a4a5c 0%, #4a3a4c 100%);
  box-shadow: inset 0 0 4px rgba(0,0,0,.5);
  animation: ifg-bars 10s ease-in-out infinite alternate;
}
.scn-item-file-and-gold-coin .bars-horiz {
  position: absolute; top: 50%; left: 0; width: 100%; height: 4%;
  background: linear-gradient(90deg, #5a4a5c 0%, #4a3a4c 100%);
  box-shadow: inset 0 0 4px rgba(0,0,0,.5);
  animation: ifg-bars 10s ease-in-out infinite alternate;
}
.scn-item-file-and-gold-coin .table {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.5);
}
.scn-item-file-and-gold-coin .file {
  position: absolute; bottom: 22%; left: 35%;
  width: 30px; height: 6px;
  background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  transform: rotate(-5deg);
  animation: ifg-file 5s ease-in-out infinite alternate;
}
.scn-item-file-and-gold-coin .gold-coin {
  position: absolute; bottom: 24%; left: 55%;
  width: 14px; height: 14px;
  background: radial-gradient(circle at 45% 45%, #ffd080 0%, #c08030 70%, #a06020 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(255,208,128,.5), 0 0 20px 8px rgba(192,128,48,.3);
  animation: ifg-coin 3s ease-in-out infinite alternate;
}
.scn-item-file-and-gold-coin .hand-shadow {
  position: absolute; bottom: 20%; left: 50%;
  width: 20px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: ifg-hand 4s ease-in-out infinite;
}
@keyframes ifg-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ifg-bars { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes ifg-file {
  0% { transform: translate(0, 0) rotate(-5deg); }
  50% { transform: translate(2px, -1px) rotate(2deg); }
  100% { transform: translate(-1px, 0) rotate(-3deg); }
}
@keyframes ifg-coin {
  0% { transform: translateX(0) rotate(0); box-shadow: 0 0 10px 4px rgba(255,208,128,.5); }
  50% { transform: translateX(3px) rotate(20deg); box-shadow: 0 0 15px 6px rgba(255,208,128,.6); }
  100% { transform: translateX(-2px) rotate(-10deg); box-shadow: 0 0 10px 4px rgba(255,208,128,.5); }
}
@keyframes ifg-hand {
  0% { opacity: .4; transform: translateY(0); }
  50% { opacity: .6; transform: translateY(-3px) scaleX(1.1); }
  100% { opacity: .5; transform: translateY(0); }
}

/* scene 4: carmen-at-colonels-house */
.scn-carmen-at-colonels-house {
  background: 
    linear-gradient(180deg, #2a1a14 0%, #3a2a20 50%, #2a1a14 100%),
    radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-carmen-at-colonels-house .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1a14 100%);
  animation: cch-bg 15s ease-in-out infinite alternate;
}
.scn-carmen-at-colonels-house .wall {
  position: absolute; top: 0; left: 0; width: 100%; height: 80%;
  background: linear-gradient(180deg, #4a3a2e 0%, #3a2a20 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
}
.scn-carmen-at-colonels-house .lattice {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 60%;
  background: rgba(0,0,0,.3);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 90%, 12% 90%, 12% 10%, 0 10%, 25% 10%, 25% 90%, 38% 90%, 38% 10%, 50% 10%, 50% 90%, 62% 90%, 62% 10%, 75% 10%, 75% 90%, 88% 90%, 88% 10%, 100% 10%, 100% 0);
  border: 3px solid #5a4a3e;
  box-shadow: inset 0 0 20px rgba(0,0,0,.4);
  animation: cch-lattice 8s ease-in-out infinite alternate;
}
.scn-carmen-at-colonels-house .figure-carmen-dance {
  position: absolute; bottom: 15%; left: 45%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #d4a050 0%, #b08030 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(200,160,80,.4);
  transform-origin: bottom center;
  animation: cch-carmen 3s ease-in-out infinite alternate;
}
.scn-carmen-at-colonels-house .figure-guitarist {
  position: absolute; bottom: 18%; left: 35%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: cch-guitar 4s ease-in-out infinite alternate;
}
.scn-carmen-at-colonels-house .figure-jose-peek {
  position: absolute; bottom: 12%; left: 28%;
  width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1510 0%, #0d0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cch-jose 6s ease-in-out infinite;
}
.scn-carmen-at-colonels-house .room-glow {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,100,.15) 0%, transparent 70%);
  animation: cch-glow 5s ease-in-out infinite alternate;
}
@keyframes cch-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cch-lattice { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.6 } }
@keyframes cch-carmen {
  0% { transform: translateY(0) rotate(0) scaleX(1); }
  50% { transform: translateY(-4px) rotate(8deg) scaleX(1.05); }
  100% { transform: translateY(-2px) rotate(-5deg) scaleX(1.02); }
}
@keyframes cch-guitar {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(-1px) rotate(-2deg); }
}
@keyframes cch-jose {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-1px) rotate(2deg); }
  70% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes cch-glow {
  0% { opacity: .4; transform: scale(1); }
  50% { opacity: .6; transform: scale(1.05); }
  100% { opacity: .5; transform: scale(0.95); }
}

.scn-going-to-triana {
  background: linear-gradient(180deg, #3a2a14 0%, #2a1a0a 40%, #1a0e04 100%),
              radial-gradient(ellipse at 60% 80%, #5a3a1e 0%, transparent 60%);
}
.scn-going-to-triana .wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(90deg, #4a3020 0%, #6a4a30 30%, #4a3020 70%, #3a2010 100%);
  animation: gtt-wall 12s ease-in-out infinite alternate;
}
.scn-going-to-triana .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(0deg, #1a0e04 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-going-to-triana .door {
  position:absolute; bottom:18%; left:25%; width:20%; height:55%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: gtt-door 18s ease-in-out infinite alternate;
}
.scn-going-to-triana .window {
  position:absolute; bottom:30%; right:15%; width:22%; height:35%;
  background: radial-gradient(ellipse at center, #f0c060 0%, #a07a30 60%, #4a3020 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-going-to-triana .lantern {
  position:absolute; top:12%; left:50%; width:6%; height:8%;
  background: radial-gradient(circle, #ffd080 0%, #e09040 50%, #4a3020 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #c08030, 0 0 80px 20px rgba(192,128,48,0.4);
  animation: gtt-lantern 4s ease-in-out infinite alternate;
}
.scn-going-to-triana .figure-carmen {
  position:absolute; bottom:18%; left:35%; width:10%; height:35%;
  background: linear-gradient(180deg, #a0461a 0%, #702a0a 60%, #4a1a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gtt-walk 6s ease-in-out infinite;
}
.scn-going-to-triana .figure-jose {
  position:absolute; bottom:18%; left:50%; width:9%; height:32%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gtt-stand 8s ease-in-out infinite;
}
.scn-going-to-triana .carriage {
  position:absolute; bottom:18%; right:5%; width:25%; height:30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%);
  border-radius: 20% 10% 40% 40% / 40% 30% 30% 30%;
  box-shadow: -10px 0 20px rgba(0,0,0,0.5);
  animation: gtt-carriage 20s ease-in-out infinite;
}
@keyframes gtt-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes gtt-door { 0% { transform: rotateY(0deg) scale(1) } 50% { transform: rotateY(-10deg) scale(1.02) } 100% { transform: rotateY(0deg) scale(1) } }
@keyframes gtt-lantern { 0% { box-shadow:0 0 30px 8px #c08030, 0 0 60px 16px rgba(192,128,48,0.3); opacity:0.8 } 50% { box-shadow:0 0 50px 14px #ffc060, 0 0 100px 30px rgba(255,192,96,0.5); opacity:1 } 100% { box-shadow:0 0 35px 10px #c08030, 0 0 70px 20px rgba(192,128,48,0.35); opacity:0.85 } }
@keyframes gtt-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8%) rotate(2deg) } 50% { transform: translateX(16%) rotate(-2deg) } 75% { transform: translateX(8%) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes gtt-stand { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2%) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes gtt-carriage { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-5%) scale(1.02) } 100% { transform: translateX(0) scale(1) } }

.scn-spending-gold-coin-together {
  background: linear-gradient(180deg, #3a2010 0%, #2a1408 30%, #1a0a04 100%),
              radial-gradient(ellipse at 30% 50%, #6a4020 0%, transparent 70%);
}
.scn-spending-gold-coin-together .bg-room {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 50%, #1a0e04 100%);
}
.scn-spending-gold-coin-together .table {
  position:absolute; bottom:20%; left:20%; right:20%; height:8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: sgc-table 10s ease-in-out infinite alternate;
}
.scn-spending-gold-coin-together .oranges {
  position:absolute; bottom:30%; left:28%; width:5%; height:5%;
  background: radial-gradient(circle at 40% 40%, #e08030 0%, #a04010 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: sgc-food 6s ease-in-out infinite;
}
.scn-spending-gold-coin-together .bottle {
  position:absolute; bottom:30%; left:45%; width:4%; height:14%;
  background: linear-gradient(180deg, #c0a050 0%, #806020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.5);
  animation: sgc-bottle 8s ease-in-out infinite alternate;
}
.scn-spending-gold-coin-together .roll {
  position:absolute; bottom:30%; left:55%; width:8%; height:4%;
  background: linear-gradient(180deg, #c08040 0%, #a06020 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: sgc-food 7s ease-in-out infinite reverse;
}
.scn-spending-gold-coin-together .sweets {
  position:absolute; bottom:30%; left:65%; width:4%; height:4%;
  background: radial-gradient(circle, #d08050 0%, #b06030 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: sgc-food 5s ease-in-out infinite;
}
.scn-spending-gold-coin-together .figure-carmen {
  position:absolute; bottom:15%; left:22%; width:12%; height:40%;
  background: linear-gradient(180deg, #a0461a 0%, #702a0a 60%, #4a1a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sgc-arm 6s ease-in-out infinite;
}
.scn-spending-gold-coin-together .figure-jose {
  position:absolute; bottom:15%; right:22%; width:11%; height:38%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sgc-seat 8s ease-in-out infinite;
}
.scn-spending-gold-coin-together .lantern {
  position:absolute; top:10%; left:45%; width:5%; height:7%;
  background: radial-gradient(circle, #ffd080 0%, #e09040 50%, #4a3020 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #c08030, 0 0 80px 20px rgba(192,128,48,0.4);
  animation: sgc-lantern 4s ease-in-out infinite alternate;
}
@keyframes sgc-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2%) } 100% { transform: translateY(0) } }
@keyframes sgc-food { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(10deg) scale(1.1) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes sgc-bottle { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3%) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes sgc-arm { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(10%) rotate(-5deg) } 60% { transform: translateX(0) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sgc-seat { 0% { transform: translateY(0) } 50% { transform: translateY(-1%) } 100% { transform: translateY(0) } }
@keyframes sgc-lantern { 0% { box-shadow:0 0 30px 8px #c08030, 0 0 60px 16px rgba(192,128,48,0.3); opacity:0.8 } 50% { box-shadow:0 0 50px 14px #ffc060, 0 0 100px 30px rgba(255,192,96,0.5); opacity:1 } 100% { box-shadow:0 0 35px 10px #c08030, 0 0 70px 20px rgba(192,128,48,0.35); opacity:0.85 } }

.scn-carmen-pays-her-debt {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 50%, #0a0502 100%),
              radial-gradient(ellipse at 50% 70%, #4a2a14 0%, transparent 70%);
}
.scn-carmen-pays-her-debt .bg-room {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #3a2010 0%, #1a0e04 100%);
}
.scn-carmen-pays-her-debt .floor-spread {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(0deg, #0a0502 0%, #1a0e04 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-carmen-pays-her-debt .item {
  position:absolute; bottom:10%; width:4%; height:4%;
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-carmen-pays-her-debt .item1 {
  left:30%; background: radial-gradient(circle, #c08040 0%, #a06020 100%);
  animation: cpd-scatter 8s ease-in-out infinite;
}
.scn-carmen-pays-her-debt .item2 {
  left:45%; background: radial-gradient(circle, #d09050 0%, #b07030 100%);
  animation: cpd-scatter 9s ease-in-out infinite 2s;
}
.scn-carmen-pays-her-debt .item3 {
  left:60%; background: radial-gradient(circle, #c08040 0%, #8a5a20 100%);
  animation: cpd-scatter 7s ease-in-out infinite 4s;
}
.scn-carmen-pays-her-debt .figure-jose {
  position:absolute; bottom:15%; left:35%; width:12%; height:45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cpd-jose 10s ease-in-out infinite;
}
.scn-carmen-pays-her-debt .figure-carmen-embrace {
  position:absolute; bottom:15%; left:30%; width:11%; height:40%;
  background: linear-gradient(180deg, #a0461a 0%, #702a0a 60%, #4a1a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cpd-embrace 6s ease-in-out infinite alternate;
}
.scn-carmen-pays-her-debt .lantern {
  position:absolute; top:10%; left:45%; width:5%; height:7%;
  background: radial-gradient(circle, #ffd080 0%, #e09040 50%, #4a3020 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #c08030, 0 0 80px 20px rgba(192,128,48,0.4);
  animation: cpd-lantern 4s ease-in-out infinite alternate;
}
@keyframes cpd-scatter { 0% { transform: translateY(0) rotate(0deg) scale(1) } 50% { transform: translateY(-5%) rotate(180deg) scale(1.2) } 100% { transform: translateY(0) rotate(360deg) scale(1) } }
@keyframes cpd-jose { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-2deg) } }
@keyframes cpd-embrace { 0% { transform: translateX(-5%) rotate(-10deg) scale(1) } 50% { transform: translateX(0) rotate(0deg) scale(1.05) } 100% { transform: translateX(-5%) rotate(-10deg) scale(1) } }
@keyframes cpd-lantern { 0% { box-shadow:0 0 30px 8px #c08030, 0 0 60px 16px rgba(192,128,48,0.3); opacity:0.8 } 50% { box-shadow:0 0 50px 14px #ffc060, 0 0 100px 30px rgba(255,192,96,0.5); opacity:1 } 100% { box-shadow:0 0 35px 10px #c08030, 0 0 70px 20px rgba(192,128,48,0.35); opacity:0.85 } }

.scn-wild-frolic-in-candilejo {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 30%, #0a0502 100%),
              radial-gradient(ellipse at 40% 60%, #5a3a1a 0%, transparent 70%);
}
.scn-wild-frolic-in-candilejo .bg-room {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #3a2010 0%, #1a0e04 100%);
}
.scn-wild-frolic-in-candilejo .table {
  position:absolute; bottom:15%; left:10%; right:10%; height:6%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: wfc-table 10s ease-in-out infinite alternate;
}
.scn-wild-frolic-in-candilejo .water-jar {
  position:absolute; bottom:18%; left:35%; width:8%; height:16%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
  animation: wfc-jar 6s ease-in-out infinite;
}
.scn-wild-frolic-in-candilejo .old-woman {
  position:absolute; bottom:10%; left:50%; width:12%; height:30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wfc-old 8s ease-in-out infinite;
}
.scn-wild-frolic-in-candilejo .figure-carmen {
  position:absolute; bottom:12%; left:30%; width:10%; height:35%;
  background: linear-gradient(180deg, #a0461a 0%, #702a0a 60%, #4a1a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wfc-carmen 4s ease-in-out infinite;
}
.scn-wild-frolic-in-candilejo .figure-jose {
  position:absolute; bottom:12%; right:25%; width:9%; height:33%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wfc-jose 6s ease-in-out infinite;
}
.scn-wild-frolic-in-candilejo .food {
  position:absolute; width:3%; height:3%;
  border-radius: 50%;
  background: radial-gradient(circle, #c08040 0%, #a06020 100%);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-wild-frolic-in-candilejo .fragment-a {
  top:20%; left:20%;
  animation: wfc-fly 5s ease-in-out infinite;
}
.scn-wild-frolic-in-candilejo .fragment-b {
  top:30%; left:50%;
  animation: wfc-fly 7s ease-in-out infinite 2s;
}
.scn-wild-frolic-in-candilejo .fragment-c {
  top:15%; left:70%;
  animation: wfc-fly 6s ease-in-out infinite 4s;
}
@keyframes wfc-table { 0% { transform: translateY(0) } 50% { transform: translateY(-3%) } 100% { transform: translateY(0) } }
@keyframes wfc-jar { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(2deg) scale(1.05) } 100% { transform: rotate(-2deg) scale(1) } }
@keyframes wfc-old { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4%) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes wfc-carmen { 0% { transform: translateX(0) rotate(-5deg) } 30% { transform: translateX(10%) rotate(5deg) } 60% { transform: translateX(20%) rotate(-5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wfc-jose { 0% { transform: translateY(0) } 50% { transform: translateY(-3%) } 100% { transform: translateY(0) } }
@keyframes wfc-fly { 0% { transform: translate(0,0) scale(1) rotate(0deg) } 30% { transform: translate(20%,-30%) scale(1.3) rotate(45deg) } 60% { transform: translate(-10%,-20%) scale(0.8) rotate(90deg) } 100% { transform: translate(0,0) scale(1) rotate(0deg) } }

/* led-away-by-jose scene */
.scn-led-away-by-jose { background: linear-gradient(180deg, #0c0a1e 0%, #1a1430 40%, #2a1e3a 70%, #0e0a16 100%), radial-gradient(ellipse at 30% 50%, #2a1e3a 0%, transparent 70%); }
.scn-led-away-by-jose .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0f0c2e 0%, #1a1430 50%, #08061a 100%); animation: ljb-sky 8s ease-in-out infinite alternate; }
.scn-led-away-by-jose .street { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a1528 0%, #0d0a18 100%); clip-path: polygon(0 20%,100% 0,100% 100%,0 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); animation: ljb-street 12s ease-in-out infinite alternate; }
.scn-led-away-by-jose .door { position:absolute; bottom:35%; left:20%; width:40px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 5% 5% 0 0; box-shadow: 0 0 20px 6px rgba(40,30,20,.3), inset -4px 0 8px rgba(0,0,0,.5); animation: ljb-door 6s ease-in-out infinite alternate; }
.scn-led-away-by-jose .figure-jose { position:absolute; bottom:32%; left:35%; width:24px; height:50px; background: linear-gradient(180deg, #0f0c1a 0%, #050308 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ljb-jose 4s ease-in-out infinite; }
.scn-led-away-by-jose .figure-narrator { position:absolute; bottom:32%; left:45%; width:22px; height:48px; background: linear-gradient(180deg, #121026 0%, #080614 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ljb-narrator 4s ease-in-out infinite; animation-delay: -2s; }
.scn-led-away-by-jose .lantern { position:absolute; bottom:40%; left:30%; width:6px; height:6px; background: radial-gradient(circle, #d09040 0%, #a06020 50%, #1a1408 100%); border-radius: 50%; box-shadow: 0 0 16px 4px #b07030, 0 0 32px 8px rgba(176,112,48,.4); animation: ljb-lantern 3s ease-in-out infinite; }
.scn-led-away-by-jose .bridge { position:absolute; bottom:28%; right:10%; width:70px; height:20px; background: linear-gradient(180deg, #1e1830 0%, #0e0a1a 100%); border-radius: 30% 30% 0 0; clip-path: polygon(0 0,100% 0,90% 100%,10% 100%); animation: ljb-bridge 20s linear infinite; }
@keyframes ljb-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.5 } }
@keyframes ljb-street { 0% { transform: rotateX(0) } 50% { transform: rotateX(2deg) scaleY(1.02) } 100% { transform: rotateX(0) } }
@keyframes ljb-door { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) rotateY(2deg) } 100% { transform: translateX(0) } }
@keyframes ljb-jose { 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 ljb-narrator { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(-6px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-12px) translateY(0) rotate(2deg) } 75% { transform: translateX(-18px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-24px) translateY(0) rotate(0) } }
@keyframes ljb-lantern { 0%,100% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(5deg) scale(1.1) } }
@keyframes ljb-bridge { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }

/* watch-returned-by-monks scene */
.scn-watch-returned-by-monks { background: linear-gradient(180deg, #e8dcc0 0%, #d4c6a8 40%, #b8a88c 100%), radial-gradient(ellipse at 70% 30%, #f0e8d0 0%, transparent 60%); }
.scn-watch-returned-by-monks .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #d4c6a8 0%, #e0d4b8 50%, #c8b898 100%); box-shadow: inset 0 0 100px rgba(0,0,0,.05); }
.scn-watch-returned-by-monks .window { position:absolute; top:10%; left:60%; width:70px; height:90px; background: linear-gradient(180deg, #c0d8e8 0%, #a0b8d0 100%); border-radius: 5%; box-shadow: inset 0 0 30px #fff8e0, 0 0 40px 10px rgba(255,248,224,.3); animation: wrbm-window 15s ease-in-out infinite alternate; }
.scn-watch-returned-by-monks .desk { position:absolute; bottom:15%; left:20%; width:120px; height:40px; background: linear-gradient(180deg, #8a6a4a 0%, #6a5038 100%); border-radius: 3% 3% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.2); animation: wrbm-desk 8s ease-in-out infinite alternate; }
.scn-watch-returned-by-monks .manuscript { position:absolute; bottom:20%; left:30%; width:40px; height:30px; background: linear-gradient(180deg, #f0e8d8 0%, #d8d0c0 100%); transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.15); animation: wrbm-ms 12s ease-in-out infinite alternate; }
.scn-watch-returned-by-monks .watch-glow { position:absolute; bottom:25%; left:55%; width:18px; height:18px; background: radial-gradient(circle, #ffd080 0%, #e0a050 40%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 24px 8px #e0a050, 0 0 48px 16px rgba(224,160,80,.3); animation: wrbm-watch 4s ease-in-out infinite alternate; }
.scn-watch-returned-by-monks .monk-figure { position:absolute; bottom:12%; left:45%; width:28px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wrbm-monk 6s ease-in-out infinite; }
.scn-watch-returned-by-monks .chair { position:absolute; bottom:12%; left:35%; width:30px; height:36px; background: linear-gradient(180deg, #5a3a22 0%, #3a2010 100%); border-radius: 10% 10% 0 0; clip-path: polygon(10% 0,90% 0,100% 100%,0% 100%); animation: wrbm-chair 10s ease-in-out infinite alternate; }
@keyframes wrbm-window { 0% { box-shadow: inset 0 0 20px #fff8e0, 0 0 30px 5px rgba(255,248,224,.2) } 50% { box-shadow: inset 0 0 40px #ffecc0, 0 0 60px 15px rgba(255,236,192,.4) } 100% { box-shadow: inset 0 0 20px #fff8e0, 0 0 30px 5px rgba(255,248,224,.2) } }
@keyframes wrbm-desk { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes wrbm-ms { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes wrbm-watch { 0% { box-shadow: 0 0 20px 4px #e0a050, 0 0 40px 10px rgba(224,160,80,.2); opacity:.9 } 50% { box-shadow: 0 0 40px 12px #ffc060, 0 0 80px 24px rgba(255,192,96,.4); opacity:1 } 100% { box-shadow: 0 0 20px 4px #e0a050, 0 0 40px 10px rgba(224,160,80,.2); opacity:.9 } }
@keyframes wrbm-monk { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(0) } 75% { transform: translateX(4px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes wrbm-chair { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(1deg) scale(1.01) } 100% { transform: rotate(0) scale(1) } }

/* monk-tells-of-capture scene */
.scn-monk-tells-of-capture { background: linear-gradient(180deg, #c8b088 0%, #a08060 40%, #806040 100%), radial-gradient(ellipse at 50% 0%, #d0b898 0%, transparent 70%); }
.scn-monk-tells-of-capture .bg-room { position:absolute; inset:0; background: linear-gradient(90deg, #b09878 0%, #c8b088 50%, #a08060 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.15); animation: mtoc-room 10s ease-in-out infinite alternate; }
.scn-monk-tells-of-capture .window-light { position:absolute; top:10%; right:15%; width:50px; height:70px; background: linear-gradient(180deg, #f0e8d8 0%, #d8ccb8 100%); border-radius: 5%; box-shadow: inset 0 0 30px #fff8e0, 0 0 50px 10px rgba(255,248,224,.25); animation: mtoc-window 6s ease-in-out infinite alternate; }
.scn-monk-tells-of-capture .candle { position:absolute; bottom:40%; left:35%; width:8px; height:30px; background: linear-gradient(180deg, #f0d080 0%, #c09050 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 10px #e0a050; animation: mtoc-candle 2s ease-in-out infinite alternate; }
.scn-monk-tells-of-capture .monk-talking { position:absolute; bottom:15%; left:30%; width:30px; height:65px; background: linear-gradient(180deg, #2a1a0a 0%, #0e0804 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mtoc-monk 4s ease-in-out infinite; }
.scn-monk-tells-of-capture .narrator-listening { position:absolute; bottom:15%; left:55%; width:26px; height:60px; background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mtoc-narrator 4s ease-in-out infinite; animation-delay: -2s; }
.scn-monk-tells-of-capture .table { position:absolute; bottom:12%; left:25%; width:100px; height:30px; background: linear-gradient(180deg, #6a5038 0%, #4a3420 100%); border-radius: 5% 5% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: mtoc-table 8s ease-in-out infinite alternate; }
.scn-monk-tells-of-capture .rosary { position:absolute; bottom:22%; left:40%; width:12px; height:20px; background: radial-gradient(circle at 50% 30%, #806040 0%, #4a3420 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: mtoc-rosary 5s ease-in-out infinite alternate; }
@keyframes mtoc-room { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mtoc-window { 0% { box-shadow: inset 0 0 20px #fff8e0, 0 0 40px 6px rgba(255,248,224,.2) } 50% { box-shadow: inset 0 0 40px #ffecc0, 0 0 60px 15px rgba(255,236,192,.3) } 100% { box-shadow: inset 0 0 20px #fff8e0, 0 0 40px 6px rgba(255,248,224,.2) } }
@keyframes mtoc-candle { 0% { transform: scaleY(1) scaleX(1); opacity:.9 } 50% { transform: scaleY(1.05) scaleX(1.02); opacity:1 } 100% { transform: scaleY(0.95) scaleX(0.98); opacity:.8 } }
@keyframes mtoc-monk { 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(4px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes mtoc-narrator { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-6px) translateY(0) rotate(2deg) } 75% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes mtoc-table { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes mtoc-rosary { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0) } }

/* learning-jose-fate scene */
.scn-learning-jose-fate { background: linear-gradient(180deg, #b8a898 0%, #988878 40%, #786868 100%), radial-gradient(ellipse at 30% 40%, #a09080 0%, transparent 60%); }
.scn-learning-jose-fate .bg-taberna { position:absolute; inset:0; background: linear-gradient(90deg, #a09080 0%, #b8a898 50%, #988878 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.1); }
.scn-learning-jose-fate .bars { position:absolute; top:0; left:10%; width:4px; height:100%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); box-shadow: 8px 0 0 #6a5a4a, 16px 0 0 #6a5a4a, 24px 0 0 #6a5a4a; animation: ljf-bars 20s ease-in-out infinite alternate; }
.scn-learning-jose-fate .corregidor { position:absolute; bottom:15%; left:40%; width:28px; height:60px; background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ljf-corregidor 6s ease-in-out infinite; }
.scn-learning-jose-fate .narrator { position:absolute; bottom:15%; left:55%; width:24px; height:55px; background: linear-gradient(180deg, #12100e 0%, #080604 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ljf-narrator 6s ease-in-out infinite; animation-delay: -3s; }
.scn-learning-jose-fate .desk { position:absolute; bottom:12%; left:25%; width:100px; height:28px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-learning-jose-fate .watch-dark { position:absolute; bottom:18%; left:50%; width:16px; height:16px; background: radial-gradient(circle, #806050 0%, #504030 100%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(0,0,0,.5); animation: ljf-watch 8s ease-in-out infinite alternate; }
.scn-learning-jose-fate .shadow-cast { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); animation: ljf-shadow 12s ease-in-out infinite alternate; }
@keyframes ljf-bars { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes ljf-corregidor { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(2px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(4px) translateY(0) rotate(1deg) } 75% { transform: translateX(2px) translateY(-1px) rotate(0) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes ljf-narrator { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(-2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(-4px) translateY(0) rotate(-1deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(0) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes ljf-watch { 0% { box-shadow: 0 0 8px 2px rgba(0,0,0,.4); opacity:.8 } 50% { box-shadow: 0 0 16px 4px rgba(80,60,40,.3); opacity:1 } 100% { box-shadow: 0 0 8px 2px rgba(0,0,0,.4); opacity:.8 } }
@keyframes ljf-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.3 } }

.scn-jose-chooses-smuggling-life {
  background: linear-gradient(180deg, #1a1a1f 0%, #2a2a30 50%, #1a1a1f 100%),
              radial-gradient(ellipse at 50% 0%, #3a3a40 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-jose-chooses-smuggling-life .interior-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1c1c22 0%, #2c2c32 30%, #1c1c22 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.7);
}
.scn-jose-chooses-smuggling-life .window {
  position: absolute; top: 15%; left: 15%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #3a3a50 0%, #2a2a40 100%);
  border: 4px solid #4a4a55; border-radius: 4px;
  box-shadow: 0 0 30px 6px rgba(100,100,140,.3);
  animation: jch-window 8s ease-in-out infinite alternate;
}
.scn-jose-chooses-smuggling-life .table {
  position: absolute; bottom: 20%; left: 20%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-jose-chooses-smuggling-life .candle {
  position: absolute; bottom: 30%; left: 25%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #f0d080 0%, #b09060 100%);
  border-radius: 2px;
}
.scn-jose-chooses-smuggling-life .glow {
  box-shadow: 0 0 40px 12px rgba(200,160,80,.5), 0 0 80px 24px rgba(200,160,80,.2);
  animation: jch-candle 3s ease-in-out infinite alternate;
}
.scn-jose-chooses-smuggling-life .figure-sitting {
  position: absolute; bottom: 12%; left: 22%; width: 40px; height: 70px;
  background: radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jch-sit 4s ease-in-out infinite;
}
.scn-jose-chooses-smuggling-life .figure-standing {
  position: absolute; bottom: 8%; left: 45%; width: 30px; height: 90px;
  background: radial-gradient(ellipse at 50% 20%, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jch-stand 5s ease-in-out infinite;
}
.scn-jose-chooses-smuggling-life .chairs {
  position: absolute; bottom: 18%; left: 18%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,.5);
  transform: rotate(-5deg);
}
.scn-jose-chooses-smuggling-life .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: jch-shadow 6s ease-in-out infinite alternate;
}
@keyframes jch-window { 0% { opacity: .7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: .8; transform: scaleY(.98); } }
@keyframes jch-candle { 0% { box-shadow: 0 0 30px 8px rgba(200,160,80,.4), 0 0 60px 16px rgba(200,160,80,.15); } 50% { box-shadow: 0 0 50px 16px rgba(200,160,80,.6), 0 0 100px 32px rgba(200,160,80,.3); } 100% { box-shadow: 0 0 35px 10px rgba(200,160,80,.45), 0 0 70px 20px rgba(200,160,80,.2); } }
@keyframes jch-sit { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes jch-stand { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes jch-shadow { 0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .65; } }

.scn-carmen-tent-of-three-hoops {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 40%, #6a3a2a 100%),
              radial-gradient(ellipse at 50% 100%, #8a4a3a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-carmen-tent-of-three-hoops .tent-roof {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.7);
  animation: cth-roof 10s ease-in-out infinite alternate;
}
.scn-carmen-tent-of-three-hoops .tent-pole {
  position: absolute; top: 5%; left: 50%; width: 4px; height: 70%;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%);
  transform: translateX(-50%);
  box-shadow: 2px 0 4px rgba(0,0,0,.5);
}
.scn-carmen-tent-of-three-hoops .fire {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #ff8030 0%, #ff6020 20%, #c04010 40%, #802010 60%, #401008 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: cth-fire 2s ease-in-out infinite alternate;
}
.scn-carmen-tent-of-three-hoops .glow-fire {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,160,60,.4) 0%, rgba(200,80,20,.2) 40%, transparent 70%);
  box-shadow: 0 0 60px 30px rgba(255,120,40,.3);
  animation: cth-glow 2s ease-in-out infinite alternate;
}
.scn-carmen-tent-of-three-hoops .figure-left {
  position: absolute; bottom: 10%; left: 25%; width: 35px; height: 80px;
  background: radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cth-figL 6s ease-in-out infinite;
}
.scn-carmen-tent-of-three-hoops .figure-right {
  position: absolute; bottom: 12%; right: 25%; width: 30px; height: 70px;
  background: radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cth-figR 6s ease-in-out infinite 3s;
}
.scn-carmen-tent-of-three-hoops .rug {
  position: absolute; bottom: 5%; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6a4a 20%, #5a3a2a 40%, #8a6a4a 60%, #6a4a3a 80%, #5a3a2a 100%);
  border-radius: 10px 10px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.4);
  transform: scaleY(0.6);
}
.scn-carmen-tent-of-three-hoops .hookah {
  position: absolute; bottom: 18%; left: 42%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
@keyframes cth-roof { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(.98) translateY(1px); } }
@keyframes cth-fire { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); } 50% { transform: translateX(-50%) scaleY(1.1) rotate(0deg); } 100% { transform: translateX(-50%) scaleY(.95) rotate(2deg); } }
@keyframes cth-glow { 0% { opacity: .7; transform: translateX(-50%) scale(.95); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05); } 100% { opacity: .8; transform: translateX(-50%) scale(.98); } }
@keyframes cth-figL { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(-3deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes cth-figR { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-1deg); } }

.scn-jose-joins-smugglers-jerez {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4e4 30%, #e0f0f0 60%, #c0d8d8 100%),
              radial-gradient(ellipse at 70% 80%, #f0e8d0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-jose-joins-smugglers-jerez .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6ab4d0 0%, #b0d4e4 50%, transparent 100%);
  animation: jjj-sky 12s ease-in-out infinite alternate;
}
.scn-jose-joins-smugglers-jerez .mountains {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a0b080 0%, #6a8050 50%, #4a6040 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.2);
  animation: jjj-mt 20s ease-in-out infinite alternate;
}
.scn-jose-joins-smugglers-jerez .path {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: perspective(200px) rotateX(20deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.15);
  animation: jjj-path 15s linear infinite;
}
.scn-jose-joins-smugglers-jerez .olive-tree {
  position: absolute; bottom: 28%; left: 20%; width: 40px; height: 70px;
  background: radial-gradient(ellipse at 50% 10%, #4a6a3a 0%, #2a4a2a 50%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: jjj-tree 8s ease-in-out infinite alternate;
}
.scn-jose-joins-smugglers-jerez .figure-walking {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 60px;
  background: radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jjj-walk 4s ease-in-out infinite;
}
.scn-jose-joins-smugglers-jerez .donkey {
  position: absolute; bottom: 15%; left: 45%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 60% 40% 40% / 50% 60% 40% 50%;
  animation: jjj-donkey 6s ease-in-out infinite;
}
.scn-jose-joins-smugglers-jerez .dust {
  position: absolute; bottom: 14%; left: 35%; width: 80px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,180,160,.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: jjj-dust 5s ease-in-out infinite;
}
@keyframes jjj-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes jjj-mt { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(.98); } 100% { transform: translateY(0) scaleX(1.01); } }
@keyframes jjj-path { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }
@keyframes jjj-tree { 0% { transform: rotate(-3deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(1.02); } 100% { transform: rotate(3deg) scaleY(.98); } }
@keyframes jjj-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes jjj-donkey { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 30% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 60% { transform: translateX(8px) translateY(0) rotate(-0.5deg); } 100% { transform: translateX(12px) translateY(0) rotate(0deg); } }
@keyframes jjj-dust { 0% { opacity: .6; transform: scale(1); } 50% { opacity: .3; transform: scale(1.5); } 100% { opacity: .6; transform: scale(1); } }

.scn-successful-smuggling-life {
  background: linear-gradient(180deg, #6a8a6a 0%, #8aaa8a 30%, #b0c8b0 60%, #d0e0d0 100%),
              radial-gradient(ellipse at 30% 70%, #f0e8c0 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-successful-smuggling-life .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a9a7a 0%, #5a7a5a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.2);
}
.scn-successful-smuggling-life .campfire {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 35px;
  background: radial-gradient(ellipse at 50% 100%, #f0a050 0%, #d07020 30%, #a04010 60%, #602010 80%, #301008 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ssl-fire 2.5s ease-in-out infinite alternate;
}
.scn-successful-smuggling-life .tent-exterior {
  position: absolute; bottom: 25%; left: 55%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a2a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  box-shadow: -4px 0 8px rgba(0,0,0,.3);
  animation: ssl-tent 8s ease-in-out infinite alternate;
}
.scn-successful-smuggling-life .mule {
  position: absolute; bottom: 15%; left: 20%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 50%, #5a4a3a 100%);
  border-radius: 40% 60% 40% 40% / 50% 60% 40% 50%;
  transform: scaleX(-1);
  animation: ssl-mule 10s ease-in-out infinite;
}
.scn-successful-smuggling-life .bundle {
  position: absolute; bottom: 18%; left: 15%; width: 30px; height: 30px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 2px 2px 4px rgba(0,0,0,.4);
  transform: rotate(5deg);
  animation: ssl-bundle 12s ease-in-out infinite alternate;
}
.scn-successful-smuggling-life .figure-seated {
  position: absolute; bottom: 18%; left: 28%; width: 25px; height: 50px;
  background: radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ssl-sit 5s ease-in-out infinite;
}
.scn-successful-smuggling-life .figure-standing-smug {
  position: absolute; bottom: 12%; right: 15%; width: 20px; height: 65px;
  background: radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ssl-stand 4s ease-in-out infinite;
}
@keyframes ssl-fire { 0% { transform: translateX(-50%) scaleY(1) rotate(-1deg); } 50% { transform: translateX(-50%) scaleY(1.15) rotate(0deg); } 100% { transform: translateX(-50%) scaleY(.9) rotate(1deg); } }
@keyframes ssl-tent { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.01) translateY(-2px); } 100% { transform: scaleY(.98) translateY(1px); } }
@keyframes ssl-mule { 0% { transform: scaleX(-1) translateX(0) rotate(0deg); } 30% { transform: scaleX(-1) translateX(-3px) rotate(-1deg); } 60% { transform: scaleX(-1) translateX(0) rotate(1deg); } 100% { transform: scaleX(-1) translateX(0) rotate(0deg); } }
@keyframes ssl-bundle { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ssl-sit { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-1px) rotate(-1deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes ssl-stand { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(1deg); } 66% { transform: translateX(-1px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* Scene 1: carmen-infidelity-malaga (dim interior, tense) */
.scn-carmen-infidelity-malaga {
  background:
    linear-gradient(135deg, #1a1410 0%, #2a1e16 50%, #3d2a1e 100%),
    radial-gradient(ellipse at 40% 60%, #3d2a1e 0%, transparent 60%);
}
.scn-carmen-infidelity-malaga .wall-shadow {
  position: absolute; inset: 0; background: linear-gradient(120deg, transparent 30%, #0a0806 90%); opacity: 0.6; animation: ci-wall 6s ease-in-out infinite alternate;
}
.scn-carmen-infidelity-malaga .table {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2216 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.8); animation: ci-table 8s ease-in-out infinite;
}
.scn-carmen-infidelity-malaga .chair-left {
  position: absolute; bottom: 24%; left: 32%; width: 12%; height: 16%; background: linear-gradient(180deg, #4a2e1e 0%, #2a1a0e 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: -4px 4px 8px rgba(0,0,0,0.5); animation: ci-chair-l 5s ease-in-out infinite alternate;
}
.scn-carmen-infidelity-malaga .chair-right {
  position: absolute; bottom: 24%; right: 32%; width: 12%; height: 16%; background: linear-gradient(180deg, #4a2e1e 0%, #2a1a0e 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: 4px 4px 8px rgba(0,0,0,0.5); animation: ci-chair-r 5s ease-in-out infinite alternate-reverse;
}
.scn-carmen-infidelity-malaga .figure-sitting {
  position: absolute; bottom: 30%; left: 35%; width: 10%; height: 22%; background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ci-sit 4s ease-in-out infinite;
}
.scn-carmen-infidelity-malaga .figure-standing {
  position: absolute; bottom: 30%; right: 34%; width: 8%; height: 28%; background: linear-gradient(180deg, #1c1412 0%, #0c0a08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ci-stand 3.5s ease-in-out infinite;
}
.scn-carmen-infidelity-malaga .lantern-glow {
  position: absolute; bottom: 45%; left: 50%; width: 6%; height: 8%; background: radial-gradient(circle, #e8b050 0%, #b87830 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px #b87830, 0 0 80px 40px rgba(184,120,48,0.3); animation: ci-lantern 2s ease-in-out infinite alternate;
}
.scn-carmen-infidelity-malaga .window-shape {
  position: absolute; top: 15%; right: 20%; width: 18%; height: 28%; background: linear-gradient(180deg, #3a2a1e 0%, #2a1a10 100%); border: 2px solid #5a3a2a; border-radius: 8% 8% 2% 2%; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: ci-window 12s ease-in-out infinite alternate;
}
@keyframes ci-wall { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.6; } }
@keyframes ci-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ci-chair-l { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes ci-chair-r { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes ci-sit { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(-2deg); } 70% { transform: translateX(4px) rotate(2deg); } }
@keyframes ci-stand { 0%,100% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(-2px) scaleY(1.02); } 75% { transform: translateX(3px) scaleY(0.98); } }
@keyframes ci-lantern { 0% { box-shadow: 0 0 30px 15px #b87830, 0 0 60px 30px rgba(184,120,48,0.2); opacity: 0.9; } 50% { box-shadow: 0 0 50px 25px #d8a050, 0 0 100px 50px rgba(216,160,80,0.4); opacity: 1; } 100% { box-shadow: 0 0 35px 18px #b87830, 0 0 70px 35px rgba(184,120,48,0.25); opacity: 0.85; } }
@keyframes ci-window { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }

/* Scene 2: jose-carries-carmen-off (sunlit, tense) */
.scn-jose-carries-carmen-off {
  background:
    linear-gradient(180deg, #4a7a9a 0%, #8ab4d4 30%, #d4e8f0 60%, #f0d8a0 100%),
    radial-gradient(ellipse at 50% 80%, #f0d8a0 0%, transparent 50%);
}
.scn-jose-carries-carmen-off .sky {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #3a6a8a 0%, #7aaed0 100%); animation: jc-sky 10s ease-in-out infinite alternate;
}
.scn-jose-carries-carmen-off .sun {
  position: absolute; top: 12%; left: 70%; width: 12%; height: 12%; background: radial-gradient(circle, #ffecb0 0%, #f0c860 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 30px #f0c860, 0 0 120px 60px rgba(240,200,96,0.3); animation: jc-sun 6s ease-in-out infinite alternate;
}
.scn-jose-carries-carmen-off .hills {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: jc-hills 15s ease-in-out infinite alternate;
}
.scn-jose-carries-carmen-off .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #a08050 0%, #705030 100%); animation: jc-ground 8s ease-in-out infinite alternate;
}
.scn-jose-carries-carmen-off .couple {
  position: absolute; bottom: 28%; left: 20%; width: 10%; height: 24%; background: linear-gradient(180deg, #2a2018 0%, #0a0806 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: jc-couple 4s ease-in-out infinite;
}
.scn-jose-carries-carmen-off .dust-cloud {
  position: absolute; bottom: 28%; left: 18%; width: 20%; height: 6%; background: rgba(180,150,100,0.3); border-radius: 50%; filter: blur(8px); animation: jc-dust 3s ease-in-out infinite;
}
.scn-jose-carries-carmen-off .shadow-long {
  position: absolute; bottom: 0; left: 15%; width: 30%; height: 20%; background: linear-gradient(120deg, rgba(0,0,0,0.4) 0%, transparent 100%); transform: skewX(-20deg); animation: jc-shadow 5s ease-in-out infinite alternate;
}
@keyframes jc-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes jc-sun { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.05) translateX(5px); } 100% { transform: scale(0.95) translateX(-3px); } }
@keyframes jc-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes jc-ground { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }
@keyframes jc-couple { 0%,100% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(8px) scaleY(1.02); } 50% { transform: translateX(16px) scaleY(1); } 75% { transform: translateX(24px) scaleY(0.98); } }
@keyframes jc-dust { 0% { transform: translateX(0) scale(1); opacity: 0.3; } 50% { transform: translateX(10px) scale(1.2); opacity: 0.5; } 100% { transform: translateX(20px) scale(1); opacity: 0.3; } }
@keyframes jc-shadow { 0% { opacity: 0.3; transform: skewX(-20deg) translateX(0); } 50% { opacity: 0.5; transform: skewX(-15deg) translateX(10px); } 100% { opacity: 0.4; transform: skewX(-25deg) translateX(5px); } }

/* Scene 3: carmen-wants-freedom (dim interior, tense) */
.scn-carmen-wants-freedom {
  background:
    linear-gradient(135deg, #1e1210 0%, #2e1c18 40%, #1a0e0c 100%),
    radial-gradient(ellipse at 50% 50%, #2e1c18 0%, transparent 70%);
}
.scn-carmen-wants-freedom .table-scene {
  position: absolute; bottom: 25%; left: 25%; width: 50%; height: 10%; background: linear-gradient(180deg, #5a3020 0%, #3a1a10 100%); border-radius: 6% 6% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.8); animation: cw-table 10s ease-in-out infinite;
}
.scn-carmen-wants-freedom .candle {
  position: absolute; bottom: 42%; left: 48%; width: 4%; height: 12%; background: linear-gradient(180deg, #e8c080 0%, #a06020 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 0 30px 15px #a06020, 0 0 60px 30px rgba(160,96,32,0.3); animation: cw-candle 2s ease-in-out infinite alternate;
}
.scn-carmen-wants-freedom .figure-left {
  position: absolute; bottom: 28%; left: 28%; width: 12%; height: 24%; background: linear-gradient(180deg, #1a1010 0%, #0a0606 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cw-left 4s ease-in-out infinite;
}
.scn-carmen-wants-freedom .figure-right {
  position: absolute; bottom: 28%; right: 28%; width: 12%; height: 24%; background: linear-gradient(180deg, #1a1010 0%, #0a0606 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cw-right 4s ease-in-out infinite;
}
.scn-carmen-wants-freedom .hand-left {
  position: absolute; bottom: 38%; left: 36%; width: 6%; height: 8%; background: linear-gradient(180deg, #201412 0%, #0c0806 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(20deg); animation: cw-handl 3s ease-in-out infinite;
}
.scn-carmen-wants-freedom .hand-right {
  position: absolute; bottom: 38%; right: 36%; width: 6%; height: 8%; background: linear-gradient(180deg, #201412 0%, #0c0806 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(-20deg); animation: cw-handr 3s ease-in-out infinite;
}
.scn-carmen-wants-freedom .shadow-flicker {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.5) 100%); opacity: 0.3; animation: cw-shadow 2.5s ease-in-out infinite alternate;
}
@keyframes cw-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes cw-candle { 0% { box-shadow: 0 0 20px 10px #a06020, 0 0 40px 20px rgba(160,96,32,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 40px 20px #c08040, 0 0 80px 40px rgba(192,128,64,0.4); opacity: 1; } 100% { box-shadow: 0 0 25px 12px #a06020, 0 0 50px 25px rgba(160,96,32,0.25); opacity: 0.85; } }
@keyframes cw-left { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-4px) rotate(-3deg); } 60% { transform: translateX(2px) rotate(2deg); } }
@keyframes cw-right { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(3deg); } 60% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes cw-handl { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-5px); } 100% { transform: rotate(25deg) translateY(0); } }
@keyframes cw-handr { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-5px); } 100% { transform: rotate(-25deg) translateY(0); } }
@keyframes cw-shadow { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.3; } }

/* Scene 4: jose-wounded-in-ambush (sunlit, dark mood) */
.scn-jose-wounded-in-ambush {
  background:
    linear-gradient(180deg, #d4c8a0 0%, #b8a880 30%, #887050 60%, #5a4020 100%),
    radial-gradient(ellipse at 50% 80%, #d4c8a0 0%, transparent 60%);
}
.scn-jose-wounded-in-ambush .sky-bleached {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #e8e0c0 0%, #c8b898 100%); animation: jw-sky 8s ease-in-out infinite alternate;
}
.scn-jose-wounded-in-ambush .ground-grit {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #887050 0%, #4a3020 100%); animation: jw-ground 12s ease-in-out infinite alternate;
}
.scn-jose-wounded-in-ambush .sun-harsh {
  position: absolute; top: 8%; left: 60%; width: 14%; height: 14%; background: radial-gradient(circle, #fff0c0 0%, #e0d090 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 40px #e0d090, 0 0 160px 80px rgba(224,208,144,0.2); animation: jw-sun 10s ease-in-out infinite alternate;
}
.scn-jose-wounded-in-ambush .wounded-figure {
  position: absolute; bottom: 22%; left: 30%; width: 12%; height: 18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-15deg); animation: jw-wounded 5s ease-in-out infinite;
}
.scn-jose-wounded-in-ambush .kneeling-figure {
  position: absolute; bottom: 22%; left: 46%; width: 10%; height: 22%; background: linear-gradient(180deg, #2a1c14 0%, #0c0806 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(5deg); animation: jw-kneeling 4s ease-in-out infinite;
}
.scn-jose-wounded-in-ambush .horse-stand {
  position: absolute; bottom: 18%; right: 16%; width: 20%; height: 24%; background: linear-gradient(180deg, #5a4030 0%, #2a1a10 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; animation: jw-horse 6s ease-in-out infinite;
}
.scn-jose-wounded-in-ambush .rifle {
  position: absolute; bottom: 28%; left: 38%; width: 14%; height: 4%; background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%); border-radius: 2px; transform: rotate(30deg); animation: jw-rifle 3s ease-in-out infinite alternate;
}
.scn-jose-wounded-in-ambush .heat-shimmer {
  position: absolute; top: 20%; left: 20%; width: 60%; height: 10%; background: rgba(255,240,200,0.1); filter: blur(10px); animation: jw-shimmer 4s ease-in-out infinite;
}
@keyframes jw-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes jw-ground { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }
@keyframes jw-sun { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.03) translateX(3px); } 100% { transform: scale(0.97) translateX(-3px); } }
@keyframes jw-wounded { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(-2px); } }
@keyframes jw-kneeling { 0%,100% { transform: rotate(5deg) scaleY(1); } 30% { transform: rotate(3deg) scaleY(1.02); } 70% { transform: rotate(7deg) scaleY(0.98); } }
@keyframes jw-horse { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 75% { transform: translateY(1px) rotate(-1deg); } }
@keyframes jw-rifle { 0% { transform: rotate(30deg) translateX(0); } 50% { transform: rotate(32deg) translateX(2px); } 100% { transform: rotate(28deg) translateX(-2px); } }
@keyframes jw-shimmer { 0% { opacity: 0; } 50% { opacity: 0.4; } 100% { opacity: 0; } }

.scn-sharing-ham-lunch {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #d2b48c 100%),
              radial-gradient(ellipse at 50% 100%, #d2b48c 0%, #556b2f 70%);
}
.scn-sharing-ham-lunch .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 50%, #fffacd 100%);
  animation: sil-sky 12s ease-in-out infinite alternate;
}
.scn-sharing-ham-lunch .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #9acd32 0%, #6b8e23 40%, #4a5d23 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  animation: sil-ground 10s ease-in-out infinite alternate;
}
.scn-sharing-ham-lunch .blanket {
  position: absolute; bottom: 20%; left: 38%; width: 24%; height: 12%;
  background: linear-gradient(135deg, #f5deb3 0%, #deb887 50%, #d2b48c 100%);
  border-radius: 40% 60% 40% 60%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: sil-blanket 8s ease-in-out infinite;
}
.scn-sharing-ham-lunch .ham {
  position: absolute; bottom: 30%; left: 44%; width: 8%; height: 6%;
  background: radial-gradient(circle at 30% 30%, #cd853f 0%, #a0522d 60%, #8b4513 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sil-food 6s ease-in-out infinite alternate;
}
.scn-sharing-ham-lunch .bread {
  position: absolute; bottom: 28%; left: 55%; width: 6%; height: 4%;
  background: radial-gradient(circle at 40% 40%, #f4a460 0%, #d2691e 70%);
  border-radius: 40% 40% 30% 30%;
  animation: sil-food 6s ease-in-out infinite alternate-reverse;
}
.scn-sharing-ham-lunch .figure-stranger {
  position: absolute; bottom: 15%; left: 30%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0f 40%, #3a1c0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: sil-eat 4s ease-in-out infinite;
}
.scn-sharing-ham-lunch .figure-guide {
  position: absolute; bottom: 15%; right: 30%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0f 40%, #3a1c0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: sil-sit 6s ease-in-out infinite;
}
.scn-sharing-ham-lunch .cloud-sil {
  position: absolute; top: 8%; left: 10%; width: 20%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: sil-cloud 30s linear infinite;
}
@keyframes sil-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes sil-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes sil-blanket {
  0%, 100% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg) translateY(-2px); }
}
@keyframes sil-food {
  0% { transform: scale(1); }
  50% { transform: scale(1.1) rotate(5deg); }
  100% { transform: scale(0.95) rotate(-3deg); }
}
@keyframes sil-eat {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(-1px) rotate(0deg); }
  75% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sil-sit {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes sil-cloud {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(120vw); }
}

.scn-traveling-to-venta-together {
  background: linear-gradient(180deg, #87ceeb 0%, #fff8dc 50%, #f5deb3 100%),
              radial-gradient(ellipse at 50% 80%, #d2b48c 0%, #8b7355 70%);
}
.scn-traveling-to-venta-together .sky-tt {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #fff8dc 70%, transparent 100%);
  animation: tvt-sky 15s ease-in-out infinite alternate;
}
.scn-traveling-to-venta-together .road-tt {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 50%;
  background: linear-gradient(135deg, #c4a882 0%, #a0866a 40%, #7c6b50 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: tvt-road 12s ease-in-out infinite alternate;
}
.scn-traveling-to-venta-together .horse-one {
  position: absolute; bottom: 18%; left: 20%; width: 16%; height: 20%;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0f 40%, #3a1c0a 100%);
  border-radius: 40% 30% 20% 40% / 60% 50% 30% 50%;
  transform-origin: bottom center;
  animation: tvt-horse 3s ease-in-out infinite;
}
.scn-traveling-to-venta-together .rider-one {
  position: absolute; bottom: 35%; left: 22%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0f 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  animation: tvt-rider 3s ease-in-out infinite;
}
.scn-traveling-to-venta-together .horse-two {
  position: absolute; bottom: 18%; left: 52%; width: 16%; height: 20%;
  background: linear-gradient(180deg, #a0522d 0%, #6b3a1f 40%, #4a2812 100%);
  border-radius: 40% 30% 20% 40% / 60% 50% 30% 50%;
  transform-origin: bottom center;
  animation: tvt-horse 3.5s ease-in-out infinite 0.5s;
}
.scn-traveling-to-venta-together .rider-two {
  position: absolute; bottom: 35%; left: 54%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #a0522d 0%, #6b3a1f 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  animation: tvt-rider 3.5s ease-in-out infinite 0.5s;
}
.scn-traveling-to-venta-together .dust-cloud {
  position: absolute; bottom: 12%; left: 30%; width: 20%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,150,120,0.6) 0%, rgba(180,150,120,0) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: tvt-dust 6s ease-in-out infinite;
}
@keyframes tvt-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes tvt-road {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.03) translateY(-2px); }
  100% { transform: scaleY(0.97) translateY(0); }
}
@keyframes tvt-horse {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
}
@keyframes tvt-rider {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  75% { transform: translateY(-1px) rotate(-2deg); }
}
@keyframes tvt-dust {
  0%, 100% { transform: translateX(0) scale(1); opacity: 0.6; }
  50% { transform: translateX(10px) scale(1.3); opacity: 0.3; }
}

.scn-speculating-about-brigand {
  background: linear-gradient(180deg, #fff5ee 0%, #f5deb3 40%, #d2b48c 100%),
              radial-gradient(ellipse at 50% 100%, #8b7355 0%, #5c4033 70%);
}
.scn-speculating-about-brigand .bg-sb {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f5deb3 0%, #d2b48c 50%, #a0866a 100%);
  animation: sb-bg 20s ease-in-out infinite alternate;
}
.scn-speculating-about-brigand .head-speaker {
  position: absolute; bottom: 30%; left: 15%; width: 15%; height: 20%;
  background: radial-gradient(circle at 60% 40%, #d2b48c 0%, #8b7355 60%, #5c4033 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 40% 40%;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%); /* no clamp, but allowed? It's not for a creature body, just to simulate profile? Avoid, use border-radius only. Remove clip-path. Use transform skew. Easier: use two divs: head and face profile? Better keep simple: use ellipse and transform for tilt. */
  /* Actually violated rule 6: no jagged clip-path on creatures. Use border-radius and transform instead. */
  /* Redesign without clip-path: use a div as head with border-radius, and another for nose? Too complex. Use simple circular head and body. */
  /* Let's simplify: head is oval, body is rectangle. */
  width: 12%; height: 16%;
  background: linear-gradient(180deg, #cd853f 0%, #8b4513 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(10deg);
  animation: sb-speak 2s ease-in-out infinite;
}
.scn-speculating-about-brigand .body-speaker {
  position: absolute; bottom: 10%; left: 12%; width: 16%; height: 22%;
  background: linear-gradient(180deg, #5c4033 0%, #3a2520 100%);
  border-radius: 30% 30% 20% 20%;
  animation: sb-body 4s ease-in-out infinite;
}
.scn-speculating-about-brigand .head-listener {
  position: absolute; bottom: 30%; right: 15%; width: 12%; height: 16%;
  background: linear-gradient(180deg, #cd853f 0%, #8b4513 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(-5deg);
  animation: sb-listen 3s ease-in-out infinite;
}
.scn-speculating-about-brigand .body-listener {
  position: absolute; bottom: 10%; right: 12%; width: 16%; height: 22%;
  background: linear-gradient(180deg, #5c4033 0%, #3a2520 100%);
  border-radius: 30% 30% 20% 20%;
  animation: sb-body 4s ease-in-out infinite 0.5s;
}
.scn-speculating-about-brigand .knife-sharp {
  position: absolute; bottom: 20%; left: 50%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 10% 10% 0 0;
  transform: rotate(30deg);
  transform-origin: bottom center;
  box-shadow: 0 0 4px 2px rgba(0,0,0,0.5);
  animation: sb-knife 1.5s ease-in-out infinite;
}
.scn-speculating-about-brigand .shadow-sb {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.4) 100%);
  animation: sb-shadow 8s ease-in-out infinite alternate;
}
@keyframes sb-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes sb-speak {
  0%, 100% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(14deg) translateY(-2px); }
}
@keyframes sb-listen {
  0%, 100% { transform: rotate(-5deg); }
  50% { transform: rotate(-8deg) translateY(-1px); }
}
@keyframes sb-body {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes sb-knife {
  0% { transform: rotate(30deg) scale(1); }
  50% { transform: rotate(37deg) scale(1.1); }
  100% { transform: rotate(30deg) scale(1); }
}
@keyframes sb-shadow {
  0% { opacity: 0.4; }
  100% { opacity: 0.6; }
}

.scn-praising-jose-maria {
  background: linear-gradient(180deg, #ffa07a 0%, #ffd700 40%, #8b4513 100%),
              radial-gradient(ellipse at 50% 20%, #ffd700 0%, #d2691e 70%);
}
.scn-praising-jose-maria .sky-pjm {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffa07a 0%, #ffd700 60%, transparent 100%);
  animation: pjm-sky 20s ease-in-out infinite alternate;
}
.scn-praising-jose-maria .sun-pjm {
  position: absolute; top: 10%; left: 60%; width: 16%; height: 16%;
  background: radial-gradient(circle at 50% 50%, #fff 0%, #ffd700 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffd700;
  animation: pjm-sun 12s ease-in-out infinite;
}
.scn-praising-jose-maria .figure-standing {
  position: absolute; bottom: 10%; left: 20%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #2c1a0e 0%, #1a0f07 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: pjm-stand 4s ease-in-out infinite;
}
.scn-praising-jose-maria .arm-raise {
  position: absolute; bottom: 45%; left: 25%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #2c1a0e 0%, #1a0f07 100%);
  border-radius: 20% 20% 30% 30%;
  transform-origin: bottom center;
  animation: pjm-arm 2.5s ease-in-out infinite;
}
.scn-praising-jose-maria .figure-seated {
  position: absolute; bottom: 10%; right: 20%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #3a2520 0%, #1a0f07 100%);
  border-radius: 45% 45% 35% 35% / 55% 50% 40% 40%;
  animation: pjm-seat 6s ease-in-out infinite;
}
.scn-praising-jose-maria .shadow-pjm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.5) 100%);
  animation: pjm-shadow 10s ease-in-out infinite alternate;
}
@keyframes pjm-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes pjm-sun {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}
@keyframes pjm-stand {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes pjm-arm {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes pjm-seat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes pjm-shadow {
  0% { opacity: 0.3; }
  100% { opacity: 0.5; }
}

/* girls-return-to-factory */
.scn-girls-return-to-factory { background: linear-gradient(180deg, #fbe9d0 0%, #f2d7b3 40%, #d6b88c 100%), radial-gradient(ellipse at 40% 60%, #ffe9c4 0%, transparent 60%); }
.scn-girls-return-to-factory .sky    { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #fde8c4 0%, #f4d6aa 70%, transparent 100%); animation: gfr-sky 14s ease-in-out infinite alternate; }
.scn-girls-return-to-factory .sun    { position:absolute; top:8%; left:15%; width:50px; height:50px; background: radial-gradient(circle, #ffe88a 0%, #f4c84a 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px #f4c84a; animation: gfr-sun 20s ease-in-out infinite alternate; }
.scn-girls-return-to-factory .factory{ position:absolute; bottom:32%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #b8926e 0%, #8a6b4e 100%); border-radius: 4% 4% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: gfr-factory 8s ease-in-out infinite; }
.scn-girls-return-to-factory .windows{ position:absolute; bottom:40%; left:28%; right:28%; height:10%; background: transparent; box-shadow: 6px 0 0 0 #fbe9d0, 18px 0 0 0 #fbe9d0, 30px 0 0 0 #fbe9d0, 42px 0 0 0 #fbe9d0, 54px 0 0 0 #fbe9d0; animation: gfr-windows 4s ease-in-out infinite alternate; }
.scn-girls-return-to-factory .path   { position:absolute; bottom:20%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #c9a87a 0%, #a6855a 100%); border-radius: 30% 30% 0 0; animation: gfr-path 12s ease-in-out infinite; }
.scn-girls-return-to-factory .figure { position:absolute; bottom:22%; width:12px; height:22px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-girls-return-to-factory .figure-a{ left:30%; animation: gfr-walk1 5s ease-in-out infinite; }
.scn-girls-return-to-factory .figure-b{ left:45%; animation: gfr-walk2 6s ease-in-out infinite 1s; }
@keyframes gfr-sky     { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes gfr-sun     { 0% { transform: translate(0,0) scale(1); box-shadow: 0 0 50px 15px #f4c84a; } 50% { transform: translate(8px,-4px) scale(1.05); box-shadow: 0 0 70px 25px #f4c84a; } 100% { transform: translate(-2px,2px) scale(0.97); box-shadow: 0 0 55px 18px #f4c84a; } }
@keyframes gfr-factory { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes gfr-windows { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes gfr-path    { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1); } }
@keyframes gfr-walk1   { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(6px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(12px) translateY(0) rotate(-1deg); } 75% { transform: translateX(18px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(24px) translateY(0) rotate(0deg); } }
@keyframes gfr-walk2   { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(-1deg); } 50% { transform: translateX(10px) translateY(0) rotate(2deg); } 75% { transform: translateX(15px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(20px) translateY(0) rotate(0deg); } }

/* first-sight-of-carmen */
.scn-first-sight-of-carmen { background: linear-gradient(180deg, #d4c4a8 0%, #b8a48c 40%, #9a8470 100%), radial-gradient(ellipse at 50% 70%, #e8d8c0 0%, transparent 60%); }
.scn-first-sight-of-carmen .bg-room  { position:absolute; inset:0; background: linear-gradient(180deg, #b29a82 0%, #7a6652 100%); animation: fsc-bg 10s ease-in-out infinite alternate; }
.scn-first-sight-of-carmen .floor   { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a5642 0%, #4a3a2a 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,0.4); animation: fsc-floor 6s ease-in-out infinite; }
.scn-first-sight-of-carmen .window  { position:absolute; top:10%; left:10%; width:60%; height:50%; background: radial-gradient(ellipse at 30% 50%, #fff8e0 0%, #b8a488 100%); border: 6px solid #5a4632; border-radius:4px; animation: fsc-window 8s ease-in-out infinite; }
.scn-first-sight-of-carmen .sunbeam { position:absolute; top:15%; left:15%; width:40%; height:60%; background: linear-gradient(135deg, rgba(255,248,224,0.6) 0%, rgba(255,248,224,0.1) 80%); clip-path: polygon(20% 0%, 80% 0%, 70% 100%, 30% 100%); filter: blur(4px); animation: fsc-sunbeam 5s ease-in-out infinite alternate; }
.scn-first-sight-of-carmen .table   { position:absolute; bottom:22%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #6a523a 0%, #4a3a22 100%); border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: fsc-table 4s ease-in-out infinite; }
.scn-first-sight-of-carmen .chair   { position:absolute; bottom:25%; left:12%; width:10%; height:18%; background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%); border-radius: 4px; animation: fsc-chair 7s ease-in-out infinite; }
.scn-first-sight-of-carmen .worker  { position:absolute; bottom:26%; left:35%; width:14px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.6); animation: fsc-worker 3s ease-in-out infinite; }
.scn-first-sight-of-carmen .cigar   { position:absolute; bottom:28%; left:48%; width:8px; height:4px; background: #5a3a1a; border-radius: 50% 50% 40% 40%; box-shadow: 0 0 4px #8a5a2a; animation: fsc-cigar 2s ease-in-out infinite; }
@keyframes fsc-bg      { 0% { filter: brightness(0.95); } 50% { filter: brightness(1); } 100% { filter: brightness(0.9); } }
@keyframes fsc-floor   { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes fsc-window  { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes fsc-sunbeam { 0% { opacity:0.5; transform: rotate(-2deg) scaleY(1); } 50% { opacity:0.8; transform: rotate(2deg) scaleY(1.05); } 100% { opacity:0.6; transform: rotate(-1deg) scaleY(1); } }
@keyframes fsc-table   { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes fsc-chair   { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fsc-worker  { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(5deg); } 60% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fsc-cigar   { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(1); } }

/* carmen-walks-by-factory */
.scn-carmen-walks-by-factory { background: linear-gradient(180deg, #f5e0c0 0%, #d8be9a 50%, #b89a78 100%), radial-gradient(ellipse at 30% 80%, #eedcc0 0%, transparent 70%); }
.scn-carmen-walks-by-factory .sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe4b0 0%, #f5d4a8 60%, transparent 100%); animation: cwf-sky 12s ease-in-out infinite alternate; }
.scn-carmen-walks-by-factory .wall   { position:absolute; bottom:30%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #a0805a 0%, #7a603e 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.2); animation: cwf-wall 8s ease-in-out infinite; }
.scn-carmen-walks-by-factory .door   { position:absolute; bottom:30%; left:45%; width:10%; height:30%; background: linear-gradient(180deg, #6a4e32 0%, #4a3220 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: cwf-door 5s ease-in-out infinite; }
.scn-carmen-walks-by-factory .bench  { position:absolute; bottom:22%; left:10%; width:20%; height:6%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a22 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: cwf-bench 6s ease-in-out infinite; }
.scn-carmen-walks-by-factory .narrator{ position:absolute; bottom:24%; left:15%; width:12px; height:20px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cwf-narrator 4s ease-in-out infinite; }
.scn-carmen-walks-by-factory .girl   { position:absolute; bottom:24%; width:10px; height:18px; background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-carmen-walks-by-factory .girl-a { left:55%; animation: cwf-girl1 6s ease-in-out infinite; }
.scn-carmen-walks-by-factory .girl-b { left:70%; animation: cwf-girl2 7s ease-in-out infinite 0.5s; }
@keyframes cwf-sky     { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes cwf-wall    { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cwf-door    { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(5deg); } 100% { transform: rotateY(0deg); } }
@keyframes cwf-bench   { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cwf-narrator{ 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(3deg) translateY(-1px); } 60% { transform: rotate(-2deg) translateY(0); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes cwf-girl1   { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(5px) translateY(-1px); } 50% { transform: translateX(10px) translateY(0); } 75% { transform: translateX(15px) translateY(-1px); } 100% { transform: translateX(20px) translateY(0); } }
@keyframes cwf-girl2   { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(4px) translateY(-2px); } 50% { transform: translateX(8px) translateY(0); } 75% { transform: translateX(12px) translateY(-2px); } 100% { transform: translateX(16px) translateY(0); } }

/* carmen-appears-at-gate */
.scn-carmen-appears-at-gate { background: linear-gradient(180deg, #ecd6b0 0%, #d4b88e 50%, #b8986a 100%), radial-gradient(ellipse at 50% 90%, #f5e0c4 0%, transparent 60%); }
.scn-carmen-appears-at-gate .sky      { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f5dbb0 0%, #e8c898 70%, transparent 100%); animation: cag-sky 15s ease-in-out infinite alternate; }
.scn-carmen-appears-at-gate .gate     { position:absolute; bottom:25%; left:30%; right:30%; height:40%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3e26 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.4); animation: cag-gate 7s ease-in-out infinite; }
.scn-carmen-appears-at-gate .door-gate{ position:absolute; bottom:30%; left:45%; width:10%; height:30%; background: linear-gradient(180deg, #6a4e32 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; transform-origin: left center; animation: cag-door 4s ease-in-out infinite; }
.scn-carmen-appears-at-gate .ground   { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #a0805a 0%, #7a603e 100%); border-radius: 30% 30% 0 0; animation: cag-ground 6s ease-in-out infinite; }
.scn-carmen-appears-at-gate .bystander{ position:absolute; bottom:22%; width:12px; height:24px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-carmen-appears-at-gate .bystander-1{ left:20%; animation: cag-bystand1 5s ease-in-out infinite; }
.scn-carmen-appears-at-gate .bystander-2{ left:72%; animation: cag-bystand2 5.5s ease-in-out infinite 0.3s; }
.scn-carmen-appears-at-gate .carmen   { position:absolute; bottom:22%; left:48%; width:14px; height:30px; background: linear-gradient(180deg, #8a5a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 8px 2px #c07040; animation: cag-carmen 4s ease-in-out infinite; }
@keyframes cag-sky     { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes cag-gate    { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cag-door    { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(8deg); } 100% { transform: rotateY(0deg); } }
@keyframes cag-ground  { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cag-bystand1{ 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(2deg); } 60% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cag-bystand2{ 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(-1deg); } 60% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cag-carmen  { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 30% { transform: translateX(4px) translateY(-2px) rotate(2deg); } 60% { transform: translateX(8px) translateY(0) rotate(-1deg); } 100% { transform: translateX(12px) translateY(0) rotate(0deg); } }

.scn-carmen-nurses-jose-back {
  background:
    radial-gradient(ellipse 60% 50% at 50% 70%, #b84c2a 0%, transparent 60%),
    linear-gradient(180deg, #1a1210 0%, #2d1f1a 40%, #1a0e0a 100%);
}
.scn-carmen-nurses-jose-back .cnj-cave-wall-left {
  position: absolute; left: 0; top: 0; bottom: 0; width: 35%;
  background: linear-gradient(90deg, #2a1c16 0%, transparent 100%);
  border-radius: 0 60% 60% 0 / 0 80% 80% 0;
  animation: cnj-caveL 20s ease-in-out infinite alternate;
}
.scn-carmen-nurses-jose-back .cnj-cave-wall-right {
  position: absolute; right: 0; top: 0; bottom: 0; width: 35%;
  background: linear-gradient(270deg, #2a1c16 0%, transparent 100%);
  border-radius: 60% 0 0 60% / 80% 0 0 80%;
  animation: cnj-caveR 22s ease-in-out infinite alternate;
}
.scn-carmen-nurses-jose-back .cnj-fire {
  position: absolute; bottom: 8%; left: 50%; width: 120px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff9630 0%, #b84c2a 40%, transparent 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 60px 30px rgba(255,150,48,.3);
  animation: cnj-fire 3s ease-in-out infinite;
}
.scn-carmen-nurses-jose-back .cnj-glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,150,48,.08) 0%, transparent 70%);
  animation: cnj-glow 4s ease-in-out infinite alternate;
}
.scn-carmen-nurses-jose-back .cnj-carmen {
  position: absolute; bottom: 12%; left: 38%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: cnj-carmen 6s ease-in-out infinite;
}
.scn-carmen-nurses-jose-back .cnj-jose {
  position: absolute; bottom: 8%; left: 46%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #2a1c16 0%, #1a0e0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: cnj-jose 10s ease-in-out infinite;
}
.scn-carmen-nurses-jose-back .cnj-blanket {
  position: absolute; bottom: 8%; left: 44%; width: 70px; height: 20px;
  background: linear-gradient(180deg, #4a2e22 0%, #2d1f1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: cnj-blanket 8s ease-in-out infinite alternate;
}
@keyframes cnj-caveL { 0% { opacity: .7; transform: translateX(0); } 50% { opacity: .9; transform: translateX(-2px); } 100% { opacity: .7; transform: translateX(0); } }
@keyframes cnj-caveR { 0% { opacity: .8; transform: translateX(0); } 50% { opacity: .6; transform: translateX(2px); } 100% { opacity: .8; transform: translateX(0); } }
@keyframes cnj-fire { 0% { transform: translateX(-50%) scaleY(1); opacity: .9; } 30% { transform: translateX(-50%) scaleY(1.05); opacity: 1; } 60% { transform: translateX(-50%) scaleY(0.95); opacity: .85; } 100% { transform: translateX(-50%) scaleY(1); opacity: .9; } }
@keyframes cnj-glow { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes cnj-carmen { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-2deg) translateY(-2px); } 50% { transform: translateX(0) rotate(2deg) translateY(0); } 75% { transform: translateX(-2px) rotate(-1deg) translateY(-1px); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cnj-jose { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes cnj-blanket { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

.scn-hiding-from-corregidor {
  background:
    linear-gradient(180deg, #0e0e1a 0%, #1a1822 50%, #12101a 100%),
    radial-gradient(ellipse at 60% 30%, #2a2a3e 0%, transparent 70%);
}
.scn-hiding-from-corregidor .hfc-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1c2a 0%, #12101a 100%);
  border-radius: 0;
  animation: hfc-wall 30s ease-in-out infinite alternate;
}
.scn-hiding-from-corregidor .hfc-window {
  position: absolute; top: 20%; left: 50%; width: 100px; height: 130px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%);
  border: 6px solid #3a3a52;
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-hiding-from-corregidor .hfc-shutter-left {
  position: absolute; top: 20%; left: calc(50% - 54px); width: 52px; height: 130px;
  background: linear-gradient(90deg, #2a2a3e 0%, #1a1a2a 100%);
  border-right: 2px solid #3a3a52;
  border-radius: 4% 0 0 4%;
  transform-origin: left center;
  animation: hfc-shutterL 8s ease-in-out infinite alternate;
}
.scn-hiding-from-corregidor .hfc-shutter-right {
  position: absolute; top: 20%; left: calc(50% + 2px); width: 52px; height: 130px;
  background: linear-gradient(270deg, #2a2a3e 0%, #1a1a2a 100%);
  border-left: 2px solid #3a3a52;
  border-radius: 0 4% 4% 0;
  transform-origin: right center;
  animation: hfc-shutterR 8s ease-in-out infinite alternate;
}
.scn-hiding-from-corregidor .hfc-figure {
  position: absolute; bottom: 12%; left: 48%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #0e0e1a 0%, #060610 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  animation: hfc-figure 4s ease-in-out infinite;
}
.scn-hiding-from-corregidor .hfc-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: hfc-shadow 12s ease-in-out infinite alternate;
}
.scn-hiding-from-corregidor .hfc-light-ray {
  position: absolute; top: 20%; left: 50%; width: 6px; height: 50%;
  transform: translateX(-50%) rotate(3deg);
  background: linear-gradient(180deg, rgba(180,180,220,.2) 0%, transparent 100%);
  filter: blur(4px);
  animation: hfc-ray 5s ease-in-out infinite;
}
@keyframes hfc-wall { 0% { opacity: .8; } 50% { opacity: .95; } 100% { opacity: .85; } }
@keyframes hfc-shutterL { 0% { transform: rotateY(0deg); } 30% { transform: rotateY(5deg); } 70% { transform: rotateY(-2deg); } 100% { transform: rotateY(0deg); } }
@keyframes hfc-shutterR { 0% { transform: rotateY(0deg); } 30% { transform: rotateY(-5deg); } 70% { transform: rotateY(2deg); } 100% { transform: rotateY(0deg); } }
@keyframes hfc-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-1px) translateY(0) rotate(-1deg); } 75% { transform: translateX(1px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes hfc-shadow { 0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .7; } }
@keyframes hfc-ray { 0% { opacity: .3; transform: translateX(-50%) rotate(2deg); } 50% { opacity: .6; transform: translateX(-50%) rotate(4deg); } 100% { opacity: .3; transform: translateX(-50%) rotate(2deg); } }

.scn-carmen-refuses-america {
  background:
    radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1412 0%, #2a1e1a 50%, #1a1210 100%);
}
.scn-carmen-refuses-america .cra-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 0;
  animation: cra-wall 25s ease-in-out infinite alternate;
}
.scn-carmen-refuses-america .cra-table {
  position: absolute; bottom: 6%; left: 20%; right: 20%; height: 8px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: cra-table 15s ease-in-out infinite alternate;
}
.scn-carmen-refuses-america .cra-lamp {
  position: absolute; top: 30%; left: 35%; width: 20px; height: 40px;
  background: radial-gradient(circle at 50% 80%, #ffb060 0%, #b86a30 60%, transparent 80%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 0 50px 20px rgba(255,176,96,.2);
  animation: cra-lamp 3s ease-in-out infinite;
}
.scn-carmen-refuses-america .cra-carmen {
  position: absolute; bottom: 10%; left: 25%; width: 36px; height: 65px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cra-carmen 5s ease-in-out infinite;
}
.scn-carmen-refuses-america .cra-jose {
  position: absolute; bottom: 10%; right: 25%; width: 38px; height: 68px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cra-jose 7s ease-in-out infinite;
}
.scn-carmen-refuses-america .cra-bottle {
  position: absolute; bottom: 12%; left: 45%; width: 10px; height: 25px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(-15deg);
  animation: cra-bottle 6s ease-in-out infinite alternate;
}
.scn-carmen-refuses-america .cra-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, rgba(0,0,0,.5) 0%, transparent 100%);
  animation: cra-shadow 10s ease-in-out infinite alternate;
}
@keyframes cra-wall { 0% { opacity: .8; transform: scale(1); } 50% { opacity: .9; transform: scale(1.01); } 100% { opacity: .85; transform: scale(1); } }
@keyframes cra-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cra-lamp { 0% { box-shadow: 0 0 40px 15px rgba(255,176,96,.2); transform: rotate(0deg); } 30% { box-shadow: 0 0 60px 25px rgba(255,176,96,.3); transform: rotate(2deg); } 70% { box-shadow: 0 0 50px 20px rgba(255,176,96,.25); transform: rotate(-1deg); } 100% { box-shadow: 0 0 40px 15px rgba(255,176,96,.2); transform: rotate(0deg); } }
@keyframes cra-carmen { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(5px) rotate(-3deg) translateY(-1px); } 40% { transform: translateX(-3px) rotate(2deg); } 60% { transform: translateX(2px) rotate(-1deg) translateY(1px); } 80% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cra-jose { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cra-bottle { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-1px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes cra-shadow { 0% { opacity: .5; } 50% { opacity: .7; } 100% { opacity: .55; } }

.scn-carmen-talks-of-picador-lucas {
  background:
    radial-gradient(ellipse at 60% 20%, #3a2220 0%, transparent 60%),
    linear-gradient(180deg, #1a1212 0%, #2a1a1a 50%, #120a0a 100%);
}
.scn-carmen-talks-of-picador-lucas .ctp-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 100%);
  border-radius: 0;
  animation: ctp-wall 20s ease-in-out infinite alternate;
}
.scn-carmen-talks-of-picador-lucas .ctp-cape {
  position: absolute; top: 5%; right: 10%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #6a2a1a 0%, #3a1810 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform-origin: top center;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: ctp-cape 6s ease-in-out infinite;
}
.scn-carmen-talks-of-picador-lucas .ctp-chair {
  position: absolute; bottom: 10%; left: 15%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: ctp-chair 12s ease-in-out infinite alternate;
}
.scn-carmen-talks-of-picador-lucas .ctp-carmen {
  position: absolute; bottom: 12%; left: 30%; width: 36px; height: 66px;
  background: linear-gradient(180deg, #2a1a1a 0%, #120a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  animation: ctp-carmen 5s ease-in-out infinite;
}
.scn-carmen-talks-of-picador-lucas .ctp-jose {
  position: absolute; bottom: 10%; right: 20%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1212 0%, #0a0606 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ctp-jose 7s ease-in-out infinite;
}
.scn-carmen-talks-of-picador-lucas .ctp-lamp {
  position: absolute; top: 20%; left: 50%; width: 18px; height: 30px;
  background: radial-gradient(circle at 50% 70%, #ff8040 0%, #b84a2a 50%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(255,128,64,.15);
  animation: ctp-lamp 4s ease-in-out infinite;
}
.scn-carmen-talks-of-picador-lucas .ctp-shadow-bull {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(0deg, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  animation: ctp-shadow 8s ease-in-out infinite alternate;
}
@keyframes ctp-wall { 0% { opacity: .85; } 50% { opacity: .95; } 100% { opacity: .9; } }
@keyframes ctp-cape { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(5deg) translateX(-2px); } 50% { transform: rotate(-3deg) translateX(1px); } 75% { transform: rotate(2deg) translateX(-1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes ctp-chair { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes ctp-carmen { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(4px) rotate(-2deg) translateY(-1px); } 40% { transform: translateX(-2px) rotate(1deg); } 60% { transform: translateX(1px) rotate(-1deg) translateY(1px); } 80% { transform: translateX(-1px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ctp-jose { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-5px) rotate(3deg) translateY(-1px); } 60% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ctp-lamp { 0% { box-shadow: 0 0 30px 10px rgba(255,128,64,.15); transform: rotate(0deg); } 30% { box-shadow: 0 0 50px 20px rgba(255,128,64,.25); transform: rotate(2deg); } 70% { box-shadow: 0 0 40px 15px rgba(255,128,64,.2); transform: rotate(-1deg); } 100% { box-shadow: 0 0 30px 10px rgba(255,128,64,.15); transform: rotate(0deg); } }
@keyframes ctp-shadow { 0% { opacity: .5; transform: scaleY(1); } 50% { opacity: .7; transform: scaleY(1.05); } 100% { opacity: .55; transform: scaleY(1); } }

/* jose-returns-to-camp */
.scn-jose-returns-to-camp {
  background: linear-gradient(180deg, #1a120b 0%, #2a1e14 50%, #3a2819 100%), radial-gradient(ellipse at 50% 100%, #4a3520 0%, transparent 80%);
}
.scn-jose-returns-to-camp .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e14 0%, #1a120b 100%); 
  animation: jrc-room 12s ease-in-out infinite alternate;
}
.scn-jose-returns-to-camp .window-sky {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 70px; 
  background: linear-gradient(180deg, #0c1a2a 0%, #1a2a3a 100%); 
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,200,100,0.3);
  animation: jrc-window 8s ease-in-out infinite;
}
.scn-jose-returns-to-camp .table {
  position: absolute; bottom: 22%; left: 25%; width: 100px; height: 18px; 
  background: linear-gradient(180deg, #4a3018 0%, #2a1c0e 100%); 
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-jose-returns-to-camp .candle {
  position: absolute; bottom: 30%; left: 30%; width: 12px; height: 20px; 
  background: radial-gradient(circle at 50% 100%, #ffb84d 0%, #cc7a2a 60%, transparent 70%); 
  border-radius: 20% 20% 40% 40%; box-shadow: 0 0 40px 10px #ffb84d;
  animation: jrc-candle 3s ease-in-out infinite alternate;
}
.scn-jose-returns-to-camp .figure-seated {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 50px; 
  background: linear-gradient(180deg, #2a1e14 0%, #0f0a06 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: jrc-seated 4s ease-in-out infinite;
}
.scn-jose-returns-to-camp .figure-entering {
  position: absolute; bottom: 20%; right: 20%; width: 28px; height: 55px; 
  background: linear-gradient(180deg, #2a1e14 0%, #0f0a06 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; opacity: 0.7;
  animation: jrc-entering 6s ease-in-out infinite;
}
.scn-jose-returns-to-camp .doorway {
  position: absolute; bottom: 18%; right: 18%; width: 50px; height: 70px; 
  border: 4px solid #4a3018; border-radius: 8px 8px 0 0; 
  background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: jrc-door 10s ease-in-out infinite alternate;
}
@keyframes jrc-room {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes jrc-window {
  0% { filter: brightness(0.8); }
  50% { filter: brightness(1.2); }
  100% { filter: brightness(0.9); }
}
@keyframes jrc-candle {
  0% { transform: scaleY(1); opacity: 0.7; }
  30% { transform: scaleY(1.2) scaleX(0.9); opacity: 1; }
  70% { transform: scaleY(1.1) scaleX(1.1); opacity: 0.9; }
  100% { transform: scaleY(1); opacity: 0.8; }
}
@keyframes jrc-seated {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(2deg); }
  70% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes jrc-entering {
  0% { transform: translateX(0) scaleX(1); }
  30% { transform: translateX(-8px) scaleX(1.1); }
  60% { transform: translateX(4px) scaleX(0.9); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes jrc-door {
  0% { filter: drop-shadow(0 0 2px #cc7a2a); }
  50% { filter: drop-shadow(0 0 8px #ffb84d); }
  100% { filter: drop-shadow(0 0 4px #cc7a2a); }
}

/* card-game-with-garcia */
.scn-card-game-with-garcia {
  background: linear-gradient(180deg, #0a0f0a 0%, #141a10 50%, #1c2416 100%), radial-gradient(ellipse at 50% 100%, #3a2a18 0%, transparent 70%);
}
.scn-card-game-with-garcia .forest-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0e130f 0%, #1c2416 100%);
  animation: cgg-forest 20s ease-in-out infinite alternate;
}
.scn-card-game-with-garcia .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; 
  background: linear-gradient(180deg, #2a1e10 0%, #0f0a06 100%); 
  border-radius: 40% 20% 0 0;
}
.scn-card-game-with-garcia .tree-left {
  position: absolute; bottom: 30%; left: 5%; width: 20px; height: 100px; 
  background: linear-gradient(90deg, #1a1a0e 0%, #2a2a14 50%, #1a1a0e 100%); 
  border-radius: 20% 20% 10% 10%; 
  animation: cgg-tree 12s ease-in-out infinite;
}
.scn-card-game-with-garcia .tree-right {
  position: absolute; bottom: 30%; right: 5%; width: 30px; height: 120px; 
  background: linear-gradient(90deg, #1a1a0e 0%, #2a2a14 50%, #1a1a0e 100%); 
  border-radius: 20% 20% 10% 10%; 
  animation: cgg-tree 15s ease-in-out infinite reverse;
}
.scn-card-game-with-garcia .fire {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); 
  width: 50px; height: 40px; 
  background: radial-gradient(ellipse at 50% 60%, #ff9933 0%, #cc5200 60%, #662200 100%); 
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 20px rgba(255,153,51,0.5);
  animation: cgg-fire 0.8s ease-in-out infinite alternate;
}
.scn-card-game-with-garcia .fire-glow {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%); 
  width: 120px; height: 80px; 
  background: radial-gradient(ellipse, rgba(255,153,51,0.3) 0%, transparent 70%); 
  border-radius: 50%; 
  animation: cgg-glow 3s ease-in-out infinite;
}
.scn-card-game-with-garcia .figure-watch {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 55px; 
  background: linear-gradient(180deg, #1a120b 0%, #0a0603 100%); 
  border-radius: 50% 50% 40% 50% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: cgg-watch 4s ease-in-out infinite;
}
.scn-card-game-with-garcia .figure-player1 {
  position: absolute; bottom: 20%; left: 42%; width: 28px; height: 50px; 
  background: linear-gradient(180deg, #2a1a0e 0%, #0f0a04 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: cgg-player1 3s ease-in-out infinite;
}
.scn-card-game-with-garcia .figure-player2 {
  position: absolute; bottom: 20%; left: 56%; width: 28px; height: 50px; 
  background: linear-gradient(180deg, #2a1a0e 0%, #0f0a04 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: cgg-player2 3.2s ease-in-out infinite 0.4s;
}
.scn-card-game-with-garcia .card {
  position: absolute; bottom: 28%; left: 48%; width: 8px; height: 12px; 
  background: linear-gradient(180deg, #c8a86b 0%, #a07a40 100%); 
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: cgg-card 5s ease-in-out infinite;
}
@keyframes cgg-forest {
  0% { filter: brightness(0.9); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.95); }
}
@keyframes cgg-tree {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  70% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cgg-fire {
  0% { transform: translateX(-50%) scaleY(0.9) scaleX(1); }
  50% { transform: translateX(-50%) scaleY(1.1) scaleX(0.95); }
  100% { transform: translateX(-50%) scaleY(1) scaleX(0.9); }
}
@keyframes cgg-glow {
  0% { opacity: 0.4; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 0.7; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.5; transform: translateX(-50%) scale(0.95); }
}
@keyframes cgg-watch {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(3deg); }
  50% { transform: translateY(1px) rotate(-2deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cgg-player1 {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-1px) rotate(-2deg); }
  70% { transform: translateY(1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cgg-player2 {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-2px) rotate(3deg); }
  60% { transform: translateY(1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cgg-card {
  0% { transform: translate(0,0) rotate(0deg) scale(1); opacity: 0.8; }
  30% { transform: translate(2px,-3px) rotate(10deg) scale(1.1); opacity: 1; }
  60% { transform: translate(-1px,2px) rotate(-8deg) scale(0.9); opacity: 0.9; }
  100% { transform: translate(0,0) rotate(0deg) scale(1); opacity: 0.8; }
}

/* knife-fight-with-garcia */
.scn-knife-fight-with-garcia {
  background: linear-gradient(180deg, #0a0a0a 0%, #14120e 50%, #1c1814 100%), radial-gradient(ellipse at 60% 50%, #4a2a1a 0%, transparent 80%);
}
.scn-knife-fight-with-garcia .dark-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0c0a08 0%, #16120e 100%);
  animation: kfg-bg 15s ease-in-out infinite alternate;
}
.scn-knife-fight-with-garcia .dark-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; 
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); 
  border-radius: 30% 70% 0 0;
}
.scn-knife-fight-with-garcia .tree-l {
  position: absolute; bottom: 25%; left: 10%; width: 25px; height: 130px; 
  background: linear-gradient(90deg, #1a120c 0%, #2a1e14 50%, #1a120c 100%); 
  border-radius: 10% 10% 5% 5%; 
  animation: kfg-tree 9s ease-in-out infinite;
}
.scn-knife-fight-with-garcia .tree-r {
  position: absolute; bottom: 25%; right: 10%; width: 20px; height: 110px; 
  background: linear-gradient(90deg, #1a120c 0%, #2a1e14 50%, #1a120c 100%); 
  border-radius: 10% 10% 5% 5%; 
  animation: kfg-tree 11s ease-in-out infinite reverse;
}
.scn-knife-fight-with-garcia .fire-light {
  position: absolute; bottom: 15%; left: 55%; width: 80px; height: 60px; 
  background: radial-gradient(ellipse, rgba(204,102,0,0.5) 0%, rgba(204,102,0,0.1) 60%, transparent 80%); 
  border-radius: 50%; 
  animation: kfg-light 4s ease-in-out infinite;
}
.scn-knife-fight-with-garcia .garcia-crouch {
  position: absolute; bottom: 18%; left: 35%; width: 35px; height: 45px; 
  background: linear-gradient(180deg, #1a120c 0%, #0a0604 100%); 
  border-radius: 60% 40% 30% 70% / 80% 50% 50% 20%; 
  transform-origin: bottom center; 
  animation: kfg-crouch 2.5s ease-in-out infinite;
}
.scn-knife-fight-with-garcia .jose-lunge {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 60px; 
  background: linear-gradient(180deg, #2a1e14 0%, #0f0a06 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom left; 
  animation: kfg-lunge 1.5s ease-in-out infinite;
}
.scn-knife-fight-with-garcia .spark1 {
  position: absolute; bottom: 40%; left: 50%; width: 4px; height: 4px; 
  background: #ffcc66; border-radius: 50%; 
  box-shadow: 0 0 10px 2px #ffcc66; 
  animation: kfg-spark 1.2s linear infinite;
}
.scn-knife-fight-with-garcia .spark2 {
  position: absolute; bottom: 45%; left: 48%; width: 3px; height: 3px; 
  background: #ffa64d; border-radius: 50%; 
  box-shadow: 0 0 8px 1px #ffa64d; 
  animation: kfg-spark 1.4s linear infinite 0.5s;
}
@keyframes kfg-bg {
  0% { filter: brightness(0.8); }
  50% { filter: brightness(1); }
  100% { filter: brightness(0.85); }
}
@keyframes kfg-tree {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-1px) rotate(1deg); }
  70% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes kfg-light {
  0% { transform: scale(0.9); opacity: 0.6; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(1); opacity: 0.7; }
}
@keyframes kfg-crouch {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  25% { transform: translateY(-2px) rotate(-10deg) scaleX(1.1); }
  50% { transform: translateY(0) rotate(5deg) scaleX(0.9); }
  75% { transform: translateY(-1px) rotate(-5deg) scaleX(1); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes kfg-lunge {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  30% { transform: translateX(8px) rotate(15deg) scaleY(1.2); }
  60% { transform: translateX(4px) rotate(-5deg) scaleY(0.9); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes kfg-spark {
  0% { transform: translate(0,0) scale(1); opacity: 1; }
  50% { transform: translate(10px, -15px) scale(0.5); opacity: 0.5; }
  100% { transform: translate(20px, -30px) scale(0); opacity: 0; }
}

/* jose-kills-garcia */
.scn-jose-kills-garcia {
  background: linear-gradient(180deg, #0a0604 0%, #14100a 50%, #1c1610 100%), radial-gradient(ellipse at 40% 60%, #4a2a1a 0%, transparent 80%);
}
.scn-jose-kills-garcia .deep-shadow {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0a0806 0%, #1a1410 100%);
  animation: jkg-shadow 20s ease-in-out infinite alternate;
}
.scn-jose-kills-garcia .light-radial {
  position: absolute; top: 10%; right: 20%; width: 150px; height: 150px; 
  background: radial-gradient(circle, rgba(204,102,0,0.4) 0%, transparent 70%); 
  border-radius: 50%; 
  animation: jkg-light 5s ease-in-out infinite;
}
.scn-jose-kills-garcia .jose-torso {
  position: absolute; bottom: 15%; left: 45%; width: 45px; height: 65px; 
  background: linear-gradient(180deg, #2a1e14 0%, #0f0a06 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: jkg-torso 3s ease-in-out infinite;
}
.scn-jose-kills-garcia .garcia-head {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 30px; 
  background: radial-gradient(circle at 50% 30%, #1a120c 0%, #0a0604 100%); 
  border-radius: 50% 50% 30% 30%; 
  transform-origin: bottom center; 
  animation: jkg-head 2s ease-in-out infinite;
}
.scn-jose-kills-garcia .knife-blade {
  position: absolute; bottom: 35%; left: 52%; width: 25px; height: 4px; 
  background: linear-gradient(90deg, #806040 0%, #c8a86b 50%, #a08050 100%); 
  border-radius: 2px; box-shadow: 0 0 6px 1px rgba(200,168,107,0.6);
  transform-origin: right center; 
  animation: jkg-knife 1.2s ease-in-out infinite;
}
.scn-jose-kills-garcia .ground-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; 
  background: linear-gradient(180deg, #1a1410 0%, transparent 100%); 
  animation: jkg-ground 8s ease-in-out infinite;
}
@keyframes jkg-shadow {
  0% { filter: brightness(0.7); }
  50% { filter: brightness(0.9); }
  100% { filter: brightness(0.8); }
}
@keyframes jkg-light {
  0% { transform: scale(0.9) translate(0,0); opacity: 0.4; }
  50% { transform: scale(1.1) translate(5px,-5px); opacity: 0.7; }
  100% { transform: scale(1) translate(0,0); opacity: 0.5; }
}
@keyframes jkg-torso {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(5deg); }
  60% { transform: translateY(1px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes jkg-head {
  0% { transform: translateY(0) rotate(0deg) scaleY(1); }
  40% { transform: translateY(-5px) rotate(15deg) scaleY(1.2); }
  80% { transform: translateY(2px) rotate(-10deg) scaleY(0.8); }
  100% { transform: translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes jkg-knife {
  0% { transform: translate(0,0) rotate(0deg) scaleX(1); }
  30% { transform: translate(2px,-1px) rotate(5deg) scaleX(1.1); }
  60% { transform: translate(-1px,1px) rotate(-3deg) scaleX(0.9); }
  100% { transform: translate(0,0) rotate(0deg) scaleX(1); }
}
@keyframes jkg-ground {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.05); }
  100% { opacity: 0.85; transform: scaleY(1); }
}

.scn-leading-carmen-to-prison { background: linear-gradient(180deg, #4a90d9 0%, #87ceeb 30%, #f0d080 70%, #e8b050 100%), radial-gradient(ellipse at 60% 30%, #fff8e0 0%, transparent 50%); }
.scn-leading-carmen-to-prison .bg-sky { position:absolute; inset:0; background: linear-gradient(180deg, #2a4a7a 0%, #6a9ad0 40%, #c0d8e8 70%, #f8e8c0 100%); animation: lcp-sky 8s ease-in-out infinite alternate; }
.scn-leading-carmen-to-prison .bg-sun { position:absolute; top:5%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #fff8d0 0%, #ffe870 40%, #e8a030 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,232,112,.4), 0 0 200px 60px rgba(232,160,48,.2); animation: lcp-sun 12s ease-in-out infinite; }
.scn-leading-carmen-to-prison .fg-ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #4a3828 0%, #7a5a3a 40%, #b08050 100%); border-radius: 30% 70% 0 0 / 100% 100% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.3); animation: lcp-ground 15s ease-in-out infinite alternate; }
.scn-leading-carmen-to-prison .fg-archway { position:absolute; bottom:20%; left:15%; width:120px; height:160px; background: linear-gradient(180deg, #5a4030 0%, #2a1a10 50%, #1a0e08 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 8px 0 20px rgba(0,0,0,.6), -4px 0 10px rgba(0,0,0,.4); clip-path: inset(0 round 20px); animation: lcp-arch 20s ease-in-out infinite; }
.scn-leading-carmen-to-prison .figure-one { position:absolute; bottom:22%; left:25%; width:20px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-2deg); animation: lcp-walk-fwd 4s ease-in-out infinite; }
.scn-leading-carmen-to-prison .figure-two { position:absolute; bottom:22%; left:38%; width:22px; height:62px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(1deg); animation: lcp-walk-fwd 4s ease-in-out infinite -1s; }
.scn-leading-carmen-to-prison .carmen { position:absolute; bottom:22%; left:52%; width:18px; height:56px; background: linear-gradient(180deg, #3a2a4a 0%, #1a1a2a 50%, #0e0e1a 100%); border-radius: 40% 40% 40% 40% / 50% 50% 30% 30%; transform: rotate(3deg); animation: lcp-walk-fwd 4s ease-in-out infinite -2s; }
.scn-leading-carmen-to-prison .eye-glow { position:absolute; bottom:43%; left:53.5%; width:4px; height:4px; background: radial-gradient(circle, #ffe080 0%, #c08040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,224,128,.6); animation: lcp-eye 3s ease-in-out infinite alternate; }
.scn-leading-carmen-to-prison .mantilla { position:absolute; bottom:28%; left:50%; width:28px; height:32px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 80%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(6deg); opacity:0.9; filter: blur(0.5px); animation: lcp-mantilla 5s ease-in-out infinite; }
@keyframes lcp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lcp-sun { 0%,100% { transform: translate(0,0) scale(1) } 50% { transform: translate(2px,-3px) scale(1.05) } }
@keyframes lcp-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes lcp-arch { 0%,100% { transform: scale(1) } 50% { transform: scale(1.01) } }
@keyframes lcp-walk-fwd { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(8px) translateY(0) rotate(2deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(16px) translateY(0) rotate(-2deg) } }
@keyframes lcp-eye { 0% { box-shadow: 0 0 6px 2px rgba(255,224,128,.6); opacity:.7 } 50% { box-shadow: 0 0 14px 6px rgba(255,224,128,.9); opacity:1 } 100% { box-shadow: 0 0 8px 3px rgba(255,224,128,.6); opacity:.8 } }
@keyframes lcp-mantilla { 0%,100% { transform: rotate(6deg) } 50% { transform: rotate(4deg) translateX(-1px) } }

.scn-carmen-pleads-on-street { background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 30%, #4a4a7e 60%, #e8a080 85%, #d08060 100%), radial-gradient(ellipse at 50% 100%, #f0b090 0%, transparent 60%); }
.scn-carmen-pleads-on-street .bg-dusk { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a3a 0%, #2a2a5a 40%, #6a4a6a 70%, #d09070 100%); animation: cps-dusk 10s ease-in-out infinite alternate; }
.scn-carmen-pleads-on-street .horizon-glow { position:absolute; bottom:35%; left:0; right:0; height:15%; background: radial-gradient(ellipse at 50% 100%, #f0c090 0%, #d09070 40%, transparent 100%); opacity:0.6; animation: cps-glow 6s ease-in-out infinite alternate; }
.scn-carmen-pleads-on-street .building-left { position:absolute; bottom:20%; left:0; width:45%; height:75%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 50%, #0e0808 100%); border-radius: 0 20% 0 0 / 0 30% 0 0; box-shadow: 4px 0 20px rgba(0,0,0,.5); clip-path: polygon(0 0, 80% 0, 100% 100%, 0 100%); animation: cps-buildings 20s ease-in-out infinite; }
.scn-carmen-pleads-on-street .building-right { position:absolute; bottom:30%; right:0; width:50%; height:65%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 50%, #0e0808 100%); border-radius: 30% 0 0 0 / 40% 0 0 0; box-shadow: -4px 0 15px rgba(0,0,0,.4); clip-path: polygon(20% 0, 100% 0, 100% 100%, 0 100%); animation: cps-buildings 20s ease-in-out infinite -5s; }
.scn-carmen-pleads-on-street .street { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); clip-path: polygon(30% 0, 70% 0, 100% 100%, 0 100%); animation: cps-street 15s ease-in-out infinite alternate; }
.scn-carmen-pleads-on-street .officer-shadow { position:absolute; bottom:8%; left:45%; width:22px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform: rotate(-5deg); animation: cps-officer 4s ease-in-out infinite; }
.scn-carmen-pleads-on-street .carmen-figure { position:absolute; bottom:6%; left:58%; width:20px; height:64px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 50%, #0e0e0e 100%); border-radius: 40% 40% 40% 40% / 50% 50% 30% 30%; transform: rotate(10deg); animation: cps-carmen 3s ease-in-out infinite; }
.scn-carmen-pleads-on-street .mantilla-drape { position:absolute; bottom:18%; left:57%; width:30px; height:20px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform: rotate(5deg); opacity:0.8; filter: blur(0.5px); animation: cps-mantilla 5s ease-in-out infinite; }
@keyframes cps-dusk { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cps-glow { 0% { opacity:0.5; transform: scaleY(1) } 50% { opacity:0.8; transform: scaleY(1.1) } 100% { opacity:0.6; transform: scaleY(0.95) } }
@keyframes cps-buildings { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes cps-street { 0% { transform: skewX(-2deg) } 50% { transform: skewX(0deg) } 100% { transform: skewX(2deg) } }
@keyframes cps-officer { 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 25% { transform: translateX(1px) translateY(-1px) rotate(-3deg) } 50% { transform: translateX(2px) translateY(0) rotate(-5deg) } 75% { transform: translateX(1px) translateY(-1px) rotate(-4deg) } 100% { transform: translateX(0) translateY(0) rotate(-5deg) } }
@keyframes cps-carmen { 0% { transform: translateX(0) translateY(0) rotate(10deg) } 25% { transform: translateX(-2px) translateY(-1px) rotate(8deg) } 50% { transform: translateX(-4px) translateY(0) rotate(10deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(9deg) } 100% { transform: translateX(0) translateY(0) rotate(10deg) } }
@keyframes cps-mantilla { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(7deg) translateX(1px) } }

.scn-carmen-offers-bar-lachi { background: linear-gradient(180deg, #2a1a1a 0%, #4a2a1a 30%, #8a4a2a 60%, #c86a3a 100%), radial-gradient(ellipse at 50% 50%, #d08040 0%, transparent 60%); }
.scn-carmen-offers-bar-lachi .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #1a0e0e 0%, #3a1a1a 30%, #6a3a1a 60%, #a05020 100%); animation: cob-bg 10s ease-in-out infinite alternate; }
.scn-carmen-offers-bar-lachi .vignette { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, transparent 40%, #0a0505 100%); box-shadow: inset 0 0 60px 20px rgba(0,0,0,.5); animation: cob-vignette 8s ease-in-out infinite alternate; }
.scn-carmen-offers-bar-lachi .officer-back { position:absolute; bottom:10%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform: rotate(-2deg); box-shadow: 0 8px 20px rgba(0,0,0,.4); animation: cob-officer 6s ease-in-out infinite; }
.scn-carmen-offers-bar-lachi .carmen-body { position:absolute; bottom:8%; left:55%; width:30px; height:76px; background: linear-gradient(180deg, #3a1a1a 0%, #1a0e0e 50%, #0e0808 100%); border-radius: 40% 40% 40% 40% / 50% 50% 30% 30%; transform: rotate(4deg); animation: cob-carmen 4s ease-in-out infinite; }
.scn-carmen-offers-bar-lachi .carmen-profile { position:absolute; bottom:48%; left:56%; width:12px; height:20px; background: linear-gradient(180deg, #6a3a1a 0%, #4a2010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(15deg); clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%); animation: cob-profile 3s ease-in-out infinite; }
.scn-carmen-offers-bar-lachi .hand-offering { position:absolute; bottom:32%; left:48%; width:8px; height:14px; background: linear-gradient(180deg, #6a3a1a 0%, #4a2010 100%); border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%; transform: rotate(-20deg); animation: cob-hand 2s ease-in-out infinite alternate; }
.scn-carmen-offers-bar-lachi .bar-lachi-glow { position:absolute; bottom:34%; left:46%; width:6px; height:6px; background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,208,128,.5), 0 0 24px 8px rgba(192,128,64,.3); animation: cob-glow 2s ease-in-out infinite alternate; }
@keyframes cob-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cob-vignette { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes cob-officer { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-4px) translateY(0) rotate(-2deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes cob-carmen { 0% { transform: translateX(0) translateY(0) rotate(4deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(3deg) } 50% { transform: translateX(4px) translateY(0) rotate(4deg) } 75% { transform: translateX(2px) translateY(-1px) rotate(3deg) } 100% { transform: translateX(0) translateY(0) rotate(4deg) } }
@keyframes cob-profile { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(12deg) } }
@keyframes cob-hand { 0% { transform: translateX(0) translateY(0) rotate(-20deg) } 50% { transform: translateX(2px) translateY(-2px) rotate(-15deg) } 100% { transform: translateX(0) translateY(0) rotate(-20deg) } }
@keyframes cob-glow { 0% { box-shadow: 0 0 8px 2px rgba(255,208,128,.5), 0 0 16px 4px rgba(192,128,64,.3); opacity:.7 } 50% { box-shadow: 0 0 16px 6px rgba(255,208,128,.7), 0 0 28px 10px rgba(192,128,64,.5); opacity:1 } 100% { box-shadow: 0 0 10px 3px rgba(255,208,128,.5), 0 0 18px 5px rgba(192,128,64,.3); opacity:.8 } }

.scn-carmen-speaks-basque { background: linear-gradient(180deg, #1a1220 0%, #2a1a2a 30%, #5a3a2a 60%, #8a5a3a 100%), radial-gradient(ellipse at 50% 70%, #c08040 0%, transparent 50%); }
.scn-carmen-speaks-basque .bg-dusk-warm { position:absolute; inset:0; background: linear-gradient(180deg, #1a1220 0%, #2a1a2a 40%, #5a3a2a 70%, #8a5a3a 100%); animation: csb-dusk 10s ease-in-out infinite alternate; }
.scn-carmen-speaks-basque .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #1a0e0a 0%, #3a1a10 100%); border-radius: 40% 60% 0 0 / 100% 100% 0 0; animation: csb-ground 18s ease-in-out infinite alternate; }
.scn-carmen-speaks-basque .silhouette-left { position:absolute; bottom:8%; left:30%; width:28px; height:74px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform: rotate(6deg); animation: csb-left 5s ease-in-out infinite; }
.scn-carmen-speaks-basque .silhouette-right { position:absolute; bottom:8%; left:55%; width:24px; height:70px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 50%, #0e0808 100%); border-radius: 40% 40% 40% 40% / 50% 50% 30% 30%; transform: rotate(-8deg); animation: csb-right 4s ease-in-out infinite; }
.scn-carmen-speaks-basque .connection-glow { position:absolute; bottom:40%; left:42%; width:40px; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(255,200,100,.4) 0%, rgba(200,150,80,.1) 60%, transparent 100%); border-radius:50%; filter: blur(4px); animation: csb-glow 6s ease-in-out infinite alternate; }
.scn-carmen-speaks-basque .mantilla-shadow { position:absolute; bottom:22%; left:54%; width:24px; height:18px; background: linear-gradient(180deg, #1a0e1a 0%, transparent 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform: rotate(-5deg); opacity:0.7; filter: blur(1px); animation: csb-mantilla 5s ease-in-out infinite; }
@keyframes csb-dusk { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes csb-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes csb-left { 0% { transform: translateX(0) translateY(0) rotate(6deg) } 25% { transform: translateX(-2px) translateY(-1px) rotate(5deg) } 50% { transform: translateX(-4px) translateY(0) rotate(6deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(5deg) } 100% { transform: translateX(0) translateY(0) rotate(6deg) } }
@keyframes csb-right { 0% { transform: translateX(0) translateY(0) rotate(-8deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(-7deg) } 50% { transform: translateX(4px) translateY(0) rotate(-8deg) } 75% { transform: translateX(2px) translateY(-1px) rotate(-7deg) } 100% { transform: translateX(0) translateY(0) rotate(-8deg) } }
@keyframes csb-glow { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.5; transform: scale(0.95) } }
@keyframes csb-mantilla { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) translateX(-1px) } }

/* Scene: returning-to-carmen-house (tense dusk) */
.scn-returning-to-carmen-house {
  background:
    linear-gradient(180deg, #2c1a3a 0%, #4a2a3a 30%, #7a4a3a 60%, #3a2a4a 100%),
    radial-gradient(ellipse at 30% 70%, #c86040 0%, transparent 50%);
}
.scn-returning-to-carmen-house .rh-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a2a5a 0%, #5a3a4a 40%, #8a5a3a 70%, #2a1a3a 100%);
  animation: rh-sky 18s ease-in-out infinite alternate;
}
.scn-returning-to-carmen-house .rh-sun {
  position: absolute; bottom: 48%; left: 28%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #ffb060 0%, #ff8030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,128,48,.3);
  animation: rh-sun 12s ease-in-out infinite alternate;
}
.scn-returning-to-carmen-house .rh-house {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 100px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  animation: rh-house 9s ease-in-out infinite;
}
.scn-returning-to-carmen-house .rh-window {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 22px; height: 28px;
  background: radial-gradient(circle, #ffd080 0%, #b07030 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 8px #b07030, 0 0 50px 15px rgba(176,112,48,.4);
  animation: rh-window 2s ease-in-out infinite alternate;
}
.scn-returning-to-carmen-house .rh-figure {
  position: absolute; bottom: 18%; left: 42%;
  width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rh-figure 4s ease-in-out infinite;
}
.scn-returning-to-carmen-house .rh-fence {
  position: absolute; bottom: 18%; left: 30%; right: 20%; height: 2px;
  background: #1a1212;
  box-shadow: 0 -12px 0 #1a1212, 12px -12px 0 #1a1212, 24px -12px 0 #1a1212, 36px -12px 0 #1a1212, 48px -12px 0 #1a1212, 60px -12px 0 #1a1212, 72px -12px 0 #1a1212;
  animation: rh-fence 10s ease-in-out infinite;
}
.scn-returning-to-carmen-house .rh-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-returning-to-carmen-house .rh-cloud {
  position: absolute; top: 15%; right: 10%;
  width: 80px; height: 16px;
  background: linear-gradient(90deg, rgba(200,180,160,.6) 0%, rgba(200,180,160,.1) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: rh-drift 25s linear infinite;
}
@keyframes rh-sky {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .7; background-position: 0 100%; }
}
@keyframes rh-sun {
  0% { transform: translate(0, 0) scale(1); opacity: .8; }
  50% { transform: translate(10px, -8px) scale(1.05); opacity: .9; }
  100% { transform: translate(-5px, 5px) scale(.95); opacity: .7; }
}
@keyframes rh-house {
  0%,100% { transform: translateX(-50%); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes rh-window {
  0% { box-shadow: 0 0 20px 5px #b07030, 0 0 40px 10px rgba(176,112,48,.3); opacity: .8; }
  50% { box-shadow: 0 0 35px 10px #e0a040, 0 0 60px 18px rgba(224,160,64,.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px #b07030, 0 0 45px 12px rgba(176,112,48,.35); opacity: .85; }
}
@keyframes rh-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(24px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes rh-fence {
  0%,100% { opacity: .6; }
  50% { opacity: .9; }
}
@keyframes rh-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}

/* Scene: carmen-dressed-like-queen (warm bright interior) */
.scn-carmen-dressed-like-queen {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e0c898 40%, #d4a878 100%),
    radial-gradient(ellipse at 50% 20%, #ffdeb0 0%, transparent 70%);
}
.scn-carmen-dressed-like-queen .cdq-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f5e6c8 0%, #d4a878 50%, #b88868 100%);
  animation: cdq-bg 20s ease-in-out infinite alternate;
}
.scn-carmen-dressed-like-queen .cdq-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b88868 0%, #8a6a4a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.2);
}
.scn-carmen-dressed-like-queen .cdq-throne {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 90px;
  background: linear-gradient(180deg, #c8a868 0%, #a08048 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: 0 8px 16px rgba(0,0,0,.3), inset 0 2px 4px rgba(255,255,200,.6);
  animation: cdq-throne 8s ease-in-out infinite alternate;
}
.scn-carmen-dressed-like-queen .cdq-figure {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #c05830 0%, #8a3820 50%, #5a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: cdq-figure 6s ease-in-out infinite;
}
.scn-carmen-dressed-like-queen .cdq-crown {
  position: absolute; bottom: 65%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 12px;
  background: linear-gradient(90deg, #f0d080 0%, #e0b860 50%, #f0d080 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 16px 4px rgba(240,208,128,.6);
  animation: cdq-crown 3s ease-in-out infinite alternate;
}
.scn-carmen-dressed-like-queen .cdq-curtain-l {
  position: absolute; top: 0; left: 0; width: 25%; height: 90%;
  background: linear-gradient(180deg, #a04050 0%, #782838 100%);
  border-radius: 0 30% 30% 0;
  box-shadow: inset -4px 0 10px rgba(0,0,0,.3);
  animation: cdq-curtain 14s ease-in-out infinite alternate;
}
.scn-carmen-dressed-like-queen .cdq-curtain-r {
  position: absolute; top: 0; right: 0; width: 25%; height: 90%;
  background: linear-gradient(180deg, #a04050 0%, #782838 100%);
  border-radius: 30% 0 0 30%;
  box-shadow: inset 4px 0 10px rgba(0,0,0,.3);
  animation: cdq-curtain 14s ease-in-out infinite alternate-reverse;
}
.scn-carmen-dressed-like-queen .cdq-carpet {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(90deg, #a84830 0%, #c86850 30%, #a84830 70%, #8a3820 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: cdq-carpet 12s ease-in-out infinite alternate;
}
@keyframes cdq-bg {
  0% { opacity: .9; }
  100% { opacity: 1; }
}
@keyframes cdq-throne {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(.98); }
}
@keyframes cdq-figure {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); }
}
@keyframes cdq-crown {
  0% { transform: translateX(-50%) rotate(-3deg); opacity: .9; }
  50% { transform: translateX(-50%) rotate(3deg); opacity: 1; }
  100% { transform: translateX(-50%) rotate(-1deg); opacity: .95; }
}
@keyframes cdq-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(3px); }
}
@keyframes cdq-carpet {
  0% { background-position: 0 0; }
  50% { background-position: 10px 0; }
  100% { background-position: -10px 0; }
}

/* Scene: carmen-plans-robbery-milord (warm bright interior) */
.scn-carmen-plans-robbery-milord {
  background:
    linear-gradient(180deg, #d4a878 0%, #c09060 30%, #b08050 60%, #906840 100%),
    radial-gradient(ellipse at 50% 30%, #f0d090 0%, transparent 60%);
}
.scn-carmen-plans-robbery-milord .cpr-bgw {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d4a878 0%, #a07040 50%, #785030 100%);
  animation: cpr-bgw 22s ease-in-out infinite alternate;
}
.scn-carmen-plans-robbery-milord .cpr-table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  transform: perspective(600px) rotateX(10deg);
  animation: cpr-table 10s ease-in-out infinite alternate;
}
.scn-carmen-plans-robbery-milord .cpr-map {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 18%;
  background: linear-gradient(90deg, #d4b888 0%, #e0c898 50%, #d4b888 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform: perspective(400px) rotateX(5deg);
  animation: cpr-map 8s ease-in-out infinite alternate;
}
.scn-carmen-plans-robbery-milord .cpr-hand-l {
  position: absolute; bottom: 35%; left: 32%;
  width: 18px; height: 30px;
  background: linear-gradient(180deg, #a07040 0%, #785030 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 60% 40%;
  transform-origin: bottom center;
  animation: cpr-hand 5s ease-in-out infinite;
}
.scn-carmen-plans-robbery-milord .cpr-hand-r {
  position: absolute; bottom: 35%; right: 32%;
  width: 18px; height: 30px;
  background: linear-gradient(180deg, #a07040 0%, #785030 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 60% 40%;
  transform-origin: bottom center;
  animation: cpr-hand 5s ease-in-out infinite alternate-reverse;
}
.scn-carmen-plans-robbery-milord .cpr-candle {
  position: absolute; bottom: 38%; left: 48%;
  width: 8px; height: 50px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b888 50%, #a08050 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(240,200,120,.5);
  animation: cpr-candle 3s ease-in-out infinite alternate;
}
.scn-carmen-plans-robbery-milord .cpr-coins {
  position: absolute; bottom: 25%; left: 58%;
  width: 30px; height: 18px;
  background: radial-gradient(circle at 30% 40%, #f0d080 0%, #c8a040 60%);
  border-radius: 50%;
  box-shadow: 2px 2px 4px rgba(0,0,0,.3), inset 0 1px 2px rgba(255,255,200,.5);
  animation: cpr-coins 6s ease-in-out infinite alternate;
}
.scn-carmen-plans-robbery-milord .cpr-bottle {
  position: absolute; bottom: 22%; left: 20%;
  width: 16px; height: 40px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  transform: rotate(-10deg);
  animation: cpr-bottle 12s ease-in-out infinite alternate;
}
@keyframes cpr-bgw {
  0% { opacity: .95; }
  100% { opacity: 1; }
}
@keyframes cpr-table {
  0% { transform: perspective(600px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(600px) rotateX(12deg) translateY(-2px); }
  100% { transform: perspective(600px) rotateX(8deg) translateY(0); }
}
@keyframes cpr-map {
  0% { transform: perspective(400px) rotateX(5deg); }
  50% { transform: perspective(400px) rotateX(8deg) translateY(-1px); }
  100% { transform: perspective(400px) rotateX(3deg); }
}
@keyframes cpr-hand {
  0% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(8px, -4px) rotate(10deg); }
  50% { transform: translate(16px, -2px) rotate(-5deg); }
  75% { transform: translate(24px, -6px) rotate(8deg); }
  100% { transform: translate(32px, 0) rotate(0deg); }
}
@keyframes cpr-candle {
  0% { transform: scaleY(1); opacity: .9; box-shadow: 0 0 15px 4px rgba(240,200,120,.4); }
  50% { transform: scaleY(1.05); opacity: 1; box-shadow: 0 0 25px 8px rgba(240,200,120,.6); }
  100% { transform: scaleY(.95); opacity: .85; box-shadow: 0 0 18px 5px rgba(240,200,120,.45); }
}
@keyframes cpr-coins {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes cpr-bottle {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-1px); }
  100% { transform: rotate(-12deg) translateY(0); }
}

/* Scene: jose-plans-to-kill-garcia (dark dim interior) */
.scn-jose-plans-to-kill-garcia {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a1a2a 30%, #3a2a2a 60%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a2a 0%, transparent 70%);
}
.scn-jose-plans-to-kill-garcia .jpk-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2a 0%, #2a1a2a 40%, #1a0a0a 100%);
  animation: jpk-room 20s ease-in-out infinite alternate;
}
.scn-jose-plans-to-kill-garcia .jpk-table {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  transform: perspective(500px) rotateX(5deg);
  animation: jpk-table 12s ease-in-out infinite alternate;
}
.scn-jose-plans-to-kill-garcia .jpk-chair {
  position: absolute; bottom: 15%; left: 20%;
  width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-jose-plans-to-kill-garcia .jpk-figure {
  position: absolute; bottom: 22%; left: 45%;
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 10px 2px rgba(255,200,100,.15);
  animation: jpk-figure 7s ease-in-out infinite;
}
.scn-jose-plans-to-kill-garcia .jpk-knife {
  position: absolute; bottom: 40%; left: 52%;
  width: 5px; height: 40px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 50%, #404040 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px rgba(200,200,200,.4);
  transform: rotate(15deg);
  animation: jpk-knife 4s ease-in-out infinite alternate;
}
.scn-jose-plans-to-kill-garcia .jpk-candle {
  position: absolute; bottom: 30%; left: 35%;
  width: 6px; height: 40px;
  background: linear-gradient(180deg, #e0c080 0%, #b08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(200,150,60,.5);
  animation: jpk-candle 3s ease-in-out infinite alternate;
}
.scn-jose-plans-to-kill-garcia .jpk-other {
  position: absolute; bottom: 18%; right: 20%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  opacity: .4;
  animation: jpk-other 10s ease-in-out infinite alternate;
}
@keyframes jpk-room {
  0% { opacity: .95; }
  100% { opacity: 1; }
}
@keyframes jpk-table {
  0% { transform: perspective(500px) rotateX(5deg); }
  50% { transform: perspective(500px) rotateX(7deg) translateY(-1px); }
  100% { transform: perspective(500px) rotateX(3deg); }
}
@keyframes jpk-figure {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg) translateY(-2px); }
}
@keyframes jpk-knife {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-3px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes jpk-candle {
  0% { transform: scaleY(1) translateY(0); opacity: .8; box-shadow: 0 0 15px 4px rgba(200,150,60,.4); }
  50% { transform: scaleY(1.08) translateY(-2px); opacity: 1; box-shadow: 0 0 25px 8px rgba(200,150,60,.6); }
  100% { transform: scaleY(.92) translateY(1px); opacity: .75; box-shadow: 0 0 18px 5px rgba(200,150,60,.35); }
}
@keyframes jpk-other {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .5; transform: scale(1.02); }
  100% { opacity: .4; transform: scale(.98); }
}

/* scene: carmen-flirts-with-jose */
.scn-carmen-flirts-with-jose {
  background: linear-gradient(180deg, #fce4c0 0%, #f8d4a0 30%, #d8a870 70%, #b88850 100%),
              radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 60%);
}
.scn-carmen-flirts-with-jose .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d0f0 0%, #c8e4f0 50%, transparent 100%);
  animation: cfj-sky 15s ease-in-out infinite alternate;
}
.scn-carmen-flirts-with-jose .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d8a870 0%, #a08050 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-carmen-flirts-with-jose .carmen-body {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 100px;
  background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 50%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cfj-sway 4s ease-in-out infinite;
}
.scn-carmen-flirts-with-jose .carmen-mantilla {
  position: absolute; bottom: 70%; left: 30%; width: 70px; height: 30px;
  background: rgba(255,240,220,0.2);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: cfj-mantilla 6s ease-in-out infinite;
}
.scn-carmen-flirts-with-jose .acacia-mouth {
  position: absolute; bottom: 55%; left: 45%; width: 14px; height: 8px;
  background: radial-gradient(circle at 30% 30%, #f0e0a0 0%, #d0b060 60%, #a08030 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-15deg);
  animation: cfj-flower-bob 3s ease-in-out infinite;
}
.scn-carmen-flirts-with-jose .acacia-bunch {
  position: absolute; bottom: 38%; left: 20%; width: 20px; height: 12px;
  background: radial-gradient(circle at 40% 40%, #e0d090 0%, #b8a060 70%);
  border-radius: 30% 50% 40% 30%;
  animation: cfj-flower-bunch 5s ease-in-out infinite;
}
.scn-carmen-flirts-with-jose .jose-far {
  position: absolute; bottom: 10%; right: 15%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: scale(0.7);
  animation: cfj-jose-shift 12s ease-in-out infinite;
}
@keyframes cfj-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes cfj-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes cfj-mantilla { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes cfj-flower-bob { 0% { transform: translateY(0) rotate(-15deg); } 50% { transform: translateY(-2px) rotate(-10deg); } 100% { transform: translateY(0) rotate(-15deg); } }
@keyframes cfj-flower-bunch { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes cfj-jose-shift { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.6; } }

/* scene: acacia-blossom-thrown */
.scn-acacia-blossom-thrown {
  background: linear-gradient(180deg, #fce4c0 0%, #f0c880 40%, #c8a060 70%, #a08040 100%),
              radial-gradient(ellipse at 50% 100%, #fff0d0 0%, transparent 50%);
}
.scn-acacia-blossom-thrown .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #a0c8f0 0%, #d0e4f8 50%, transparent 100%);
  animation: abt-sky 18s ease-in-out infinite alternate;
}
.scn-acacia-blossom-thrown .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b09060 0%, #907040 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}
.scn-acacia-blossom-thrown .carmen-hip {
  position: absolute; bottom: 15%; left: 25%; width: 45px; height: 90px;
  background: linear-gradient(135deg, #7a4a3a 0%, #4a2a1a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  animation: abt-hip 2s ease-in-out infinite;
}
.scn-acacia-blossom-thrown .acacia-flying {
  position: absolute; bottom: 60%; left: 50%; width: 16px; height: 10px;
  background: radial-gradient(circle at 30% 30%, #f0d8a0 0%, #c8a050 70%, #907030 100%);
  border-radius: 40% 60% 30% 50%;
  animation: abt-fly 1.5s cubic-bezier(.42,0,.58,1) infinite;
}
.scn-acacia-blossom-thrown .jose-seated {
  position: absolute; bottom: 8%; right: 20%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: scale(0.8) rotate(5deg);
  animation: abt-jose-bob 3s ease-in-out infinite;
}
.scn-acacia-blossom-thrown .cat-silhouette {
  position: absolute; bottom: 25%; right: 45%; width: 40px; height: 20px;
  background: #1a1a0a;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: abt-cat 4s ease-in-out infinite;
}
@keyframes abt-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes abt-hip { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes abt-fly {
  0% { transform: translate(0, 0) rotate(0deg) scale(1); opacity:1; }
  50% { transform: translate(20px, -30px) rotate(90deg) scale(1.2); opacity:0.8; }
  100% { transform: translate(0, 0) rotate(180deg) scale(1); opacity:1; }
}
@keyframes abt-jose-bob { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes abt-cat { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }

/* scene: carmen-taunts-jose */
.scn-carmen-taunts-jose {
  background: linear-gradient(180deg, #fce4c0 0%, #e8c080 30%, #c8a060 70%, #a08040 100%),
              radial-gradient(ellipse at 100% 20%, #fff5e0 0%, transparent 60%);
}
.scn-carmen-taunts-jose .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #b8d4f0 0%, #d8e8f8 50%, transparent 100%);
  animation: ctj-sky 20s ease-in-out infinite alternate;
}
.scn-carmen-taunts-jose .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b09868 0%, #907850 100%);
  border-radius: 30% 30% 0 0 / 25% 25% 0 0;
}
.scn-carmen-taunts-jose .carmen-profile {
  position: absolute; bottom: 10%; left: 20%; width: 50px; height: 100px;
  background: linear-gradient(135deg, #6a4a3a 45%, #4a2a1a 55%);
  border-radius: 50% 30% 30% 50% / 70% 30% 40% 60%;
  animation: ctj-laugh 5s ease-in-out infinite;
}
.scn-carmen-taunts-jose .lace-pattern {
  position: absolute; bottom: 25%; left: 10%; width: 80px; height: 50px;
  background: radial-gradient(circle at 10% 10%, transparent 20%, rgba(200,180,140,0.3) 20%, transparent 22%),
              radial-gradient(circle at 30% 30%, transparent 20%, rgba(200,180,140,0.3) 20%, transparent 22%),
              radial-gradient(circle at 50% 50%, transparent 20%, rgba(200,180,140,0.3) 20%, transparent 22%);
  filter: blur(1px);
  animation: ctj-lace 8s linear infinite;
}
.scn-carmen-taunts-jose .priming-pin {
  position: absolute; bottom: 50%; left: 30%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #c8b090 0%, #a08870 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(30deg);
  animation: ctj-pin-pulse 2s ease-in-out infinite;
}
.scn-carmen-taunts-jose .jose-red {
  position: absolute; bottom: 8%; right: 15%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #a04030 0%, #3a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: ctj-red-face 3s ease-in-out infinite;
}
.scn-carmen-taunts-jose .embarrass-stars {
  position: absolute; top: 30%; right: 10%; width: 60px; height: 60px;
  background: radial-gradient(circle at 20% 20%, rgba(255,200,80,0.5) 0%, transparent 50%),
              radial-gradient(circle at 80% 40%, rgba(255,200,80,0.3) 0%, transparent 40%);
  filter: blur(2px);
  animation: ctj-stars 4s ease-in-out infinite;
}
@keyframes ctj-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ctj-laugh { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(5deg) scale(1.02); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes ctj-lace { 0% { background-position: 0 0; } 100% { background-position: 50px 50px; } }
@keyframes ctj-pin-pulse { 0% { opacity:0.7; transform: rotate(30deg) scale(1); } 50% { opacity:1; transform: rotate(30deg) scale(1.2); } 100% { opacity:0.7; transform: rotate(30deg) scale(1); } }
@keyframes ctj-red-face { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ctj-stars { 0% { opacity:0; } 50% { opacity:0.6; } 100% { opacity:0; } }

/* scene: item-acacia-blossom-kept */
.scn-item-acacia-blossom-kept {
  background: linear-gradient(180deg, #f8d8a0 0%, #e8c080 40%, #d0a060 70%, #b88848 100%),
              radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 50%);
}
.scn-item-acacia-blossom-kept .sky {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c0d8f0 0%, #d8e8f8 50%, transparent 100%);
  animation: iabk-sky 14s ease-in-out infinite alternate;
}
.scn-item-acacia-blossom-kept .jose-head {
  position: absolute; bottom: 30%; left: 30%; width: 50px; height: 60px;
  background: linear-gradient(135deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 45% 45%;
  transform: rotate(-10deg);
  animation: iabk-head-tilt 5s ease-in-out infinite;
}
.scn-item-acacia-blossom-kept .acacia-stuck {
  position: absolute; bottom: 48%; left: 33%; width: 20px; height: 12px;
  background: radial-gradient(circle at 30% 30%, #f0d8a0 0%, #c8a050 60%, #907030 100%);
  border-radius: 40% 60% 30% 50%;
  transform: rotate(20deg);
  animation: iabk-blossom-wiggle 2s ease-in-out infinite;
}
.scn-item-acacia-blossom-kept .impact-flash {
  position: absolute; bottom: 45%; left: 30%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,220,100,0.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: iabk-flash 0.8s ease-out infinite;
}
.scn-item-acacia-blossom-kept .shadow-cast {
  position: absolute; bottom: 20%; left: 25%; width: 70px; height: 40px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(3px);
  animation: iabk-shadow-pulse 6s ease-in-out infinite;
}
.scn-item-acacia-blossom-kept .carmen-hand {
  position: absolute; bottom: 35%; right: 15%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(45deg);
  animation: iabk-hand-throw 3s ease-in-out infinite;
}
@keyframes iabk-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes iabk-head-tilt { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(-10deg); } }
@keyframes iabk-blossom-wiggle { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(25deg) scale(1.1); } 100% { transform: rotate(20deg) scale(1); } }
@keyframes iabk-flash { 0% { opacity:1; } 50% { opacity:0.5; } 100% { opacity:1; } }
@keyframes iabk-shadow-pulse { 0% { opacity:0.2; } 50% { opacity:0.3; } 100% { opacity:0.2; } }
@keyframes iabk-hand-throw { 0% { transform: rotate(45deg) translate(0,0); } 50% { transform: rotate(50deg) translate(5px,-5px); } 100% { transform: rotate(45deg) translate(0,0); } }

/* carmen-reconciles – warm, dim interior reconciliation */
.scn-carmen-reconciles {
  background:
    linear-gradient(180deg, #4a2e1a 0%, #2a1a0a 40%, #1a0e05 100%),
    radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-carmen-reconciles .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  box-shadow: inset 0 12px 30px rgba(0,0,0,.6);
}
.scn-carmen-reconciles .bg-floor {
  position: absolute; bottom: 0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e00 100%);
}
.scn-carmen-reconciles .table {
  position: absolute; bottom:22%; left:50%; width:120px; height:20px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,.7);
}
.scn-carmen-reconciles .candle {
  position: absolute; bottom:30%; left:50%; width:10px; height:30px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #c0a060 0%, #8a6a3a 60%, #4a3020 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 24px 8px #f0c060, 0 0 48px 16px rgba(240,192,96,.4);
  animation: cr-candle 3s ease-in-out infinite alternate;
}
.scn-carmen-reconciles .figure-carmen {
  position: absolute; bottom:16%; left:38%; width:30px; height:60px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 70% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-breathe 4s ease-in-out infinite;
}
.scn-carmen-reconciles .figure-jose {
  position: absolute; bottom:16%; left:56%; width:32px; height:64px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 70% 40% 40%;
  transform-origin: bottom center;
  animation: cr-breathe 4s ease-in-out infinite 0.5s;
}
.scn-carmen-reconciles .window-glow {
  position: absolute; top:15%; left:20%; width:40px; height:50px;
  background: radial-gradient(circle, #f0d080 0%, #c09850 50%, transparent 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 30px 15px #d0a060, 0 0 60px 30px rgba(208,160,96,.3);
  animation: cr-window 5s ease-in-out infinite alternate;
}
@keyframes cr-candle {
  0% { box-shadow: 0 0 20px 6px #f0c060, 0 0 40px 12px rgba(240,192,96,.3); opacity: .8; transform: translateX(-50%) scaleY(1); }
  50% { box-shadow: 0 0 28px 10px #ffe080, 0 0 50px 20px rgba(255,224,128,.5); opacity: 1; transform: translateX(-50%) scaleY(1.05); }
  100% { box-shadow: 0 0 22px 7px #f0c060, 0 0 44px 14px rgba(240,192,96,.35); opacity: .85; transform: translateX(-50%) scaleY(0.97); }
}
@keyframes cr-breathe {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes cr-window {
  0% { opacity: .6; transform: scale(.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: .7; transform: scale(.98); }
}

/* lieutenant-at-doroteas – tense, dim interior waiting */
.scn-lieutenant-at-doroteas {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a28 50%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 80%);
}
.scn-lieutenant-at-doroteas .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.8);
}
.scn-lieutenant-at-doroteas .bg-floor {
  position: absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
}
.scn-lieutenant-at-doroteas .door {
  position: absolute; bottom:20%; left:40%; width:60px; height:100px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5), 4px 0 8px rgba(0,0,0,.4);
  transform-origin: left center;
  animation: ld-door 8s ease-in-out infinite;
}
.scn-lieutenant-at-doroteas .table {
  position: absolute; bottom:18%; right:15%; width:80px; height:16px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
}
.scn-lieutenant-at-doroteas .lamp {
  position: absolute; bottom:30%; right:25%; width:12px; height:18px;
  background: radial-gradient(circle, #d0c080 0%, #8a7a50 70%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 8px #b0a060, 0 0 40px 16px rgba(176,160,96,.3);
  animation: ld-lamp 3s ease-in-out infinite alternate;
}
.scn-lieutenant-at-doroteas .figure-lieutenant {
  position: absolute; bottom:12%; left:30%; width:28px; height:70px;
  background: linear-gradient(180deg, #0a0a1a 0%, #05050a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: ld-fidget 2s ease-in-out infinite;
}
.scn-lieutenant-at-doroteas .creaking-shadow {
  position: absolute; bottom:12%; left:30%; width:40px; height:80px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(8px);
  transform: translateX(10px) skewX(-10deg);
  animation: ld-shadow 6s ease-in-out infinite;
}
@keyframes ld-door {
  0% { transform: rotate(0deg); }
  20% { transform: rotate(2deg); }
  25% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  55% { transform: rotate(-1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ld-lamp {
  0% { box-shadow: 0 0 15px 4px #b0a060, 0 0 30px 8px rgba(176,160,96,.2); opacity: .7; }
  50% { box-shadow: 0 0 25px 10px #d0c080, 0 0 50px 20px rgba(208,192,128,.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #b0a060, 0 0 35px 10px rgba(176,160,96,.25); opacity: .8; }
}
@keyframes ld-fidget {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ld-shadow {
  0% { transform: translateX(10px) skewX(-10deg) scaleY(1); opacity: .3; }
  50% { transform: translateX(8px) skewX(-12deg) scaleY(1.05); opacity: .5; }
  100% { transform: translateX(10px) skewX(-10deg) scaleY(1); opacity: .3; }
}

/* jose-kills-lieutenant – dark, violent confrontation */
.scn-jose-kills-lieutenant {
  background:
    linear-gradient(180deg, #1a0a0a 0%, #0e0505 40%, #050202 100%),
    radial-gradient(ellipse at 50% 80%, #3a1a1a 0%, transparent 70%);
}
.scn-jose-kills-lieutenant .bg-floor {
  position: absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #1a0505 0%, #0a0202 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.8);
}
.scn-jose-kills-lieutenant .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a0a0a 0%, #1a0505 100%);
}
.scn-jose-kills-lieutenant .figure-jose {
  position: absolute; bottom:12%; left:42%; width:32px; height:60px;
  background: linear-gradient(180deg, #0a0202 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 70% 40% 40%;
  transform-origin: bottom center;
  animation: jk-lunge 1.5s ease-out infinite;
}
.scn-jose-kills-lieutenant .figure-lieutenant {
  position: absolute; bottom:12%; left:56%; width:30px; height:64px;
  background: linear-gradient(180deg, #0a0202 0%, #000 100%);
  border-radius: 50% 50% 30% 40% / 60% 60% 30% 40%;
  transform-origin: bottom center;
  animation: jk-fall 2s ease-in infinite;
}
.scn-jose-kills-lieutenant .sword {
  position: absolute; bottom:30%; left:50%; width:4px; height:50px;
  background: linear-gradient(180deg, #5a3a3a 0%, #2a1a1a 100%);
  border-radius: 2px;
  transform-origin: 2px 100%;
  box-shadow: 0 0 6px 2px rgba(90,58,58,.5);
  animation: jk-thrust 0.8s ease-in-out infinite;
}
.scn-jose-kills-lieutenant .lamp-falling {
  position: absolute; bottom:40%; right:20%; width:14px; height:20px;
  background: radial-gradient(circle, #d08040 0%, #8a5020 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px #c07030, 0 0 40px 16px rgba(192,112,48,.3);
  animation: jk-fade 3s ease-in infinite;
}
.scn-jose-kills-lieutenant .spark {
  position: absolute; bottom:45%; left:45%; width:4px; height:4px;
  background: #ffd080;
  border-radius: 50%;
  box-shadow: 0 0 10px 3px #ffd080;
  animation: jk-spark 0.4s ease-in-out infinite alternate;
}
@keyframes jk-lunge {
  0% { transform: translateX(0) scaleX(1); }
  20% { transform: translateX(12px) scaleX(1.1); }
  40% { transform: translateX(10px) scaleX(0.95); }
  60% { transform: translateX(12px) scaleX(1.02); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes jk-fall {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(-15deg) translateY(2px); }
  60% { transform: rotate(-25deg) translateY(5px); }
  100% { transform: rotate(-40deg) translateY(10px); opacity: .5; }
}
@keyframes jk-thrust {
  0% { transform: rotate(-20deg) translateX(-30px); }
  30% { transform: rotate(0deg) translateX(40px); }
  50% { transform: rotate(5deg) translateX(50px); }
  70% { transform: rotate(0deg) translateX(40px); }
  100% { transform: rotate(-20deg) translateX(-30px); }
}
@keyframes jk-fade {
  0% { opacity: 1; box-shadow: 0 0 20px 8px #c07030; }
  50% { opacity: .5; box-shadow: 0 0 10px 4px #c07030; }
  100% { opacity: 0; box-shadow: 0 0 0 0 #c07030; }
}
@keyframes jk-spark {
  0% { opacity: 1; transform: scale(1) translate(0,0); }
  100% { opacity: 0; transform: scale(0.2) translate(-10px, --10px); }
}

/* carmen-extinguishes-lamp – dark, lamp extinguished by hand */
.scn-carmen-extinguishes-lamp {
  background:
    linear-gradient(180deg, #0e0e1a 0%, #05050a 50%, #000 100%),
    radial-gradient(ellipse at 50% 70%, #2a2a3a 0%, transparent 80%);
}
.scn-carmen-extinguishes-lamp .room-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.8);
}
.scn-carmen-extinguishes-lamp .room-floor {
  position: absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #0a0a12 0%, #000 100%);
}
.scn-carmen-extinguishes-lamp .lamp {
  position: absolute; top:25%; left:50%; width:16px; height:24px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e0b080 0%, #a07040 70%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 12px #c09060, 0 0 60px 24px rgba(192,144,96,.4);
  animation: ce-extinguish 5s ease-in-out infinite;
}
.scn-carmen-extinguishes-lamp .figure-carmen {
  position: absolute; bottom:12%; left:42%; width:28px; height:60px;
  background: linear-gradient(180deg, #0a0202 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 70% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-reach 4s ease-in-out infinite;
}
.scn-carmen-extinguishes-lamp .figure-dorotea {
  position: absolute; bottom:10%; left:30%; width:26px; height:50px;
  background: linear-gradient(180deg, #0a0202 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-cower 3s ease-in-out infinite;
}
.scn-carmen-extinguishes-lamp .arm-reaching {
  position: absolute; bottom:40%; left:48%; width:6px; height:30px;
  background: linear-gradient(180deg, #0a0202 0%, #000 100%);
  border-radius: 50% 50% 10% 10%;
  transform-origin: bottom left;
  animation: ce-arm 5s ease-in-out infinite;
}
.scn-carmen-extinguishes-lamp .shadow-stretch {
  position: absolute; bottom:0; left:30%; width:40px; height:80px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(10px);
  transform: skewX(-5deg);
  animation: ce-shadow 8s ease-in-out infinite;
}
@keyframes ce-extinguish {
  0% { box-shadow: 0 0 30px 12px #c09060; opacity: 1; }
  40% { box-shadow: 0 0 20px 8px #c09060; opacity: .8; }
  70% { box-shadow: 0 0 5px 2px #c09060; opacity: .3; }
  100% { box-shadow: 0 0 0 0 #c09060; opacity: 0; }
}
@keyframes ce-reach {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-10px) rotate(-5deg); }
  50% { transform: translateY(-15px) rotate(-10deg); }
  70% { transform: translateY(-10px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ce-cower {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.95) translateY(2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes ce-arm {
  0% { transform: rotate(30deg) translate(-10px, 10px); }
  30% { transform: rotate(60deg) translate(-20px, 0px); }
  50% { transform: rotate(90deg) translate(-30px, -5px); }
  70% { transform: rotate(60deg) translate(-20px, 0px); }
  100% { transform: rotate(30deg) translate(-10px, 10px); }
}
@keyframes ce-shadow {
  0% { transform: skewX(-5deg) scaleY(1); opacity: .3; }
  50% { transform: skewX(-15deg) scaleY(1.2); opacity: .5; }
  100% { transform: skewX(-5deg) scaleY(1); opacity: .3; }
}

.scn-jose-gallops-away { background: linear-gradient(180deg, #1a1a3e 0%, #0e0e2a 40%, #1b1b40 100%), radial-gradient(ellipse at 50% 100%, #2c2c5e 0%, transparent 70%); }
.scn-jose-gallops-away .sky   { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #1e1e4a 0%, transparent 100%); animation: sky-jga 14s ease-in-out infinite alternate; }
.scn-jose-gallops-away .moon  { position:absolute; top:10%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #f0e8d0 0%, #d0c0a0 80%); border-radius:50%; box-shadow: 0 0 40px 16px rgba(240,232,208,.5), 0 0 80px 32px rgba(240,232,208,.2); animation: moon-jga 20s ease-in-out infinite alternate; }
.scn-jose-gallops-away .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 70% 0 0 / 60% 60% 0 0; box-shadow: inset 0 10px 16px rgba(0,0,0,.5); animation: hills-jga 25s ease-in-out infinite alternate; }
.scn-jose-gallops-away .ground{ position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:0; }
.scn-jose-gallops-away .horse { position:absolute; bottom:8%; left:0; width:60px; height:40px; background: linear-gradient(135deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 60% 30% 70% / 50% 60% 40% 50%; transform-origin: center 80%; animation: horse-jga 2s ease-in-out infinite, ride-jga 12s linear infinite; }
.scn-jose-gallops-away .rider { position:absolute; bottom:18%; left:12px; width:20px; 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: rider-jga 2s ease-in-out infinite, ride-offset-jga 12s linear infinite; }
.scn-jose-gallops-away .dust  { position:absolute; bottom:5%; left:0; width:40px; height:20px; background: radial-gradient(ellipse, rgba(200,180,160,.4) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: dust-jga 2s ease-in-out infinite, ride-dust-jga 12s linear infinite; }
@keyframes sky-jga { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes moon-jga { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(8px,-6px) scale(1.02) } 100% { transform: translate(-4px,4px) scale(.98) } }
@keyframes hills-jga { 0% { transform: translateY(0) } 50% { transform: translateY(-6px) } 100% { transform: translateY(0) } }
@keyframes horse-jga { 0% { transform: rotate(-3deg) translateY(0) } 25% { transform: rotate(2deg) translateY(-4px) } 50% { transform: rotate(-4deg) translateY(0) } 75% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes ride-jga { 0% { left:-60px } 100% { left:120vw } }
@keyframes rider-jga { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes ride-offset-jga { 0% { left:12px } 100% { left:calc(120vw + 12px) } }
@keyframes dust-jga { 0%,100% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } }
@keyframes ride-dust-jga { 0% { left:-60px } 100% { left:120vw } }

.scn-questioning-morality-choice { background: linear-gradient(180deg, #0e0e1e 0%, #1a1a30 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 0%, #3a3a6a 0%, transparent 60%); }
.scn-questioning-morality-choice .sky-full     { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a3e 0%, #0e0e2a 100%); animation: sky-qmc 12s ease-in-out infinite alternate; }
.scn-questioning-morality-choice .moon-clouds  { position:absolute; top:12%; left:40%; width:40px; height:40px; background: radial-gradient(circle, #d0c8b0 0%, #a09880 80%); border-radius:50%; box-shadow: 0 0 30px 12px rgba(208,200,176,.4); animation: cloud-qmc 35s linear infinite, moon-glow-qmc 6s ease-in-out infinite alternate; }
.scn-questioning-morality-choice .hills-distant{ position:absolute; bottom:30%; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a2a2a 0%, #0e1a1a 100%); border-radius: 40% 60% 0 0 / 70% 70% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.6); animation: hills-qmc 18s ease-in-out infinite alternate; }
.scn-questioning-morality-choice .ground-plain { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); }
.scn-questioning-morality-choice .horsemen-group { position:absolute; bottom:18%; left:20%; width:120px; height:50px; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 30%, #2a2a3a 60%, #3a3a4a 100%); border-radius: 20% 40% 30% 50% / 40% 30% 50% 20%; transform-origin: center 80%; animation: gallop-qmc 1.2s ease-in-out infinite, approach-qmc 25s linear infinite; }
.scn-questioning-morality-choice .protagonist-figure { position:absolute; bottom:8%; left:65%; 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: breathe-qmc 3s ease-in-out infinite, tremble-qmc 0.8s ease-in-out infinite; }
.scn-questioning-morality-choice .glint-light { position:absolute; bottom:27%; left:68%; width:4px; height:4px; background: #f0e8d0; border-radius:50%; box-shadow: 0 0 12px 6px rgba(240,232,208,.8); animation: glint-qmc 3s ease-in-out infinite; }
.scn-questioning-morality-choice .tree-shadow { position:absolute; bottom:25%; left:10%; width:30px; height:80px; background: linear-gradient(180deg, transparent 0%, #0a0a1a 60%, #1a1a2a 100%); border-radius: 30% 70% 50% 50% / 20% 80% 50% 50%; transform-origin: bottom center; animation: sway-qmc 8s ease-in-out infinite; }
@keyframes sky-qmc { 0% { opacity:.5 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes cloud-qmc { 0% { left:40% } 50% { left:60% } 100% { left:40% } }
@keyframes moon-glow-qmc { 0%,100% { box-shadow: 0 0 20px 8px rgba(208,200,176,.2) } 50% { box-shadow: 0 0 40px 16px rgba(208,200,176,.6) } }
@keyframes hills-qmc { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes gallop-qmc { 0% { transform: rotate(-3deg) translateY(0) } 20% { transform: rotate(2deg) translateY(-5px) } 40% { transform: rotate(-4deg) translateY(0) } 60% { transform: rotate(3deg) translateY(-4px) } 80% { transform: rotate(-2deg) translateY(0) } 100% { transform: rotate(1deg) translateY(-2px) } }
@keyframes approach-qmc { 0% { left:20%; transform: scale(0.6) } 50% { left:40%; transform: scale(0.8) } 100% { left:60%; transform: scale(1) } }
@keyframes breathe-qmc { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } }
@keyframes tremble-qmc { 0%,100% { transform: translateX(0) } 25% { transform: translateX(1px) } 75% { transform: translateX(-1px) } }
@keyframes glint-qmc { 0%,100% { opacity:.3 } 20% { opacity:1 } 40% { opacity:.3 } 60% { opacity:1 } 80% { opacity:.3 } }
@keyframes sway-qmc { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(4deg) } }

.scn-signing-declaration-alcalde { background: linear-gradient(180deg, #f5e8d0 0%, #dcc8a0 40%, #c4a870 100%), radial-gradient(ellipse at 30% 30%, #fff5e0 0%, transparent 60%); }
.scn-signing-declaration-alcalde .room-wall    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8d8b8 0%, #d4c098 100%); border-radius: 0 0 10% 10% / 0 0 5% 5%; box-shadow: inset 0 8px 20px rgba(100,60,20,.2); }
.scn-signing-declaration-alcalde .floor        { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b8a080 0%, #a08868 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.15); }
.scn-signing-declaration-alcalde .window-frame { position:absolute; top:15%; right:15%; width:90px; height:80px; background: linear-gradient(180deg, #b8a080 0%, #9e8a6e 100%); border-radius: 4px; box-shadow: inset 0 0 0 6px #a08868; }
.scn-signing-declaration-alcalde .sunbeam      { position:absolute; top:15%; right:15%; width:80px; height:80px; background: linear-gradient(135deg, rgba(255,240,200,.6) 0%, rgba(255,240,200,.1) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: beam-sda 8s ease-in-out infinite alternate; }
.scn-signing-declaration-alcalde .table        { position:absolute; bottom:30%; left:25%; width:120px; height:20px; background: linear-gradient(180deg, #6a5030 0%, #4a3018 100%); border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,.3); }
.scn-signing-declaration-alcalde .alcalde-figure { position:absolute; bottom:18%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sit-sda 6s ease-in-out infinite; }
.scn-signing-declaration-alcalde .protagonist-figure { position:absolute; bottom:18%; left:55%; width:18px; height:48px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 60% 35% 45% / 55% 55% 30% 30%; transform-origin: bottom center; animation: stand-sda 5s ease-in-out infinite; }
.scn-signing-declaration-alcalde .document     { position:absolute; bottom:32%; left:48%; width:40px; height:15px; background: linear-gradient(180deg, #f5eed0 0%, #e0d4b0 100%); border-radius: 2px; transform: rotate(2deg); animation: doc-sda 7s ease-in-out infinite; }
.scn-signing-declaration-alcalde .inkwell      { position:absolute; bottom:32%; left:54%; width:10px; height:12px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: ink-sda 4s ease-in-out infinite alternate; }
@keyframes beam-sda { 0% { opacity:.4; transform: skewX(0deg) } 50% { opacity:.7; transform: skewX(2deg) } 100% { opacity:.5; transform: skewX(-1deg) } }
@keyframes sit-sda { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes stand-sda { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes doc-sda { 0%,100% { transform: rotate(2deg) } 50% { transform: rotate(4deg) } }
@keyframes ink-sda { 0% { transform: scaleY(1) } 100% { transform: scaleY(.9) } }

.scn-researching-dominican-library { background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 50%, #c8b498 100%), radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 80%); }
.scn-researching-dominican-library .library-wall  { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d8c8af 0%, #bfb098 100%); }
.scn-researching-dominican-library .window-blue   { position:absolute; top:15%; left:20%; width:80px; height:100px; background: linear-gradient(180deg, #b0d0e8 0%, #80a8c8 100%); border-radius: 4px; box-shadow: inset 0 0 0 8px #a08868, 0 0 20px rgba(176,208,232,.3); }
.scn-researching-dominican-library .bookshelf     { position:absolute; top:10%; right:10%; width:50px; height:140px; background: linear-gradient(90deg, #6a5030 0%, #4a3018 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-researching-dominican-library .bookshelf::before { content:''; position:absolute; top:20%; left:10%; width:80%; height:10%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:2px; } /* using pseudo for additional book level but we only have divs, need to use actual divs. Since we have 9 divs, replace with a div for bookshelf interior? Better to use an extra div for books */
.scn-researching-dominican-library .desk-wood     { position:absolute; bottom:30%; left:30%; width:120px; height:15px; background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%); border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,.2); }
.scn-researching-dominican-library .scholar-figure { position:absolute; bottom:15%; left:40%; width:18px; 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: read-rdl 3s ease-in-out infinite, lean-rdl 7s ease-in-out infinite; }
.scn-researching-dominican-library .lamp-glow     { position:absolute; bottom:28%; left:55%; width:12px; height:16px; background: radial-gradient(circle, #ffd880 0%, #d4a050 90%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 24px 8px rgba(255,216,128,.5), 0 0 48px 16px rgba(255,216,128,.2); animation: lamp-rdl 5s ease-in-out infinite alternate; }
.scn-researching-dominican-library .open-book     { position:absolute; bottom:30%; left:38%; width:40px; height:10px; background: linear-gradient(180deg, #f5eed0 0%, #d4c8a0 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.15); animation: book-rdl 6s ease-in-out infinite; }
.scn-researching-dominican-library .dust-mote-1   { position:absolute; top:30%; right:25%; width:4px; height:4px; background: rgba(255,240,200,.6); border-radius:50%; filter: blur(1px); animation: mote-rdl 18s linear infinite; }
.scn-researching-dominican-library .dust-mote-2   { position:absolute; top:45%; left:28%; width:3px; height:3px; background: rgba(255,240,200,.5); border-radius:50%; filter: blur(1px); animation: mote-rdl 22s linear infinite reverse; }
@keyframes read-rdl { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes lean-rdl { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } }
@keyframes lamp-rdl { 0% { box-shadow: 0 0 20px 6px rgba(255,216,128,.4), 0 0 40px 12px rgba(255,216,128,.15); } 50% { box-shadow: 0 0 30px 10px rgba(255,216,128,.6), 0 0 60px 20px rgba(255,216,128,.3); } 100% { box-shadow: 0 0 20px 6px rgba(255,216,128,.4), 0 0 40px 12px rgba(255,216,128,.15); } }
@keyframes book-rdl { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(-7deg) } }
@keyframes mote-rdl { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.3 } 25% { transform: translateY(-20px) translateX(15px) scale(1.2); opacity:.7 } 50% { transform: translateY(-40px) translateX(0) scale(1); opacity:.5 } 75% { transform: translateY(-20px) translateX(-15px) scale(1.1); opacity:.8 } 100% { transform: translateY(0) translateX(0) scale(1); opacity:.3 } }

.scn-jose-claims-carmen-for-himself { background: linear-gradient(180deg, #1a0e0a 0%, #3a1a10 40%, #4a2a1a 100%), radial-gradient(ellipse at 50% 70%, #5a3a2a 0%, transparent 70%); }
.scn-jose-claims-carmen-for-himself .bg-cave { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1510 0%, #1a0e0a 100%); border-radius:0 0 40% 40% / 0 0 60% 60%; animation: jc-cave 20s ease-in-out infinite alternate; }
.scn-jose-claims-carmen-for-himself .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius:60% 40% 0 0 / 80% 50% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-jose-claims-carmen-for-himself .fire { position:absolute; bottom:30%; left:50%; width:50px; height:70px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 20%, #e67e22 0%, #c0392b 40%, #5a1a0a 80%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; box-shadow: 0 0 60px 30px rgba(230,126,34,.5); animation: jc-fire 2s ease-in-out infinite alternate; }
.scn-jose-claims-carmen-for-himself .glow { position:absolute; bottom:30%; left:50%; width:120px; height:120px; transform:translate(-50%, 20%); background: radial-gradient(circle, rgba(230,126,34,.4) 0%, transparent 70%); border-radius:50%; animation: jc-glow 3s ease-in-out infinite alternate; }
.scn-jose-claims-carmen-for-himself .figure-jose { position:absolute; bottom:30%; left:38%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: jc-jose 4s ease-in-out infinite; }
.scn-jose-claims-carmen-for-himself .figure-carmen { position:absolute; bottom:30%; right:38%; width:26px; height:55px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: jc-carmen 4.5s ease-in-out infinite; }
.scn-jose-claims-carmen-for-himself .sparks { position:absolute; bottom:45%; left:50%; width:4px; height:4px; background: #f1c40f; border-radius:50%; box-shadow: 0 0 6px 2px #f39c12; animation: jc-sparks 2s ease-out infinite; }
@keyframes jc-cave   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes jc-fire   { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.08) scaleX(.95) } 100% { transform: translateX(-50%) scaleY(.95) } }
@keyframes jc-glow   { 0% { opacity:.6; transform: translate(-50%, 20%) scale(1) } 50% { opacity:.9; transform: translate(-50%, 20%) scale(1.1) } 100% { opacity:.7; transform: translate(-50%, 20%) scale(1) } }
@keyframes jc-jose   { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes jc-carmen { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes jc-sparks { 0% { transform: translate(0,0) scale(1); opacity:1 } 50% { transform: translate(-4px, -20px) scale(.8); opacity:.6 } 100% { transform: translate(2px, -40px) scale(.5); opacity:0 } }

.scn-ambushing-english-travelers { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #d2b48c 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%); }
.scn-ambushing-english-travelers .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 60%, #f0e68c 100%); animation: ae-sky 10s ease-in-out infinite alternate; }
.scn-ambushing-english-travelers .sun { position:absolute; top:10%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 100px 50px rgba(255,215,0,.3); animation: ae-sun 4s ease-in-out infinite alternate; }
.scn-ambushing-english-travelers .mountains { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%); border-radius:60% 40% 0 0 / 100% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-ambushing-english-travelers .road { position:absolute; bottom:20%; left:-10%; right:-10%; height:15%; background: linear-gradient(90deg, #d2b48c 0%, #c4a882 30%, #d2b48c 50%, #c4a882 70%, #d2b48c 100%); border-radius:40% 60% 0 0 / 80% 70% 0 0; transform: skewX(-10deg); animation: ae-road 8s linear infinite; }
.scn-ambushing-english-travelers .bush { position:absolute; bottom:25%; left:25%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 100%, #6b8e23 0%, #556b2f 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ae-bush 6s ease-in-out infinite; }
.scn-ambushing-english-travelers .figure-jose { position:absolute; bottom:25%; left:28%; width:24px; height:50px; background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ae-jose 3s ease-in-out infinite; }
.scn-ambushing-english-travelers .figure-carmen { position:absolute; bottom:25%; left:55%; width:22px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ae-carmen 4s ease-in-out infinite; }
.scn-ambushing-english-travelers .figure-english { position:absolute; bottom:25%; left:65%; width:26px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ae-english 5s ease-in-out infinite; }
@keyframes ae-sky    { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ae-sun    { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(-5px,5px) scale(1.02) } 100% { transform: translate(0,0) scale(1) } }
@keyframes ae-road   { 0% { background-position:0 0 } 100% { background-position:200% 0 } }
@keyframes ae-bush   { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes ae-jose   { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ae-carmen { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ae-english { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }

.scn-carmen-calls-jose-lillipendi { background: linear-gradient(180deg, #3a1a10 0%, #5a2a1a 50%, #2a0e08 100%), radial-gradient(ellipse at 50% 60%, #7a3a1a 0%, transparent 70%); }
.scn-carmen-calls-jose-lillipendi .bg-fire { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a1a0a 0%, #2a0e08 100%); border-radius:0 0 30% 30% / 0 0 50% 50%; animation: cl-bg 20s ease-in-out infinite alternate; }
.scn-carmen-calls-jose-lillipendi .glow { position:absolute; bottom:35%; left:50%; width:140px; height:140px; transform:translate(-50%, 0); background: radial-gradient(circle, rgba(230,126,34,.5) 0%, transparent 70%); border-radius:50%; animation: cl-glow 4s ease-in-out infinite alternate; }
.scn-carmen-calls-jose-lillipendi .fire { position:absolute; bottom:30%; left:50%; width:45px; height:65px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #e67e22 0%, #c0392b 40%, #5a1a0a 80%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; box-shadow: 0 0 50px 20px rgba(230,126,34,.4); animation: cl-fire 2.5s ease-in-out infinite alternate; }
.scn-carmen-calls-jose-lillipendi .figure-jose { position:absolute; bottom:30%; left:35%; width:30px; height:58px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: cl-jose 6s ease-in-out infinite; }
.scn-carmen-calls-jose-lillipendi .figure-carmen { position:absolute; bottom:30%; right:35%; width:26px; height:52px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: cl-carmen 5s ease-in-out infinite; }
.scn-carmen-calls-jose-lillipendi .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a1a10 0%, #1a0a05 100%); border-radius:50% 50% 0 0 / 70% 70% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
.scn-carmen-calls-jose-lillipendi .castanets { position:absolute; bottom:35%; right:36%; width:10px; height:10px; background: #d35400; border-radius:50% 40% 40% 50%; transform-origin: 50% 100%; animation: cl-castanet 1.5s ease-in-out infinite; }
@keyframes cl-bg      { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cl-glow    { 0% { opacity:.6; transform: translate(-50%,0) scale(1) } 50% { opacity:.9; transform: translate(-50%,0) scale(1.08) } 100% { opacity:.7; transform: translate(-50%,0) scale(1) } }
@keyframes cl-fire    { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.1) scaleX(.93) } 100% { transform: translateX(-50%) scaleY(.95) } }
@keyframes cl-jose    { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cl-carmen  { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cl-castanet { 0% { transform: rotate(-15deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-15deg) } }

.scn-smuggling-life-continues { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 40%, #2a1a1a 100%), radial-gradient(ellipse at 50% 80%, #2a1a1a 0%, transparent 70%); }
.scn-smuggling-life-continues .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a3e 0%, #1a1a2e 100%); animation: sl-sky 30s ease-in-out infinite alternate; }
.scn-smuggling-life-continues .moon { position:absolute; top:12%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #f5f5dc 0%, #e8e0c8 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(245,245,220,.2); animation: sl-moon 8s ease-in-out infinite alternate; }
.scn-smuggling-life-continues .fire { position:absolute; bottom:35%; left:50%; width:50px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #e67e22 0%, #d35400 40%, #5a1a0a 80%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; box-shadow: 0 0 40px 20px rgba(230,126,34,.3); animation: sl-fire 4s ease-in-out infinite alternate; }
.scn-smuggling-life-continues .glow { position:absolute; bottom:35%; left:50%; width:150px; height:150px; transform:translate(-50%, 10%); background: radial-gradient(circle, rgba(230,126,34,.3) 0%, transparent 70%); border-radius:50%; animation: sl-glow 6s ease-in-out infinite alternate; }
.scn-smuggling-life-continues .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius:40% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-smuggling-life-continues .figure-jose { position:absolute; bottom:30%; left:35%; width:28px; height:55px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: sl-jose 7s ease-in-out infinite; }
.scn-smuggling-life-continues .figure-carmen { position:absolute; bottom:30%; right:35%; width:24px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: sl-carmen 5s ease-in-out infinite; }
.scn-smuggling-life-continues .castanets { position:absolute; bottom:36%; right:36%; width:8px; height:8px; background: #c8553d; border-radius:50% 40% 40% 50%; transform-origin: 50% 100%; animation: sl-castanet 1.8s ease-in-out infinite; }
.scn-smuggling-life-continues .smoke { position:absolute; bottom:60%; left:48%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,.2) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: sl-smoke 12s ease-out infinite; }
@keyframes sl-sky     { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes sl-moon    { 0% { opacity:.8; transform: translate(0,0) } 50% { opacity:1; transform: translate(-2px,2px) } 100% { opacity:.85; transform: translate(0,0) } }
@keyframes sl-fire    { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.05) scaleX(.97) } 100% { transform: translateX(-50%) scaleY(.97) } }
@keyframes sl-glow    { 0% { opacity:.5; transform: translate(-50%,10%) scale(1) } 50% { opacity:.7; transform: translate(-50%,10%) scale(1.05) } 100% { opacity:.6; transform: translate(-50%,10%) scale(1) } }
@keyframes sl-jose    { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sl-carmen  { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sl-castanet { 0% { transform: rotate(-12deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(-12deg) } }
@keyframes sl-smoke   { 0% { transform: translate(0,0) scale(1); opacity:.3 } 50% { transform: translate(-6px,-30px) scale(1.5); opacity:.1 } 100% { transform: translate(4px,-60px) scale(2); opacity:0 } }

/* Scene 1: drinking-spring-gideons — calm, sunlit landscape */
.scn-drinking-spring-gideons {
  background: linear-gradient(180deg, #FFE082 0%, #FFF9C4 30%, #E0F7FA 70%, #B2DFDB 100%), radial-gradient(ellipse at 70% 20%, #FFD54F 0%, transparent 50%);
}
.scn-drinking-spring-gideons .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
  animation: dsg-sky 12s ease-in-out infinite alternate;
}
.scn-drinking-spring-gideons .sun {
  position: absolute; top: 10%; left: 65%; width: 60px; height: 60px;
  background: radial-gradient(circle, #FFF9C4 0%, #FFD54F 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255,213,79,0.5);
  animation: dsg-sun 8s ease-in-out infinite;
}
.scn-drinking-spring-gideons .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #81C784 0%, #388E3C 100%);
  border-radius: 60% 50% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: dsg-hills 15s ease-in-out infinite alternate;
}
.scn-drinking-spring-gideons .spring {
  position: absolute; bottom: 28%; left: 20%; width: 120px; height: 40px;
  background: radial-gradient(ellipse, #4FC3F7 0%, #0288D1 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 6px rgba(79,195,247,0.4);
  animation: dsg-spring 4s ease-in-out infinite alternate;
}
.scn-drinking-spring-gideons .figure-lying {
  position: absolute; bottom: 27%; left: 22%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: dsg-breathe 6s ease-in-out infinite;
}
.scn-drinking-spring-gideons .figure-standing {
  position: absolute; bottom: 30%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #6D4C41 0%, #4E342E 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: dsg-stand 8s ease-in-out infinite;
}
.scn-drinking-spring-gideons .horse {
  position: absolute; bottom: 32%; left: 55%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #8D6E63 0%, #5D4037 100%);
  border-radius: 30% 40% 20% 20% / 40% 50% 20% 20%;
  animation: dsg-horse 10s ease-in-out infinite;
}
.scn-drinking-spring-gideons .grass {
  position: absolute; bottom: 24%; left: 0; right: 0; height: 6%;
  background: linear-gradient(180deg, #4CAF50 0%, #2E7D32 100%);
  clip-path: polygon(0% 0%, 10% 100%, 20% 0%, 30% 100%, 40% 0%, 50% 100%, 60% 0%, 70% 100%, 80% 0%, 90% 100%, 100% 0%);
  animation: dsg-grass 5s ease-in-out infinite alternate;
}
@keyframes dsg-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes dsg-sun { 0% { transform:scale(0.95); opacity:0.9; } 50% { transform:scale(1.05); opacity:1; } 100% { transform:scale(0.95); opacity:0.9; } }
@keyframes dsg-hills { 0% { transform:translateY(0); } 50% { transform:translateY(-4px); } 100% { transform:translateY(0); } }
@keyframes dsg-spring { 0% { transform:scaleX(1); opacity:0.8; } 50% { transform:scaleX(1.03); opacity:1; } 100% { transform:scaleX(1); opacity:0.8; } }
@keyframes dsg-breathe { 0% { transform:rotate(-5deg) scaleY(1); } 50% { transform:rotate(-5deg) scaleY(1.02); } 100% { transform:rotate(-5deg) scaleY(1); } }
@keyframes dsg-stand { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes dsg-horse { 0% { transform:scaleX(1); } 50% { transform:scaleX(1.02); } 100% { transform:scaleX(1); } }
@keyframes dsg-grass { 0% { clip-path:polygon(0%0%,10%100%,20%0%,30%100%,40%0%,50%100%,60%0%,70%100%,80%0%,90%100%,100%0%); } 50% { clip-path:polygon(0%0%,10%80%,20%0%,30%80%,40%0%,50%80%,60%0%,70%80%,80%0%,90%80%,100%0%); } 100% { clip-path:polygon(0%0%,10%100%,20%0%,30%100%,40%0%,50%100%,60%0%,70%100%,80%0%,90%100%,100%0%); } }

/* Scene 2: offering-cigar-hospitality — calm, sunlit close-up of two seated figures */
.scn-offering-cigar-hospitality {
  background: linear-gradient(180deg, #FFE082 0%, #FFF3E0 40%, #E0E0E0 80%, #BDBDBD 100%), radial-gradient(ellipse at 50% 0%, #FFF9C4 0%, transparent 60%);
}
.scn-offering-cigar-hospitality .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 40%, rgba(255,224,130,0.3) 0%, transparent 70%);
  animation: och-bg 10s ease-in-out infinite alternate;
}
.scn-offering-cigar-hospitality .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #A1887F 0%, #6D4C41 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-offering-cigar-hospitality .figure-left {
  position: absolute; bottom: 20%; left: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%);
  border-radius: 40% 40% 25% 25% / 50% 50% 25% 25%;
  transform: rotate(8deg);
  animation: och-left 6s ease-in-out infinite;
}
.scn-offering-cigar-hospitality .figure-right {
  position: absolute; bottom: 20%; right: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6D4C41 0%, #4E342E 100%);
  border-radius: 40% 40% 25% 25% / 50% 50% 25% 25%;
  transform: rotate(-8deg);
  animation: och-right 6s ease-in-out infinite;
}
.scn-offering-cigar-hospitality .spark {
  position: absolute; bottom: 32%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle, #FFF9C4 0%, #FFB300 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,179,0,0.6);
  animation: och-spark 2s ease-in-out infinite;
}
.scn-offering-cigar-hospitality .cigar-left {
  position: absolute; bottom: 34%; left: 38%; width: 14px; height: 4px;
  background: linear-gradient(135deg, #8D6E63 0%, #5D4037 100%);
  border-radius: 50% 20% 20% 50%;
  transform: rotate(20deg);
  animation: och-cigar 4s ease-in-out infinite;
}
.scn-offering-cigar-hospitality .cigar-right {
  position: absolute; bottom: 34%; right: 38%; width: 14px; height: 4px;
  background: linear-gradient(135deg, #8D6E63 0%, #5D4037 100%);
  border-radius: 50% 20% 20% 50%;
  transform: rotate(-20deg);
  animation: och-cigar 4s ease-in-out infinite 2s;
}
.scn-offering-cigar-hospitality .hat {
  position: absolute; bottom: 40%; left: 18%; width: 30px; height: 12px;
  background: linear-gradient(135deg, #4E342E 0%, #3E2723 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(5deg);
  animation: och-hat 5s ease-in-out infinite;
}
@keyframes och-bg { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes och-left { 0%,100% { transform:rotate(8deg) translateY(0); } 50% { transform:rotate(8deg) translateY(-3px); } }
@keyframes och-right { 0%,100% { transform:rotate(-8deg) translateY(0); } 50% { transform:rotate(-8deg) translateY(-2px); } }
@keyframes och-spark { 0% { transform:scale(0.8); opacity:0.7; } 50% { transform:scale(1.3); opacity:1; } 100% { transform:scale(0.8); opacity:0.7; } }
@keyframes och-cigar { 0% { opacity:0.8; } 50% { opacity:1; transform:rotate(20deg) scaleX(1.05); } 100% { opacity:0.8; } }
@keyframes och-hat { 0% { transform:rotate(5deg); } 50% { transform:rotate(3deg) translateY(-1px); } 100% { transform:rotate(5deg); } }

/* Scene 3: sharing-smoke-and-lunch — warm, sunlit silhouettes against a glowing sky */
.scn-sharing-smoke-and-lunch {
  background: linear-gradient(180deg, #FF7043 0%, #FFCC80 30%, #FFE0B2 60%, #FFF3E0 100%), radial-gradient(ellipse at 50% 20%, #FFB300 0%, transparent 50%);
}
.scn-sharing-smoke-and-lunch .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, rgba(255,180,0,0.2) 0%, transparent 100%);
  animation: ssl-sky 14s ease-in-out infinite alternate;
}
.scn-sharing-smoke-and-lunch .sun {
  position: absolute; top: 12%; left: 50%; width: 70px; height: 70px;
  background: radial-gradient(circle, #FFF9C4 0%, #FFB300 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px rgba(255,179,0,0.5);
  animation: ssl-sun 10s ease-in-out infinite;
}
.scn-sharing-smoke-and-lunch .figure-left {
  position: absolute; bottom: 28%; left: 28%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #3E2723 0%, #1B0F0A 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ssl-figures 7s ease-in-out infinite;
}
.scn-sharing-smoke-and-lunch .figure-right {
  position: absolute; bottom: 28%; right: 28%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #3E2723 0%, #1B0F0A 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ssl-figures 7s ease-in-out infinite 1s;
}
.scn-sharing-smoke-and-lunch .smoke-1 {
  position: absolute; bottom: 48%; left: 35%; width: 12px; height: 30px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ssl-smoke 6s ease-out infinite;
}
.scn-sharing-smoke-and-lunch .smoke-2 {
  position: absolute; bottom: 48%; right: 35%; width: 12px; height: 30px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ssl-smoke 6s ease-out infinite 3s;
}
.scn-sharing-smoke-and-lunch .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6D4C41 0%, #3E2723 100%);
  border-radius: 30% 70% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
@keyframes ssl-sky { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ssl-sun { 0% { transform:scale(0.95); opacity:0.9; } 50% { transform:scale(1.05); opacity:1; box-shadow:0 0 60px 20px #FFB300; } 100% { transform:scale(0.95); opacity:0.9; } }
@keyframes ssl-figures { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-4px); } }
@keyframes ssl-smoke { 0% { transform:translateY(0) scale(1); opacity:0.6; } 50% { transform:translateY(-20px) scale(2); opacity:0.3; } 100% { transform:translateY(-40px) scale(3); opacity:0; } }

/* Scene 4: guide-wary-of-stranger — tense, sunlit with harsh diagonal shadows */
.scn-guide-wary-of-stranger {
  background: linear-gradient(180deg, #90CAF9 0%, #E3F2FD 30%, #FFF9C4 70%, #FFE082 100%), repeating-linear-gradient(45deg, rgba(0,0,0,0.05) 0px, rgba(0,0,0,0.05) 20px, transparent 20px, transparent 40px);
}
.scn-guide-wary-of-stranger .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.4) 0%, transparent 100%);
  animation: gws-sky 8s ease-in-out infinite alternate;
}
.scn-guide-wary-of-stranger .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #D7CCC8 0%, #8D6E63 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
}
.scn-guide-wary-of-stranger .shadow {
  position: absolute; bottom: 35%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(135deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: gws-shadow 5s ease-in-out infinite alternate;
}
.scn-guide-wary-of-stranger .figure-guide {
  position: absolute; bottom: 28%; left: 30%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #4E342E 0%, #2D1B15 100%);
  border-radius: 40% 40% 25% 25% / 55% 55% 25% 25%;
  transform: rotate(5deg);
  animation: gws-guide 4s ease-in-out infinite;
}
.scn-guide-wary-of-stranger .figure-stranger {
  position: absolute; bottom: 28%; right: 30%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #3E2723 0%, #1B0F0A 100%);
  border-radius: 40% 40% 25% 25% / 55% 55% 25% 25%;
  transform: rotate(-5deg);
  animation: gws-stranger 4s ease-in-out infinite 1s;
}
.scn-guide-wary-of-stranger .horse-guide {
  position: absolute; bottom: 30%; left: 25%; width: 55px; height: 35px;
  background: linear-gradient(135deg, #5D4037 0%, #3E2723 100%);
  border-radius: 30% 40% 15% 15% / 35% 45% 15% 15%;
  animation: gws-horse 6s ease-in-out infinite;
}
.scn-guide-wary-of-stranger .horse-stranger {
  position: absolute; bottom: 30%; right: 25%; width: 55px; height: 35px;
  background: linear-gradient(135deg, #5D4037 0%, #3E2723 100%);
  border-radius: 30% 40% 15% 15% / 35% 45% 15% 15%;
  animation: gws-horse 6s ease-in-out infinite 3s;
}
.scn-guide-wary-of-stranger .dust-layer {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(209,196,180,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: gws-dust 7s ease-in-out infinite;
}
@keyframes gws-sky { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes gws-shadow { 0% { transform:translateX(-10px) skewX(0deg); opacity:0.6; } 50% { transform:translateX(0) skewX(2deg); opacity:1; } 100% { transform:translateX(10px) skewX(0deg); opacity:0.6; } }
@keyframes gws-guide { 0%,100% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(3deg) translateY(-4px); } }
@keyframes gws-stranger { 0%,100% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-3px); } }
@keyframes gws-horse { 0% { transform:scaleX(1); } 50% { transform:scaleX(1.03); } 100% { transform:scaleX(1); } }
@keyframes gws-dust { 0% { opacity:0.3; transform:translateY(0); } 50% { opacity:0.7; transform:translateY(-6px); } 100% { opacity:0.3; transform:translateY(0); } }

.scn-traveling-andalusia-research {
  background:
    linear-gradient(180deg, #bcc5b3 0%, #d4d9b0 40%, #9fad93 100%),
    radial-gradient(ellipse at 50% 100%, #7e8c72 0%, transparent 70%);
}
.scn-traveling-andalusia-research .ar-sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #cbd4c4 0%, #dde2cc 100%); animation:ar-sky 12s ease-in-out infinite alternate; }
.scn-traveling-andalusia-research .ar-cloud { position:absolute; top:15%; border-radius:50%; background:rgba(230,235,225,0.8); filter:blur(8px); }
.scn-traveling-andalusia-research .ar-cloud-1 { left:10%; width:120px; height:30px; animation:ar-drift-1 60s linear infinite; }
.scn-traveling-andalusia-research .ar-cloud-2 { left:40%; width:180px; height:40px; top:25%; animation:ar-drift-2 85s linear infinite; animation-delay:-30s; }
.scn-traveling-andalusia-research .ar-hill-bg { position:absolute; bottom:25%; left:0; right:0; height:30%; background:linear-gradient(180deg, #7e8c72 0%, #6a785e 100%); border-radius:60% 40% 0 0 / 40% 30% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,0.2); animation:ar-hill-sway 20s ease-in-out infinite alternate; }
.scn-traveling-andalusia-research .ar-hill-fg { position:absolute; bottom:10%; left:0; right:0; height:35%; background:linear-gradient(180deg, #5c6a50 0%, #3d4934 100%); border-radius:30% 70% 0 0 / 60% 50% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,0.3); animation:ar-hill-sway 28s ease-in-out infinite alternate-reverse; }
.scn-traveling-andalusia-research .ar-path { position:absolute; bottom:18%; left:55%; width:15%; height:20%; background:linear-gradient(180deg, #8c7a61 0%, #6b5d4a 100%); border-radius:50% 50% 20% 20% / 40% 40% 10% 10%; transform: skewX(-10deg); opacity:0.6; }
.scn-traveling-andalusia-research .ar-traveler { position:absolute; bottom:16%; left:60%; width:12px; height:24px; background:linear-gradient(180deg, #38402e 0%, #1f261a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ar-walk 8s ease-in-out infinite; }
.scn-traveling-andalusia-research .ar-horse { position:absolute; bottom:15%; left:62%; width:28px; height:18px; background:linear-gradient(135deg, #4a3b2c 0%, #2f241a 100%); border-radius:40% 50% 40% 30% / 60% 60% 40% 40%; animation:ar-trot 6s ease-in-out infinite; }
@keyframes ar-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ar-drift-1 { 0% { transform:translateX(-100px) } 100% { transform:translateX(120vw) } }
@keyframes ar-drift-2 { 0% { transform:translateX(-200px) } 100% { transform:translateX(130vw) } }
@keyframes ar-hill-sway { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(1px) } }
@keyframes ar-walk { 0% { transform:translateX(0) rotate(-2deg) } 25% { transform:translateX(4px) rotate(1deg) } 50% { transform:translateX(8px) rotate(-1deg) } 75% { transform:translateX(12px) rotate(2deg) } 100% { transform:translateX(16px) rotate(0) } }
@keyframes ar-trot { 0% { transform:translateX(0) rotate(-1deg) } 30% { transform:translateX(2px) rotate(1deg) } 60% { transform:translateX(5px) rotate(-1deg) } 100% { transform:translateX(8px) rotate(0) } }

.scn-hiring-guide-cordova {
  background:
    linear-gradient(180deg, #87CEEB 0%, #FDF5E6 50%, #E8D8B7 100%),
    radial-gradient(ellipse at 50% 0%, #FFF4E0 0%, transparent 60%);
}
.scn-hiring-guide-cordova .cg-sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #b0daf0 0%, #fdf5e6 100%); }
.scn-hiring-guide-cordova .cg-sun { position:absolute; top:12%; left:70%; width:50px; height:50px; background:radial-gradient(circle, #fff8e7 0%, #ffd700 40%, transparent 70%); border-radius:50%; box-shadow:0 0 60px 20px rgba(255, 215, 0, 0.3); animation:cg-shimmer 12s ease-in-out infinite alternate; }
.scn-hiring-guide-cordova .cg-hill { position:absolute; bottom:30%; left:0; right:0; height:25%; background:linear-gradient(180deg, #b8a27b 0%, #9c8562 100%); border-radius:40% 60% 0 0 / 60% 40% 0 0; box-shadow:inset 0 6px 18px rgba(0,0,0,0.15); animation:cg-hill 15s ease-in-out infinite alternate; }
.scn-hiring-guide-cordova .cg-path { position:absolute; bottom:22%; left:30%; width:18%; height:24%; background:linear-gradient(180deg, #c4b18c 0%, #a89472 100%); border-radius:40% 40% 20% 20% / 30% 30% 10% 10%; transform:skewX(-8deg); opacity:0.7; animation:cg-path 12s ease-in-out infinite alternate; }
.scn-hiring-guide-cordova .cg-marsh { position:absolute; bottom:18%; left:10%; width:50%; height:15%; background:linear-gradient(180deg, #a4b89b 0%, #849a7b 100%); border-radius:60% 40% 20% 20% / 80% 70% 30% 30%; box-shadow:inset 0 4px 12px rgba(0,0,0,0.1); }
.scn-hiring-guide-cordova .cg-reed { position:absolute; bottom:22%; width:4px; height:50px; background:linear-gradient(180deg, #7d8c72 0%, #5c6a50 100%); border-radius:20% 20% 10% 10%; transform-origin:bottom center; }
.scn-hiring-guide-cordova .cg-reed-1 { left:15%; height:55px; animation:cg-reed-sway 6s ease-in-out infinite; }
.scn-hiring-guide-cordova .cg-reed-2 { left:22%; height:40px; animation:cg-reed-sway 7s ease-in-out infinite; animation-delay:-2s; }
.scn-hiring-guide-cordova .cg-reed-3 { left:28%; height:48px; animation:cg-reed-sway 5s ease-in-out infinite; animation-delay:-4s; }
.scn-hiring-guide-cordova .cg-guide { position:absolute; bottom:24%; left:40%; width:20px; height:30px; background:linear-gradient(180deg, #4a3b2c 0%, #2f241a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow:-4px 0 0 0 #8b4513; animation:cg-ride 10s ease-in-out infinite; }
@keyframes cg-shimmer { 0% { transform:scale(0.95); opacity:0.8 } 50% { transform:scale(1.05); opacity:1 } 100% { transform:scale(1); opacity:0.9 } }
@keyframes cg-hill { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(1px) } }
@keyframes cg-path { 0% { transform:skewX(-8deg) } 50% { transform:skewX(0deg) } 100% { transform:skewX(-8deg) } }
@keyframes cg-reed-sway { 0% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(-5deg) } }
@keyframes cg-ride { 0% { transform:translateX(0) rotate(-1deg) } 50% { transform:translateX(3px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }

.scn-finding-spring-amphitheater {
  background:
    linear-gradient(180deg, #1a2b3c 0%, #2c4a3e 60%, #698a63 100%),
    radial-gradient(ellipse at 50% 60%, #87CEEB 0%, transparent 50%);
}
.scn-finding-spring-amphitheater .sa-sky { position:absolute; top:0; left:15%; right:15%; height:40%; background:linear-gradient(180deg, #87CEEB 0%, #d4e8d0 100%); border-radius:0 0 40% 40% / 0 0 60% 60%; animation:sa-brighten 15s ease-in-out infinite alternate; }
.scn-finding-spring-amphitheater .sa-cliff-l { position:absolute; top:0; left:0; width:20%; height:80%; background:linear-gradient(180deg, #4a3e35 0%, #2d241e 100%); border-radius:0 30% 10% 0; box-shadow:inset -8px 0 16px rgba(0,0,0,0.4); }
.scn-finding-spring-amphitheater .sa-cliff-r { position:absolute; top:0; right:0; width:25%; height:70%; background:linear-gradient(180deg, #4a3e35 0%, #2d241e 100%); border-radius:30% 0 0 10%; box-shadow:inset 8px 0 16px rgba(0,0,0,0.4); }
.scn-finding-spring-amphitheater .sa-basin { position:absolute; bottom:15%; left:35%; width:30%; height:20%; background:radial-gradient(ellipse, #f5f0e1 0%, #d6cbaf 100%); border-radius:50% / 40% 40% 60% 60%; box-shadow:inset 0 -6px 12px rgba(0,0,0,0.1); }
.scn-finding-spring-amphitheater .sa-water { position:absolute; bottom:22%; left:42%; width:16%; height:8%; background:radial-gradient(ellipse, #71b0a3 0%, #45837a 100%); border-radius:50%; box-shadow:0 4px 12px rgba(69, 131, 122, 0.4); animation:sa-bubble 3s ease-in-out infinite alternate; }
.scn-finding-spring-amphitheater .sa-oak { position:absolute; bottom:55%; left:30%; width:40%; height:30%; background:radial-gradient(ellipse at 50% 100%, #325c3e 0%, #1a3325 100%); border-radius:60% 40% 10% 10% / 80% 70% 20% 20%; box-shadow:-10px 0 20px rgba(0,0,0,0.2); animation:sa-sway 7s ease-in-out infinite alternate; }
.scn-finding-spring-amphitheater .sa-man { position:absolute; bottom:16%; left:45%; width:20px; height:28px; background:linear-gradient(180deg, #6c5b4a 0%, #443a2e 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation:sa-breathe 6s ease-in-out infinite; }
.scn-finding-spring-amphitheater .sa-horse { position:absolute; bottom:14%; left:55%; width:36px; height:24px; background:linear-gradient(135deg, #8b7355 0%, #5c4a36 100%); border-radius:40% 50% 30% 40% / 60% 60% 40% 40%; animation:sa-breathe 8s ease-in-out infinite; animation-delay:-3s; }
@keyframes sa-brighten { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sa-bubble { 0% { transform:scale(0.95); opacity:0.7 } 50% { transform:scale(1.05); opacity:1 } 100% { transform:scale(1); opacity:0.8 } }
@keyframes sa-sway { 0% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-1deg) } }
@keyframes sa-breathe { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }

.scn-meeting-stranger-blunderbuss {
  background:
    linear-gradient(180deg, #fdf4e3 0%, #f5d9b3 100%),
    radial-gradient(ellipse at 80% 40%, #fffbe8 0%, transparent 60%);
}
.scn-meeting-stranger-blunderbuss .ms-sky { position:absolute; inset:0; background:linear-gradient(180deg, #fdf4e3 0%, #f5d9b3 100%); }
.scn-meeting-stranger-blunderbuss .ms-flare { position:absolute; top:10%; right:10%; width:120px; height:120px; background:radial-gradient(circle, #ffffff 0%, rgba(255, 255, 255, 0.4) 30%, transparent 70%); border-radius:50%; mix-blend-mode:overlay; animation:ms-pulse 8s ease-in-out infinite alternate; }
.scn-meeting-stranger-blunderbuss .ms-stranger { position:absolute; bottom:15%; left:25%; width:80px; height:140px; background:linear-gradient(180deg, #1a1a1c 0%, #0d0d0e 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow:inset 10px 0 20px rgba(0,0,0,0.3); animation:ms-breathe 14s ease-in-out infinite; }
.scn-meeting-stranger-blunderbuss .ms-stranger::before { content:''; position:absolute; top:-20px; left:15px; width:50px; height:30px; background:radial-gradient(ellipse at 50% 100%, #1a1a1c 0%, #0d0d0e 100%); border-radius:50% 50% 30% 30% / 80% 80% 40% 40%; box-shadow:0 -4px 0 0 #2c2c2e; }
.scn-meeting-stranger-blunderbuss .ms-blunderbuss { position:absolute; bottom:40%; left:50%; width:120px; height:8px; background:linear-gradient(180deg, #2c2c2e 0%, #1a1a1c 100%); border-radius:0 4px 4px 0; transform:rotate(-12deg); transform-origin:left center; box-shadow:0 2px 4px rgba(0,0,0,0.2); animation:ms-aim 12s ease-in-out infinite alternate; }
.scn-meeting-stranger-blunderbuss .ms-blunderbuss::after { content:''; position:absolute; right:-8px; top:-6px; width:24px; height:18px; background:linear-gradient(180deg, #b58c4d 0%, #8a6d3a 100%); border-radius:0 50% 50% 0; box-shadow:0 2px 6px rgba(181, 140, 77, 0.3); }
.scn-meeting-stranger-blunderbuss .ms-horse { position:absolute; bottom:10%; right:15%; width:60px; height:40px; background:linear-gradient(135deg, #2b2b2d 0%, #18181a 100%); border-radius:40% 50% 30% 40% / 60% 60% 40% 40%; box-shadow:inset -4px 0 8px rgba(0,0,0,0.3); animation:ms-breathe 16s ease-in-out infinite; animation-delay:-5s; }
.scn-meeting-stranger-blunderbuss .ms-dust { position:absolute; width:6px; height:6px; background:radial-gradient(circle, #d4c5b0 0%, transparent 100%); border-radius:50%; filter:blur(2px); }
.scn-meeting-stranger-blunderbuss .ms-dust-1 { top:30%; left:40%; animation:ms-drift 15s linear infinite; }
.scn-meeting-stranger-blunderbuss .ms-dust-2 { top:50%; left:60%; width:4px; height:4px; animation:ms-drift 18s linear infinite; animation-delay:-6s; }
.scn-meeting-stranger-blunderbuss .ms-dust-3 { top:20%; left:80%; width:8px; height:8px; animation:ms-drift 22s linear infinite; animation-delay:-12s; }
@keyframes ms-pulse { 0% { transform:scale(0.9); opacity:0.6 } 50% { transform:scale(1.1); opacity:1 } 100% { transform:scale(0.95); opacity:0.7 } }
@keyframes ms-breathe { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.01) } 100% { transform:scaleX(1) } }
@keyframes ms-aim { 0% { transform:rotate(-12deg) } 50% { transform:rotate(-8deg) } 100% { transform:rotate(-14deg) } }
@keyframes ms-drift { 0% { transform:translateY(0) translateX(0) } 25% { transform:translateY(-20px) translateX(30px) } 50% { transform:translateY(-40px) translateX(10px) } 75% { transform:translateY(-60px) translateX(40px) } 100% { transform:translateY(-80px) translateX(20px) opacity(0) } }

.scn-waking-don-jose {
  background: linear-gradient(180deg, #0b0b1a 0%, #1a1a3a 50%, #2a1a3a 100%), radial-gradient(ellipse at 50% 100%, #2a1a3a 0%, transparent 70%);
}
.scn-waking-don-jose .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 50%); animation: wdj-dark 8s ease-in-out infinite alternate; }
.scn-waking-don-jose .wall { position:absolute; inset:10% 10% 30% 10%; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 50%, #2a2a3a 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
.scn-waking-don-jose .window { position:absolute; top:15%; left:20%; width:60px; height:80px; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 100%); border:4px solid #3a3a4a; border-radius:4px; box-shadow: inset 0 0 10px #2a2a5a; animation: wdj-window 6s ease-in-out infinite; }
.scn-waking-don-jose .cot { position:absolute; bottom:15%; left:20%; right:20%; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:6px; box-shadow: 0 4px 10px rgba(0,0,0,0.7); }
.scn-waking-don-jose .figure-sleeping { position:absolute; bottom:18%; left:35%; right:35%; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wdj-sleep 4s ease-in-out infinite; }
.scn-waking-don-jose .lantern { position:absolute; top:25%; left:60%; width:12px; height:18px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius:20%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4); animation: wdj-lantern 3s ease-in-out infinite alternate; }
@keyframes wdj-dark { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes wdj-window { 0% { opacity:0.5; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes wdj-sleep { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes wdj-lantern { 0% { box-shadow: 0 0 15px 4px #c08040; } 50% { box-shadow: 0 0 30px 10px #ffd060; } 100% { box-shadow: 0 0 20px 6px #c08040; } }

.scn-warning-about-lancers {
  background: linear-gradient(180deg, #1a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, transparent 70%);
}
.scn-warning-about-lancers .bg-dim { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 50%); animation: wl-dim 10s ease-in-out infinite; }
.scn-warning-about-lancers .wall { position:absolute; inset:10% 10% 30% 10%; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 50%, #4a3a2a 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
.scn-warning-about-lancers .window { position:absolute; top:15%; right:15%; width:50px; height:70px; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%); border:4px solid #4a3a2a; border-radius:4px; box-shadow: inset 0 0 10px #2a2a5a; animation: wl-window 6s ease-in-out infinite; }
.scn-warning-about-lancers .cot { position:absolute; bottom:15%; left:15%; right:45%; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:6px; box-shadow: 0 4px 10px rgba(0,0,0,0.7); }
.scn-warning-about-lancers .figure-standing { position:absolute; bottom:20%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wl-stand 0.5s ease-in-out infinite alternate; }
.scn-warning-about-lancers .candle { position:absolute; top:30%; left:50%; width:8px; height:20px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius:20%; box-shadow: 0 0 15px 5px #ffd080; animation: wl-candle 1s ease-in-out infinite; }
.scn-warning-about-lancers .shadow-wall { position:absolute; bottom:20%; left:20%; width:50px; height:80px; background: rgba(0,0,0,0.4); border-radius:50%; transform: skewX(-10deg); animation: wl-shadow 2s ease-in-out infinite; }
@keyframes wl-dim { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes wl-window { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes wl-stand { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes wl-candle { 0% { box-shadow: 0 0 10px 3px #ffd080; } 50% { box-shadow: 0 0 20px 8px #ffd080; } 100% { box-shadow: 0 0 12px 4px #ffd080; } }
@keyframes wl-shadow { 0% { transform: skewX(-10deg) scaleY(1); } 50% { transform: skewX(-10deg) scaleY(1.05); } 100% { transform: skewX(-10deg) scaleY(1); } }

.scn-jose-flees-venta {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%);
}
.scn-jose-flees-venta .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 50%); animation: jf-night 12s ease-in-out infinite; }
.scn-jose-flees-venta .stable-wall { position:absolute; inset:10% 10% 30% 10%; background: repeating-linear-gradient(90deg, #2a2a3a 0px, #1a1a2a 10px, #2a2a3a 11px); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
.scn-jose-flees-venta .stable-door { position:absolute; bottom:30%; left:20%; width:80px; height:120px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border:4px solid #3a3a4a; border-radius:4px; animation: jf-door 8s ease-in-out infinite; }
.scn-jose-flees-venta .horse { position:absolute; bottom:20%; left:45%; width:60px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: jf-horse 3s ease-in-out infinite; }
.scn-jose-flees-venta .figure-fleeing { position:absolute; bottom:20%; right:25%; width:25px; 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: jf-flee 2s ease-in-out infinite; }
.scn-jose-flees-venta .old-hag { position:absolute; bottom:15%; left:10%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: jf-hag 5s ease-in-out infinite; }
.scn-jose-flees-venta .lantern-ground { position:absolute; bottom:15%; left:35%; width:10px; height:14px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius:20%; box-shadow: 0 0 20px 6px #c08040; animation: jf-lantern 4s ease-in-out infinite; }
@keyframes jf-night { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes jf-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes jf-horse { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes jf-flee { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes jf-hag { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes jf-lantern { 0% { box-shadow: 0 0 15px 4px #c08040; } 50% { box-shadow: 0 0 30px 10px #ffd060; } 100% { box-shadow: 0 0 20px 6px #c08040; } }

.scn-narrator-gives-cigars {
  background: linear-gradient(180deg, #1a0a00 0%, #3a1a0a 50%, #2a0a00 100%), radial-gradient(ellipse at 50% 50%, #4a2a1a 0%, transparent 70%);
}
.scn-narrator-gives-cigars .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 50%); animation: ngc-warm 10s ease-in-out infinite; }
.scn-narrator-gives-cigars .table { position:absolute; bottom:10%; left:15%; right:15%; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:6px; box-shadow: 0 4px 10px rgba(0,0,0,0.7); }
.scn-narrator-gives-cigars .figure-left { position:absolute; bottom:20%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); transform-origin: bottom center; animation: ngc-left 2s ease-in-out infinite; }
.scn-narrator-gives-cigars .figure-right { position:absolute; bottom:20%; right:20%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); transform-origin: bottom center; animation: ngc-right 2s ease-in-out infinite; }
.scn-narrator-gives-cigars .cigar { position:absolute; bottom:25%; left:45%; width:6px; height:2px; background: #5a3a2a; border-radius:2px; box-shadow: 0 0 4px #3a1a0a; animation: ngc-cigar 1.5s ease-in-out infinite; }
.scn-narrator-gives-cigars .candle { position:absolute; bottom:25%; left:50%; width:8px; height:20px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius:20%; box-shadow: 0 0 10px 3px #ffd080; animation: ngc-candle 1s ease-in-out infinite; }
.scn-narrator-gives-cigars .smoke1 { position:absolute; top:20%; left:40%; width:30px; height:20px; background: rgba(200,180,160,0.2); border-radius:50%; filter: blur(8px); animation: ngc-smoke1 5s ease-in-out infinite; }
.scn-narrator-gives-cigars .smoke2 { position:absolute; top:25%; left:55%; width:25px; height:15px; background: rgba(200,180,160,0.15); border-radius:50%; filter: blur(6px); animation: ngc-smoke2 7s ease-in-out infinite; }
@keyframes ngc-warm { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ngc-left { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ngc-right { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes ngc-cigar { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ngc-candle { 0% { box-shadow: 0 0 8px 2px #ffd080; } 50% { box-shadow: 0 0 15px 5px #ffd080; } 100% { box-shadow: 0 0 10px 3px #ffd080; } }
@keyframes ngc-smoke1 { 0% { transform: translateY(0) scale(1); opacity:0.3; } 50% { transform: translateY(-15px) scale(1.2); opacity:0.1; } 100% { transform: translateY(0) scale(1); opacity:0.3; } }
@keyframes ngc-smoke2 { 0% { transform: translateY(0) scale(1); opacity:0.2; } 50% { transform: translateY(-10px) scale(1.1); opacity:0.05; } 100% { transform: translateY(0) scale(1); opacity:0.2; } }

.scn-gipsy-language-dialects {
  background:
    linear-gradient(180deg, #87CEEB 0%, #B0C4DE 40%, #F0E68C 70%, #F4A460 100%),
    radial-gradient(ellipse at 70% 100%, #FFD700 0%, transparent 60%);
}
.scn-gipsy-language-dialects .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87CEEB 0%, transparent 80%); animation: gld-sky 10s ease-in-out infinite alternate; }
.scn-gipsy-language-dialects .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #556B2F 0%, #3CB371 30%, #2E8B57 100%); border-radius: 30% 70% 0 0 / 100% 60% 0 0; animation: gld-ground 12s ease-in-out infinite alternate; }
.scn-gipsy-language-dialects .tent { position:absolute; bottom:30%; left:20%; width:120px; height:80px; background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: gld-tent 15s ease-in-out infinite; }
.scn-gipsy-language-dialects .man { position:absolute; bottom:18%; left:22%; width:40px; height:60px; background: linear-gradient(180deg, #8B4513 0%, #5C4033 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gld-man 6s ease-in-out infinite; }
.scn-gipsy-language-dialects .woman { position:absolute; bottom:20%; left:35%; width:45px; height:70px; background: linear-gradient(180deg, #A0522D 0%, #5C3A21 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gld-woman 7s ease-in-out infinite; }
.scn-gipsy-language-dialects .fire { position:absolute; bottom:22%; left:28%; width:20px; height:25px; background: radial-gradient(circle, #FFD700 0%, #FF8C00 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,140,0,0.6); animation: gld-fire 2s ease-in-out infinite alternate; }
.scn-gipsy-language-dialects .cloud { position:absolute; top:15%; left:0; width:100px; height:20px; background: rgba(255,255,255,0.7); border-radius: 50%; filter: blur(8px); animation: gld-cloud 30s linear infinite; }
@keyframes gld-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes gld-ground { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes gld-tent { 0%,100% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } }
@keyframes gld-man { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes gld-woman { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes gld-fire { 0% { opacity:0.7; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(0.9) } }
@keyframes gld-cloud { 0% { transform: translateX(-120px) } 100% { transform: translateX(120vw) } }

.scn-gipsy-fortune-telling-tricks {
  background:
    linear-gradient(180deg, #3E2723 0%, #5D4037 30%, #795548 70%, #8D6E63 100%),
    radial-gradient(circle at 50% 80%, #FFB74D 0%, transparent 60%);
}
.scn-gipsy-fortune-telling-tricks .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #3E2723 0%, #5D4037 100%); }
.scn-gipsy-fortune-telling-tricks .table { position:absolute; bottom:20%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #6D4C41 0%, #4E342E 100%); border-radius: 10px; box-shadow: 0 8px 16px rgba(0,0,0,0.7); }
.scn-gipsy-fortune-telling-tricks .candle { position:absolute; bottom:35%; left:50%; width:10px; height:20px; background: linear-gradient(180deg, #FFC107 0%, #FF9800 100%); border-radius: 5px 5px 0 0; transform: translateX(-50%); animation: gft-candle 3s ease-in-out infinite alternate; }
.scn-gipsy-fortune-telling-tricks .scarf { position:absolute; bottom:30%; left:40%; width:60px; height:40px; background: linear-gradient(180deg, #A0461A 0%, #702243 100%); border-radius: 20% 80% 50% 50% / 40% 60% 40% 60%; transform: rotate(-10deg); animation: gft-scarf 5s ease-in-out infinite; }
.scn-gipsy-fortune-telling-tricks .gypsy { position:absolute; bottom:22%; left:25%; width:50px; height:90px; background: linear-gradient(180deg, #4A148C 0%, #311B92 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gft-gypsy 8s ease-in-out infinite; }
.scn-gipsy-fortune-telling-tricks .customer { position:absolute; bottom:22%; right:25%; width:45px; height:85px; background: linear-gradient(180deg, #5E1A1D 0%, #3E1214 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gft-customer 4s ease-in-out infinite; }
.scn-gipsy-fortune-telling-tricks .coins { position:absolute; bottom:28%; left:45%; width:20px; height:5px; background: radial-gradient(circle, #FFD700 0%, #DAA520 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: gft-coins 2s ease-in-out infinite alternate; }
@keyframes gft-candle { 0% { opacity:0.8; transform: translateX(-50%) scaleY(1); } 50% { opacity:1; transform: translateX(-50%) scaleY(1.1); } 100% { opacity:0.9; transform: translateX(-50%) scaleY(1); } }
@keyframes gft-scarf { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes gft-gypsy { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gft-customer { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes gft-coins { 0% { opacity:0.5; transform: rotate(0deg); } 50% { opacity:1; transform: rotate(15deg); } 100% { opacity:0.7; transform: rotate(-10deg); } }

.scn-gipsy-origins-india {
  background:
    linear-gradient(180deg, #F5F5DC 0%, #EEDC82 40%, #D2B48C 100%),
    radial-gradient(ellipse at 30% 50%, #FFF8DC 0%, transparent 70%);
}
.scn-gipsy-origins-india .window { position:absolute; top:10%; left:15%; width:50%; height:45%; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 100%); border: 8px solid #8B4513; border-radius: 10px; animation: goi-window 12s ease-in-out infinite alternate; }
.scn-gipsy-origins-india .desk { position:absolute; bottom:20%; left:10%; width:80%; height:25%; background: linear-gradient(180deg, #A0522D 0%, #6B3A2A 100%); border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-gipsy-origins-india .book { position:absolute; bottom:30%; left:25%; width:40%; height:20%; background: linear-gradient(180deg, #F5F5DC 0%, #FFF8DC 100%); border: 2px solid #8B4513; border-radius: 2px; transform: rotate(-2deg); animation: goi-book 20s ease-in-out infinite; }
.scn-gipsy-origins-india .globe { position:absolute; bottom:25%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #4A90E2 0%, #1A5276 50%, #1B4F72 100%); border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,0.5); animation: goi-globe 10s linear infinite; }
.scn-gipsy-origins-india .scholar { position:absolute; bottom:22%; left:20%; width:60px; height:90px; background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: goi-scholar 7s ease-in-out infinite; }
.scn-gipsy-origins-india .curtain { position:absolute; top:10%; left:5%; width:15%; height:50%; background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%); border-radius: 0 10px 10px 0; box-shadow: 2px 0 5px rgba(0,0,0,0.3); animation: goi-curtain 15s ease-in-out infinite alternate; }
.scn-gipsy-origins-india .sunbeam { position:absolute; top:10%; left:20%; width:20%; height:60%; background: linear-gradient(180deg, rgba(255,255,224,0.5) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: goi-sunbeam 8s ease-in-out infinite alternate; }
@keyframes goi-window { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.9; transform: scaleY(1); } }
@keyframes goi-book { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } }
@keyframes goi-globe { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes goi-scholar { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes goi-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes goi-sunbeam { 0% { opacity:0.3; transform: skewX(-5deg); } 50% { opacity:0.7; transform: skewX(5deg); } 100% { opacity:0.4; transform: skewX(-5deg); } }

.scn-gipsy-dialects-comparison {
  background:
    linear-gradient(180deg, #FDF5E6 0%, #F5DEB3 40%, #DEB887 100%),
    radial-gradient(ellipse at 80% 30%, #FFF8DC 0%, transparent 60%);
}
.scn-gipsy-dialects-comparison .backdrop { position:absolute; inset:0; background: linear-gradient(180deg, #E8D5B7 0%, #C4A882 100%); }
.scn-gipsy-dialects-comparison .table { position:absolute; bottom:15%; left:5%; width:90%; height:35%; background: linear-gradient(180deg, #8B5E3C 0%, #5C3A21 100%); border-radius: 10px; box-shadow: 0 8px 16px rgba(0,0,0,0.4); }
.scn-gipsy-dialects-comparison .book-left { position:absolute; bottom:30%; left:15%; width:30%; height:20%; background: linear-gradient(180deg, #FFF8DC 0%, #F5DEB3 100%); border: 2px solid #8B4513; border-radius: 4px; transform: rotate(5deg); animation: gdc-book 20s ease-in-out infinite; }
.scn-gipsy-dialects-comparison .book-right { position:absolute; bottom:30%; right:15%; width:30%; height:20%; background: linear-gradient(180deg, #FFF8DC 0%, #F5DEB3 100%); border: 2px solid #8B4513; border-radius: 4px; transform: rotate(-5deg); animation: gdc-book 20s ease-in-out infinite reverse; }
.scn-gipsy-dialects-comparison .hand { position:absolute; bottom:35%; left:45%; width:30px; height:40px; background: linear-gradient(180deg, #C68642 0%, #A0522D 100%); border-radius: 50% 50% 20% 20% / 30% 30% 40% 40%; transform: rotate(-30deg); animation: gdc-hand 6s ease-in-out infinite; }
.scn-gipsy-dialects-comparison .inkwell { position:absolute; bottom:28%; left:38%; width:15px; height:20px; background: linear-gradient(180deg, #2E1B0E 0%, #1A0F08 100%); border-radius: 50% 50% 20% 20% / 30% 30% 40% 40%; animation: gdc-inkwell 4s ease-in-out infinite alternate; }
.scn-gipsy-dialects-comparison .quill { position:absolute; bottom:35%; left:38%; width:30px; height:60px; background: linear-gradient(180deg, #F5F5DC 0%, #D2B48C 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); transform: rotate(15deg) translateY(-10px); animation: gdc-quill 7s ease-in-out infinite; }
.scn-gipsy-dialects-comparison .window-light { position:absolute; top:5%; left:60%; width:30%; height:70%; background: linear-gradient(180deg, rgba(255,255,224,0.4) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: gdc-light 9s ease-in-out infinite alternate; }
@keyframes gdc-book { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes gdc-hand { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-5px); } 100% { transform: rotate(-30deg) translateY(0); } }
@keyframes gdc-inkwell { 0% { opacity:0.8; transform: translateY(0); } 50% { opacity:1; transform: translateY(-2px); } 100% { opacity:0.9; transform: translateY(0); } }
@keyframes gdc-quill { 0% { transform: rotate(15deg) translateY(-10px); } 50% { transform: rotate(10deg) translateY(-15px); } 100% { transform: rotate(15deg) translateY(-10px); } }
@keyframes gdc-light { 0% { opacity:0.3; transform: skewX(-10deg); } 50% { opacity:0.6; transform: skewX(10deg); } 100% { opacity:0.4; transform: skewX(-10deg); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.jailwalls { position: absolute; pointer-events: none; }
.lampglow { position: absolute; pointer-events: none; }
.lanternglow { position: absolute; pointer-events: none; }
.leftfigure { position: absolute; pointer-events: none; }
.outside { position: absolute; pointer-events: none; }
.rightfigure { position: absolute; pointer-events: none; }
.smoke-wisp { position: absolute; pointer-events: none; }
.streetlamp { position: absolute; pointer-events: none; }
.watchglow { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* Scene: night-whispering (tense, dark) */
.scn-night-whispering {
  background: 
    linear-gradient(180deg, #0b0b1e 0%, #1a1a3a 40%, #2a2a4e 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a3a 0%, transparent 60%);
}
.scn-night-whispering .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #12122e 0%, #0a0a1a 100%); animation: nw-sky 12s ease-in-out infinite alternate; }
.scn-night-whispering .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 30% 0 0 0 / 20% 0 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-night-whispering .figure-left { position:absolute; bottom:24%; left:30%; width:20px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #121222 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nw-fig-left 5s ease-in-out infinite; }
.scn-night-whispering .figure-right { position:absolute; bottom:24%; left:55%; width:20px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #121222 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nw-fig-right 5s ease-in-out infinite 1s; }
.scn-night-whispering .horse { position:absolute; bottom:25%; left:18%; width:50px; height:35px; background: linear-gradient(180deg, #1e1e2e 0%, #0f0f1a 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; transform: rotate(-5deg); animation: nw-horse 8s ease-in-out infinite; }
.scn-night-whispering .moon-glow { position:absolute; top:12%; right:15%; width:60px; height:60px; background: radial-gradient(circle, rgba(180,200,240,.3) 0%, transparent 70%); border-radius:50%; filter: blur(12px); animation: nw-moon 20s ease-in-out infinite alternate; }
.scn-night-whispering .shadow-streak { position:absolute; bottom:35%; left:40%; width:80px; height:3px; background: linear-gradient(90deg, transparent, rgba(0,0,0,.4), transparent); filter: blur(3px); animation: nw-streak 6s ease-in-out infinite; }

@keyframes nw-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes nw-fig-left { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(-3px) translateY(-2px) rotate(2deg) } }
@keyframes nw-fig-right { 0%,100% { transform: translateX(0) translateY(0) rotate(2deg) } 50% { transform: translateX(3px) translateY(-2px) rotate(-2deg) } }
@keyframes nw-horse { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } }
@keyframes nw-moon { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(0.95) } }
@keyframes nw-streak { 0%,100% { opacity:0; transform: translateX(-10px) } 50% { opacity:0.6; transform: translateX(10px) } }

/* Scene: antonio-fetches-lancers (tense, dark) */
.scn-antonio-fetches-lancers {
  background: 
    linear-gradient(180deg, #0c0c1a 0%, #151530 40%, #202045 100%),
    radial-gradient(ellipse at 70% 100%, #151530 0%, transparent 50%);
}
.scn-antonio-fetches-lancers .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #12122a 0%, #0a0a15 100%); animation: af-sky 15s ease-in-out infinite alternate; }
.scn-antonio-fetches-lancers .horizon { position:absolute; bottom:45%; left:0; right:0; height:10%; background: linear-gradient(180deg, #1a1a30 0%, #101020 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; }
.scn-antonio-fetches-lancers .rider { position:absolute; bottom:42%; left:20%; width:18px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0c0c1e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: af-rider 6s ease-in-out infinite; }
.scn-antonio-fetches-lancers .horse-body { position:absolute; bottom:40%; left:18%; width:45px; height:28px; background: linear-gradient(180deg, #222240 0%, #101020 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; animation: af-horse 6s ease-in-out infinite 0.5s; }
.scn-antonio-fetches-lancers .dust-spray { position:absolute; bottom:38%; left:25%; width:30px; height:20px; background: radial-gradient(ellipse at 50% 100%, rgba(200,200,220,.2) 0%, transparent 70%); filter: blur(5px); animation: af-dust 4s ease-in-out infinite; }
.scn-antonio-fetches-lancers .stars { position:absolute; top:8%; left:10%; width:100px; height:100px; background: radial-gradient(circle at 30% 40%, rgba(255,255,255,.3) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(255,255,255,.2) 0%, transparent 40%); animation: af-stars 25s linear infinite; }
.scn-antonio-fetches-lancers .ground-strip { position:absolute; bottom:30%; left:0; right:0; height:50%; background: linear-gradient(180deg, #101020 0%, #0a0a15 100%); border-radius: 20% 0 0 0 / 30% 0 0 0; }

@keyframes af-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.5 } }
@keyframes af-rider { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(15px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(30px) translateY(0) rotate(-1deg) } 75% { transform: translateX(45px) translateY(-3px) rotate(1deg) } }
@keyframes af-horse { 0%,100% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(15px) rotate(-3deg) } 50% { transform: translateX(30px) rotate(-6deg) } 75% { transform: translateX(45px) rotate(-2deg) } }
@keyframes af-dust { 0%,100% { opacity:0.2; transform: scale(0.8) translateY(0) } 50% { opacity:0.5; transform: scale(1.2) translateY(-5px) } }
@keyframes af-stars { 0% { opacity:0.3; transform: rotate(0deg) } 50% { opacity:0.6; transform: rotate(180deg) } 100% { opacity:0.4; transform: rotate(360deg) } }

/* Scene: warning-don-jose (tense, dim-interior) */
.scn-warning-don-jose {
  background: 
    linear-gradient(180deg, #2a2018 0%, #1a1410 50%, #0d0a08 100%),
    radial-gradient(ellipse at 60% 80%, #3a2a20 0%, transparent 70%);
}
.scn-warning-don-jose .wall-back { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2018 0%, #1c1410 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.7); }
.scn-warning-don-jose .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1c1410 0%, #0e0a08 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-warning-don-jose .table { position:absolute; bottom:28%; left:40%; width:80px; height:15px; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-warning-don-jose .blunderbuss { position:absolute; bottom:35%; left:45%; width:60px; height:8px; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 4px 2px 2px 4px; transform: rotate(-15deg); transform-origin: left center; animation: wdj-blunder 4s ease-in-out infinite; }
.scn-warning-don-jose .figure-sitting { position:absolute; bottom:20%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wdj-sit 6s ease-in-out infinite; }
.scn-warning-don-jose .figure-standing { position:absolute; bottom:15%; left:55%; width:18px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wdj-stand 5s ease-in-out infinite 1s; }
.scn-warning-don-jose .lamp-glow { position:absolute; bottom:50%; left:35%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,150,80,.4) 0%, transparent 70%); filter: blur(10px); animation: wdj-lamp 3s ease-in-out infinite alternate; }
.scn-warning-don-jose .shadow-bar { position:absolute; bottom:30%; left:20%; width:120px; height:2px; background: linear-gradient(90deg, transparent, rgba(0,0,0,.5), transparent); filter: blur(2px); animation: wdj-shadow 8s ease-in-out infinite; }

@keyframes wdj-blunder { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } }
@keyframes wdj-sit { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes wdj-stand { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(-3deg) } }
@keyframes wdj-lamp { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.2) } 100% { opacity:0.6; transform: scale(0.9) } }
@keyframes wdj-shadow { 0%,100% { opacity:0.4; transform: translateX(-10px) } 50% { opacity:0.7; transform: translateX(10px) } }

/* Scene: moral-dilemma-night (tense, dim-interior) */
.scn-moral-dilemma-night {
  background: 
    linear-gradient(180deg, #1a1614 0%, #120e0c 40%, #0a0806 100%),
    radial-gradient(ellipse at 50% 30%, #2a2220 0%, transparent 60%);
}
.scn-moral-dilemma-night .ceiling { position:absolute; inset:0 0 70% 0; background: linear-gradient(180deg, #1a1614 0%, #120e0c 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-moral-dilemma-night .wall-dim { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #120e0c 0%, #0c0a08 100%); }
.scn-moral-dilemma-night .bed-frame { position:absolute; bottom:5%; left:20%; width:60%; height:25%; background: linear-gradient(90deg, #2a2018 0%, #1c1410 50%, #0e0a08 100%); border-radius: 8px; box-shadow: 0 8px 20px rgba(0,0,0,.7); }
.scn-moral-dilemma-night .blanket { position:absolute; bottom:8%; left:22%; width:56%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 10px; animation: mdn-blanket 7s ease-in-out infinite; }
.scn-moral-dilemma-night .figure-lying { position:absolute; bottom:10%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #2a2018 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); transform-origin: center; animation: mdn-figure 5s ease-in-out infinite; }
.scn-moral-dilemma-night .window-glow { position:absolute; top:15%; right:10%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 50%, rgba(180,190,220,.3) 0%, transparent 70%); filter: blur(8px); animation: mdn-window 10s ease-in-out infinite alternate; }
.scn-moral-dilemma-night .thought-ripple { position:absolute; top:25%; left:30%; width:80px; height:40px; background: radial-gradient(ellipse at 50% 50%, rgba(200,200,220,.1) 0%, transparent 60%); filter: blur(6px); animation: mdn-thought 8s ease-in-out infinite; }

@keyframes mdn-blanket { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } }
@keyframes mdn-figure { 0%,100% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(7deg) translateY(-3px) } }
@keyframes mdn-window { 0% { opacity:0.2; transform: scale(1) } 50% { opacity:0.4; transform: scale(1.05) } 100% { opacity:0.3; transform: scale(0.95) } }
@keyframes mdn-thought { 0%,100% { opacity:0.1; transform: scale(0.8) } 50% { opacity:0.3; transform: scale(1.2) } }

.scn-conversation-bandit-praise {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #f0e68c 100%), 
              radial-gradient(ellipse at 70% 20%, #FFF8DC 0%, transparent 60%);
}
.scn-conversation-bandit-praise .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87CEEB, #B0E0E6); animation: cb-sky 8s ease-in-out infinite alternate; }
.scn-conversation-bandit-praise .sun { position:absolute; top:10%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #FFD700 0%, #FFA500 50%, transparent 80%); border-radius:50%; box-shadow:0 0 60px 20px #FFD700; animation: cb-sun 6s ease-in-out infinite; }
.scn-conversation-bandit-praise .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8B7355 0%, #6B4E31 50%, #3E2723 100%); border-radius:20% 20% 0 0 / 30% 30% 0 0; }
.scn-conversation-bandit-praise .figure-left { position:absolute; bottom:20%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #4E342E 0%, #2E1C11 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: cb-fig-left 4s ease-in-out infinite; }
.scn-conversation-bandit-praise .figure-right { position:absolute; bottom:20%; right:20%; width:30px; height:70px; background: linear-gradient(180deg, #4E342E 0%, #2E1C11 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1) rotate(5deg); animation: cb-fig-right 4.5s ease-in-out infinite; }
.scn-conversation-bandit-praise .shadow { position:absolute; bottom:15%; left:15%; right:15%; height:15px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(6px); animation: cb-shadow 4s ease-in-out infinite; }
@keyframes cb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cb-sun { 0%,100% { transform:scale(1); opacity:0.9 } 50% { transform:scale(1.1); opacity:1 } }
@keyframes cb-fig-left { 0%,100% { transform:translateX(0) rotate(-5deg) } 50% { transform:translateX(5px) rotate(-3deg) } }
@keyframes cb-fig-right { 0%,100% { transform:scaleX(-1) rotate(5deg) } 50% { transform:scaleX(-1) rotate(7deg) translateX(-3px) } }
@keyframes cb-shadow { 0%,100% { transform:scaleX(1); opacity:0.3 } 50% { transform:scaleX(1.05); opacity:0.2 } }

.scn-arrival-at-venta {
  background: linear-gradient(180deg, #2B1B0E 0%, #4A2C17 30%, #1E1008 70%, #0A0503 100%),
              radial-gradient(ellipse at 50% 60%, #FF8C42 0%, transparent 50%);
}
.scn-arrival-at-venta .wall { position:absolute; inset:0; background: linear-gradient(180deg, #4A2C17, #2B1B0E); }
.scn-arrival-at-venta .fireplace { position:absolute; bottom:15%; left:25%; right:25%; height:40%; background: linear-gradient(180deg, #5C3A1E 0%, #3E2310 100%); border-radius:10% 10% 0 0; box-shadow:inset 0 -10px 20px rgba(0,0,0,0.6); }
.scn-arrival-at-venta .smoke { position:absolute; top:10%; left:35%; width:50px; height:80px; background: radial-gradient(ellipse, rgba(255,255,255,0.25) 0%, transparent 70%); filter: blur(8px); animation: av-smoke 12s ease-in-out infinite alternate; }
.scn-arrival-at-venta .old-woman { position:absolute; bottom:10%; left:10%; width:40px; height:60px; background: linear-gradient(180deg, #3E2723 0%, #2E1C11 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: av-fig 5s ease-in-out infinite; }
.scn-arrival-at-venta .girl { position:absolute; bottom:10%; left:25%; width:30px; height:45px; background: linear-gradient(180deg, #4E342E 0%, #2E1C11 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: av-fig 7s ease-in-out infinite 2s; }
.scn-arrival-at-venta .don-jose { position:absolute; bottom:10%; right:15%; width:35px; height:65px; background: linear-gradient(180deg, #2E1C11 0%, #1A0F0A 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: av-don 4s ease-in-out infinite; }
@keyframes av-smoke { 0% { transform:translateY(0) scale(1); opacity:0.4 } 50% { transform:translateY(-20px) scale(1.2); opacity:0.6 } 100% { transform:translateY(0) scale(0.9); opacity:0.3 } }
@keyframes av-fig { 0%,100% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-2px) rotate(1deg) } }
@keyframes av-don { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) rotate(-2deg) } }

.scn-item-mandolin {
  background: linear-gradient(180deg, #1A0A05 0%, #2B150E 40%, #0E0502 100%),
              radial-gradient(ellipse at 50% 70%, #FF6347 0%, transparent 60%);
}
.scn-item-mandolin .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0E0502, #1A0A05); }
.scn-item-mandolin .dying-fire { position:absolute; bottom:15%; left:20%; right:20%; height:20%; background: radial-gradient(ellipse, #FF4500 0%, #8B0000 40%, transparent 70%); animation: im-fire 3s ease-in-out infinite alternate; }
.scn-item-mandolin .ember-1 { position:absolute; bottom:20%; left:30%; width:8px; height:8px; background: #FFD700; border-radius:50%; box-shadow:0 0 10px 3px #FF8C00; animation: im-ember1 2s ease-in-out infinite alternate; }
.scn-item-mandolin .ember-2 { position:absolute; bottom:25%; left:60%; width:6px; height:6px; background: #FFA500; border-radius:50%; box-shadow:0 0 8px 2px #FF8C00; animation: im-ember2 2.5s ease-in-out infinite alternate 1s; }
.scn-item-mandolin .mandolin-player { position:absolute; bottom:10%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #2E1C11 0%, #1A0F0A 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; animation: im-fig 6s ease-in-out infinite; }
.scn-item-mandolin .mandolin { position:absolute; bottom:18%; left:35%; width:30px; height:15px; background: radial-gradient(ellipse, #8B4513 0%, #5C3A1E 100%); border-radius:50%; transform:rotate(-20deg); animation: im-mandolin 4s ease-in-out infinite; }
@keyframes im-fire { 0% { opacity:0.6; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.1) } 100% { opacity:0.5; transform:scaleY(0.9) } }
@keyframes im-ember1 { 0% { transform:translate(0,0); opacity:0.8 } 100% { transform:translate(-5px,-15px); opacity:0 } }
@keyframes im-ember2 { 0% { transform:translate(0,0); opacity:0.7 } 100% { transform:translate(8px,-20px); opacity:0 } }
@keyframes im-fig { 0%,100% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-4px) rotate(2deg) } }
@keyframes im-mandolin { 0%,100% { transform:rotate(-20deg) } 50% { transform:rotate(-15deg) scale(1.05) } }

.scn-antonio-suspicious {
  background: linear-gradient(180deg, #1A1410 0%, #2D1F14 40%, #0F0A06 100%),
              radial-gradient(ellipse at 30% 50%, #8B6914 0%, transparent 70%);
}
.scn-antonio-suspicious .stable-bg { position:absolute; inset:0; background: linear-gradient(90deg, #2D1F14 0%, #1A1410 50%, #2D1F14 100%); }
.scn-antonio-suspicious .beam-left { position:absolute; top:0; left:10%; width:8px; height:100%; background: linear-gradient(180deg, #4E342E 0%, #2E1C11 100%); box-shadow: 2px 0 6px rgba(0,0,0,0.5); }
.scn-antonio-suspicious .beam-right { position:absolute; top:0; right:10%; width:8px; height:100%; background: linear-gradient(180deg, #4E342E 0%, #2E1C11 100%); box-shadow: -2px 0 6px rgba(0,0,0,0.5); }
.scn-antonio-suspicious .lantern { position:absolute; top:20%; left:5%; width:16px; height:30px; background: linear-gradient(180deg, #DAA520 0%, #B8860B 100%); border-radius:20% 20% 10% 10%; box-shadow:0 0 30px 10px #FFD700; animation: as-lantern 3s ease-in-out infinite alternate; }
.scn-antonio-suspicious .antonio { position:absolute; bottom:10%; left:15%; width:30px; height:60px; background: linear-gradient(180deg, #3E2723 0%, #2E1C11 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: as-antonio 5s ease-in-out infinite; }
.scn-antonio-suspicious .donjose { position:absolute; bottom:10%; right:15%; width:35px; height:65px; background: linear-gradient(180deg, #2E1C11 0%, #1A0F0A 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: as-don 4s ease-in-out infinite; }
.scn-antonio-suspicious .horse { position:absolute; bottom:5%; left:45%; width:80px; height:40px; background: linear-gradient(180deg, #5C3A1E 0%, #3E2310 100%); border-radius:30% 30% 50% 50% / 50% 50% 30% 30%; animation: as-horse 8s ease-in-out infinite; }
@keyframes as-lantern { 0% { transform:rotate(-2deg); opacity:0.8 } 50% { transform:rotate(2deg); opacity:1 } 100% { transform:rotate(-1deg); opacity:0.9 } }
@keyframes as-antonio { 0%,100% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(5px) rotate(2deg) } }
@keyframes as-don { 0%,100% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-3px) rotate(-1deg) } }
@keyframes as-horse { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }

/* gipsy-description: hermit’s cell, calm bright interior */
.scn-gipsy-description {
  background:
    linear-gradient(180deg, #e8d5b0 0%, #d4b890 50%, #bfa07a 100%),
    radial-gradient(ellipse at 50% 100%, #aa8a6a 0%, transparent 70%);
}
.scn-gipsy-description .room {
  position: absolute; inset: 0; background: linear-gradient(180deg, #efe0c0 0%, #dac8a0 100%);
  box-shadow: inset 0 8px 20px rgba(120,80,50,0.3);
  animation: gd-room 20s ease-in-out infinite alternate;
}
.scn-gipsy-description .window {
  position: absolute; top: 8%; left: 20%; width: 50%; height: 40%;
  background: linear-gradient(180deg, #fff8e0 0%, #f0d8a0 100%);
  border-radius: 2% 2% 10% 10%;
  box-shadow: 0 0 30px rgba(255,240,200,0.5);
  animation: gd-window 12s ease-in-out infinite alternating;
}
.scn-gipsy-description .light-beam {
  position: absolute; top: 8%; left: 20%; width: 60%; height: 70%;
  background: linear-gradient(135deg, rgba(255,240,200,0.2) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%);
  animation: gd-beam 8s ease-in-out infinite alternate;
}
.scn-gipsy-description .hermit {
  position: absolute; bottom: 15%; left: 50%;
  width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3220 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 6px 0 12px rgba(0,0,0,0.3);
  animation: gd-hermit 5s ease-in-out infinite alternate;
}
.scn-gipsy-description .candle {
  position: absolute; bottom: 28%; left: 42%;
  width: 8px; height: 20px;
  background: linear-gradient(180deg, #f5e0b0 0%, #d4b070 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 16px 6px rgba(255,200,100,0.7);
  animation: gd-candle 3s ease-in-out infinite alternate;
}
.scn-gipsy-description .altar {
  position: absolute; bottom: 20%; left: 50%;
  width: 60px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: gd-altar 10s ease-in-out infinite alternate;
}
@keyframes gd-room {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes gd-window {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(1); }
}
@keyframes gd-beam {
  0% { opacity: 0.3; transform: rotate(-1deg) translateY(0); }
  50% { opacity: 0.6; transform: rotate(0deg) translateY(-2px); }
  100% { opacity: 0.4; transform: rotate(1deg) translateY(0); }
}
@keyframes gd-hermit {
  0% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
}
@keyframes gd-candle {
  0% { box-shadow: 0 0 12px 4px #ffcc66, 0 0 24px 8px rgba(255,200,80,0.4); opacity: 0.9; }
  50% { box-shadow: 0 0 20px 8px #ffe080, 0 0 40px 14px rgba(255,200,80,0.6); opacity: 1; }
  100% { box-shadow: 0 0 14px 5px #ffcc66, 0 0 28px 10px rgba(255,200,80,0.45); opacity: 0.92; }
}
@keyframes gd-altar {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.01); }
  100% { transform: translateX(-50%) scale(0.99); }
}

/* gipsy-lore: sitting figure in calm interior */
.scn-gipsy-lore {
  background:
    linear-gradient(180deg, #e0c8a8 0%, #c8b090 50%, #b09878 100%),
    radial-gradient(ellipse at 50% 100%, #a08868 0%, transparent 70%);
}
.scn-gipsy-lore .room-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c4a8 100%);
  box-shadow: inset 0 8px 20px rgba(100,70,50,0.25);
  animation: gl-back 15s ease-in-out infinite alternate;
}
.scn-gipsy-lore .figure {
  position: absolute; bottom: 10%; left: 45%;
  width: 45px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  box-shadow: 8px 0 10px rgba(0,0,0,0.3);
  animation: gl-figure 6s ease-in-out infinite alternate;
}
.scn-gipsy-lore .table {
  position: absolute; bottom: 12%; left: 55%;
  width: 70px; height: 24px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 6px 8px rgba(0,0,0,0.4);
  animation: gl-table 10s ease-in-out infinite alternate;
}
.scn-gipsy-lore .cup {
  position: absolute; bottom: 18%; left: 58%;
  width: 14px; height: 18px;
  background: linear-gradient(180deg, #c8a880 0%, #9a7a5a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: gl-cup 3s ease-in-out infinite alternate;
}
.scn-gipsy-lore .window {
  position: absolute; top: 6%; left: 10%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #fff8e0 0%, #f0d8a0 100%);
  border-radius: 2% 2% 10% 10%;
  box-shadow: 0 0 25px rgba(255,240,200,0.4);
  animation: gl-window 12s ease-in-out infinite alternate;
}
.scn-gipsy-lore .light-shaft {
  position: absolute; top: 6%; left: 10%; width: 50%; height: 60%;
  background: linear-gradient(135deg, rgba(255,240,200,0.15) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%);
  animation: gl-shaft 8s ease-in-out infinite alternate;
}
@keyframes gl-back {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes gl-figure {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes gl-table {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.01); }
  100% { transform: scaleX(0.99); }
}
@keyframes gl-cup {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gl-window {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.015); }
  100% { transform: scaleY(1); }
}
@keyframes gl-shaft {
  0% { opacity: 0.2; transform: rotate(-1deg) translateX(0); }
  50% { opacity: 0.45; transform: rotate(0deg) translateX(2px); }
  100% { opacity: 0.25; transform: rotate(1deg) translateX(0); }
}

/* gipsy-tricks-origins: fortune‑teller booth, calm interior */
.scn-gipsy-tricks-origins {
  background:
    linear-gradient(180deg, #d8c0a0 0%, #c0a888 50%, #a89070 100%),
    radial-gradient(ellipse at 50% 100%, #90785a 0%, transparent 70%);
}
.scn-gipsy-tricks-origins .room-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8d4b8 0%, #d0bc9c 100%);
  box-shadow: inset 0 8px 20px rgba(80,60,40,0.25);
  animation: gt-back 18s ease-in-out infinite alternate;
}
.scn-gipsy-tricks-origins .table {
  position: absolute; bottom: 15%; left: 50%;
  width: 90px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3220 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 10px rgba(0,0,0,0.4);
  animation: gt-table 11s ease-in-out infinite alternate;
}
.scn-gipsy-tricks-origins .crystal-ball {
  position: absolute; bottom: 28%; left: 50%;
  width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 35% 35%, #e0e0ff 0%, #8080c0 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #a0a0e0, 0 0 60px 20px rgba(160,160,224,0.4);
  animation: gt-ball 4s ease-in-out infinite alternate;
}
.scn-gipsy-tricks-origins .scarf {
  position: absolute; bottom: 18%; left: 30%;
  width: 60px; height: 10px;
  background: linear-gradient(180deg, #c06040 0%, #904020 100%);
  border-radius: 40%;
  transform: rotate(-12deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: gt-scarf 7s ease-in-out infinite alternate;
}
.scn-gipsy-tricks-origins .coins {
  position: absolute; bottom: 20%; left: 45%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, #e0c040 0%, #a08020 60%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,180,50,0.5);
  animation: gt-coins 2.5s ease-in-out infinite alternate;
}
.scn-gipsy-tricks-origins .gitana-sil {
  position: absolute; bottom: 10%; left: 40%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 55% 55% 30% 30%;
  box-shadow: 8px 0 12px rgba(0,0,0,0.4);
  animation: gt-gitana 6s ease-in-out infinite alternate;
}
.scn-gipsy-tricks-origins .hand {
  position: absolute; bottom: 25%; right: 25%;
  width: 16px; height: 24px;
  background: linear-gradient(180deg, #c8a888 0%, #a08060 100%);
  border-radius: 40% 60% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(30deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: gt-hand 3.5s ease-in-out infinite alternate;
}
@keyframes gt-back {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes gt-table {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.008); }
  100% { transform: translateX(-50%) scaleX(0.992); }
}
@keyframes gt-ball {
  0% { box-shadow: 0 0 24px 8px #a0a0e0, 0 0 48px 16px rgba(160,160,224,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 14px #c0c0ff, 0 0 80px 28px rgba(160,160,224,0.6); opacity: 1; }
  100% { box-shadow: 0 0 28px 10px #a0a0e0, 0 0 56px 20px rgba(160,160,224,0.35); opacity: 0.92; }
}
@keyframes gt-scarf {
  0% { transform: rotate(-12deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-1px); }
  100% { transform: rotate(-14deg) translateY(0); }
}
@keyframes gt-coins {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(5deg); }
  100% { transform: scale(0.98) rotate(-3deg); }
}
@keyframes gt-gitana {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes gt-hand {
  0% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(35deg) translateY(-2px); }
  100% { transform: rotate(28deg) translateY(0); }
}

/* scn: item-caesars-commentaries (cc) – calm sunlit landscape */
.scn-item-caesars-commentaries {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #deb887 100%), radial-gradient(circle at 20% 80%, #f0e68c 0%, transparent 70%);
}
.scn-item-caesars-commentaries .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 100%);
  animation: cc-sky 12s ease-in-out infinite alternate;
}
.scn-item-caesars-commentaries .sun {
  position: absolute; top: 12%; left: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffcc77 0%, #ffaa33 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px #ffaa33;
  animation: cc-sun 18s ease-in-out infinite;
}
.scn-item-caesars-commentaries .hills-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%);
  border-radius: 60% 40% 0 0 / 50% 30% 0 0;
  transform-origin: bottom center;
  animation: cc-hills-back 20s ease-in-out infinite alternate;
}
.scn-item-caesars-commentaries .hills-front {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8fbc8f 0%, #6b8e23 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: cc-hills-front 15s ease-in-out infinite alternate;
}
.scn-item-caesars-commentaries .figure {
  position: absolute; bottom: 20%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2f1e0e 0%, #1a0f05 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%;
  animation: cc-figure 6s ease-in-out infinite;
}
.scn-item-caesars-commentaries .map {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 20px;
  background: #f5deb3;
  border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: cc-map 8s ease-in-out infinite;
}
.scn-item-caesars-commentaries .cloud-cc {
  position: absolute; top: 20%; right: 10%; width: 80px; height: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: cc-cloud 35s linear infinite;
}
@keyframes cc-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes cc-sun { 0% { transform: translate(0, 0) scale(1) } 50% { transform: translate(10px, -5px) scale(1.05) } 100% { transform: translate(0, 0) scale(1) } }
@keyframes cc-hills-back { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes cc-hills-front { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cc-figure { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes cc-map { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes cc-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-200px) } }

/* scn: item-brass-blunderbuss (bb) – tense sunlit amphitheatre */
.scn-item-brass-blunderbuss {
  background: linear-gradient(180deg, #4a7c59 0%, #2e5c3a 60%, #1a3a22 100%), radial-gradient(ellipse at 50% 100%, #6b8e23 0%, transparent 60%);
}
.scn-item-brass-blunderbuss .back-trees {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e5c3a 0%, #1a3a22 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  animation: bb-trees 10s ease-in-out infinite alternate;
}
.scn-item-brass-blunderbuss .basin {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 15%;
  background: radial-gradient(ellipse, #4682b4 0%, #1e5a6b 100%);
  border-radius: 50%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4);
  animation: bb-basin 4s ease-in-out infinite;
}
.scn-item-brass-blunderbuss .rocks {
  position: absolute; bottom: 20%; left: 25%; width: 25%; height: 10%;
  background: linear-gradient(135deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 20% 50% 30% 40% / 30% 40% 50% 20%;
  animation: bb-rocks 6s ease-in-out infinite;
}
.scn-item-brass-blunderbuss .figure-bb {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2b1a0e 0%, #0e0703 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: bb-figure 3s ease-in-out infinite;
}
.scn-item-brass-blunderbuss .blunderbuss {
  position: absolute; bottom: 35%; left: 55%; width: 36px; height: 8px;
  background: linear-gradient(90deg, #b8860b 0%, #8b6508 100%);
  border-radius: 4px 40% 40% 4px;
  transform: rotate(-20deg);
  animation: bb-blunderbuss 4s ease-in-out infinite;
}
.scn-item-brass-blunderbuss .glint {
  position: absolute; bottom: 38%; left: 62%; width: 6px; height: 6px;
  background: #fffacd; border-radius: 50%;
  box-shadow: 0 0 10px 3px #ffd700;
  animation: bb-glint 1.5s ease-in-out infinite;
}
.scn-item-brass-blunderbuss .leaf {
  position: absolute; top: 10%; left: 20%; width: 10px; height: 6px;
  background: #8fbc8f; border-radius: 50% 0 50% 0;
  animatiON: bb-leaf 2s ease-in-out infinite;
}
@keyframes bb-trees { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes bb-basin { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes bb-rocks { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes bb-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bb-blunderbuss { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-18deg) } 100% { transform: rotate(-20deg) } }
@keyframes bb-glint { 0% { opacity: 0.3; transform: scale(0.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.3; transform: scale(0.8) } }
@keyframes bb-leaf { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(10px) rotate(30deg) } 100% { transform: translateY(0) rotate(0) } }

/* scn: offering-havana-cigars (hc) – warm sunlit hospitality */
.scn-offering-havana-cigars {
  background: linear-gradient(180deg, #ffa07a 0%, #f5deb3 50%, #deb887 100%), radial-gradient(circle at 30% 70%, #ffa07a 0%, transparent 60%);
}
.scn-offering-havana-cigars .bg-warm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffdab9 0%, #ffa07a 100%);
  animation: hc-bg 14s ease-in-out infinite alternate;
}
.scn-offering-havana-cigars .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #d2b48c 0%, #8b7355 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: hc-ground 20s ease-in-out infinite;
}
.scn-offering-havana-cigars .table {
  position: absolute; bottom: 22%; left: 40%; width: 60px; height: 8px;
  background: linear-gradient(135deg, #8b4513 0%, #5c2e0e 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: hc-table 8s ease-in-out infinite;
}
.scn-offering-havana-cigars .figure-left {
  position: absolute; bottom: 26%; left: 35%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%);
  border-radius: 50% 50% 35% 35% / 65% 65% 25% 25%;
  animation: hc-figure-left 5s ease-in-out infinite;
}
.scn-offering-havana-cigars .figure-right {
  position: absolute; bottom: 26%; left: 55%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2e1c0a 0%, #0e0703 100%);
  border-radius: 50% 50% 35% 35% / 65% 65% 25% 25%;
  animation: hc-figure-right 5s ease-in-out infinite;
}
.scn-offering-havana-cigars .cigar {
  position: absolute; bottom: 28%; left: 48%; width: 20px; height: 4px;
  background: #b8860b; border-radius: 2px;
  transform: rotate(-30deg);
  animation: hc-cigar 3s ease-in-out infinite;
}
.scn-offering-havana-cigars .smoke-1,
.scn-offering-havana-cigars .smoke-2 {
  position: absolute; bottom: 32%; left: 48%; width: 16px; height: 16px;
  background: radial-gradient(circle, rgba(255,255,255,0.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: hc-smoke 6s ease-in-out infinite;
}
.scn-offering-havana-cigars .smoke-2 {
  left: 50%; animation-delay: -2s;
}
@keyframes hc-bg { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes hc-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes hc-table { 0% { transform: rotate(0) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes hc-figure-left { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes hc-figure-right { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes hc-cigar { 0% { transform: rotate(-30deg) translateX(0) } 50% { transform: rotate(-28deg) translateX(2px) } 100% { transform: rotate(-30deg) translateX(0) } }
@keyframes hc-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.6 } 50% { transform: translateY(-8px) scale(1.5); opacity: 0.3 } 100% { transform: translateY(-16px) scale(0.5); opacity: 0 } }

/* scn: venta-del-cuervo-ride-offer (vc) – tense sunlit roadside */
.scn-venta-del-cuervo-ride-offer {
  background: linear-gradient(180deg, #bdb76b 0%, #c0a080 40%, #8b7355 100%), radial-gradient(ellipse at 50% 100%, #d2b48c 0%, transparent 70%);
}
.scn-venta-del-cuervo-ride-offer .road {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #a08060 0%, #6b5a45 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  animation: vc-road 12s ease-in-out infinite;
}
.scn-venta-del-cuervo-ride-offer .wall-left {
  position: absolute; bottom: 15%; left: 5%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 5% 20% 10% 10%;
  animation: vc-wall 10s ease-in-out infinite;
}
.scn-venta-del-cuervo-ride-offer .wall-right {
  position: absolute; bottom: 15%; right: 5%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 20% 5% 10% 10%;
  animation: vc-wall 10s ease-in-out infinite reverse;
}
.scn-venta-del-cuervo-ride-offer .figure-stranger {
  position: absolute; bottom: 28%; left: 38%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #2b1a0e 0%, #0e0703 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  animation: vc-stranger 4s ease-in-out infinite;
}
.scn-venta-del-cuervo-ride-offer .figure-narrator {
  position: absolute; bottom: 28%; left: 48%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  animation: vc-narrator 4s ease-in-out infinite;
}
.scn-venta-del-cuervo-ride-offer .figure-guide {
  position: absolute; bottom: 28%; left: 58%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  animation: vc-guide 4s ease-in-out infinite;
}
.scn-venta-del-cuervo-ride-offer .shadow {
  position: absolute; bottom: 24%; left: 35%; right: 35%; height: 4px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: vc-shadow 4s ease-in-out infinite;
}
@keyframes vc-road { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes vc-wall { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }
@keyframes vc-stranger { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes vc-narrator { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes vc-guide { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes vc-shadow { 0% { opacity: 0.4; transform: scaleX(1) } 50% { opacity: 0.5; transform: scaleX(1.1) } 100% { opacity: 0.4; transform: scaleX(1) } }

/* ===== hermitage-mass-request ===== */
.scn-hermitage-mass-request {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #1c1410 100%),
    radial-gradient(ellipse at 40% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-hermitage-mass-request .wall-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e14 0%, #0e0a06 100%);
  opacity: 0.9; animation: hm-wall 12s ease-in-out infinite alternate;
}
.scn-hermitage-mass-request .floor-stone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #3a2e26 0%, #2a1e14 60%, transparent 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: hm-floor 8s ease-in-out infinite alternate;
}
.scn-hermitage-mass-request .icon-christ {
  position: absolute; top: 18%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px; background: radial-gradient(circle at 50% 40%, #6a4a3a 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 0 8px 2px rgba(200, 120, 60, 0.4);
  animation: hm-icon 6s ease-in-out infinite;
}
.scn-hermitage-mass-request .candle-flame {
  position: absolute; bottom: 48%; left: 35%; width: 6px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 20px 10px #c08040, 0 0 40px 20px rgba(192,128,64,0.3);
  animation: hm-candle 2s ease-in-out infinite alternate;
}
.scn-hermitage-mass-request .hermit-figure {
  position: absolute; bottom: 30%; left: 28%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: hm-kneel 4s ease-in-out infinite;
}
.scn-hermitage-mass-request .visitor-figure {
  position: absolute; bottom: 28%; right: 20%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a2218 0%, #120c06 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 25% 25%;
  transform-origin: bottom center; animation: hm-stand 6s ease-in-out infinite alternate;
}
.scn-hermitage-mass-request .prayer-beads {
  position: absolute; bottom: 32%; left: 32%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 10%, #6a5a3a 0%, #2a1a0a 100%);
  border-radius: 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: hm-beads 5s ease-in-out infinite;
}
.scn-hermitage-mass-request .shadow-arch {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: hm-arch 15s ease-in-out infinite alternate;
}
@keyframes hm-wall { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.9; } }
@keyframes hm-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes hm-icon { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes hm-candle { 0% { transform: scaleY(1) translateY(0); opacity: 0.8; } 30% { transform: scaleY(1.15) translateY(-2px); opacity: 1; } 70% { transform: scaleY(0.9) translateY(1px); opacity: 0.9; } 100% { transform: scaleY(1.05) translateY(0); opacity: 0.85; } }
@keyframes hm-kneel { 0% { transform: rotate(0deg); } 25% { transform: rotate(-3deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes hm-stand { 0% { transform: rotate(0deg) translateX(0); } 33% { transform: rotate(-2deg) translateX(-3px); } 66% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes hm-beads { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(1px,-1px) rotate(5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes hm-arch { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* ===== spells-bowl-gorge-ride ===== */
.scn-spells-bowl-gorge-ride {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #c8b898 40%, #b0a080 100%),
    radial-gradient(ellipse at 80% 20%, #ffe0a0 0%, transparent 60%);
}
.scn-spells-bowl-gorge-ride .sky-sunlit {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 100%);
  animation: sg-sky 10s ease-in-out infinite alternate;
}
.scn-spells-bowl-gorge-ride .ground-dust {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #8a7a60 0%, #b0a080 50%, transparent 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  animation: sg-ground 7s ease-in-out infinite;
}
.scn-spells-bowl-gorge-ride .bowl-clay {
  position: absolute; bottom: 30%; right: 30%; width: 40px; height: 16px;
  background: radial-gradient(ellipse at 50% 100%, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: inset 0 -2px 4px rgba(0,0,0,0.4);
  animation: sg-bowl 5s ease-in-out infinite alternate;
}
.scn-spells-bowl-gorge-ride .steam-rising {
  position: absolute; bottom: 32%; right: 33%; width: 12px; height: 30px;
  background: radial-gradient(ellipse, rgba(255,230,200,0.4) 0%, transparent 80%);
  border-radius: 50%; filter: blur(3px);
  animation: sg-steam 4s ease-in-out infinite;
}
.scn-spells-bowl-gorge-ride .woman-figure {
  position: absolute; bottom: 28%; right: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #c8a878 0%, #8a6a48 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center; animation: sg-woman 6s ease-in-out infinite;
}
.scn-spells-bowl-gorge-ride .horse-flank {
  position: absolute; bottom: 25%; left: 15%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: sg-horse 8s ease-in-out infinite alternate;
}
.scn-spells-bowl-gorge-ride .lead-pour {
  position: absolute; bottom: 35%; right: 28%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #b0a090 0%, #7a6a5a 100%);
  border-radius: 20%; box-shadow: 0 0 4px rgba(200,180,160,0.5);
  animation: sg-pour 3s ease-in-out infinite;
}
@keyframes sg-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sg-ground { 0% { transform: translateY(0); } 30% { transform: translateY(-2px); } 60% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes sg-bowl { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(-2px,1px) rotate(3deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes sg-steam { 0% { transform: translate(0,0) scale(0.8); opacity: 0.3; } 50% { transform: translate(3px,-8px) scale(1.2); opacity: 0.6; } 100% { transform: translate(-2px,-15px) scale(0.6); opacity: 0; } }
@keyframes sg-woman { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-2deg) translateX(-3px); } 50% { transform: rotate(0deg) translateX(0); } 75% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes sg-horse { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(0.98) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes sg-pour { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.3); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.8; } }

/* ===== gorge-confrontation ===== */
.scn-gorge-confrontation {
  background:
    linear-gradient(180deg, #d0c0a0 0%, #b0a080 40%, #8a7a60 100%),
    radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-gorge-confrontation .cliff-left {
  position: absolute; left: 0; top: 0; bottom: 20%; width: 35%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 0 40% 20% 0 / 0 100% 50% 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.3);
  animation: gc-cliff-l 20s ease-in-out infinite alternate;
}
.scn-gorge-confrontation .cliff-right {
  position: absolute; right: 0; top: 0; bottom: 25%; width: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 0 0 20% / 100% 0 0 50%;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.3);
  animation: gc-cliff-r 20s ease-in-out infinite alternate;
}
.scn-gorge-confrontation .sky-gorge {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%);
  animation: gc-sky 12s ease-in-out infinite;
}
.scn-gorge-confrontation .figure-him {
  position: absolute; bottom: 22%; left: 25%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a221a 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: gc-him 4s ease-in-out infinite;
}
.scn-gorge-confrontation .figure-her {
  position: absolute; bottom: 20%; right: 30%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 25% 25%;
  transform-origin: bottom center; animation: gc-her 5s ease-in-out infinite alternate;
}
.scn-gorge-confrontation .shadow-long {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  animation: gc-shadow 8s ease-in-out infinite;
}
.scn-gorge-confrontation .bird-distant {
  position: absolute; top: 12%; left: 10%; width: 12px; height: 6px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50%; box-shadow: 0 0 4px rgba(0,0,0,0.2);
  animation: gc-bird 15s linear infinite;
}
@keyframes gc-cliff-l { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-3px); } }
@keyframes gc-cliff-r { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(3px); } }
@keyframes gc-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gc-him { 0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(-3deg) translateX(-2px); } 60% { transform: rotate(2deg) translateX(1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes gc-her { 0% { transform: rotate(0deg) translateX(0); } 40% { transform: rotate(2deg) translateX(3px); } 80% { transform: rotate(-1deg) translateX(-1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes gc-shadow { 0% { transform: scaleY(1); opacity: 0.6; } 50% { transform: scaleY(1.1); opacity: 0.8; } 100% { transform: scaleY(1); opacity: 0.5; } }
@keyframes gc-bird { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(20vw) translateY(-5px) rotate(-5deg); } 50% { transform: translateX(40vw) translateY(0) rotate(0deg); } 75% { transform: translateX(60vw) translateY(-3px) rotate(5deg); } 100% { transform: translateX(80vw) translateY(0) rotate(0deg); } }

/* ===== item-garcia-knife ===== */
.scn-item-garcia-knife {
  background:
    linear-gradient(180deg, #d0c0a0 0%, #b0a080 30%, #8a7a60 100%),
    radial-gradient(ellipse at 50% 100%, #6a5a4a 0%, transparent 80%);
}
.scn-item-garcia-knife .ground-dirt {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #4a3a2a 0%, #6a5a4a 50%, transparent 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: gk-ground 6s ease-in-out infinite alternate;
}
.scn-item-garcia-knife .sky-blinding {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%);
  animation: gk-sky 10s ease-in-out infinite;
}
.scn-item-garcia-knife .figure-standing {
  position: absolute; bottom: 30%; left: 35%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0600 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: gk-stand 3s ease-in-out infinite alternate;
}
.scn-item-garcia-knife .figure-fallen {
  position: absolute; bottom: 15%; right: 30%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(-30deg); transform-origin: bottom center;
  animation: gk-fallen 8s ease-in-out infinite;
}
.scn-item-garcia-knife .knife-gleam {
  position: absolute; bottom: 42%; left: 38%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e0d8c8 0%, #b0a898 100%);
  border-radius: 20% 20% 40% 40%; box-shadow: 0 0 8px 2px rgba(255,230,200,0.6);
  transform: rotate(-15deg); animation: gk-knife 2s ease-in-out infinite;
}
.scn-item-garcia-knife .blood-pool {
  position: absolute; bottom: 10%; right: 25%; width: 30px; height: 8px;
  background: radial-gradient(ellipse at 50% 100%, #5e1a1d 0%, #2a0a0c 100%);
  border-radius: 50%; box-shadow: 0 0 10px 4px rgba(94,26,29,0.4);
  animation: gk-blood 7s ease-in-out infinite alternate;
}
.scn-item-garcia-knife .shadow-spread {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: gk-shadow 9s ease-in-out infinite;
}
@keyframes gk-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes gk-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gk-stand { 0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(-3deg) translateX(-3px); } 60% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes gk-fallen { 0% { transform: rotate(-30deg) translateY(0); opacity: 0.9; } 50% { transform: rotate(-28deg) translateY(-2px); opacity: 1; } 100% { transform: rotate(-30deg) translateY(0); opacity: 0.8; } }
@keyframes gk-knife { 0% { transform: rotate(-15deg) scaleY(1); opacity: 0.8; } 50% { transform: rotate(-10deg) scaleY(1.1); opacity: 1; } 100% { transform: rotate(-15deg) scaleY(1); opacity: 0.9; } }
@keyframes gk-blood { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.05); opacity: 0.8; } 100% { transform: scale(0.98); opacity: 0.5; } }
@keyframes gk-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

.scn-slopes-remendado-killed { background: linear-gradient(180deg, #1a0a00 0%, #3a1a0a 35%, #5a3a1a 70%), radial-gradient(ellipse at 60% 30%, #8a4a2a 0%, transparent 60%); }
.scn-slopes-remendado-killed .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a1000 0%, #4a2010 100%); animation: sk-sky 8s ease-in-out infinite alternate; }
.scn-slopes-remendado-killed .slope-back { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%); animation: sk-slopes 12s ease-in-out infinite; }
.scn-slopes-remendado-killed .slope-fore { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); clip-path: polygon(0% 100%, 100% 100%, 60% 20%, 40% 30%); animation: sk-slopes 15s ease-in-out infinite reverse; }
.scn-slopes-remendado-killed .remendado { position:absolute; bottom:20%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sk-down 3s ease-in-out infinite; }
.scn-slopes-remendado-killed .garcia { position:absolute; bottom:25%; left:55%; width:24px; height:44px; background: linear-gradient(180deg, #4a2010 0%, #2a1000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sk-stand 4s ease-in-out infinite; }
.scn-slopes-remendado-killed .spark-a { position:absolute; top:30%; left:20%; width:4px; height:4px; background:#d08040; border-radius:50%; box-shadow: 0 0 12px #d08040; animation: sk-spark 1.5s ease-in-out infinite; }
.scn-slopes-remendado-killed .spark-b { position:absolute; top:35%; right:25%; width:3px; height:3px; background:#e09050; border-radius:50%; box-shadow: 0 0 10px #e09050; animation: sk-spark 2s ease-in-out infinite 0.5s; }
.scn-slopes-remendado-killed .rock-left { position:absolute; bottom:12%; left:10%; width:30px; height:20px; background: radial-gradient(ellipse at 30% 40%, #3a2a1a, #1a1000); border-radius: 40% 60% 40% 50%; animation: sk-rock 20s linear infinite; }
.scn-slopes-remendado-killed .rock-right { position:absolute; bottom:15%; right:8%; width:40px; height:25px; background: radial-gradient(ellipse at 70% 30%, #2a1a0a, #0a0500); border-radius: 60% 40% 50% 40%; animation: sk-rock 25s linear infinite reverse; }
@keyframes sk-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes sk-slopes { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sk-down { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sk-stand { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes sk-spark { 0% { opacity:0; transform: translate(0,0) scale(0.5) } 50% { opacity:1; transform: translate(10px,-10px) scale(1.2) } 100% { opacity:0; transform: translate(20px,-20px) scale(0.3) } }
@keyframes sk-rock { 0% { transform: scale(1) } 50% { transform: scale(0.95) } 100% { transform: scale(1) } }

.scn-carmen-devil-kiss { background: linear-gradient(180deg, #1a0a00 0%, #3a1a0a 50%, #5a2a10 100%), radial-gradient(ellipse at 50% 40%, #8a3a1a 0%, transparent 70%); }
.scn-carmen-devil-kiss .bg-fire { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #d07030 0%, transparent 60%); animation: cdk-fire 4s ease-in-out infinite alternate; }
.scn-carmen-devil-kiss .sil-carmen { position:absolute; bottom:20%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cdk-sil 3s ease-in-out infinite; }
.scn-carmen-devil-kiss .sil-narrator { position:absolute; bottom:20%; right:30%; width:32px; height:62px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cdk-sil 3.5s ease-in-out infinite reverse; }
.scn-carmen-devil-kiss .halo { position:absolute; top:10%; left:50%; width:100px; height:100px; transform:translate(-50%,0); background: radial-gradient(circle, rgba(200,120,40,.4) 0%, transparent 70%); border-radius:50%; animation: cdk-halo 5s ease-in-out infinite alternate; }
.scn-carmen-devil-kiss .flame-core { position:absolute; top:30%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 60%, #d08040 0%, #a05020 40%, transparent 70%); border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%; animation: cdk-flame 0.8s ease-in-out infinite alternate; }
.scn-carmen-devil-kiss .ember-1 { position:absolute; top:25%; left:45%; width:4px; height:4px; background:#e09050; border-radius:50%; box-shadow: 0 0 8px #e09050; animation: cdk-ember 2s ease-in infinite; }
.scn-carmen-devil-kiss .ember-2 { position:absolute; top:20%; right:40%; width:3px; height:3px; background:#f0a060; border-radius:50%; box-shadow: 0 0 6px #f0a060; animation: cdk-ember 2.5s ease-in infinite 0.5s; }
@keyframes cdk-fire { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cdk-sil { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cdk-halo { 0% { transform: translate(-50%,0) scale(1); opacity:.5 } 100% { transform: translate(-50%,0) scale(1.2); opacity:.8 } }
@keyframes cdk-flame { 0% { transform: translateX(-50%) scaleY(1) } 100% { transform: translateX(-50%) scaleY(1.3) } }
@keyframes cdk-ember { 0% { opacity:0; transform: translate(0,0) } 50% { opacity:1; transform: translate(5px,-15px) } 100% { opacity:0; transform: translate(10px,-30px) } }

.scn-english-lords-robbery { background: linear-gradient(180deg, #87ceeb 0%, #b0d4f1 40%, #e0f0ff 100%), radial-gradient(ellipse at 80% 30%, #fff4d0 0%, transparent 60%); }
.scn-english-lords-robbery .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #70b8e0 0%, #a0d0f0 100%); animation: elr-sky 10s ease-in-out infinite alternate; }
.scn-english-lords-robbery .sun { position:absolute; top:5%; left:85%; width:40px; height:40px; background: radial-gradient(circle, #fff8e0 0%, #ffd070 50%, transparent 70%); border-radius:50%; animation: elr-sun 6s ease-in-out infinite; }
.scn-english-lords-robbery .road { position:absolute; bottom:20%; left:0; right:0; height:10%; background: linear-gradient(180deg, #c8b890 0%, #a09070 100%); clip-path: polygon(10% 0%, 90% 0%, 95% 100%, 5% 100%); animation: elr-road 8s ease-in-out infinite; }
.scn-english-lords-robbery .tree-l { position:absolute; bottom:30%; left:10%; width:30px; height:80px; background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; transform-origin: bottom center; animation: elr-tree 5s ease-in-out infinite alternate; }
.scn-english-lords-robbery .tree-r { position:absolute; bottom:35%; right:15%; width:25px; height:70px; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; transform-origin: bottom center; animation: elr-tree 6s ease-in-out infinite alternate 0.5s; }
.scn-english-lords-robbery .lord-a { position:absolute; bottom:20%; left:30%; width:18px; height:45px; background: linear-gradient(180deg, #f0e8d0 0%, #c0b090 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: elr-lord 2s ease-in-out infinite; }
.scn-english-lords-robbery .lord-b { position:absolute; bottom:20%; left:38%; width:18px; height:45px; background: linear-gradient(180deg, #e0d8c0 0%, #b0a080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: elr-lord 2.3s ease-in-out infinite reverse; }
.scn-english-lords-robbery .garcia { position:absolute; bottom:20%; right:25%; width:22px; height:48px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: elr-garcia 1.5s ease-in-out infinite; }
.scn-english-lords-robbery .dust-puff { position:absolute; bottom:20%; left:45%; width:20px; height:10px; background: radial-gradient(ellipse, rgba(200,180,150,.4) 0%, transparent 70%); border-radius:50%; filter: blur(2px); animation: elr-dust 0.8s ease-out infinite; }
@keyframes elr-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes elr-sun { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }
@keyframes elr-road { 0% { transform: skewX(-2deg) } 50% { transform: skewX(2deg) } 100% { transform: skewX(-2deg) } }
@keyframes elr-tree { 0% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }
@keyframes elr-lord { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes elr-garcia { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(-5deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(3px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes elr-dust { 0% { opacity:1; transform: translateY(0) scale(1) } 100% { opacity:0; transform: translateY(-10px) scale(2) } }

.scn-fruit-seller-gibraltar { background: linear-gradient(180deg, #d4905a 0%, #b07040 30%, #805030 60%, #403020 100%), radial-gradient(ellipse at 60% 20%, #e0b080 0%, transparent 50%); }
.scn-fruit-seller-gibraltar .sky-dusk { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d4905a 0%, #b07040 60%, #805030 100%); animation: fsg-sky 15s ease-in-out infinite alternate; }
.scn-fruit-seller-gibraltar .sea-line { position:absolute; bottom:35%; left:0; right:0; height:5%; background: linear-gradient(180deg, #a08060 0%, #705040 100%); animation: fsg-sea 20s ease-in-out infinite; }
.scn-fruit-seller-gibraltar .wall { position:absolute; bottom:0; left:60%; right:0; height:40%; background: linear-gradient(180deg, #705040 0%, #503020 100%); border-radius: 10% 0 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.3); animation: fsg-wall 12s ease-in-out infinite; }
.scn-fruit-seller-gibraltar .window { position:absolute; bottom:20%; left:70%; width:20px; height:24px; background: radial-gradient(circle, #f0d090 0%, #c09040 70%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 20px 4px #c09040; animation: fsg-window 3s ease-in-out infinite alternate; }
.scn-fruit-seller-gibraltar .woman { position:absolute; bottom:22%; left:72%; width:10px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fsg-woman 4s ease-in-out infinite; }
.scn-fruit-seller-gibraltar .donkey { position:absolute; bottom:0; left:10%; width:40px; height:30px; background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius: 40% 60% 40% 40% / 50% 50% 50% 50%; animation: fsg-donkey 5s ease-in-out infinite; }
.scn-fruit-seller-gibraltar .cart { position:absolute; bottom:0; left:25%; width:50px; height:20px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 20% 20% 0 0; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: fsg-cart 6s ease-in-out infinite; }
.scn-fruit-seller-gibraltar .seller { position:absolute; bottom:5%; left:20%; width:16px; 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: fsg-seller 3s ease-in-out infinite; }
.scn-fruit-seller-gibraltar .oranges { position:absolute; bottom:12%; left:28%; width:8px; height:8px; background: radial-gradient(circle, #e0a040 0%, #b08030 70%); border-radius:50%; box-shadow: 8px 8px 0 #d09040, 16px 4px 0 #c08030, 4px 12px 0 #d09040; animation: fsg-oranges 4s ease-in-out infinite; }
@keyframes fsg-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fsg-sea { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes fsg-wall { 0% { transform: translateX(0) } 50% { transform: translateX(-1px) } 100% { transform: translateX(0) } }
@keyframes fsg-window { 0% { box-shadow: 0 0 15px 3px #c09040; opacity:.8 } 100% { box-shadow: 0 0 25px 6px #f0d090; opacity:1 } }
@keyframes fsg-woman { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes fsg-donkey { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes fsg-cart { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes fsg-seller { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes fsg-oranges { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }

/* wounded-cave-granada: tense, sunlit cave interior with nursing figure */
.scn-wounded-cave-granada {
  background:
    radial-gradient(ellipse at 80% 60%, rgba(180,140,80,.25) 0%, transparent 50%),
    radial-gradient(ellipse at 20% 40%, rgba(60,40,20,.45) 0%, transparent 60%),
    linear-gradient(135deg, #3a2a1a 0%, #5a4a3a 40%, #2a1a0a 100%);
}
.scn-wounded-cave-granada .cave-entrance {
  position: absolute; top: 5%; right: 10%; width: 35%; height: 70%;
  background: radial-gradient(ellipse at 50% 40%, rgba(220,200,160,.6) 0%, rgba(140,120,90,.2) 60%, transparent 100%);
  border-radius: 50% 20% 40% 30% / 60% 40% 50% 30%;
  filter: blur(3px);
  animation: wcg-entrance 12s ease-in-out infinite alternate;
}
.scn-wounded-cave-granada .cave-wall-left {
  position: absolute; top: 0; left: 0; width: 45%; height: 100%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 0 60% 40% 0 / 0 50% 50% 0;
  box-shadow: inset -8px 0 20px rgba(0,0,0,.5);
  animation: wcg-wall-left 20s ease-in-out infinite alternate;
}
.scn-wounded-cave-granada .cave-wall-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 60% 0 0 40% / 50% 0 0 50%;
  box-shadow: inset 8px 0 20px rgba(0,0,0,.5);
}
.scn-wounded-cave-granada .sunbeam {
  position: absolute; top: 8%; right: 20%; width: 12%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,.35) 0%, rgba(255,220,160,.15) 40%, transparent 100%);
  filter: blur(4px);
  transform: skewX(-8deg);
  animation: wcg-sunbeam 8s ease-in-out infinite alternate;
}
.scn-wounded-cave-granada .figure-wounded {
  position: absolute; bottom: 18%; left: 38%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: wcg-wounded 6s ease-in-out infinite alternate;
}
.scn-wounded-cave-granada .figure-nurse {
  position: absolute; bottom: 15%; left: 48%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 50%, #5a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(2deg) scaleX(0.9);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: wcg-nurse 4s ease-in-out infinite alternate;
}
.scn-wounded-cave-granada .bedrock {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 30% 40% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-wounded-cave-granada .dust-particle {
  position: absolute; top: 25%; right: 22%; width: 4px; height: 4px;
  background: rgba(220,200,160,.3); border-radius: 50%;
  filter: blur(1px);
  animation: wcg-dust 7s ease-in-out infinite;
}
@keyframes wcg-entrance {
  0%   { opacity: .7; transform: scale(1) }
  50%  { opacity: 1; transform: scale(1.02) }
  100% { opacity: .8; transform: scale(0.98) }
}
@keyframes wcg-wall-left {
  0%   { opacity: .9; transform: translateX(0) }
  50%  { opacity: 1; transform: translateX(-2px) }
  100% { opacity: .9; transform: translateX(0) }
}
@keyframes wcg-sunbeam {
  0%   { opacity: .6; transform: skewX(-8deg) scaleX(1) }
  50%  { opacity: .9; transform: skewX(-6deg) scaleX(1.1) }
  100% { opacity: .7; transform: skewX(-10deg) scaleX(0.95) }
}
@keyframes wcg-wounded {
  0%   { transform: rotate(-5deg) translateY(0) }
  50%  { transform: rotate(-3deg) translateY(-2px) }
  100% { transform: rotate(-6deg) translateY(0) }
}
@keyframes wcg-nurse {
  0%   { transform: rotate(2deg) scaleX(0.9) translateY(0) }
  50%  { transform: rotate(1deg) scaleX(0.95) translateY(-1px) }
  100% { transform: rotate(3deg) scaleX(0.9) translateY(0) }
}
@keyframes wcg-dust {
  0%   { transform: translate(0, 0) scale(1); opacity: .3 }
  50%  { transform: translate(3px, -4px) scale(1.3); opacity: .5 }
  100% { transform: translate(6px, 0) scale(0.8); opacity: .2 }
}

/* item-cockade: tense, sunlit bullring scene with matador and cockade */
.scn-item-cockade {
  background:
    radial-gradient(ellipse at 50% 30%, rgba(200,180,140,.2) 0%, transparent 60%),
    linear-gradient(180deg, #6a8aaa 0%, #4a6a8a 40%, #3a5a7a 100%),
    linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
}
.scn-item-cockade .sky-arena {
  position: absolute; top: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8aaac0 0%, #6a8aaa 60%, #5a7a9a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: ic-sky 15s ease-in-out infinite alternate;
}
.scn-item-cockade .arena-wall {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 60%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.4);
  animation: ic-wall 20s ease-in-out infinite alternate;
}
.scn-item-cockade .bull-ring {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #b0a080 0%, #8a7a5a 50%, #6a5a3a 100%);
  border-radius: 50%;
  box-shadow: 0 -8px 20px rgba(0,0,0,.3);
}
.scn-item-cockade .figure-matador {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 48px;
  background: linear-gradient(180deg, #c08040 0%, #a06030 40%, #804020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(5deg);
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
  animation: ic-matador 3s ease-in-out infinite alternate;
}
.scn-item-cockade .figure-carmen {
  position: absolute; bottom: 22%; right: 22%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #a05a3a 0%, #804020 50%, #603010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-8deg) scaleX(0.85);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: ic-carmen 4s ease-in-out infinite alternate;
}
.scn-item-cockade .cockade {
  position: absolute; bottom: 28%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 60%, #804020 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,85,61,.5);
  transform: translateX(-50%);
  animation: ic-cockade 2s ease-in-out infinite alternate;
}
.scn-item-cockade .shadow-long {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 4%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 20%, rgba(0,0,0,.4) 50%, transparent 80%);
  filter: blur(3px);
  animation: ic-shadow 6s ease-in-out infinite alternate;
}
.scn-item-cockade .dust-cloud {
  position: absolute; bottom: 12%; left: 35%; right: 35%; height: 8%;
  background: rgba(180,160,120,.15);
  border-radius: 50%;
  filter: blur(8px);
  animation: ic-dust 5s ease-in-out infinite;
}
@keyframes ic-sky {
  0%   { opacity: .8; transform: scaleY(1) }
  50%  { opacity: 1; transform: scaleY(1.02) }
  100% { opacity: .85; transform: scaleY(0.98) }
}
@keyframes ic-wall {
  0%   { opacity: .9; transform: translateY(0) }
  50%  { opacity: 1; transform: translateY(-2px) }
  100% { opacity: .95; transform: translateY(0) }
}
@keyframes ic-matador {
  0%   { transform: translateX(-50%) rotate(5deg) translateY(0) }
  50%  { transform: translateX(-50%) rotate(8deg) translateY(-2px) }
  100% { transform: translateX(-50%) rotate(3deg) translateY(0) }
}
@keyframes ic-carmen {
  0%   { transform: rotate(-8deg) scaleX(0.85) translateY(0) }
  50%  { transform: rotate(-6deg) scaleX(0.9) translateY(-1px) }
  100% { transform: rotate(-10deg) scaleX(0.85) translateY(0) }
}
@keyframes ic-cockade {
  0%   { transform: translateX(-50%) scale(1); opacity: .7 }
  50%  { transform: translateX(-50%) scale(1.2); opacity: 1 }
  100% { transform: translateX(-50%) scale(0.9); opacity: .8 }
}
@keyframes ic-shadow {
  0%   { transform: scaleX(1); opacity: .3 }
  50%  { transform: scaleX(1.3); opacity: .5 }
  100% { transform: scaleX(0.9); opacity: .4 }
}
@keyframes ic-dust {
  0%   { transform: translateY(0) scale(1); opacity: .15 }
  50%  { transform: translateY(-3px) scale(1.4); opacity: .25 }
  100% { transform: translateY(1px) scale(0.8); opacity: .1 }
}

/* ride-dawn-threat: tense, dawn ride with two horses and threat */
.scn-ride-dawn-threat {
  background:
    radial-gradient(ellipse at 50% 100%, rgba(140,80,40,.15) 0%, transparent 50%),
    linear-gradient(180deg, #3a2a4a 0%, #5a4a6a 30%, #8a6a5a 60%, #b0a080 100%);
}
.scn-ride-dawn-threat .dawn-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a1a3a 0%, #4a3a5a 30%, #7a6a5a 60%, #b0a080 100%);
  border-radius: 0 0 30% 50% / 0 0 40% 60%;
  animation: rdt-sky 20s ease-in-out infinite alternate;
}
.scn-ride-dawn-threat .horizon-line {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 2%;
  background: linear-gradient(90deg, transparent 0%, rgba(80,60,40,.3) 20%, rgba(60,40,20,.5) 50%, transparent 80%);
  filter: blur(2px);
}
.scn-ride-dawn-threat .mountain-silhouette {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
  animation: rdt-mountain 25s ease-in-out infinite alternate;
}
.scn-ride-dawn-threat .road-dust {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 6%;
  background: rgba(120,100,80,.15);
  border-radius: 50%;
  filter: blur(10px);
  animation: rdt-dust 8s ease-in-out infinite;
}
.scn-ride-dawn-threat .horse-and-rider-1 {
  position: absolute; bottom: 14%; left: 30%; width: 40px; height: 40px;
  background:
    linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: rdt-rider1 4s ease-in-out infinite alternate;
}
.scn-ride-dawn-threat .horse-and-rider-2 {
  position: absolute; bottom: 14%; left: 55%; width: 38px; height: 38px;
  background:
    linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  transform: scaleX(-1);
  animation: rdt-rider2 4s ease-in-out infinite alternate;
  animation-delay: .5s;
}
.scn-ride-dawn-threat .dawn-sun {
  position: absolute; top: 12%; left: 65%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0c060 0%, #d0a040 40%, #b08020 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(240,192,96,.5), 0 0 80px 24px rgba(240,192,96,.2);
  animation: rdt-sun 10s ease-in-out infinite alternate;
}
.scn-ride-dawn-threat .bird-distant {
  position: absolute; top: 18%; left: 20%; width: 8px; height: 4px;
  background: #1a0a0a;
  border-radius: 50%;
  animation: rdt-bird 12s linear infinite;
}
@keyframes rdt-sky {
  0%   { opacity: .7; transform: scaleY(1) }
  50%  { opacity: .9; transform: scaleY(1.03) }
  100% { opacity: .75; transform: scaleY(0.97) }
}
@keyframes rdt-mountain {
  0%   { transform: translateY(0) scaleX(1) }
  50%  { transform: translateY(-3px) scaleX(1.01) }
  100% { transform: translateY(0) scaleX(1) }
}
@keyframes rdt-dust {
  0%   { transform: translateX(0) scale(1); opacity: .15 }
  50%  { transform: translateX(8px) scale(1.3); opacity: .25 }
  100% { transform: translateX(-4px) scale(0.8); opacity: .1 }
}
@keyframes rdt-rider1 {
  0%   { transform: translateY(0) rotate(-2deg) }
  50%  { transform: translateY(-3px) rotate(1deg) }
  100% { transform: translateY(0) rotate(-1deg) }
}
@keyframes rdt-rider2 {
  0%   { transform: scaleX(-1) translateY(0) rotate(2deg) }
  50%  { transform: scaleX(-1) translateY(-3px) rotate(-1deg) }
  100% { transform: scaleX(-1) translateY(0) rotate(1deg) }
}
@keyframes rdt-sun {
  0%   { opacity: .6; transform: scale(0.95) translateY(0) }
  50%  { opacity: .9; transform: scale(1.05) translateY(-2px) }
  100% { opacity: .7; transform: scale(1) translateY(0) }
}
@keyframes rdt-bird {
  0%   { transform: translateX(0) translateY(0) }
  50%  { transform: translateX(20px) translateY(-2px) }
  100% { transform: translateX(40px) translateY(0) }
}

/* final-plea-hermitage: tense, dawn at hermitage with figures and gold */
.scn-final-plea-hermitage {
  background:
    radial-gradient(ellipse at 50% 80%, rgba(100,70,30,.15) 0%, transparent 60%),
    linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 30%, #8a7a5a 60%, #b0a080 100%);
}
.scn-final-plea-hermitage .hermitage-wall {
  position: absolute; top: 0; left: 5%; right: 5%; height: 55%;
  background: linear-gradient(180deg, #6a5a3a 0%, #5a4a2a 40%, #4a3a1a 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.4);
  animation: fph-wall 18s ease-in-out infinite alternate;
}
.scn-final-plea-hermitage .floor-dirt {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a3a 0%, #5a4a2a 40%, #4a3a1a 100%);
  border-radius: 20% 30% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-final-plea-hermitage .figure-sitting {
  position: absolute; bottom: 10%; left: 38%; width: 26px; height: 34px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(0deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: fph-sitting 6s ease-in-out infinite alternate;
}
.scn-final-plea-hermitage .figure-standing {
  position: absolute; bottom: 14%; left: 52%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 50%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-3deg) scaleX(0.9);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: fph-standing 4s ease-in-out infinite alternate;
}
.scn-final-plea-hermitage .gold-buried {
  position: absolute; bottom: 8%; left: 30%; width: 10px; height: 6px;
  background: radial-gradient(circle, #f0c060 0%, #c0a040 60%, #a08020 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(240,192,96,.4);
  animation: fph-gold 5s ease-in-out infinite;
}
.scn-final-plea-hermitage .entrance-light {
  position: absolute; top: 10%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, rgba(220,200,160,.3) 0%, rgba(200,180,140,.1) 60%, transparent 100%);
  filter: blur(6px);
  border-radius: 50%;
  animation: fph-light 12s ease-in-out infinite alternate;
}
.scn-final-plea-hermitage .shadow-figure {
  position: absolute; bottom: 5%; left: 35%; right: 45%; height: 8%;
  background: rgba(0,0,0,.25);
  border-radius: 50%;
  filter: blur(4px);
  animation: fph-shadow 6s ease-in-out infinite alternate;
}
@keyframes fph-wall {
  0%   { opacity: .8; transform: translateY(0) }
  50%  { opacity: .95; transform: translateY(-2px) }
  100% { opacity: .85; transform: translateY(0) }
}
@keyframes fph-sitting {
  0%   { transform: rotate(0deg) translateY(0) }
  50%  { transform: rotate(2deg) translateY(-1px) }
  100% { transform: rotate(-1deg) translateY(0) }
}
@keyframes fph-standing {
  0%   { transform: rotate(-3deg) scaleX(0.9) translateY(0) }
  50%  { transform: rotate(-1deg) scaleX(0.95) translateY(-2px) }
  100% { transform: rotate(-4deg) scaleX(0.9) translateY(0) }
}
@keyframes fph-gold {
  0%   { transform: translateY(0) scale(1); opacity: .6 }
  50%  { transform: translateY(-2px) scale(1.2); opacity: 1 }
  100% { transform: translateY(0) scale(0.9); opacity: .7 }
}
@keyframes fph-light {
  0%   { opacity: .4; transform: scale(1) }
  50%  { opacity: .7; transform: scale(1.05) }
  100% { opacity: .5; transform: scale(0.95) }
}
@keyframes fph-shadow {
  0%   { transform: scaleX(1); opacity: .2 }
  50%  { transform: scaleX(1.2); opacity: .35 }
  100% { transform: scaleX(0.9); opacity: .25 }
}

.scn-cards-quarrel-knife-fight {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 80%, #7a4a2a 0%, transparent 70%);
}
.scn-cards-quarrel-knife-fight .fire {
  position:absolute; bottom:10%; left:20%; width:80px; height:100px;
  background: radial-gradient(circle at 50% 100%, #ff8c42 0%, #cc6a2a 30%, transparent 70%);
  border-radius:0; transform: scaleY(1.3);
  animation: cqf-fire 1.5s ease-in-out infinite alternate;
}
.scn-cards-quarrel-knife-fight .table {
  position:absolute; bottom:15%; left:10%; right:10%; height:16%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius:4px 4px 2px 2px;
  box-shadow: 0 -4px 12px rgba(0,0,0,.6);
  animation: cqf-table 5s ease-in-out infinite;
}
.scn-cards-quarrel-knife-fight .figure-left {
  position:absolute; bottom:18%; left:20%; width:22px; height:50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cqf-figleft 3s ease-in-out infinite;
}
.scn-cards-quarrel-knife-fight .figure-right {
  position:absolute; bottom:18%; right:20%; width:24px; height:52px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cqf-figright 2.8s ease-in-out infinite;
}
.scn-cards-quarrel-knife-fight .cards {
  position:absolute; width:14px; height:20px;
  background: linear-gradient(135deg, #c8b088 0%, #a08858 100%);
  border-radius:1px;
}
.scn-cards-quarrel-knife-fight .cards.flying {
  top:40%; left:15%;
  animation: cqf-fly1 4s ease-in-out infinite;
}
.scn-cards-quarrel-knife-fight .cards.flying-two {
  top:35%; left:55%;
  animation: cqf-fly2 4.5s ease-in-out infinite 0.5s;
}
.scn-cards-quarrel-knife-fight .knife {
  position:absolute; bottom:30%; left:48%; width:3px; height:16px;
  background: linear-gradient(180deg, #888 0%, #ccc 20%, #888 80%);
  border-radius:1px 1px 0 0;
  transform: rotate(15deg);
  box-shadow: 0 0 6px rgba(255,200,100,.3);
  animation: cqf-knife 2s ease-in-out infinite;
}
.scn-cards-quarrel-knife-fight .shadow-floor {
  position:absolute; bottom:8%; left:5%; right:5%; height:10%;
  background: radial-gradient(ellipse at center, rgba(0,0,0,.7) 0%, transparent 100%);
  animation: cqf-shadow 6s ease-in-out infinite;
}
@keyframes cqf-fire { 0% { transform: scaleY(1.3) translateY(0); opacity:.8; } 50% { transform: scaleY(1.5) translateY(-5px); opacity:1; } 100% { transform: scaleY(1.2) translateY(2px); opacity:.7; } }
@keyframes cqf-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px) rotateZ(0.5deg); } }
@keyframes cqf-figleft { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(5px) rotate(2deg); } 60% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cqf-figright { 0% { transform: translateX(0) rotate(1deg); } 40% { transform: translateX(-4px) rotate(-3deg); } 70% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes cqf-fly1 { 0% { transform: translate(0,0) rotate(0deg) scale(1); } 25% { transform: translate(30px,-20px) rotate(40deg) scale(1.1); } 50% { transform: translate(-20px,10px) rotate(-30deg) scale(0.9); } 75% { transform: translate(15px,-5px) rotate(15deg) scale(1.05); } 100% { transform: translate(0,0) rotate(0deg) scale(1); } }
@keyframes cqf-fly2 { 0% { transform: translate(0,0) rotate(0deg) scale(1); } 25% { transform: translate(-20px,-15px) rotate(-50deg) scale(0.8); } 50% { transform: translate(10px,5px) rotate(20deg) scale(1.15); } 75% { transform: translate(-5px,-10px) rotate(-10deg) scale(1); } 100% { transform: translate(0,0) rotate(0deg) scale(1); } }
@keyframes cqf-knife { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-3px) scaleY(1.1); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes cqf-shadow { 0%,100% { opacity:.6; } 50% { opacity:.9; } }

.scn-garcia-killed-el-dancaire {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 40%, #0a0505 100%), radial-gradient(ellipse at 50% 100%, #3a1a0a 0%, transparent 80%);
}
.scn-garcia-killed-el-dancaire .bg-dark {
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 50%, rgba(0,0,0,.8) 100%);
  animation: gke-bg 8s ease-in-out infinite;
}
.scn-garcia-killed-el-dancaire .fire-glow {
  position:absolute; bottom:5%; left:5%; right:5%; height:30%;
  background: radial-gradient(ellipse at 30% 80%, #ff6a2a 0%, #7a3a0a 40%, transparent 80%);
  box-shadow: 0 0 40px rgba(255,100,50,.3);
  animation: gke-fire 2s ease-in-out infinite alternate;
}
.scn-garcia-killed-el-dancaire .body-garcia {
  position:absolute; bottom:15%; left:25%; width:60px; height:30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: gke-body 6s ease-in-out infinite;
}
.scn-garcia-killed-el-dancaire .figure-narrator {
  position:absolute; bottom:15%; left:50%; width:20px; height:55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: gke-narr 3s ease-in-out infinite;
}
.scn-garcia-killed-el-dancaire .figure-el-dancaire {
  position:absolute; bottom:15%; right:15%; width:22px; height:50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(0);
  animation: gke-dancai 4s ease-in-out infinite;
}
.scn-garcia-killed-el-dancaire .blood-pool {
  position:absolute; bottom:12%; left:22%; width:35px; height:14px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #3a0a0c 40%, transparent 80%);
  border-radius:50%;
  box-shadow: 0 0 10px rgba(90,26,29,.4);
  animation: gke-blood 8s ease-in-out infinite;
}
.scn-garcia-killed-el-dancaire .knife-broken {
  position:absolute; bottom:20%; left:30%; width:2px; height:12px;
  background:#aaa;
  border-radius:0 0 1px 1px;
  transform: rotate(40deg);
  box-shadow: 0 0 4px rgba(200,100,50,.3);
  animation: gke-knife 5s ease-in-out infinite;
}
@keyframes gke-bg { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes gke-fire { 0% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(1.4) translateY(-4px); opacity:1; } 100% { transform: scaleY(1.1); opacity:.6; } }
@keyframes gke-body { 0%,100% { transform: rotate(15deg) translateY(0) scaleX(1); } 50% { transform: rotate(18deg) translateY(2px) scaleX(1.02); } }
@keyframes gke-narr { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(-2deg) translateY(-1px); } 60% { transform: translateX(-50%) rotate(2deg) translateY(1px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes gke-dancai { 0% { transform: translateX(0) rotate(1deg); } 40% { transform: translateX(3px) rotate(-2deg) translateY(-2px); } 70% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes gke-blood { 0% { transform: scale(1); opacity:.7; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.9); opacity:.5; } }
@keyframes gke-knife { 0% { transform: rotate(40deg) translateY(0); } 50% { transform: rotate(35deg) translateY(-3px); } 100% { transform: rotate(40deg) translateY(0); } }

.scn-camp-aftermath-englishman {
  background: linear-gradient(180deg, #b8c8d8 0%, #e8eef0 40%, #c8d0d8 100%), radial-gradient(ellipse at 50% 0%, #f0f4f8 0%, transparent 80%);
}
.scn-camp-aftermath-englishman .sky-day {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #9abfe0 0%, #d0e0f0 50%, #e8f0f0 100%);
  animation: cae-sky 12s ease-in-out infinite alternate;
}
.scn-camp-aftermath-englishman .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
  animation: cae-ground 15s ease-in-out infinite;
}
.scn-camp-aftermath-englishman .grave-mound {
  position:absolute; bottom:30%; left:30%; width:40px; height:20px;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%);
  border-radius: 50% 50% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: cae-grave 8s ease-in-out infinite;
}
.scn-camp-aftermath-englishman .figure-carmen {
  position:absolute; bottom:28%; left:15%; width:18px; height:42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(0);
  animation: cae-carmen 4s ease-in-out infinite;
}
.scn-camp-aftermath-englishman .figure-narrator-stand {
  position:absolute; bottom:28%; left:45%; width:20px; height:48px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: cae-narr 3.5s ease-in-out infinite;
}
.scn-camp-aftermath-englishman .figure-englishman {
  position:absolute; bottom:28%; right:10%; width:22px; height:50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(0);
  animation: cae-english 5s ease-in-out infinite;
}
.scn-camp-aftermath-englishman .campfire-ash {
  position:absolute; bottom:20%; left:55%; width:30px; height:10px;
  background: radial-gradient(ellipse, #4a4a3a 0%, #3a3a2a 40%, transparent 80%);
  border-radius:50%;
  box-shadow: 0 0 8px rgba(0,0,0,.2);
  animation: cae-ash 10s ease-in-out infinite;
}
@keyframes cae-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes cae-ground { 0% { transform: translateY(0) skewX(0deg); } 50% { transform: translateY(-2px) skewX(-1deg); } 100% { transform: translateY(0) skewX(0deg); } }
@keyframes cae-grave { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.95); } }
@keyframes cae-carmen { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(4px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes cae-narr { 0% { transform: translateX(-50%) rotate(0deg); } 40% { transform: translateX(-50%) rotate(1deg) translateY(-1px); } 70% { transform: translateX(-50%) rotate(-1deg) translateY(1px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes cae-english { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-3px) rotate(-2deg) translateY(-2px); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes cae-ash { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.1) translateY(-1px); } 100% { transform: scale(1) translateY(0); } }

.scn-carmen-independence {
  background: linear-gradient(180deg, #c8d8e8 0%, #e8f0f8 30%, #f0f4f0 100%), radial-gradient(ellipse at 50% 100%, #d0e0d0 0%, transparent 80%);
}
.scn-carmen-independence .sky-sun {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #a8c8e8 0%, #d0e8f0 40%, #e0f0e0 100%);
  animation: cid-sky 14s ease-in-out infinite alternate;
}
.scn-carmen-independence .sea {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #80a0b8 0%, #5080a0 50%, #306080 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
  animation: cid-sea 12s ease-in-out infinite;
}
.scn-carmen-independence .figure-carmen-castanet {
  position:absolute; bottom:40%; left:30%; width:20px; height:44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: cid-carmen 3s ease-in-out infinite;
}
.scn-carmen-independence .figure-narrator-walk {
  position:absolute; bottom:40%; left:55%; width:18px; height:42px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: cid-narr 4s ease-in-out infinite;
}
.scn-carmen-independence .merchant {
  position:absolute; bottom:40%; right:10%; width:22px; height:46px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(0);
  animation: cid-merch 5s ease-in-out infinite;
}
.scn-carmen-independence .castanet {
  position:absolute; width:8px; height:12px;
  background: radial-gradient(circle, #c8a060 0%, #a08040 100%);
  border-radius: 40% 40% 40% 40%;
  box-shadow: 0 0 4px rgba(0,0,0,.2);
}
.scn-carmen-independence .castanet.left {
  top:52%; left:27%;
  animation: cid-leftcast 0.6s ease-in-out infinite alternate;
}
.scn-carmen-independence .castanet.right {
  top:52%; left:35%;
  animation: cid-rightcast 0.6s ease-in-out infinite alternate 0.15s;
}
.scn-carmen-independence .path {
  position:absolute; bottom:35%; left:0; right:0; height:5%;
  background: linear-gradient(90deg, transparent 0%, #7a8a6a 20%, #8a9a7a 50%, #7a8a6a 80%, transparent 100%);
  border-radius:0;
  opacity:.5;
  animation: cid-path 8s linear infinite;
}
@keyframes cid-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes cid-sea { 0% { transform: translateY(0) skewX(0deg); } 50% { transform: translateY(-3px) skewX(2deg); } 100% { transform: translateY(0) skewX(0deg); } }
@keyframes cid-carmen { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-3deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(3deg) translateY(2px); } 75% { transform: translateX(-50%) rotate(-1deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes cid-narr { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 30% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 60% { transform: translateX(-50%) translateY(1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes cid-merch { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-4px) rotate(-2deg) translateY(-1px); } 70% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cid-leftcast { 0% { transform: rotate(0deg) translateY(0); } 100% { transform: rotate(15deg) translateY(-2px); } }
@keyframes cid-rightcast { 0% { transform: rotate(0deg) translateY(0); } 100% { transform: rotate(-15deg) translateY(-2px); } }
@keyframes cid-path { 0% { transform: translateX(-10%); opacity:.3; } 50% { opacity:.6; } 100% { transform: translateX(10%); opacity:.3; } }

.scn-carmen-search-pastia { background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #b8a07e 100%), radial-gradient(ellipse at 50% 20%, #f0d6a0 0%, transparent 60%); }
.scn-carmen-search-pastia .sky { position: absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); animation: csp-sky 20s ease-in-out infinite alternate; }
.scn-carmen-search-pastia .sun { position: absolute; top:10%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff5c0 0%, #f0c060 60%, transparent 70%); border-radius:50%; animation: csp-sun 30s ease-in-out infinite alternate; }
.scn-carmen-search-pastia .building { position: absolute; bottom:30%; left:20%; width:200px; height:200px; background: linear-gradient(180deg, #c8a882 0%, #b0906a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3); }
.scn-carmen-search-pastia .door { position: absolute; bottom:30%; left:35%; width:50px; height:80px; background: linear-gradient(180deg, #5e3a1a 0%, #3a2210 100%); border-radius: 10% 10% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.5); }
.scn-carmen-search-pastia .pastia { position: absolute; bottom:20%; left:65%; width:30px; height:60px; background: linear-gradient(180deg, #2c2216 0%, #1a120a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: csp-pastia 6s ease-in-out infinite; }
.scn-carmen-search-pastia .lamp { position: absolute; bottom:35%; left:15%; width:8px; height:20px; background: #4a3a2a; border-radius: 4px; }
.scn-carmen-search-pastia .bench { position: absolute; bottom:20%; left:55%; width:80px; height:16px; background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: csp-bench 8s ease-in-out infinite alternate; }
@keyframes csp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes csp-sun { 0% { transform: scale(1) translate(0,0) } 50% { transform: scale(1.05) translate(5px,-2px) } 100% { transform: scale(0.95) translate(-3px,1px) } }
@keyframes csp-pastia { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } }
@keyframes csp-bench { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1.02) } }

.scn-breach-wall-carmen-smugglers { background: linear-gradient(180deg, #0f162a 0%, #1a2240 50%, #2a2e4e 100%), radial-gradient(ellipse at 50% 10%, #304050 0%, transparent 80%); }
.scn-breach-wall-carmen-smugglers .night-sky { position: absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #080c20 0%, #141a38 100%); animation: bws-sky 15s ease-in-out infinite alternate; }
.scn-breach-wall-carmen-smugglers .moon { position: absolute; top:8%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #e0d8c8 0%, #c0b8a8 100%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(200,190,180,0.4); animation: bws-moon 25s ease-in-out infinite alternate; }
.scn-breach-wall-carmen-smugglers .wall { position: absolute; bottom:20%; left:0; right:0; height:60%; background: linear-gradient(180deg, #4a4e58 0%, #2a2e38 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-breach-wall-carmen-smugglers .breach { position: absolute; bottom:20%; left:35%; width:120px; height:80px; background: radial-gradient(ellipse at 50% 50%, #0a0e1c 0%, #121826 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); }
.scn-breach-wall-carmen-smugglers .carmen { position: absolute; bottom:25%; left:30%; width:35px; height:70px; background: linear-gradient(180deg, #1a1220 0%, #0e0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bws-carmen 4s ease-in-out infinite; }
.scn-breach-wall-carmen-smugglers .bundle { position: absolute; bottom:35%; left:25%; width:30px; height:20px; background: #2a2216; border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: bws-bundle 6s ease-in-out infinite; }
.scn-breach-wall-carmen-smugglers .spear { position: absolute; bottom:30%; left:55%; width:4px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(10deg); animation: bws-spear 7s ease-in-out infinite alternate; }
.scn-breach-wall-carmen-smugglers .cloud { position: absolute; top:12%; left:60%; width:80px; height:20px; background: linear-gradient(180deg, rgba(200,200,220,0.4) 0%, rgba(200,200,220,0.1) 100%); border-radius:50%; filter: blur(6px); animation: bws-cloud 40s linear infinite; }
@keyframes bws-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes bws-moon { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(0.97) } }
@keyframes bws-carmen { 0%,100% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-4px) rotate(-1deg) } }
@keyframes bws-bundle { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(5deg) } 100% { transform: translateY(2px) rotate(-3deg) } }
@keyframes bws-spear { 0% { transform: rotate(8deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(6deg) } }
@keyframes bws-cloud { 0% { transform: translateX(-20px) } 100% { transform: translateX(120vw) } }

.scn-smuggling-breach-bargain { background: linear-gradient(180deg, #0e1428 0%, #181e3a 50%, #262c4a 100%), radial-gradient(ellipse at 50% 30%, #2a3048 0%, transparent 70%); }
.scn-smuggling-breach-bargain .night-sky { position: absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0c1e 0%, #12162e 100%); animation: sbb-sky 18s ease-in-out infinite alternate; }
.scn-smuggling-breach-bargain .wall { position: absolute; bottom:15%; left:0; right:0; height:55%; background: linear-gradient(180deg, #3c3e4e 0%, #1e202e 100%); box-shadow: inset 0 6px 16px rgba(0,0,0,0.7); }
.scn-smuggling-breach-bargain .breach { position: absolute; bottom:15%; left:20%; width:150px; height:100px; background: radial-gradient(ellipse at 50% 100%, #0e1220 0%, #161c32 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,0.9); }
.scn-smuggling-breach-bargain .carmen { position: absolute; bottom:18%; left:15%; width:40px; height:75px; background: linear-gradient(180deg, #1a1624 0%, #0e0c14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sbb-carmen 5s ease-in-out infinite; }
.scn-smuggling-breach-bargain .guard { position: absolute; bottom:18%; left:55%; width:38px; height:70px; background: linear-gradient(180deg, #2a2830 0%, #1a1820 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sbb-guard 7s ease-in-out infinite alternate; }
.scn-smuggling-breach-bargain .smugglers { position: absolute; bottom:20%; left:25%; width:100px; height:30px; display: flex; justify-content: space-around; }
.scn-smuggling-breach-bargain .smugglers::before { content: ''; display: block; width:18px; height:40px; background: #1a1822; border-radius: 40% 40% 30% 30%; animation: sbb-smuggle 9s ease-in-out infinite; }
.scn-smuggling-breach-bargain .smugglers::after { content: ''; display: block; width:18px; height:40px; background: #1a1822; border-radius: 40% 40% 30% 30%; animation: sbb-smuggle 9s ease-in-out infinite 1.5s; }
.scn-smuggling-breach-bargain .coin { position: absolute; bottom:40%; left:45%; width:16px; height:16px; background: radial-gradient(circle, #e8c040 0%, #b89020 100%); border-radius:50%; box-shadow: 0 0 20px 4px rgba(200,160,40,0.6); animation: sbb-coin 3s ease-in-out infinite alternate; }
@keyframes sbb-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.5 } }
@keyframes sbb-carmen { 0%,100% { transform: translateX(0) rotate(-1deg) } 30% { transform: translateX(8px) rotate(2deg) } 60% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes sbb-guard { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(3px) } }
@keyframes sbb-smuggle { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(30px) scaleY(0.9) } 100% { transform: translateX(60px) scaleY(1) } }
@keyframes sbb-coin { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.9; transform: scale(0.9) } }

.scn-candilejo-quarrel-church { background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2c22 100%), radial-gradient(ellipse at 50% 50%, #3a2c22 0%, #0e0a08 100%); }
.scn-candilejo-quarrel-church .arch { position: absolute; top:0; left:10%; width:80%; height:40%; background: linear-gradient(180deg, #4a382c 0%, #2a1e14 100%); border-radius: 40% 40% 0 0; box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6); }
.scn-candilejo-quarrel-church .altar { position: absolute; bottom:35%; left:40%; width:120px; height:60px; background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.5); }
.scn-candilejo-quarrel-church .kneeling { position: absolute; bottom:20%; left:30%; width:28px; height:50px; background: linear-gradient(180deg, #1e1a18 0%, #0e0c0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cqc-kneel 8s ease-in-out infinite; }
.scn-candilejo-quarrel-church .carmen { position: absolute; bottom:20%; right:25%; width:35px; height:70px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cqc-carmen 6s ease-in-out infinite alternate; }
.scn-candilejo-quarrel-church .pew { position: absolute; bottom:15%; left:25%; width:200px; height:20px; background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-candilejo-quarrel-church .window { position: absolute; top:10%; right:10%; width:60px; height:90px; background: radial-gradient(ellipse at 50% 50%, #4a4030 0%, #2a2018 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: cqc-window 12s ease-in-out infinite alternate; }
.scn-candilejo-quarrel-church .candles { position: absolute; bottom:40%; left:50%; width:10px; height:20px; background: linear-gradient(180deg, #e8c060 0%, #b89040 100%); border-radius: 2px; box-shadow: 0 0 30px 8px rgba(200,160,60,0.7); animation: cqc-candle 3s ease-in-out infinite alternate; }
@keyframes cqc-kneel { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-3px) rotate(-1deg) } }
@keyframes cqc-carmen { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(-2px) rotate(0) } }
@keyframes cqc-window { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes cqc-candle { 0% { transform: scaleY(1) scaleX(1); opacity:0.8 } 50% { transform: scaleY(1.1) scaleX(0.9); opacity:1 } 100% { transform: scaleY(0.95) scaleX(1.05); opacity:0.9 } }

.scn-cordova-quay-dusk {
  background: linear-gradient(180deg, #2c2840 0%, #4a3a5a 40%, #a07050 100%),
              radial-gradient(ellipse at 50% 80%, #a07050 0%, transparent 60%);
}
.scn-cordova-quay-dusk .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a3350 0%, transparent 100%);
  animation: cqd-sky 10s ease-in-out infinite alternate;
}
.scn-cordova-quay-dusk .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a1a30 0%, #2c2c4a 100%);
  animation: cqd-water 6s ease-in-out infinite alternate;
}
.scn-cordova-quay-dusk .shore {
  position: absolute; bottom: 45%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 70% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.4);
  animation: cqd-hills 15s ease-in-out infinite alternate;
}
.scn-cordova-quay-dusk .figure {
  position: absolute; bottom: 38%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
}
.scn-cordova-quay-dusk .f1 { left: 30%; animation: cqd-sway 4s ease-in-out infinite; }
.scn-cordova-quay-dusk .f2 { left: 50%; animation: cqd-sway 4.5s ease-in-out infinite 1s; }
.scn-cordova-quay-dusk .f3 { left: 65%; width: 12px; height: 30px; animation: cqd-sway 5s ease-in-out infinite 0.5s; }
.scn-cordova-quay-dusk .reflection {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(180deg, rgba(168,112,80,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: cqd-reflect 8s ease-in-out infinite alternate;
}
.scn-cordova-quay-dusk .cloud {
  position: absolute; height: 16px; filter: blur(5px);
  background: linear-gradient(180deg, rgba(200,180,200,0.4) 0%, transparent 100%);
  border-radius: 50%;
}
.scn-cordova-quay-dusk .c1 { top: 12%; left: 15%; width: 70px; animation: cqd-drift 40s linear infinite; }
.scn-cordova-quay-dusk .c2 { top: 20%; right: 10%; width: 50px; animation: cqd-drift 50s linear infinite reverse; }
@keyframes cqd-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes cqd-water { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cqd-hills { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes cqd-sway { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(0deg) } 50% { transform: translateX(4px) rotate(2deg) } 75% { transform: translateX(2px) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes cqd-reflect { 0% { opacity: 0.5; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.1); } 100% { opacity: 0.5; transform: scaleY(1); } }
@keyframes cqd-drift { 0% { transform: translateX(-80px) } 100% { transform: translateX(120vw) } }

.scn-quay-encounter-jasmine {
  background: linear-gradient(180deg, #2a2030 0%, #6a5040 60%, #905040 100%),
              radial-gradient(ellipse at 20% 90%, #c07040 0%, transparent 50%);
}
.scn-quay-encounter-jasmine .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3850 0%, #7a5840 100%);
  animation: qej-bg 8s ease-in-out infinite alternate;
}
.scn-quay-encounter-jasmine .woman {
  position: absolute; bottom: 15%; left: 35%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #1a1a28 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qej-figure 6s ease-in-out infinite;
}
.scn-quay-encounter-jasmine .hair {
  position: absolute; bottom: 65%; left: 33%; width: 70px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #2a2a1a 0%, #0a0a08 100%);
  border-radius: 50% 60% 30% 40% / 70% 80% 30% 20%;
  animation: qej-hair 5s ease-in-out infinite alternate;
}
.scn-quay-encounter-jasmine .jasmine {
  position: absolute; bottom: 70%; left: 45%; width: 14px; height: 14px;
  background: radial-gradient(circle, #fff8e0 0%, #f0d0a0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(240,208,160,0.5);
  animation: qej-jasmine 4s ease-in-out infinite alternate;
}
.scn-quay-encounter-jasmine .eye {
  position: absolute; bottom: 45%; left: 40%; width: 10px; height: 12px;
  background: radial-gradient(circle, #fff 0%, #4a3a2a 80%, #1a0a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(255,255,255,0.3);
  animation: qej-eye 3s ease-in-out infinite alternate;
}
.scn-quay-encounter-jasmine .mantilla {
  position: absolute; bottom: 30%; left: 30%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(20,20,30,0.8) 0%, transparent 100%);
  filter: blur(2px);
  transform: rotate(-10deg);
  animation: qej-mantilla 7s ease-in-out infinite alternate;
}
.scn-quay-encounter-jasmine .smoke {
  position: absolute; bottom: 55%; left: 55%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,200,220,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: qej-smoke 6s linear infinite;
}
@keyframes qej-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes qej-figure { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(5px) rotate(2deg); } 66% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes qej-hair { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes qej-jasmine { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.2); opacity: 1; box-shadow: 0 0 30px 10px rgba(240,208,160,0.7); } 100% { transform: scale(0.9); opacity: 0.9; } }
@keyframes qej-eye { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.3); } 100% { transform: scaleY(1); } }
@keyframes qej-mantilla { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(8px); } 100% { transform: rotate(-12deg) translateX(-3px); } }
@keyframes qej-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.3; } 100% { transform: translateY(-40px) scale(2); opacity: 0; } }

.scn-item-repeater-watch {
  background: linear-gradient(180deg, #2a2030 0%, #4a3840 50%, #6a5040 100%),
              radial-gradient(ellipse at 60% 20%, #b08040 0%, transparent 60%);
}
.scn-item-repeater-watch .bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3040 0%, #5a4840 100%);
  animation: irw-bg 10s ease-in-out infinite alternate;
}
.scn-item-repeater-watch .man {
  position: absolute; bottom: 15%; left: 25%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a1a28 0%, #0a0a14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: irw-man 8s ease-in-out infinite;
}
.scn-item-repeater-watch .woman {
  position: absolute; bottom: 15%; left: 50%; width: 36px; height: 90px;
  background: linear-gradient(180deg, #2a2a38 0%, #101018 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: irw-woman 7s ease-in-out infinite 0.5s;
}
.scn-item-repeater-watch .watch {
  position: absolute; bottom: 40%; left: 38%; width: 20px; height: 28px;
  background: radial-gradient(circle at 50% 40%, #d0a060 0%, #a07030 60%, #705020 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: irw-watch 3s ease-in-out infinite alternate;
}
.scn-item-repeater-watch .glow {
  position: absolute; bottom: 35%; left: 35%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: irw-glow 2s ease-in-out infinite alternate;
}
.scn-item-repeater-watch .hand {
  position: absolute; bottom: 25%; left: 32%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #c8b898 0%, #a08060 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: irw-hand 5s ease-in-out infinite alternate;
}
.scn-item-repeater-watch .star {
  position: absolute; width: 4px; height: 4px;
  background: white;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,200,0.5);
}
.scn-item-repeater-watch .s1 { top: 10%; left: 20%; animation: irw-twinkle 4s ease-in-out infinite; }
.scn-item-repeater-watch .s2 { top: 15%; right: 30%; animation: irw-twinkle 5s ease-in-out infinite 1s; }
@keyframes irw-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes irw-man { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes irw-woman { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes irw-watch { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); box-shadow: 0 6px 12px rgba(0,0,0,0.6); } 100% { transform: translateY(0) scale(1); } }
@keyframes irw-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.6; transform: scale(0.9); } }
@keyframes irw-hand { 0% { transform: rotate(20deg); } 50% { transform: rotate(35deg); } 100% { transform: rotate(20deg); } }
@keyframes irw-twinkle { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 1; transform: scale(1.4); } 100% { opacity: 0.4; transform: scale(0.8); } }

.scn-item-fortune-cards {
  background: linear-gradient(180deg, #1a1018 0%, #2a2028 50%, #3a2830 100%),
              radial-gradient(ellipse at 50% 60%, #4a3030 0%, transparent 70%);
}
.scn-item-fortune-cards .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2028 0%, #1a1418 100%);
  animation: ifc-bg 12s ease-in-out infinite alternate;
}
.scn-item-fortune-cards .table {
  position: absolute; bottom: 5%; left: 15%; right: 15%; height: 40%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: ifc-table 10s ease-in-out infinite alternate;
}
.scn-item-fortune-cards .candle {
  position: absolute; bottom: 45%; left: 45%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #f0d8a0 0%, #c0a070 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.4);
  animation: ifc-candle 6s ease-in-out infinite alternate;
}
.scn-item-fortune-cards .flame {
  position: absolute; bottom: 68%; left: 46%; width: 12px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #fff0c0 0%, #f0a030 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  filter: blur(1px);
  animation: ifc-flame 0.8s ease-in-out infinite alternate;
}
.scn-item-fortune-cards .deck {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #d0b890 0%, #a08060 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: ifc-deck 5s ease-in-out infinite alternate;
}
.scn-item-fortune-cards .spread {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 20px;
  background: repeating-linear-gradient(45deg, #c8a880 0px, #c8a880 4px, #e0c0a0 4px, #e0c0a0 8px);
  border-radius: 2px;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));
  animation: ifc-spread 7s ease-in-out infinite alternate;
}
.scn-item-fortune-cards .gypsy {
  position: absolute; bottom: 35%; left: 10%; width: 55px; height: 110px;
  background: linear-gradient(180deg, #3a2820 0%, #1a1008 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ifc-gypsy 9s ease-in-out infinite;
}
.scn-item-fortune-cards .shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.5) 100%);
  animation: ifc-shadow 8s ease-in-out infinite alternate;
}
@keyframes ifc-bg { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes ifc-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes ifc-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ifc-flame { 0% { transform: scaleY(0.9) translateY(0); opacity: 0.9; } 50% { transform: scaleY(1.2) translateY(-3px); opacity: 1; } 100% { transform: scaleY(1) translateY(-1px); opacity: 0.95; } }
@keyframes ifc-deck { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(4px); } 100% { transform: rotate(-6deg) translateX(-2px); } }
@keyframes ifc-spread { 0% { width: 60%; } 50% { width: 65%; } 100% { width: 58%; } }
@keyframes ifc-gypsy { 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 ifc-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.6; } }

.scn-don-jose-early-life {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #3a2a20 40%, #4a3a2e 100%),
    radial-gradient(ellipse at 30% 80%, #5a4a3e 0%, transparent 70%);
}
.scn-don-jose-early-life .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1410 0%, #2a1f1a 100%); animation: dje-bg 15s ease-in-out infinite alternate; }
.scn-don-jose-early-life .wall-left { position:absolute; left:0; top:0; width:20%; height:100%; background: linear-gradient(180deg, #3a2a20 0%, #2a1f1a 100%); border-right: 2px solid #4a3a2e; }
.scn-don-jose-early-life .wall-right { position:absolute; right:0; top:0; width:20%; height:100%; background: linear-gradient(180deg, #3a2a20 0%, #2a1f1a 100%); border-left: 2px solid #4a3a2e; }
.scn-don-jose-early-life .window { position:absolute; left:40%; top:10%; width:20%; height:30%; background: linear-gradient(180deg, #4a6a7a 0%, #6a8a9a 100%); border-radius: 4px 4px 4% 4%; box-shadow: inset 0 0 30px rgba(100,140,160,.3), 0 0 40px rgba(100,140,160,.1); animation: dje-window 20s ease-in-out infinite alternate; }
.scn-don-jose-early-life .table { position:absolute; bottom:20%; left:30%; width:40%; height:6%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 -2px 10px rgba(0,0,0,.4); animation: dje-table 12s ease-in-out infinite; }
.scn-don-jose-early-life .figure { position:absolute; bottom:22%; left:45%; width:12%; height:30%; background: linear-gradient(180deg, #2a1f1a 0%, #1a1410 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dje-figure 8s ease-in-out infinite; }
.scn-don-jose-early-life .book { position:absolute; bottom:22%; left:52%; width:8%; height:5%; background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: dje-book 10s ease-in-out infinite alternate; }
.scn-don-jose-early-life .candle { position:absolute; bottom:23%; left:40%; width:2%; height:10%; background: linear-gradient(180deg, #f0d0a0 0%, #d0b080 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 20px 8px #f0d0a0, 0 0 40px 16px rgba(240,208,160,.4); animation: dje-candle 4s ease-in-out infinite alternate; }
.scn-don-jose-early-life .cross { position:absolute; top:12%; left:55%; width:4%; height:10%; background: linear-gradient(180deg, #6a4a3a 0%, #4a3a2a 100%); border-radius: 2px; transform: rotate(0deg); animation: dje-cross 25s ease-in-out infinite; }
@keyframes dje-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dje-window { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:.7; transform: scale(.98) } }
@keyframes dje-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes dje-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(1%) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-1%) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dje-book { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(3deg) scale(1.05) } 100% { transform: rotate(-2deg) scale(1) } }
@keyframes dje-candle { 0%,100% { transform: scale(1) translateY(0); opacity:.8 } 50% { transform: scale(1.1) translateY(-2%); opacity:1 } }
@keyframes dje-cross { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }

.scn-carmen-first-meeting {
  background: 
    linear-gradient(180deg, #f5e8d0 0%, #e0d0b8 60%, #c8b8a0 100%),
    radial-gradient(ellipse at 70% 20%, #fff5e0 0%, transparent 50%);
}
.scn-carmen-first-meeting .bg { position:absolute; inset:0; background: linear-gradient(135deg, #f0e0c8 0%, #d8c8b0 100%); animation: cfm-bg 10s ease-in-out infinite alternate; }
.scn-carmen-first-meeting .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #a09070 0%, #887858 100%); border-radius: 10% 10% 0 0; }
.scn-carmen-first-meeting .group-figures { position:absolute; bottom:15%; left:20%; width:25%; height:60%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 40% 40% 20% 20%; box-shadow: -10px 0 20px rgba(0,0,0,.3); animation: cfm-group 6s ease-in-out infinite alternate; }
.scn-carmen-first-meeting .figure-don { position:absolute; bottom:15%; left:42%; width:10%; height:55%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cfm-don 4s ease-in-out infinite; }
.scn-carmen-first-meeting .figure-carmen { position:absolute; bottom:20%; right:20%; width:18%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 30px rgba(200,80,60,.3); animation: cfm-carmen 5s ease-in-out infinite; }
.scn-carmen-first-meeting .figure-carmen::after { content:''; position:absolute; bottom:20%; left:30%; width:50%; height:40%; background: #c8553d; border-radius: 50% 50% 20% 20%; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); } /* skirt, terracotta */
.scn-carmen-first-meeting .acacia-blossom { position:absolute; bottom:55%; right:30%; width:4%; height:4%; background: radial-gradient(circle, #f0d080 0%, #d0a060 100%); border-radius: 50%; box-shadow: 0 0 10px 2px #f0d080; animation: cfm-blossom 3s ease-in-out infinite; }
.scn-carmen-first-meeting .light-source { position:absolute; top:5%; left:50%; width:30%; height:20%; background: radial-gradient(ellipse, #fff8e0 0%, transparent 70%); border-radius: 50%; animation: cfm-light 9s ease-in-out infinite alternate; }
.scn-carmen-first-meeting .shadow { position:absolute; bottom:15%; left:30%; width:50%; height:70%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.15) 100%); border-radius: 50%; filter: blur(10px); animation: cfm-shadow 7s ease-in-out infinite; }
@keyframes cfm-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes cfm-group { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(-3%) scale(1.02) } }
@keyframes cfm-don { 0% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(-3deg) translateY(-2%) } 60% { transform: rotate(2deg) translateY(1%) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes cfm-carmen { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2%) rotate(3deg) } }
@keyframes cfm-blossom { 0%,100% { transform: translate(0,0) scale(1) } 50% { transform: translate(5%,-10%) scale(1.3) } }
@keyframes cfm-light { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(.95) } }
@keyframes cfm-shadow { 0%,100% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.05) } }

.scn-item-acacia-blossom {
  background: 
    linear-gradient(180deg, #f0e0c0 0%, #e0d0b0 50%, #c8b090 100%),
    radial-gradient(ellipse at 60% 50%, #fff5e0 0%, transparent 80%);
}
.scn-item-acacia-blossom .bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 100%); animation: iab-bg 12s ease-in-out infinite alternate; }
.scn-item-acacia-blossom .figure-don { position:absolute; bottom:20%; left:30%; width:20%; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 60% 60% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: iab-don 5s ease-in-out infinite; }
.scn-item-acacia-blossom .hand { position:absolute; bottom:30%; left:38%; width:6%; height:8%; background: linear-gradient(180deg, #c8b090 0%, #a09070 100%); border-radius: 50% 50% 30% 30%; animation: iab-hand 3s ease-in-out infinite; }
.scn-item-acacia-blossom .acacia-blossom { position:absolute; bottom:50%; left:42%; width:4%; height:4%; background: radial-gradient(circle, #f0d080 0%, #d0a060 100%); border-radius: 50%; box-shadow: 0 0 12px 3px #f0d080; animation: iab-blossom 2.5s ease-in-out infinite; }
.scn-item-acacia-blossom .jacket { position:absolute; bottom:25%; left:55%; width:14%; height:20%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 15px rgba(0,0,0,.4); animation: iab-jacket 8s ease-in-out infinite alternate; }
.scn-item-acacia-blossom .light-spot { position:absolute; top:20%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse, #fff5e0 0%, transparent 70%); border-radius: 50%; animation: iab-light 4s ease-in-out infinite alternate; }
.scn-item-acacia-blossom .table-edge { position:absolute; bottom:18%; left:20%; width:60%; height:3%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 2px; animation: iab-table 6s ease-in-out infinite; }
@keyframes iab-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes iab-don { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2%) rotate(-2deg) } }
@keyframes iab-hand { 0%,100% { transform: translate(0,0) scale(1) } 50% { transform: translate(10%,-5%) scale(1.2) } }
@keyframes iab-blossom { 0% { transform: translate(0,0) scale(1); opacity:1 } 30% { transform: translate(20%,-30%) scale(1.4); opacity:.8 } 60% { transform: translate(10%,-15%) scale(1.1); opacity:1 } 100% { transform: translate(0,0) scale(1); opacity:.9 } }
@keyframes iab-jacket { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes iab-light { 0% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.6; transform: scale(.9) } }
@keyframes iab-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

.scn-carmen-arrested {
  background: 
    linear-gradient(180deg, #f5e8d0 0%, #e0d0b8 50%, #c8b8a0 100%),
    radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 60%);
}
.scn-carmen-arrested .bg { position:absolute; inset:0; background: linear-gradient(180deg, #f0e0c8 0%, #d8c8b0 100%); animation: ca-bg 14s ease-in-out infinite alternate; }
.scn-carmen-arrested .floor { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #a09070 0%, #887858 100%); border-radius: 10% 10% 0 0; }
.scn-carmen-arrested .comrades { position:absolute; bottom:10%; left:20%; width:60%; height:70%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 30% 30% 20% 20%; clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); animation: ca-comrades 5s ease-in-out infinite alternate; }
.scn-carmen-arrested .figure-carmen { position:absolute; bottom:15%; left:42%; width:16%; height:55%; background: linear-gradient(180deg, #4a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: ca-carmen 4s ease-in-out infinite; }
.scn-carmen-arrested .figure-carmen::after { content:''; position:absolute; top:10%; left:30%; width:40%; height:20%; background: #c8553d; border-radius: 50%; clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 40% 100%); } /* mantilla showing one eye? abstract */
.scn-carmen-arrested .figure-don { position:absolute; bottom:12%; right:25%; width:12%; height:60%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ca-don 6s ease-in-out infinite; }
.scn-carmen-arrested .knife { position:absolute; bottom:30%; left:60%; width:2%; height:20%; background: linear-gradient(180deg, #8a8a8a 0%, #6a6a6a 100%); border-radius: 2px 2px 0 0; transform: rotate(-45deg); animation: ca-knife 3s ease-in-out infinite; }
.scn-carmen-arrested .mantilla-shadow { position:absolute; bottom:15%; left:40%; width:20%; height:50%; background: radial-gradient(ellipse at 50% 30%, rgba(0,0,0,.3) 0%, transparent 70%); filter: blur(8px); animation: ca-shadow 7s ease-in-out infinite; }
.scn-carmen-arrested .light-shaft { position:absolute; top:0; left:35%; width:30%; height:100%; background: linear-gradient(180deg, rgba(255,248,224,.3) 0%, transparent 80%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: ca-shaft 9s ease-in-out infinite alternate; }
@keyframes ca-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ca-comrades { 0%,100% { transform: scale(1) translateX(0) } 50% { transform: scale(1.02) translateX(-2%) } }
@keyframes ca-carmen { 0% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(2deg) translateY(-2%) } 60% { transform: rotate(-1deg) translateY(1%) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes ca-don { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3%) rotate(2deg) } }
@keyframes ca-knife { 0%,100% { transform: rotate(-45deg) scale(1) } 50% { transform: rotate(-40deg) scale(1.1) } }
@keyframes ca-shadow { 0%,100% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.1) } }
@keyframes ca-shaft { 0% { opacity:.3; transform: translateX(0) } 50% { opacity:.6; transform: translateX(5%) } 100% { opacity:.2; transform: translateX(-5%) } }

/* ----- balcony-encounter-gibraltar (be) ----- */
.scn-balcony-encounter-gibraltar {
  background: linear-gradient(180deg, #f5e6d3 0%, #d4b896 40%, #b89b7a 100%),
              radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 60%);
}
.scn-balcony-encounter-gibraltar .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8d5c0 0%, #c9b5a0 100%);
  animation: be-wall 12s ease-in-out infinite alternate;
}
.scn-balcony-encounter-gibraltar .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #a08060 0%, #7a6048 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: be-floor 16s ease-in-out infinite alternate;
}
.scn-balcony-encounter-gibraltar .balcony-door {
  position: absolute; bottom: 35%; left: 30%; width: 40%; height: 50%;
  background: #c0a080;
  border: 6px solid #8a6a4a;
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.4), 0 4px 8px rgba(0,0,0,0.5);
  animation: be-door 14s ease-in-out infinite;
}
.scn-balcony-encounter-gibraltar .curtain-l {
  position: absolute; bottom: 35%; left: 25%; width: 12%; height: 55%;
  background: linear-gradient(90deg, #d4a080 0%, #b08060 100%);
  border-radius: 0 30% 30% 0 / 0 20% 20% 0;
  box-shadow: -2px 0 6px rgba(0,0,0,0.3);
  animation: be-curtain-l 8s ease-in-out infinite alternate;
}
.scn-balcony-encounter-gibraltar .curtain-r {
  position: absolute; bottom: 35%; right: 25%; width: 12%; height: 55%;
  background: linear-gradient(270deg, #d4a080 0%, #b08060 100%);
  border-radius: 30% 0 0 30% / 20% 0 0 20%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: be-curtain-r 8s ease-in-out infinite alternate;
}
.scn-balcony-encounter-gibraltar .figure-carmen {
  position: absolute; bottom: 35%; left: 48%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: be-carmen 6s ease-in-out infinite;
}
.scn-balcony-encounter-gibraltar .figure-narrator {
  position: absolute; bottom: 35%; left: 20%; width: 9%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: be-narrator 8s ease-in-out infinite;
}
.scn-balcony-encounter-gibraltar .light-beam {
  position: absolute; top: 10%; left: 28%; width: 44%; height: 60%;
  background: radial-gradient(ellipse at center bottom, rgba(255,255,220,0.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: be-light 5s ease-in-out infinite alternate;
}
@keyframes be-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes be-floor { 0% { background-position: 0 0; } 100% { background-position: 2% 0; } }
@keyframes be-door { 0%,100% { box-shadow: inset 0 0 20px rgba(255,255,200,0.4), 0 4px 8px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 30px rgba(255,255,200,0.6), 0 6px 12px rgba(0,0,0,0.6); } }
@keyframes be-curtain-l { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(-3px) rotate(2deg); } }
@keyframes be-curtain-r { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(3px) rotate(-2deg); } }
@keyframes be-carmen { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes be-narrator { 0%,100% { transform: translateX(0); } 50% { transform: translateX(5px) rotate(-1deg); } }
@keyframes be-light { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.5; transform: scaleY(1.1); } 100% { opacity: 0.2; transform: scaleY(0.9); } }

/* ----- item-englishmans-ring (ir) ----- */
.scn-item-englishmans-ring {
  background: linear-gradient(180deg, #fff3e0 0%, #ffd9b3 40%, #e6b88a 100%),
              radial-gradient(ellipse at 50% 100%, #ffe0b0 0%, transparent 70%);
}
.scn-item-englishmans-ring .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffe8cc 0%, #f0c8a0 100%);
  animation: ir-wall 10s ease-in-out infinite alternate;
}
.scn-item-englishmans-ring .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.2);
}
.scn-item-englishmans-ring .sofa {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #d4553d 0%, #b04530 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3), inset 0 4px 10px rgba(255,255,255,0.2);
  animation: ir-sofa 8s ease-in-out infinite;
}
.scn-item-englishmans-ring .figure-collapsed {
  position: absolute; bottom: 24%; left: 35%; width: 20%; height: 18%;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a2218 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  transform: rotate(30deg);
  animation: ir-collapse 2s ease-in-out infinite;
}
.scn-item-englishmans-ring .table {
  position: absolute; bottom: 15%; left: 55%; width: 15%; height: 12%;
  background: linear-gradient(180deg, #8a6a48 0%, #5a4028 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-item-englishmans-ring .ring {
  position: absolute; bottom: 20%; left: 58%; width: 6%; height: 5%;
  background: radial-gradient(circle, #fce4a0 0%, #d4a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(212,160,64,0.6);
  animation: ir-ring 1.5s ease-in-out infinite alternate;
}
.scn-item-englishmans-ring .figure-laughing {
  position: absolute; bottom: 26%; right: 18%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ir-laugh 3s ease-in-out infinite;
}
@keyframes ir-wall { 0% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes ir-sofa { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02, 0.98); } }
@keyframes ir-collapse { 0%,100% { transform: rotate(30deg) scale(1); } 50% { transform: rotate(35deg) scale(1.05, 0.95); } }
@keyframes ir-ring { 0% { box-shadow: 0 0 20px 6px rgba(212,160,64,0.6); transform: scale(1); } 100% { box-shadow: 0 0 30px 10px rgba(255,200,80,0.8); transform: scale(1.2) rotate(15deg); } }
@keyframes ir-laugh { 0%,100% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(5deg); } 75% { transform: translateY(-2px) rotate(0deg); } }

/* ----- gibraltar-rage-return (gr) ----- */
.scn-gibraltar-rage-return {
  background: linear-gradient(180deg, #c8b08a 0%, #a88866 40%, #806848 100%),
              radial-gradient(ellipse at 30% 70%, #ffd9b3 0%, transparent 60%);
}
.scn-gibraltar-rage-return .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d9c0a5 0%, #b89b80 100%);
  animation: gr-wall 10s ease-in-out infinite alternate;
}
.scn-gibraltar-rage-return .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #806848 0%, #604830 100%);
  box-shadow: inset 0 6px 16px rgba(0,0,0,0.4);
}
.scn-gibraltar-rage-return .table {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 22%;
  background: linear-gradient(180deg, #8a6a48 0%, #5a4028 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-gibraltar-rage-return .coin {
  position: absolute; bottom: 24%; left: 44%; width: 8%; height: 3%;
  background: radial-gradient(ellipse, #fce4a0 0%, #c8a040 80%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: gr-coin 3s ease-in-out infinite alternate;
}
.scn-gibraltar-rage-return .figure-left {
  position: absolute; bottom: 18%; left: 15%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gr-left 5s ease-in-out infinite;
}
.scn-gibraltar-rage-return .figure-right {
  position: absolute; bottom: 18%; right: 15%; width: 13%; height: 36%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gr-right 5s ease-in-out infinite reverse;
}
.scn-gibraltar-rage-return .door {
  position: absolute; bottom: 18%; left: 70%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #6a5038 0%, #4a3420 100%);
  border: 4px solid #3a2410;
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5), 0 4px 8px rgba(0,0,0,0.3);
  animation: gr-door 12s ease-in-out infinite;
}
@keyframes gr-wall { 0% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes gr-coin { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gr-left { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(1px) rotate(1deg); } }
@keyframes gr-right { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes gr-door { 0%,100% { box-shadow: inset 0 0 10px rgba(0,0,0,0.5), 0 4px 8px rgba(0,0,0,0.3); } 50% { box-shadow: inset 0 0 15px rgba(0,0,0,0.6), 0 6px 12px rgba(0,0,0,0.4); } }

/* ----- carmen-plot-englishman (cp) ----- */
.scn-carmen-plot-englishman {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #1c1a2e 100%),
              radial-gradient(ellipse at 50% 0%, #4a3a6e 0%, transparent 70%);
}
.scn-carmen-plot-englishman .bg-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.3) 50%, rgba(0,0,0,0.7) 100%);
  animation: cp-shadow 15s ease-in-out infinite alternate;
}
.scn-carmen-plot-englishman .window-frame {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 50%;
  background: #1a1a2a;
  border: 8px solid #3a3a5a;
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 40px rgba(100,120,255,0.2);
  animation: cp-window 12s ease-in-out infinite;
}
.scn-carmen-plot-englishman .curtain-l {
  position: absolute; top: 10%; left: 15%; width: 14%; height: 55%;
  background: linear-gradient(90deg, #4a2a3a 0%, #2a1a2a 100%);
  border-radius: 0 40% 40% 0 / 0 20% 20% 0;
  box-shadow: -2px 0 8px rgba(0,0,0,0.5);
  animation: cp-curtain-l 7s ease-in-out infinite alternate;
}
.scn-carmen-plot-englishman .curtain-r {
  position: absolute; top: 10%; right: 15%; width: 14%; height: 55%;
  background: linear-gradient(270deg, #4a2a3a 0%, #2a1a2a 100%);
  border-radius: 40% 0 0 40% / 20% 0 0 20%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.5);
  animation: cp-curtain-r 7s ease-in-out infinite alternate;
}
.scn-carmen-plot-englishman .figure-carmen {
  position: absolute; bottom: 25%; left: 42%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a2218 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cp-carmen 4s ease-in-out infinite;
}
.scn-carmen-plot-englishman .figure-narrator {
  position: absolute; bottom: 20%; left: 25%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-narrator 6s ease-in-out infinite;
}
.scn-carmen-plot-englishman .moon-glow {
  position: absolute; top: 12%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at center, rgba(180,200,255,0.1) 0%, transparent 70%);
  filter: blur(30px);
  animation: cp-moon 20s ease-in-out infinite alternate;
}
@keyframes cp-shadow { 0% { opacity: 0.7; } 50% { opacity: 0.5; } 100% { opacity: 0.8; } }
@keyframes cp-window { 0%,100% { box-shadow: inset 0 0 40px rgba(100,120,255,0.2); } 50% { box-shadow: inset 0 0 60px rgba(100,120,255,0.3); } }
@keyframes cp-curtain-l { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cp-curtain-r { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cp-carmen { 0%,100% { 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); } }
@keyframes cp-narrator { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-2px) rotate(0.5deg); } }
@keyframes cp-moon { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.5; transform: scale(1.1); } 100% { opacity: 0.2; transform: scale(1); } }

.scn-cloaked-man-bursts-in {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 70%, #2a1a0a 0%, transparent 65%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.7);
}
.scn-cloaked-man-bursts-in .wall-bg {
  position:absolute; inset:0 0 28% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #12111e 100%);
  animation: cmb-wall 10s ease-in-out infinite alternate;
}
.scn-cloaked-man-bursts-in .floor {
  position:absolute; bottom:0; left:0; right:0; height:28%;
  background: linear-gradient(0deg, #1c1520 0%, #2a1e2a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,.5);
}
.scn-cloaked-man-bursts-in .doorway {
  position:absolute; bottom:28%; left:10%; width:25%; height:55%;
  background: #0a0a0f;
  border-radius: 0 0 10% 10% / 0 0 15% 15%;
  box-shadow: 0 0 0 3px #2a1a0a;
  animation: cmb-door 8s ease-in-out infinite;
}
.scn-cloaked-man-bursts-in .candle {
  position:absolute; bottom:32%; left:50%; width:8px; height:16px;
  background: radial-gradient(ellipse at 50% 20%, #f0c068 0%, #b08040 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,.4);
  animation: cmb-candle 3s ease-in-out infinite alternate;
}
.scn-cloaked-man-bursts-in .cloaked-figure {
  position:absolute; bottom:28%; left:5%; width:16%; height:60%;
  background: linear-gradient(180deg, #1c1c28 0%, #0c0c14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 25% 25%;
  transform-origin: bottom center;
  animation: cmb-burst 1.8s ease-out forwards, cmb-sway 4s ease-in-out infinite 1.8s;
}
.scn-cloaked-man-bursts-in .don-jose-figure {
  position:absolute; bottom:28%; right:20%; width:14%; height:55%;
  background: linear-gradient(180deg, #1c1c28 0%, #0c0c14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 25% 25%;
  animation: cmb-stepback 2s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-cloaked-man-bursts-in .shadow-door {
  position:absolute; bottom:28%; left:12%; width:20%; height:50%;
  background: rgba(0,0,0,.5); filter: blur(10px);
  animation: cmb-shadow 3s ease-in-out infinite alternate;
}
@keyframes cmb-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes cmb-door { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02,1.01) } }
@keyframes cmb-candle { 0% { box-shadow: 0 0 12px 4px #b08040, 0 0 30px 8px rgba(176,128,64,.3); opacity:.85 } 50% { box-shadow: 0 0 26px 8px #f0c068, 0 0 48px 14px rgba(240,192,104,.5); opacity:1 } 100% { box-shadow: 0 0 18px 5px #b08040, 0 0 35px 10px rgba(176,128,64,.35); opacity:.9 } }
@keyframes cmb-burst { 0% { transform: translateX(-80px) rotate(-8deg); opacity:.3 } 50% { transform: translateX(-10px) rotate(0); opacity:1 } 100% { transform: translateX(0) rotate(0); opacity:.95 } }
@keyframes cmb-sway { 0%,100% { transform: rotate(0) } 50% { transform: rotate(3deg) } }
@keyframes cmb-stepback { 0% { transform: translateX(0) } 50% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(0) } }
@keyframes cmb-shadow { 0%,100% { opacity:.3; transform: scaleX(1) } 50% { opacity:.55; transform: scaleX(1.15) } }

.scn-watch-stolen-returned {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #141428 40%, #1a1a30 100%),
    radial-gradient(ellipse at 50% 30%, #2c2c4a 0%, transparent 70%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.8);
}
.scn-watch-stolen-returned .room-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #0f0f20 0%, #181828 100%);
  animation: wsr-wall 12s ease-in-out infinite alternate;
}
.scn-watch-stolen-returned .window-moon {
  position:absolute; top:5%; left:35%; width:30%; height:40%;
  background: radial-gradient(circle at 50% 30%, #e8e4ff 0%, #c8c0f0 40%, transparent 60%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(200,192,240,.3), 0 0 60px 18px rgba(200,192,240,.1);
  animation: wsr-moon 6s ease-in-out infinite alternate;
}
.scn-watch-stolen-returned .bed {
  position:absolute; bottom:30%; left:20%; width:60%; height:25%;
  background: linear-gradient(0deg, #1a1a22 0%, #242430 100%);
  border-radius: 20% 20% 5% 5% / 40% 40% 10% 10%;
  box-shadow: 0 -4px 10px rgba(0,0,0,.6);
}
.scn-watch-stolen-returned .man-figure {
  position:absolute; bottom:38%; left:30%; width:12%; height:45%;
  background: linear-gradient(180deg, #1c1c2a 0%, #0c0c18 100%);
  border-radius: 40% 30% 30% 40% / 50% 40% 30% 30%;
  animation: wsr-man 4s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-watch-stolen-returned .candle-desk {
  position:absolute; bottom:45%; left:52%; width:18%; height:10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
}
.scn-watch-stolen-returned .candle-desk::after {
  content:''; position:absolute; top:-80%; left:40%; width:6px; height:10px;
  background: radial-gradient(ellipse at 50% 30%, #f0c068 0%, #b08040 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 12px 4px #b08040, 0 0 24px 8px rgba(176,128,64,.3);
  animation: wsr-candle 2.5s ease-in-out infinite alternate;
}
.scn-watch-stolen-returned .watch-shadow {
  position:absolute; bottom:36%; left:44%; width:8%; height:8%;
  background: radial-gradient(circle, rgba(200,180,140,.15) 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,180,140,.1);
  animation: wsr-watch 3s ease-in-out infinite;
}
@keyframes wsr-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes wsr-moon { 0% { box-shadow: 0 0 20px 4px rgba(200,192,240,.2); opacity:.7 } 50% { box-shadow: 0 0 40px 12px rgba(200,192,240,.4); opacity:1 } 100% { box-shadow: 0 0 25px 6px rgba(200,192,240,.25); opacity:.8 } }
@keyframes wsr-man { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes wsr-candle { 0% { opacity:.8; box-shadow: 0 0 8px 2px #b08040 } 50% { opacity:1; box-shadow: 0 0 16px 6px #f0c068 } 100% { opacity:.9; box-shadow: 0 0 10px 3px #b08040 } }
@keyframes wsr-watch { 0%,100% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.3) } }

.scn-monk-tells-of-thief {
  background: 
    linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 40%, #c8b898 100%),
    radial-gradient(ellipse at 50% 40%, #fff8e8 0%, transparent 60%);
  box-shadow: inset 0 0 20px rgba(0,0,0,.1);
}
.scn-monk-tells-of-thief .monastery-wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #e8d8c0 0%, #d0c0a8 100%);
  animation: mtt-wall 15s ease-in-out infinite alternate;
}
.scn-monk-tells-of-thief .window-light {
  position:absolute; top:8%; left:60%; width:20%; height:35%;
  background: radial-gradient(ellipse at 50% 30%, #f5f0e0 0%, #e0d4b0 50%, transparent 70%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 30px rgba(255,240,200,.4), 0 0 40px 10px rgba(240,224,180,.2);
  animation: mtt-window 8s ease-in-out infinite alternate;
}
.scn-monk-tells-of-thief .table {
  position:absolute; bottom:25%; left:30%; width:40%; height:12%;
  background: linear-gradient(0deg, #5a4030 0%, #7a5a40 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
}
.scn-monk-tells-of-thief .monk-figure {
  position:absolute; bottom:25%; left:20%; width:15%; height:60%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 25% 25%;
  animation: mtt-monk 4s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-monk-tells-of-thief .visitante-figure {
  position:absolute; bottom:25%; right:25%; width:14%; height:55%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 25% 25%;
  animation: mtt-visit 6s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-monk-tells-of-thief .crucifix {
  position:absolute; bottom:45%; left:48%; width:4%; height:20%;
  background: #3a2a1a;
  border-radius: 10%;
  box-shadow: 0 0 4px rgba(0,0,0,.3);
  animation: mtt-cross 5s ease-in-out infinite;
}
.scn-monk-tells-of-thief .crucifix::after {
  content:''; position:absolute; top:20%; left:-30%; width:160%; height:20%;
  background: #3a2a1a;
  border-radius: 10%;
}
@keyframes mtt-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes mtt-window { 0% { opacity:.7; box-shadow: none } 50% { opacity:1; box-shadow: 0 0 30px 8px rgba(240,224,180,.3) } 100% { opacity:.8; box-shadow: 0 0 15px 4px rgba(240,224,180,.15) } }
@keyframes mtt-monk { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes mtt-visit { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mtt-cross { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }

.scn-don-jose-cigars-mass {
  background: 
    linear-gradient(180deg, #0c0a0a 0%, #1a1210 40%, #0c0a0a 100%),
    radial-gradient(ellipse at 50% 60%, #2a1810 0%, transparent 70%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.9);
}
.scn-don-jose-cigars-mass .cell-wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #1a1210 0%, #120c0a 100%);
  animation: djcm-wall 14s ease-in-out infinite alternate;
}
.scn-don-jose-cigars-mass .cell-bars {
  position:absolute; inset:0; 
  background: repeating-linear-gradient(90deg, transparent 0, transparent 10px, #0a0a0a 10px, #0a0a0a 12px, transparent 12px, transparent 22px);
  animation: djcm-bars 6s ease-in-out infinite alternate;
}
.scn-don-jose-cigars-mass .candle-altar {
  position:absolute; bottom:20%; left:30%; width:20%; height:16%;
  background: linear-gradient(0deg, #2a1a0a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-don-jose-cigars-mass .candle-altar::after {
  content:''; position:absolute; top:-40%; left:35%; width:8px; height:14px;
  background: radial-gradient(ellipse at 50% 20%, #f0c068 0%, #b08040 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 14px 4px #b08040, 0 0 28px 8px rgba(176,128,64,.3);
  animation: djcm-candle 3.5s ease-in-out infinite alternate;
}
.scn-don-jose-cigars-mass .don-jose-silhouette {
  position:absolute; bottom:20%; left:55%; width:15%; height:60%;
  background: linear-gradient(180deg, #1c1410 0%, #0c0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 25% 25%;
  animation: djcm-don 5s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-don-jose-cigars-mass .cigars {
  position:absolute; bottom:28%; left:32%; width:12%; height:4%;
  background: #3a2a1a;
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: djcm-cigar 3s ease-in-out infinite;
}
.scn-don-jose-cigars-mass .cigars::before {
  content:''; position:absolute; top:-50%; left:20%; width:60%; height:3px;
  background: #2a1a0a;
  border-radius: 50%;
}
.scn-don-jose-cigars-mass .mass-candle {
  position:absolute; bottom:20%; left:70%; width:8px; height:20px;
  background: radial-gradient(ellipse at 50% 20%, #f0d080 0%, #c0a050 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 16px 4px #c0a050, 0 0 32px 10px rgba(192,160,80,.3);
  animation: djcm-mass 4s ease-in-out infinite alternate;
}
@keyframes djcm-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes djcm-bars { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes djcm-candle { 0% { box-shadow: 0 0 8px 2px #b08040; opacity:.8 } 50% { box-shadow: 0 0 20px 6px #f0c068; opacity:1 } 100% { box-shadow: 0 0 12px 3px #b08040; opacity:.9 } }
@keyframes djcm-don { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-1deg) } }
@keyframes djcm-cigar { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) } }
@keyframes djcm-mass { 0% { box-shadow: 0 0 10px 2px #c0a050; opacity:.7 } 50% { box-shadow: 0 0 24px 8px #f0d080; opacity:1 } 100% { box-shadow: 0 0 14px 4px #c0a050; opacity:.8 } }

/* scene 1: lieutenant-swording */
.scn-lieutenant-swording {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e05 100%), radial-gradient(ellipse at 50% 80%, #3a2010 0%, transparent 70%);
}
.scn-lieutenant-swording .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
  animation: ls-wall 8s ease-in-out infinite alternate;
}
.scn-lieutenant-swording .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0a00 0%, #0e0500 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-lieutenant-swording .lamp {
  position: absolute; bottom: 45%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 20%, #e0b060 0%, #804020 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 40px 15px #c08040, 0 0 80px 30px rgba(192,128,64,.3);
  animation: ls-lamp 6s ease-in-out infinite alternate;
}
.scn-lieutenant-swording .figure-narrator {
  position: absolute; bottom: 28%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ls-narrator 3s ease-in-out infinite;
}
.scn-lieutenant-swording .figure-narrator::after {
  content: '';
  position: absolute; top: -10px; left: 20px; width: 30px; height: 4px;
  background: linear-gradient(90deg, #6a5a4a 0%, transparent 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  animation: ls-sword 1.5s ease-in-out infinite;
}
.scn-lieutenant-swording .figure-lieutenant {
  position: absolute; bottom: 28%; left: 55%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 50% 60% 30% 40%;
  animation: ls-lieutenant 2s ease-in-out infinite;
}
.scn-lieutenant-swording .blood {
  position: absolute; bottom: 38%; left: 52%; width: 6px; height: 6px;
  background: radial-gradient(circle, #6a1a1a 0%, #2a0a0a 100%);
  border-radius: 50%;
  opacity: 0;
  animation: ls-blood 2s 0.5s ease-in-out infinite;
}
@keyframes ls-wall {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes ls-lamp {
  0% { box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,.3); opacity: .9; transform: translateX(-50%) scale(1); }
  50% { box-shadow: 0 0 60px 25px #ffd060, 0 0 100px 40px rgba(255,208,96,.5); opacity: 1; transform: translateX(-50%) scale(1.05); }
  100% { box-shadow: 0 0 10px 2px #804020, 0 0 20px 5px rgba(128,64,32,.1); opacity: .3; transform: translateX(-50%) scale(.95); }
}
@keyframes ls-narrator {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-3px) rotate(-3deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(3px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ls-sword {
  0% { transform: rotate(-30deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(8px); }
  100% { transform: rotate(-30deg) translateX(0); }
}
@keyframes ls-lieutenant {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(4px) rotate(-5deg); }
  60% { transform: translateX(-2px) rotate(2deg) scaleY(.95); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ls-blood {
  0% { opacity: 0; transform: scale(0); }
  30% { opacity: 1; transform: scale(1.5); }
  60% { opacity: .8; transform: scale(1.2); }
  100% { opacity: 0; transform: scale(.5); }
}

/* scene 2: join-smugglers-plan */
.scn-join-smugglers-plan {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #1e1410 0%, #140a06 100%), radial-gradient(ellipse at 50% 70%, #2a1a10 0%, transparent 70%);
}
.scn-join-smugglers-plan .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e05 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
  animation: js-wall 10s ease-in-out infinite alternate;
}
.scn-join-smugglers-plan .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #140a00 0%, #0a0500 100%);
}
.scn-join-smugglers-plan .bed {
  position: absolute; bottom: 22%; left: 30%; width: 35%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: js-bed 8s ease-in-out infinite;
}
.scn-join-smugglers-plan .pillow {
  position: absolute; bottom: 40%; left: 35%; width: 25%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.3);
  animation: js-pillow 6s ease-in-out infinite alternate;
}
.scn-join-smugglers-plan .figure-lying {
  position: absolute; bottom: 28%; left: 35%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 45% 45% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: js-lying 4s ease-in-out infinite;
}
.scn-join-smugglers-plan .figure-standing {
  position: absolute; bottom: 22%; left: 60%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: js-standing 5s ease-in-out infinite;
}
.scn-join-smugglers-plan .table {
  position: absolute; bottom: 18%; left: 60%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-join-smugglers-plan .bottle {
  position: absolute; bottom: 22%; left: 66%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: js-bottle 3s ease-in-out infinite alternate;
}
@keyframes js-wall {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes js-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes js-pillow {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes js-lying {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(2px) rotate(3deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-2px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes js-standing {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(4px) rotate(-2deg) scaleY(1.02); }
  60% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes js-bottle {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(1px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0); }
}

/* scene 3: smuggler-life-garcia-news */
.scn-smuggler-life-garcia-news {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0e14 40%, #0a0a0a 100%), radial-gradient(ellipse at 50% 20%, #1a1a3a 0%, transparent 70%);
}
.scn-smuggler-life-garcia-news .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  animation: sl-sky 20s ease-in-out infinite alternate;
}
.scn-smuggler-life-garcia-news .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.8);
}
.scn-smuggler-life-garcia-news .campfire {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 60%, #c06020 0%, #402010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px 10px #c06020, 0 0 60px 20px rgba(192,96,32,.3);
  animation: sl-fire 1.5s ease-in-out infinite alternate;
}
.scn-smuggler-life-garcia-news .fire-glow {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e08040 0%, transparent 70%);
  opacity: .4;
  animation: sl-glow 2s ease-in-out infinite alternate;
}
.scn-smuggler-life-garcia-news .figure-sitting {
  position: absolute; bottom: 26%; left: 40%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sl-sit 6s ease-in-out infinite;
}
.scn-smuggler-life-garcia-news .figure-carmen {
  position: absolute; bottom: 24%; left: 65%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  animation: sl-carmen 7s ease-in-out infinite;
}
.scn-smuggler-life-garcia-news .rock-a {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.5);
  animation: sl-rock-a 12s ease-in-out infinite;
}
.scn-smuggler-life-garcia-news .rock-b {
  position: absolute; bottom: 22%; left: 70%; width: 20px; height: 15px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  box-shadow: inset 0 -3px 6px rgba(0,0,0,.4);
  animation: sl-rock-b 15s ease-in-out infinite reverse;
}
@keyframes sl-sky {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .6; }
}
@keyframes sl-fire {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 20px 5px #c06020, 0 0 40px 10px rgba(192,96,32,.2); }
  50% { transform: translateX(-50%) scale(1.15); box-shadow: 0 0 40px 15px #e08040, 0 0 80px 30px rgba(224,128,64,.4); }
  100% { transform: translateX(-50%) scale(.95); box-shadow: 0 0 15px 3px #a05020, 0 0 30px 8px rgba(160,80,32,.2); }
}
@keyframes sl-glow {
  0% { opacity: .3; transform: translateX(-50%) scale(1); }
  50% { opacity: .5; transform: translateX(-50%) scale(1.2); }
  100% { opacity: .3; transform: translateX(-50%) scale(1); }
}
@keyframes sl-sit {
  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 sl-carmen {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(4px) rotate(3deg); }
  60% { transform: translateX(-2px) rotate(-1deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes sl-rock-a {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sl-rock-b {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}

/* scene 4: garcia-arrival-chase */
.scn-garcia-arrival-chase {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #7aaad4 0%, #b0d4f0 60%, #e8d8b0 100%), radial-gradient(ellipse at 50% 0%, #d4e8f0 0%, transparent 60%);
}
.scn-garcia-arrival-chase .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #a0c8e0 0%, #d0e8f0 100%);
  animation: ga-sky 15s ease-in-out infinite alternate;
}
.scn-garcia-arrival-chase .sun {
  position: absolute; top: 8%; left: 60%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, #ffe0a0 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffd080, 0 0 80px 40px rgba(255,208,128,.3);
  animation: ga-sun 20s linear infinite;
}
.scn-garcia-arrival-chase .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c8a870 0%, #a08050 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.3);
}
.scn-garcia-arrival-chase .road {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #a08050 0%, #806030 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.2);
}
.scn-garcia-arrival-chase .figure-garcia {
  position: absolute; bottom: 12%; left: 25%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -8px 0 12px rgba(0,0,0,.5);
  animation: ga-garcia 4s ease-in-out infinite;
}
.scn-garcia-arrival-chase .figure-carmen {
  position: absolute; bottom: 14%; left: 55%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  animation: ga-carmen 4s ease-in-out infinite reverse;
}
.scn-garcia-arrival-chase .shadow-cast {
  position: absolute; bottom: 8%; left: 20%; width: 40px; height: 8px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: ga-shadow 4s ease-in-out infinite;
}
@keyframes ga-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes ga-sun {
  0% { transform: translateX(-20px) scale(1); box-shadow: 0 0 30px 15px #ffd080, 0 0 60px 30px rgba(255,208,128,.3); }
  50% { transform: translateX(20px) scale(1.05); box-shadow: 0 0 50px 25px #ffe0a0, 0 0 100px 50px rgba(255,224,160,.4); }
  100% { transform: translateX(-20px) scale(1); box-shadow: 0 0 30px 15px #ffd080, 0 0 60px 30px rgba(255,208,128,.3); }
}
@keyframes ga-garcia {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-8px) rotate(-3deg) scaleX(1.05); }
  60% { transform: translateX(4px) rotate(2deg) scaleY(.98); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ga-carmen {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(6px) rotate(2deg); }
  60% { transform: translateX(-3px) rotate(-1deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ga-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: .4; }
  50% { transform: translateX(-5px) scaleX(1.2); opacity: .6; }
  100% { transform: translateX(0) scaleX(1); opacity: .4; }
}

.scn-carmen-begs-basque { background: linear-gradient(180deg, #c8d8e8 0%, #e6cba0 30%, #c49a6c 60%, #8a6040 100%), radial-gradient(ellipse at 30% 80%, #d9a87e 0%, transparent 50%), radial-gradient(ellipse at 70% 90%, #6b4c2a 0%, transparent 50%); }
.scn-carmen-begs-basque .sky { position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #d9e2e8 0%, #e6cba0 100%); animation: cbb-sky 10s ease-in-out infinite alternate; }
.scn-carmen-begs-basque .arch { position: absolute; inset: 10% 20% 50% 20%; background: radial-gradient(ellipse at center, transparent 40%, #8c6a4a 41%, #a67c52 45%, transparent 46%); animation: cbb-arch 12s ease-in-out infinite alternate; }
.scn-carmen-begs-basque .wall-bg { position: absolute; inset: 10% 5% 50% 5%; background: linear-gradient(90deg, transparent 0%, rgba(255,220,180,0.2) 50%, transparent 100%); animation: cbb-shimmer 15s ease-in-out infinite; }
.scn-carmen-begs-basque .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #a67c52 0%, #6b4c2a 100%); border-radius: 20% 30% 0 0 / 40% 40% 0 0; }
.scn-carmen-begs-basque .shadow { position: absolute; bottom: 15%; left: 45%; width: 30px; height: 8px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(3px); animation: cbb-shadow 3s ease-in-out infinite; }
.scn-carmen-begs-basque .carmen { position: absolute; bottom: 28%; left: 45%; width: 22px; height: 40px; background: linear-gradient(180deg, #4a2522 0%, #2d1e16 60%, #1a110c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cbb-plead 3s ease-in-out infinite; }
.scn-carmen-begs-basque .mantilla { position: absolute; bottom: 52%; left: 40%; width: 36px; height: 18px; background: linear-gradient(180deg, rgba(255,255,255,0.9) 0%, rgba(230,210,190,0.4) 100%); border-radius: 50% 50% 20% 20%; filter: blur(3px); transform-origin: center; animation: cbb-mantilla 3s ease-in-out infinite alternate; }
.scn-carmen-begs-basque .narrator { position: absolute; bottom: 20%; left: 62%; width: 20px; height: 48px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: cbb-rigid 4s ease-in-out infinite; }
.scn-carmen-begs-basque .lance { position: absolute; bottom: 30%; left: 70%; width: 4px; height: 55px; background: linear-gradient(180deg, #8b7355 0%, #4a3728 50%, #8b7355 100%); transform: rotate(25deg); transform-origin: bottom center; animation: cbb-lance 4s ease-in-out infinite; }
@keyframes cbb-sky { 0% { opacity: 1; } 50% { opacity: 0.6; } 100% { opacity: 0.9; } }
@keyframes cbb-arch { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(0.97); } }
@keyframes cbb-shimmer { 0% { opacity: 0.3; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes cbb-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.4; } 50% { transform: scaleX(1.2) translateX(-5px); opacity: 0.6; } 100% { transform: scaleX(0.9) translateX(3px); opacity: 0.3; } }
@keyframes cbb-plead { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(-8px) translateY(-12px) rotate(-12deg); } 60% { transform: translateX(4px) translateY(-4px) rotate(5deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes cbb-mantilla { 0% { transform: translate(0,0) rotate(-5deg) scale(1); opacity: 0.7; } 50% { transform: translate(-12px, -18px) rotate(8deg) scale(1.1); opacity: 1; } 100% { transform: translate(5px, -5px) rotate(-3deg) scale(0.9); opacity: 0.5; } }
@keyframes cbb-rigid { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes cbb-lance { 0%,100% { transform: rotate(25deg); } 50% { transform: rotate(20deg); } }

.scn-carmen-escape-lane { background: linear-gradient(90deg, #8c4a3a 0%, #c45a3c 20%, #e8a87c 50%, #d98a64 80%, #a0461a 100%), radial-gradient(ellipse at 50% 0%, #f4a261 0%, transparent 60%); }
.scn-carmen-escape-lane .sky-strip { position: absolute; inset: 0; background: linear-gradient(180deg, #c8d8e8 0%, #e0c8a0 30%, transparent 100%); animation: cel-sky 8s ease-in-out infinite alternate; }
.scn-carmen-escape-lane .wall-left { position: absolute; inset: 10% 55% 20% 0; background: linear-gradient(90deg, #8c4a3a 0%, #b86f52 80%, transparent 100%); box-shadow: inset -10px 0 15px rgba(0,0,0,0.3); transform: perspective(800px) rotateY(12deg); transform-origin: right center; animation: cel-wall-l 12s ease-in-out infinite alternate; }
.scn-carmen-escape-lane .wall-right { position: absolute; inset: 5% 0 15% 55%; background: linear-gradient(90deg, transparent 0%, #c45a3c 20%, #8c4a3a 100%); box-shadow: inset 10px 0 15px rgba(0,0,0,0.4); transform: perspective(800px) rotateY(-10deg); transform-origin: left center; animation: cel-wall-r 12s ease-in-out infinite alternate; }
.scn-carmen-escape-lane .lane-ground { position: absolute; bottom: 0; left: 0; right: 0; height: 18%; background: linear-gradient(180deg, #a67c52 0%, #6b4c2a 100%); }
.scn-carmen-escape-lane .leaping-figure { position: absolute; bottom: 25%; left: 25%; width: 20px; height: 35px; background: linear-gradient(180deg, #2d1e16 0%, #1a110c 100%); border-radius: 40% 60% 30% 70% / 50% 40% 60% 50%; transform-origin: bottom center; animation: cel-leap 1.5s ease-in-out infinite; }
.scn-carmen-escape-lane .fallen-figure { position: absolute; bottom: 15%; left: 55%; width: 25px; height: 30px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30%; transform: rotate(15deg); transform-origin: bottom center; animation: cel-fall 3s ease-in-out infinite; }
.scn-carmen-escape-lane .lance-cross { position: absolute; bottom: 18%; left: 50%; width: 50px; height: 4px; background: linear-gradient(90deg, #8b7355 0%, #4a3728 50%, #8b7355 100%); transform: translateX(-50%) rotate(35deg); animation: cel-lance 3s ease-in-out infinite; }
.scn-carmen-escape-lane .dust-puff { position: absolute; bottom: 20%; left: 20%; width: 30px; height: 20px; background: radial-gradient(ellipse at center, rgba(230,200,170,0.8) 0%, transparent 70%); filter: blur(4px); animation: cel-dust 2s ease-in-out infinite; }
.scn-carmen-escape-lane .shadow-strip { position: absolute; top: 0; left: 50%; width: 40%; height: 100%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.15) 50%, transparent 100%); animation: cel-shadow 10s ease-in-out infinite alternate; }
@keyframes cel-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes cel-wall-l { 0% { transform: perspective(800px) rotateY(12deg) translateX(0); } 50% { transform: perspective(800px) rotateY(15deg) translateX(8px); } 100% { transform: perspective(800px) rotateY(10deg) translateX(-4px); } }
@keyframes cel-wall-r { 0% { transform: perspective(800px) rotateY(-10deg) translateX(0); } 50% { transform: perspective(800px) rotateY(-13deg) translateX(-8px); } 100% { transform: perspective(800px) rotateY(-8deg) translateX(4px); } }
@keyframes cel-leap { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(15px) translateY(-35px) rotate(18deg); } 50% { transform: translateX(30px) translateY(0) rotate(0deg); } 75% { transform: translateX(45px) translateY(-25px) rotate(12deg); } 100% { transform: translateX(60px) translateY(0) rotate(-5deg); } }
@keyframes cel-fall { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-5px); } }
@keyframes cel-lance { 0%,100% { transform: translateX(-50%) rotate(35deg); } 50% { transform: translateX(-50%) rotate(45deg); } }
@keyframes cel-dust { 0% { transform: scale(1) translateY(0); opacity: 0.7; } 50% { transform: scale(1.8) translateY(-15px); opacity: 0; } 100% { transform: scale(0.8) translateY(5px); opacity: 0.3; } }
@keyframes cel-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

.scn-guard-room-day-carmen { background: linear-gradient(180deg, #2a1a1a 0%, #4a2a2a 30%, #6b3a3a 60%, #8c5a4a 100%), radial-gradient(circle at 30% 20%, #b08060 0%, transparent 40%), radial-gradient(circle at 70% 80%, #3a1a1a 0%, transparent 50%); }
.scn-guard-room-day-carmen .room-bg { position: absolute; inset: 0; background: linear-gradient(90deg, transparent 0%, rgba(255,200,150,0.08) 50%, transparent 100%); }
.scn-guard-room-day-carmen .window { position: absolute; inset: 10% 5% 65% 75%; background: radial-gradient(circle at 30% 20%, #c8d8e8 0%, #7a9ab5 70%, transparent 100%); box-shadow: 0 0 25px 8px rgba(200,216,232,0.3); animation: grd-light 6s ease-in-out infinite alternate; }
.scn-guard-room-day-carmen .window-bars { position: absolute; inset: 10% 5% 65% 75%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, #2d1e16 8px, #2d1e16 10px), repeating-linear-gradient(180deg, transparent 0px, transparent 8px, #2d1e16 8px, #2d1e16 10px); opacity: 0.7; }
.scn-guard-room-day-carmen .table { position: absolute; bottom: 18%; left: 10%; right: 10%; height: 12%; background: linear-gradient(180deg, #6b4c3a 0%, #4a332a 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.4); }
.scn-guard-room-day-carmen .carmen-dance { position: absolute; bottom: 28%; left: 25%; width: 26px; height: 40px; background: linear-gradient(180deg, #4a2522 0%, #2d1e16 60%, #1a110c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: grd-dance 2.5s ease-in-out infinite; }
.scn-guard-room-day-carmen .narrator-seated { position: absolute; bottom: 20%; left: 60%; width: 24px; height: 32px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: grd-watch 4s ease-in-out infinite; }
.scn-guard-room-day-carmen .sugar-plum { position: absolute; bottom: 36%; left: 40%; width: 8px; height: 8px; background: radial-gradient(circle, #f0c8a0 0%, #c87050 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(200,112,80,0.5); animation: grd-spin 4s linear infinite; }
.scn-guard-room-day-carmen .dust-mote-a { position: absolute; top: 20%; left: 10%; width: 4px; height: 4px; background: rgba(255,220,180,0.7); border-radius: 50%; filter: blur(2px); animation: grd-mote 15s linear infinite; animation-delay: -2s; }
.scn-guard-room-day-carmen .dust-mote-b { position: absolute; top: 40%; left: 30%; width: 3px; height: 3px; background: rgba(255,220,180,0.6); border-radius: 50%; filter: blur(2px); animation: grd-mote 18s linear infinite; animation-delay: -9s; }
@keyframes grd-light { 0% { opacity: 0.6; box-shadow: 0 0 15px 3px rgba(200,216,232,0.2); } 50% { opacity: 1; box-shadow: 0 0 35px 10px rgba(200,216,232,0.5); } 100% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(200,216,232,0.3); } }
@keyframes grd-dance { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-12px) rotate(8deg) scale(1.05); } 50% { transform: translateY(-3px) rotate(-4deg) scale(0.95); } 75% { transform: translateY(-18px) rotate(10deg) scale(1.08); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes grd-watch { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes grd-spin { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(5px,-5px) rotate(90deg); } 50% { transform: translate(-5px,-10px) rotate(180deg); } 75% { transform: translate(8px,-2px) rotate(270deg); } 100% { transform: translate(0,0) rotate(360deg); } }
@keyframes grd-mote { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translate(40px, -80px) scale(2); opacity: 0; } }

.scn-carmen-quits { background: linear-gradient(180deg, #fff8e7 0%, #fce4b8 20%, #ffc857 60%, #e8a838 100%), radial-gradient(ellipse at 20% 30%, #ffffff 0%, transparent 50%), radial-gradient(ellipse at 80% 70%, #ffd680 0%, transparent 50%); }
.scn-carmen-quits .bright-wall { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%); }
.scn-carmen-quits .window-morn { position: absolute; inset: 12% 5% 55% 65%; background: linear-gradient(180deg, #e0f0ff 0%, #b0d0f0 100%); box-shadow: inset 0 0 20px rgba(255,255,255,0.8), 0 0 40px rgba(255,255,200,0.5); animation: cqu-light 4s ease-in-out infinite alternate; }
.scn-carmen-quits .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 18%; background: linear-gradient(180deg, #e8a838 0%, #c08030 100%); }
.scn-carmen-quits .carmen-hands { position: absolute; bottom: 20%; left: 60%; width: 28px; height: 48px; background: linear-gradient(180deg, #4a2522 0%, #2d1e16 60%, #1a110c 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: cqu-laugh 1.5s ease-in-out infinite; }
.scn-carmen-quits .narrator-small { position: absolute; bottom: 18%; left: 25%; width: 18px; height: 34px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: cqu-defeat 2s ease-in-out infinite; }
.scn-carmen-quits .dog-sil { position: absolute; bottom: 14%; left: 15%; width: 28px; height: 14px; background: linear-gradient(180deg, #4a3528 0%, #2d1e16 100%); border-radius: 50% 60% 40% 50% / 50% 40% 60% 50%; animation: cqu-part 8s ease-in-out infinite alternate; }
.scn-carmen-quits .wolf-sil { position: absolute; bottom: 14%; left: 55%; width: 32px; height: 16px; background: linear-gradient(180deg, #2a1a10 0%, #1a110c 100%); border-radius: 50% 50% 40% 60% / 40% 50% 60% 50%; animation: cqu-part 8s ease-in-out infinite alternate-reverse; }
.scn-carmen-quits .parting-line { position: absolute; bottom: 16%; left: 50%; width: 2px; height: 20px; background: linear-gradient(180deg, #8c5a4a 0%, transparent 100%); transform: translateX(-50%); animation: cqu-fade 3s ease-in-out infinite; }
@keyframes cqu-light { 0% { opacity: 0.7; box-shadow: inset 0 0 15px rgba(255,255,255,0.6), 0 0 30px rgba(255,255,200,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,255,255,0.9), 0 0 60px rgba(255,255,200,0.7); } 100% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(255,255,255,0.7), 0 0 40px rgba(255,255,200,0.4); } }
@keyframes cqu-laugh { 0% { transform: scale(1) translateY(0) rotate(0deg); } 30% { transform: scale(1.08) translateY(-8px) rotate(4deg); } 60% { transform: scale(0.95) translateY(3px) rotate(-3deg); } 100% { transform: scale(1.02) translateY(0) rotate(1deg); } }
@keyframes cqu-defeat { 0%,100% { transform: scale(1) translateY(0) rotate(0deg); } 50% { transform: scale(0.9) translateY(6px) rotate(-5deg); } }
@keyframes cqu-part { 0% { transform: translateX(0); } 50% { transform: translateX(-35px); } 100% { transform: translateX(15px); } }
@keyframes cqu-fade { 0%,100% { opacity: 0.6; } 50% { opacity: 0; } }
/* end per-scene blocks */
