/* style.css -- merged from per-tier scene CSS by wizard2.stages.build_deploy */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-othello-strikes-desdemona {
  background:
    linear-gradient(180deg, #f0e6d0 0%, #d8c8a8 40%, #b8a880 100%),
    radial-gradient(ellipse at 80% 20%, #f0f0d0 0%, transparent 60%);
}
.scn-othello-strikes-desdemona .sun { position:absolute; top:5%; right:15%; width:80px; height:80px; background: radial-gradient(circle at 40% 40%, #fff8e0 0%, #f0d090 100%); border-radius:50%; box-shadow: 0 0 100px 40px rgba(240,208,144,0.5), 0 0 200px 80px rgba(240,208,144,0.2); animation: osd-sun 30s ease-in-out infinite alternate; }
.scn-othello-strikes-desdemona .sky-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(240,230,208,0.6) 0%, rgba(216,200,168,0.3) 100%); }
.scn-othello-strikes-desdemona .ground-sunlit { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8b898 0%, #a09070 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); border-radius: 30% 20% 0 0; }
.scn-othello-strikes-desdemona .column-left { position:absolute; bottom:40%; left:12%; width:6%; height:40%; background: linear-gradient(180deg, #d8c8a8 0%, #b8a880 100%); border-radius: 4% 4% 0 0; box-shadow: inset -3px 0 8px rgba(0,0,0,0.2); }
.scn-othello-strikes-desdemona .column-right { position:absolute; bottom:40%; right:12%; width:6%; height:40%; background: linear-gradient(180deg, #d8c8a8 0%, #b8a880 100%); border-radius: 4% 4% 0 0; box-shadow: inset 3px 0 8px rgba(0,0,0,0.2); }
.scn-othello-strikes-desdemona .othello-figure { position:absolute; bottom:42%; left:38%; width:32px; height:52px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 45% 45% 30% 30% / 55% 55% 40% 40%; transform-origin: bottom; box-shadow: -8px 0 12px rgba(0,0,0,0.5); animation: osd-othello 2s ease-in-out infinite; }
.scn-othello-strikes-desdemona .desdemona-fallen { position:absolute; bottom:35%; left:48%; width:24px; height:38px; background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(20deg); transform-origin: bottom; animation: osd-desdemona 3s ease-in-out infinite; }
.scn-othello-strikes-desdemona .shadow-sharp { position:absolute; bottom:40%; left:35%; width:40px; height:20px; background: #1a1a1a; filter: blur(2px); opacity:0.5; animation: osd-shadow 2s ease-in-out infinite; }
.scn-othello-strikes-desdemona .lodovico-distant { position:absolute; bottom:42%; right:20%; width:16px; height:34px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; opacity:0.7; animation: osd-lodovico 6s ease-in-out infinite; }
@keyframes osd-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.02); } 100% { transform: translateX(-5px) scale(0.98); } }
@keyframes osd-othello { 0% { transform: translateY(0) rotate(0) scaleY(1); } 20% { transform: translateY(-2px) rotate(-5deg) scaleY(1.05); } 40% { transform: translateY(0) rotate(0) scaleY(1); } 60% { transform: translateY(-1px) rotate(5deg) scaleY(1.02); } 100% { transform: translateY(0) rotate(0) scaleY(1); } }
@keyframes osd-desdemona { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-3px); } 100% { transform: rotate(22deg) translateY(0); } }
@keyframes osd-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.2); opacity:0.7; } 100% { transform: scaleX(1); opacity:0.5; } }
@keyframes osd-lodovico { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }

/* Scene: lodovico-s-concern */

.scn-willow-song {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1410 30%, #1e0e0c 70%, #0a0505 100%),
              radial-gradient(ellipse at 50% 100%, #3a1a12 0%, transparent 70%);
}
.scn-willow-song .bg { position:absolute; inset:0; background:radial-gradient(ellipse at 40% 60%, #2a1410 0%, #0e0705 100%); }
.scn-willow-song .fire { position:absolute; left:50%; bottom:10%; width:40px; height:50px; transform:translateX(-50%); background:radial-gradient(ellipse at 50% 100%, #ff8020 0%, #d06010 30%, #8a3a0a 60%, transparent 100%); border-radius:60% 60% 40% 40%; box-shadow: 0 0 40px 20px #d06010; animation: wls-fire 3s ease-in-out infinite alternate; }
.scn-willow-song .desdemona { position:absolute; left:30%; bottom:25%; width:28px; height:48px; background:linear-gradient(180deg, #3a2820 0%, #1e1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wls-des 8s ease-in-out infinite; }
.scn-willow-song .willow { position:absolute; left:60%; bottom:10%; width:8px; height:60px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 4px; transform-origin: bottom center; animation: wls-willow 6s ease-in-out infinite; }
.scn-willow-song .willow::before, .scn-willow-song .willow::after { content:''; position:absolute; top:10%; left:50%; width:2px; height:20px; background:#3a2a1a; border-radius:50%; transform-origin: top left; } /* pseudo-elements for branches – allowed per spec */
.scn-willow-song .song-particles { position:absolute; left:20%; bottom:40%; width:6px; height:6px; background:radial-gradient(circle, #c0a080 0%, transparent 70%); border-radius:50%; filter:blur(2px); animation: wls-particles 10s linear infinite; }
.scn-willow-song .shadow { position:absolute; left:20%; right:20%; bottom:0; height:40%; background:linear-gradient(180deg, transparent 0%, #0e0705 100%); animation: wls-shadow 12s ease-in-out infinite alternate; }
@keyframes wls-fire { 0% { opacity:0.8; transform:translateX(-50%) scaleY(0.95) scaleX(1); } 50% { opacity:1; transform:translateX(-50%) scaleY(1.1) scaleX(0.9); } 100% { opacity:0.9; transform:translateX(-50%) scaleY(1) scaleX(1); } }
@keyframes wls-des { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 25% { transform:translateX(-2px) translateY(2px) rotate(-2deg); } 50% { transform:translateX(0) translateY(0) rotate(0deg); } 75% { transform:translateX(2px) translateY(2px) rotate(2deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes wls-willow { 0% { transform:rotate(-3deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-3deg); } }
@keyframes wls-particles { 0% { transform:translateY(0) translateX(0) scale(1); opacity:0.6; } 50% { transform:translateY(-30px) translateX(15px) scale(0.5); opacity:0.3; } 100% { transform:translateY(-60px) translateX(-10px) scale(0.2); opacity:0; } }
@keyframes wls-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

/* clowns-riddle: dim interior, calm, warm browns/amber */
.scn-clowns-riddle {
  background: linear-gradient(180deg, #2a1e14 0%, #3a2a1a 30%, #1a0e08 100%),
              radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, transparent 60%);
}
.scn-clowns-riddle .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(0deg, #3a2a1a 0%, #2a1e14 100%);
}
.scn-clowns-riddle .bg-floor {
  position: absolute; top: 70%; left: 0; right: 0; bottom: 0;
  background: linear-gradient(0deg, #1a0e08 0%, #2a1e14 100%);
  border-top: 2px solid #4a3a2a;
}
.scn-clowns-riddle .figure-clown {
  position: absolute; bottom: 30%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-figure 6s ease-in-out infinite;
}
.scn-clowns-riddle .lantern-glow {
  position: absolute; bottom: 40%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd680 0%, #c08040 50%, transparent 70%);
  border-radius: 50%;
  animation: cr-glow 4s ease-in-out infinite alternate;
}
.scn-clowns-riddle .lantern-body {
  position: absolute; bottom: 42%; left: 58%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
}
.scn-clowns-riddle .bed-rough {
  position: absolute; top: 55%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px;
  opacity: 0.6;
  animation: cr-bed 8s ease-in-out infinite;
}
.scn-clowns-riddle .dust-particle {
  position: absolute; width: 4px; height: 4px;
  background: #c08040; border-radius: 50%;
  animation: cr-dust 12s infinite;
}
.scn-clowns-riddle .dust-a { top: 30%; left: 20%; animation-delay: 0s; }
.scn-clowns-riddle .dust-b { top: 40%; left: 60%; animation-delay: 3s; }
.scn-clowns-riddle .dust-c { top: 50%; left: 40%; animation-delay: 7s; }

@keyframes cr-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes cr-glow {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes cr-bed {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes cr-dust {
  0% { opacity: 0.3; transform: translate(0, 0) scale(0.5); }
  50% { opacity: 0.8; transform: translate(20px, -15px) scale(1.2); }
  100% { opacity: 0.3; transform: translate(40px, -30px) scale(0.5); }
}

/* handkerchief-loss: dim interior, calm, muted purples/golds */
.scn-handkerchief-loss {
  background: linear-gradient(180deg, #1a1428 0%, #2a1e38 40%, #0e0a14 100%),
              radial-gradient(ellipse at 50% 100%, #4a2a4a 0%, transparent 70%);
}
.scn-handkerchief-loss .bg-room {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(0deg, #2a1e38 0%, #1a1428 100%);
}
.scn-handkerchief-loss .table-wood {
  position: absolute; top: 60%; left: 10%; right: 10%; bottom: 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8px 8px 0 0;
}
.scn-handkerchief-loss .hand-upper {
  position: absolute; bottom: 45%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #d4b8a0 0%, #c09980 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(15deg);
  animation: hl-hand-upper 5s ease-in-out infinite;
}
.scn-handkerchief-loss .hand-lower {
  position: absolute; bottom: 40%; left: 45%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #c09980 0%, #b08870 100%);
  border-radius: 30% 40% 30% 30%;
  transform: rotate(-10deg);
  animation: hl-hand-lower 5s ease-in-out infinite reverse;
}
.scn-handkerchief-loss .handkerchief-fold {
  position: absolute; bottom: 43%; left: 40%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #e0d8c8 0%, #c0b0a0 50%, #e8e0d0 100%);
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(5deg);
  animation: hl-fold 4s ease-in-out infinite;
}
.scn-handkerchief-loss .candle-wax {
  position: absolute; bottom: 35%; left: 25%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d0c8b0 100%);
  border-radius: 2px;
}
.scn-handkerchief-loss .candle-flame {
  position: absolute; bottom: 58%; left: 25%; width: 10px; height: 16px;
  background: radial-gradient(circle, #ffd680 0%, #c08040 60%, transparent 100%);
  border-radius: 50%;
  animation: hl-flame 2s ease-in-out infinite alternate;
}
.scn-handkerchief-loss .shadow-drape {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 40% 50%, transparent 40%, rgba(0,0,0,0.3) 100%);
  animation: hl-shadow 8s ease-in-out infinite;
}
@keyframes hl-hand-upper {
  0% { transform: translate(0, 0) rotate(15deg); }
  50% { transform: translate(2px, -3px) rotate(18deg); }
  100% { transform: translate(0, 0) rotate(15deg); }
}
@keyframes hl-hand-lower {
  0% { transform: translate(0, 0) rotate(-10deg); }
  50% { transform: translate(-2px, -2px) rotate(-12deg); }
  100% { transform: translate(0, 0) rotate(-10deg); }
}
@keyframes hl-fold {
  0%, 100% { opacity: 0.9; transform: rotate(5deg) scale(1); }
  50% { opacity: 1; transform: rotate(8deg) scale(1.05); }
}
@keyframes hl-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.9) translateY(0); opacity: 0.7; }
}
@keyframes hl-shadow {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 0.8; }
}

/* questioning-jealousy: calm dim interior, Othello/Desdemona/Emilia */
.scn-questioning-jealousy {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #0e0e1a 100%),
              radial-gradient(ellipse at 50% 50%, #3a3a5e 0%, transparent 70%);
}
.scn-questioning-jealousy .bg-chamber {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(0deg, #2a2a3e 0%, #1a1a2e 100%);
}
.scn-questioning-jealousy .figure-othello {
  position: absolute; bottom: 25%; left: 20%; width: 45px; height: 90px;
  background: linear-gradient(180deg, #2a1a14 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qj-othello 6s ease-in-out infinite;
}
.scn-questioning-jealousy .figure-desdemona {
  position: absolute; bottom: 22%; left: 45%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1e1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qj-desdemona 8s ease-in-out infinite;
}
.scn-questioning-jealousy .figure-emilia {
  position: absolute; bottom: 28%; left: 70%; width: 38px; height: 75px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qj-emilia 7s ease-in-out infinite;
}
.scn-questioning-jealousy .chair-back {
  position: absolute; bottom: 30%; left: 42%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px;
  transform: rotate(-5deg);
}
.scn-questioning-jealousy .candle-set {
  position: absolute; bottom: 35%; left: 15%; width: 12px; height: 60px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d0c8b0 100%);
  border-radius: 3px;
}
.scn-questioning-jealousy .wall-sconce {
  position: absolute; top: 15%; left: 80%; width: 20px; height: 20px;
  background: radial-gradient(circle, #e0c080 0%, #b08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(224,192,128,0.4);
  animation: qj-sconce 4s ease-in-out infinite alternate;
}
@keyframes qj-othello {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes qj-desdemona {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes qj-emilia {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes qj-sconce {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}

/* othello-accusation: tense dim interior, focus on hands, warm/harsh shadows */
.scn-othello-accusation {
  background: linear-gradient(180deg, #1a0a08 0%, #2a120e 40%, #0e0504 100%),
              radial-gradient(ellipse at 50% 60%, #4a1a10 0%, transparent 70%);
}
.scn-othello-accusation .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #0e0504 0%, #1a0a08 100%);
}
.scn-othello-accusation .hand-othello {
  position: absolute; bottom: 35%; left: 25%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: oa-hand-oth 3s ease-in-out infinite;
}
.scn-othello-accusation .hand-desdemona {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #d4b8a0 0%, #c09980 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: oa-hand-des 3s ease-in-out infinite reverse;
}
.scn-othello-accusation .sweat-drops {
  position: absolute; top: 50%; left: 30%; width: 6px; height: 6px;
  background: radial-gradient(circle, #a08070 0%, transparent 100%);
  border-radius: 50%;
  animation: oa-sweat 4s ease-in-out infinite;
}
.scn-othello-accusation .ring-metal {
  position: absolute; bottom: 40%; left: 43%; width: 14px; height: 14px;
  background: radial-gradient(circle, #e8d080 0%, #b09048 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(232,208,128,0.5);
  animation: oa-ring 5s ease-in-out infinite alternate;
}
.scn-othello-accusation .shadow-vein {
  position: absolute; bottom: 30%; left: 22%; width: 4px; height: 30px;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.6) 100%);
  border-radius: 2px;
  animation: oa-vein 3s ease-in-out infinite alternate;
}
.scn-othello-accusation .light-strike {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 35% 45%, rgba(200,120,40,0.15) 0%, transparent 50%);
  animation: oa-light 6s ease-in-out infinite alternate;
}
@keyframes oa-hand-oth {
  0% { transform: translate(0, 0) rotate(20deg) scale(1); }
  50% { transform: translate(3px, -4px) rotate(22deg) scale(1.05); }
  100% { transform: translate(0, 0) rotate(20deg) scale(1); }
}
@keyframes oa-hand-des {
  0% { transform: translate(0, 0) rotate(-15deg) scale(1); }
  50% { transform: translate(-2px, -3px) rotate(-17deg) scale(1.03); }
  100% { transform: translate(0, 0) rotate(-15deg) scale(1); }
}
@keyframes oa-sweat {
  0% { opacity: 0.4; transform: translate(0,0); }
  50% { opacity: 0.9; transform: translate(5px, -8px) scale(1.5); }
  100% { opacity: 0.2; transform: translate(10px, -15px) scale(0.8); }
}
@keyframes oa-ring {
  0% { box-shadow: 0 0 4px 1px rgba(232,208,128,0.3); transform: scale(1); }
  50% { box-shadow: 0 0 12px 4px rgba(232,208,128,0.7); transform: scale(1.1); }
  100% { box-shadow: 0 0 6px 2px rgba(232,208,128,0.5); transform: scale(0.95); }
}
@keyframes oa-vein {
  0% { opacity: 0.3; transform: scaleY(1); }
  100% { opacity: 0.8; transform: scaleY(1.5); }
}
@keyframes oa-light {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}

.scn-cassio-drunk-protest {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3c2515 40%, #4a2e1a 70%, #2a1a0e 100%),
    radial-gradient(ellipse at 50% 20%, #5a3a1e 0%, transparent 60%);
}
.scn-cassio-drunk-protest .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #4a2e1a 0%, #3a1e0e 100%); }
.scn-cassio-drunk-protest .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2212 0%, #1a0e06 100%); }
.scn-cassio-drunk-protest .table { position:absolute; bottom:20%; left:38%; width:30%; height:12%; background: linear-gradient(180deg, #5a3a1e 0%, #3a2212 100%); border-radius: 4px; box-shadow: 0 6px 10px rgba(0,0,0,0.6); }
.scn-cassio-drunk-protest .bottle { position:absolute; bottom:28%; left:48%; width:6%; height:18%; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-15deg); box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: cd-bottle 4s ease-in-out infinite; }
.scn-cassio-drunk-protest .candle { position:absolute; bottom:30%; left:56%; width:2%; height:8%; background: linear-gradient(180deg, #ffa060 0%, #c07030 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px rgba(255,160,96,0.4); animation: cd-candle 3s ease-in-out infinite alternate; }
.scn-cassio-drunk-protest .figure-cassio { position:absolute; bottom:18%; left:30%; width:10%; height:40%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cd-stagger 1.2s ease-in-out infinite; }
.scn-cassio-drunk-protest .figure-montano { position:absolute; bottom:18%; left:58%; width:10%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); }
.scn-cassio-drunk-protest .figure-ancient { position:absolute; bottom:18%; right:20%; width:10%; height:38%; background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-cassio-drunk-protest .shadow-cassio { position:absolute; bottom:10%; left:26%; width:18%; height:6%; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); border-radius: 50%; animation: cd-shadow 1.2s ease-in-out infinite; }
@keyframes cd-bottle { 0%,100% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(2px) translateY(-2px); } }
@keyframes cd-candle { 0% { transform: scaleY(1) translateY(0); opacity:0.9; } 100% { transform: scaleY(1.1) translateY(-2px); opacity:1; } }
@keyframes cd-stagger { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg) scaleY(1.01); } 50% { transform: translateX(-2px) rotate(-3deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes cd-shadow { 0%,100% { transform: scaleX(1); opacity:0.6; } 50% { transform: scaleX(1.2); opacity:0.3; } }

.scn-montano-worries-cassio {
  background:
    linear-gradient(180deg, #1a121a 0%, #2a1a2a 40%, #1a0e1a 100%),
    radial-gradient(ellipse at 40% 30%, #3a1a3a 0%, transparent 70%);
}
.scn-montano-worries-cassio .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a2a 0%, #1a0e1a 50%, #0e060e 100%); }
.scn-montano-worries-cassio .window { position:absolute; top:10%; left:65%; width:15%; height:30%; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius: 4px; border: 4px solid #3a2a3a; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-montano-worries-cassio .figure-montano { position:absolute; bottom:20%; left:40%; width:12%; height:45%; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mw-montano 6s ease-in-out infinite; }
.scn-montano-worries-cassio .figure-cassio { position:absolute; bottom:20%; left:55%; width:11%; height:44%; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); }
.scn-montano-worries-cassio .candle-glow { position:absolute; bottom:30%; left:25%; width:3%; height:10%; background: radial-gradient(circle, #ffc060 0%, #a06030 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(255,192,96,0.3); animation: mw-candle 4s ease-in-out infinite alternate; }
.scn-montano-worries-cassio .table { position:absolute; bottom:18%; left:20%; width:30%; height:10%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 8px; }
.scn-montano-worries-cassio .chair { position:absolute; bottom:16%; left:50%; width:8%; height:16%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 20% 20% 10% 10%; }
.scn-montano-worries-cassio .shadow { position:absolute; bottom:8%; left:35%; width:30%; height:4%; background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 70%); border-radius: 50%; }
@keyframes mw-montano { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-4px) rotate(2deg) scaleY(1.02); } }
@keyframes mw-candle { 0% { transform: scale(1); opacity:0.8; } 100% { transform: scale(1.15); opacity:1; } }

.scn-montano-suggests-report {
  background:
    linear-gradient(180deg, #1a121a 0%, #2a1a2a 40%, #1a0e1a 100%),
    radial-gradient(ellipse at 60% 40%, #3a1a2a 0%, transparent 60%);
}
.scn-montano-suggests-report .back-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a1a2a 0%, #1a0e1a 100%); }
.scn-montano-suggests-report .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #120a0a 100%); }
.scn-montano-suggests-report .figure-montano { position:absolute; bottom:20%; left:50%; width:12%; height:45%; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: ms-montano 5s ease-in-out infinite; }
.scn-montano-suggests-report .figure-cassio-partial { position:absolute; bottom:20%; left:35%; width:10%; height:40%; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; clip-path: inset(0 30% 0 0); }
.scn-montano-suggests-report .figure-roderigo { position:absolute; bottom:18%; left:70%; width:9%; height:38%; background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: ms-roderigo 8s ease-in-out infinite; }
.scn-montano-suggests-report .door-frame { position:absolute; bottom:0; left:80%; width:15%; height:70%; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius: 4px 4px 0 0; border: 2px solid #4a3a4a; }
.scn-montano-suggests-report .lamp { position:absolute; top:10%; left:20%; width:2%; height:6%; background: radial-gradient(circle, #ffc060 0%, #a06030 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(255,192,96,0.3); animation: ms-lamp 3s ease-in-out infinite alternate; }
.scn-montano-suggests-report .shadow-roderigo { position:absolute; bottom:8%; left:68%; width:12%; height:4%; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%); border-radius: 50%; animation: ms-shadow 8s ease-in-out infinite; }
@keyframes ms-montano { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-45%) rotate(1deg) scaleY(1.02); } }
@keyframes ms-roderigo { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(-4px) rotate(-1deg); } 100% { transform: scaleX(-1) translateX(0); } }
@keyframes ms-lamp { 0% { transform: scale(1); opacity:0.8; } 100% { transform: scale(1.1); opacity:1; } }
@keyframes ms-shadow { 0%,100% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.3); opacity:0.3; } }

.scn-iago-feigns-loyalty {
  background:
    linear-gradient(180deg, #1a0a1a 0%, #2a1a2a 40%, #1a0a1a 100%),
    radial-gradient(ellipse at 50% 30%, #4a2a4a 0%, transparent 70%);
}
.scn-iago-feigns-loyalty .room { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a2a 0%, #1a0a1a 50%, #0e060e 100%); }
.scn-iago-feigns-loyalty .figure-iago { position:absolute; bottom:20%; left:45%; width:12%; height:45%; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: if-iago 2s ease-in-out infinite; }
.scn-iago-feigns-loyalty .figure-cassio { position:absolute; bottom:18%; left:30%; width:11%; height:42%; background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: if-cassio 1.5s ease-in-out infinite; }
.scn-iago-feigns-loyalty .figure-roderigo { position:absolute; bottom:16%; left:65%; width:10%; height:36%; background: linear-gradient(180deg, #6a5a6a 0%, #4a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg) scaleX(-1); animation: if-roderigo 0.8s ease-in-out infinite; }
.scn-iago-feigns-loyalty .sword { position:absolute; bottom:22%; left:28%; width:2%; height:20%; background: linear-gradient(180deg, #8a8a8a 0%, #aaaaaa 50%, #8a8a8a 100%); border-radius: 50% 50% 10% 10%; transform: rotate(30deg); box-shadow: 0 0 4px rgba(200,200,200,0.5); }
.scn-iago-feigns-loyalty .splash { position:absolute; bottom:10%; left:40%; width:20%; height:8%; background: radial-gradient(ellipse, rgba(100,60,60,0.6) 0%, transparent 70%); border-radius: 50%; animation: if-splash 1s ease-in-out infinite; }
.scn-iago-feigns-loyalty .candle { position:absolute; bottom:30%; left:20%; width:2%; height:8%; background: linear-gradient(180deg, #ffa060 0%, #c07030 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px rgba(255,160,96,0.4); animation: if-candle 3s ease-in-out infinite alternate; }
.scn-iago-feigns-loyalty .shadow-iago { position:absolute; bottom:8%; left:40%; width:20%; height:4%; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%); border-radius: 50%; animation: if-shadow 2s ease-in-out infinite; }
@keyframes if-iago { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(1deg) scaleY(1.03); } }
@keyframes if-cassio { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes if-roderigo { 0%,100% { transform: rotate(-10deg) scaleX(-1) translateX(0); } 50% { transform: rotate(-15deg) scaleX(-1) translateX(3px); } }
@keyframes if-splash { 0%,100% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.2); opacity:0.3; } }
@keyframes if-candle { 0% { transform: scaleY(1) translateY(0); opacity:0.8; } 100% { transform: scaleY(1.1) translateY(-2px); opacity:1; } }
@keyframes if-shadow { 0%,100% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.2); opacity:0.3; } }

.scn-final-verdict {
  background: linear-gradient(180deg, #1a1420 0%, #261c28 30%, #2c2230 60%, #16121a 100%),
              radial-gradient(ellipse at 50% 100%, #2a1e30 0%, transparent 70%);
}
.scn-final-verdict .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a2e3a 0%, #1a1420 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); animation: fv-floor 20s ease-in-out infinite alternate; }
.scn-final-verdict .wall  { position: absolute; top: 0; left: 0; right: 0; bottom: 30%; background: linear-gradient(180deg, #241e2c 0%, #201828 50%, #1c1424 100%); }
.scn-final-verdict .window{ position: absolute; top: 15%; left: 38%; width: 24%; height: 28%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border: 4px solid #3a2e3a; border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 0 4px #2a2230; overflow: hidden; }
.scn-final-verdict .window::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: repeating-linear-gradient(90deg, transparent, transparent 14px, #1a1420 14px, #1a1420 16px), repeating-linear-gradient(0deg, transparent, transparent 14px, #1a1420 14px, #1a1420 16px); }
.scn-final-verdict .figure{ position: absolute; bottom: 22%; left: 50%; width: 40px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1420 0%, #0c0a10 100%); border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: fv-figure 6s ease-in-out infinite; }
.scn-final-verdict .chair { position: absolute; bottom: 18%; left: 35%; width: 30px; height: 50px; background: linear-gradient(180deg, #2a202c 0%, #1a1420 100%); border-radius: 10% 10% 20% 20%; transform: skewX(-5deg); animation: fv-chair 12s ease-in-out infinite; }
.scn-final-verdict .candle{ position: absolute; bottom: 25%; left: 25%; width: 8px; height: 12px; background: linear-gradient(180deg, #e8c080 0%, #c8a060 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 6px 2px #b08040; animation: fv-flame 2s ease-in-out infinite alternate; }
.scn-final-verdict .glow  { position: absolute; bottom: 20%; left: 20%; width: 60px; height: 60px; background: radial-gradient(circle, rgba(200,160,100,0.6) 0%, rgba(200,160,100,0.2) 40%, transparent 70%); border-radius: 50%; animation: fv-glow 4s ease-in-out infinite alternate; }
@keyframes fv-floor  { 0% { opacity: 0.9; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(0.98); } 100% { opacity: 0.85; transform: scaleY(1); } }
@keyframes fv-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes fv-chair  { 0% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-5deg) translateY(-1px); } 100% { transform: skewX(-5deg) translateY(0); } }
@keyframes fv-flame  { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9; } 50% { transform: scaleY(1.3) scaleX(0.8); opacity: 1; } 100% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.8; } }
@keyframes fv-glow   { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.1); opacity: 0.7; } 100% { transform: scale(0.9); opacity: 0.4; } }

.scn-othello-suicide {
  background: linear-gradient(180deg, #1c1420 0%, #241c28 30%, #2c2230 60%, #16121a 100%),
              radial-gradient(ellipse at 50% 80%, #2a1e30 0%, transparent 60%);
}
.scn-othello-suicide .bed   { position: absolute; bottom: 10%; left: 10%; right: 10%; height: 50%; background: linear-gradient(180deg, #3a2e3a 0%, #2a202c 100%); border-radius: 10% 10% 30% 30% / 20% 20% 10% 10%; box-shadow: inset 0 10px 20px rgba(0,0,0,0.7), 0 4px 8px rgba(0,0,0,0.5); animation: os-bed 30s ease-in-out infinite alternate; }
.scn-othello-suicide .body  { position: absolute; bottom: 15%; left: 30%; width: 50px; height: 70px; background: linear-gradient(180deg, #1c1420 0%, #0c0a10 100%); border-radius: 30% 30% 50% 50% / 40% 40% 30% 30%; transform: rotate(10deg); animation: os-body 8s ease-in-out infinite; }
.scn-othello-suicide .arm   { position: absolute; bottom: 30%; left: 45%; width: 18px; height: 40px; background: linear-gradient(180deg, #1c1420 0%, #0c0a10 100%); border-radius: 30% 30% 20% 20%; transform: rotate(45deg); transform-origin: bottom left; animation: os-arm 3s ease-in-out infinite alternate; }
.scn-othello-suicide .pearl { position: absolute; bottom: 45%; left: 52%; width: 8px; height: 8px; background: radial-gradient(circle, #f0e0c0 0%, #d0b080 100%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(240,224,192,0.5); animation: os-pearl 4s ease-in-out infinite; }
.scn-othello-suicide .pearl-glow { position: absolute; bottom: 43%; left: 50%; width: 20px; height: 20px; background: radial-gradient(circle, rgba(240,224,192,0.4) 0%, transparent 70%); border-radius: 50%; animation: os-pearl-glow 4s ease-in-out infinite; }
.scn-othello-suicide .pillow{ position: absolute; bottom: 20%; left: 20%; width: 60px; height: 30px; background: linear-gradient(180deg, #3a2e3a 0%, #2a202c 100%); border-radius: 50%; transform: rotate(-5deg); animation: os-pillow 15s ease-in-out infinite alternate; }
.scn-othello-suicide .sheet { position: absolute; bottom: 10%; left: 15%; right: 15%; height: 20%; background: linear-gradient(180deg, #4a3e4a 0%, #3a2e3a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform: scaleX(0.9); animation: os-sheet 20s ease-in-out infinite alternate; }
@keyframes os-bed   { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes os-body  { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes os-arm   { 0% { transform: rotate(45deg) scaleX(1); } 50% { transform: rotate(40deg) scaleX(0.8); } 100% { transform: rotate(45deg) scaleX(1); } }
@keyframes os-pearl { 0% { transform: translate(0, 0) scale(1); opacity: 1; } 50% { transform: translate(4px, 12px) scale(0.9); opacity: 0.8; } 100% { transform: translate(0, 20px) scale(0.7); opacity: 0.4; } }
@keyframes os-pearl-glow { 0% { transform: translate(0, 0) scale(1); opacity: 0.5; } 50% { transform: translate(2px, 6px) scale(1.2); opacity: 0.8; } 100% { transform: translate(0, 10px) scale(0.8); opacity: 0.2; } }
@keyframes os-pillow { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes os-sheet  { 0% { transform: scaleX(0.9) translateY(0); opacity: 0.9; } 50% { transform: scaleX(0.92) translateY(-1px); opacity: 1; } 100% { transform: scaleX(0.9) translateY(0); opacity: 0.85; } }

.scn-closings {
  background: linear-gradient(180deg, #1a1420 0%, #221c2c 40%, #2c2230 70%, #16121a 100%),
              radial-gradient(ellipse at 50% 90%, #2a1e30 0%, transparent 60%);
}
.scn-closings .bed         { position: absolute; bottom: 5%; left: 5%; right: 5%; height: 60%; background: linear-gradient(180deg, #3a2e3a 0%, #2a202c 100%); border-radius: 15% 15% 40% 40% / 25% 25% 10% 10%; box-shadow: inset 0 8px 16px rgba(0,0,0,0.7), 0 4px 8px rgba(0,0,0,0.5); animation: cl-bed 25s ease-in-out infinite alternate; }
.scn-closings .figure-lie  { position: absolute; bottom: 12%; left: 25%; width: 55px; height: 65px; background: linear-gradient(180deg, #1c1420 0%, #0c0a10 100%); border-radius: 30% 30% 50% 50% / 45% 45% 35% 35%; transform: rotate(5deg); animation: cl-lie 9s ease-in-out infinite; }
.scn-closings .figure-stand{ position: absolute; bottom: 20%; right: 20%; width: 35px; height: 85px; background: linear-gradient(180deg, #1c1420 0%, #0c0a10 100%); border-radius: 25% 25% 40% 40% / 45% 45% 25% 25%; transform: rotate(-5deg); animation: cl-stand 7s ease-in-out infinite; }
.scn-closings .drape       { position: absolute; top: 0; right: 0; width: 30%; height: 80%; background: linear-gradient(135deg, #3a2e3a 0%, #2a202c 50%, #1c1420 100%); border-radius: 0 0 0 40% / 0 0 0 20%; transform: skewX(-5deg); box-shadow: -10px 0 15px rgba(0,0,0,0.5); animation: cl-drape 12s ease-in-out infinite alternate; }
.scn-closings .chest       { position: absolute; bottom: 5%; left: 10%; width: 40px; height: 30px; background: linear-gradient(180deg, #4a3e4a 0%, #2a202c 100%); border-radius: 10%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); transform: rotate(-2deg); animation: cl-chest 20s ease-in-out infinite alternate; }
.scn-closings .shadow      { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%); animation: cl-shadow 30s ease-in-out infinite alternate; }
@keyframes cl-bed    { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cl-lie    { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes cl-stand  { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes cl-drape  { 0% { transform: skewX(-5deg) scaleY(1); } 50% { transform: skewX(-5deg) scaleY(1.02); } 100% { transform: skewX(-5deg) scaleY(1); } }
@keyframes cl-chest  { 0% { transform: rotate(-2deg) scaleX(1); } 50% { transform: rotate(-2deg) scaleX(0.98); } 100% { transform: rotate(-2deg) scaleX(1); } }
@keyframes cl-shadow { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }

.scn-othello-farewell-war { background: linear-gradient(180deg, #f9d49a 0%, #e5895a 40%, #7a4a2a 100%), radial-gradient(ellipse at 50% 0%, #f9d49a 0%, transparent 60%); }
.scn-othello-farewell-war .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffcc88 0%, #ffaa55 50%, transparent 100%); animation: o1-sky 12s ease-in-out infinite alternate; }
.scn-othello-farewell-war .sun { position:absolute; top:12%; left:45%; width:60px; height:60px; background: radial-gradient(circle, #ffeebb 0%, #ffaa44 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,170,68,.5); animation: o1-sun 8s ease-in-out infinite; }
.scn-othello-farewell-war .hills { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: o1-hills 15s ease-in-out infinite alternate; }
.scn-othello-farewell-war .soldier { position:absolute; bottom:28%; left:40%; width:24px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: o1-soldier 6s ease-in-out infinite; }
.scn-othello-farewell-war .plume { position:absolute; bottom:52%; left:40.5%; width:14px; height:24px; background: radial-gradient(ellipse at 50% 100%, #c8553d 0%, #a0461a 80%); border-radius: 50% 50% 0 0; transform: rotate(-10deg); animation: o1-plume 6s ease-in-out infinite; }
.scn-othello-farewell-war .ground-shadow { position:absolute; bottom:25%; left:30%; width:60px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 80%); animation: o1-shadow 10s ease-in-out infinite alternate; }
.scn-othello-farewell-war .cloud.c1 { position:absolute; top:8%; left:10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,200,150,.6) 0%, rgba(255,200,150,.1) 100%); border-radius:50%; filter: blur(4px); animation: o1-drift-a 40s linear infinite; }
.scn-othello-farewell-war .cloud.c2 { position:absolute; top:15%; right:20%; width:80px; height:16px; background: linear-gradient(180deg, rgba(255,200,150,.5) 0%, rgba(255,200,150,.05) 100%); border-radius:50%; filter: blur(3px); animation: o1-drift-b 55s linear infinite reverse; }
@keyframes o1-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes o1-sun { 0% { transform: scale(1) translateY(0); opacity:.9 } 50% { transform: scale(1.1) translateY(-3px); opacity:1 } 100% { transform: scale(.95) translateY(2px); opacity:.8 } }
@keyframes o1-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes o1-soldier { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(2deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes o1-plume { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-10deg) } }
@keyframes o1-shadow { 0% { transform: scaleX(1); opacity:.6 } 50% { transform: scaleX(1.1); opacity:.5 } 100% { transform: scaleX(.95); opacity:.7 } }
@keyframes o1-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes o1-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-90vw) } }

.scn-othello-demands-proof { background: linear-gradient(180deg, #b07a50 0%, #6a4a2a 60%, #2a1a0a 100%), radial-gradient(ellipse at 30% 70%, #d4a880 0%, transparent 50%); }
.scn-othello-demands-proof .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.6); }
.scn-othello-demands-proof .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); }
.scn-othello-demands-proof .figure { position:absolute; bottom:20%; left:50%; width:60px; height:100px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: o2-figure 5s ease-in-out infinite; }
.scn-othello-demands-proof .fist { position:absolute; bottom:55%; left:48%; width:16px; height:20px; background: radial-gradient(circle, #3a2a2a 0%, #1a1a1a 80%); border-radius: 40% 40% 20% 20%; transform: rotate(20deg); animation: o2-fist 2s ease-in-out infinite alternate; }
.scn-othello-demands-proof .shadow { position:absolute; bottom:18%; left:35%; width:120px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 80%); animation: o2-shadow 6s ease-in-out infinite alternate; }
.scn-othello-demands-proof .light-beam { position:absolute; top:0; left:30%; width:8px; height:70%; background: linear-gradient(180deg, rgba(255,220,180,.4) 0%, rgba(255,220,180,.05) 100%); transform: rotate(-15deg); filter: blur(2px); animation: o2-beam 7s ease-in-out infinite; }
.scn-othello-demands-proof .splinter { position:absolute; bottom:30%; left:55%; width:4px; height:12px; background: #5a3a2a; border-radius: 20%; transform: rotate(30deg); animation: o2-splinter 10s linear infinite; }
@keyframes o2-figure { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes o2-fist { 0% { transform: rotate(20deg) scale(1) } 100% { transform: rotate(30deg) scale(1.1) } }
@keyframes o2-shadow { 0% { transform: scaleX(1); opacity:.7 } 50% { transform: scaleX(1.2); opacity:.5 } 100% { transform: scaleX(.9); opacity:.8 } }
@keyframes o2-beam { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.2 } }
@keyframes o2-splinter { 0% { transform: rotate(30deg) translateY(0) } 100% { transform: rotate(30deg) translateY(-30vh) } }

.scn-othello-agonizes-doubt { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 40%, #3a3a3a 100%), radial-gradient(ellipse at 50% 60%, #4a4a4a 0%, transparent 80%); }
.scn-othello-agonizes-doubt .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 80%); opacity:.9; }
.scn-othello-agonizes-doubt .mirror-frame { position:absolute; top:10%; left:30%; width:40%; height:70%; border: 8px solid #5a4a3a; border-radius:4%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); box-shadow: 0 0 40px rgba(0,0,0,.8); animation: o3-frame 12s ease-in-out infinite alternate; }
.scn-othello-agonizes-doubt .reflection { position:absolute; top:15%; left:33%; width:34%; height:60%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:2%; box-shadow: inset 0 0 30px rgba(255,255,255,.1); animation: o3-reflect 6s ease-in-out infinite; }
.scn-othello-agonizes-doubt .crack.c1 { position:absolute; top:30%; left:48%; width:2px; height:40%; background: #6a5a4a; transform: rotate(15deg); animation: o3-crack 20s linear infinite; }
.scn-othello-agonizes-doubt .crack.c2 { position:absolute; top:20%; left:52%; width:2px; height:30%; background: #5a4a3a; transform: rotate(-25deg); animation: o3-crack2 25s linear infinite; }
.scn-othello-agonizes-doubt .shard.s1 { position:absolute; top:25%; left:35%; width:30px; height:30px; background: linear-gradient(135deg, rgba(100,80,60,.6) 0%, rgba(100,80,60,.2) 100%); clip-path: polygon(0% 0%, 100% 20%, 80% 100%, 20% 80%); animation: o3-shard1 8s ease-in-out infinite alternate; }
.scn-othello-agonizes-doubt .shard.s2 { position:absolute; bottom:30%; left:55%; width:20px; height:30px; background: linear-gradient(45deg, rgba(80,60,40,.5) 0%, rgba(80,60,40,.1) 100%); clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); animation: o3-shard2 10s ease-in-out infinite alternate; }
.scn-othello-agonizes-doubt .darkness { position:absolute; inset:0; background: radial-gradient(circle at 50% 50%, transparent 40%, rgba(0,0,0,.8) 80%); pointer-events: none; animation: o3-dark 15s ease-in-out infinite alternate; }
@keyframes o3-frame { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(.98) } }
@keyframes o3-reflect { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.65 } }
@keyframes o3-crack { 0% { opacity:0 } 50% { opacity:1 } 100% { opacity:.5 } }
@keyframes o3-crack2 { 0% { opacity:.5 } 50% { opacity:0 } 100% { opacity:1 } }
@keyframes o3-shard1 { 0% { transform: translate(0,0) rotate(0deg) } 100% { transform: translate(8px,-8px) rotate(15deg) } }
@keyframes o3-shard2 { 0% { transform: translate(0,0) rotate(0deg) } 100% { transform: translate(-6px,6px) rotate(-10deg) } }
@keyframes o3-dark { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }

.scn-iago-offers-circumstance { background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 70%, #0a0505 100%), radial-gradient(ellipse at 60% 50%, #3a2a2a 0%, transparent 70%); }
.scn-iago-offers-circumstance .bg-shadow { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); }
.scn-iago-offers-circumstance .figure-left { position:absolute; bottom:10%; left:20%; width:50px; height:90px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: o4-figure-left 7s ease-in-out infinite; }
.scn-iago-offers-circumstance .figure-right { position:absolute; bottom:10%; right:25%; width:50px; height:90px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: o4-figure-right 7s ease-in-out infinite; }
.scn-iago-offers-circumstance .hand { position:absolute; bottom:30%; left:48%; width:24px; height:18px; background: radial-gradient(ellipse at 50% 100%, #3a2a2a 0%, #1a1a1a 80%); border-radius: 30% 30% 40% 40%; transform: rotate(-10deg); animation: o4-hand 3s ease-in-out infinite alternate; }
.scn-iago-offers-circumstance .document { position:absolute; bottom:35%; left:46%; width:30px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 5%; transform: rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: o4-doc 7s ease-in-out infinite; }
.scn-iago-offers-circumstance .ground { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #1a100a 0%, #0a0505 100%); }
.scn-iago-offers-circumstance .whisper-lines { position:absolute; top:35%; left:35%; width:30%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(100,80,60,.1) 0%, transparent 70%); filter: blur(6px); animation: o4-whisper 5s ease-in-out infinite alternate; }
@keyframes o4-figure-left { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 50% { transform: translateX(-3px) translateY(-2px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(2deg) } }
@keyframes o4-figure-right { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(3px) translateY(-2px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes o4-hand { 0% { transform: rotate(-10deg) scale(1) } 100% { transform: rotate(5deg) scale(1.1) } }
@keyframes o4-doc { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-3px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes o4-whisper { 0% { opacity:.3; transform: scaleY(1) } 50% { opacity:.6; transform: scaleY(1.3) } 100% { opacity:.2; transform: scaleY(.8) } }

.scn-rousing-brabantion-plan { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a1a2a 70%, #1a0a0a 100%), radial-gradient(ellipse at 50% 0%, #2a2a5a 0%, transparent 60%); }
.scn-rousing-brabantion-plan .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a3a 0%, #0f0f2a 60%, transparent); animation: rbp-sky 15s ease-in-out infinite alternate; }
.scn-rousing-brabantion-plan .house-wall { position:absolute; bottom:15%; left:20%; width:55%; height:70%; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 5% 5% 2% 2%; box-shadow: 0 8px 20px rgba(0,0,0,.7); }
.scn-rousing-brabantion-plan .door { position:absolute; bottom:15%; left:40%; width:18%; height:55%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.6); }
.scn-rousing-brabantion-plan .window-glow { position:absolute; bottom:50%; left:52%; width:10%; height:14%; background: radial-gradient(circle, #d4a050 0%, #b07030 60%, transparent 100%); border-radius: 8px; box-shadow: 0 0 30px 10px #b07030, 0 0 60px 20px rgba(176,112,48,.4); animation: rbp-glow 2s ease-in-out infinite alternate; }
.scn-rousing-brabantion-plan .shout-figure { position:absolute; bottom:20%; left:12%; width:12%; height:25%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -2px 0 4px rgba(0,0,0,.5); animation: rbp-shout 0.8s ease-in-out infinite; }
.scn-rousing-brabantion-plan .lantern-swing { position:absolute; bottom:30%; left:28%; width:3%; height:10%; background: #2a2a1a; border-radius: 2px; transform-origin: top center; animation: rbp-lantern 1.5s ease-in-out infinite; }
.scn-rousing-brabantion-plan .lantern-swing::after { content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:100%; height:100%; background: radial-gradient(circle, #f0c060 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px #f0c060; }
.scn-rousing-brabantion-plan .stone-path { position:absolute; bottom:5%; left:10%; width:80%; height:8%; background: repeating-linear-gradient(90deg, #2a2a2a 0px, #3a3a3a 12px, #2a2a2a 24px); border-radius: 2px; opacity:.6; }
@keyframes rbp-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes rbp-glow { 0% { box-shadow: 0 0 20px 5px #b07030, 0 0 40px 10px rgba(176,112,48,.3); opacity:0.7 } 50% { box-shadow: 0 0 40px 12px #d4a050, 0 0 80px 25px rgba(212,160,80,.5); opacity:1 } 100% { box-shadow: 0 0 25px 6px #b07030, 0 0 50px 15px rgba(176,112,48,.35); opacity:0.8 } }
@keyframes rbp-shout { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes rbp-lantern { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

.scn-brabantio-accuses-roderigo { background: linear-gradient(180deg, #0a0a1a 0%, #151530 50%, #1a1a2a 100%), radial-gradient(ellipse at 30% 50%, #2a2a4a 0%, transparent 60%); }
.scn-brabantio-accuses-roderigo .night-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1a3a 0%, #0f0f2a 100%); animation: bar-night 20s ease-in-out infinite alternate; }
.scn-brabantio-accuses-roderigo .doorway-frame { position:absolute; bottom:10%; left:30%; width:40%; height:80%; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.8); }
.scn-brabantio-accuses-roderigo .brabantio-silhouette { position:absolute; bottom:15%; left:35%; width:14%; height:45%; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 2px 0 4px rgba(0,0,0,.5); animation: bar-stand 3s ease-in-out infinite; }
.scn-brabantio-accuses-roderigo .roderigo-cowering { position:absolute; bottom:10%; left:25%; width:10%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; transform: scaleX(-1); box-shadow: -2px 0 4px rgba(0,0,0,.5); animation: bar-cower 1.2s ease-in-out infinite; }
.scn-brabantio-accuses-roderigo .torch-light { position:absolute; bottom:40%; left:55%; width:6%; height:12%; background: radial-gradient(circle, #e0a050 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px #e0a050; animation: bar-torch 2s ease-in-out infinite alternate; }
.scn-brabantio-accuses-roderigo .cobble-floor { position:absolute; bottom:0; left:10%; width:80%; height:8%; background: repeating-linear-gradient(45deg, #2a2a2a 0px, #3a3a3a 10px, #2a2a2a 20px); border-radius: 2px; opacity:.5; }
@keyframes bar-night { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bar-stand { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1.5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes bar-cower { 0% { transform: translateX(0) translateY(0) scaleX(-1) } 25% { transform: translateX(3px) translateY(-2px) scaleX(-1) } 50% { transform: translateX(0) translateY(0) scaleX(-1) } 75% { transform: translateX(-2px) translateY(-1px) scaleX(-1) } 100% { transform: translateX(0) translateY(0) scaleX(-1) } }
@keyframes bar-torch { 0% { box-shadow: 0 0 30px 15px #e0a050; opacity:0.8 } 50% { box-shadow: 0 0 50px 25px #f0b060; opacity:1 } 100% { box-shadow: 0 0 35px 18px #e0a050; opacity:0.9 } }

.scn-roderigo-testifies { background: linear-gradient(180deg, #0f0f2a 0%, #1a1a3a 40%, #2a2a4a 70%, #1a1a2a 100%), radial-gradient(ellipse at 50% 100%, #2a2a5a 0%, transparent 70%); }
.scn-roderigo-testifies .chamber-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); animation: rtf-bg 12s ease-in-out infinite alternate; }
.scn-roderigo-testifies .pillar-left { position:absolute; bottom:5%; left:15%; width:8%; height:80%; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius: 6% 6% 2% 2%; box-shadow: 4px 0 12px rgba(0,0,0,.6); }
.scn-roderigo-testifies .pillar-right { position:absolute; bottom:5%; right:15%; width:8%; height:80%; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius: 6% 6% 2% 2%; box-shadow: -4px 0 12px rgba(0,0,0,.6); }
.scn-roderigo-testifies .roderigo-standing { position:absolute; bottom:8%; left:40%; width:12%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rtf-stand 4s ease-in-out infinite; }
.scn-roderigo-testifies .magistrate-shadow { position:absolute; bottom:10%; right:30%; width:10%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:.6; transform-origin: bottom center; animation: rtf-shadow 3s ease-in-out infinite alternate; }
.scn-roderigo-testifies .torch-flicker { position:absolute; bottom:50%; left:30%; width:5%; height:10%; background: radial-gradient(circle, #e0a050 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 15px #e0a050; animation: rtf-torch 2s ease-in-out infinite alternate; }
.scn-roderigo-testifies .floor-tiles { position:absolute; bottom:0; left:10%; width:80%; height:6%; background: repeating-conic-gradient(#2a2a3a 0% 25%, #1a1a2a 0% 50%) 0 0 / 20px 10px; opacity:.4; }
@keyframes rtf-bg { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes rtf-stand { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes rtf-shadow { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes rtf-torch { 0% { box-shadow: 0 0 25px 12px #e0a050; opacity:0.8 } 50% { box-shadow: 0 0 45px 22px #f0b060; opacity:1 } 100% { box-shadow: 0 0 30px 15px #e0a050; opacity:0.9 } }

.scn-iago-to-sagittary { background: linear-gradient(180deg, #2a0a0a 0%, #3a1a0a 40%, #4a2a0a 70%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #6a3a1a 0%, transparent 60%); }
.scn-iago-to-sagittary .firelit-room { position:absolute; inset:0; background: linear-gradient(180deg, #4a2a0a 0%, #3a1a0a 100%); animation: igs-room 8s ease-in-out infinite alternate; }
.scn-iago-to-sagittary .table { position:absolute; bottom:10%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 2% 2% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.7); }
.scn-iago-to-sagittary .map-scroll { position:absolute; bottom:15%; left:35%; width:20%; height:8%; background: linear-gradient(90deg, #b08050 0%, #d0a070 50%, #b08050 100%); border-radius: 4px; transform: rotate(-4deg); box-shadow: 2px 2px 6px rgba(0,0,0,.5); animation: igs-map 6s ease-in-out infinite alternate; }
.scn-iago-to-sagittary .iago-silhouette { position:absolute; bottom:12%; left:15%; width:12%; height:40%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: igs-iago 5s ease-in-out infinite; }
.scn-iago-to-sagittary .fire-glow { position:absolute; bottom:5%; left:50%; width:15%; height:20%; background: radial-gradient(circle, #ff9030 0%, #d06020 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 80px 40px #d06020, 0 0 150px 60px rgba(208,96,32,.4); animation: igs-fire 3s ease-in-out infinite alternate; }
.scn-iago-to-sagittary .shadow-flicker { position:absolute; bottom:10%; left:10%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.8) 0%, transparent 100%); animation: igs-shadow 2s ease-in-out infinite alternate; }
@keyframes igs-room { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes igs-map { 0% { transform: rotate(-4deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(1px) } }
@keyframes igs-iago { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1.5deg) } 50% { transform: translateY(0) rotate(-0.5deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes igs-fire { 0% { box-shadow: 0 0 60px 30px #d06020, 0 0 120px 50px rgba(208,96,32,.3); opacity:0.8 } 50% { box-shadow: 0 0 100px 50px #ff9030, 0 0 200px 80px rgba(255,144,48,.5); opacity:1 } 100% { box-shadow: 0 0 70px 35px #d06020, 0 0 140px 60px rgba(208,96,32,.35); opacity:0.9 } }
@keyframes igs-shadow { 0% { transform: scaleX(0.8) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.9) } }

.scn-murder-attempt { background: linear-gradient(180deg, #0f0a12 0%, #1a1020 40%, #12101a 100%), radial-gradient(ellipse at 60% 40%, #3a1c10 0%, transparent 60%); }
.scn-murder-attempt .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #1a1420 0%, #2a1a28 50%, #1a1420 100%); }
.scn-murder-attempt .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a28 0%, #0e0810 100%); }
.scn-murder-attempt .torch-glow { position:absolute; bottom:35%; left:70%; width:80px; height:120px; background: radial-gradient(ellipse at 50% 0%, #ff8c40 0%, #ff5a20 30%, transparent 70%); border-radius:50%; filter:blur(12px); animation: mta-glow 2s ease-in-out infinite alternate; }
.scn-murder-attempt .torch { position:absolute; bottom:28%; left:72%; width:6px; height:50px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:3px; }
.scn-murder-attempt .figure-iago { position:absolute; bottom:20%; left:45%; width:40px; height:90px; background: linear-gradient(180deg, #1a1218 0%, #0a060a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mta-figure 4s ease-in-out infinite; }
.scn-murder-attempt .sword { position:absolute; bottom:55%; left:50%; width:4px; height:70px; background: linear-gradient(180deg, #808090 0%, #c0c0d0 50%, #808090 100%); border-radius:2px; transform-origin: 50% 100%; transform: rotate(-15deg); animation: mta-sword 3s ease-in-out infinite; }
.scn-murder-attempt .shadow { position:absolute; bottom:20%; left:40%; width:50px; height:20px; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); border-radius:50%; filter:blur(4px); animation: mta-shadow 4s ease-in-out infinite; }
@keyframes mta-glow { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.8; transform: scale(.95); } }
@keyframes mta-figure { 0% { transform: translateX(0) translateY(0) rotate(0); } 30% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 60% { transform: translateX(-4px) translateY(0) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes mta-sword { 0% { transform: rotate(-15deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(-15deg); } }
@keyframes mta-shadow { 0% { opacity:.4; transform: scale(1); } 50% { opacity:.6; transform: scale(1.1); } 100% { opacity:.4; transform: scale(1); } }

.scn-cassio-wounded { background: linear-gradient(180deg, #0a0a14 0%, #121026 30%, #0e0c1a 100%), radial-gradient(ellipse at 30% 50%, #1a2030 0%, transparent 70%); }
.scn-cassio-wounded .bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #121026 0%, #0a0a14 100%); }
.scn-cassio-wounded .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1420 0%, #0e0810 100%); }
.scn-cassio-wounded .cassio { position:absolute; bottom:18%; left:30%; width:50px; height:80px; background: linear-gradient(180deg, #1e1820 0%, #0e0810 100%); border-radius: 50% 50% 30% 40% / 70% 70% 30% 30%; transform-origin: bottom center; transform: rotate(-10deg); animation: csw-cassio 5s ease-in-out infinite; }
.scn-cassio-wounded .iago { position:absolute; bottom:20%; left:60%; width:45px; height:100px; background: linear-gradient(180deg, #1a1218 0%, #0a060a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: csw-iago 4s ease-in-out infinite; }
.scn-cassio-wounded .dagger { position:absolute; bottom:60%; left:62%; width:3px; height:40px; background: linear-gradient(180deg, #909090 0%, #d0d0d0 40%, #909090 100%); border-radius:2px; transform: rotate(20deg); animation: csw-dagger 2s ease-in-out infinite; }
.scn-cassio-wounded .wound { position:absolute; bottom:35%; left:37%; width:12px; height:12px; background: radial-gradient(circle, #8c3a2a 0%, #5c1a10 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(140,58,42,.4); animation: csw-wound 3s ease-in-out infinite alternate; }
.scn-cassio-wounded .blood { position:absolute; bottom:10%; left:28%; width:40px; height:8px; background: linear-gradient(90deg, #5c1a10 0%, #8c3a2a 50%, transparent 100%); border-radius:50%; filter:blur(3px); animation: csw-blood 6s ease-in-out infinite; }
@keyframes csw-cassio { 0% { transform: rotate(-10deg) translateY(0); } 25% { transform: rotate(-5deg) translateY(-3px); } 50% { transform: rotate(-15deg) translateY(0); } 75% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes csw-iago { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes csw-dagger { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-5px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes csw-wound { 0% { opacity:.5; box-shadow: 0 0 8px 2px rgba(140,58,42,.3); } 50% { opacity:1; box-shadow: 0 0 16px 6px rgba(140,58,42,.6); } 100% { opacity:.6; box-shadow: 0 0 10px 3px rgba(140,58,42,.4); } }
@keyframes csw-blood { 0% { transform: scaleX(1); opacity:.6; } 50% { transform: scaleX(1.2); opacity:.9; } 100% { transform: scaleX(1); opacity:.6; } }

.scn-othello-rages { background: linear-gradient(180deg, #0e0a14 0%, #1a1020 40%, #12101a 100%), radial-gradient(ellipse at 50% 20%, #2a1a28 0%, transparent 70%); }
.scn-othello-rages .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1420 0%, #12101a 100%); }
.scn-othello-rages .bed { position:absolute; bottom:10%; left:20%; width:140px; height:60px; background: linear-gradient(180deg, #2a1a28 0%, #1a1020 100%); border-radius: 20% 20% 5% 5%; box-shadow: inset 0 8px 16px rgba(0,0,0,.4); animation: ora-bed 8s ease-in-out infinite alternate; }
.scn-othello-rages .desdemona { position:absolute; bottom:8%; left:35%; width:35px; height:70px; background: linear-gradient(180deg, #2a1a28 0%, #1a1020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; transform: rotate(-5deg); animation: ora-desdemona 6s ease-in-out infinite; }
.scn-othello-rages .othello { position:absolute; bottom:12%; left:60%; width:50px; height:100px; background: linear-gradient(180deg, #1a1218 0%, #0a060a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ora-othello 4s ease-in-out infinite; }
.scn-othello-rages .sword { position:absolute; bottom:55%; left:62%; width:5px; height:80px; background: linear-gradient(180deg, #a0a0b0 0%, #d0d0e0 50%, #a0a0b0 100%); border-radius:2px; transform-origin: 50% 100%; transform: rotate(10deg); animation: ora-sword 3s ease-in-out infinite; }
.scn-othello-rages .shadow { position:absolute; bottom:10%; left:55%; width:60px; height:30px; background: linear-gradient(180deg, rgba(0,0,0,.7) 0%, transparent 100%); border-radius:50%; filter:blur(6px); animation: ora-shadow 4s ease-in-out infinite; }
@keyframes ora-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ora-desdemona { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(-8deg) translateY(-3px); } 50% { transform: rotate(-3deg) translateY(0); } 75% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ora-othello { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-8px) rotate(-3deg); } 60% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ora-sword { 0% { transform: rotate(10deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(10deg); } }
@keyframes ora-shadow { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.2); } 100% { opacity:.3; transform: scale(1); } }

.scn-roderigo-killed { background: linear-gradient(180deg, #0a0812 0%, #0e0c1a 40%, #120e1a 100%), radial-gradient(ellipse at 70% 60%, #1a1a2a 0%, transparent 60%); }
.scn-roderigo-killed .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1420 0%, #0e0810 100%); }
.scn-roderigo-killed .roderigo { position:absolute; bottom:5%; left:40%; width:40px; height:70px; background: linear-gradient(180deg, #1a1820 0%, #0e0a10 100%); border-radius: 50% 50% 30% 40% / 70% 70% 30% 30%; transform-origin: bottom center; transform: rotate(-20deg); animation: rk-roderigo 8s ease-in-out infinite; }
.scn-roderigo-killed .iago { position:absolute; bottom:18%; left:65%; width:45px; height:100px; background: linear-gradient(180deg, #1a1218 0%, #0a060a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rk-iago 6s ease-in-out infinite; }
.scn-roderigo-killed .lantern { position:absolute; bottom:30%; left:70%; width:8px; height:12px; background: #ffa040; border-radius:20% 20% 10% 10%; box-shadow: 0 0 20px 6px rgba(255,160,64,.6); animation: rk-lantern 2.5s ease-in-out infinite alternate; }
.scn-roderigo-killed .blood-pool { position:absolute; bottom:2%; left:35%; width:50px; height:10px; background: linear-gradient(90deg, #5c1a10 0%, #8c3a2a 50%, #3a0e08 100%); border-radius:50%; filter:blur(4px); animation: rk-blood 10s ease-in-out infinite; }
.scn-roderigo-killed .fog { position:absolute; inset:auto 0 0 0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(30,20,30,.3) 100%); filter:blur(8px); animation: rk-fog 15s ease-in-out infinite alternate; }
@keyframes rk-roderigo { 0% { transform: rotate(-20deg) translateY(0); } 30% { transform: rotate(-15deg) translateY(-2px); } 60% { transform: rotate(-25deg) translateY(0); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes rk-iago { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rk-lantern { 0% { opacity:.7; box-shadow: 0 0 15px 4px rgba(255,160,64,.5); } 50% { opacity:1; box-shadow: 0 0 25px 8px rgba(255,160,64,.8); } 100% { opacity:.8; box-shadow: 0 0 18px 5px rgba(255,160,64,.6); } }
@keyframes rk-blood { 0% { transform: scaleX(1); opacity:.4; } 50% { transform: scaleX(1.1); opacity:.7; } 100% { transform: scaleX(1); opacity:.4; } }
@keyframes rk-fog { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.5; } }

.scn-musicians-morning {
  background: linear-gradient(180deg, #4a5a7a 0%, #6b7d9e 40%, #b0a68c 70%, #d6c9ab 100%), radial-gradient(ellipse at 80% 30%, #f0d7b0 0%, transparent 60%);
}
.scn-musicians-morning .sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #6a7e9e 0%, #b9ad9a 100%);
  animation: mm-sky 12s ease-in-out infinite alternate;
}
.scn-musicians-morning .wall {
  position:absolute; bottom:30%; left:10%; right:20%; height:40%;
  background: linear-gradient(180deg, #8b7a6a 0%, #6a5a4a 100%);
  border-radius: 2% 2% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-musicians-morning .musician.a {
  position:absolute; bottom:32%; left:20%; width:30px; height:50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mm-figure 4s ease-in-out infinite;
}
.scn-musicians-morning .musician.b {
  position:absolute; bottom:32%; left:35%; width:30px; height:50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mm-figure 4s ease-in-out infinite 2s;
}
.scn-musicians-morning .lute {
  position:absolute; bottom:38%; left:23%; width:20px; height:10px;
  background: radial-gradient(ellipse, #b08050 0%, #7a5030 100%);
  border-radius: 50%; transform: rotate(-20deg);
  animation: mm-instrument 2s ease-in-out infinite alternate;
}
.scn-musicians-morning .pipe {
  position:absolute; bottom:40%; left:38%; width:6px; height:18px;
  background: linear-gradient(180deg, #c8b080 0%, #a08050 100%);
  border-radius: 3px; transform: rotate(15deg);
  animation: mm-instrument 2s ease-in-out infinite alternate-reverse;
}
.scn-musicians-morning .sunray {
  position:absolute; top:-10%; right:10%; width:40%; height:60%;
  background: linear-gradient(135deg, rgba(255,220,160,0.4) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: mm-sunray 8s ease-in-out infinite alternate;
}
@keyframes mm-sky {
  0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; }
}
@keyframes mm-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes mm-instrument {
  0% { transform: rotate(-22deg) scale(1); }
  100% { transform: rotate(-18deg) scale(1.02); }
}
@keyframes mm-sunray {
  0% { opacity:0.3; transform: translateX(-5%) rotate(-1deg); }
  100% { opacity:0.6; transform: translateX(5%) rotate(1deg); }
}

.scn-clown-dismisses-musicians {
  background: linear-gradient(180deg, #4a5a7a 0%, #6b7d9e 40%, #b0a68c 70%, #d6c9ab 100%), radial-gradient(ellipse at 20% 50%, #e8d0b0 0%, transparent 60%);
}
.scn-clown-dismisses-musicians .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #6a7e9e 0%, #b9ad9a 100%);
  animation: cd-sky 12s ease-in-out infinite alternate;
}
.scn-clown-dismisses-musicians .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 60% 0 0 / 60% 70% 0 0;
}
.scn-clown-dismisses-musicians .clown {
  position:absolute; bottom:30%; left:15%; width:40px; height:70px;
  background: linear-gradient(180deg, #e8d080 0%, #b08040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: cd-clown 3s ease-in-out infinite;
}
.scn-clown-dismisses-musicians .musician.a {
  position:absolute; bottom:32%; left:45%; width:30px; height:50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cd-musician 4s ease-in-out infinite;
}
.scn-clown-dismisses-musicians .musician.b {
  position:absolute; bottom:32%; left:55%; width:30px; height:50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cd-musician 4s ease-in-out infinite 2s;
}
.scn-clown-dismisses-musicians .bag {
  position:absolute; bottom:34%; left:48%; width:22px; height:16px;
  background: radial-gradient(ellipse, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 40%; transform: rotate(10deg);
  animation: cd-bag 6s ease-in-out infinite;
}
.scn-clown-dismisses-musicians .puff.a {
  position:absolute; bottom:38%; left:20%; width:10px; height:10px;
  background: radial-gradient(circle, rgba(255,255,200,0.6) 0%, transparent 100%);
  border-radius:50%; filter: blur(3px);
  animation: cd-puff 3s ease-out infinite;
}
.scn-clown-dismisses-musicians .puff.b {
  position:absolute; bottom:42%; left:25%; width:7px; height:7px;
  background: radial-gradient(circle, rgba(255,255,200,0.4) 0%, transparent 100%);
  border-radius:50%; filter: blur(2px);
  animation: cd-puff 3s ease-out infinite 1.5s;
}
@keyframes cd-sky {
  0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; }
}
@keyframes cd-clown {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-5px) rotate(3deg); }
  60% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cd-musician {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(-3px) translateY(-1px); }
  50% { transform: translateX(0) translateY(0); }
  75% { transform: translateX(3px) translateY(1px); }
  100% { transform: translateX(0); }
}
@keyframes cd-bag {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(2px); }
  100% { transform: rotate(10deg) translateX(0); }
}
@keyframes cd-puff {
  0% { opacity:1; transform: scale(0.5) translateY(0); }
  100% { opacity:0; transform: scale(2) translateY(-15px); }
}

.scn-cassio-meets-iago-morning {
  background: linear-gradient(180deg, #4a5a7a 0%, #6b7d9e 40%, #b0a68c 70%, #d6c9ab 100%), radial-gradient(ellipse at 50% 80%, #f0d7b0 0%, transparent 70%);
}
.scn-cassio-meets-iago-morning .sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #6a7e9e 0%, #b9ad9a 100%);
  animation: cm-sky 12s ease-in-out infinite alternate;
}
.scn-cassio-meets-iago-morning .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
}
.scn-cassio-meets-iago-morning .cassio {
  position:absolute; bottom:30%; left:25%; width:35px; height:60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cm-figure 5s ease-in-out infinite;
}
.scn-cassio-meets-iago-morning .iago {
  position:absolute; bottom:30%; right:25%; width:35px; height:60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cm-figure 5s ease-in-out infinite 2.5s;
}
.scn-cassio-meets-iago-morning .lightstrip {
  position:absolute; top:20%; left:50%; width:4px; height:50%;
  background: linear-gradient(180deg, rgba(255,220,160,0.5) 0%, transparent 100%);
  transform: translateX(-50%);
  animation: cm-light 8s ease-in-out infinite alternate;
}
.scn-cassio-meets-iago-morning .shadow.a {
  position:absolute; bottom:28%; left:20%; width:40px; height:10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius:50%;
  animation: cm-shadow 5s ease-in-out infinite;
}
.scn-cassio-meets-iago-morning .shadow.b {
  position:absolute; bottom:28%; right:20%; width:40px; height:10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius:50%;
  animation: cm-shadow 5s ease-in-out infinite 2.5s;
}
@keyframes cm-sky {
  0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; }
}
@keyframes cm-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cm-light {
  0% { opacity:0.3; transform: translateX(-50%) scaleY(0.9); }
  100% { opacity:0.6; transform: translateX(-50%) scaleY(1.1); }
}
@keyframes cm-shadow {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(0.9) translateX(3px); }
  100% { transform: scaleX(1) translateX(0); }
}

.scn-emilia-encourages-cassio {
  background: linear-gradient(180deg, #f5ebe0 0%, #e8d5c0 50%, #d4b896 100%), radial-gradient(ellipse at 70% 20%, #fff5e0 0%, transparent 60%);
}
.scn-emilia-encourages-cassio .wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(135deg, #d4b896 0%, #c4a888 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
}
.scn-emilia-encourages-cassio .window {
  position:absolute; top:15%; left:60%; width:80px; height:60px;
  background: linear-gradient(135deg, #fff8e0 0%, #f0e0b0 100%);
  border: 4px solid #a08060;
  border-radius: 4px;
  box-shadow: 0 0 40px rgba(255,240,160,0.5);
  animation: ec-window 5s ease-in-out infinite alternate;
}
.scn-emilia-encourages-cassio .lightbeam {
  position:absolute; top:20%; left:55%; right:15%; bottom:40%;
  background: linear-gradient(135deg, rgba(255,240,160,0.3) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 10% 100%);
  animation: ec-beam 8s ease-in-out infinite;
}
.scn-emilia-encourages-cassio .emilia {
  position:absolute; bottom:25%; left:30%; width:30px; height:55px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ec-figure 4s ease-in-out infinite;
}
.scn-emilia-encourages-cassio .cassio {
  position:absolute; bottom:25%; right:30%; width:30px; height:55px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ec-figure 4s ease-in-out infinite 2s;
}
.scn-emilia-encourages-cassio .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #b09878 0%, #8a7050 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-emilia-encourages-cassio .warmth {
  position:absolute; top:30%; left:20%; width:60%; height:60%;
  background: radial-gradient(ellipse at 70% 20%, rgba(255,230,180,0.2) 0%, transparent 70%);
  animation: ec-warmth 10s ease-in-out infinite alternate;
}
@keyframes ec-window {
  0% { filter: blur(0px); box-shadow: 0 0 40px rgba(255,240,160,0.5); }
  100% { filter: blur(1px); box-shadow: 0 0 60px rgba(255,240,160,0.7); }
}
@keyframes ec-beam {
  0% { opacity:0.4; transform: rotate(-1deg); }
  50% { opacity:0.7; transform: rotate(0deg); }
  100% { opacity:0.5; transform: rotate(1deg); }
}
@keyframes ec-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ec-warmth {
  0% { opacity:0.3; }
  50% { opacity:0.6; }
  100% { opacity:0.4; }
}

.scn-iago-accuses-bianca {
  background: linear-gradient(180deg, #1a0e0a 0%, #2a150e 40%, #1f0f0b 100%),
              radial-gradient(ellipse at 30% 60%, #4a2210 0%, transparent 60%);
}
.scn-iago-accuses-bianca .night-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #0a0503 0%, #1a0e0a 60%, #2a150e 100%);
  animation: iab-bg 12s ease-in-out infinite alternate;
}
.scn-iago-accuses-bianca .torch-glow {
  position: absolute; top: 10%; left: 20%; width: 40%; height: 40%;
  background: radial-gradient(circle at 50% 50%, #e07030 0%, #a04020 40%, transparent 70%);
  mix-blend-mode: screen; animation: iab-torch 3s ease-in-out infinite;
}
.scn-iago-accuses-bianca .figure-left {
  position: absolute; bottom: 20%; left: 15%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #3a2015 0%, #1f100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: iab-fig-l 2.5s ease-in-out infinite alternate;
}
.scn-iago-accuses-bianca .figure-right {
  position: absolute; bottom: 20%; right: 15%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #4a2c1a 0%, #2a1810 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: iab-fig-r 3.2s ease-in-out infinite alternate;
}
.scn-iago-accuses-bianca .fallen {
  position: absolute; bottom: 10%; left: 45%; width: 8%; height: 20%;
  background: #2a1810; border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 15px 5px rgba(0,0,0,0.6);
  animation: iab-fallen 4s ease-in-out infinite;
}
.scn-iago-accuses-bianca .sword {
  position: absolute; bottom: 18%; left: 48%; width: 2%; height: 25%;
  background: linear-gradient(180deg, #aaa 0%, #555 100%);
  border-radius: 2px;
  transform: rotate(-25deg);
  animation: iab-sword 2s ease-in-out infinite;
}
.scn-iago-accuses-bianca .sparks {
  position: absolute; top: 35%; left: 22%; width: 6%; height: 6%;
  background: radial-gradient(circle, #ff8c42 0%, transparent 70%);
  border-radius: 50%;
  animation: iab-sparks 0.8s ease-in-out infinite;
}
.scn-iago-accuses-bianca .smoke {
  position: absolute; top: 5%; left: 50%; width: 20%; height: 20%;
  background: radial-gradient(circle at 50% 50%, rgba(180,140,100,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: iab-smoke 6s linear infinite;
}
@keyframes iab-bg { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes iab-torch { 0% { transform: scale(1) rotate(0deg); opacity: 0.8 } 50% { transform: scale(1.1) rotate(3deg); opacity: 1 } 100% { transform: scale(0.95) rotate(-3deg); opacity: 0.7 } }
@keyframes iab-fig-l { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(3px) rotate(1deg) } }
@keyframes iab-fig-r { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(-4px) rotate(-1deg) } }
@keyframes iab-fallen { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes iab-sword { 0% { transform: rotate(-25deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(-28deg) } }
@keyframes iab-sparks { 0% { transform: scale(1) translate(0,0); opacity: 0 } 50% { transform: scale(2) translate(5px,-5px); opacity: 1 } 100% { transform: scale(0.5) translate(10px,-10px); opacity: 0 } }
@keyframes iab-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.5 } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.2 } 100% { transform: translateY(-40px) scale(2); opacity: 0 } }

.scn-cassio-carried {
  background: linear-gradient(180deg, #0d0805 0%, #1a0e08 50%, #2d1710 100%),
              radial-gradient(ellipse at 50% 80%, #5a2a18 0%, transparent 70%);
}
.scn-cassio-carried .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #050201 0%, #0d0805 60%, #1a0e08 100%);
}
.scn-cassio-carried .torch-flare {
  position: absolute; top: 20%; left: 70%; width: 20%; height: 30%;
  background: radial-gradient(circle at 50% 50%, #ff8c42 0%, #b84820 30%, transparent 60%);
  mix-blend-mode: screen;
  animation: cca-flare 2s ease-in-out infinite alternate;
}
.scn-cassio-carried .carrier-a {
  position: absolute; bottom: 10%; left: 20%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cca-carr-a 3s ease-in-out infinite;
}
.scn-cassio-carried .carrier-b {
  position: absolute; bottom: 10%; right: 20%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cca-carr-b 3.5s ease-in-out infinite;
}
.scn-cassio-carried .cassio-body {
  position: absolute; bottom: 25%; left: 42%; width: 16%; height: 25%;
  background: linear-gradient(180deg, #2a1810 0%, #1a0e08 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: cca-body 4s ease-in-out infinite;
}
.scn-cassio-carried .chair {
  position: absolute; bottom: 15%; left: 38%; width: 24%; height: 10%;
  background: linear-gradient(180deg, #5a3a23 0%, #3a2215 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(10deg);
  animation: cca-chair 2s ease-in-out infinite alternate;
}
.scn-cassio-carried .ground-shadow {
  position: absolute; bottom: 5%; left: 15%; width: 70%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: cca-shadow 3s ease-in-out infinite alternate;
}
@keyframes cca-flare { 0% { transform: scale(1) rotate(0deg); opacity: 0.8 } 50% { transform: scale(1.15) rotate(5deg); opacity: 1 } 100% { transform: scale(0.9) rotate(-5deg); opacity: 0.7 } }
@keyframes cca-carr-a { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(1px) rotate(-1deg) } }
@keyframes cca-carr-b { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-4px) rotate(-1deg) } 100% { transform: translateY(2px) rotate(0deg) } }
@keyframes cca-body { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(1px) rotate(-1deg) } }
@keyframes cca-chair { 0% { transform: perspective(400px) rotateX(10deg) } 50% { transform: perspective(400px) rotateX(14deg) } 100% { transform: perspective(400px) rotateX(8deg) } }
@keyframes cca-shadow { 0% { opacity: 0.5; transform: scaleX(1) } 50% { opacity: 0.8; transform: scaleX(1.1) } 100% { opacity: 0.6; transform: scaleX(0.9) } }

.scn-iago-sends-emilia {
  background: linear-gradient(180deg, #0e0a07 0%, #1f1210 40%, #2c1b14 100%),
              radial-gradient(ellipse at 70% 40%, #6a2d15 0%, transparent 60%);
}
.scn-iago-sends-emilia .bg-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #050302 0%, #0e0a07 60%, #1f1210 100%);
}
.scn-iago-sends-emilia .door-frame {
  position: absolute; top: 10%; left: 70%; width: 20%; height: 80%;
  background: linear-gradient(180deg, #3a2218 0%, #1a100a 100%);
  border-radius: 5% 0 0 5%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.8);
  animation: ise-door 8s ease-in-out infinite alternate;
}
.scn-iago-sends-emilia .figure-emilia {
  position: absolute; bottom: 15%; left: 60%; width: 10%; height: 45%;
  background: linear-gradient(180deg, #2a1a12 0%, #150d09 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ise-emilia 3s ease-in-out infinite;
}
.scn-iago-sends-emilia .figure-iago {
  position: absolute; bottom: 15%; left: 30%; width: 10%; height: 50%;
  background: linear-gradient(180deg, #3a241a 0%, #1f120c 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: ise-iago 2.8s ease-in-out infinite alternate;
}
.scn-iago-sends-emilia .cassio-silhouette {
  position: absolute; bottom: 10%; left: 45%; width: 8%; height: 20%;
  background: #1a0e08;
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: ise-cass 4s ease-in-out infinite;
}
.scn-iago-sends-emilia .chair-empty {
  position: absolute; bottom: 8%; left: 42%; width: 16%; height: 12%;
  background: linear-gradient(180deg, #5a3a23 0%, #3a2215 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.7);
  animation: ise-chair 3s ease-in-out infinite alternate;
}
.scn-iago-sends-emilia .candle {
  position: absolute; top: 30%; left: 25%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #c8935c 0%, #5a2d18 100%);
  border-radius: 50% 50% 10% 10%;
  transform-origin: bottom center;
  animation: ise-candle 5s ease-in-out infinite;
}
.scn-iago-sends-emilia .candle-light {
  position: absolute; top: 25%; left: 22%; width: 8%; height: 10%;
  background: radial-gradient(circle, #ffa555 0%, #d06020 50%, transparent 80%);
  mix-blend-mode: screen;
  animation: ise-light 2s ease-in-out infinite alternate;
}
@keyframes ise-door { 0% { transform: skewY(0deg) } 50% { transform: skewY(-2deg) } 100% { transform: skewY(1deg) } }
@keyframes ise-emilia { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(2px) rotate(1deg) } }
@keyframes ise-iago { 0% { transform: translateX(0) rotate(0deg) scaleY(1) } 50% { transform: translateX(3px) rotate(1deg) scaleY(1.02) } 100% { transform: translateX(-3px) rotate(-1deg) scaleY(0.98) } }
@keyframes ise-cass { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(1px) } }
@keyframes ise-chair { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes ise-candle { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.1) } 100% { transform: rotate(-5deg) scaleY(0.95) } }
@keyframes ise-light { 0% { transform: scale(1); opacity: 0.8 } 50% { transform: scale(1.3); opacity: 1 } 100% { transform: scale(0.9); opacity: 0.7 } }

.scn-bianca-protest {
  background: linear-gradient(180deg, #120a07 0%, #1f1410 40%, #2a1a14 100%),
              radial-gradient(ellipse at 40% 50%, #4a2015 0%, transparent 60%);
}
.scn-bianca-protest .bg-blackish {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #070402 0%, #120a07 60%, #1f1410 100%);
}
.scn-bianca-protest .torch-back {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 35%;
  background: radial-gradient(circle at 50% 50%, #ff7c30 0%, #a04020 30%, transparent 60%);
  mix-blend-mode: screen;
  animation: bip-torch 2.5s ease-in-out infinite alternate;
}
.scn-bianca-protest .bianca-figure {
  position: absolute; bottom: 20%; left: 45%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #3a241c 0%, #1a100b 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: bip-bian 3.5s ease-in-out infinite;
}
.scn-bianca-protest .accuser-figure {
  position: absolute; bottom: 20%; left: 20%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #3a2015 0%, #1a0e09 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: bip-accu 3s ease-in-out infinite alternate;
}
.scn-bianca-protest .cassio-stretcher {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(90deg, #2a1810, #1a0e08, #2a1810);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.8);
  animation: bip-stretcher 4s ease-in-out infinite;
}
.scn-bianca-protest .accusing-hand {
  position: absolute; bottom: 35%; left: 30%; width: 3%; height: 15%;
  background: #4a3020;
  border-radius: 0 0 40% 40% / 20% 20% 60% 60%;
  transform: rotate(10deg);
  transform-origin: top center;
  animation: bip-hand 2s ease-in-out infinite alternate;
}
.scn-bianca-protest .eye-glow {
  position: absolute; bottom: 55%; left: 48%; width: 4%; height: 4%;
  background: radial-gradient(circle, #ffd080 0%, transparent 60%);
  border-radius: 50%;
  animation: bip-eye 1.5s ease-in-out infinite;
}
.scn-bianca-protest .shadow-pool {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 6%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.7) 0%, transparent 70%);
  border-radius: 50%;
  animation: bip-pool 3s ease-in-out infinite alternate;
}
@keyframes bip-torch { 0% { transform: scale(1) rotate(0deg); opacity: 0.7 } 50% { transform: scale(1.2) rotate(4deg); opacity: 1 } 100% { transform: scale(0.9) rotate(-4deg); opacity: 0.6 } }
@keyframes bip-bian { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(4px) rotate(1deg) } }
@keyframes bip-accu { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(5px) scaleY(1.02) } 100% { transform: translateX(-3px) scaleY(0.98) } }
@keyframes bip-stretcher { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(1px) rotate(-1deg) } }
@keyframes bip-hand { 0% { transform: rotate(10deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(0deg) } }
@keyframes bip-eye { 0% { transform: scale(1); opacity: 0.8 } 50% { transform: scale(2); opacity: 1 } 100% { transform: scale(1); opacity: 0.6 } }
@keyframes bip-pool { 0% { opacity: 0.6; transform: scaleX(1) } 50% { opacity: 0.9; transform: scaleX(1.2) } 100% { opacity: 0.7; transform: scaleX(0.9) } }

/* Scene: iago-persuades-roderigo */
.scn-iago-persuades-roderigo {
  background: 
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1210 0%, #2a1e18 40%, #1a1210 100%);
}
.scn-iago-persuades-roderigo .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2218 0%, #1a1210 100%);
  border-radius: 0 0 20% 20%;
  animation: iag-wall 6s ease-in-out infinite alternate;
}
.scn-iago-persuades-roderigo .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
  border-radius: 20% 20% 0 0;
}
.scn-iago-persuades-roderigo .table {
  position: absolute; bottom: 25%; left: 50%; width: 70px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: iag-table 12s ease-in-out infinite;
}
.scn-iago-persuades-roderigo .candle-flame {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 16px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd070 0%, #c08040 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 20px 8px #c08040, 0 0 40px 16px rgba(192,128,64,0.4);
  animation: iag-candle 0.8s ease-in-out infinite alternate;
}
.scn-iago-persuades-roderigo .iago {
  position: absolute; bottom: 24%; left: 38%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: iag-iago 4s ease-in-out infinite;
}
.scn-iago-persuades-roderigo .roderigo {
  position: absolute; bottom: 24%; left: 56%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #1c1412 0%, #0c0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: iag-roderigo 4.5s ease-in-out infinite;
}
.scn-iago-persuades-roderigo .shadow {
  position: absolute; bottom: 24%; left: 45%; width: 30px; height: 8px;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  filter: blur(4px);
  animation: iag-shadow 3s ease-in-out infinite alternate;
}
@keyframes iag-wall { 0% { opacity: 0.7 } 50% { opacity: 0.8 } 100% { opacity: 0.7 } }
@keyframes iag-table { 0%, 100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes iag-candle { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.1) } 100% { transform: translateX(-50%) scaleY(0.9) } }
@keyframes iag-iago { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes iag-roderigo { 0%, 100% { transform: rotate(5deg) } 50% { transform: rotate(3deg) } }
@keyframes iag-shadow { 0% { transform: scaleX(1); opacity: 0.6 } 50% { transform: scaleX(1.2); opacity: 0.4 } 100% { transform: scaleX(1); opacity: 0.6 } }

/* Scene: willow-song */
.scn-willow-song {
  background: 
    radial-gradient(ellipse at 70% 20%, #3a4a5a 0%, transparent 50%),
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 100%);
}
.scn-willow-song .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 0 0 30% 30%;
  animation: wil-wall 10s ease-in-out infinite alternate;
}
.scn-willow-song .window {
  position: absolute; top: 12%; left: 65%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: inset 0 0 12px #8a9aae;
}
.scn-willow-song .moonlight {
  position: absolute; top: 14%; left: 66%; width: 36px; height: 44px;
  background: radial-gradient(ellipse at 50% 40%, rgba(200,220,255,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: wil-moon 8s ease-in-out infinite alternate;
}
.scn-willow-song .desdemona {
  position: absolute; bottom: 24%; left: 35%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wil-desdemona 6s ease-in-out infinite;
}
.scn-willow-song .willow-branch {
  position: absolute; top: 10%; left: 20%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 20% 20% 80% 80%;
  transform: rotate(-30deg);
  filter: blur(1px);
  animation: wil-branch 12s ease-in-out infinite alternate;
}
.scn-willow-song .handkerchief {
  position: absolute; bottom: 20%; left: 30%; width: 12px; height: 8px;
  background: linear-gradient(180deg, #c8a8a0 0%, #a88a80 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: wil-handkerchief 10s ease-in-out infinite;
}
@keyframes wil-wall { 0% { opacity: 0.8 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes wil-moon { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes wil-desdemona { 0%, 100% { transform: translateX(0) } 25% { transform: translateX(3px) rotate(1deg) } 75% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes wil-branch { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-28deg) } 100% { transform: rotate(-32deg) } }
@keyframes wil-handkerchief { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* Scene: bedchamber-preparation */
.scn-bedchamber-preparation {
  background: 
    radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 60%),
    linear-gradient(180deg, #1e1814 0%, #2a2018 40%, #1e1814 100%);
}
.scn-bedchamber-preparation .room-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2018 0%, #1e1814 100%);
  border-radius: 0 0 10% 10%;
  animation: bed-wall 9s ease-in-out infinite alternate;
}
.scn-bedchamber-preparation .bed {
  position: absolute; bottom: 10%; left: 20%; width: 90px; height: 30px;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a12 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bed-bed 12s ease-in-out infinite;
}
.scn-bedchamber-preparation .desdemona-sit {
  position: absolute; bottom: 18%; left: 25%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bed-des 5s ease-in-out infinite;
}
.scn-bedchamber-preparation .emilia-stand {
  position: absolute; bottom: 16%; left: 45%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bed-emilia 4.5s ease-in-out infinite;
}
.scn-bedchamber-preparation .candle-glow {
  position: absolute; bottom: 30%; left: 60%; width: 10px; height: 18px;
  background: radial-gradient(circle, #ffd070 0%, #c08040 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 24px 10px #c08040, 0 0 48px 20px rgba(192,128,64,0.3);
  animation: bed-candle 1.2s ease-in-out infinite alternate;
}
.scn-bedchamber-preparation .mirror {
  position: absolute; top: 10%; left: 70%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border: 2px solid #5a4a3a;
  border-radius: 6% 6% 8% 8%;
  box-shadow: 0 0 8px rgba(200,220,255,0.2);
  animation: bed-mirror 7s ease-in-out infinite alternate;
}
.scn-bedchamber-preparation .nightgown {
  position: absolute; bottom: 16%; left: 15%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(10deg);
  animation: bed-gown 8s ease-in-out infinite;
}
@keyframes bed-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes bed-bed { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes bed-des { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(1px) rotate(1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bed-emilia { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes bed-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.95) } }
@keyframes bed-mirror { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }
@keyframes bed-gown { 0% { transform: rotate(10deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(10deg) } }

/* Scene: barbara-song */
.scn-barbara-song {
  background: 
    radial-gradient(ellipse at 30% 30%, #2a3a4a 0%, transparent 60%),
    linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #0e0e1a 100%);
}
.scn-barbara-song .dark-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 0 0 15% 15%;
  animation: bar-wall 8s ease-in-out infinite alternate;
}
.scn-barbara-song .light-shaft {
  position: absolute; top: 0; left: 40%; width: 30px; height: 80%;
  background: linear-gradient(180deg, rgba(180,200,230,0.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: bar-light 10s ease-in-out infinite alternate;
}
.scn-barbara-song .desdemona-listening {
  position: absolute; bottom: 18%; left: 25%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: bar-des 7s ease-in-out infinite;
}
.scn-barbara-song .bart-barbara {
  position: absolute; bottom: 18%; left: 55%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  filter: blur(1px);
  animation: bar-barb 12s ease-in-out infinite alternate;
}
.scn-barbara-song .willow-tree {
  position: absolute; top: 5%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 10% 10% 90% 90%;
  transform: rotate(-40deg);
  filter: blur(2px);
  animation: bar-tree 15s ease-in-out infinite alternate;
}
.scn-barbara-song .tear {
  position: absolute; bottom: 16%; left: 30%; width: 4px; height: 6px;
  background: radial-gradient(circle, #8aaad0 0%, #5a7aaa 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(100,130,180,0.4);
  animation: bar-tear 3s ease-in-out infinite;
}
@keyframes bar-wall { 0% { opacity: 0.8 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes bar-light { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.3 } }
@keyframes bar-des { 0% { transform: rotate(-5deg) } 25% { transform: rotate(-3deg) } 75% { transform: rotate(-7deg) } 100% { transform: rotate(-5deg) } }
@keyframes bar-barb { 0% { opacity: 0.6; transform: translateY(0) } 50% { opacity: 0.8; transform: translateY(-2px) } 100% { opacity: 0.6; transform: translateY(0) } }
@keyframes bar-tree { 0% { transform: rotate(-40deg) } 50% { transform: rotate(-38deg) } 100% { transform: rotate(-42deg) } }
@keyframes bar-tear { 0% { transform: translateY(0); opacity: 1 } 50% { transform: translateY(5px); opacity: 0.7 } 100% { transform: translateY(0); opacity: 1 } }

/* iago-manipulates – tense, dim interior with two figures */
.scn-iago-manipulates {
  background: linear-gradient(180deg, #1e1a24 0%, #2b2430 40%, #3b3040 100%),
              radial-gradient(ellipse at 40% 70%, #4a3a4e 0%, transparent 60%);
}
.scn-iago-manipulates .bg { position:absolute; inset:0; background:#1e1a24; }
.scn-iago-manipulates .wall-left { position:absolute; top:0; left:0; width:35%; height:100%; background:linear-gradient(180deg, #2b2430 0%, #201c28 100%); }
.scn-iago-manipulates .wall-right { position:absolute; top:0; right:0; width:45%; height:100%; background:linear-gradient(180deg, #2f2838 0%, #241e30 100%); }
.scn-iago-manipulates .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #1a1620 0%, #0e0c14 100%); border-radius:0 0 12% 12% / 0 0 8% 8%; }
.scn-iago-manipulates .candle { position:absolute; bottom:48%; left:50%; width:6px; height:14px; transform:translateX(-50%); background:radial-gradient(circle at 50% 20%, #f5a040 0%, #b06020 60%, #602010 100%); border-radius:2px; box-shadow:0 0 18px 6px #d08040, 0 0 40px 12px rgba(208,128,64,.3); animation:im-candle 3s ease-in-out infinite alternate; }
.scn-iago-manipulates .figure-seated { position:absolute; bottom:22%; left:30%; width:30px; height:60px; background:linear-gradient(180deg, #1a1520 0%, #0e0b14 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation:im-seated 5s ease-in-out infinite; }
.scn-iago-manipulates .figure-standing { position:absolute; bottom:18%; left:58%; width:28px; height:70px; background:linear-gradient(180deg, #1f1a2a 0%, #100c18 100%); border-radius:35% 35% 25% 25% / 45% 45% 25% 25%; transform-origin:bottom center; animation:im-standing 7s ease-in-out infinite; }
.scn-iago-manipulates .shadow { position:absolute; bottom:14%; left:42%; width:60px; height:12px; background:radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); border-radius:50%; filter:blur(4px); animation:im-shadow 5s ease-in-out infinite; }
.scn-iago-manipulates .door { position:absolute; bottom:30%; right:8%; width:20px; height:50px; background:linear-gradient(180deg, #3a2a3a 0%, #1a0e1a 100%); border:1px solid #4a3a4a; border-radius:4px; box-shadow:inset 0 0 8px rgba(0,0,0,.5); }
@keyframes im-candle { 0% { opacity:.7; transform:translateX(-50%) scaleY(1); } 50% { opacity:1; transform:translateX(-50%) scaleY(1.05); } 100% { opacity:.8; transform:translateX(-50%) scaleY(.95); } }
@keyframes im-seated { 0% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(2px) rotate(1deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-2px) rotate(2deg); } 100% { transform:translateX(0) rotate(-1deg); } }
@keyframes im-standing { 0% { transform:translateX(0) translateY(0); } 33% { transform:translateX(-3px) translateY(1px); } 66% { transform:translateX(3px) translateY(-1px); } 100% { transform:translateX(0) translateY(0); } }
@keyframes im-shadow { 0% { opacity:.4; transform:scaleX(1); } 50% { opacity:.7; transform:scaleX(1.1); } 100% { opacity:.5; transform:scaleX(.9); } }

/* bianca-handkerchief – tense close-up on hand and handkerchief */
.scn-bianca-handkerchief {
  background: linear-gradient(180deg, #1c1622 0%, #2a2230 50%, #3a2e40 100%),
              radial-gradient(ellipse at 50% 60%, #4a3e4e 0%, transparent 70%);
}
.scn-bianca-handkerchief .bg { position:absolute; inset:0; background:#1c1622; }
.scn-bianca-handkerchief .table { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background:linear-gradient(180deg, #2a2230 0%, #18121e 100%); border-radius:20% 20% 0 0 / 40% 40% 0 0; box-shadow:inset 0 4px 12px rgba(0,0,0,.6); }
.scn-bianca-handkerchief .candle { position:absolute; bottom:28%; left:20%; width:5px; height:16px; background:linear-gradient(180deg, #f5b060 0%, #c08040 60%, #804020 100%); border-radius:2px; box-shadow:0 0 20px 8px #d09050; animation:bh-candle 4s ease-in-out infinite alternate; }
.scn-bianca-handkerchief .hand { position:absolute; bottom:20%; left:40%; width:30px; height:40px; background:linear-gradient(180deg, #c07050 0%, #a05840 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform:rotate(10deg); animation:bh-hand 6s ease-in-out infinite; }
.scn-bianca-handkerchief .handkerchief { position:absolute; bottom:24%; left:48%; width:40px; height:30px; background:linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius:10% 30% 20% 20% / 20% 40% 30% 30%; transform:rotate(-5deg); box-shadow:2px 2px 6px rgba(0,0,0,.4); animation:bh-cloth 7s ease-in-out infinite; }
.scn-bianca-handkerchief .work-cloth { position:absolute; bottom:22%; left:55%; width:20px; height:16px; background:linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius:20% 20% 10% 10% / 30% 30% 10% 10%; transform:rotate(25deg); opacity:.7; animation:bh-work 8s ease-in-out infinite; }
.scn-bianca-handkerchief .light-glow { position:absolute; bottom:25%; left:20%; width:80px; height:80px; background:radial-gradient(circle, rgba(240,180,80,.15) 0%, transparent 70%); filter:blur(8px); animation:bh-glow 4s ease-in-out infinite alternate; }
.scn-bianca-handkerchief .shadow-hand { position:absolute; bottom:15%; left:38%; width:40px; height:20px; background:radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); filter:blur(6px); animation:bh-shadow-hand 6s ease-in-out infinite; }
@keyframes bh-candle { 0%,100% { opacity:.8; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.08); } }
@keyframes bh-hand { 0% { transform:rotate(8deg) translateX(0); } 25% { transform:rotate(12deg) translateX(2px); } 50% { transform:rotate(6deg) translateX(-1px); } 75% { transform:rotate(14deg) translateX(1px); } 100% { transform:rotate(10deg) translateX(0); } }
@keyframes bh-cloth { 0% { transform:rotate(-3deg) translateY(0); } 33% { transform:rotate(-7deg) translateY(-2px); } 66% { transform:rotate(-2deg) translateY(1px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes bh-work { 0%,100% { opacity:.5; } 50% { opacity:.8; } }
@keyframes bh-glow { 0% { opacity:.3; transform:scale(1); } 50% { opacity:.6; transform:scale(1.2); } 100% { opacity:.4; transform:scale(.9); } }
@keyframes bh-shadow-hand { 0% { opacity:.3; transform:translateX(0); } 50% { opacity:.6; transform:translateX(3px); } 100% { opacity:.4; transform:translateX(-2px); } }

/* othello-vows-murder – dark, two figures with sword */
.scn-othello-vows-murder {
  background: linear-gradient(180deg, #0e0a14 0%, #1a1220 40%, #241e30 100%),
              radial-gradient(ellipse at 50% 80%, #2a2240 0%, transparent 60%);
}
.scn-othello-vows-murder .bg { position:absolute; inset:0; background:#0e0a14; }
.scn-othello-vows-murder .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(180deg, #18121e 0%, #0c0810 100%); border-radius:20% 20% 0 0 / 40% 40% 0 0; }
.scn-othello-vows-murder .column-left { position:absolute; top:0; left:18%; width:8px; height:100%; background:linear-gradient(180deg, #3a3050 0%, #1e1830 100%); border-radius:4px; box-shadow:inset 2px 0 4px rgba(0,0,0,.6); }
.scn-othello-vows-murder .column-right { position:absolute; top:0; right:18%; width:8px; height:100%; background:linear-gradient(180deg, #3a3050 0%, #1e1830 100%); border-radius:4px; box-shadow:inset -2px 0 4px rgba(0,0,0,.6); }
.scn-othello-vows-murder .figure-othello { position:absolute; bottom:18%; left:38%; width:32px; height:75px; background:linear-gradient(180deg, #0e0a16 0%, #06040c 100%); border-radius:35% 35% 25% 25% / 45% 45% 25% 25%; transform-origin:bottom center; animation:ov-othello 8s ease-in-out infinite; }
.scn-othello-vows-murder .figure-iago { position:absolute; bottom:20%; left:56%; width:28px; height:65px; background:linear-gradient(180deg, #14101e 0%, #0a0612 100%); border-radius:30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin:bottom center; animation:ov-iago 9s ease-in-out infinite; }
.scn-othello-vows-murder .sword { position:absolute; bottom:30%; left:43%; width:4px; height:50px; background:linear-gradient(180deg, #a0a0b0 0%, #606070 100%); border-radius:2px; transform:rotate(15deg); transform-origin:bottom center; box-shadow:0 0 6px rgba(160,160,176,.4); animation:ov-sword 6s ease-in-out infinite; }
.scn-othello-vows-murder .light-shaft { position:absolute; top:0; left:35%; width:30%; height:100%; background:linear-gradient(180deg, rgba(180,160,200,.08) 0%, transparent 80%); filter:blur(10px); animation:ov-light 12s ease-in-out infinite alternate; }
@keyframes ov-othello { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(3px) rotate(2deg); } 50% { transform:translateX(0) rotate(-1deg); } 75% { transform:translateX(-3px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ov-iago { 0% { transform:translateY(0) rotate(-1deg); } 33% { transform:translateY(-2px) rotate(1deg); } 66% { transform:translateY(1px) rotate(0deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes ov-sword { 0% { transform:rotate(13deg); opacity:.7; } 25% { transform:rotate(17deg); opacity:.9; } 50% { transform:rotate(12deg); opacity:.8; } 75% { transform:rotate(18deg); opacity:1; } 100% { transform:rotate(15deg); opacity:.7; } }
@keyframes ov-light { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.4; } }

/* iago-poisons-othello – dark, hands passing vial */
.scn-iago-poisons-othello {
  background: linear-gradient(180deg, #0e0c14 0%, #1a1624 40%, #28223a 100%),
              radial-gradient(ellipse at 30% 60%, #3a2e4e 0%, transparent 70%);
}
.scn-iago-poisons-othello .bg { position:absolute; inset:0; background:#0e0c14; }
.scn-iago-poisons-othello .table { position:absolute; bottom:8%; left:15%; right:15%; height:18%; background:linear-gradient(180deg, #1e1a2a 0%, #0e0c18 100%); border-radius:30% 30% 0 0 / 50% 50% 0 0; box-shadow:inset 0 4px 12px rgba(0,0,0,.7); }
.scn-iago-poisons-othello .vial { position:absolute; bottom:24%; left:45%; width:12px; height:18px; background:linear-gradient(180deg, #b0a8c0 0%, #807890 100%); border-radius:40% 40% 10% 10% / 50% 50% 10% 10%; transform:rotate(-10deg); box-shadow:0 0 10px 2px rgba(176,168,192,.5); animation:ip-vial 5s ease-in-out infinite; }
.scn-iago-poisons-othello .hand-offering { position:absolute; bottom:20%; left:38%; width:24px; height:36px; background:linear-gradient(180deg, #b07050 0%, #905840 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform:rotate(-20deg); animation:ip-hand-offer 6s ease-in-out infinite; }
.scn-iago-poisons-othello .hand-receiving { position:absolute; bottom:22%; left:52%; width:26px; height:38px; background:linear-gradient(180deg, #a06848 0%, #805038 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform:rotate(15deg); animation:ip-hand-rec 7s ease-in-out infinite; }
.scn-iago-poisons-othello .glow-vial { position:absolute; bottom:22%; left:45%; width:30px; height:30px; background:radial-gradient(circle, rgba(200,180,220,.15) 0%, transparent 70%); filter:blur(6px); animation:ip-glow-vial 5s ease-in-out infinite alternate; }
.scn-iago-poisons-othello .shadow-table { position:absolute; bottom:2%; left:10%; right:10%; height:8%; background:linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); filter:blur(8px); }
@keyframes ip-vial { 0%,100% { transform:rotate(-8deg) translateY(0); } 50% { transform:rotate(-12deg) translateY(-2px); } }
@keyframes ip-hand-offer { 0% { transform:rotate(-18deg) translateX(0); } 25% { transform:rotate(-22deg) translateX(2px); } 50% { transform:rotate(-16deg) translateX(-1px); } 75% { transform:rotate(-20deg) translateX(1px); } 100% { transform:rotate(-20deg) translateX(0); } }
@keyframes ip-hand-rec { 0% { transform:rotate(13deg) translateX(0); } 33% { transform:rotate(17deg) translateX(-2px); } 66% { transform:rotate(12deg) translateX(1px); } 100% { transform:rotate(15deg) translateX(0); } }
@keyframes ip-glow-vial { 0% { opacity:.3; transform:scale(1); } 50% { opacity:.7; transform:scale(1.3); } 100% { opacity:.4; transform:scale(.9); } }

/* ─── item-torches (calculating, firelit) ─── */
.scn-item-torches {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 50%, #0a0604 100%),
              radial-gradient(ellipse at 50% 60%, #8a5a2a 0%, transparent 60%);
}
.scn-item-torches .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a1a0a 0%, #4a3a2a 40%, #2a1a0a 100%); border-radius:0 0 20% 20%; }
.scn-item-torches .torch-left { position:absolute; bottom:40%; left:20%; width:8px; height:60px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius:4px 4px 8px 8px; transform:rotate(-4deg); }
.scn-item-torches .torch-right { position:absolute; bottom:40%; right:20%; width:8px; height:60px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius:4px 4px 8px 8px; transform:rotate(4deg); }
.scn-item-torches .flame-l { position:absolute; bottom:68%; left:20%; width:14px; height:22px; margin-left:-3px; background: radial-gradient(ellipse 60% 80% at 50% 100%, #ffa040 0%, #c06020 40%, transparent 70%); border-radius:50%; filter:blur(3px); animation: itr-flicker-l 0.15s step-end infinite; }
.scn-item-torches .flame-r { position:absolute; bottom:68%; right:20%; width:14px; height:22px; margin-right:-3px; background: radial-gradient(ellipse 60% 80% at 50% 100%, #ffa040 0%, #c06020 40%, transparent 70%); border-radius:50%; filter:blur(3px); animation: itr-flicker-r 0.12s step-end infinite; }
.scn-item-torches .shadow-figure { position:absolute; bottom:25%; left:45%; width:24px; height:60px; background: linear-gradient(180deg, #0a0806 0%, #1a120e 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom; animation: itr-watch 4s ease-in-out infinite; }
.scn-item-torches .sign { position:absolute; bottom:35%; left:50%; width:60px; height:30px; transform:translateX(-50%); background: linear-gradient(135deg, #6a4a2a 0%, #4a3020 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.6); animation: itr-sway 6s ease-in-out infinite; }
.scn-item-torches .glow-around { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 60%, rgba(255,160,64,.12) 0%, transparent 50%), radial-gradient(ellipse at 70% 60%, rgba(255,160,64,.12) 0%, transparent 50%); pointer-events:none; }
@keyframes itr-flicker-l { 0%{transform:scaleY(1) translateY(0)} 25%{transform:scaleY(0.85) translateY(-1px)} 50%{transform:scaleY(1.1) translateY(0)} 75%{transform:scaleY(0.9) translateY(1px)} 100%{transform:scaleY(1) translateY(0)} }
@keyframes itr-flicker-r { 0%{transform:scaleY(1) translateY(0)} 25%{transform:scaleY(1.15) translateY(-1px)} 50%{transform:scaleY(0.8) translateY(0)} 75%{transform:scaleY(1.05) translateY(1px)} 100%{transform:scaleY(1) translateY(0)} }
@keyframes itr-watch { 0%,100%{transform:translateY(0) rotate(0deg)} 30%{transform:translateY(-2px) rotate(-2deg)} 60%{transform:translateY(-1px) rotate(2deg)} }
@keyframes itr-sway { 0%,100%{transform:translateX(-50%) rotate(0deg)} 25%{transform:translateX(-50%) rotate(-1deg)} 75%{transform:translateX(-50%) rotate(1deg)} }

/* ─── brabantio-laments (sorrowful, firelit) ─── */
.scn-brabantio-laments {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 50%, #0a0402 100%),
              radial-gradient(ellipse at 50% 80%, #5a2a1a 0%, transparent 70%);
}
.scn-brabantio-laments .bg-room { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius:0 0 30% 30%; }
.scn-brabantio-laments .candle1 { position:absolute; bottom:35%; left:30%; width:6px; height:40px; background: linear-gradient(180deg, #8a6a3a 0%, #4a2a10 100%); border-radius:3px; transform:rotate(-2deg); }
.scn-brabantio-laments .candle2 { position:absolute; bottom:35%; left:70%; width:6px; height:40px; background: linear-gradient(180deg, #8a6a3a 0%, #4a2a10 100%); border-radius:3px; transform:rotate(3deg); }
.scn-brabantio-laments .flame-candle { position:absolute; bottom:58%; left:30%; width:10px; height:16px; margin-left:-2px; background: radial-gradient(ellipse 50% 70% at 50% 100%, #ffc040 0%, #e08020 40%, transparent 70%); border-radius:50%; filter:blur(2px); }
.scn-brabantio-laments .f1 { animation: brl-flame1 2s ease-in-out infinite; }
.scn-brabantio-laments .flame-candle.f2 { left:70%; animation: brl-flame2 2.3s ease-in-out infinite; }
.scn-brabantio-laments .figure-slumped { position:absolute; bottom:15%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin:bottom; animation: brl-slump 6s ease-in-out infinite; }
.scn-brabantio-laments .tear { position:absolute; bottom:35%; width:4px; height:6px; background: radial-gradient(circle, rgba(200,180,160,.8) 0%, transparent 80%); border-radius:50%; filter:blur(1px); }
.scn-brabantio-laments .tear1 { left:42%; animation: brl-fall 3s linear infinite; }
.scn-brabantio-laments .tear2 { left:46%; animation: brl-fall 3.5s linear infinite 1s; }
.scn-brabantio-laments .shadow-arch { position:absolute; top:0; left:0; right:0; bottom:30%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 60%); pointer-events:none; }
@keyframes brl-flame1 { 0%,100%{transform:scaleY(1) translateY(0)} 20%{transform:scaleY(0.9) translateY(-1px)} 40%{transform:scaleY(1.1) translateY(0)} 60%{transform:scaleY(0.95) translateY(1px)} 80%{transform:scaleY(1.05) translateY(-1px)} }
@keyframes brl-flame2 { 0%,100%{transform:scaleY(1) translateY(0)} 30%{transform:scaleY(1.15) translateY(-1px)} 60%{transform:scaleY(0.85) translateY(0)} 90%{transform:scaleY(1.1) translateY(1px)} }
@keyframes brl-slump { 0%,100%{transform:translateY(0) rotate(0deg)} 25%{transform:translateY(3px) rotate(-5deg)} 50%{transform:translateY(6px) rotate(-3deg)} 75%{transform:translateY(2px) rotate(-1deg)} }
@keyframes brl-fall { 0%{transform:translateY(0) scale(1); opacity:1} 60%{transform:translateY(20px) scale(0.6); opacity:0.6} 100%{transform:translateY(40px) scale(0.3); opacity:0} }

/* ─── othello-iago-nightconfront (tense, firelit) ─── */
.scn-othello-iago-nightconfront {
  background: linear-gradient(180deg, #1a100a 0%, #0e0806 50%, #060402 100%),
              radial-gradient(ellipse at 40% 50%, #8a4a2a 0%, transparent 60%),
              radial-gradient(ellipse at 60% 50%, #8a4a2a 0%, transparent 60%);
}
.scn-othello-iago-nightconfront .bg-street { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius:0 0 40% 40%; }
.scn-othello-iago-nightconfront .torch-back { position:absolute; bottom:45%; left:50%; width:100px; height:100px; transform:translateX(-50%); background: radial-gradient(circle at 50% 40%, #ffa040 0%, #c06020 30%, transparent 60%); filter:blur(8px); pointer-events:none; animation: onc-pulse 2s ease-in-out infinite; }
.scn-othello-iago-nightconfront .figure-left { position:absolute; bottom:15%; left:20%; width:28px; height:70px; background: linear-gradient(180deg, #1a120e 0%, #0e0a06 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin:bottom; animation: onc-tense-left 3s ease-in-out infinite; }
.scn-othello-iago-nightconfront .figure-right { position:absolute; bottom:15%; right:20%; width:28px; height:70px; background: linear-gradient(180deg, #1a120e 0%, #0e0a06 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin:bottom; animation: onc-tense-right 3s ease-in-out infinite 0.5s; }
.scn-othello-iago-nightconfront .weapon { position:absolute; bottom:25%; width:6px; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%); border-radius:2px; transform-origin:bottom; }
.scn-othello-iago-nightconfront .weapon-l { left:24%; transform:rotate(-15deg); animation: onc-point-l 2s ease-in-out infinite; }
.scn-othello-iago-nightconfront .weapon-r { right:24%; transform:rotate(15deg); animation: onc-point-r 2s ease-in-out infinite 1s; }
.scn-othello-iago-nightconfront .ground-shadow { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.8) 100%); }
.scn-othello-iago-nightconfront .beam-light { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 50% 40%, rgba(255,140,60,.1) 0%, transparent 50%); pointer-events:none; animation: onc-flicker 1.5s step-end infinite; }
@keyframes onc-pulse { 0%,100%{transform:translateX(-50%) scale(1)} 50%{transform:translateX(-50%) scale(0.9)} }
@keyframes onc-tense-left { 0%,100%{transform:translateY(0) rotate(0deg)} 30%{transform:translateY(-3px) rotate(3deg)} 60%{transform:translateY(3px) rotate(-3deg)} }
@keyframes onc-tense-right { 0%,100%{transform:translateY(0) rotate(0deg)} 30%{transform:translateY(3px) rotate(-3deg)} 60%{transform:translateY(-3px) rotate(3deg)} }
@keyframes onc-point-l { 0%,100%{transform:rotate(-15deg)} 50%{transform:rotate(-10deg) scaleY(1.1)} }
@keyframes onc-point-r { 0%,100%{transform:rotate(15deg)} 50%{transform:rotate(10deg) scaleY(1.1)} }
@keyframes onc-flicker { 0%{opacity:0.8} 30%{opacity:1} 60%{opacity:0.7} 100%{opacity:0.9} }

/* ─── othello-defies-brabantio (confident, firelit) ─── */
.scn-othello-defies-brabantio {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 30%, #1a0e06 60%, #0a0602 100%),
              radial-gradient(ellipse at 50% 70%, #8a5a2a 0%, transparent 50%),
              radial-gradient(ellipse at 30% 30%, #6a3a1a 0%, transparent 40%);
}
.scn-othello-defies-brabantio .bg-piazza { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius:0 0 30% 30%; }
.scn-othello-defies-brabantio .figure-venetian { position:absolute; bottom:10%; left:50%; width:34px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom; animation: odb-stand 5s ease-in-out infinite; }
.scn-othello-defies-brabantio .torch-big { position:absolute; bottom:45%; left:50%; width:10px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0a 100%); border-radius:4px; }
.scn-othello-defies-brabantio .flame-big { position:absolute; bottom:68%; left:50%; width:20px; height:30px; margin-left:-5px; background: radial-gradient(ellipse 60% 80% at 50% 100%, #ffb040 0%, #e08020 30%, #c06020 50%, transparent 70%); border-radius:50%; filter:blur(4px); animation: odb-blaze 2s ease-in-out infinite; }
.scn-othello-defies-brabantio .cloak { position:absolute; bottom:10%; left:45%; width:40px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius:0 40% 40% 0 / 50% 30% 30% 50%; transform:rotate(5deg); transform-origin:top left; animation: odb-cloak 6s ease-in-out infinite; }
.scn-othello-defies-brabantio .scroll { position:absolute; bottom:36%; left:56%; width:20px; height:14px; background: linear-gradient(135deg, #7a6a4a 0%, #5a4a2a 100%); border-radius:2px; transform:rotate(-10deg); animation: odb-scroll 4s ease-in-out infinite; }
.scn-othello-defies-brabantio .halo-light { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 50% 45%, rgba(255,180,80,.15) 0%, transparent 40%); pointer-events:none; animation: odb-halo 3s ease-in-out infinite alternate; }
.scn-othello-defies-brabantio .step-shadow { position:absolute; bottom:5%; left:0; right:0; height:10%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%); }
@keyframes odb-stand { 0%,100%{transform:translateX(-50%) translateY(0)} 25%{transform:translateX(-50%) translateY(-2px)} 50%{transform:translateX(-50%) translateY(0)} 75%{transform:translateX(-50%) translateY(-1px)} }
@keyframes odb-blaze { 0%,100%{transform:scaleY(1) translateY(0)} 30%{transform:scaleY(1.1) translateY(-1px)} 60%{transform:scaleY(0.9) translateY(0)} 80%{transform:scaleY(1.2) translateY(1px)} }
@keyframes odb-cloak { 0%,100%{transform:rotate(5deg)} 30%{transform:rotate(3deg)} 60%{transform:rotate(7deg)} }
@keyframes odb-scroll { 0%,100%{transform:rotate(-10deg) translateY(0)} 50%{transform:rotate(-7deg) translateY(-2px)} }
@keyframes odb-halo { 0%{opacity:0.7} 100%{opacity:1} }

.scn-iago-instigates-roderigo {
  background: linear-gradient(180deg, #1a1410 0%, #2a1f18 40%, #3a2818 100%), radial-gradient(ellipse at 50% 60%, #4a3520 0%, transparent 70%);
}
.scn-iago-instigates-roderigo .wall {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #2a1f18 0%, #1a1410 100%); animation: iag1-wall 14s ease-in-out infinite alternate;
}
.scn-iago-instigates-roderigo .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-iago-instigates-roderigo .table {
  position: absolute; bottom: 28%; left: 50%; width: 100px; height: 12px; transform: translateX(-50%); background: linear-gradient(90deg, #4a3520, #2a1f18); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.4);
}
.scn-iago-instigates-roderigo .candle-glow {
  position: absolute; bottom: 44%; left: 50%; width: 20px; height: 30px; transform: translateX(-50%); background: radial-gradient(circle at 50% 100%, #e8c060 0%, #b08030 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px #c09040, 0 0 80px 40px rgba(192,144,64,.3); animation: iag1-candle 2s ease-in-out infinite alternate;
}
.scn-iago-instigates-roderigo .figure-iago {
  position: absolute; bottom: 20%; left: 38%; width: 28px; height: 50px; background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iag1-whisper 4s ease-in-out infinite;
}
.scn-iago-instigates-roderigo .figure-roderigo {
  position: absolute; bottom: 18%; right: 35%; width: 26px; height: 48px; background: linear-gradient(180deg, #1f1a14 0%, #0f0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iag1-listen 4s ease-in-out infinite 0.5s;
}
.scn-iago-instigates-roderigo .shadow-overlay {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,.6) 100%); pointer-events: none; animation: iag1-shadow 10s ease-in-out infinite alternate;
}
@keyframes iag1-wall { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes iag1-candle { 0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 30px 15px #c09040 } 50% { transform: translateX(-50%) scaleY(1.05); box-shadow: 0 0 45px 20px #e8c060 } 100% { transform: translateX(-50%) scaleY(.95); box-shadow: 0 0 35px 18px #b08030 } }
@keyframes iag1-whisper { 0%, 100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(2px) rotate(1deg) } }
@keyframes iag1-listen { 0%, 100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(1deg) } }
@keyframes iag1-shadow { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }

.scn-iago-roderigo-plot {
  background: linear-gradient(180deg, #1e1814 0%, #2a221c 40%, #3a2e24 100%), radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 70%);
}
.scn-iago-roderigo-plot .bg-deep {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #0e0a08 0%, transparent 100%); animation: iag2-deep 15s ease-in-out infinite alternate;
}
.scn-iago-roderigo-plot .bg-mid {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-iago-roderigo-plot .desk {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 8px; transform: translateX(-50%); background: linear-gradient(90deg, #3a2a1a, #2a1f18); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-iago-roderigo-plot .paper {
  position: absolute; bottom: 32%; left: 50%; width: 40px; height: 30px; transform: translateX(-50%); background: linear-gradient(180deg, #d4c8b0, #b8a890); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: iag2-paper 6s ease-in-out infinite;
}
.scn-iago-roderigo-plot .hand {
  position: absolute; bottom: 30%; left: 45%; width: 14px; height: 20px; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: iag2-hand 5s ease-in-out infinite;
}
.scn-iago-roderigo-plot .silhouette-left {
  position: absolute; bottom: 18%; left: 30%; width: 30px; height: 52px; background: #0a0805; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iag2-left 8s ease-in-out infinite;
}
.scn-iago-roderigo-plot .silhouette-right {
  position: absolute; bottom: 20%; right: 30%; width: 28px; height: 50px; background: #0a0805; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iag2-right 8s ease-in-out infinite 1s;
}
.scn-iago-roderigo-plot .lantern {
  position: absolute; bottom: 42%; left: 50%; width: 16px; height: 20px; transform: translateX(-50%); background: radial-gradient(circle at 50% 80%, #e8c060 0%, #c09040 50%, transparent 80%); border-radius: 30%; box-shadow: 0 0 30px 15px #c09040, 0 0 60px 30px rgba(192,144,64,.3); animation: iag2-lantern 3s ease-in-out infinite alternate;
}
@keyframes iag2-deep { 0% { opacity: .5 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes iag2-paper { 0%, 100% { transform: translateX(-50%) rotate(0) scale(1) } 50% { transform: translateX(-50%) rotate(3deg) scale(1.02) } }
@keyframes iag2-hand { 0%, 100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(-5deg) } 75% { transform: translateX(-2px) rotate(3deg) } }
@keyframes iag2-left { 0%, 100% { transform: translateX(0) } 50% { transform: translateX(-5px) } }
@keyframes iag2-right { 0%, 100% { transform: translateX(0) } 50% { transform: translateX(5px) } }
@keyframes iag2-lantern { 0% { transform: translateX(-50%) rotate(-2deg); box-shadow: 0 0 25px 12px #c09040 } 50% { transform: translateX(-50%) rotate(2deg); box-shadow: 0 0 40px 18px #e8c060 } 100% { transform: translateX(-50%) rotate(-1deg); box-shadow: 0 0 30px 15px #b08030 } }

.scn-iago-soliloquy-revenge {
  background: linear-gradient(180deg, #0a0805 0%, #1a1410 50%, #2a1f18 100%), radial-gradient(ellipse at 30% 40%, #3a2818 0%, transparent 80%);
}
.scn-iago-soliloquy-revenge .wall-dark {
  position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #0a0805 0%, #1a1410 100%); animation: iag3-wall 12s ease-in-out infinite alternate;
}
.scn-iago-soliloquy-revenge .window {
  position: absolute; top: 10%; right: 15%; width: 40px; height: 60px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.8), 0 0 20px rgba(0,0,0,.5); animation: iag3-window 20s ease-in-out infinite;
}
.scn-iago-soliloquy-revenge .mirror {
  position: absolute; top: 15%; left: 20%; width: 50px; height: 70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 6px; box-shadow: 0 0 15px rgba(0,0,0,.6), inset 0 0 20px rgba(100,100,130,.2); animation: iag3-mirror 8s ease-in-out infinite alternate;
}
.scn-iago-soliloquy-revenge .figure-iago {
  position: absolute; bottom: 10%; left: 50%; width: 32px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iag3-figure 6s ease-in-out infinite;
}
.scn-iago-soliloquy-revenge .dagger {
  position: absolute; bottom: 35%; left: 48%; width: 4px; height: 20px; background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%); border-radius: 2px; transform: rotate(20deg); box-shadow: 0 0 6px rgba(200,180,160,.3); animation: iag3-dagger 4s ease-in-out infinite alternate;
}
.scn-iago-soliloquy-revenge .light-pool {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 40%; background: radial-gradient(ellipse at 50% 100%, rgba(150,120,80,.15) 0%, transparent 70%); animation: iag3-pool 9s ease-in-out infinite alternate;
}
@keyframes iag3-wall { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes iag3-window { 0%, 100% { opacity: .3; filter: brightness(.8) } 50% { opacity: .5; filter: brightness(1) } }
@keyframes iag3-mirror { 0% { transform: scaleX(1) } 50% { transform: scaleX(-1) } 100% { transform: scaleX(1) } }
@keyframes iag3-figure { 0%, 100% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } 75% { transform: translateX(-50%) translateY(0) rotate(-2deg) } }
@keyframes iag3-dagger { 0% { transform: rotate(20deg) scaleY(1); opacity: .6 } 50% { transform: rotate(25deg) scaleY(1.05); opacity: .9 } 100% { transform: rotate(18deg) scaleY(1); opacity: .7 } }
@keyframes iag3-pool { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }

.scn-iago-plots-jealousy {
  background: linear-gradient(180deg, #0f0c0a 0%, #1a1410 40%, #2a1f18 100%), radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-iago-plots-jealousy .bg-shadow {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(0,0,0,.8) 0%, transparent 50%, rgba(0,0,0,.6) 100%); animation: iag4-bg 12s ease-in-out infinite alternate;
}
.scn-iago-plots-jealousy .chair {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.5);
}
.scn-iago-plots-jealousy .figure-seated {
  position: absolute; bottom: 25%; left: 50%; width: 28px; height: 45px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iag4-seated 7s ease-in-out infinite;
}
.scn-iago-plots-jealousy .ember {
  position: absolute; bottom: 40%; left: 50%; width: 10px; height: 10px; transform: translateX(-50%); background: radial-gradient(circle, #c8553d 0%, #a0461a 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 20px 10px #c8553d, 0 0 40px 20px rgba(200,85,61,.3); animation: iag4-ember 3s ease-in-out infinite alternate;
}
.scn-iago-plots-jealousy .shadow-figure {
  position: absolute; bottom: 15%; right: 20%; width: 30px; height: 55px; background: rgba(0,0,0,.7); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: iag4-shadowfig 9s ease-in-out infinite;
}
.scn-iago-plots-jealousy .creeping-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: iag4-creep 15s ease-in-out infinite alternate;
}
@keyframes iag4-bg { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .6 } }
@keyframes iag4-seated { 0%, 100% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-50%) translateY(-3px) rotate(3deg) } 75% { transform: translateX(-50%) translateY(1px) rotate(-2deg) } }
@keyframes iag4-ember { 0% { transform: translateX(-50%) scale(.8); opacity: .6; box-shadow: 0 0 15px 8px #a0461a } 50% { transform: translateX(-50%) scale(1.2); opacity: 1; box-shadow: 0 0 30px 15px #c8553d } 100% { transform: translateX(-50%) scale(.9); opacity: .8; box-shadow: 0 0 20px 10px #a0461a } }
@keyframes iag4-shadowfig { 0% { transform: translateX(0) scaleY(1); opacity: .3 } 50% { transform: translateX(-10px) scaleY(.95); opacity: .6 } 100% { transform: translateX(5px) scaleY(1); opacity: .4 } }
@keyframes iag4-creep { 0% { opacity: .4 } 50% { opacity: .8 } 100% { opacity: .5 } }

/* othello-meditates */
.scn-othello-meditates {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a15 50%, #0f0a08 100%),
              radial-gradient(ellipse at 30% 60%, #3a2218 0%, transparent 70%);
}
.scn-othello-meditates .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a15 0%, #1a0e0a 60%);
}
.scn-othello-meditates .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a14 0%, #120c08 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
}
.scn-othello-meditates .shadow-arch {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 60%;
  background: radial-gradient(ellipse at 50% 40%, rgba(20,10,8,0.6) 0%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(8px);
  animation: ot-shadow 10s ease-in-out infinite alternate;
}
.scn-othello-meditates .figure-othello {
  position: absolute; bottom: 28%; left: 38%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 60%, #080504 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ot-figure 12s ease-in-out infinite;
}
.scn-othello-meditates .sword {
  position: absolute; bottom: 22%; left: 52%; width: 60px; height: 6px;
  background: linear-gradient(90deg, #8a7a60 0%, #c0b098 30%, #8a7a60 100%);
  border-radius: 40% 10% 10% 40%;
  transform: rotate(-20deg);
  box-shadow: 0 0 6px 2px rgba(160,140,110,0.3);
  animation: ot-sword 6s ease-in-out infinite alternate;
}
.scn-othello-meditates .candle-glow {
  position: absolute; bottom: 45%; left: 55%; width: 60px; height: 80px;
  background: radial-gradient(ellipse 40% 30% at 50% 40%, rgba(220,180,100,0.4) 0%, transparent 70%);
  filter: blur(12px);
  animation: ot-glow 3s ease-in-out infinite alternate;
}
.scn-othello-meditates .candle {
  position: absolute; bottom: 42%; left: 56%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #e8c878 0%, #d4a850 40%, #8a6020 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 10px 2px rgba(200,160,80,0.5);
  animation: ot-candle 3s ease-in-out infinite alternate;
}
.scn-othello-meditates .door-arch {
  position: absolute; bottom: 20%; left: 15%; width: 50%; height: 70%;
  border: 2px solid rgba(60,40,30,0.5);
  border-radius: 40% 40% 0 0 / 50% 50% 0 0;
  background: rgba(10,8,6,0.3);
  box-shadow: inset 0 0 20px 4px rgba(0,0,0,0.5);
  animation: ot-door 15s ease-in-out infinite alternate;
}
@keyframes ot-shadow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.95); }
}
@keyframes ot-figure {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-2px) rotate(-1deg); }
  60% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ot-sword {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-18deg) translateY(-2px); }
  100% { transform: rotate(-22deg) translateY(0); }
}
@keyframes ot-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.3); }
  100% { opacity: 0.6; transform: scale(0.9); }
}
@keyframes ot-candle {
  0% { height: 18px; opacity: 0.8; }
  50% { height: 20px; opacity: 1; }
  100% { height: 16px; opacity: 0.9; }
}
@keyframes ot-door {
  0% { border-color: rgba(60,40,30,0.3); }
  50% { border-color: rgba(80,50,40,0.6); }
  100% { border-color: rgba(60,40,30,0.3); }
}

/* item-spanish-sword */
.scn-item-spanish-sword {
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 60%, #050302 100%),
              radial-gradient(ellipse at 50% 40%, #2a1c16 0%, transparent 80%);
}
.scn-item-spanish-sword .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1412 0%, #0a0705 80%);
}
.scn-item-spanish-sword .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
  animation: sw-table 8s ease-in-out infinite alternate;
}
.scn-item-spanish-sword .sword-blade {
  position: absolute; bottom: 18%; left: 20%; width: 55%; height: 6px;
  background: linear-gradient(90deg, #8a7a60 0%, #c0b098 40%, #a09080 60%, #8a7a60 100%);
  border-radius: 40% 10% 10% 40%;
  transform: rotate(-5deg);
  box-shadow: 0 0 8px 3px rgba(180,160,130,0.4);
  animation: sw-blade 12s ease-in-out infinite alternate;
}
.scn-item-spanish-sword .sword-hilt {
  position: absolute; bottom: 16%; left: 18%; width: 16px; height: 14px;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(10deg);
  box-shadow: 0 0 4px 1px rgba(60,40,20,0.5);
  animation: sw-hilt 6s ease-in-out infinite;
}
.scn-item-spanish-sword .candle-glow {
  position: absolute; bottom: 45%; left: 60%; width: 70px; height: 90px;
  background: radial-gradient(ellipse 50% 40% at 50% 30%, rgba(220,180,100,0.35) 0%, transparent 70%);
  filter: blur(14px);
  animation: sw-glow 3s ease-in-out infinite alternate;
}
.scn-item-spanish-sword .candle {
  position: absolute; bottom: 42%; left: 62%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e8c878 0%, #d4a850 40%, #8a6020 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 10px 2px rgba(200,160,80,0.5);
  animation: sw-candle 3s ease-in-out infinite alternate;
}
.scn-item-spanish-sword .shadow-blade {
  position: absolute; bottom: 15%; left: 22%; width: 50%; height: 4px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(6px);
  transform: rotate(-5deg) translateX(-10px);
  animation: sw-shadow 10s ease-in-out infinite alternate;
}
@keyframes sw-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sw-blade {
  0% { transform: rotate(-5deg) translateX(0); opacity: 0.8; }
  50% { transform: rotate(-3deg) translateX(2px); opacity: 1; }
  100% { transform: rotate(-7deg) translateX(0); opacity: 0.9; }
}
@keyframes sw-hilt {
  0% { transform: rotate(10deg) scale(1); }
  50% { transform: rotate(12deg) scale(1.05); }
  100% { transform: rotate(8deg) scale(0.95); }
}
@keyframes sw-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(0.9); }
}
@keyframes sw-candle {
  0% { height: 20px; opacity: 0.8; }
  50% { height: 22px; opacity: 1; }
  100% { height: 18px; opacity: 0.9; }
}
@keyframes sw-shadow {
  0% { opacity: 0.3; transform: rotate(-5deg) translateX(-10px) scaleX(1); }
  50% { opacity: 0.6; transform: rotate(-4deg) translateX(-8px) scaleX(1.1); }
  100% { opacity: 0.4; transform: rotate(-6deg) translateX(-12px) scaleX(0.9); }
}

/* othello-despair */
.scn-othello-despair {
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 50%, #050302 100%),
              radial-gradient(ellipse at 40% 50%, #2a1a15 0%, transparent 75%);
}
.scn-othello-despair .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1210 0%, #0c0806 70%);
}
.scn-othello-despair .bed {
  position: absolute; bottom: 8%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 6px 14px rgba(0,0,0,0.5);
  animation: de-bed 10s ease-in-out infinite alternate;
}
.scn-othello-despair .body-desdemona {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #b0a090 0%, #403530 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 6px 2px rgba(80,60,50,0.3);
  animation: de-body 14s ease-in-out infinite;
}
.scn-othello-despair .figure-othello {
  position: absolute; bottom: 18%; left: 48%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #1a1210 0%, #0c0806 80%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: de-figure 12s ease-in-out infinite;
}
.scn-othello-despair .candle-glow {
  position: absolute; bottom: 50%; left: 55%; width: 60px; height: 70px;
  background: radial-gradient(ellipse 50% 40% at 50% 30%, rgba(200,160,80,0.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: de-glow 4s ease-in-out infinite alternate;
}
.scn-othello-despair .candle {
  position: absolute; bottom: 47%; left: 57%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #e0c070 0%, #c8a040 40%, #704818 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 8px 2px rgba(180,140,60,0.5);
  animation: de-candle 3s ease-in-out infinite alternate;
}
.scn-othello-despair .shadow-figure {
  position: absolute; bottom: 15%; left: 45%; width: 50px; height: 70px;
  background: rgba(0,0,0,0.4);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  filter: blur(10px);
  transform: translateX(-10px) scale(1.1);
  animation: de-shadow 10s ease-in-out infinite alternate;
}
@keyframes de-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes de-body {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.7; }
  30% { transform: translateY(-1px) rotate(1deg); opacity: 0.8; }
  60% { transform: translateY(1px) rotate(-1deg); opacity: 0.7; }
  100% { transform: translateY(0) rotate(0deg); opacity: 0.8; }
}
@keyframes de-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-3px) translateY(-2px) rotate(-2deg); }
  50% { transform: translateX(2px) translateY(0) rotate(2deg); }
  75% { transform: translateX(-1px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes de-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
@keyframes de-candle {
  0% { height: 18px; opacity: 0.7; }
  50% { height: 20px; opacity: 1; }
  100% { height: 16px; opacity: 0.8; }
}
@keyframes de-shadow {
  0% { transform: translateX(-10px) scale(1.1); opacity: 0.3; }
  50% { transform: translateX(-8px) scale(1.15); opacity: 0.5; }
  100% { transform: translateX(-12px) scale(1.05); opacity: 0.4; }
}

/* letters-revealed */
.scn-letters-revealed {
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 60%, #050302 100%),
              radial-gradient(ellipse at 30% 50%, #2a1c16 0%, transparent 80%);
}
.scn-letters-revealed .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1412 0%, #0a0705 70%);
}
.scn-letters-revealed .table {
  position: absolute; bottom: 8%; left: 8%; right: 8%; height: 25%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.6);
  animation: le-table 10s ease-in-out infinite alternate;
}
.scn-letters-revealed .letter-page {
  position: absolute; bottom: 22%; left: 32%; width: 50px; height: 35px;
  background: linear-gradient(135deg, #d4c8b0 0%, #b8a890 60%, #9a8a78 100%);
  border-radius: 2% 2% 4% 4%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: le-letter 8s ease-in-out infinite alternate;
}
.scn-letters-revealed .letter-page.second {
  left: 42%;
  transform: rotate(8deg);
  animation-delay: -4s;
  background: linear-gradient(135deg, #c8bc9a 0%, #a89870 60%, #887858 100%);
}
.scn-letters-revealed .hand {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #b8a090 0%, #8a7a68 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  transform: rotate(10deg);
  animation: le-hand 6s ease-in-out infinite;
}
.scn-letters-revealed .candle-glow {
  position: absolute; bottom: 45%; left: 55%; width: 60px; height: 80px;
  background: radial-gradient(ellipse 50% 40% at 50% 30%, rgba(220,180,100,0.35) 0%, transparent 70%);
  filter: blur(12px);
  animation: le-glow 3s ease-in-out infinite alternate;
}
.scn-letters-revealed .candle {
  position: absolute; bottom: 42%; left: 57%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e8c878 0%, #d4a850 40%, #8a6020 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 10px 2px rgba(200,160,80,0.5);
  animation: le-candle 3s ease-in-out infinite alternate;
}
@keyframes le-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes le-letter {
  0% { transform: rotate(-5deg) translateY(0); opacity: 0.8; }
  50% { transform: rotate(-4deg) translateY(-2px); opacity: 1; }
  100% { transform: rotate(-6deg) translateY(0); opacity: 0.9; }
}
@keyframes le-hand {
  0% { transform: rotate(10deg) translateX(0); }
  30% { transform: rotate(8deg) translateX(2px); }
  60% { transform: rotate(12deg) translateX(-2px); }
  100% { transform: rotate(10deg) translateX(0); }
}
@keyframes le-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(0.9); }
}
@keyframes le-candle {
  0% { height: 20px; opacity: 0.8; }
  50% { height: 22px; opacity: 1; }
  100% { height: 18px; opacity: 0.9; }
}

/* Scene: iago-roderigo-opener */
.scn-iago-roderigo-opener {
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #0f0f1e 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a4a 0%, transparent 80%);
  filter: contrast(1.2);
}
.scn-iago-roderigo-opener .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #1a1a30 0%, #0f0f20 60%, transparent);
  animation: ior-sky 20s ease-in-out infinite alternate;
}
.scn-iago-roderigo-opener .buildings {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 40%;
  background: 
    linear-gradient(180deg, #1c1c2a 0%, #11111e 100%),
    repeating-linear-gradient(90deg, #222 0px, #222 8px, transparent 8px, transparent 16px);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.6);
  animation: ior-build 30s ease-in-out infinite;
}
.scn-iago-roderigo-opener .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a28 0%, #0d0d18 100%);
  box-shadow: inset 0 8px 24px rgba(0,0,0,0.8);
}
.scn-iago-roderigo-opener .lamp {
  position: absolute; bottom: 30%; left: 30%; width: 8px; height: 18px;
  background: radial-gradient(circle at 50% 80%, #ffd080 0%, #c08030 50%, transparent 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(200,130,50,0.4), 0 0 40px 16px rgba(200,130,50,0.15);
  animation: ior-lamp 2.5s ease-in-out infinite alternate;
}
.scn-iago-roderigo-opener .rodrigo {
  position: absolute; bottom: 12%; left: 25%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ior-rodrigo 4s ease-in-out infinite;
}
.scn-iago-roderigo-opener .iago {
  position: absolute; bottom: 14%; left: 50%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #222 0%, #111 100%);
  border-radius: 50% 50% 30% 30% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: ior-iago 5s ease-in-out infinite;
}
.scn-iago-roderigo-opener .shadow-streak {
  position: absolute; bottom: 10%; left: 40%; width: 40px; height: 4px;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.6), transparent);
  filter: blur(3px);
  animation: ior-streak 8s ease-in-out infinite;
}
.scn-iago-roderigo-opener .mist {
  position: absolute; top: 20%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(100,100,150,0.1) 0%, transparent 70%);
  filter: blur(10px);
  animation: ior-mist 12s ease-in-out infinite alternate;
}
@keyframes ior-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ior-build { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ior-lamp { 0% { opacity: 0.7; box-shadow: 0 0 15px 6px rgba(200,130,50,0.3); } 100% { opacity: 1; box-shadow: 0 0 30px 12px rgba(200,130,50,0.6); } }
@keyframes ior-rodrigo { 0%, 100% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(0deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(0deg); } }
@keyframes ior-iago { 0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(-2px) translateY(-1px) rotate(1deg); } 60% { transform: translateX(2px) translateY(0) rotate(0deg); } 80% { transform: translateX(-1px) translateY(-1px) rotate(-1deg); } }
@keyframes ior-streak { 0%, 100% { opacity: 0; } 50% { opacity: 1; transform: translateX(10px); } }
@keyframes ior-mist { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-10px) scale(1.05); } }

/* Scene: iago-cassio-rivalry */
.scn-iago-cassio-rivalry {
  background: linear-gradient(180deg, #0a0a18 0%, #12121e 40%, #0e0e1a 100%),
              radial-gradient(ellipse at 40% 60%, #1a1a30 0%, transparent 70%);
  filter: contrast(1.1);
}
.scn-iago-cassio-rivalry .tent-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #161624 0%, #0d0d18 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: icr-tent 15s ease-in-out infinite alternate;
}
.scn-iago-cassio-rivalry .tent-wall {
  position: absolute; top: 10%; left: 10%; right: 10%; bottom: 15%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1e 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: icr-wall 20s ease-in-out infinite;
}
.scn-iago-cassio-rivalry .table {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #2a1e10 0%, #1a1208 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
}
.scn-iago-cassio-rivalry .candle {
  position: absolute; bottom: 22%; left: 45%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #c08030 60%, #6a4020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 18px 6px rgba(200,130,50,0.5), 0 0 40px 16px rgba(200,130,50,0.2);
  animation: icr-candle 2s ease-in-out infinite alternate;
}
.scn-iago-cassio-rivalry .cassio {
  position: absolute; bottom: 8%; left: 20%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: icr-cassio 4s ease-in-out infinite;
}
.scn-iago-cassio-rivalry .iago {
  position: absolute; bottom: 10%; left: 55%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a28 0%, #0a0a18 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: icr-iago 5s ease-in-out infinite;
}
.scn-iago-cassio-rivalry .paper {
  position: absolute; bottom: 18%; left: 38%; width: 20px; height: 14px;
  background: #3a3020;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: icr-paper 3s ease-in-out infinite alternate;
}
@keyframes icr-tent { 0% { opacity: 0.8; } 100% { opacity: 1; transform: scaleX(1.02); } }
@keyframes icr-wall { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes icr-candle { 0% { opacity: 0.7; box-shadow: 0 0 12px 4px rgba(200,130,50,0.3); } 100% { opacity: 1; box-shadow: 0 0 30px 10px rgba(200,130,50,0.7); } }
@keyframes icr-cassio { 0%, 100% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(4px) rotate(0deg); } 60% { transform: translateX(-2px) rotate(2deg); } }
@keyframes icr-iago { 0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(-1px) translateY(0) rotate(-1deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg); } }
@keyframes icr-paper { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-4px) rotate(5deg); } }

/* Scene: iago-servitude-plot */
.scn-iago-servitude-plot {
  background: linear-gradient(180deg, #12121e 0%, #18182a 40%, #0e0e1a 100%),
              radial-gradient(ellipse at 50% 30%, #1c1c30 0%, transparent 80%);
  filter: contrast(1.15);
}
.scn-iago-servitude-plot .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a28 0%, #0f0f1e 100%);
  clip-path: polygon(10% 0%, 90% 0%, 95% 100%, 5% 100%);
}
.scn-iago-servitude-plot .window {
  position: absolute; top: 8%; left: 30%; right: 30%; bottom: 70%;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a30 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 0 4px #222;
  animation: isp-window 8s ease-in-out infinite alternate;
}
.scn-iago-servitude-plot .moonlight {
  position: absolute; top: 6%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, rgba(100,120,200,0.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: isp-moon 12s ease-in-out infinite alternate;
}
.scn-iago-servitude-plot .figure {
  position: absolute; bottom: 10%; left: 35%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f20 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: isp-figure 6s ease-in-out infinite;
}
.scn-iago-servitude-plot .chain {
  position: absolute; bottom: 10%; left: 38%; width: 16px; height: 30px;
  background: repeating-linear-gradient(0deg, #444 0px, #444 2px, transparent 2px, transparent 6px);
  border-left: 2px solid #555;
  border-right: 2px solid #555;
  animation: isp-chain 10s ease-in-out infinite;
}
.scn-iago-servitude-plot .shadow {
  position: absolute; bottom: 5%; left: 30%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(5px);
  animation: isp-shadow 5s ease-in-out infinite alternate;
}
.scn-iago-servitude-plot .rat {
  position: absolute; bottom: 2%; left: 60%; width: 14px; height: 6px;
  background: #2a2a3a;
  border-radius: 50% 50% 40% 40%;
  animation: isp-rat 7s ease-in-out infinite;
}
@keyframes isp-window { 0% { opacity: 0.6; } 100% { opacity: 1; } }
@keyframes isp-moon { 0% { transform: translateX(-5px); } 100% { transform: translateX(10px); } }
@keyframes isp-figure { 0%, 100% { transform: translateX(0) translateY(0) rotate(-2deg); } 30% { transform: translateX(5px) translateY(-2px) rotate(1deg); } 60% { transform: translateX(-3px) translateY(0) rotate(-1deg); } }
@keyframes isp-chain { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(5px) rotate(5deg); } }
@keyframes isp-shadow { 0% { opacity: 0.3; transform: scaleX(0.8); } 100% { opacity: 0.6; transform: scaleX(1.2); } }
@keyframes isp-rat { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(20px); } }

/* Scene: iago-claims-not-what-seems */
.scn-iago-claims-not-what-seems {
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 50%, #0f0f1e 100%),
              radial-gradient(ellipse at 50% 70%, #2a2a4a 0%, transparent 80%);
}
.scn-iago-claims-not-what-seems .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #161626 0%, #0d0d1a 100%);
  clip-path: polygon(15% 0%, 85% 0%, 80% 100%, 20% 100%);
}
.scn-iago-claims-not-what-seems .column {
  position: absolute; top: 5%; left: 20%; bottom: 5%; width: 8%;
  background: linear-gradient(90deg, #1c1c2a 0%, #2a2a3a 30%, #1c1c2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: icn-column 20s ease-in-out infinite alternate;
}
.scn-iago-claims-not-what-seems .mirror {
  position: absolute; top: 15%; left: 40%; width: 30%; bottom: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%);
  border: 4px solid #3a3a4a;
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 0 30px rgba(100,100,150,0.15);
  animation: icn-mirror 12s ease-in-out infinite alternate;
}
.scn-iago-claims-not-what-seems .iago {
  position: absolute; bottom: 10%; left: 30%; width: 28px; height: 64px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f20 100%);
  border-radius: 50% 50% 30% 30% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: icn-iago 4s ease-in-out infinite;
}
.scn-iago-claims-not-what-seems .mask {
  position: absolute; bottom: 55%; left: 42%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.5));
  animation: icn-mask 3s ease-in-out infinite alternate;
}
.scn-iago-claims-not-what-seems .shadow-self {
  position: absolute; bottom: 5%; left: 50%; width: 30px; height: 60px;
  background: rgba(0,0,0,0.5);
  border-radius: 50% 50% 30% 30%;
  filter: blur(4px);
  animation: icn-shadow 6s ease-in-out infinite;
}
.scn-iago-claims-not-what-seems .candle {
  position: absolute; bottom: 8%; left: 55%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #ffd080 0%, #c08030 60%, #6a4020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 6px rgba(200,130,50,0.4);
  animation: icn-candle 2.5s ease-in-out infinite alternate;
}
.scn-iago-claims-not-what-seems .smoke {
  position: absolute; top: 35%; left: 55%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,130,50,0.1) 0%, transparent 70%);
  filter: blur(6px);
  animation: icn-smoke 5s ease-in-out infinite;
}
@keyframes icn-column { 0% { opacity: 0.8; } 100% { opacity: 1; transform: scaleY(1.02); } }
@keyframes icn-mirror { 0% { opacity: 0.6; transform: perspective(400px) rotateY(5deg); } 100% { opacity: 0.9; transform: perspective(400px) rotateY(-5deg); } }
@keyframes icn-iago { 0%, 100% { transform: translateX(0) translateY(0) rotate(-1deg); } 30% { transform: translateX(-4px) translateY(-2px) rotate(0deg); } 60% { transform: translateX(2px) translateY(0) rotate(1deg); } }
@keyframes icn-mask { 0% { opacity: 0.6; transform: translateX(0) rotate(0deg); } 100% { opacity: 1; transform: translateX(2px) rotate(5deg); } }
@keyframes icn-shadow { 0%, 100% { transform: translateX(0) scaleX(0.8); } 50% { transform: translateX(10px) scaleX(1.2); } }
@keyframes icn-candle { 0% { opacity: 0.7; box-shadow: 0 0 12px 4px rgba(200,130,50,0.3); } 100% { opacity: 1; box-shadow: 0 0 24px 8px rgba(200,130,50,0.6); } }
@keyframes icn-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-10px) scale(1.2); opacity: 0.8; } 100% { transform: translateY(-20px) scale(1.5); opacity: 0; } }

/* handkerchief-history – tense, dim interior, two figures */
.scn-handkerchief-history {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #1f1410 40%, #140b08 100%),
    radial-gradient(ellipse at 60% 50%, #3a2a22 0%, transparent 65%);
}
.scn-handkerchief-history .bg-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, #2a1f1a 0%, #1f1410 50%, #2a1f1a 100%);
  animation: hh-wall 10s ease-in-out infinite alternate;
}
.scn-handkerchief-history .bg-shadow {
  position: absolute; inset: 30% 0 0 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
}
.scn-handkerchief-history .figure-left {
  position: absolute; bottom: 12%; left: 22%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hh-fig-l 4s ease-in-out infinite alternate;
}
.scn-handkerchief-history .figure-right {
  position: absolute; bottom: 12%; right: 22%; width: 44px; height: 100px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hh-fig-r 4s ease-in-out infinite alternate-reverse;
}
.scn-handkerchief-history .table {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 8px;
  background: linear-gradient(180deg, #3a2218 0%, #1f1008 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-handkerchief-history .candle-glow {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 60%, #ffa54f 0%, #d4793a 40%, transparent 80%);
  filter: blur(6px);
  animation: hh-candle 3s ease-in-out infinite alternate;
}
.scn-handkerchief-history .handkerchief {
  position: absolute; bottom: 18%; left: 40%; width: 24px; height: 24px;
  background: radial-gradient(ellipse, #c8553d 0%, #a0461a 60%, #5e1a1d 100%);
  border-radius: 10% 20% 30% 40% / 20% 30% 40% 10%;
  transform: rotate(15deg);
  box-shadow: 0 0 10px 2px rgba(200,85,61,0.3);
  animation: hh-cloth 3s ease-in-out infinite alternate;
}
.scn-handkerchief-history .flicker {
  position: absolute; inset: 0;
  background: rgba(255,180,80,0.03);
  animation: hh-flicker 0.5s steps(2) infinite;
}
@keyframes hh-wall { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes hh-fig-l { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(-5px) translateY(1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes hh-fig-r { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 50% { transform: translateX(5px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(2deg) } }
@keyframes hh-candle { 0% { opacity: 0.7; transform: translateX(-50%) scale(1) } 50% { opacity: 1; transform: translateX(-50%) scale(1.1) } 100% { opacity: 0.7; transform: translateX(-50%) scale(1) } }
@keyframes hh-cloth { 0% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(20deg) scale(1.05) } 100% { transform: rotate(15deg) scale(1) } }
@keyframes hh-flicker { 0% { opacity: 1 } 100% { opacity: 0.9 } }

/* magic-of-handkerchief – dark, mystical, dim interior */
.scn-magic-of-handkerchief {
  background: 
    linear-gradient(180deg, #0f081c 0%, #1a0f2a 40%, #0f081c 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a4a 0%, transparent 70%);
}
.scn-magic-of-handkerchief .bg-void {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, #0f081c 0%, #081018 100%);
  animation: mh-void 20s ease-in-out infinite alternate;
}
.scn-magic-of-handkerchief .circle-magic {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: 200px; height: 200px;
  border-radius: 50%;
  background: repeating-radial-gradient(circle at 50% 50%, #4a2a5a 0%, transparent 10%);
  opacity: 0.2;
  animation: mh-circle 12s linear infinite;
}
.scn-magic-of-handkerchief .handkerchief-magic {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: 60px; height: 60px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #702243 40%, #1a0a10 100%);
  border-radius: 10% 30% 20% 40% / 20% 10% 40% 30%;
  box-shadow: 0 0 30px 10px rgba(94,26,29,0.4), 0 0 60px 20px rgba(112,34,67,0.2);
  animation: mh-cloth 5s ease-in-out infinite alternate;
}
.scn-magic-of-handkerchief .runes {
  position: absolute; top: 40%; left: 30%; width: 200px; height: 200px;
  background: repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(180,160,200,0.05) 5px, rgba(180,160,200,0.05) 6px);
  animation: mh-runes 30s linear infinite;
}
.scn-magic-of-handkerchief .dust {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 60%;
  background: radial-gradient(circle at 20% 30%, rgba(200,180,220,0.06) 0%, transparent 60%);
  filter: blur(8px);
  animation: mh-dust 8s ease-in-out infinite alternate;
}
.scn-magic-of-handkerchief .glow-orb {
  position: absolute; top: 30%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #a080c0 0%, #6a4a8a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(160,128,192,0.6);
  animation: mh-orb 4s ease-in-out infinite alternate;
}
.scn-magic-of-handkerchief .shadow-figure {
  position: absolute; bottom: 5%; left: 70%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #0a0610 0%, #020004 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mh-shadow 6s ease-in-out infinite alternate;
}
@keyframes mh-void { 0% { opacity: 0.8 } 100% { opacity: 1 } }
@keyframes mh-circle { 0% { transform: translate(-50%,-50%) rotate(0deg) scale(1) } 50% { transform: translate(-50%,-50%) rotate(180deg) scale(1.05) } 100% { transform: translate(-50%,-50%) rotate(360deg) scale(1) } }
@keyframes mh-cloth { 0% { transform: translate(-50%,-50%) rotate(0deg) scale(1) } 33% { transform: translate(-50%,-50%) rotate(30deg) scale(1.1) } 66% { transform: translate(-50%,-50%) rotate(-20deg) scale(0.95) } 100% { transform: translate(-50%,-50%) rotate(10deg) scale(1.05) } }
@keyframes mh-runes { 0% { background-position: 0 0 } 100% { background-position: 100px 100px } }
@keyframes mh-dust { 0% { opacity: 0.3; transform: translate(0,0) } 50% { opacity: 0.6; transform: translate(10px,-10px) } 100% { opacity: 0.3; transform: translate(0,0) } }
@keyframes mh-orb { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-15px) scale(1.2) } 100% { transform: translateY(0) scale(1) } }
@keyframes mh-shadow { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(2px) rotate(0deg) } 100% { transform: translateY(0) rotate(-3deg) } }

/* lost-handkerchief-argument – tense, dim interior, confrontation */
.scn-lost-handkerchief-argument {
  background: 
    linear-gradient(180deg, #1a1410 0%, #0f0a08 40%, #080504 100%),
    radial-gradient(ellipse at 50% 40%, #2a1e1a 0%, transparent 60%);
}
.scn-lost-handkerchief-argument .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%);
  animation: la-room 8s ease-in-out infinite alternate;
}
.scn-lost-handkerchief-argument .bg-wall-arg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #1a1410 0%, #251c18 50%, #1a1410 100%);
}
.scn-lost-handkerchief-argument .figure-arg-left {
  position: absolute; bottom: 10%; left: 25%; width: 45px; height: 110px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: la-fig-l 3s ease-in-out infinite alternate;
}
.scn-lost-handkerchief-argument .figure-arg-right {
  position: absolute; bottom: 10%; right: 20%; width: 48px; height: 110px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: la-fig-r 3s ease-in-out infinite alternate-reverse;
}
.scn-lost-handkerchief-argument .hand-arg {
  position: absolute; bottom: 30%; left: 38%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: la-hand 2s ease-in-out infinite alternate;
}
.scn-lost-handkerchief-argument .handkerchief-arg {
  position: absolute; bottom: 25%; left: 42%; width: 20px; height: 20px;
  background: radial-gradient(ellipse, #c8553d 0%, #a0461a 60%, #5e1a1d 100%);
  border-radius: 10% 20% 30% 40% / 20% 30% 40% 10%;
  box-shadow: 0 0 8px 2px rgba(200,85,61,0.4);
  animation: la-cloth 2s ease-in-out infinite alternate;
}
.scn-lost-handkerchief-argument .shadow-stretch {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  filter: blur(10px);
  animation: la-shadow 4s ease-in-out infinite alternate;
}
.scn-lost-handkerchief-argument .edge-light {
  position: absolute; top: 10%; left: 0; width: 30%; height: 50%;
  background: linear-gradient(90deg, rgba(200,150,80,0.1) 0%, transparent 100%);
  animation: la-edge 6s ease-in-out infinite alternate;
}
@keyframes la-room { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes la-fig-l { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(-3px) translateY(1px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes la-fig-r { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 50% { transform: translateX(3px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes la-hand { 0% { transform: rotate(30deg) translateY(0) } 50% { transform: rotate(40deg) translateY(-3px) } 100% { transform: rotate(30deg) translateY(0) } }
@keyframes la-cloth { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(-5deg) scale(1.1) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes la-shadow { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes la-edge { 0% { opacity: 0.3 } 100% { opacity: 0.7 } }

/* cassio-pleads – calm, dim interior, tavern feel */
.scn-cassio-pleads {
  background: 
    linear-gradient(180deg, #2a2218 0%, #1f1812 40%, #141008 100%),
    radial-gradient(ellipse at 50% 30%, #3a3224 0%, transparent 60%);
}
.scn-cassio-pleads .bg-taverne {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2218 0%, #1f1812 100%);
}
.scn-cassio-pleads .bg-window {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 60%);
  filter: blur(8px);
  animation: cp-window 15s ease-in-out infinite alternate;
}
.scn-cassio-pleads .figure-cassio {
  position: absolute; bottom: 10%; left: 30%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-fig 6s ease-in-out infinite alternate;
}
.scn-cassio-pleads .table-cassio {
  position: absolute; bottom: 8%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 6px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f140a 100%);
  border-radius: 3px;
}
.scn-cassio-pleads .cup {
  position: absolute; bottom: 12%; left: 48%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  transform: rotate(-5deg);
  animation: cp-cup 4s ease-in-out infinite alternate;
}
.scn-cassio-pleads .wine-stain {
  position: absolute; bottom: 14%; left: 52%; width: 14px; height: 10px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #a0461a 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: cp-stain 5s ease-in-out infinite alternate;
}
.scn-cassio-pleads .candle-calm {
  position: absolute; bottom: 30%; right: 25%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 70%, #ffd060 0%, #d4903a 50%, transparent 80%);
  filter: blur(4px);
  animation: cp-candle 4s ease-in-out infinite alternate;
}
.scn-cassio-pleads .moth {
  position: absolute; top: 20%; left: 60%; width: 6px; height: 6px;
  background: radial-gradient(circle, #d4c4a0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(212,196,160,0.3);
  animation: cp-moth 8s ease-in-out infinite;
}
@keyframes cp-window { 0% { opacity: 0.3 } 100% { opacity: 0.6 } }
@keyframes cp-fig { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes cp-cup { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes cp-stain { 0% { opacity: 0.4; transform: scale(1) } 50% { opacity: 0.7; transform: scale(1.1) } 100% { opacity: 0.4; transform: scale(1) } }
@keyframes cp-candle { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes cp-moth { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(30px,-20px) rotate(10deg) } 50% { transform: translate(60px,10px) rotate(-5deg) } 75% { transform: translate(30px,30px) rotate(8deg) } 100% { transform: translate(0,0) rotate(0deg) } }

/* Scene 1: othello-demands-truth */
.scn-othello-demands-truth {
  background: linear-gradient(180deg, #0b0b2a 0%, #1a1a4a 40%, #2a2a5a 100%),
              radial-gradient(ellipse at 50% 30%, #3a4a7a 0%, transparent 60%);
}
.scn-othello-demands-truth .moon {
  position: absolute; top: 8%; left: 65%; width: 60px; height: 60px;
  background: radial-gradient(circle at 50% 50%, #e8e8f0 0%, #c0c0d0 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 80px 30px rgba(200,200,230,0.4), 0 0 160px 60px rgba(200,200,230,0.2);
  animation: ot1-moon 12s ease-in-out infinite alternate;
}
.scn-othello-demands-truth .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, rgba(10,10,40,0.8) 0%, transparent 100%);
  animation: ot1-sky 8s ease-in-out infinite alternate;
}
.scn-othello-demands-truth .ground {
  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 10px 30px rgba(0,0,0,0.6);
  animation: ot1-ground 10s ease-in-out infinite;
}
.scn-othello-demands-truth .wall {
  position: absolute; bottom: 35%; left: 20%; width: 60%; height: 35%;
  background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.5);
  animation: ot1-wall 15s ease-in-out infinite alternate;
}
.scn-othello-demands-truth .othello-figure {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: ot1-figure 4s ease-in-out infinite alternate;
}
.scn-othello-demands-truth .arm {
  position: absolute; bottom: 45%; left: 44%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ot1-arm 2s ease-in-out infinite alternate;
}
.scn-othello-demands-truth .shadow-1 {
  position: absolute; bottom: 18%; left: 46%; width: 50px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: ot1-shadow 4s ease-in-out infinite;
}
.scn-othello-demands-truth .shadow-2 {
  position: absolute; bottom: 15%; left: 52%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: ot1-shadow 5s ease-in-out infinite reverse;
}
@keyframes ot1-moon { 0% { opacity: 0.85; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.9; transform: scale(0.98); } }
@keyframes ot1-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ot1-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ot1-wall { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.005); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ot1-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes ot1-arm { 0% { transform: rotate(10deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(15deg); } }
@keyframes ot1-shadow { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.1); } 100% { opacity: 0.6; transform: scaleX(1); } }

/* Scene 2: iago-lies-about-cassio */
.scn-iago-lies-about-cassio {
  background: linear-gradient(180deg, #0a0a30 0%, #151545 50%, #202050 100%),
              radial-gradient(ellipse at 30% 20%, #2a2a60 0%, transparent 70%);
}
.scn-iago-lies-about-cassio .moon {
  position: absolute; top: 5%; left: 70%; width: 55px; height: 55px;
  background: radial-gradient(circle, #d0d0e0 0%, #a0a0c0 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(180,180,220,0.3), 0 0 120px 50px rgba(180,180,220,0.15);
  animation: ot2-moon 14s ease-in-out infinite alternate;
}
.scn-iago-lies-about-cassio .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, rgba(10,10,40,0.9) 0%, transparent 100%);
  animation: ot2-sky 10s ease-in-out infinite;
}
.scn-iago-lies-about-cassio .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 15% 15% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
  animation: ot2-ground 8s ease-in-out infinite alternate;
}
.scn-iago-lies-about-cassio .iago-figure {
  position: absolute; bottom: 20%; left: 40%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: ot2-iago 5s ease-in-out infinite alternate;
}
.scn-iago-lies-about-cassio .cassio-figure {
  position: absolute; bottom: 22%; left: 55%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #151525 0%, #080818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: ot2-cassio 6s ease-in-out infinite alternate;
}
.scn-iago-lies-about-cassio .whisper-glow {
  position: absolute; bottom: 35%; left: 44%; width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(200,200,255,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: ot2-whisper 3s ease-in-out infinite alternate;
}
.scn-iago-lies-about-cassio .shadow-1 {
  position: absolute; bottom: 16%; left: 37%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: ot2-shadow1 7s ease-in-out infinite;
}
.scn-iago-lies-about-cassio .shadow-2 {
  position: absolute; bottom: 18%; left: 52%; width: 35px; height: 7px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: ot2-shadow2 8s ease-in-out infinite reverse;
}
@keyframes ot2-moon { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.03); } 100% { opacity: 0.85; transform: scale(0.97); } }
@keyframes ot2-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes ot2-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ot2-iago { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(2deg); } }
@keyframes ot2-cassio { 0% { transform: translateX(-50%) translateY(0) rotate(1deg); } 50% { transform: translateX(-50%) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes ot2-whisper { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 0.7; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(0.9); } }
@keyframes ot2-shadow1 { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.15); } 100% { opacity: 0.5; transform: scaleX(1); } }
@keyframes ot2-shadow2 { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.1); } 100% { opacity: 0.4; transform: scaleX(1); } }

/* Scene 3: iago-claims-ignorance */
.scn-iago-claims-ignorance {
  background: linear-gradient(180deg, #0b0b2e 0%, #1a1a4a 50%, #2a2a5a 100%),
              radial-gradient(ellipse at 50% 10%, #2a2a6a 0%, transparent 80%);
}
.scn-iago-claims-ignorance .moon {
  position: absolute; top: 3%; left: 30%; width: 50px; height: 50px;
  background: radial-gradient(circle, #d8d8ec 0%, #a8a8c8 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 70px 20px rgba(180,180,220,0.4), 0 0 140px 40px rgba(180,180,220,0.2);
  animation: ot3-moon 16s ease-in-out infinite alternate;
}
.scn-iago-claims-ignorance .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, rgba(10,10,40,0.85) 0%, transparent 100%);
  animation: ot3-sky 12s ease-in-out infinite;
}
.scn-iago-claims-ignorance .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #12122a 0%, #080818 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.7);
  animation: ot3-ground 9s ease-in-out infinite alternate;
}
.scn-iago-claims-ignorance .iago-figure {
  position: absolute; bottom: 18%; left: 45%; width: 38px; height: 72px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: ot3-iago 5s ease-in-out infinite alternate;
}
.scn-iago-claims-ignorance .hands-up {
  position: absolute; bottom: 38%; left: 43%; width: 25px; height: 18px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ot3-hands 3s ease-in-out infinite alternate;
}
.scn-iago-claims-ignorance .shadow-1 {
  position: absolute; bottom: 14%; left: 42%; width: 45px; height: 9px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: ot3-shadow1 6s ease-in-out infinite;
}
.scn-iago-claims-ignorance .shadow-2 {
  position: absolute; bottom: 12%; left: 50%; width: 35px; height: 7px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: ot3-shadow2 7s ease-in-out infinite reverse;
}
.scn-iago-claims-ignorance .fog {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, rgba(20,20,50,0.3) 0%, rgba(40,40,60,0.1) 50%, rgba(20,20,50,0.3) 100%);
  filter: blur(20px);
  animation: ot3-fog 20s linear infinite;
}
@keyframes ot3-moon { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.85; transform: scale(0.98); } }
@keyframes ot3-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ot3-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ot3-iago { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes ot3-hands { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.1); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes ot3-shadow1 { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.5; transform: scaleX(1); } }
@keyframes ot3-shadow2 { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.15); } 100% { opacity: 0.4; transform: scaleX(1); } }
@keyframes ot3-fog { 0% { transform: translateX(-10%); } 50% { transform: translateX(10%); } 100% { transform: translateX(-10%); } }

/* Scene 4: othello-dismisses-cassio */
.scn-othello-dismisses-cassio {
  background: linear-gradient(180deg, #0a0a28 0%, #181848 40%, #282858 100%),
              radial-gradient(ellipse at 60% 20%, #2a2a6a 0%, transparent 70%);
}
.scn-othello-dismisses-cassio .moon {
  position: absolute; top: 6%; left: 60%; width: 55px; height: 55px;
  background: radial-gradient(circle, #e0e0f0 0%, #b0b0d0 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 70px 25px rgba(190,190,230,0.4), 0 0 140px 50px rgba(190,190,230,0.2);
  animation: ot4-moon 13s ease-in-out infinite alternate;
}
.scn-othello-dismisses-cassio .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, rgba(10,10,40,0.9) 0%, transparent 100%);
  animation: ot4-sky 11s ease-in-out infinite;
}
.scn-othello-dismisses-cassio .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 48%;
  background: linear-gradient(180deg, #15152a 0%, #080820 100%);
  border-radius: 12% 12% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.7);
  animation: ot4-ground 9s ease-in-out infinite alternate;
}
.scn-othello-dismisses-cassio .wall {
  position: absolute; bottom: 30%; left: 15%; width: 70%; height: 40%;
  background: linear-gradient(90deg, #202040 0%, #303050 50%, #202040 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 -15px 30px rgba(0,0,0,0.6);
  animation: ot4-wall 14s ease-in-out infinite alternate;
}
.scn-othello-dismisses-cassio .othello-figure {
  position: absolute; bottom: 20%; left: 40%; width: 42px; height: 82px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: ot4-othello 4s ease-in-out infinite alternate;
}
.scn-othello-dismisses-cassio .cassio-figure {
  position: absolute; bottom: 22%; left: 52%; width: 36px; height: 68px;
  background: linear-gradient(180deg, #12122a 0%, #060618 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: ot4-cassio 5s ease-in-out infinite alternate;
}
.scn-othello-dismisses-cassio .desdemona-figure {
  position: absolute; bottom: 24%; left: 32%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #181838 0%, #0a0a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ot4-desdemona 6s ease-in-out infinite alternate;
}
.scn-othello-dismisses-cassio .shadow-1 {
  position: absolute; bottom: 16%; left: 37%; width: 50px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: ot4-shadow1 8s ease-in-out infinite;
}
.scn-othello-dismisses-cassio .shadow-2 {
  position: absolute; bottom: 18%; left: 49%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: ot4-shadow2 9s ease-in-out infinite reverse;
}
@keyframes ot4-moon { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.85; transform: scale(0.97); } }
@keyframes ot4-sky { 0% { opacity: 0.65; } 50% { opacity: 0.95; } 100% { opacity: 0.7; } }
@keyframes ot4-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ot4-wall { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.003); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ot4-othello { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes ot4-cassio { 0% { transform: translateX(-50%) translateY(0) rotate(1deg); } 50% { transform: translateX(-50%) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes ot4-desdemona { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(1deg); } }
@keyframes ot4-shadow1 { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.15); } 100% { opacity: 0.5; transform: scaleX(1); } }
@keyframes ot4-shadow2 { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.1); } 100% { opacity: 0.4; transform: scaleX(1); } }

/* iago-consoles – calm, dim interior with two figures at a table, candle glow */
.scn-iago-consoles {
  background:
    linear-gradient(180deg, #2a2620 0%, #1f1a14 40%, #14100c 100%),
    radial-gradient(ellipse at 50% 30%, #3a3228 0%, transparent 70%);
}
.scn-iago-consoles .wall-bg {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a3428 0%, #2a241e 100%);
  animation: ic-wall 20s ease-in-out infinite alternate;
}
.scn-iago-consoles .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #1e1a12 0%, #2c261c 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: ic-floor 15s ease-in-out infinite alternate;
}
.scn-iago-consoles .table {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 60%; height: 10%;
  background: linear-gradient(90deg, #4a3a2e 0%, #5e4e3e 50%, #4a3a2e 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,.7);
}
.scn-iago-consoles .candle {
  position: absolute; bottom: 28%; left: 50%; margin-left: -3px;
  width: 6px; height: 14px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a878 100%);
  border-radius: 40% 40% 10% 10%;
  animation: ic-candle 4s ease-in-out infinite alternate;
}
.scn-iago-consoles .candle-glow {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,200,120,.3) 0%, rgba(255,200,120,.1) 40%, transparent 70%);
  border-radius: 50%;
  animation: ic-glow 3s ease-in-out infinite alternate;
}
.scn-iago-consoles .figure-left {
  position: absolute; bottom: 16%; left: 20%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a3228 0%, #1e1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ic-fig-left 8s ease-in-out infinite alternate;
}
.scn-iago-consoles .figure-right {
  position: absolute; bottom: 16%; right: 20%;
  width: 22px; height: 42px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a221a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ic-fig-right 7s ease-in-out infinite alternate;
}
.scn-iago-consoles .shadow-left {
  position: absolute; bottom: 10%; left: 10%;
  width: 30px; height: 10px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: ic-shadow 6s ease-in-out infinite alternate;
}
@keyframes ic-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ic-floor { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .95 } }
@keyframes ic-candle { 0% { height: 14px; opacity: .8 } 50% { height: 16px; opacity: 1 } 100% { height: 13px; opacity: .9 } }
@keyframes ic-glow { 0% { transform: translateX(-50%) scale(.95); opacity: .7 } 50% { transform: translateX(-50%) scale(1.1); opacity: 1 } 100% { transform: translateX(-50%) scale(1); opacity: .8 } }
@keyframes ic-fig-left { 0% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes ic-fig-right { 0% { transform: rotate(1deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }
@keyframes ic-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(5px) scaleX(1.1) } 100% { transform: translateX(0) scaleX(1) } }

/* roderigo-accuses – tense dim interior, two figures confronting, sharp shadows, quick lantern flicker */
.scn-roderigo-accuses {
  background:
    linear-gradient(180deg, #1e1a16 0%, #14100c 40%, #0e0c0a 100%),
    radial-gradient(ellipse at 50% 20%, #2a221c 0%, transparent 70%);
}
.scn-roderigo-accuses .wall-dark {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #291f1a 0%, #17120e 100%);
  animation: ra-wall 10s ease-in-out infinite alternate;
}
.scn-roderigo-accuses .floor-angry {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #0e0a08 0%, #1c1612 100%);
  border-radius: 15% 30% 0 0 / 25% 40% 0 0;
  box-shadow: inset 0 4px 15px rgba(0,0,0,.7);
  animation: ra-floor 14s ease-in-out infinite alternate;
}
.scn-roderigo-accuses .table-tense {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 55%; height: 8%;
  background: linear-gradient(90deg, #3a2a1e 0%, #4a3a2a 50%, #3a2a1e 100%);
  border-radius: 3px 3px 0 0;
  box-shadow: 0 5px 12px rgba(0,0,0,.8);
  animation: ra-table 5s ease-in-out infinite alternate;
}
.scn-roderigo-accuses .lantern {
  position: absolute; bottom: 29%; left: 48%;
  width: 10px; height: 16px;
  background: linear-gradient(180deg, #b88848 0%, #8a6a3a 100%);
  border-radius: 10% 10% 30% 30%;
  animation: ra-lantern 0.6s steps(2) infinite;
}
.scn-roderigo-accuses .lantern-light {
  position: absolute; bottom: 25%; left: 45%; transform: translateX(-50%);
  width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(220,180,80,.35) 0%, rgba(180,140,60,.1) 50%, transparent 70%);
  border-radius: 50%;
  animation: ra-lantern-light 0.8s steps(2) infinite;
}
.scn-roderigo-accuses .fig-accuser {
  position: absolute; bottom: 12%; left: 15%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra-accuser 4s ease-in-out infinite alternate;
}
.scn-roderigo-accuses .fig-accused {
  position: absolute; bottom: 14%; right: 18%;
  width: 22px; height: 46px;
  background: linear-gradient(180deg, #2a1e1a 0%, #12100c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra-accused 3.5s ease-in-out infinite alternate;
}
.scn-roderigo-accuses .shadow-flicker {
  position: absolute; bottom: 8%; left: 30%; width: 60px; height: 20px;
  background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(5px);
  animation: ra-shadow-flicker 2s steps(2) infinite;
}
@keyframes ra-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ra-floor { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes ra-table { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.02) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes ra-lantern { 0%,100% { opacity: .9; filter: brightness(1) } 50% { opacity: .6; filter: brightness(.8) } }
@keyframes ra-lantern-light { 0%,100% { opacity: .7; transform: translateX(-50%) scale(.95) } 50% { opacity: 1; transform: translateX(-50%) scale(1.2) } }
@keyframes ra-accuser { 0% { transform: rotate(-5deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes ra-accused { 0% { transform: rotate(2deg) } 50% { transform: rotate(-4deg) } 100% { transform: rotate(0) } }
@keyframes ra-shadow-flicker { 0%,100% { opacity: .3 } 50% { opacity: .6 } }

/* iago-plots-murder – dark, vertical shaft, two figures conspiring, dagger gleam */
.scn-iago-plots-murder {
  background:
    linear-gradient(180deg, #0a0a0e 0%, #14101a 40%, #1e1a28 100%),
    radial-gradient(ellipse at 50% 80%, #2a1e30 0%, transparent 70%);
}
.scn-iago-plots-murder .bg-pit {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 50%, rgba(0,0,0,.8) 100%);
  animation: ip-pit 30s ease-in-out infinite alternate;
}
.scn-iago-plots-murder .wall-slit {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 30%; height: 80%;
  background: linear-gradient(90deg, #1a1620 0%, #0e0c10 30%, #1a1620 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.9);
  animation: ip-slit 18s ease-in-out infinite alternate;
}
.scn-iago-plots-murder .figure-hooded {
  position: absolute; bottom: 18%; left: 30%;
  width: 22px; height: 52px;
  background: linear-gradient(180deg, #1c1a22 0%, #0a0810 100%);
  border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ip-hooded 6s ease-in-out infinite alternate;
}
.scn-iago-plots-murder .figure-roderigo {
  position: absolute; bottom: 20%; right: 32%;
  width: 20px; height: 48px;
  background: linear-gradient(180deg, #221e2a 0%, #0e0c14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ip-roderigo 8s ease-in-out infinite alternate;
}
.scn-iago-plots-murder .dagger {
  position: absolute; bottom: 35%; left: 48%;
  width: 4px; height: 20px;
  background: linear-gradient(180deg, #606060 0%, #808080 50%, #404040 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 0 6px rgba(200,200,200,.3);
  transform: rotate(15deg);
  animation: ip-dagger 4s ease-in-out infinite alternate;
}
.scn-iago-plots-murder .dagger-gleam {
  position: absolute; bottom: 38%; left: 50%;
  width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(220,220,220,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: ip-gleam 2s ease-in-out infinite alternate;
}
.scn-iago-plots-murder .shadow-plot {
  position: absolute; bottom: 5%; left: 20%; width: 70%; height: 20px;
  background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(8px);
  animation: ip-shadow 10s ease-in-out infinite alternate;
}
@keyframes ip-pit { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ip-slit { 0% { transform: translateX(-50%) scaleY(.98) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes ip-hooded { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes ip-roderigo { 0% { transform: rotate(1deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }
@keyframes ip-dagger { 0% { transform: rotate(12deg) translateY(0); opacity: .7 } 50% { transform: rotate(18deg) translateY(-3px); opacity: 1 } 100% { transform: rotate(14deg) translateY(0); opacity: .8 } }
@keyframes ip-gleam { 0% { opacity: .3; transform: scale(.8) } 50% { opacity: .8; transform: scale(1.3) } 100% { opacity: .4; transform: scale(1) } }
@keyframes ip-shadow { 0% { opacity: .4; transform: scaleX(1) } 50% { opacity: .7; transform: scaleX(1.2) } 100% { opacity: .5; transform: scaleX(1) } }

/* cassio-to-die – dark, cell-like interior with barred window, solitary figure, moon beams */
.scn-cassio-to-die {
  background:
    linear-gradient(180deg, #0f0e12 0%, #18161c 40%, #23202a 100%),
    radial-gradient(ellipse at 50% 20%, #2a2635 0%, transparent 70%);
}
.scn-cassio-to-die .cell-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #16131a 0%, #0d0b10 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
  animation: cd-wall 25s ease-in-out infinite alternate;
}
.scn-cassio-to-die .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #0a080c 0%, #141118 100%);
  border-radius: 5% 5% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
  animation: cd-floor 20s ease-in-out infinite alternate;
}
.scn-cassio-to-die .barred-window {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border: 3px solid #4a4a5a;
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(100,120,200,.2);
}
.scn-cassio-to-die .barred-window::before,
.scn-cassio-to-die .barred-window::after {
  content: '';
  position: absolute;
  top: 0; left: 50%; transform: translateX(-50%);
  width: 2px; height: 100%;
  background: #4a4a5a;
}
.scn-cassio-to-die .moon-beams {
  position: absolute; top: 0; left: 45%; width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(200,220,255,.08) 0%, transparent 70%);
  animation: cd-beams 8s ease-in-out infinite alternate;
}
.scn-cassio-to-die .figure-cassio {
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 54px;
  background: linear-gradient(180deg, #2a2635 0%, #14111a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-figure 12s ease-in-out infinite alternate;
}
.scn-cassio-to-die .shackle-chain {
  position: absolute; bottom: 5%; left: 47%; transform: translateX(-50%);
  width: 14px; height: 14px;
  background: radial-gradient(circle, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,.5);
  animation: cd-shackle 6s ease-in-out infinite alternate;
}
.scn-cassio-to-die .shadow-cassio {
  position: absolute; bottom: 2%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 10px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: cd-shadow 10s ease-in-out infinite alternate;
}
@keyframes cd-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes cd-floor { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .95 } }
@keyframes cd-beams { 0% { opacity: .2; transform: scaleX(1) } 50% { opacity: .4; transform: scaleX(1.1) } 100% { opacity: .25; transform: scaleX(1) } }
@keyframes cd-figure { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes cd-shackle { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes cd-shadow { 0% { transform: translateX(-50%) scaleX(1); opacity: .4 } 50% { transform: translateX(-50%) scaleX(1.1); opacity: .6 } 100% { transform: translateX(-50%) scaleX(1); opacity: .45 } }

.scn-brawl-on-watch {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a14 40%, #3a2a20 100%), radial-gradient(ellipse at 50% 100%, #4a3220 0%, transparent 60%);
}
.scn-brawl-on-watch .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #2a1a10 100%); }
.scn-brawl-on-watch .bg-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%); }
.scn-brawl-on-watch .table { position:absolute; bottom:25%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 4px; transform: rotate(-5deg); animation: brw-table 2s ease-in-out infinite alternate; }
.scn-brawl-on-watch .lantern { position:absolute; bottom:55%; left:55%; width:12px; height:20px; background: radial-gradient(circle at 50% 30%, #ffb060 0%, #a05020 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 8px rgba(255,176,96,0.5), 0 0 40px 16px rgba(200,100,30,0.3); animation: brw-lantern 1.5s ease-in-out infinite alternate; }
.scn-brawl-on-watch .figure-left { position:absolute; bottom:15%; left:20%; width:30px; height:80px; background: linear-gradient(180deg, #1a120a 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: brw-fight-l 0.8s ease-in-out infinite alternate; }
.scn-brawl-on-watch .figure-right { position:absolute; bottom:15%; right:20%; width:32px; height:78px; background: linear-gradient(180deg, #1a120a 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: brw-fight-r 0.9s ease-in-out infinite alternate; }
.scn-brawl-on-watch .sword { position:absolute; bottom:40%; left:35%; width:4px; height:50px; background: linear-gradient(180deg, #b0a090 0%, #807060 100%); transform: rotate(20deg); transform-origin: bottom center; box-shadow: 0 0 4px 1px rgba(200,180,160,0.4); animation: brw-sword 0.6s ease-in-out infinite alternate; }
.scn-brawl-on-watch .spark { position:absolute; bottom:50%; left:40%; width:6px; height:6px; background: radial-gradient(circle, #ffe080 0%, #ffb020 70%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,176,32,0.6); animation: brw-spark 0.3s ease-in-out infinite alternate; }
@keyframes brw-table { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(1px); } }
@keyframes brw-lantern { 0% { transform: rotate(-8deg); opacity:0.7; } 50% { transform: rotate(5deg) scale(1.1); opacity:1; } 100% { transform: rotate(-6deg); opacity:0.8; } }
@keyframes brw-fight-l { 0% { transform: translateX(-2px) rotate(-3deg); } 50% { transform: translateX(4px) rotate(2deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes brw-fight-r { 0% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(-4px) rotate(-2deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes brw-sword { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-3px); } 100% { transform: rotate(18deg) translateY(0); } }
@keyframes brw-spark { 0% { transform: scale(1) translate(0,0); opacity:0.8; } 100% { transform: scale(1.8) translate(-4px,-2px); opacity:0; } }

.scn-othello-quells-brawl {
  background: linear-gradient(180deg, #0c1420 0%, #182838 40%, #2a3a4a 100%), radial-gradient(ellipse at 50% 20%, #406080 0%, transparent 70%);
}
.scn-othello-quells-brawl .moon { position:absolute; top:12%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #d0e0ee 0%, #a0b8cc 70%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(160,184,204,0.5), 0 0 80px 30px rgba(100,140,180,0.2); animation: oqb-moon 8s ease-in-out infinite alternate; }
.scn-othello-quells-brawl .clouds { position:absolute; top:8%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(200,220,240,0.15) 0%, transparent 100%); filter: blur(10px); animation: oqb-clouds 30s linear infinite; }
.scn-othello-quells-brawl .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a2a3a 0%, #0a121a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-othello-quells-brawl .figure-othello { position:absolute; bottom:25%; left:40%; width:28px; height:90px; background: linear-gradient(180deg, #0c1420 0%, #080c14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oqb-stand 3s ease-in-out infinite alternate; }
.scn-othello-quells-brawl .figure-montano { position:absolute; bottom:5%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #1a2a38 0%, #0a1420 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-20deg); transform-origin: bottom center; animation: oqb-fall 4s ease-in-out infinite; }
.scn-othello-quells-brawl .puddle { position:absolute; bottom:0; left:50%; width:40px; height:6px; background: radial-gradient(ellipse, #3a1a1a 0%, #1a0a0a 70%); border-radius: 50%; box-shadow: inset 0 1px 3px rgba(100,40,40,0.3); animation: oqb-puddle 6s ease-in-out infinite; }
.scn-othello-quells-brawl .sword-othello { position:absolute; bottom:50%; left:38%; width:3px; height:40px; background: linear-gradient(180deg, #b8c8d8 0%, #8898a8 100%); transform: rotate(-40deg); transform-origin: bottom center; box-shadow: 0 0 3px 1px rgba(180,200,220,0.5); animation: oqb-sword 2s ease-in-out infinite alternate; }
@keyframes oqb-moon { 0% { transform: scale(1) translate(0,0); box-shadow: 0 0 40px 15px rgba(160,184,204,0.5); } 50% { transform: scale(1.05) translate(-2px,1px); box-shadow: 0 0 60px 20px rgba(160,184,204,0.7); } 100% { transform: scale(1) translate(0,0); box-shadow: 0 0 40px 15px rgba(160,184,204,0.5); } }
@keyframes oqb-clouds { 0% { transform: translateX(0); opacity:0.6; } 50% { transform: translateX(-20%); opacity:1; } 100% { transform: translateX(-40%); opacity:0.5; } }
@keyframes oqb-stand { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-3px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes oqb-fall { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(3px) translateY(-2px); } 100% { transform: rotate(-22deg) translateX(0) translateY(0); } }
@keyframes oqb-puddle { 0% { transform: scaleX(1) scaleY(1); opacity:0.8; } 50% { transform: scaleX(1.2) scaleY(0.8); opacity:1; } 100% { transform: scaleX(1) scaleY(1); opacity:0.7; } }
@keyframes oqb-sword { 0% { transform: rotate(-40deg) translateY(0); } 50% { transform: rotate(-30deg) translateY(-3px) scaleY(0.95); } 100% { transform: rotate(-42deg) translateY(0); } }

.scn-iago-false-innocence {
  background: linear-gradient(180deg, #0e1a28 0%, #1e2e42 50%, #2e4056 100%), radial-gradient(ellipse at 50% 80%, #3a5068 0%, transparent 60%);
}
.scn-iago-false-innocence .moon { position:absolute; top:15%; left:20%; width:40px; height:40px; background: radial-gradient(circle, #c8d8e8 0%, #9aaec4 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(150,180,200,0.4); animation: ifi-moon 6s ease-in-out infinite alternate; }
.scn-iago-false-innocence .sky-bg { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #162838 0%, #0a1420 100%); }
.scn-iago-false-innocence .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a2a3a 0%, #0a121a 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; }
.scn-iago-false-innocence .figure-cassio { position:absolute; bottom:30%; left:25%; width:30px; height:80px; background: linear-gradient(180deg, #1a2a3a 0%, #0e1a24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ifi-duel 2.5s ease-in-out infinite alternate; }
.scn-iago-false-innocence .figure-montano { position:absolute; bottom:30%; right:25%; width:30px; height:82px; background: linear-gradient(180deg, #1a2a3a 0%, #0e1a24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ifi-duel 2.5s ease-in-out infinite alternate-reverse; }
.scn-iago-false-innocence .figure-iago { position:absolute; bottom:20%; left:10%; width:22px; height:60px; background: linear-gradient(180deg, #0e1822 0%, #060c12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ifi-iago 4s ease-in-out infinite; }
.scn-iago-false-innocence .sword-cassio { position:absolute; bottom:55%; left:28%; width:3px; height:45px; background: linear-gradient(180deg, #a0b0c0 0%, #7888a0 100%); transform: rotate(30deg); transform-origin: bottom center; animation: ifi-sword 1.5s ease-in-out infinite alternate; }
.scn-iago-false-innocence .sword-montano { position:absolute; bottom:55%; right:28%; width:3px; height:45px; background: linear-gradient(180deg, #a0b0c0 0%, #7888a0 100%); transform: rotate(-30deg); transform-origin: bottom center; animation: ifi-sword 1.5s ease-in-out infinite alternate-reverse; }
@keyframes ifi-moon { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.02) translate(1px, -1px); } 100% { transform: scale(1) translate(0,0); } }
@keyframes ifi-duel { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(3deg) scaleY(1.01); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ifi-iago { 0% { transform: translate(0,0) rotate(-2deg); } 50% { transform: translate(2px, -1px) rotate(2deg); } 100% { transform: translate(0,0) rotate(-2deg); } }
@keyframes ifi-sword { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(28deg) translateY(0); } }

.scn-montano-wounded-accuses {
  background: linear-gradient(180deg, #0e1a26 0%, #1c2e40 50%, #2c4054 100%), radial-gradient(ellipse at 50% 10%, #4a6480 0%, transparent 60%);
}
.scn-montano-wounded-accuses .moon { position:absolute; top:10%; left:80%; width:45px; height:45px; background: radial-gradient(circle, #b8c8da 0%, #8a9eb6 70%); border-radius: 50%; box-shadow: 0 0 35px 12px rgba(140,160,180,0.4); animation: mwa-moon 7s ease-in-out infinite alternate; }
.scn-montano-wounded-accuses .wall { position:absolute; left:0; top:20%; width:30%; height:60%; background: linear-gradient(180deg, #1a2836 0%, #0e1822 100%); border-radius: 0 60% 60% 0 / 0 30% 30% 0; }
.scn-montano-wounded-accuses .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #162432 0%, #0a121a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-montano-wounded-accuses .figure-montano { position:absolute; bottom:5%; left:40%; width:28px; height:55px; background: linear-gradient(180deg, #1a2a38 0%, #0a1420 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-25deg); transform-origin: bottom left; animation: mwa-montano 4s ease-in-out infinite; }
.scn-montano-wounded-accuses .figure-othello { position:absolute; bottom:25%; left:55%; width:30px; height:85px; background: linear-gradient(180deg, #101a26 0%, #080e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mwa-othello 2.5s ease-in-out infinite alternate; }
.scn-montano-wounded-accuses .figure-iago { position:absolute; bottom:15%; right:15%; width:20px; height:60px; background: linear-gradient(180deg, #0e1822 0%, #060c12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mwa-iago 3s ease-in-out infinite; }
.scn-montano-wounded-accuses .bloodstain { position:absolute; bottom:0; left:35%; width:30px; height:8px; background: radial-gradient(ellipse, #3a1a1a 0%, #1a0a0a 70%); border-radius: 50%; box-shadow: inset 0 2px 4px rgba(80,30,30,0.3); animation: mwa-blood 5s ease-in-out infinite; }
@keyframes mwa-moon { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.03) translate(-1px, 1px); } 100% { transform: scale(1) translate(0,0); } }
@keyframes mwa-montano { 0% { transform: rotate(-25deg) translate(0,0); } 50% { transform: rotate(-20deg) translate(3px, -2px) scaleY(0.97); } 100% { transform: rotate(-25deg) translate(0,0); } }
@keyframes mwa-othello { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-4px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0); } }
@keyframes mwa-iago { 0% { transform: translate(0,0) rotate(2deg); } 50% { transform: translate(-2px, -1px) rotate(-2deg); } 100% { transform: translate(0,0) rotate(2deg); } }
@keyframes mwa-blood { 0% { transform: scaleX(1) scaleY(1); opacity:0.7; } 50% { transform: scaleX(1.3) scaleY(0.8); opacity:1; } 100% { transform: scaleX(1) scaleY(1); opacity:0.6; } }

/* scene: othello-letters-pilot — calm, bright interior, castle room */
.scn-othello-letters-pilot {
  background:
    linear-gradient(180deg, #d4c9b0 0%, #c2b59a 30%, #b0a38a 60%, #9e917a 100%),
    radial-gradient(ellipse at 70% 30%, #efe6d0 0%, transparent 60%);
}
.scn-othello-letters-pilot .wall-back { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e2d7c0 0%, #c8bca5 100%); }
.scn-othello-letters-pilot .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #7a6e5a 0%, #5a4e3a 100%), repeating-linear-gradient(90deg, transparent 0, transparent 6%, #6a5e4a 6%, #6a5e4a 7%); box-shadow: inset 0 20px 30px -10px rgba(0,0,0,.3); }
.scn-othello-letters-pilot .window { position:absolute; top:12%; left:55%; width:80px; height:100px; background: linear-gradient(180deg, #c8e0f0 0%, #a8c8e0 100%); border:6px solid #8a7a62; border-radius:4% 4% 8% 8%; box-shadow: inset 0 0 30px rgba(200,224,240,.5), 0 8px 20px rgba(0,0,0,.3); animation: otl-window-pulse 8s ease-in-out infinite alternate; }
.scn-othello-letters-pilot .window::after { content:''; position:absolute; top:50%; left:0; right:0; height:2px; background:rgba(138,122,98,.5); transform:translateY(-1px); }
.scn-othello-letters-pilot .window::before { content:''; position:absolute; top:0; bottom:0; left:50%; width:2px; background:rgba(138,122,98,.5); transform:translateX(-1px); }
.scn-othello-letters-pilot .table { position:absolute; bottom:25%; left:30%; width:140px; height:18px; background: linear-gradient(180deg, #5a4a32 0%, #3d3322 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-othello-letters-pilot .letter { position:absolute; bottom:28%; width:28px; height:36px; background: linear-gradient(135deg, #f5eedd 0%, #e8ddc8 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: otl-float-paper 6s ease-in-out infinite; transform-origin: bottom center; }
.scn-othello-letters-pilot .letter-1 { left:35%; animation-delay:0s; }
.scn-othello-letters-pilot .letter-2 { left:42%; animation-delay:1.5s; transform:rotate(-8deg); }
.scn-othello-letters-pilot .figure-seated { position:absolute; bottom:20%; left:28%; width:32px; height:56px; background: linear-gradient(180deg, #2a2230 0%, #1a1420 70%, #0e0a12 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: otl-breathe 4s ease-in-out infinite alternate; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.scn-othello-letters-pilot .inkwell { position:absolute; bottom:28%; left:50%; width:10px; height:12px; background: radial-gradient(circle at 40% 30%, #2a2a3a 0%, #0a0a12 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.6); }
.scn-othello-letters-pilot .quill { position:absolute; bottom:34%; left:52%; width:24px; height:1px; background: #d4c4a0; transform:rotate(-30deg); transform-origin: left center; border-radius:50%; box-shadow: 0 1px 2px rgba(0,0,0,.3); animation: otl-quill-twitch 5s ease-in-out infinite; }
@keyframes otl-window-pulse { 0% { box-shadow: inset 0 0 20px rgba(200,224,240,.4), 0 8px 20px rgba(0,0,0,.3) } 50% { box-shadow: inset 0 0 40px rgba(220,240,255,.7), 0 10px 25px rgba(0,0,0,.25) } 100% { box-shadow: inset 0 0 25px rgba(200,224,240,.5), 0 8px 20px rgba(0,0,0,.3) } }
@keyframes otl-float-paper { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-3px) rotate(1deg) } 66% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-1px) rotate(0) } }
@keyframes otl-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(0.99) } }
@keyframes otl-quill-twitch { 0%,100% { transform: rotate(-30deg) } 40% { transform: rotate(-28deg) } 60% { transform: rotate(-32deg) } }

/* scene: desdemona-promises-help — warm, bright interior, garden */
.scn-desdemona-promises-help {
  background:
    linear-gradient(180deg, #f5e8d0 0%, #e8d4b8 40%, #d4bea0 70%, #c0a888 100%),
    radial-gradient(ellipse at 30% 20%, #ffe8c6 0%, transparent 50%);
}
.scn-desdemona-promises-help .garden-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0d4e8 0%, #d0e8f0 40%, #e8f0d8 100%); animation: dp-sky-shift 20s ease-in-out infinite alternate; }
.scn-desdemona-promises-help .garden-arch { position:absolute; top:10%; left:35%; width:100px; height:70px; border:8px solid #c8b898; border-bottom:none; border-radius:50% 50% 0 0; background: transparent; box-shadow: 0 -8px 20px rgba(0,0,0,.1); }
.scn-desdemona-promises-help .garden-arch::after { content:''; position:absolute; bottom:0; left:50%; width:4px; height:40px; background: #b8a888; transform:translateX(-50%); }
.scn-desdemona-promises-help .hedge { position:absolute; bottom:38%; height:28px; background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.2); animation: dp-breathe-hedge 10s ease-in-out infinite alternate; }
.scn-desdemona-promises-help .hedge-left { left:5%; right:60%; }
.scn-desdemona-promises-help .hedge-right { left:60%; right:5%; }
.scn-desdemona-promises-help .figure-desdemona { position:absolute; bottom:18%; left:35%; width:28px; height:52px; background: linear-gradient(180deg, #c87060 0%, #a85848 40%, #904838 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: dp-figure-gesture 5s ease-in-out infinite; transform-origin: bottom center; }
.scn-desdemona-promises-help .figure-cassio { position:absolute; bottom:18%; left:48%; width:24px; height:50px; background: linear-gradient(180deg, #b8a898 0%, #a09080 40%, #807060 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: dp-figure-nod 4s ease-in-out infinite; transform-origin: bottom center; }
.scn-desdemona-promises-help .figure-emilia { position:absolute; bottom:18%; left:58%; width:22px; height:46px; background: linear-gradient(180deg, #908098 0%, #706070 40%, #504058 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: dp-figure-listen 6s ease-in-out infinite; transform-origin: bottom center; }
.scn-desdemona-promises-help .rose-bush { position:absolute; bottom:36%; left:25%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 80%, #c86868 0%, #6a4a2a 60%, transparent 75%); border-radius:60% 40% 50% 50%; box-shadow: 0 2px 10px rgba(200,104,104,.3); animation: dp-rose-sway 7s ease-in-out infinite alternate; }
.scn-desdemona-promises-help .sunbeam { position:absolute; top:0; left:30%; width:80px; bottom:40%; background: linear-gradient(180deg, rgba(255,232,180,.3) 0%, transparent 100%); transform:rotate(-12deg); transform-origin: top center; animation: dp-sunbeam-shift 15s ease-in-out infinite alternate; filter: blur(8px); }
@keyframes dp-sky-shift { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes dp-breathe-hedge { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes dp-figure-gesture { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-2px) rotate(2deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-1px) rotate(0) } }
@keyframes dp-figure-nod { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(1deg) } }
@keyframes dp-figure-listen { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes dp-rose-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes dp-sunbeam-shift { 0% { transform: rotate(-15deg) scaleX(1) } 50% { transform: rotate(-10deg) scaleX(1.1) } 100% { transform: rotate(-12deg) scaleX(0.9) } }

/* scene: cassio-worries-delay — tense, bright interior, sharp shadows */
.scn-cassio-worries-delay {
  background:
    linear-gradient(180deg, #b8a898 0%, #a09080 35%, #8a7a6a 65%, #6a5a4a 100%),
    radial-gradient(ellipse at 60% 40%, #d8c8b8 0%, transparent 60%);
}
.scn-cassio-worries-delay .chamber-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c8b8aa 0%, #b0a090 50%, #928272 100%); box-shadow: inset 0 -20px 30px rgba(0,0,0,.2); }
.scn-cassio-worries-delay .chamber-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); box-shadow: inset 0 20px 30px -10px rgba(0,0,0,.4); }
.scn-cassio-worries-delay .door { position:absolute; bottom:20%; left:58%; width:50px; height:85px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border:3px solid #4a3a2a; border-radius:2px 2px 0 0; box-shadow: -4px 0 10px rgba(0,0,0,.3); animation: cw-door-creak 10s ease-in-out infinite; transform-origin: left center; }
.scn-cassio-worries-delay .shadow-stripe { position:absolute; top:10%; left:55%; width:60px; bottom:20%; background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.05) 100%); transform:skewX(-8deg); filter: blur(4px); animation: cw-shadow-pulse 4s ease-in-out infinite alternate; }
.scn-cassio-worries-delay .figure-cassio-tense { position:absolute; bottom:22%; left:35%; width:26px; height:54px; background: linear-gradient(180deg, #b8a898 0%, #9a8a7a 40%, #7a6a5a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; box-shadow: -6px 0 15px rgba(0,0,0,.4); animation: cw-pacing 3s ease-in-out infinite; transform-origin: bottom center; }
.scn-cassio-worries-delay .candle-guttering { position:absolute; bottom:25%; left:28%; width:6px; height:16px; background: linear-gradient(180deg, #f0e0b0 0%, #e0c080 40%, #8a7a5a 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 0 20px 6px rgba(240,224,176,.6), 0 0 40px 12px rgba(240,224,176,.3); animation: cw-candle-flicker .8s ease-in-out infinite; }
.scn-cassio-worries-delay .table-edge { position:absolute; bottom:30%; left:25%; width:60px; height:10px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: cw-table-creak 7s ease-in-out infinite; }
.scn-cassio-worries-delay .clock-shadow { position:absolute; top:8%; right:15%; width:30px; height:40px; background: radial-gradient(circle at 50% 40%, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,.4); animation: cw-clock-sway 6s ease-in-out infinite; }
@keyframes cw-door-creak { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes cw-shadow-pulse { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.2 } }
@keyframes cw-pacing { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(6px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(12px) translateY(0) rotate(-1deg) } 75% { transform: translateX(6px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes cw-candle-flicker { 0%,100% { opacity:.9; transform:scaleY(1) } 25% { opacity:.7; transform:scaleY(.95) } 50% { opacity:1; transform:scaleY(1.05) } 75% { opacity:.8; transform:scaleY(.97) } }
@keyframes cw-table-creak { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes cw-clock-sway { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } }

/* scene: cassio-leaves-hastily — tense, bright interior, corridor, departure */
.scn-cassio-leaves-hastily {
  background:
    linear-gradient(180deg, #a89888 0%, #8a7a6a 40%, #6a5a4a 80%, #4a3a2a 100%),
    radial-gradient(ellipse at 40% 50%, #c8b8a8 0%, transparent 70%);
}
.scn-cassio-leaves-hastily .corridor-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #b0a090 0%, #9a8a7a 30%, #8a7a6a 70%, #7a6a5a 100%); box-shadow: inset 0 -15px 25px rgba(0,0,0,.3); }
.scn-cassio-leaves-hastily .corridor-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%), repeating-linear-gradient(90deg, transparent 0, transparent 8%, #4a3a2a 8%, #4a3a2a 9%); box-shadow: inset 0 15px 25px -5px rgba(0,0,0,.5); }
.scn-cassio-leaves-hastily .doorway { position:absolute; bottom:15%; left:62%; width:55px; height:90px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border:4px solid #4a3a2a; border-radius:0; box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 0 20px rgba(0,0,0,.5); animation: cl-door-slam 4s ease-in-out infinite; }
.scn-cassio-leaves-hastily .figure-retreating { position:absolute; bottom:18%; left:58%; width:20px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: -4px 0 12px rgba(0,0,0,.5); animation: cl-retreat 5s ease-in-out infinite; transform-origin: bottom center; }
.scn-cassio-leaves-hastily .figure-iago { position:absolute; bottom:20%; left:38%; width:24px; height:52px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: cl-turn-head 6s ease-in-out infinite; transform-origin: bottom center; }
.scn-cassio-leaves-hastily .figure-othello { position:absolute; bottom:20%; left:28%; width:28px; height:54px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: cl-stand-watch 4s ease-in-out infinite; transform-origin: bottom center; }
.scn-cassio-leaves-hastily .lantern-swing { position:absolute; top:18%; left:42%; width:8px; height:30px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:4px; box-shadow: 0 0 20px 8px rgba(240,200,120,.5); animation: cl-lantern-swing 2s ease-in-out infinite; transform-origin: top center; }
.scn-cassio-leaves-hastily .shadow-long { position:absolute; bottom:0; left:20%; width:80px; height:30px; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); transform:skewX(-20deg); filter: blur(6px); animation: cl-shadow-lengthen 6s ease-in-out infinite alternate; }
@keyframes cl-door-slam { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.96) } }
@keyframes cl-retreat { 0% { transform: translateX(0) scale(1) } 25% { transform: translateX(-8px) scale(.98) } 50% { transform: translateX(-16px) scale(.95) } 75% { transform: translateX(-8px) scale(.98) } 100% { transform: translateX(0) scale(1) } }
@keyframes cl-turn-head { 0%,100% { transform: rotate(0) } 50% { transform: rotate(8deg) } }
@keyframes cl-stand-watch { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes cl-lantern-swing { 0% { transform: rotate(-8deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-6deg) } }
@keyframes cl-shadow-lengthen { 0% { transform: skewX(-20deg) scaleY(1) } 50% { transform: skewX(-25deg) scaleY(1.2) } 100% { transform: skewX(-18deg) scaleY(0.8) } }

.scn-othello-demands-thoughts {
  background: 
    linear-gradient(180deg, #c8a470 0%, #b89560 40%, #a07a4a 70%, #5c3a1a 100%),
    radial-gradient(ellipse at 50% 20%, #e8d0a0 0%, transparent 60%);
}
.scn-othello-demands-thoughts .wall-back {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #d4b078 0%, #b8945a 100%);
  animation: sc1-wall 12s ease-in-out infinite alternate;
}
.scn-othello-demands-thoughts .wall-mid {
  position: absolute; inset: 15% 20% 60% 20%;
  background: linear-gradient(135deg, #bf9a5a 0%, #8a6630 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 30px rgba(40,20,5,0.5);
  animation: sc1-wallmid 20s ease-in-out infinite;
}
.scn-othello-demands-thoughts .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7a5628 0%, #4a2e0c 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: sc1-floor 15s ease-in-out infinite;
}
.scn-othello-demands-thoughts .window {
  position: absolute; top: 12%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #f0e6c0 0%, #dcc090 100%);
  border: 6px solid #6b4a1e;
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 40px rgba(200,170,100,0.8), 0 0 60px rgba(200,180,120,0.4);
  animation: sc1-window 8s ease-in-out infinite alternate;
}
.scn-othello-demands-thoughts .shadow {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(40,20,5,0.6) 0%, transparent 60%);
  filter: blur(8px);
  animation: sc1-shadow 10s ease-in-out infinite;
}
.scn-othello-demands-thoughts .figure-othello {
  position: absolute; bottom: 35%; left: 30%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #3a2815 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-othello 4s ease-in-out infinite;
}
.scn-othello-demands-thoughts .figure-iago {
  position: absolute; bottom: 35%; right: 28%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #2c1c0e 0%, #120a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-iago 5s ease-in-out infinite;
}
.scn-othello-demands-thoughts .light-spot {
  position: absolute; top: 10%; left: 45%; width: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, #f0e0a0 0%, transparent 60%);
  opacity: 0.5;
  animation: sc1-light 6s ease-in-out infinite alternate;
}
@keyframes sc1-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sc1-wallmid { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes sc1-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(3px) } }
@keyframes sc1-window { 0% { opacity:0.7; box-shadow: 0 0 30px rgba(200,170,100,0.4) } 50% { opacity:1; box-shadow: 0 0 80px rgba(200,180,120,0.7) } 100% { opacity:0.8; box-shadow: 0 0 40px rgba(200,170,100,0.5) } }
@keyframes sc1-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } }
@keyframes sc1-othello { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(0deg) } }
@keyframes sc1-iago { 0%,100% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-2px) rotate(1deg) } 60% { transform: translateX(1px) rotate(-1deg) } }
@keyframes sc1-light { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.7; transform: scale(1.2) } 100% { opacity:0.4; transform: scale(0.9) } }

.scn-iago-warns-jealousy {
  background:
    linear-gradient(180deg, #b89a5c 0%, #9a7a42 40%, #6a4a1e 80%, #3a220a 100%),
    radial-gradient(ellipse at 50% 30%, #e0c88a 0%, transparent 60%);
}
.scn-iago-warns-jealousy .bg-wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c4a060 0%, #a07a3a 100%);
  animation: sc2-wall 14s ease-in-out infinite alternate;
}
.scn-iago-warns-jealousy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a3a14 0%, #2a1804 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: sc2-floor 18s ease-in-out infinite;
}
.scn-iago-warns-jealousy .arch {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 45%;
  background: linear-gradient(180deg, #8a6632 0%, #6a4a1e 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 30px rgba(30,15,5,0.6);
  animation: sc2-arch 12s ease-in-out infinite;
}
.scn-iago-warns-jealousy .candle {
  position: absolute; bottom: 42%; left: 55%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #e0c080 0%, #b8944a 40%, #6a3a0a 100%);
  border-radius: 10% 10% 30% 30%;
  transform-origin: bottom center;
  animation: sc2-candle 3s ease-in-out infinite alternate;
}
.scn-iago-warns-jealousy .candle-glow {
  position: absolute; bottom: 48%; left: 53%; width: 8%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, #f0d090 0%, #d0a050 40%, transparent 60%);
  filter: blur(6px);
  opacity: 0.8;
  animation: sc2-glow 2s ease-in-out infinite alternate;
}
.scn-iago-warns-jealousy .figure-iago {
  position: absolute; bottom: 35%; right: 30%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #2a1a0a 0%, #120804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-iago 4s ease-in-out infinite;
}
.scn-iago-warns-jealousy .hand {
  position: absolute; bottom: 42%; right: 38%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #3a2210 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom left;
  animation: sc2-hand 3s ease-in-out infinite;
}
.scn-iago-warns-jealousy .shadow-iago {
  position: absolute; bottom: 18%; right: 25%; width: 30%; height: 30%;
  background: radial-gradient(ellipse, rgba(30,15,5,0.6) 0%, transparent 60%);
  filter: blur(10px);
  animation: sc2-shadow 8s ease-in-out infinite;
}
@keyframes sc2-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes sc2-floor { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } }
@keyframes sc2-arch { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.96) } }
@keyframes sc2-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) rotate(2deg) } 100% { transform: scaleY(1) rotate(-1deg) } }
@keyframes sc2-glow { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.7; transform: scale(0.9) } }
@keyframes sc2-iago { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(2deg) } 50% { transform: translateX(1px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(1deg) } }
@keyframes sc2-hand { 0%,100% { transform: rotate(0deg) } 30% { transform: rotate(15deg) } 60% { transform: rotate(-10deg) } }
@keyframes sc2-shadow { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }

.scn-othello-demands-thoughts-again {
  background:
    linear-gradient(180deg, #a6844c 0%, #8a6830 40%, #5a3a12 70%, #2a1404 100%),
    radial-gradient(ellipse at 50% 15%, #d4b070 0%, transparent 50%);
}
.scn-othello-demands-thoughts-again .bg-deep {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b8945a 0%, #8a6630 100%);
  animation: sc3-deep 16s ease-in-out infinite alternate;
}
.scn-othello-demands-thoughts-again .bg-mid {
  position: absolute; inset: 10% 10% 65% 10%;
  background: linear-gradient(135deg, #9a7a40 0%, #6a4a1e 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 40px rgba(20,10,2,0.5);
  animation: sc3-mid 20s ease-in-out infinite;
}
.scn-othello-demands-thoughts-again .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #5a3a14 0%, #3a1e08 100%);
  border-radius: 8% 8% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: sc3-table 6s ease-in-out infinite;
}
.scn-othello-demands-thoughts-again .lamp {
  position: absolute; bottom: 32%; left: 48%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #e0c080 0%, #a0783a 100%);
  border-radius: 10% 10% 30% 30%;
  transform-origin: bottom center;
  animation: sc3-lamp 4s ease-in-out infinite alternate;
}
.scn-othello-demands-thoughts-again .lamp-glow {
  position: absolute; bottom: 38%; left: 44%; width: 12%; height: 25%;
  background: radial-gradient(ellipse at 50% 0%, #f0d090 0%, #d0a050 30%, transparent 60%);
  filter: blur(8px);
  opacity: 0.7;
  animation: sc3-lampglow 3s ease-in-out infinite alternate;
}
.scn-othello-demands-thoughts-again .figure-othello {
  position: absolute; bottom: 25%; left: 20%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #3a2815 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc3-othello 5s ease-in-out infinite;
}
.scn-othello-demands-thoughts-again .figure-iago {
  position: absolute; bottom: 25%; right: 22%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #2c1c0e 0%, #120a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc3-iago 6s ease-in-out infinite;
}
.scn-othello-demands-thoughts-again .chair {
  position: absolute; bottom: 15%; left: 45%; width: 20%; height: 18%;
  background: linear-gradient(180deg, #6a4a1e 0%, #3a220a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: sc3-chair 8s ease-in-out infinite;
}
@keyframes sc3-deep { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes sc3-mid { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } }
@keyframes sc3-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(2px) } }
@keyframes sc3-lamp { 0% { transform: scaleY(1) rotate(0deg) } 30% { transform: scaleY(0.92) rotate(3deg) } 70% { transform: scaleY(1) rotate(-2deg) } 100% { transform: scaleY(0.95) rotate(1deg) } }
@keyframes sc3-lampglow { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:0.9; transform: scale(1.3) } 100% { opacity:0.6; transform: scale(0.8) } }
@keyframes sc3-othello { 0%,100% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(3px) rotate(1deg) } 40% { transform: translateX(-2px) rotate(-1deg) } 60% { transform: translateX(1px) rotate(2deg) } 80% { transform: translateX(-1px) rotate(-2deg) } }
@keyframes sc3-iago { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-1deg) } 50% { transform: translateX(-1px) rotate(1deg) } 75% { transform: translateX(-2px) rotate(0deg) } }
@keyframes sc3-chair { 0%,100% { transform: scale(1) } 50% { transform: scale(0.98) translateY(1px) } }

.scn-othello-insists-on-proof {
  background:
    linear-gradient(180deg, #b09054 0%, #8a6e32 40%, #5c4216 70%, #2c1a06 100%),
    radial-gradient(ellipse at 50% 25%, #dcc084 0%, transparent 55%);
}
.scn-othello-insists-on-proof .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #c4a060 0%, #a07a3a 100%);
  animation: sc4-wall 14s ease-in-out infinite alternate;
}
.scn-othello-insists-on-proof .window-bar {
  position: absolute; top: 8%; left: 40%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #e8d4a0 0%, #c8aa70 100%);
  border: 4px solid #5a3a14;
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 30px rgba(200,170,100,0.6), 0 0 50px rgba(200,180,120,0.3);
  animation: sc4-window 10s ease-in-out infinite alternate;
}
.scn-othello-insists-on-proof .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #6a4a1e 0%, #3a220a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: sc4-floor 16s ease-in-out infinite;
}
.scn-othello-insists-on-proof .shadow {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse, rgba(20,10,3,0.6) 0%, transparent 60%);
  filter: blur(8px);
  animation: sc4-shadow 12s ease-in-out infinite;
}
.scn-othello-insists-on-proof .figure-othello {
  position: absolute; bottom: 20%; left: 25%; width: 14%; height: 55%;
  background: linear-gradient(180deg, #3a2815 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-othello 4s ease-in-out infinite;
}
.scn-othello-insists-on-proof .arm-extend {
  position: absolute; bottom: 35%; left: 35%; width: 10%; height: 24%;
  background: linear-gradient(180deg, #3a2815 0%, #1a1008 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  transform-origin: bottom left;
  animation: sc4-arm 3s ease-in-out infinite;
}
.scn-othello-insists-on-proof .hand-open {
  position: absolute; bottom: 42%; left: 38%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #4a3218 0%, #2a1808 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 50% 50%;
  transform-origin: bottom center;
  animation: sc4-hand 2s ease-in-out infinite;
}
.scn-othello-insists-on-proof .light-dagger {
  position: absolute; bottom: 45%; left: 42%; width: 2%; height: 14%;
  background: linear-gradient(180deg, #f0e0a0 0%, #d0b070 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #c8a860, 0 0 40px 12px rgba(200,168,96,0.4);
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: sc4-dagger 5s ease-in-out infinite alternate;
}
@keyframes sc4-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes sc4-window { 0% { opacity:0.6; box-shadow: 0 0 20px rgba(200,170,100,0.3) } 50% { opacity:1; box-shadow: 0 0 60px rgba(200,180,120,0.6) } 100% { opacity:0.7; box-shadow: 0 0 30px rgba(200,170,100,0.4) } }
@keyframes sc4-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(4px) } }
@keyframes sc4-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.15) } }
@keyframes sc4-othello { 0%,100% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(2px) rotate(1deg) } 60% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes sc4-arm { 0%,100% { transform: rotate(-10deg) } 30% { transform: rotate(5deg) } 60% { transform: rotate(-15deg) } }
@keyframes sc4-hand { 0%,100% { transform: scale(1) rotate(0deg) } 25% { transform: scale(1.1) rotate(10deg) } 50% { transform: scale(0.95) rotate(-5deg) } 75% { transform: scale(1.05) rotate(5deg) } }
@keyframes sc4-dagger { 0% { transform: rotate(-20deg) scaleY(1); opacity:0.7 } 50% { transform: rotate(-10deg) scaleY(1.1); opacity:1 } 100% { transform: rotate(-25deg) scaleY(0.9); opacity:0.8 } }

.scn-iago-investigates {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1e 60%), radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 70%);
}
.scn-iago-investigates .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-iago-investigates .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); }
.scn-iago-investigates .table { position:absolute; bottom:25%; left:40%; width:30%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 10% 10%; transform: perspective(400px) rotateX(10deg); box-shadow: 0 -4px 8px rgba(0,0,0,.6); }
.scn-iago-investigates .candle { position:absolute; bottom:32%; left:48%; width:4%; height:12%; background: linear-gradient(180deg, #e8c8a0 0%, #a08060 40%, #604020 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: ii-candle 2s ease-in-out infinite alternate; }
.scn-iago-investigates .halo { position:absolute; bottom:44%; left:48%; width:8%; height:8%; background: radial-gradient(circle, rgba(255,200,100,.4) 0%, transparent 70%); transform: translate(-50%, -50%); animation: ii-halo 3s ease-in-out infinite alternate; }
.scn-iago-investigates .figure-a { position:absolute; bottom:10%; left:30%; width:12%; height:40%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ii-fig-a 5s ease-in-out infinite; }
.scn-iago-investigates .figure-b { position:absolute; bottom:12%; right:28%; width:14%; height:44%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ii-fig-b 4s ease-in-out infinite; }
.scn-iago-investigates .shadow { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, transparent, rgba(0,0,0,.5)); filter: blur(4px); animation: ii-shadow 6s ease-in-out infinite; }
@keyframes ii-candle { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05) scaleY(0.95); } 100% { transform: scaleX(0.97); } }
@keyframes ii-halo { 0% { opacity: .6; transform: translate(-50%,-50%) scale(1); } 50% { opacity: 1; transform: translate(-50%,-50%) scale(1.2); } 100% { opacity: .7; transform: translate(-50%,-50%) scale(.9); } }
@keyframes ii-fig-a { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ii-fig-b { 0% { transform: translateX(0) rotate(1deg) scaleY(1); } 50% { transform: translateX(-4px) rotate(-2deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0) scaleY(1); } }
@keyframes ii-shadow { 0% { opacity: .3; transform: translateY(0); } 50% { opacity: .6; transform: translateY(2px); } 100% { opacity: .3; transform: translateY(0); } }

.scn-iago-soliloquy {
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1020 40%, #2a1a30 100%), radial-gradient(ellipse at 30% 50%, #2a1a30 0%, transparent 70%);
}
.scn-iago-soliloquy .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); }
.scn-iago-soliloquy .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%); }
.scn-iago-soliloquy .pane { position:absolute; top:10%; left:10%; width:30%; height:30%; background: linear-gradient(180deg, rgba(100,120,160,.2) 0%, rgba(40,60,100,.1) 100%); border: 2px solid rgba(200,180,150,.2); border-radius: 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-iago-soliloquy .desk { position:absolute; bottom:18%; left:20%; width:50%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 2% 2% 8% 8%; transform: perspective(400px) rotateX(5deg); }
.scn-iago-soliloquy .lamp { position:absolute; bottom:28%; left:35%; width:6%; height:14%; background: linear-gradient(180deg, #e0b080 0%, #a06840 50%, #503018 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: is-lamp 3s ease-in-out infinite alternate; }
.scn-iago-soliloquy .glow { position:absolute; bottom:40%; left:35%; width:12%; height:12%; background: radial-gradient(circle, rgba(255,180,80,.5) 0%, transparent 70%); transform: translate(-50%,-50%); animation: is-glow 4s ease-in-out infinite; }
.scn-iago-soliloquy .figure { position:absolute; bottom:8%; left:40%; width:16%; height:46%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: is-fig 6s ease-in-out infinite; }
.scn-iago-soliloquy .cloak { position:absolute; bottom:8%; left:38%; width:20%; height:30%; background: linear-gradient(180deg, #1a1028 0%, #0a0518 100%); border-radius: 0 0 60% 60%; clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); filter: blur(2px); animation: is-cloak 8s ease-in-out infinite; }
@keyframes is-lamp { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.04) scaleX(0.96); } 100% { transform: scaleY(0.98); } }
@keyframes is-glow { 0% { opacity: .5; transform: translate(-50%,-50%) scale(0.9); } 50% { opacity: .9; transform: translate(-50%,-50%) scale(1.2); } 100% { opacity: .6; transform: translate(-50%,-50%) scale(1); } }
@keyframes is-fig { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(2px) rotate(2deg) scaleY(1.01); } 66% { transform: translateX(-1px) rotate(-1deg) scaleY(0.99); } 100% { transform: translateX(0) rotate(0); } }
@keyframes is-cloak { 0% { opacity: .3; transform: translateX(0) rotate(0); } 50% { opacity: .7; transform: translateX(3px) rotate(3deg); } 100% { opacity: .4; transform: translateX(0) rotate(0); } }

.scn-othello-killing-hesitation {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1020 50%, #2a1a20 100%), radial-gradient(ellipse at 60% 70%, #3a1a10 0%, transparent 80%);
}
.scn-othello-killing-hesitation .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); }
.scn-othello-killing-hesitation .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); }
.scn-othello-killing-hesitation .bed { position:absolute; bottom:15%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.7); }
.scn-othello-killing-hesitation .pillow { position:absolute; bottom:25%; left:15%; width:18%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); }
.scn-othello-killing-hesitation .desdemona { position:absolute; bottom:18%; left:12%; width:20%; height:22%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg); transform-origin: 50% 100%; animation: ok-d 5s ease-in-out infinite; }
.scn-othello-killing-hesitation .othello { position:absolute; bottom:8%; right:15%; width:18%; height:48%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ok-o 4s ease-in-out infinite; }
.scn-othello-killing-hesitation .candle { position:absolute; bottom:32%; right:22%; width:3%; height:10%; background: linear-gradient(180deg, #d8b090 0%, #a06840 50%, #402010 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: ok-candle 2s ease-in-out infinite alternate; }
.scn-othello-killing-hesitation .flame { position:absolute; bottom:40%; right:21.5%; width:4%; height:6%; background: radial-gradient(circle, #ffd080 0%, #ff8040 50%, transparent 100%); border-radius: 50%; transform: translateY(-50%); animation: ok-flame 0.8s ease-in-out infinite alternate; }
@keyframes ok-d { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(2px) scaleY(1.02); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes ok-o { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-3px) rotate(-2deg); } 60% { transform: translateX(2px) rotate(3deg) scaleY(1.01); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ok-candle { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.03) scaleX(0.97); } 100% { transform: scaleY(0.98) scaleX(1.01); } }
@keyframes ok-flame { 0% { opacity: .8; transform: translateY(-50%) scale(0.9); } 30% { opacity: 1; transform: translateY(-50%) scale(1.1); } 60% { opacity: .7; transform: translateY(-50%) scale(0.95); } 100% { opacity: .9; transform: translateY(-50%) scale(1); } }

.scn-final-goodbye {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1020 45%, #2a1a20 100%), radial-gradient(ellipse at 50% 60%, #3a1a1a 0%, transparent 70%);
}
.scn-final-goodbye .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); }
.scn-final-goodbye .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); }
.scn-final-goodbye .bed { position:absolute; bottom:10%; left:10%; width:80%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.7); }
.scn-final-goodbye .pillow { position:absolute; bottom:22%; left:20%; width:16%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); }
.scn-final-goodbye .desdemona { position:absolute; bottom:14%; left:15%; width:18%; height:28%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); transform-origin: 50% 100%; animation: fg-d 6s ease-in-out infinite; }
.scn-final-goodbye .othello { position:absolute; bottom:8%; right:18%; width:16%; height:45%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fg-o 5s ease-in-out infinite; }
.scn-final-goodbye .candle { position:absolute; bottom:30%; left:45%; width:3%; height:8%; background: linear-gradient(180deg, #d8b090 0%, #a06840 50%, #402010 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: fg-candle 2.5s ease-in-out infinite alternate; }
.scn-final-goodbye .teardrop { position:absolute; bottom:35%; left:46%; width:2%; height:3%; background: radial-gradient(circle, #ffd080 0%, transparent 100%); border-radius: 50%; animation: fg-tear 4s ease-in-out infinite; }
@keyframes fg-d { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(3px) scaleY(1.02); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes fg-o { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(1deg) scaleY(1.01); } 50% { transform: translateX(1px) rotate(-1deg) scaleY(0.99); } 75% { transform: translateX(-2px) rotate(2deg) scaleY(1); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fg-candle { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.04) scaleX(0.96); } 100% { transform: scaleY(0.98) scaleX(1.02); } }
@keyframes fg-tear { 0% { opacity: .3; transform: translateY(0) scale(0.5); } 30% { opacity: .8; transform: translateY(-10px) scale(1.2); } 60% { opacity: .5; transform: translateY(5px) scale(0.8); } 100% { opacity: 0; transform: translateY(20px) scale(0.3); } }

/* desdemona-pleads-for-cassio – warm bright interior */
.scn-desdemona-pleads-for-cassio {
  background: linear-gradient(180deg, #f3e0c0 0%, #d4b896 30%, #b8956e 60%, #9a7b5a 100%), radial-gradient(ellipse at 50% 30%, #fff2d0 0%, transparent 60%);
}
.scn-desdemona-pleads-for-cassio .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e6d2b0 0%, #c8af8a 50%, #a9896a 100%);
  animation: dpc-fade 12s ease-in-out infinite alternate;
}
.scn-desdemona-pleads-for-cassio .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #8b6f4e 0%, #6a5238 100%);
  border-radius: 30% 70% 0 0 / 20% 50% 0 0;
  animation: dpc-floor 9s ease-in-out infinite alternate;
}
.scn-desdemona-pleads-for-cassio .divider {
  position: absolute; bottom: 30%; left: 30%; width: 6px; height: 60%;
  background: linear-gradient(180deg, #7a5f3e 0%, #4a3518 100%);
  border-radius: 3px;
}
.scn-desdemona-pleads-for-cassio .desdemona {
  position: absolute; bottom: 30%; left: 38%; width: 40px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #f0d0a0 0%, #d4a570 60%, #a87a4a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: dpc-desdemona 6s ease-in-out infinite alternate;
}
.scn-desdemona-pleads-for-cassio .cassio-shadow {
  position: absolute; bottom: 28%; right: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #5a4530 0%, #3a2a1a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  opacity: 0.7;
  animation: dpc-cassio 8s ease-in-out infinite alternate;
}
.scn-desdemona-pleads-for-cassio .candle {
  position: absolute; bottom: 32%; left: 18%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #ffe8c0 0%, #e8b040 60%, #8a5a20 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 20px 8px #ffb040;
}
.scn-desdemona-pleads-for-cassio .candle-glow {
  position: absolute; bottom: 38%; left: 18%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd060 0%, #ffa020 30%, transparent 70%);
  animation: dpc-glow 3s ease-in-out infinite alternate;
}
.scn-desdemona-pleads-for-cassio .window {
  position: absolute; top: 12%; right: 15%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #b8d8e8 0%, #8fb0c0 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px #fff, 0 4px 8px rgba(0,0,0,0.3);
  animation: dpc-window 20s linear infinite alternate;
}
@keyframes dpc-fade { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes dpc-floor { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes dpc-desdemona { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dpc-cassio { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-2px) scaleY(0.95); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes dpc-glow { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.15); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.8; } }
@keyframes dpc-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

/* othello-reluctantly-agrees – tense bright interior */
.scn-othello-reluctantly-agrees {
  background: linear-gradient(180deg, #d8cfc0 0%, #b8a898 30%, #8a7a6a 60%, #5a4a3a 100%), radial-gradient(ellipse at 40% 60%, #ffe0c0 0%, transparent 50%);
}
.scn-othello-reluctantly-agrees .bg {
  position: absolute; inset: 0; background: linear-gradient(0deg, #75655a 0%, #c8b8a0 50%, #e0d0ba 100%);
  animation: ora-bg 8s ease-in-out infinite alternate;
}
.scn-othello-reluctantly-agrees .wall {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #ac9c8c 0%, #8a7a6a 100%);
  border-radius: 20% 80% 0 0 / 30% 60% 0 0;
}
.scn-othello-reluctantly-agrees .door {
  position: absolute; bottom: 40%; right: 10%; width: 50px; height: 80px;
  background: linear-gradient(0deg, #5a4a3a 0%, #7a6a5a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -4px 0 6px rgba(0,0,0,0.4);
  animation: ora-door 15s ease-in-out infinite;
}
.scn-othello-reluctantly-agrees .othello {
  position: absolute; bottom: 30%; left: 35%; width: 45px; height: 85px;
  background: radial-gradient(ellipse at 45% 25%, #6a6a6a 0%, #3a3a3a 50%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ora-othello 5s ease-in-out infinite alternate;
}
.scn-othello-reluctantly-agrees .desdemona-silhouette {
  position: absolute; bottom: 28%; left: 55%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  opacity: 0.6;
  animation: ora-desdemona 7s ease-in-out infinite alternate;
}
.scn-othello-reluctantly-agrees .table {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-othello-reluctantly-agrees .book {
  position: absolute; bottom: 18%; left: 45%; width: 20px; height: 26px;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  animation: ora-book 12s linear infinite;
}
.scn-othello-reluctantly-agrees .lamp {
  position: absolute; bottom: 55%; left: 20%; width: 16px; height: 20px;
  background: radial-gradient(circle, #ffe080 0%, #d09040 60%, #805020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 14px #d0a050, 0 0 50px 10px rgba(208,160,80,0.4);
  animation: ora-lamp 4s ease-in-out infinite alternate;
}
@keyframes ora-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ora-door { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-3px) scaleX(1.02); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes ora-othello { 0% { transform: translateX(0) rotate(0) scaleY(1); } 25% { transform: translateX(-5px) rotate(3deg) scaleY(1.02); } 50% { transform: translateX(0) rotate(0) scaleY(0.98); } 75% { transform: translateX(3px) rotate(-2deg) scaleY(1.01); } 100% { transform: translateX(0) rotate(0) scaleY(1); } }
@keyframes ora-desdemona { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(4px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ora-book { 0% { transform: rotate(10deg); } 50% { transform: rotate(12deg); } 100% { transform: rotate(8deg); } }
@keyframes ora-lamp { 0% { transform: scale(1) rotate(0); opacity: 0.8; } 50% { transform: scale(1.1) rotate(3deg); opacity: 1; } 100% { transform: scale(0.95) rotate(-2deg); opacity: 0.7; } }

/* othello-muses-love – warm bright interior embrace */
.scn-othello-muses-love {
  background: linear-gradient(180deg, #fce8d0 0%, #e6c8a8 30%, #c8a080 60%, #a88260 100%), radial-gradient(ellipse at 50% 40%, #fff0d0 0%, transparent 50%);
}
.scn-othello-muses-love .backdrop {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f5dcc0 0%, #dfc0a0 100%);
  animation: oml-backdrop 20s ease-in-out infinite alternate;
}
.scn-othello-muses-love .curtain-left {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #703020 0%, #a05030 50%, #c07040 100%);
  border-radius: 0 40% 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
  animation: oml-curtain 14s ease-in-out infinite alternate;
}
.scn-othello-muses-love .curtain-right {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(270deg, #703020 0%, #a05030 50%, #c07040 100%);
  border-radius: 40% 0 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.3);
  animation: oml-curtain 14s ease-in-out infinite alternate-reverse;
}
.scn-othello-muses-love .othello-love {
  position: absolute; bottom: 25%; left: 38%; width: 50px; height: 90px;
  background: radial-gradient(ellipse at 40% 30%, #6a5a48 0%, #3a2a1a 60%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: oml-othello 7s ease-in-out infinite alternate;
}
.scn-othello-muses-love .desdemona-love {
  position: absolute; bottom: 25%; left: 48%; width: 35px; height: 70px;
  background: radial-gradient(ellipse at 50% 30%, #e8c8a0 0%, #c8a070 60%, #a08050 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: oml-desdemona 7s ease-in-out infinite alternate-reverse;
}
.scn-othello-muses-love .embrace-halo {
  position: absolute; bottom: 35%; left: 42%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,220,180,0.3) 0%, rgba(200,160,120,0.1) 50%, transparent 80%);
  animation: oml-halo 6s ease-in-out infinite;
}
.scn-othello-muses-love .petals {
  position: absolute; top: 20%; left: 30%; width: 8px; height: 8px;
  background: #f0b480;
  border-radius: 50% 0 50% 0;
  box-shadow: 12px 30px #e8a060, -8px 50px #f0b890, 20px 70px #e8a868;
  animation: oml-petals 15s linear infinite;
}
.scn-othello-muses-love .candle-pair {
  position: absolute; bottom: 15%; left: 25%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #fff0c0 0%, #d0a040 60%, #a07020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 24px 12px #ffc060, 30px 0 0 0 #a07020, 30px 0 24px 12px #ffc060;
  animation: oml-candle 4s ease-in-out infinite alternate;
}
@keyframes oml-backdrop { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes oml-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(-2px); } }
@keyframes oml-othello { 0% { transform: rotate(2deg) scaleY(1); } 25% { transform: rotate(-1deg) scaleY(1.02); } 50% { transform: rotate(0) scaleY(0.98); } 75% { transform: rotate(3deg) scaleY(1.01); } 100% { transform: rotate(0) scaleY(1); } }
@keyframes oml-desdemona { 0% { transform: rotate(-2deg) scaleY(1); } 25% { transform: rotate(1deg) scaleY(0.98); } 50% { transform: rotate(0) scaleY(1.02); } 75% { transform: rotate(-3deg) scaleY(0.99); } 100% { transform: rotate(0) scaleY(1); } }
@keyframes oml-halo { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.1); opacity: 0.7; } 100% { transform: scale(0.95); opacity: 0.4; } }
@keyframes oml-petals { 0% { transform: translateY(0) rotate(0); opacity: 0.6; } 100% { transform: translateY(80px) rotate(360deg); opacity: 0; } }
@keyframes oml-candle { 0% { transform: scale(1) rotate(0); opacity: 0.8; } 50% { transform: scale(1.05) rotate(2deg); opacity: 1; } 100% { transform: scale(0.95) rotate(-2deg); opacity: 0.7; } }

/* iago-echoes-suspicion – tense bright interior with shadows */
.scn-iago-echoes-suspicion {
  background: linear-gradient(180deg, #c0b8b0 0%, #a09890 30%, #7a6e64 60%, #4a3e34 100%), radial-gradient(ellipse at 60% 20%, #e0d0c0 0%, transparent 50%);
}
.scn-iago-echoes-suspicion .pit {
  position: absolute; inset: 0; background: linear-gradient(0deg, #3a2e24 0%, #5a4a3e 40%, #8a7a6e 80%, #b0a090 100%);
  animation: ies-pit 10s ease-in-out infinite alternate;
}
.scn-iago-echoes-suspicion .pillar-left {
  position: absolute; bottom: 0; left: 8%; width: 12px; height: 70%;
  background: linear-gradient(180deg, #8a7a6e 0%, #5a4a3e 100%);
  border-radius: 4px;
  box-shadow: 5px 0 10px rgba(0,0,0,0.4);
  animation: ies-pillar 18s ease-in-out infinite alternate;
}
.scn-iago-echoes-suspicion .pillar-right {
  position: absolute; bottom: 0; right: 8%; width: 12px; height: 70%;
  background: linear-gradient(180deg, #8a7a6e 0%, #5a4a3e 100%);
  border-radius: 4px;
  box-shadow: -5px 0 10px rgba(0,0,0,0.4);
  animation: ies-pillar 18s ease-in-out infinite alternate-reverse;
}
.scn-iago-echoes-suspicion .iago-figure {
  position: absolute; bottom: 30%; left: 32%; width: 38px; height: 80px;
  background: radial-gradient(ellipse at 45% 30%, #4a3e34 0%, #2a1e14 60%, #0a0600 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ies-iago 3s ease-in-out infinite alternate;
}
.scn-iago-echoes-suspicion .othello-echo {
  position: absolute; bottom: 28%; right: 30%; width: 42px; height: 82px;
  background: radial-gradient(ellipse at 50% 30%, #5a4a3e 0%, #3a2a1e 60%, #1a0a00 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: ies-othello 3.5s ease-in-out infinite alternate;
}
.scn-iago-echoes-suspicion .shadow-arm {
  position: absolute; bottom: 50%; left: 40%; width: 25px; height: 6px;
  background: #2a1e14;
  border-radius: 4px;
  transform: rotate(-30deg);
  opacity: 0.6;
  animation: ies-arm 2s ease-in-out infinite alternate;
}
.scn-iago-echoes-suspicion .whisper-lines {
  position: absolute; top: 25%; left: 55%; width: 30px; height: 10px;
  border: 2px solid rgba(200,180,160,0.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: ies-whisper 2.5s ease-in-out infinite alternate;
  box-shadow: 0 0 8px rgba(200,180,160,0.2);
}
@keyframes ies-pit { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ies-pillar { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ies-iago { 0% { transform: translateX(0) rotate(2deg) scaleY(1); } 25% { transform: translateX(-3px) rotate(3deg) scaleY(1.02); } 50% { transform: translateX(2px) rotate(-1deg) scaleY(0.98); } 75% { transform: translateX(-1px) rotate(1deg) scaleY(1.01); } 100% { transform: translateX(0) rotate(0) scaleY(1); } }
@keyframes ies-othello { 0% { transform: translateX(0) rotate(-2deg) scaleY(1); } 25% { transform: translateX(4px) rotate(-4deg) scaleY(0.98); } 50% { transform: translateX(-2px) rotate(1deg) scaleY(1.02); } 75% { transform: translateX(3px) rotate(-1deg) scaleY(0.99); } 100% { transform: translateX(0) rotate(0) scaleY(1); } }
@keyframes ies-arm { 0% { transform: rotate(-30deg) scaleX(1); opacity: 0.5; } 50% { transform: rotate(-20deg) scaleX(1.1); opacity: 0.8; } 100% { transform: rotate(-35deg) scaleX(0.9); opacity: 0.4; } }
@keyframes ies-whisper { 0% { transform: translateX(0) scale(1); opacity: 0.3; } 50% { transform: translateX(5px) scale(1.2); opacity: 0.6; } 100% { transform: translateX(-3px) scale(0.9); opacity: 0.2; } }

.scn-othello-vows-revenge {
  background: linear-gradient(180deg, #b8d4e8 0%, #f2d9a8 40%, #e8b86a 70%, #c08040 100%),
              radial-gradient(ellipse at 50% 0%, #fff6e0 0%, transparent 60%);
}
.scn-othello-vows-revenge .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #7aa9c4 0%, #b8d4e8 50%, transparent 100%);
  animation: or1-sky 20s ease-in-out infinite alternate;
}
.scn-othello-vows-revenge .sun {
  position: absolute; top: 12%; left: 70%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, #fffbe6 0%, #fce68a 40%, #d4a030 70%, transparent 90%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(252,230,138,0.5);
  animation: or1-sun 6s ease-in-out infinite alternate;
}
.scn-othello-vows-revenge .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-othello-vows-revenge .figure {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: or1-figure 4s ease-in-out infinite;
}
.scn-othello-vows-revenge .shadow {
  position: absolute; bottom: 25%; left: 45%; width: 70px; height: 20px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: or1-shadow 4s ease-in-out infinite;
}
.scn-othello-vows-revenge .cloud-a {
  position: absolute; top: 8%; left: 10%; width: 100px; height: 25px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: or1-drift-a 40s linear infinite;
}
.scn-othello-vows-revenge .cloud-b {
  position: absolute; top: 18%; right: 15%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: or1-drift-b 50s linear infinite reverse;
}
@keyframes or1-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes or1-sun { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 80px 30px rgba(252,230,138,0.5); } 50% { transform: scale(1.05) translateY(-5px); box-shadow: 0 0 100px 40px rgba(252,230,138,0.7); } 100% { transform: scale(0.95) translateY(3px); box-shadow: 0 0 60px 20px rgba(252,230,138,0.4); } }
@keyframes or1-figure { 0% { transform: translateX(-50%) rotate(-2deg) scaleY(1); } 25% { transform: translateX(-45%) rotate(2deg) scaleY(0.95); } 50% { transform: translateX(-40%) rotate(-1deg) scaleY(1.02); } 75% { transform: translateX(-45%) rotate(1deg) scaleY(0.98); } 100% { transform: translateX(-50%) rotate(-2deg) scaleY(1); } }
@keyframes or1-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.6; } 50% { transform: scaleX(0.8) translateX(10px); opacity: 0.4; } 100% { transform: scaleX(1) translateX(0); opacity: 0.6; } }
@keyframes or1-drift-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes or1-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-othello-solemn-vow {
  background: linear-gradient(180deg, #4a6b8a 0%, #7a9ab8 30%, #b8d4e8 60%, #e8d8a8 100%),
              radial-gradient(ellipse at 50% 80%, #b8d4e8 0%, transparent 70%);
}
.scn-othello-solemn-vow .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a4a6a 0%, #7a9ab8 40%, transparent 100%);
  animation: osv-sky 18s ease-in-out infinite alternate;
}
.scn-othello-solemn-vow .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a4a6a 0%, #1a2a4a 60%, #0a1a3a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: osv-sea 12s ease-in-out infinite alternate;
}
.scn-othello-solemn-vow .cliff {
  position: absolute; bottom: 30%; left: 30%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
}
.scn-othello-solemn-vow .figure {
  position: absolute; bottom: 38%; left: 40%; width: 35px; height: 90px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: osv-figure 6s ease-in-out infinite;
}
.scn-othello-solemn-vow .wave-1 {
  position: absolute; bottom: 10%; left: -10%; width: 120%; height: 30px;
  background: linear-gradient(180deg, rgba(42,74,106,0.6) 0%, rgba(26,42,74,0.3) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: osv-wave1 5s ease-in-out infinite alternate;
}
.scn-othello-solemn-vow .wave-2 {
  position: absolute; bottom: 5%; left: -10%; width: 120%; height: 25px;
  background: linear-gradient(180deg, rgba(42,74,106,0.4) 0%, rgba(10,26,58,0.2) 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: osv-wave2 7s ease-in-out infinite alternate-reverse;
}
.scn-othello-solemn-vow .cloud-a {
  position: absolute; top: 10%; left: 20%; width: 120px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: osv-drift-a 45s linear infinite;
}
.scn-othello-solemn-vow .cloud-b {
  position: absolute; top: 18%; right: 10%; width: 90px; height: 15px;
  background: linear-gradient(180deg, rgba(255,255,255,0.25) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: osv-drift-b 55s linear infinite reverse;
}
@keyframes osv-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes osv-sea { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(-2px); } }
@keyframes osv-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes osv-wave1 { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(20px) translateY(5px); } 100% { transform: translateX(-10px) translateY(-3px); } }
@keyframes osv-wave2 { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-15px) translateY(3px); } 100% { transform: translateX(10px) translateY(-4px); } }
@keyframes osv-drift-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(130vw); } }
@keyframes osv-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }

.scn-iago-pledges-cassio-death {
  background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 30%, #3a1a0a 70%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 60%, #7a5a3a 0%, transparent 60%);
}
.scn-iago-pledges-cassio-death .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a2a1a 0%, #2a1a0a 50%, #1a0a00 100%);
  animation: ipcd-room 15s ease-in-out infinite alternate;
}
.scn-iago-pledges-cassio-death .wall {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 60%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-iago-pledges-cassio-death .window {
  position: absolute; top: 15%; left: 20%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #b8a87a 0%, #c8b88a 50%, #d8c89a 100%);
  border: 6px solid #3a2a1a;
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(255,230,180,0.3);
  animation: ipcd-window 8s ease-in-out infinite alternate;
}
.scn-iago-pledges-cassio-death .candle {
  position: absolute; bottom: 35%; left: 60%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #f0d080 0%, #d0a050 40%, #5a3a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px #d0a050, 0 0 60px 20px rgba(208,160,80,0.4);
  animation: ipcd-candle 3s ease-in-out infinite alternate;
}
.scn-iago-pledges-cassio-death .figure {
  position: absolute; bottom: 22%; left: 40%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ipcd-figure 5s ease-in-out infinite;
}
.scn-iago-pledges-cassio-death .shadow {
  position: absolute; bottom: 15%; left: 55%; width: 80px; height: 30px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(10px);
  animation: ipcd-shadow 5s ease-in-out infinite;
}
.scn-iago-pledges-cassio-death .dagger {
  position: absolute; bottom: 45%; left: 35%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #b0b0b0 0%, #808080 50%, #505050 100%);
  border-radius: 20% 20% 40% 40% / 10% 10% 20% 20%;
  transform: rotate(-20deg);
  box-shadow: 0 0 10px 2px rgba(255,255,255,0.2);
  animation: ipcd-dagger 4s ease-in-out infinite;
}
@keyframes ipcd-room { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes ipcd-window { 0% { box-shadow: inset 0 0 20px rgba(255,230,180,0.3); } 50% { box-shadow: inset 0 0 40px rgba(255,230,180,0.5); } 100% { box-shadow: inset 0 0 20px rgba(255,230,180,0.3); } }
@keyframes ipcd-candle { 0% { transform: scaleY(1) rotate(-1deg); } 25% { transform: scaleY(1.1) rotate(1deg); } 50% { transform: scaleY(0.9) rotate(-2deg); } 75% { transform: scaleY(1.05) rotate(2deg); } 100% { transform: scaleY(1) rotate(-1deg); } }
@keyframes ipcd-figure { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(5px) rotate(3deg); } 40% { transform: translateX(10px) rotate(-2deg); } 60% { transform: translateX(15px) rotate(4deg); } 80% { transform: translateX(10px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ipcd-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.5; } 50% { transform: scaleX(0.7) translateX(15px); opacity: 0.3; } 100% { transform: scaleX(1) translateX(0); opacity: 0.5; } }
@keyframes ipcd-dagger { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(3px); } 100% { transform: rotate(-20deg) translateY(0); } }

.scn-clown-riddles-lodging {
  background: linear-gradient(180deg, #a8d0e8 0%, #c8e0f0 40%, #e8f0e0 70%, #f0e8c0 100%),
              radial-gradient(ellipse at 50% 0%, #fff6e0 0%, transparent 70%);
}
.scn-clown-riddles-lodging .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6ab8e0 0%, #a8d0e8 50%, transparent 100%);
  animation: crl-sky 25s ease-in-out infinite alternate;
}
.scn-clown-riddles-lodging .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 30% 70% 0 0 / 10% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-clown-riddles-lodging .house {
  position: absolute; bottom: 30%; left: 40%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #c8a870 0%, #a88860 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
}
.scn-clown-riddles-lodging .door {
  position: absolute; bottom: 28%; left: 55%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: crl-door 3s ease-in-out infinite;
}
.scn-clown-riddles-lodging .clown {
  position: absolute; bottom: 28%; left: 35%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #e0c840 0%, #c0a020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crl-clown 2s ease-in-out infinite;
}
.scn-clown-riddles-lodging .window {
  position: absolute; bottom: 52%; left: 48%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #d8e8f0 0%, #b8c8d0 100%);
  border: 4px solid #8a7050;
  border-radius: 2%;
  box-shadow: inset 0 0 10px rgba(255,255,255,0.5);
  animation: crl-window 4s ease-in-out infinite alternate;
}
.scn-clown-riddles-lodging .sign {
  position: absolute; bottom: 45%; left: 42%; width: 40px; height: 20px;
  background: linear-gradient(135deg, #d0a050 0%, #b08030 100%);
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: crl-sign 6s ease-in-out infinite;
}
@keyframes crl-sky { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } 100% { opacity: 0.8; transform: translateY(2px); } }
@keyframes crl-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05) translateY(-2px); } 100% { transform: scaleX(1); } }
@keyframes crl-clown { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(10deg); } 50% { transform: translateX(16px) rotate(-5deg); } 75% { transform: translateX(8px) rotate(8deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes crl-window { 0% { box-shadow: inset 0 0 10px rgba(255,255,255,0.5); } 50% { box-shadow: inset 0 0 20px rgba(255,255,255,0.8); } 100% { box-shadow: inset 0 0 10px rgba(255,255,255,0.5); } }
@keyframes crl-sign { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(8deg) scale(1.05); } 100% { transform: rotate(-5deg) scale(1); } }

.scn-othello-kills-desdemona { background: linear-gradient(180deg, #0f0e1a 0%, #1a1728 50%, #2a1f2e 100%), radial-gradient(ellipse at 30% 60%, #3a2e3e 0%, transparent 70%); }
.scn-othello-kills-desdemona .bg { position:absolute; inset:0; background:linear-gradient(0deg, #0a0812 0%, transparent 60%); animation: oth1-bg 20s ease-in-out infinite; }
.scn-othello-kills-desdemona .bed { position:absolute; bottom:10%; left:20%; right:20%; height:40%; background:linear-gradient(180deg, #3a2a1a 0%, #1e1610 100%); border-radius:8% 8% 4% 4%; box-shadow:0 -8px 20px rgba(0,0,0,.7); }
.scn-othello-kills-desdemona .othello { position:absolute; bottom:20%; left:8%; width:24%; height:60%; background:linear-gradient(180deg, #1c1220 0%, #0e0812 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation: oth1-othello 6s ease-in-out infinite; box-shadow:inset 0 0 20px rgba(0,0,0,.5); }
.scn-othello-kills-desdemona .desdemona { position:absolute; bottom:15%; left:35%; width:30%; height:25%; background:linear-gradient(180deg, #d4c8b8 0%, #b0a090 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:center bottom; animation: oth1-desdemona 3s ease-in-out infinite; }
.scn-othello-kills-desdemona .pillow { position:absolute; bottom:35%; left:45%; width:14%; height:10%; background:radial-gradient(ellipse, #e8dcc8 0%, #c0b098 100%); border-radius:50%; box-shadow:0 4px 8px rgba(0,0,0,.4); }
.scn-othello-kills-desdemona .candle { position:absolute; bottom:45%; right:15%; width:4%; height:12%; background:linear-gradient(180deg, #f0d090 0%, #c09050 100%); border-radius:10% 10% 5% 5% / 20% 20% 5% 5%; animation: oth1-candle 2s ease-in-out infinite alternate; }
.scn-othello-kills-desdemona .candle-glow { position:absolute; bottom:48%; right:16%; width:10%; height:10%; background:radial-gradient(circle, #ffd080 0%, rgba(255,208,128,.2) 60%, transparent 100%); border-radius:50%; animation: oth1-glow 3s ease-in-out infinite alternate; }
@keyframes oth1-bg { 0%,100% { opacity:.6 } 50% { opacity:.8 } }
@keyframes oth1-othello { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(2deg) translateX(2px) } 50% { transform: rotate(-1deg) translateX(-1px) } 75% { transform: rotate(1deg) translateX(1px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes oth1-desdemona { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes oth1-candle { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.05) translateY(-2px) } 100% { transform: scaleY(0.95) translateY(1px) } }
@keyframes oth1-glow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.7; transform: scale(0.9) } }

.scn-desdemona-pleads { background: linear-gradient(180deg, #141122 0%, #1e1a30 50%, #2a213a 100%), radial-gradient(ellipse at 70% 40%, #4a3a5a 0%, transparent 70%); }
.scn-desdemona-pleads .bg { position:absolute; inset:0; background:linear-gradient(0deg, #0c0a1a 0%, transparent 50%); animation: oth2-bg 18s ease-in-out infinite; }
.scn-desdemona-pleads .bed { position:absolute; bottom:8%; left:15%; right:15%; height:35%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:10% 10% 4% 4%; box-shadow:0 -10px 25px rgba(0,0,0,.8); }
.scn-desdemona-pleads .desdemona { position:absolute; bottom:22%; left:30%; width:20%; height:30%; background:linear-gradient(180deg, #e0d2c0 0%, #b8a898 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:center bottom; animation: oth2-desdemona 4s ease-in-out infinite; }
.scn-desdemona-pleads .othello { position:absolute; bottom:15%; left:55%; width:25%; height:55%; background:linear-gradient(180deg, #1a1020 0%, #0c0610 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: oth2-othello 6s ease-in-out infinite; box-shadow:inset 0 0 30px rgba(0,0,0,.6); }
.scn-desdemona-pleads .handkerchief { position:absolute; bottom:35%; left:60%; width:8%; height:6%; background:radial-gradient(ellipse, #f0e8d8 0%, #c8b8a0 100%); border-radius:30% 30% 20% 20%; animation: oth2-hank 5s ease-in-out infinite alternate; box-shadow:0 2px 6px rgba(0,0,0,.4); }
.scn-desdemona-pleads .candle { position:absolute; bottom:50%; right:10%; width:4%; height:10%; background:linear-gradient(180deg, #f0d090 0%, #c09050 100%); border-radius:10% 10% 5% 5%; animation: oth2-candle 2.5s ease-in-out infinite alternate; }
.scn-desdemona-pleads .candle-glow { position:absolute; bottom:52%; right:11%; width:12%; height:12%; background:radial-gradient(circle, #ffd080 0%, rgba(255,208,128,.2) 60%, transparent 100%); border-radius:50%; animation: oth2-glow 3.5s ease-in-out infinite alternate; }
@keyframes oth2-bg { 0%,100% { opacity:.5 } 50% { opacity:.7 } }
@keyframes oth2-desdemona { 0% { transform: translateY(0) rotate(0deg); opacity:.9 } 25% { transform: translateY(-4px) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-1deg); opacity:1 } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg); opacity:.9 } }
@keyframes oth2-othello { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(3deg) translateX(3px) } 50% { transform: rotate(-2deg) translateX(-2px) } 75% { transform: rotate(1deg) translateX(1px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes oth2-hank { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-5px) rotate(5deg) } 100% { transform: translateY(2px) rotate(-2deg) } }
@keyframes oth2-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.08) } 100% { transform: scaleY(0.92) } }
@keyframes oth2-glow { 0% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.6; transform: scale(0.9) } }

.scn-emilia-knocks { background: linear-gradient(180deg, #1a1828 0%, #242040 50%, #30284a 100%), radial-gradient(ellipse at 80% 50%, #40305a 0%, transparent 70%); }
.scn-emilia-knocks .bg { position:absolute; inset:0; background:linear-gradient(0deg, #0e0c1a 0%, transparent 40%); animation: oth3-bg 22s ease-in-out infinite; }
.scn-emilia-knocks .bed { position:absolute; bottom:10%; left:10%; right:30%; height:38%; background:linear-gradient(180deg, #3a2a1a 0%, #1e1610 100%); border-radius:8% 8% 4% 4%; box-shadow:0 -6px 15px rgba(0,0,0,.7); }
.scn-emilia-knocks .desdemona { position:absolute; bottom:18%; left:15%; width:22%; height:28%; background:linear-gradient(180deg, #dcd0c0 0%, #b0a090 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:center bottom; animation: oth3-desdemona 4.5s ease-in-out infinite; }
.scn-emilia-knocks .othello { position:absolute; bottom:12%; left:45%; width:22%; height:58%; background:linear-gradient(180deg, #1a1020 0%, #0c0610 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: oth3-othello-trn 6s ease-in-out infinite; box-shadow:inset 0 0 25px rgba(0,0,0,.5); }
.scn-emilia-knocks .door { position:absolute; bottom:12%; right:8%; width:20%; height:70%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:4% 4% 2% 2% / 6% 6% 2% 2%; box-shadow:-4px 0 12px rgba(0,0,0,.8); animation: oth3-door 1.5s ease-in-out infinite alternate; }
.scn-emilia-knocks .knocker { position:absolute; bottom:50%; right:18%; width:6%; height:8%; background:radial-gradient(circle, #b09060 0%, #806040 100%); border-radius:50%; animation: oth3-knock 0.8s ease-in-out infinite alternate; box-shadow:0 0 6px #a08050; }
.scn-emilia-knocks .candle-glow { position:absolute; bottom:55%; left:50%; width:14%; height:14%; background:radial-gradient(circle, #ffd080 0%, rgba(255,208,128,.15) 60%, transparent 100%); border-radius:50%; animation: oth3-glow 3s ease-in-out infinite alternate; }
@keyframes oth3-bg { 0%,100% { opacity:.4 } 50% { opacity:.6 } }
@keyframes oth3-desdemona { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes oth3-othello-trn { 0% { transform: rotate(0deg) translateX(0) } 20% { transform: rotate(4deg) translateX(10px) } 40% { transform: rotate(-2deg) translateX(-5px) } 60% { transform: rotate(3deg) translateX(8px) } 80% { transform: rotate(-1deg) translateX(-3px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes oth3-door { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes oth3-knock { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(2px) translateY(-4px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes oth3-glow { 0% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.6; transform: scale(0.9) } }

.scn-body-discovered { background: linear-gradient(180deg, #0e0e1a 0%, #181a2e 50%, #202040 100%), radial-gradient(ellipse at 50% 70%, #2a2a4a 0%, transparent 70%); }
.scn-body-discovered .bg { position:absolute; inset:0; background:linear-gradient(0deg, #0a0a14 0%, transparent 50%); animation: oth4-bg 30s ease-in-out infinite; }
.scn-body-discovered .bed { position:absolute; bottom:8%; left:12%; right:12%; height:40%; background:linear-gradient(180deg, #2a1e14 0%, #16100a 100%); border-radius:10% 10% 4% 4%; box-shadow:0 -12px 30px rgba(0,0,0,.9); }
.scn-body-discovered .body { position:absolute; bottom:15%; left:25%; width:30%; height:20%; background:linear-gradient(180deg, #d4c8b8 0%, #a09080 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: oth4-body 10s ease-in-out infinite; }
.scn-body-discovered .window { position:absolute; top:10%; right:8%; width:25%; height:35%; background:linear-gradient(180deg, #14142a 0%, #1c1c36 100%); border:4px solid #2a2a44; border-radius:4%; box-shadow:inset 0 0 20px rgba(0,0,0,.5); }
.scn-body-discovered .moon { position:absolute; top:15%; right:16%; width:8%; height:8%; background:radial-gradient(circle, #d0d8e0 0%, #a0a8b8 100%); border-radius:50%; box-shadow:0 0 40px 10px rgba(160,168,184,.3), 0 0 80px 20px rgba(160,168,184,.1); animation: oth4-moon 25s linear infinite; }
.scn-body-discovered .shadow-figure { position:absolute; bottom:10%; left:5%; width:18%; height:50%; background:linear-gradient(180deg, #0c0812 0%, #06040a 100%); border-radius:35% 35% 25% 25% / 45% 45% 35% 35%; animation: oth4-figure 6s ease-in-out infinite alternate; }
.scn-body-discovered .cloud { position:absolute; top:12%; right:20%; width:20%; height:4%; background:rgba(200,210,220,.1); border-radius:50%; filter:blur(6px); animation: oth4-cloud 40s linear infinite reverse; }
@keyframes oth4-bg { 0%,100% { opacity:.5 } 50% { opacity:.7 } }
@keyframes oth4-body { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes oth4-moon { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(5px) translateY(-3px) } 50% { transform: translateX(-3px) translateY(2px) } 75% { transform: translateX(4px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes oth4-figure { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(-5px) rotate(-1deg) } }
@keyframes oth4-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* iago-anticipates-fight */
.scn-iago-anticipates-fight {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 50%, #1a0a0a 100%),
              radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-iago-anticipates-fight .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, rgba(26,20,20,.9) 0%, rgba(20,16,16,.7) 100%);
  animation: iag-wall 12s ease-in-out infinite alternate;
}
.scn-iago-anticipates-fight .door {
  position: absolute; bottom: 10%; left: 20%; width: 30%; height: 70%;
  background: linear-gradient(135deg, #1a0a0a 0%, #0a0505 100%);
  border: 2px solid #3a2a1a; border-radius: 4% 4% 0 0;
  animation: iag-door 9s ease-in-out infinite;
}
.scn-iago-anticipates-fight .figure {
  position: absolute; bottom: 18%; right: 28%; width: 8%; height: 50%;
  background: linear-gradient(180deg, #0a0a1a 0%, #05050f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: iag-figure 5s ease-in-out infinite alternate;
}
.scn-iago-anticipates-fight .dagger {
  position: absolute; bottom: 35%; right: 22%; width: 4%; height: 16%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 0 0 20% 20%; transform: rotate(-15deg);
  animation: iag-dagger 3s ease-in-out infinite alternate;
}
.scn-iago-anticipates-fight .shadow {
  position: absolute; bottom: 10%; left: 40%; width: 20%; height: 4%;
  background: radial-gradient(ellipse, rgba(10,5,5,.9) 0%, transparent 100%);
  animation: iag-shadow 5s ease-in-out infinite alternate;
}
.scn-iago-anticipates-fight .candle-glow {
  position: absolute; top: 25%; left: 15%; width: 6%; height: 10%;
  background: radial-gradient(circle, #d09040 0%, #b07030 40%, transparent 80%);
  box-shadow: 0 0 20px 8px rgba(200,140,60,.5);
  border-radius: 50%; animation: iag-flame 2s ease-in-out infinite alternate;
}
@keyframes iag-wall { 0% { opacity:.9 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes iag-door { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes iag-figure { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-1deg) } }
@keyframes iag-dagger { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-4px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes iag-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } 100% { transform: scaleX(1.02) } }
@keyframes iag-flame { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) translateY(-3px) } 100% { opacity:.85; transform: scaleY(0.95) } }

/* drink-song-potting */
.scn-drink-song-potting {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 60%, #0a050a 100%),
              radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 80%);
}
.scn-drink-song-potting .table {
  position: absolute; bottom: 18%; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 8% 8% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.5);
  animation: drk-table 6s ease-in-out infinite;
}
.scn-drink-song-potting .mug {
  position: absolute; bottom: 24%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 20% 20% 5% 5%;
}
.scn-drink-song-potting .mug.a { left: 20%; animation: drk-mug 4s ease-in-out infinite; }
.scn-drink-song-potting .mug.b { left: 45%; animation: drk-mug 4s ease-in-out 1s infinite; }
.scn-drink-song-potting .mug.c { left: 70%; animation: drk-mug 4s ease-in-out 2s infinite; }
.scn-drink-song-potting .singer {
  position: absolute; bottom: 26%; left: 48%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: drk-singer 3s ease-in-out infinite alternate;
}
.scn-drink-song-potting .note {
  position: absolute; width: 4%; height: 4%;
  background: radial-gradient(circle, #c0a060 0%, #8a6a30 100%);
  border-radius: 50%; box-shadow: 0 0 6px 2px rgba(192,160,96,.5);
}
.scn-drink-song-potting .note.n1 { top: 20%; left: 55%; animation: drk-note1 5s linear infinite; }
.scn-drink-song-potting .note.n2 { top: 15%; left: 40%; animation: drk-note2 7s linear infinite; }
@keyframes drk-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes drk-mug { 0% { transform: rotate(0deg) } 30% { transform: rotate(8deg) } 70% { transform: rotate(-6deg) } 100% { transform: rotate(0deg) } }
@keyframes drk-singer { 0% { transform: rotate(-3deg) } 50% { transform: rotate(4deg) translateY(-2px) } 100% { transform: rotate(-2deg) } }
@keyframes drk-note1 { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.8 } 50% { transform: translateY(-30px) translateX(15px) scale(1.2); opacity:1 } 100% { transform: translateY(-60px) translateX(0) scale(0.8); opacity:0 } }
@keyframes drk-note2 { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.7 } 50% { transform: translateY(-20px) translateX(-10px) scale(1.1); opacity:1 } 100% { transform: translateY(-50px) translateX(5px) scale(0.9); opacity:0 } }

/* english-drinking-praise */
.scn-english-drinking-praise {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 60%, #0a0000 100%),
              radial-gradient(ellipse at 60% 30%, #4a3a2a 0%, transparent 80%);
}
.scn-english-drinking-praise .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, rgba(30,20,10,.8) 0%, rgba(20,10,5,.9) 100%);
  animation: eng-wall 15s ease-in-out infinite alternate;
}
.scn-english-drinking-praise .window {
  position: absolute; top: 10%; left: 60%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 100%);
  border: 3px solid #3a2a1a; border-radius: 4%;
  animation: eng-window 8s ease-in-out infinite alternate;
}
.scn-english-drinking-praise .barrel {
  position: absolute; bottom: 18%; left: 10%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: eng-barrel 10s linear infinite;
}
.scn-english-drinking-praise .figure {
  position: absolute; bottom: 22%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-english-drinking-praise .figure.toasting {
  left: 35%; transform-origin: bottom center;
  animation: eng-toast 3s ease-in-out infinite;
}
.scn-english-drinking-praise .figure.bent {
  left: 50%; transform-origin: bottom center;
  animation: eng-bent 4s ease-in-out infinite alternate;
}
.scn-english-drinking-praise .stool {
  position: absolute; bottom: 18%; left: 55%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10%;
  animation: eng-stool 5s ease-in-out infinite;
}
.scn-english-drinking-praise .mug-spilled {
  position: absolute; bottom: 20%; left: 40%; width: 6%; height: 5%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 10%; transform: rotate(75deg);
  animation: eng-mug 6s ease-in-out infinite alternate;
}
.scn-english-drinking-praise .puddle {
  position: absolute; bottom: 18%; left: 38%; width: 10%; height: 2%;
  background: radial-gradient(ellipse, #3a2a1a 0%, transparent 100%);
  animation: eng-puddle 7s ease-in-out infinite;
}
@keyframes eng-wall { 0% { opacity:.85 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes eng-window { 0% { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 100%) } 50% { background: linear-gradient(180deg, #15153a 0%, #25254a 100%) } 100% { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 100%) } }
@keyframes eng-barrel { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(3deg) translateX(2px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes eng-toast { 0% { transform: rotate(-5deg) } 30% { transform: rotate(8deg) translateY(-4px) } 70% { transform: rotate(-3deg) } 100% { transform: rotate(-5deg) } }
@keyframes eng-bent { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(15deg) scaleY(0.9) translateY(-5px) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes eng-stool { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) translateY(1px) } 100% { transform: translateX(2px) } }
@keyframes eng-mug { 0% { transform: rotate(75deg) } 50% { transform: rotate(85deg) translateY(-2px) } 100% { transform: rotate(75deg) } }
@keyframes eng-puddle { 0% { transform: scaleX(1) opacity:.7 } 50% { transform: scaleX(1.1) opacity:.9 } 100% { transform: scaleX(1) opacity:.7 } }

/* cassio-rambling-drunk */
.scn-cassio-rambling-drunk {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 50%, #0a050a 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a2a 0%, transparent 80%);
}
.scn-cassio-rambling-drunk .wall {
  position: absolute; inset: 0 0 25% 0; background: linear-gradient(90deg, rgba(20,15,15,.85) 0%, rgba(15,10,10,.9) 100%);
  animation: cas-wall 14s ease-in-out infinite alternate;
}
.scn-cassio-rambling-drunk .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  animation: cas-floor 10s ease-in-out infinite;
}
.scn-cassio-rambling-drunk .figure {
  position: absolute; bottom: 18%; left: 30%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cas-figure 4s ease-in-out infinite alternate;
}
.scn-cassio-rambling-drunk .mug {
  position: absolute; bottom: 22%; width: 5%; height: 8%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 20% 20% 5% 5%;
}
.scn-cassio-rambling-drunk .mug.left { left: 15%; animation: cas-mug-left 5s ease-in-out infinite alternate; }
.scn-cassio-rambling-drunk .mug.right { left: 60%; animation: cas-mug-right 5s ease-in-out 2s infinite alternate; }
.scn-cassio-rambling-drunk .chair {
  position: absolute; bottom: 18%; left: 55%; width: 8%; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10%; transform-origin: bottom center;
  animation: cas-chair 6s ease-in-out infinite;
}
.scn-cassio-rambling-drunk .lantern {
  position: absolute; top: 10%; left: 50%; width: 6%; height: 10%;
  background: radial-gradient(circle, #d09040 0%, #b07030 50%, transparent 80%);
  box-shadow: 0 0 30px 10px rgba(200,140,60,.4);
  border-radius: 50%; transform-origin: top center;
  animation: cas-lantern 4s ease-in-out infinite alternate;
}
@keyframes cas-wall { 0% { opacity:.85 } 50% { opacity:.95 } 100% { opacity:.8 } }
@keyframes cas-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes cas-figure { 0% { transform: rotate(-4deg) translateX(0) } 30% { transform: rotate(6deg) translateX(8px) } 60% { transform: rotate(-2deg) translateX(-4px) } 100% { transform: rotate(-4deg) translateX(0) } }
@keyframes cas-mug-left { 0% { transform: rotate(0deg) } 50% { transform: rotate(20deg) translateY(-3px) } 100% { transform: rotate(0deg) } }
@keyframes cas-mug-right { 0% { transform: rotate(0deg) } 50% { transform: rotate(-15deg) translateY(-2px) } 100% { transform: rotate(0deg) } }
@keyframes cas-chair { 0% { transform: rotate(0deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(-4deg) } 75% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes cas-lantern { 0% { transform: rotate(-8deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-6deg) } }

/* cassio-agrees-to-sue */
.scn-cassio-agrees-to-sue {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-cassio-agrees-to-sue .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  animation: ca-wall 20s ease-in-out infinite alternate;
}
.scn-cassio-agrees-to-sue .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
}
.scn-cassio-agrees-to-sue .table {
  position: absolute; bottom: 16%; left: 38%; width: 40%; height: 6%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 50% 50% / 10% 10% 40% 40%;
  box-shadow: 0 10px 18px rgba(0,0,0,.5);
  animation: ca-table 6s ease-in-out infinite alternate;
}
.scn-cassio-agrees-to-sue .candle {
  position: absolute; bottom: 22%; left: 40%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #e0c060 0%, #c09850 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 0 6px 2px rgba(224,192,96,.3);
}
.scn-cassio-agrees-to-sue .flame {
  position: absolute; bottom: 40%; left: 40%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffdd80 0%, #ffa050 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px rgba(255,160,80,.4), 0 0 48px 16px rgba(255,160,80,.2);
  animation: ca-flame 1.8s ease-in-out infinite;
}
.scn-cassio-agrees-to-sue .cassio-figure {
  position: absolute; bottom: 14%; left: 46%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ca-figure 4s ease-in-out infinite;
}
.scn-cassio-agrees-to-sue .candle-shadow {
  position: absolute; bottom: 16%; left: 30%; width: 60px; height: 20px;
  background: linear-gradient(90deg, transparent 0%, rgba(20,10,0,0.4) 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ca-shadow 6s ease-in-out infinite alternate;
}
@keyframes ca-wall { 0% { opacity: 0.7 } 100% { opacity: 0.5 } }
@keyframes ca-table { 0% { transform: translateY(0) } 100% { transform: translateY(-2px) } }
@keyframes ca-flame { 0% { transform: scale(1,1) rotate(-2deg); opacity:0.9 } 50% { transform: scale(1.02,0.95) rotate(1deg); opacity:1 } 100% { transform: scale(0.98,1.04) rotate(-1deg); opacity:0.85 } }
@keyframes ca-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes ca-shadow { 0% { transform: translateX(0) scaleX(1) } 100% { transform: translateX(-5px) scaleX(0.9) } }

/* iago-soliloquy-net */
.scn-iago-soliloquy-net {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #0a0a1a 100%), radial-gradient(ellipse at 60% 80%, #2a2a4e 0%, transparent 70%);
  position: relative;
}
.scn-iago-soliloquy-net .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 40% 30%, rgba(40,40,80,0.6) 0%, transparent 60%);
  animation: is-deep 10s ease-in-out infinite alternate;
}
.scn-iago-soliloquy-net .wall-shadow {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, transparent 60%, rgba(10,10,20,0.8) 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
}
.scn-iago-soliloquy-net .iago-figure {
  position: absolute; bottom: 8%; left: 20%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 35% 35% 30% 30% / 70% 70% 30% 30%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: is-figure 6s ease-in-out infinite;
}
.scn-iago-soliloquy-net .hand-point {
  position: absolute; bottom: 10%; left: 22%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: is-hand 4s ease-in-out infinite;
}
.scn-iago-soliloquy-net .net-web {
  position: absolute; top: 15%; left: 15%; width: 70%; height: 70%;
  background: repeating-linear-gradient(45deg, transparent, transparent 4px, rgba(100,100,140,0.15) 4px, rgba(100,100,140,0.15) 8px),
              repeating-linear-gradient(-45deg, transparent, transparent 4px, rgba(100,100,140,0.15) 4px, rgba(100,100,140,0.15) 8px);
  border-radius: 50%;
  filter: blur(2px);
  animation: is-net 30s linear infinite;
}
.scn-iago-soliloquy-net .lantern-glow {
  position: absolute; bottom: 25%; right: 15%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffb060 0%, #e08030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,176,96,0.3), 0 0 80px 40px rgba(255,176,96,0.1);
  animation: is-lantern 3s ease-in-out infinite alternate;
}
@keyframes is-deep { 0% { opacity: 0.5 } 100% { opacity: 0.8 } }
@keyframes is-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes is-hand { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-2px) } 100% { transform: rotate(-15deg) } }
@keyframes is-net { 0% { transform: rotate(0) scale(1) } 100% { transform: rotate(360deg) scale(0.95) } }
@keyframes is-lantern { 0% { box-shadow: 0 0 30px 15px rgba(255,176,96,0.3); opacity:0.8 } 100% { box-shadow: 0 0 60px 30px rgba(255,176,96,0.5); opacity:1 } }

/* roderigo-complains-beaten */
.scn-roderigo-complains-beaten {
  background: linear-gradient(180deg, #2a3a5a 0%, #4a5a7a 50%, #7a6a5a 100%), radial-gradient(ellipse at 50% 0%, #8a7a6a 0%, transparent 70%);
}
.scn-roderigo-complains-beaten .sky-dawn {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a3a5a 0%, #6a7a8a 60%, #a08060 100%);
  animation: ro-sky 30s ease-in-out infinite alternate;
}
.scn-roderigo-complains-beaten .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
}
.scn-roderigo-complains-beaten .roderigo-figure {
  position: absolute; bottom: 8%; left: 35%; width: 26px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 35% 35% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ro-stagger 1.5s ease-in-out infinite;
}
.scn-roderigo-complains-beaten .blood-stain {
  position: absolute; bottom: 6%; left: 34%; width: 8px; height: 6px;
  background: radial-gradient(circle, #5e1a1d 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 4px rgba(94,26,29,0.4);
  animation: ro-blood 4s ease-in-out infinite;
}
.scn-roderigo-complains-beaten .shadow-rod {
  position: absolute; bottom: 0; left: 20%; width: 80px; height: 20px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 50%, transparent 100%);
  filter: blur(10px);
  animation: ro-shadow 3s ease-in-out infinite alternate;
}
.scn-roderigo-complains-beaten .mist {
  position: absolute; top: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, transparent 0%, rgba(200,200,220,0.15) 20%, transparent 40%, rgba(200,200,220,0.1) 60%, transparent 80%);
  filter: blur(12px);
  animation: ro-mist 20s linear infinite;
}
@keyframes ro-sky { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 1 } }
@keyframes ro-stagger { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(8px) rotate(8deg) } 50% { transform: translateX(-4px) rotate(-4deg) } 75% { transform: translateX(6px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ro-blood { 0% { opacity: 0.3; transform: scale(0.8) } 50% { opacity: 0.7; transform: scale(1.2) } 100% { opacity: 0.3; transform: scale(0.8) } }
@keyframes ro-shadow { 0% { transform: scaleX(1) translateX(0) } 100% { transform: scaleX(1.1) translateX(-10px) } }
@keyframes ro-mist { 0% { transform: translateX(-20%) } 100% { transform: translateX(20%) } }

/* iago-final-plan */
.scn-iago-final-plan {
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a4a 50%, #2a3a5a 100%), radial-gradient(ellipse at 50% 100%, #3a4a6a 0%, transparent 70%);
}
.scn-iago-final-plan .sky-dawn-dark {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a4a 60%, #4a3a2a 100%);
  animation: if-sky 25s ease-in-out infinite alternate;
}
.scn-iago-final-plan .clouds-heavy {
  position: absolute; top: 10%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 20% 50%, rgba(30,40,60,0.7) 0%, transparent 50%),
              radial-gradient(ellipse at 80% 40%, rgba(30,40,60,0.5) 0%, transparent 50%);
  filter: blur(12px);
  animation: if-clouds 40s linear infinite;
}
.scn-iago-final-plan .iago-silhouette {
  position: absolute; bottom: 5%; left: 30%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.7);
  animation: if-silhouette 7s ease-in-out infinite;
}
.scn-iago-final-plan .hand-raising {
  position: absolute; bottom: 15%; left: 25%; width: 12px; height: 25px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: if-hand 4s ease-in-out infinite;
}
.scn-iago-final-plan .shadow-long {
  position: absolute; bottom: 0; left: 20%; width: 100px; height: 30px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.6) 40%, rgba(0,0,0,0.3) 80%, transparent 100%);
  filter: blur(12px);
  animation: if-shadow 12s ease-in-out infinite alternate;
}
.scn-iago-final-plan .dagger-gleam {
  position: absolute; bottom: 20%; right: 30%; width: 6px; height: 20px;
  background: linear-gradient(180deg, rgba(200,200,220,0.8) 0%, transparent 100%);
  border-radius: 10% 10% 60% 60% / 20% 20% 80% 80%;
  box-shadow: 0 0 8px 4px rgba(200,200,220,0.2);
  animation: if-dagger 2s ease-in-out infinite alternate;
}
@keyframes if-sky { 0% { opacity: 0.4 } 100% { opacity: 0.7 } }
@keyframes if-clouds { 0% { transform: translateX(-10%) scaleX(1) } 100% { transform: translateX(10%) scaleX(1.05) } }
@keyframes if-silhouette { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes if-hand { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-5px) } 100% { transform: rotate(-20deg) } }
@keyframes if-shadow { 0% { transform: scaleX(0.9) translateX(0) } 100% { transform: scaleX(1.1) translateX(-15px) } }
@keyframes if-dagger { 0% { opacity: 0.1; transform: rotate(0) } 50% { opacity: 0.6; transform: rotate(3deg) } 100% { opacity: 0.1; transform: rotate(0) } }

/* ---------- Scene 1: othello-headache-napkin ---------- */
.scn-othello-headache-napkin {
  background: linear-gradient(135deg, #f7e9d7 0%, #e6d5b8 100%),
              radial-gradient(circle at 30% 40%, #fff5e6 0%, transparent 60%);
}
.scn-othello-headache-napkin .bg    { position:absolute; inset:0; background: rgba(255,235,210,0.2); }
.scn-othello-headache-napkin .shadow{ position:absolute; top:0; left:0; width:60%; height:100%; background: linear-gradient(135deg, rgba(0,0,0,0.15) 0%, transparent 100%); animation: oh1-shadow 6s ease-in-out infinite alternate; }
.scn-othello-headache-napkin .head  { position:absolute; bottom:10%; left:20%; width:40%; height:60%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: oh1-head 8s ease-in-out infinite; }
.scn-othello-headache-napkin .hand  { position:absolute; bottom:25%; left:30%; width:15%; height:20%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; transform-origin: bottom left; animation: oh1-hand 3s ease-in-out infinite; }
.scn-othello-headache-napkin .napkin{ position:absolute; bottom:43%; left:35%; width:12%; height:6%; background: radial-gradient(ellipse, #f0e8d8 0%, #c8b8a0 100%); border-radius: 20% 50% 20% 50% / 30% 40% 30% 40%; box-shadow: 0 2px 8px rgba(0,0,0,0.2); animation: oh1-napkin 2s ease-in-out infinite; }
.scn-othello-headache-napkin .sweat { position:absolute; bottom:45%; left:38%; width:2%; height:2%; background: radial-gradient(circle, #8ac0ff 0%, transparent 100%); border-radius:50%; animation: oh1-sweat 4s linear infinite; }
.scn-othello-headache-napkin .pulse { position:absolute; bottom:45%; left:45%; width:3%; height:1%; background: #a05030; border-radius:50%; box-shadow: 0 0 4px #a05030; animation: oh1-pulse 1.2s ease-in-out infinite; }

@keyframes oh1-head   { 0% { transform: rotate(5deg) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(5deg) } }
@keyframes oh1-hand   { 0% { transform: rotate(0deg) } 25% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 75% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }
@keyframes oh1-napkin { 0% { opacity:0.9; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.9; transform: scale(1) } }
@keyframes oh1-shadow { 0% { opacity:0.1 } 50% { opacity:0.3 } 100% { opacity:0.1 } }
@keyframes oh1-sweat  { 0% { transform: translateY(0); opacity:0.8 } 25% { transform: translateY(8px); opacity:0.6 } 50% { transform: translateY(16px); opacity:0.3 } 75% { transform: translateY(24px); opacity:0.1 } 100% { transform: translateY(32px); opacity:0 } }
@keyframes oh1-pulse  { 0% { transform: scaleX(0.8); opacity:0.6 } 50% { transform: scaleX(1.3); opacity:1 } 100% { transform: scaleX(0.8); opacity:0.6 } }

/* ---------- Scene 2: item-handkerchief-drop ---------- */
.scn-item-handkerchief-drop {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%),
              radial-gradient(ellipse at 50% 100%, #d4c4ac 0%, transparent 70%);
}
.scn-item-handkerchief-drop .ground       { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b8a888 0%, #a09078 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; }
.scn-item-handkerchief-drop .handkerchief { position:absolute; bottom:20%; left:40%; width:20%; height:15%; background: radial-gradient(ellipse, #f5f0e0 0%, #d8c8b0 100%); border-radius: 10% 40% 20% 40% / 30% 20% 40% 30%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: hd2-fabric 6s ease-in-out infinite; }
.scn-item-handkerchief-drop .shadow       { position:absolute; bottom:18%; left:38%; width:24%; height:4%; background: rgba(0,0,0,0.2); border-radius:50%; filter: blur(4px); animation: hd2-shadow 4s ease-in-out infinite alternate; }
.scn-item-handkerchief-drop .hand         { position:absolute; bottom:30%; left:45%; width:12%; height:18%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; transform-origin: bottom center; animation: hd2-hand 8s ease-in-out infinite; }
.scn-item-handkerchief-drop .flower       { position:absolute; bottom:26%; left:46%; width:4%; height:4%; background: radial-gradient(circle, #c8553d 0%, #a0461a 100%); border-radius:50%; box-shadow: 0 0 6px #c8553d; animation: hd2-flower 3s ease-in-out infinite; }
.scn-item-handkerchief-drop .dust         { position:absolute; top:10%; left:20%; width:2%; height:2%; background: rgba(200,180,160,0.5); border-radius:50%; filter: blur(1px); animation: hd2-drift 12s linear infinite; }
.scn-item-handkerchief-drop .dust2        { position:absolute; top:30%; right:25%; width:1.5%; height:1.5%; background: rgba(200,180,160,0.4); border-radius:50%; filter: blur(1px); animation: hd2-drift 15s linear infinite reverse; }

@keyframes hd2-fabric { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(3deg) scale(1.02) } 100% { transform: rotate(-2deg) scale(1) } }
@keyframes hd2-shadow { 0% { transform: scaleX(1); opacity:0.3 } 50% { transform: scaleX(1.5); opacity:0.5 } 100% { transform: scaleX(0.8); opacity:0.3 } }
@keyframes hd2-hand   { 0% { transform: translateY(0) rotate(5deg) } 50% { transform: translateY(-8px) rotate(10deg) } 100% { transform: translateY(0) rotate(5deg) } }
@keyframes hd2-flower { 0% { transform: scale(0.8); opacity:0.6 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.8); opacity:0.6 } }
@keyframes hd2-drift  { 0% { transform: translate(0,0) } 50% { transform: translate(20px,-30px) } 100% { transform: translate(40px,-60px) } }

/* ---------- Scene 3: iago-steals-handkerchief ---------- */
.scn-iago-steals-handkerchief {
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b898 100%),
              radial-gradient(circle at 40% 50%, #fff0d0 0%, transparent 50%);
}
.scn-iago-steals-handkerchief .hand-left    { position:absolute; bottom:30%; left:25%; width:15%; height:20%; background: linear-gradient(180deg, #d4b09a 0%, #b8907a 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; transform-origin: bottom right; animation: is3-left 4s ease-in-out infinite; }
.scn-iago-steals-handkerchief .hand-right   { position:absolute; bottom:28%; right:25%; width:15%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; transform-origin: bottom left; animation: is3-right 3s ease-in-out infinite; }
.scn-iago-steals-handkerchief .handkerchief { position:absolute; bottom:35%; left:40%; width:16%; height:12%; background: radial-gradient(ellipse, #f5f0e0 0%, #d8c8b0 100%); border-radius: 10% 40% 20% 40% / 30% 20% 40% 30%; box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: is3-cloth 2.5s ease-in-out infinite; }
.scn-iago-steals-handkerchief .wrist-left   { position:absolute; bottom:30%; left:10%; width:18%; height:8%; background: linear-gradient(180deg, #d4b09a 0%, #b8907a 100%); border-radius: 20% 40% 20% 40% / 30% 20% 30% 20%; transform: rotate(20deg); animation: is3-wristL 5s ease-in-out infinite; }
.scn-iago-steals-handkerchief .wrist-right  { position:absolute; bottom:28%; right:10%; width:18%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 20% 40% 20% 40% / 30% 20% 30% 20%; transform: rotate(-20deg); animation: is3-wristR 5s ease-in-out infinite; }
.scn-iago-steals-handkerchief .shadow       { position:absolute; bottom:22%; left:30%; width:40%; height:6%; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(6px); animation: is3-shadow 3s ease-in-out infinite alternate; }
.scn-iago-steals-handkerchief .blur-motion  { position:absolute; bottom:32%; right:30%; width:20%; height:2%; background: linear-gradient(90deg, transparent, rgba(0,0,0,0.2) 50%, transparent); animation: is3-blur 0.8s linear infinite; }

@keyframes is3-left   { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-4px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes is3-right  { 0% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(15deg) translateY(-6px) scale(1.1) } 60% { transform: rotate(-5deg) translateY(2px) scale(0.95) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes is3-cloth  { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(10deg) scaleX(1.3) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes is3-wristL { 0% { transform: rotate(20deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(20deg) } }
@keyframes is3-wristR { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-25deg) } 100% { transform: rotate(-20deg) } }
@keyframes is3-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(1.5) } 100% { opacity:0.3; transform: scaleX(1) } }
@keyframes is3-blur   { 0% { left:-10%; opacity:0 } 50% { opacity:0.8 } 100% { left:110%; opacity:0 } }

/* ---------- Scene 4: othello-tormented-sleep ---------- */
.scn-othello-tormented-sleep {
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%),
              radial-gradient(circle at 60% 40%, #5a4a3a 0%, transparent 70%);
}
.scn-othello-tormented-sleep .bed        { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.5); }
.scn-othello-tormented-sleep .body       { position:absolute; bottom:8%; left:25%; right:25%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; animation: ts4-body 6s ease-in-out infinite; }
.scn-othello-tormented-sleep .head       { position:absolute; bottom:20%; left:30%; width:12%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: ts4-head 4s ease-in-out infinite; }
.scn-othello-tormented-sleep .hands      { position:absolute; bottom:24%; left:35%; width:8%; height:6%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%; transform-origin: bottom; animation: ts4-hands 2.5s ease-in-out infinite; }
.scn-othello-tormented-sleep .light-beam { position:absolute; top:0; left:60%; width:30%; height:100%; background: linear-gradient(135deg, rgba(255,235,200,0.3) 0%, transparent 80%); clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%); animation: ts4-beam 10s ease-in-out infinite alternate; }
.scn-othello-tormented-sleep .shadow     { position:absolute; bottom:0; left:10%; right:10%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); border-radius: 0 0 30% 30%; animation: ts4-shadow 5s ease-in-out infinite alternate; }
.scn-othello-tormented-sleep .sweat      { position:absolute; bottom:28%; left:32%; width:1.5%; height:1.5%; background: radial-gradient(circle, #6a8aaa 0%, transparent 100%); border-radius:50%; animation: ts4-sweat 3s linear infinite; }
.scn-othello-tormented-sleep .pillow     { position:absolute; bottom:20%; left:28%; width:16%; height:8%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,0.4); animation: ts4-pillow 7s ease-in-out infinite; }

@keyframes ts4-body   { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ts4-head   { 0% { transform: rotate(10deg) } 25% { transform: rotate(5deg) translateX(-2px) } 50% { transform: rotate(12deg) translateX(2px) } 75% { transform: rotate(7deg) translateX(-1px) } 100% { transform: rotate(10deg) } }
@keyframes ts4-hands  { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.8) } 100% { transform: scaleY(1) } }
@keyframes ts4-beam   { 0% { opacity:0.4; transform: scaleX(1) } 50% { opacity:0.7; transform: scaleX(1.2) } 100% { opacity:0.3; transform: scaleX(0.9) } }
@keyframes ts4-shadow { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes ts4-sweat  { 0% { transform: translateY(0); opacity:0.7 } 30% { transform: translateY(8px); opacity:0.5 } 60% { transform: translateY(16px); opacity:0.2 } 100% { transform: translateY(24px); opacity:0 } }
@keyframes ts4-pillow { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }

/* Scene: willow-song-verses */
.scn-willow-song-verses {
  background: linear-gradient(180deg, #0a0a1a 0%, #14142a 40%, #1a1a3a 100%),
              radial-gradient(ellipse at 30% 50%, #2a2a4e 0%, transparent 70%);
}
.scn-willow-song-verses .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #1e1e34 0%, #28284a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-willow-song-verses .window { position:absolute; top:15%; left:60%; width:80px; height:100px; background: linear-gradient(180deg, #151530 0%, #202050 100%); border: 3px solid #2a2a4e; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-willow-song-verses .tree { position:absolute; bottom:20%; left:10%; width:40px; height:150px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 20% 20% 50% 50% / 30% 30% 70% 70%; transform-origin: bottom; animation: wsv-tree 8s ease-in-out infinite; }
.scn-willow-song-verses .figure { position:absolute; bottom:22%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wsv-figure 6s ease-in-out infinite alternate; }
.scn-willow-song-verses .tear1 { position:absolute; bottom:30%; left:38%; width:4px; height:6px; background: rgba(180,180,255,0.6); border-radius: 50% 50% 40% 40%; filter: blur(1px); animation: wsv-tear 2s ease-in infinite; }
.scn-willow-song-verses .tear2 { position:absolute; bottom:30%; left:42%; width:4px; height:6px; background: rgba(180,180,255,0.5); border-radius: 50% 50% 40% 40%; filter: blur(1px); animation: wsv-tear 2.5s ease-in infinite 0.8s; }
.scn-willow-song-verses .stream { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a3a 0%, #2a2a5a 100%); border-radius: 50% 50% 0 0; animation: wsv-stream 12s ease-in-out infinite alternate; }
.scn-willow-song-verses .mist { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, rgba(200,200,255,0.04) 0%, transparent 70%); animation: wsv-mist 15s ease-in-out infinite alternate; }
@keyframes wsv-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes wsv-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes wsv-tear { 0% { opacity:1; transform: translateY(0) scale(1); } 50% { opacity:0.5; transform: translateY(10px) scale(0.8); } 100% { opacity:0; transform: translateY(20px) scale(0.5); } }
@keyframes wsv-stream { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(4px) scaleY(1.1); } 100% { transform: translateY(-2px) scaleY(0.95); } }
@keyframes wsv-mist { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.2; } }

/* Scene: emilia-debates */
.scn-emilia-debates {
  background: linear-gradient(180deg, #1a1010 0%, #2a1a1a 40%, #3a2020 100%),
              radial-gradient(ellipse at 50% 60%, #6a3a2a 0%, transparent 80%);
}
.scn-emilia-debates .backwall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a1a1a 0%, #3a2a2a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.7); }
.scn-emilia-debates .table { position:absolute; bottom:20%; left:30%; right:30%; height:10%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-emilia-debates .candle { position:absolute; bottom:30%; left:50%; width:6px; height:30px; background: linear-gradient(180deg, #d0b080 0%, #8a6a40 100%); transform: translateX(-50%); border-radius: 2px 2px 1px 1px; }
.scn-emilia-debates .glow { position:absolute; bottom:30%; left:50%; width:40px; height:40px; transform: translate(-50%, -10px); background: radial-gradient(circle, #ffd080 0%, #b07040 40%, transparent 70%); border-radius: 50%; animation: ed-glow 2s ease-in-out infinite alternate; }
.scn-emilia-debates .figure-a { position:absolute; bottom:28%; left:55%; width:22px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ed-figure-a 3s ease-in-out infinite alternate; }
.scn-emilia-debates .figure-b { position:absolute; bottom:28%; right:55%; width:22px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ed-figure-b 3.5s ease-in-out infinite alternate 0.5s; }
.scn-emilia-debates .shadow-a { position:absolute; bottom:18%; left:45%; width:30px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); animation: ed-shadow 3s ease-in-out infinite alternate; }
.scn-emilia-debates .shadow-b { position:absolute; bottom:18%; right:45%; width:30px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); animation: ed-shadow 3.5s ease-in-out infinite alternate 0.5s; }
@keyframes ed-glow { 0% { opacity:0.7; transform: translate(-50%, -10px) scale(0.9); } 50% { opacity:1; transform: translate(-50%, -12px) scale(1.1); } 100% { opacity:0.8; transform: translate(-50%, -10px) scale(1); } }
@keyframes ed-figure-a { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ed-figure-b { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ed-shadow { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.2); } 100% { opacity:0.5; transform: scaleX(0.9); } }

/* Scene: womens-rights */
.scn-womens-rights {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a14 40%, #3a2218 100%),
              radial-gradient(ellipse at 50% 40%, #5a3a28 0%, transparent 70%);
}
.scn-womens-rights .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.6); }
.scn-womens-rights .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #1e1410 0%, #2a1e1a 100%); }
.scn-womens-rights .podium { position:absolute; bottom:25%; left:50%; width:60px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #2a1810 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-womens-rights .figure1 { position:absolute; bottom:26%; left:30%; width:18px; height:45px; background: linear-gradient(180deg, #3a2018 0%, #1a100e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wr-figure 2.5s ease-in-out infinite alternate; }
.scn-womens-rights .figure2 { position:absolute; bottom:26%; left:42%; width:18px; height:42px; background: linear-gradient(180deg, #3a2218 0%, #1a120e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wr-figure 2.8s ease-in-out infinite alternate 0.3s; }
.scn-womens-rights .figure3 { position:absolute; bottom:26%; right:42%; width:18px; height:44px; background: linear-gradient(180deg, #3a2018 0%, #1a100e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wr-figure 3s ease-in-out infinite alternate 0.6s; }
.scn-womens-rights .figure4 { position:absolute; bottom:26%; right:30%; width:18px; height:40px; background: linear-gradient(180deg, #3a2218 0%, #1a120e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wr-figure 3.2s ease-in-out infinite alternate 0.9s; }
.scn-womens-rights .banner { position:absolute; bottom:32%; left:50%; width:4px; height:50px; background: #5e3020; transform: translateX(-50%); border-radius: 1px; animation: wr-banner 4s ease-in-out infinite alternate; }
.scn-womens-rights .light { position:absolute; bottom:30%; left:50%; width:80px; height:80px; transform: translate(-50%, 20px); background: radial-gradient(circle, rgba(200,150,100,0.15) 0%, transparent 70%); border-radius: 50%; animation: wr-light 5s ease-in-out infinite alternate; }
@keyframes wr-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes wr-banner { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes wr-light { 0% { opacity:0.4; transform: translate(-50%, 20px) scale(0.95); } 50% { opacity:0.7; transform: translate(-50%, 18px) scale(1.05); } 100% { opacity:0.5; transform: translate(-50%, 20px) scale(1); } }

/* Scene: desdemona-submits */
.scn-desdemona-submits {
  background: linear-gradient(180deg, #0c0c1a 0%, #14142e 40%, #1c1c3a 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a5a 0%, transparent 70%);
}
.scn-desdemona-submits .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #12122a 0%, #0a0a1a 100%); }
.scn-desdemona-submits .bed { position:absolute; bottom:15%; left:30%; right:30%; height:20%; background: linear-gradient(180deg, #1e1e3a 0%, #12122a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -8px 16px rgba(0,0,0,.4); }
.scn-desdemona-submits .figure { position:absolute; bottom:16%; left:40%; width:24px; height:50px; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a34 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ds-figure 8s ease-in-out infinite alternate; }
.scn-desdemona-submits .pillow { position:absolute; bottom:22%; left:45%; width:30px; height:10px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-desdemona-submits .sheet { position:absolute; bottom:17%; left:35%; right:35%; height:8px; background: linear-gradient(180deg, #1e1e3e 0%, #14142e 100%); border-radius: 20%; opacity:0.7; }
.scn-desdemona-submits .shadow { position:absolute; bottom:10%; left:30%; right:30%; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); animation: ds-shadow 10s ease-in-out infinite alternate; }
.scn-desdemona-submits .lamp { position:absolute; top:10%; left:50%; width:8px; height:20px; background: linear-gradient(180deg, #5a5a7a 0%, #3a3a5a 100%); transform: translateX(-50%); border-radius: 2px 2px 0 0; }
@keyframes ds-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(-2deg) scale(1.02); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ds-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.1); } 100% { opacity:0.4; transform: scaleX(0.95); } }

.scn-cassio-iago-banter {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 30%, #1a0a00 100%),
    radial-gradient(ellipse at 40% 60%, #6a4a2a 0%, transparent 60%);
  position: relative; overflow: hidden; min-height: 100vh;
}
.scn-cassio-iago-banter .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: radial-gradient(ellipse at 50% 20%, #4a3020 0%, #2a1a0a 100%);
  opacity: .6; animation: cib-wall 12s ease-in-out infinite;
}
.scn-cassio-iago-banter .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1008 0%, #2a1a0a 100%);
  animation: cib-floor 8s ease-in-out infinite alternate;
}
.scn-cassio-iago-banter .fireplace {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 80px;
  background: linear-gradient(90deg, #3a2010 0%, #5a3020 20%, #7a4030 80%, #3a2010 100%);
  border-radius: 40% 40% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6);
}
.scn-cassio-iago-banter .candle {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 10px; height: 30px;
  background: linear-gradient(180deg, #e8c060 0%, #a07020 100%);
  border-radius: 3px; box-shadow: 0 0 30px 10px rgba(232,192,96,.3);
  animation: cib-candle 3s ease-in-out infinite;
}
.scn-cassio-iago-banter .figure-left {
  position: absolute; bottom: 15%; left: 20%;
  width: 40px; height: 100px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg); animation: cib-fig-left 6s ease-in-out infinite;
}
.scn-cassio-iago-banter .figure-right {
  position: absolute; bottom: 15%; right: 20%;
  width: 45px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg); animation: cib-fig-right 6s ease-in-out infinite reverse;
}
.scn-cassio-iago-banter .table {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 15px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 5px; box-shadow: 0 5px 10px rgba(0,0,0,.5);
}
.scn-cassio-iago-banter .shadow-shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(10px); animation: cib-shadow 20s ease-in-out infinite;
}
@keyframes cib-wall { 0%{opacity:.5} 50%{opacity:.7} 100%{opacity:.5} }
@keyframes cib-floor { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes cib-candle { 0%{box-shadow:0 0 20px 5px rgba(232,192,96,.2); height:30px} 50%{box-shadow:0 0 40px 15px rgba(232,192,96,.4); height:32px} 100%{box-shadow:0 0 20px 5px rgba(232,192,96,.2); height:30px} }
@keyframes cib-fig-left { 0%{transform:rotate(-5deg) translateY(0)} 50%{transform:rotate(-3deg) translateY(-2px)} 100%{transform:rotate(-5deg) translateY(0)} }
@keyframes cib-fig-right { 0%{transform:rotate(5deg) translateY(0)} 50%{transform:rotate(3deg) translateY(-2px)} 100%{transform:rotate(5deg) translateY(0)} }
@keyframes cib-shadow { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.8} }

/* ---- scene 2 ---- */
.scn-iago-wine-invitation {
  background:
    linear-gradient(180deg, #4a3018 0%, #2a1a08 40%, #1a0a00 100%),
    radial-gradient(ellipse at 60% 40%, #7a5028 0%, transparent 50%);
  position: relative; overflow: hidden; min-height: 100vh;
}
.scn-iago-wine-invitation .room-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(0deg, #2a1a08 0%, #4a3018 100%);
  opacity: .4; animation: iwi-wall 15s ease-in-out infinite;
}
.scn-iago-wine-invitation .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #100804 0%, #2a1a08 100%);
}
.scn-iago-wine-invitation .tavern-table {
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 12px;
  background: linear-gradient(180deg, #6a4018 0%, #4a2808 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-iago-wine-invitation .wine-jug {
  position: absolute; bottom: 18%; left: 42%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #a06030 0%, #6a3a18 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(-10deg); animation: iwi-jug 4s ease-in-out infinite;
}
.scn-iago-wine-invitation .wine-cup {
  position: absolute; bottom: 16%; left: 55%;
  width: 18px; height: 22px;
  background: linear-gradient(180deg, #b87878 0%, #8a5050 100%);
  border-radius: 5px 5px 0 0; box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: iwi-cup 5s ease-in-out infinite;
}
.scn-iago-wine-invitation .figure-seated {
  position: absolute; bottom: 10%; left: 15%;
  width: 45px; height: 90px;
  background: linear-gradient(180deg, #2a1a08 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg); animation: iwi-seated 7s ease-in-out infinite;
}
.scn-iago-wine-invitation .figure-standing {
  position: absolute; bottom: 10%; right: 20%;
  width: 40px; height: 110px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(-2deg); animation: iwi-standing 8s ease-in-out infinite;
}
.scn-iago-wine-invitation .candle-flame {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 6px; height: 14px;
  background: radial-gradient(circle at 50% 0, #ffd080 0%, #e8a030 60%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  animation: iwi-flame 2s ease-in-out infinite alternate;
}
@keyframes iwi-wall { 0%{opacity:.3} 50%{opacity:.5} 100%{opacity:.3} }
@keyframes iwi-jug { 0%{transform:rotate(-10deg) translateY(0)} 50%{transform:rotate(-8deg) translateY(-2px)} 100%{transform:rotate(-10deg) translateY(0)} }
@keyframes iwi-cup { 0%{transform:translateY(0) scaleY(1)} 50%{transform:translateY(-1px) scaleY(1.02)} 100%{transform:translateY(0) scaleY(1)} }
@keyframes iwi-seated { 0%{transform:rotate(3deg)} 50%{transform:rotate(0deg)} 100%{transform:rotate(3deg)} }
@keyframes iwi-standing { 0%{transform:rotate(-2deg) translateY(0)} 50%{transform:rotate(0deg) translateY(-2px)} 100%{transform:rotate(-2deg) translateY(0)} }
@keyframes iwi-flame { 0%{height:14px;opacity:.9} 50%{height:18px;opacity:1} 100%{height:14px;opacity:.9} }

/* ---- scene 3 ---- */
.scn-cassio-reluctant-drink {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 40%, #0a0500 100%),
    radial-gradient(ellipse at 50% 30%, #5a3020 0%, transparent 60%);
  position: relative; overflow: hidden; min-height: 100vh;
}
.scn-cassio-reluctant-drink .tense-bg {
  position: absolute; inset: 0 0 20% 0;
  background: radial-gradient(ellipse at 40% 50%, #3a2010 0%, transparent 70%);
  animation: crd-bg 6s ease-in-out infinite;
}
.scn-cassio-reluctant-drink .cassio-torso {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 120px;
  background: linear-gradient(180deg, #2a1a08 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: crd-torso 3s ease-in-out infinite;
}
.scn-cassio-reluctant-drink .hand-cup {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #4a3020 0%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform: rotate(20deg);
  animation: crd-hand 2s ease-in-out infinite;
}
.scn-cassio-reluctant-drink .cup-tremble {
  position: absolute; bottom: 32%; left: 46%; width: 16px; height: 18px;
  background: linear-gradient(180deg, #b87878 0%, #8a5050 100%);
  border-radius: 3px 3px 0 0; transform: rotate(20deg);
  animation: crd-cup 0.5s ease-in-out infinite;
}
.scn-cassio-reluctant-drink .candle-flicker {
  position: absolute; bottom: 40%; left: 35%;
  width: 8px; height: 24px;
  background: linear-gradient(180deg, #ffd080 0%, #c08030 100%);
  border-radius: 2px; box-shadow: 0 0 30px 10px rgba(255,208,128,.3);
  animation: crd-candle 0.3s ease-in-out infinite;
}
.scn-cassio-reluctant-drink .iago-looming {
  position: absolute; bottom: 5%; right: 10%;
  width: 50px; height: 150px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; opacity: .7;
  transform: rotate(5deg); animation: crd-iago 10s ease-in-out infinite;
}
.scn-cassio-reluctant-drink .table-edge {
  position: absolute; bottom: 5%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 10px;
  background: linear-gradient(180deg, #4a2810 0%, #2a1808 100%);
  border-radius: 3px; box-shadow: 0 3px 6px rgba(0,0,0,.6);
  animation: crd-table 8s ease-in-out infinite;
}
@keyframes crd-bg { 0%{opacity:.5} 50%{opacity:1} 100%{opacity:.5} }
@keyframes crd-torso { 0%{transform:translateX(-50%) rotate(0deg)} 50%{transform:translateX(-50%) rotate(-2deg)} 100%{transform:translateX(-50%) rotate(0deg)} }
@keyframes crd-hand { 0%{transform:rotate(20deg) scale(1)} 50%{transform:rotate(15deg) scale(1.05)} 100%{transform:rotate(20deg) scale(1)} }
@keyframes crd-cup { 0%{transform:rotate(20deg) translateX(0)} 25%{transform:rotate(22deg) translateX(2px)} 50%{transform:rotate(18deg) translateX(-2px)} 75%{transform:rotate(21deg) translateX(1px)} 100%{transform:rotate(20deg) translateX(0)} }
@keyframes crd-candle { 0%{height:24px;opacity:.9} 50%{height:28px;opacity:1} 100%{height:24px;opacity:.9} }
@keyframes crd-iago { 0%{transform:rotate(5deg) scaleY(1)} 50%{transform:rotate(3deg) scaleY(1.02)} 100%{transform:rotate(5deg) scaleY(1)} }
@keyframes crd-table { 0%{transform:translateX(-50%) scaleX(1)} 50%{transform:translateX(-50%) scaleX(1.01)} 100%{transform:translateX(-50%) scaleX(1)} }

/* ---- scene 4 ---- */
.scn-iago-plots-drunkenness {
  background:
    linear-gradient(180deg, #0a0500 0%, #1a0a00 30%, #0a0500 100%),
    radial-gradient(ellipse at 30% 50%, #2a1008 0%, transparent 70%);
  position: relative; overflow: hidden; min-height: 100vh;
}
.scn-iago-plots-drunkenness .dark-bg {
  position: absolute; inset: 0 0 25% 0;
  background: radial-gradient(ellipse at 60% 20%, #1a0a00, transparent 60%);
  animation: ipd-bg 15s ease-in-out infinite;
}
.scn-iago-plots-drunkenness .dark-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #050200 0%, #0a0500 100%);
}
.scn-iago-plots-drunkenness .lantern-glow {
  position: absolute; bottom: 15%; left: 30%;
  width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #d08040 0%, #8a5020 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 50px 20px rgba(208,128,64,.4);
  animation: ipd-lantern 4s ease-in-out infinite alternate;
}
.scn-iago-plots-drunkenness .iago-sneer {
  position: absolute; bottom: 10%; right: 25%;
  width: 45px; height: 130px;
  background: linear-gradient(180deg, #0a0500 0%, #050200 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(-10deg); filter: blur(1px);
  animation: ipd-iago 8s ease-in-out infinite;
}
.scn-iago-plots-drunkenness .shadow-hound {
  position: absolute; bottom: 5%; left: 40%;
  width: 60px; height: 30px;
  background: rgba(10,5,0,.8);
  border-radius: 50% 50% 0 0;
  filter: blur(4px); animation: ipd-hound 12s ease-in-out infinite;
}
.scn-iago-plots-drunkenness .table-leg {
  position: absolute; bottom: 3%; left: 50%; transform: translateX(-50%);
  width: 8px; height: 60px;
  background: linear-gradient(180deg, #2a1808 0%, #1a0a00 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.7);
}
.scn-iago-plots-drunkenness .cup-empty {
  position: absolute; bottom: 25%; left: 52%;
  width: 14px; height: 16px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1808 100%);
  border-radius: 2px 2px 0 0; transform: rotate(15deg);
  animation: ipd-cup 6s ease-in-out infinite;
}
@keyframes ipd-bg { 0%{opacity:.3} 50%{opacity:.5} 100%{opacity:.3} }
@keyframes ipd-lantern { 0%{box-shadow:0 0 40px 10px rgba(208,128,64,.3); opacity:.8} 50%{box-shadow:0 0 70px 25px rgba(208,128,64,.6); opacity:1} 100%{box-shadow:0 0 40px 10px rgba(208,128,64,.3); opacity:.8} }
@keyframes ipd-iago { 0%{transform:rotate(-10deg) scale(1)} 50%{transform:rotate(-8deg) scale(1.03)} 100%{transform:rotate(-10deg) scale(1)} }
@keyframes ipd-hound { 0%{transform:scaleX(1); opacity:.6} 50%{transform:scaleX(1.2); opacity:.8} 100%{transform:scaleX(1); opacity:.6} }
@keyframes ipd-cup { 0%{transform:rotate(15deg) translateY(0)} 50%{transform:rotate(10deg) translateY(-1px)} 100%{transform:rotate(15deg) translateY(0)} }

.scn-iago-reminds-deception {
  background: linear-gradient(135deg, #d4b896 0%, #b8946a 50%, #8a6e4a 100%), radial-gradient(ellipse at 60% 30%, #fff6e0 0%, transparent 50%);
}
.scn-iago-reminds-deception .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c4a882 0%, #9a7a5a 100%);
}
.scn-iago-reminds-deception .window-light {
  position: absolute; top: 10%; left: 15%; width: 45%; height: 55%; background: radial-gradient(ellipse at 50% 30%, #fff8e0 0%, #d4b896 80%); border-radius: 8% 8% 4% 4%; box-shadow: 0 0 60px 20px rgba(255,248,224,0.3); animation: ird-window 6s ease-in-out infinite alternate;
}
.scn-iago-reminds-deception .table {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 10%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-iago-reminds-deception .figure-iago {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ird-iago 8s ease-in-out infinite;
}
.scn-iago-reminds-deception .figure-othello {
  position: absolute; bottom: 22%; right: 30%; width: 22px; height: 52px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ird-othello 10s ease-in-out infinite;
}
.scn-iago-reminds-deception .candle {
  position: absolute; bottom: 28%; left: 48%; width: 8px; height: 20px; background: linear-gradient(180deg, #ffe080 0%, #c89050 100%); border-radius: 2px; box-shadow: 0 0 20px 6px #ffd070, 0 0 40px 12px rgba(255,208,112,0.5); animation: ird-candle 1.5s ease-in-out infinite alternate;
}
.scn-iago-reminds-deception .shadow-iago {
  position: absolute; bottom: 18%; left: 32%; width: 30px; height: 8px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px); animation: ird-shadow-left 8s ease-in-out infinite;
}
.scn-iago-reminds-deception .shadow-othello {
  position: absolute; bottom: 18%; right: 27%; width: 32px; height: 8px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px); animation: ird-shadow-right 10s ease-in-out infinite;
}

@keyframes ird-window { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ird-iago { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes ird-othello { 0%, 100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(1deg); } 60% { transform: translateX(1px) rotate(-2deg); } }
@keyframes ird-candle { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 18px 5px #ffd070; } 50% { transform: scaleY(1.1) translateY(-1px); box-shadow: 0 0 28px 8px #ffe090; } 100% { transform: scaleY(0.95) translateY(0); box-shadow: 0 0 20px 5px #d09050; } }
@keyframes ird-shadow-left { 0%, 100% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.2); opacity: 0.5; } }
@keyframes ird-shadow-right { 0%, 100% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(0.9); opacity: 0.4; } }

.scn-iago-poisons-mind {
  background: linear-gradient(180deg, #c8a676 0%, #8a6a44 60%, #4a2a1a 100%), radial-gradient(ellipse at 70% 40%, #fff4d0 0%, transparent 60%);
}
.scn-iago-poisons-mind .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #b8966e 0%, #6a4a2a 100%);
}
.scn-iago-poisons-mind .window-beam {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%; background: linear-gradient(180deg, rgba(255,244,208,0.4) 0%, transparent 70%); clip-path: polygon(30% 0, 70% 0, 85% 100%, 15% 100%); animation: ipm-beam 10s ease-in-out infinite alternate;
}
.scn-iago-poisons-mind .figure-iago {
  position: absolute; bottom: 15%; left: 30%; width: 28px; height: 60px; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ipm-iago 7s ease-in-out infinite;
}
.scn-iago-poisons-mind .figure-othello {
  position: absolute; bottom: 15%; right: 28%; width: 24px; height: 55px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ipm-othello 9s ease-in-out infinite;
}
.scn-iago-poisons-mind .cup {
  position: absolute; bottom: 20%; left: 45%; width: 14px; height: 18px; background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%); border-radius: 30% 30% 10% 10%; animation: ipm-cup 4s ease-in-out infinite;
}
.scn-iago-poisons-mind .venom-drip {
  position: absolute; bottom: 38%; left: 48%; width: 4px; height: 8px; background: linear-gradient(180deg, #5a8a5a 0%, #2a4a2a 100%); border-radius: 50%; animation: ipm-drip 3s ease-in-out infinite;
}
.scn-iago-poisons-mind .shadow-loom {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); animation: ipm-loom 8s ease-in-out infinite alternate;
}

@keyframes ipm-beam { 0% { opacity: 0.5; transform: skewX(-2deg); } 50% { opacity: 1; transform: skewX(2deg); } 100% { opacity: 0.7; transform: skewX(-1deg); } }
@keyframes ipm-iago { 0%, 100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(3deg); } 60% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes ipm-othello { 0%, 100% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-3px) rotate(2deg); } 80% { transform: translateX(1px) rotate(-1deg); } }
@keyframes ipm-cup { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } }
@keyframes ipm-drip { 0%, 100% { transform: translateY(0) scaleY(1); opacity: 0.7; } 50% { transform: translateY(8px) scaleY(1.4); opacity: 1; } }
@keyframes ipm-loom { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-othello-alone-doubts {
  background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 30%, #e0d0c0 0%, transparent 50%);
}
.scn-othello-alone-doubts .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #b0a090 0%, #6a5a4a 100%);
}
.scn-othello-alone-doubts .window {
  position: absolute; top: 8%; left: 10%; width: 80%; height: 50%; background: radial-gradient(ellipse at 50% 40%, #fff8f0 0%, #c0b0a0 80%); border-radius: 6% 6% 3% 3%; box-shadow: inset 0 0 30px rgba(0,0,0,0.2); animation: oad-window 12s ease-in-out infinite alternate;
}
.scn-othello-alone-doubts .mirror {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 40%; background: linear-gradient(135deg, #c8b8a8 0%, #a08870 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 0 20px rgba(0,0,0,0.3); animation: oad-mirror 8s ease-in-out infinite alternate;
}
.scn-othello-alone-doubts .figure-othello {
  position: absolute; bottom: 20%; left: 45%; width: 22px; height: 54px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oad-figure 6s ease-in-out infinite;
}
.scn-othello-alone-doubts .shadow-doubt1 {
  position: absolute; top: 30%; left: 20%; width: 60px; height: 40px; background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(12px); animation: oad-doubt1 20s linear infinite;
}
.scn-othello-alone-doubts .shadow-doubt2 {
  position: absolute; top: 50%; right: 15%; width: 50px; height: 30px; background: rgba(0,0,0,0.1); border-radius: 50%; filter: blur(10px); animation: oad-doubt2 25s linear infinite reverse;
}
.scn-othello-alone-doubts .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
}

@keyframes oad-window { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.9; transform: scale(0.98); } }
@keyframes oad-mirror { 0% { opacity: 0.9; box-shadow: 0 0 15px rgba(0,0,0,0.3); } 50% { opacity: 1; box-shadow: 0 0 30px rgba(0,0,0,0.4); } 100% { opacity: 0.85; box-shadow: 0 0 20px rgba(0,0,0,0.25); } }
@keyframes oad-figure { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(3px) rotate(-2deg); } }
@keyframes oad-doubt1 { 0% { transform: translate(0, 0) scale(1); opacity: 0.15; } 50% { transform: translate(20px, -10px) scale(1.3); opacity: 0.25; } 100% { transform: translate(0, 0) scale(1); opacity: 0.15; } }
@keyframes oad-doubt2 { 0% { transform: translate(0, 0) scale(1); opacity: 0.1; } 50% { transform: translate(-15px, 5px) scale(1.2); opacity: 0.2; } 100% { transform: translate(0, 0) scale(1); opacity: 0.1; } }

.scn-othello-contemplates-jealousy {
  background: linear-gradient(180deg, #f0d8b0 0%, #d4b080 40%, #b08a60 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 50%);
}
.scn-othello-contemplates-jealousy .bg-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0e0c0 0%, #c8a880 70%, #a08860 100%);
}
.scn-othello-contemplates-jealousy .sun {
  position: absolute; top: 8%; left: 60%; width: 60px; height: 60px; background: radial-gradient(circle, #fff8d0 0%, #f0c080 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 80px 30px rgba(240,192,128,0.5); animation: ocj-sun 15s ease-in-out infinite alternate;
}
.scn-othello-contemplates-jealousy .figure-othello {
  position: absolute; bottom: 18%; left: 42%; width: 24px; height: 58px; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ocj-figure 7s ease-in-out infinite;
}
.scn-othello-contemplates-jealousy .handkerchief {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 16px; background: linear-gradient(135deg, #e8c8a0 0%, #c8a080 100%); border-radius: 10% 20% 15% 5%; transform-origin: bottom left; animation: ocj-handkerchief 5s ease-in-out infinite;
}
.scn-othello-contemplates-jealousy .shadow-jealousy {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); animation: ocj-shadow 10s ease-in-out infinite alternate;
}
.scn-othello-contemplates-jealousy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,0.5);
}
.scn-othello-contemplates-jealousy .cloud1 {
  position: absolute; top: 12%; left: 10%; width: 90px; height: 20px; background: rgba(255,255,255,0.4); border-radius: 50%; filter: blur(6px); animation: ocj-cloud1 40s linear infinite;
}
.scn-othello-contemplates-jealousy .cloud2 {
  position: absolute; top: 25%; right: 15%; width: 70px; height: 16px; background: rgba(255,255,255,0.3); border-radius: 50%; filter: blur(5px); animation: ocj-cloud2 50s linear infinite reverse;
}

@keyframes ocj-sun { 0% { opacity: 0.9; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(0.95); } }
@keyframes ocj-figure { 0%, 100% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(2px) rotate(-2deg); } 40% { transform: translateX(-1px) rotate(1deg); } 60% { transform: translateX(3px) rotate(-1deg); } 80% { transform: translateX(-2px) rotate(2deg); } }
@keyframes ocj-handkerchief { 0%, 100% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(5deg); } }
@keyframes ocj-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.4; } }
@keyframes ocj-cloud1 { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes ocj-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-cassio-laments-reputation {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #0a0a0a 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-cassio-laments-reputation .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  animation: clr-wall 8s ease-in-out infinite;
}
.scn-cassio-laments-reputation .bg-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 70%, rgba(0,0,0,.6) 0%, transparent 70%);
  pointer-events: none;
}
.scn-cassio-laments-reputation .figure {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 160px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,.8);
  animation: clr-figure 6s ease-in-out infinite;
}
.scn-cassio-laments-reputation .hands {
  position: absolute; bottom: 45%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 40px;
  background: #0a0a0a;
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: clr-hands 4s ease-in-out infinite;
}
.scn-cassio-laments-reputation .candle {
  position: absolute; bottom: 10%; left: 30%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8c060 0%, #a08030 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -10px 30px rgba(232,192,96,.6);
  animation: clr-candle 3s ease-in-out infinite alternate;
}
.scn-cassio-laments-reputation .glow {
  position: absolute; bottom: 5%; left: 30%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(232,192,96,.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: clr-glow 3s ease-in-out infinite alternate;
}
@keyframes clr-wall { 0%{opacity:1} 50%{opacity:.95} 100%{opacity:1} }
@keyframes clr-figure { 0%{transform:translateX(-50%) translateY(0) rotate(0)} 50%{transform:translateX(-50%) translateY(-2px) rotate(2deg)} 100%{transform:translateX(-50%) translateY(0) rotate(0)} }
@keyframes clr-hands { 0%{transform:translateX(-50%) scale(1)} 50%{transform:translateX(-52%) scale(1.02)} 100%{transform:translateX(-50%) scale(1)} }
@keyframes clr-candle { 0%{transform:scaleY(1); opacity:1} 50%{transform:scaleY(.95); opacity:.8} 100%{transform:scaleY(1); opacity:1} }
@keyframes clr-glow { 0%{opacity:.6; transform:scale(1)} 50%{opacity:1; transform:scale(1.1)} 100%{opacity:.7; transform:scale(1)} }

.scn-cassio-berates-drink {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #0a0a0a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 50%);
}
.scn-cassio-berates-drink .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
}
.scn-cassio-berates-drink .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-cassio-berates-drink .table {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-cassio-berates-drink .bottle {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 -5px 10px rgba(0,0,0,.5);
  animation: cbd-bottle 2s ease-in-out infinite alternate;
}
.scn-cassio-berates-drink .figure {
  position: absolute; bottom: 20%; left: 20%;
  width: 60px; height: 120px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbd-figure 4s ease-in-out infinite;
}
.scn-cassio-berates-drink .shadow-figure {
  position: absolute; bottom: 20%; right: 10%;
  width: 100px; height: 150px;
  background: rgba(0,0,0,.5);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(8px);
  animation: cbd-shadow 4s ease-in-out infinite;
}
.scn-cassio-berates-drink .glow {
  position: absolute; top: 5%; right: 10%;
  width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(200,180,140,.1) 0%, transparent 70%);
  filter: blur(15px);
  animation: cbd-glow 8s ease-in-out infinite alternate;
}
@keyframes cbd-bottle { 0%{transform:translateX(-50%) rotate(0)} 50%{transform:translateX(-48%) rotate(3deg)} 100%{transform:translateX(-50%) rotate(-2deg)} }
@keyframes cbd-figure { 0%{transform:translateX(0) rotate(-5deg)} 50%{transform:translateX(10px) rotate(5deg)} 100%{transform:translateX(0) rotate(-3deg)} }
@keyframes cbd-shadow { 0%{opacity:.6; transform:scale(1)} 50%{opacity:.8; transform:scale(1.02)} 100%{opacity:.6; transform:scale(1)} }
@keyframes cbd-glow { 0%{opacity:.4; transform:scale(1)} 50%{opacity:.7; transform:scale(1.05)} 100%{opacity:.5; transform:scale(1)} }

.scn-iago-advises-desdemona {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 40%, #0a0a0a 100%),
              radial-gradient(ellipse at 40% 70%, #2a2a1a 0%, transparent 60%);
}
.scn-iago-advises-desdemona .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
}
.scn-iago-advises-desdemona .window {
  position: absolute; top: 10%; left: 40%;
  width: 80px; height: 100px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.7), 0 4px 8px rgba(0,0,0,.5);
  animation: iad-window 12s ease-in-out infinite alternate;
}
.scn-iago-advises-desdemona .window-light {
  position: absolute; top: 10%; left: 40%;
  width: 80px; height: 100px;
  background: radial-gradient(circle, rgba(180,160,120,.2) 0%, transparent 80%);
  filter: blur(10px);
  animation: iad-light 12s ease-in-out infinite alternate;
}
.scn-iago-advises-desdemona .figure-left {
  position: absolute; bottom: 20%; left: 15%;
  width: 50px; height: 100px;
  background: #0a0a0a;
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 50%;
  box-shadow: 0 0 10px rgba(0,0,0,.8);
  animation: iad-left 8s ease-in-out infinite;
}
.scn-iago-advises-desdemona .figure-right {
  position: absolute; bottom: 20%; right: 15%;
  width: 50px; height: 100px;
  background: #0a0a0a;
  border-radius: 40% 50% 40% 40% / 50% 60% 50% 50%;
  box-shadow: 0 0 10px rgba(0,0,0,.8);
  animation: iad-right 8s ease-in-out infinite;
}
.scn-iago-advises-desdemona .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
}
@keyframes iad-window { 0%{opacity:.8; box-shadow: inset 0 0 20px rgba(0,0,0,.7)} 50%{opacity:1; box-shadow: inset 0 0 30px rgba(0,0,0,.5)} 100%{opacity:.9; box-shadow: inset 0 0 20px rgba(0,0,0,.7)} }
@keyframes iad-light { 0%{opacity:.3; transform:scale(1)} 50%{opacity:.6; transform:scale(1.05)} 100%{opacity:.4; transform:scale(1)} }
@keyframes iad-left { 0%{transform:translateX(0) rotate(2deg)} 50%{transform:translateX(-3px) rotate(-1deg)} 100%{transform:translateX(0) rotate(2deg)} }
@keyframes iad-right { 0%{transform:translateX(0) rotate(-2deg)} 50%{transform:translateX(3px) rotate(1deg)} 100%{transform:translateX(0) rotate(-2deg)} }

.scn-iago-counsels-cassio {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 40%, #0a0a0a 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, transparent 70%);
}
.scn-iago-counsels-cassio .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
}
.scn-iago-counsels-cassio .table {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-iago-counsels-cassio .figure-left {
  position: absolute; bottom: 20%; left: 20%;
  width: 60px; height: 80px;
  background: #0a0a0a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: icc-left 8s ease-in-out infinite;
}
.scn-iago-counsels-cassio .figure-right {
  position: absolute; bottom: 20%; right: 20%;
  width: 60px; height: 80px;
  background: #0a0a0a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: icc-right 8s ease-in-out infinite;
}
.scn-iago-counsels-cassio .cup-left {
  position: absolute; bottom: 30%; left: 38%;
  width: 14px; height: 10px;
  background: #4a3a2a;
  border-radius: 0 0 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: icc-cup 6s ease-in-out infinite;
}
.scn-iago-counsels-cassio .cup-right {
  position: absolute; bottom: 30%; right: 38%;
  width: 14px; height: 10px;
  background: #4a3a2a;
  border-radius: 0 0 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: icc-cup 6s ease-in-out infinite reverse;
}
.scn-iago-counsels-cassio .glow {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(200,180,140,.15) 0%, transparent 70%);
  filter: blur(15px);
  animation: icc-glow 10s ease-in-out infinite;
}
@keyframes icc-left { 0%{transform:rotate(5deg) translateY(0)} 50%{transform:rotate(2deg) translateY(-2px)} 100%{transform:rotate(5deg) translateY(0)} }
@keyframes icc-right { 0%{transform:rotate(-5deg) translateY(0)} 50%{transform:rotate(-2deg) translateY(-2px)} 100%{transform:rotate(-5deg) translateY(0)} }
@keyframes icc-cup { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-1px) scale(1.02)} 100%{transform:translateY(0) scale(1)} }
@keyframes icc-glow { 0%{opacity:.4; transform:translateX(-50%) scale(1)} 50%{opacity:.7; transform:translateX(-50%) scale(1.05)} 100%{opacity:.5; transform:translateX(-50%) scale(1)} }

.scn-item-handkerchief-given {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-item-handkerchief-given .bg-room { position:absolute; inset:0; background:linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); opacity:0.9; }
.scn-item-handkerchief-given .wall-shadow { position:absolute; left:0; right:0; bottom:40%; height:60%; background:linear-gradient(180deg, transparent 0%, rgba(20,10,0,0.7) 100%); animation:kh1-shadow 6s ease-in-out infinite alternate; }
.scn-item-handkerchief-given .table { position:absolute; bottom:15%; left:20%; width:60%; height:10%; background:linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:4px; transform:perspective(300px) rotateX(15deg); box-shadow:0 4px 12px rgba(0,0,0,0.6); }
.scn-item-handkerchief-given .hand-left { position:absolute; bottom:25%; left:25%; width:50px; height:40px; background:radial-gradient(ellipse at 50% 70%, #c8a080 0%, #8a6040 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform:rotate(-10deg); animation:kh1-hand 3s ease-in-out infinite; }
.scn-item-handkerchief-given .handkerchief { position:absolute; bottom:30%; left:40%; width:30px; height:30px; background:linear-gradient(135deg, #c8a080 0%, #a08060 100%); border-radius:10% 20% 30% 10%; transform:rotate(15deg); animation:kh1-cloth 4s ease-in-out infinite alternate; }
.scn-item-handkerchief-given .hand-right { position:absolute; bottom:25%; right:25%; width:45px; height:38px; background:radial-gradient(ellipse at 50% 70%, #b89070 0%, #7a5030 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform:rotate(10deg); animation:kh1-hand2 3.5s ease-in-out infinite; }
.scn-item-handkerchief-given .window-light { position:absolute; top:10%; left:10%; width:30%; height:40%; background:linear-gradient(135deg, rgba(255,200,100,0.2) 0%, transparent 100%); border-radius:30% 30% 0 0; animation:kh1-window 8s ease-in-out infinite alternate; }
.scn-item-handkerchief-given .candle-glow { position:absolute; bottom:20%; left:50%; width:60px; height:60px; background:radial-gradient(circle, rgba(255,180,80,0.4) 0%, transparent 70%); animation:kh1-candle 4s ease-in-out infinite; }
@keyframes kh1-shadow { 0%{opacity:0.5}50%{opacity:0.8}100%{opacity:0.5} }
@keyframes kh1-hand { 0%{transform:rotate(-12deg) translateY(0)}50%{transform:rotate(-8deg) translateY(-2px)}100%{transform:rotate(-12deg) translateY(0)} }
@keyframes kh1-cloth { 0%{transform:rotate(10deg) scale(1)}50%{transform:rotate(18deg) scale(1.05)}100%{transform:rotate(10deg) scale(1)} }
@keyframes kh1-hand2 { 0%{transform:rotate(12deg) translateY(0)}50%{transform:rotate(8deg) translateY(-2px)}100%{transform:rotate(12deg) translateY(0)} }
@keyframes kh1-window { 0%{opacity:0.2}50%{opacity:0.5}100%{opacity:0.2} }
@keyframes kh1-candle { 0%{transform:scale(1);opacity:0.4}50%{transform:scale(1.2);opacity:0.7}100%{transform:scale(1);opacity:0.4} }

.scn-iago-exposed {
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 50%, #050510 100%), radial-gradient(ellipse at 20% 80%, #2a2a4e 0%, transparent 70%);
}
.scn-iago-exposed .bg-room { position:absolute; inset:0; background:linear-gradient(180deg, #0a0a1e 0%, #000010 100%); opacity:0.8; }
.scn-iago-exposed .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(0deg, #1a1a30 0%, #0f0f20 100%); }
.scn-iago-exposed .body { position:absolute; bottom:15%; left:40%; width:70px; height:120px; background:radial-gradient(ellipse at 50% 40%, #1a1a2e 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(30deg); animation:ex2-body 5s ease-in-out infinite; }
.scn-iago-exposed .figure-iago { position:absolute; bottom:20%; right:20%; width:50px; height:140px; background:linear-gradient(180deg, #2a2a40 0%, #0a0a1a 100%); border-radius:20% 20% 10% 10% / 50% 50% 40% 40%; transform:rotate(-5deg); animation:ex2-figure 2s ease-in-out infinite; }
.scn-iago-exposed .sword { position:absolute; bottom:30%; left:50%; width:80px; height:6px; background:linear-gradient(90deg, #808090 0%, #c0c0d0 100%); border-radius:50%; transform:rotate(-45deg); transform-origin:left center; animation:ex2-sword 3s ease-in-out infinite; }
.scn-iago-exposed .door-light { position:absolute; top:10%; right:5%; width:15%; height:80%; background:linear-gradient(135deg, rgba(200,220,255,0.15) 0%, transparent 80%); border-radius:20%; animation:ex2-door 6s ease-in-out infinite alternate; }
.scn-iago-exposed .blood-shadow { position:absolute; bottom:13%; left:38%; width:80px; height:15px; background:radial-gradient(ellipse at 50% 50%, #3a1a1a 0%, transparent 70%); border-radius:50%; animation:ex2-blood 4s ease-in-out infinite; }
@keyframes ex2-body { 0%{transform:rotate(30deg) translateY(0)}50%{transform:rotate(28deg) translateY(3px)}100%{transform:rotate(30deg) translateY(0)} }
@keyframes ex2-figure { 0%{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(-8deg) translateY(-2px)}100%{transform:rotate(-5deg) translateY(0)} }
@keyframes ex2-sword { 0%{transform:rotate(-45deg);opacity:0.7}50%{transform:rotate(-40deg);opacity:1}100%{transform:rotate(-45deg);opacity:0.7} }
@keyframes ex2-door { 0%{opacity:0.3;transform:scaleY(1)}50%{opacity:0.6;transform:scaleY(1.1)}100%{opacity:0.3;transform:scaleY(1)} }
@keyframes ex2-blood { 0%{opacity:0.4;transform:scaleX(1)}50%{opacity:0.7;transform:scaleX(1.2)}100%{opacity:0.4;transform:scaleX(1)} }

.scn-othello-collapses {
  background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 30%, #0a0500 100%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-othello-collapses .bg-dark { position:absolute; inset:0; background:linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); opacity:0.7; }
.scn-othello-collapses .spotlight { position:absolute; top:5%; left:25%; width:50%; height:70%; background:radial-gradient(ellipse at 50% 0%, rgba(255,200,100,0.15) 0%, transparent 70%); animation:oc3-spot 8s ease-in-out infinite alternate; }
.scn-othello-collapses .figure-torso { position:absolute; top:30%; left:45%; width:60px; height:100px; background:linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:30% 30% 40% 40% / 50% 50% 40% 40%; transform:rotate(10deg); transform-origin:bottom center; animation:oc3-torso 4s ease-in-out infinite; }
.scn-othello-collapses .figure-legs { position:absolute; top:55%; left:40%; width:70px; height:80px; background:linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:20% 20% 30% 30% / 60% 60% 20% 20%; transform:rotate(-20deg); transform-origin:top center; animation:oc3-legs 4s ease-in-out infinite; }
.scn-othello-collapses .shadow-ground { position:absolute; bottom:10%; left:30%; width:40%; height:10%; background:radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.8) 0%, transparent 80%); animation:oc3-shadow 5s ease-in-out infinite; }
.scn-othello-collapses .arm { position:absolute; top:35%; left:30%; width:60px; height:12px; background:linear-gradient(90deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50%; transform:rotate(-30deg); transform-origin:right center; animation:oc3-arm 3.5s ease-in-out infinite; }
.scn-othello-collapses .hand { position:absolute; top:32%; left:25%; width:20px; height:20px; background:radial-gradient(circle, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40%; transform:rotate(15deg); animation:oc3-hand 3.5s ease-in-out infinite; }
@keyframes oc3-spot { 0%{opacity:0.3;transform:scaleY(1)}50%{opacity:0.6;transform:scaleY(1.1)}100%{opacity:0.3;transform:scaleY(1)} }
@keyframes oc3-torso { 0%{transform:rotate(10deg) translateY(0)}50%{transform:rotate(15deg) translateY(5px)}100%{transform:rotate(10deg) translateY(0)} }
@keyframes oc3-legs { 0%{transform:rotate(-20deg) translateY(0)}50%{transform:rotate(-25deg) translateY(-3px)}100%{transform:rotate(-20deg) translateY(0)} }
@keyframes oc3-shadow { 0%{opacity:0.5;transform:scaleX(1)}50%{opacity:0.8;transform:scaleX(1.1)}100%{opacity:0.5;transform:scaleX(1)} }
@keyframes oc3-arm { 0%{transform:rotate(-30deg) translateX(0)}50%{transform:rotate(-35deg) translateX(5px)}100%{transform:rotate(-30deg) translateX(0)} }
@keyframes oc3-hand { 0%{transform:rotate(15deg) scale(1)}50%{transform:rotate(10deg) scale(1.05)}100%{transform:rotate(15deg) scale(1)} }

.scn-item-handkerchief-origin {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 50%, #0a0a0a 100%), radial-gradient(ellipse at 50% 40%, #3a3a2a 0%, transparent 70%);
}
.scn-item-handkerchief-origin .bg-back { position:absolute; inset:0; background:linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); opacity:0.8; }
.scn-item-handkerchief-origin .hand-left { position:absolute; bottom:30%; left:20%; width:80px; height:70px; background:radial-gradient(ellipse at 50% 70%, #6a5a4a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-15deg); animation:ko4-handl 3s ease-in-out infinite; }
.scn-item-handkerchief-origin .hand-right { position:absolute; bottom:30%; right:20%; width:80px; height:70px; background:radial-gradient(ellipse at 50% 70%, #5a4a3a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(15deg); animation:ko4-handr 3s ease-in-out infinite; }
.scn-item-handkerchief-origin .handkerchief { position:absolute; bottom:40%; left:50%; width:50px; height:50px; transform:translate(-50%,-50%); background:linear-gradient(135deg, #b8a080 0%, #8a7a5a 100%); border-radius:10% 20% 30% 10%; box-shadow:0 0 20px rgba(200,180,120,0.4); animation:ko4-cloth 4s ease-in-out infinite alternate; }
.scn-item-handkerchief-origin .glow-ring { position:absolute; bottom:38%; left:50%; width:100px; height:100px; transform:translate(-50%,-50%); background:radial-gradient(circle, rgba(255,220,150,0.3) 0%, transparent 70%); animation:ko4-glow 3s ease-in-out infinite alternate; }
.scn-item-handkerchief-origin .vignette { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,0.6) 100%); animation:ko4-vignette 5s ease-in-out infinite; }
@keyframes ko4-handl { 0%{transform:rotate(-18deg) translateY(0)}50%{transform:rotate(-12deg) translateY(-2px)}100%{transform:rotate(-18deg) translateY(0)} }
@keyframes ko4-handr { 0%{transform:rotate(18deg) translateY(0)}50%{transform:rotate(12deg) translateY(-2px)}100%{transform:rotate(18deg) translateY(0)} }
@keyframes ko4-cloth { 0%{transform:translate(-50%,-50%) rotate(10deg) scale(1)}50%{transform:translate(-50%,-50%) rotate(15deg) scale(1.05)}100%{transform:translate(-50%,-50%) rotate(10deg) scale(1)} }
@keyframes ko4-glow { 0%{opacity:0.3;transform:translate(-50%,-50%) scale(1)}50%{opacity:0.7;transform:translate(-50%,-50%) scale(1.2)}100%{opacity:0.3;transform:translate(-50%,-50%) scale(1)} }
@keyframes ko4-vignette { 0%{opacity:0.6}50%{opacity:0.8}100%{opacity:0.6} }

/* lodovico-arrives */
.scn-lodovico-arrives {
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 40%, #2a1a0a 100%), radial-gradient(ellipse at 60% 20%, #a08060 0%, transparent 60%);
}
.scn-lodovico-arrives .room-back { position: absolute; inset: 5% 5% 10% 5%; background: linear-gradient(135deg, #7a5a3a, #5a3a1a); border-radius: 2%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-lodovico-arrives .doorway-arch { position: absolute; bottom: 20%; left: 30%; width: 30%; height: 50%; background: #2a1a0a; border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.6); }
.scn-lodovico-arrives .figure-venetian { position: absolute; bottom: 20%; left: 32%; width: 10%; height: 40%; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom; animation: lar-enter 4s ease-out forwards; }
.scn-lodovico-arrives .figure-lady { position: absolute; bottom: 20%; left: 44%; width: 8%; height: 38%; background: linear-gradient(180deg, #3a2a3a, #1a1a2a); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; animation: lar-enter 4s ease-out 0.5s forwards; opacity: 0; }
.scn-lodovico-arrives .figure-attendant { position: absolute; bottom: 20%; left: 53%; width: 7%; height: 36%; background: linear-gradient(180deg, #2a3a2a, #0a1a0a); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; animation: lar-enter 4s ease-out 1s forwards; opacity: 0; }
.scn-lodovico-arrives .overhead-lamp { position: absolute; top: 5%; left: 50%; width: 12%; height: 8%; background: radial-gradient(circle, #ffd080 0%, #a06020 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,208,128,.5); animation: lar-lamp 3s ease-in-out infinite alternate; }
.scn-lodovico-arrives .shadow-cast { position: absolute; bottom: 15%; left: 25%; width: 50%; height: 5%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.4) 30%, rgba(0,0,0,.6) 50%, rgba(0,0,0,.4) 70%, transparent 100%); border-radius: 50%; animation: lar-shadow 4s ease-in-out infinite alternate; }
.scn-lodovico-arrives .trumpet-silhouette { position: absolute; bottom: 30%; left: 28%; width: 3%; height: 10%; background: #4a3a2a; border-radius: 0 50% 50% 0 / 30% 50% 50% 30%; transform: rotate(-20deg); animation: lar-trumpet 2s ease-in-out infinite; }
@keyframes lar-enter { 0% { transform: translateX(-20px) scale(0.8); opacity: 0; } 100% { transform: translateX(0) scale(1); opacity: 1; } }
@keyframes lar-lamp { 0% { opacity: 0.8; box-shadow: 0 0 30px 15px rgba(255,208,128,.4); } 50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(255,208,128,.7); } 100% { opacity: 0.9; box-shadow: 0 0 35px 18px rgba(255,208,128,.5); } }
@keyframes lar-shadow { 0% { transform: scaleX(1) translateX(0); } 100% { transform: scaleX(1.1) translateX(5px); } }
@keyframes lar-trumpet { 0%,100% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } }

/* othello-strikes-desdemona */
.scn-othello-strikes-desdemona {
  background: linear-gradient(180deg, #a08060 0%, #4a3a2a 60%, #1a100a 100%), radial-gradient(ellipse at 80% 20%, #d0b080 0%, transparent 70%);
}
.scn-othello-strikes-desdemona .room-wall-bright { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #c0a080, #806050); border-radius: 0 0 10% 10%; }
.scn-othello-strikes-desdemona .window-light { position: absolute; top: 10%; right: 15%; width: 20%; height: 30%; background: radial-gradient(ellipse, #ffd080 0%, #a06020 50%, transparent 70%); border-radius: 10%; box-shadow: 0 0 60px 30px rgba(255,208,128,.6); animation: osd-window 2s ease-in-out infinite alternate; }
.scn-othello-strikes-desdemona .figure-othello { position: absolute; bottom: 10%; left: 40%; width: 15%; height: 50%; background: linear-gradient(180deg, #2a1a1a, #0a0a0a); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: osd-strike 0.6s ease-in-out infinite; }
.scn-othello-strikes-desdemona .figure-desdemona { position: absolute; bottom: 10%; left: 55%; width: 12%; height: 45%; background: linear-gradient(180deg, #4a3a2a, #2a1a1a); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: osd-fall 0.6s ease-in-out infinite; }
.scn-othello-strikes-desdemona .arm-strike { position: absolute; bottom: 55%; left: 45%; width: 4%; height: 15%; background: #1a1a1a; border-radius: 30% 30% 0 0; transform-origin: bottom right; animation: osd-arm 0.6s ease-in-out infinite; }
.scn-othello-strikes-desdemona .shadow-strike { position: absolute; bottom: 5%; left: 30%; width: 40%; height: 8%; background: linear-gradient(90deg, transparent, rgba(0,0,0,.5), transparent); border-radius: 50%; animation: osd-shadow 0.6s ease-in-out infinite; }
.scn-othello-strikes-desdemona .gown-desdemona { position: absolute; bottom: 8%; left: 53%; width: 14%; height: 30%; background: linear-gradient(180deg, #603020, #301010); border-radius: 50% 50% 20% 20% / 30% 30% 20% 20%; animation: osd-gown 0.6s ease-in-out infinite; }
.scn-othello-strikes-desdemona .chain-broken { position: absolute; bottom: 20%; left: 58%; width: 6%; height: 2%; background: #807060; border-radius: 20%; box-shadow: 0 2px 0 0 #605040; animation: osd-chain 0.6s ease-in-out infinite; }
@keyframes osd-window { 0% { opacity: 0.9; box-shadow: 0 0 50px 20px rgba(255,208,128,.5); } 50% { opacity: 1; box-shadow: 0 0 70px 30px rgba(255,208,128,.8); } 100% { opacity: 0.85; box-shadow: 0 0 40px 15px rgba(255,208,128,.4); } }
@keyframes osd-strike { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-5deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(5deg) translateY(-2px); } }
@keyframes osd-fall { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-5px); } }
@keyframes osd-arm { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(20deg) scaleY(1.2); } }
@keyframes osd-shadow { 0%,100% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.3); opacity: 0.8; } }
@keyframes osd-gown { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } }
@keyframes osd-chain { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } }

/* emilia-placates */
.scn-emilia-placates {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 40% 60%, #4a4a5a 0%, transparent 60%);
}
.scn-emilia-placates .wall-dim { position: absolute; inset: 0 0 25% 0; background: linear-gradient(135deg, #4a4a5a, #2a2a3a); border-radius: 0 0 20% 20%; }
.scn-emilia-placates .table-wood { position: absolute; bottom: 10%; left: 20%; width: 60%; height: 15%; background: linear-gradient(180deg, #5a3a2a, #3a1a0a); border-radius: 5% 5% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-emilia-placates .candle-light { position: absolute; bottom: 30%; left: 40%; width: 4%; height: 12%; background: linear-gradient(180deg, #f0d080, #c08040); border-radius: 50% 50% 20% 20% / 10% 10% 20% 20%; box-shadow: 0 0 20px 10px rgba(255,208,128,.4); animation: emp-candle 4s ease-in-out infinite alternate; }
.scn-emilia-placates .figure-emilia { position: absolute; bottom: 10%; left: 30%; width: 12%; height: 35%; background: linear-gradient(180deg, #2a2a3a, #1a1a2a); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: emp-sway 6s ease-in-out infinite alternate; }
.scn-emilia-placates .chair-shadow { position: absolute; bottom: 5%; left: 50%; width: 15%; height: 20%; background: rgba(0,0,0,.3); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; filter: blur(4px); animation: emp-chairs 8s ease-in-out infinite alternate; }
.scn-emilia-placates .hand-gesture { position: absolute; bottom: 20%; left: 33%; width: 3%; height: 8%; background: #3a2a2a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: emp-hand 3s ease-in-out infinite; }
.scn-emilia-placates .glow-candle { position: absolute; bottom: 25%; left: 38%; width: 10%; height: 10%; background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 70%); border-radius: 50%; animation: emp-glow 4s ease-in-out infinite alternate; }
@keyframes emp-candle { 0% { opacity: 0.7; box-shadow: 0 0 15px 5px rgba(255,208,128,.3); } 50% { opacity: 1; box-shadow: 0 0 30px 15px rgba(255,208,128,.6); } 100% { opacity: 0.8; box-shadow: 0 0 20px 8px rgba(255,208,128,.4); } }
@keyframes emp-sway { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(0.5deg); } 100% { transform: translateX(-2px) rotate(-0.5deg); } }
@keyframes emp-chairs { 0%,100% { transform: scale(1); } 50% { transform: scale(0.95); } }
@keyframes emp-hand { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } }
@keyframes emp-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.9); } }

/* desdemona-woe */
.scn-desdemona-woe {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, #000010 100%), radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 70%);
}
.scn-desdemona-woe .floor-dark { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); }
.scn-desdemona-woe .wall-dark { position: absolute; inset: 5% 5% 10% 5%; background: linear-gradient(135deg, #2a2a3a, #0a0a1a); border-radius: 2%; box-shadow: inset 0 0 30px rgba(0,0,0,.7); }
.scn-desdemona-woe .table-lament { position: absolute; bottom: 8%; left: 30%; width: 40%; height: 8%; background: linear-gradient(180deg, #3a2a1a, #1a100a); border-radius: 4% 4% 2% 2%; }
.scn-desdemona-woe .book-open { position: absolute; bottom: 16%; left: 38%; width: 15%; height: 10%; background: linear-gradient(135deg, #5a4a3a, #3a2a1a); border-radius: 5% 5% 10% 10% / 10% 10% 20% 20%; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: dwo-book 6s ease-in-out infinite alternate; }
.scn-desdemona-woe .figure-desdemona-woe { position: absolute; bottom: 10%; left: 40%; width: 15%; height: 35%; background: linear-gradient(180deg, #2a1a2a, #0a0a1a); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dwo-bow 8s ease-in-out infinite alternate; }
.scn-desdemona-woe .tear-drop { position: absolute; bottom: 25%; left: 47%; width: 2%; height: 3%; background: radial-gradient(circle, #8080b0, #4040a0); border-radius: 50%; animation: dwo-tear 4s ease-in-out infinite; }
.scn-desdemona-woe .candle-dim { position: absolute; bottom: 22%; left: 60%; width: 3%; height: 10%; background: linear-gradient(180deg, #a08040, #604020); border-radius: 50% 50% 20% 20% / 10% 10% 20% 20%; box-shadow: 0 0 10px 5px rgba(160,128,64,0.3); animation: dwo-candle 5s ease-in-out infinite alternate; }
.scn-desdemona-woe .veil-hair { position: absolute; bottom: 30%; left: 42%; width: 8%; height: 12%; background: #1a0a1a; border-radius: 50% 50% 0 0 / 30% 30% 0 0; filter: blur(2px); animation: dwo-veil 6s ease-in-out infinite alternate; }
@keyframes dwo-book { 0%,100% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } }
@keyframes dwo-bow { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes dwo-tear { 0%,100% { opacity: 0; transform: translateY(0) scale(1); } 30% { opacity: 1; } 50% { opacity: 1; transform: translateY(4px) scale(1.2); } 70% { opacity: 0.5; } }
@keyframes dwo-candle { 0% { opacity: 0.6; box-shadow: 0 0 8px 3px rgba(160,128,64,0.2); } 50% { opacity: 0.8; box-shadow: 0 0 15px 6px rgba(160,128,64,0.4); } 100% { opacity: 0.5; box-shadow: 0 0 5px 2px rgba(160,128,64,0.1); } }
@keyframes dwo-veil { 0%,100% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.1); } }

.scn-iago-strategy-revealed {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: radial-gradient(ellipse at 50% 60%, #2a1a10 0%, #0a050a 70%), linear-gradient(180deg, #0a050a 0%, #1a0f1a 50%, #0a050a 100%);
}
.scn-iago-strategy-revealed .shadow-vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, #000000 100%);
  pointer-events: none;
  animation: isr-breathe 8s ease-in-out infinite alternate;
}
.scn-iago-strategy-revealed .wall-crack {
  position: absolute; bottom: 0; left: 0; right: 20%; height: 60%;
  background: linear-gradient(180deg, #1a0f1a 0%, #0a050a 100%);
  border-radius: 0 40% 0 0 / 0 80% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,.6);
}
.scn-iago-strategy-revealed .table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%);
  transform: perspective(200px) rotateX(30deg);
  box-shadow: 0 -10px 30px rgba(0,0,0,.8);
  border-radius: 4px 4px 0 0;
}
.scn-iago-strategy-revealed .candle {
  position: absolute; bottom: 22%; left: 48%; width: 8px; height: 40px; margin-left: -4px;
  background: linear-gradient(180deg, #e8d4b8 0%, #8a6a4a 50%, #4a3a2a 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: inset 0 2px 4px rgba(255,255,255,.2);
  animation: isr-drip 6s linear infinite;
}
.scn-iago-strategy-revealed .flame {
  position: absolute; bottom: calc(22% + 40px); left: 48%; width: 14px; height: 22px; margin-left: -3px;
  background: radial-gradient(circle at 50% 80%, #ffffff 0%, #ffd6a0 30%, #ff6a00 70%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 80% 80% 20% 20%;
  animation: isr-flicker 0.5s ease-in-out infinite alternate;
  box-shadow: 0 0 30px 10px rgba(255,100,0,.4);
}
.scn-iago-strategy-revealed .figure-iago {
  position: absolute; bottom: 5%; left: 30%; width: 80px; height: 150px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform: rotate(10deg) translateX(-10px);
  box-shadow: -10px 0 20px rgba(0,0,0,.5);
  animation: isr-hunch 4s ease-in-out infinite;
}
.scn-iago-strategy-revealed .hand-letter {
  position: absolute; bottom: 18%; left: 38%; width: 35px; height: 22px;
  background: linear-gradient(135deg, #e8dcc8 0%, #b8a88a 100%);
  transform: skewX(-20deg) rotate(5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.7);
  animation: isr-glint 3s ease-in-out infinite;
}
.scn-iago-strategy-revealed .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(1px 1px at 10% 20%, rgba(255,255,200,.8), transparent),
              radial-gradient(1px 1px at 30% 60%, rgba(255,255,200,.6), transparent),
              radial-gradient(1px 1px at 70% 30%, rgba(255,255,200,.7), transparent),
              radial-gradient(1px 1px at 80% 80%, rgba(255,255,200,.5), transparent);
  background-size: 200% 200%;
  animation: isr-drift 15s linear infinite;
  pointer-events: none;
}
@keyframes isr-breathe { 0%,100% { opacity: .85; } 50% { opacity: 1; } }
@keyframes isr-drip { 0% { background: linear-gradient(180deg, #e8d4b8 0%, #8a6a4a 50%, #4a3a2a 100%); } 50% { background: linear-gradient(180deg, #e8d4b8 0%, #8a6a4a 30%, #4a3a2a 100%); } 100% { background: linear-gradient(180deg, #e8d4b8 0%, #8a6a4a 50%, #4a3a2a 100%); } }
@keyframes isr-flicker { 0% { transform: scaleY(1) scaleX(1); opacity: .9; } 50% { transform: scaleY(1.2) scaleX(.8); opacity: 1; } 100% { transform: scaleY(.9) scaleX(1.1); opacity: .8; } }
@keyframes isr-hunch { 0%,100% { transform: rotate(10deg) translateX(-10px) translateY(0); } 50% { transform: rotate(13deg) translateX(-12px) translateY(-2px); } }
@keyframes isr-glint { 0%,100% { opacity: .5; box-shadow: 0 2px 4px rgba(0,0,0,.7); } 50% { opacity: 1; box-shadow: 0 0 12px 2px #fff, 0 2px 4px rgba(0,0,0,.7); } }
@keyframes isr-drift { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }

.scn-herald-proclamation {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(180deg, #4a90d9 0%, #87ceeb 40%, #f5d6a8 80%, #f5a623 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 70%);
}
.scn-herald-proclamation .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6aafe6 0%, transparent 100%);
  animation: hp-breathe 12s ease-in-out infinite alternate;
}
.scn-herald-proclamation .sun {
  position: absolute; top: 8%; left: 60%; width: 70px; height: 70px;
  background: radial-gradient(circle, #ffffff 0%, #f5d6a8 40%, #f5a623 80%, transparent 100%);
  border-radius: 50%;
  animation: hp-pulse 6s ease-in-out infinite;
  box-shadow: 0 0 80px 20px rgba(245,166,35,.4);
}
.scn-herald-proclamation .clouds {
  position: absolute; top: 15%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(255,255,255,.7) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: hp-float 25s linear infinite;
}
.scn-herald-proclamation .building-bg {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #d0b89a 0%, #a08060 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.2);
}
.scn-herald-proclamation .herald-figure {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 130px; margin-left: -20px;
  background: linear-gradient(180deg, #3a3030 0%, #1a1515 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hp-sway 4s ease-in-out infinite;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-herald-proclamation .scroll {
  position: absolute; bottom: 55%; left: 45%; width: 60px; height: 28px; margin-left: -10px;
  background: linear-gradient(135deg, #f8f0e0 0%, #d0c0a0 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  transform: rotate(-6deg) scaleY(0.9);
  animation: hp-unfurl 3s ease-in-out infinite alternate;
}
.scn-herald-proclamation .crowd-figures {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 40px;
  background: repeating-linear-gradient(90deg, #2a2520 0px, #2a2520 6px, transparent 8px, transparent 14px);
  animation: hp-sway 5s ease-in-out infinite 0.5s;
}
.scn-herald-proclamation .confetti {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: repeating-linear-gradient(45deg, #f5a623 0px, #f5a623 4px, transparent 6px, transparent 20px),
              repeating-linear-gradient(-45deg, #c8553d 0px, #c8553d 3px, transparent 5px, transparent 15px);
  background-size: 100px 100px, 80px 80px;
  animation: hp-fall 4s linear infinite;
  pointer-events: none;
  opacity: .6;
}
@keyframes hp-breathe { 0%,100% { opacity: .8; } 50% { opacity: 1; } }
@keyframes hp-pulse { 0%,100% { transform: scale(1); box-shadow: 0 0 60px 15px rgba(245,166,35,.4); } 50% { transform: scale(1.05); box-shadow: 0 0 100px 25px rgba(245,214,168,.6); } }
@keyframes hp-float { 0% { transform: translateX(-20%); } 100% { transform: translateX(120%); } }
@keyframes hp-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes hp-unfurl { 0% { transform: rotate(-6deg) scaleY(.85); } 50% { transform: rotate(-3deg) scaleY(1.05); } 100% { transform: rotate(-6deg) scaleY(.95); } }
@keyframes hp-fall { 0% { transform: translateY(-10%); } 100% { transform: translateY(100%); } }

.scn-herald-feasting-declared {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(180deg, #c9a86a 0%, #e8d4b8 40%, #f0e4d0 100%), radial-gradient(ellipse at 50% 50%, #fff8e8 0%, transparent 70%);
}
.scn-herald-feasting-declared .arch-frame {
  position: absolute; inset: 0;
  border: 30px solid #4a3a2a;
  box-shadow: inset 0 0 40px rgba(0,0,0,.4), 0 0 0 15px #2a1a0a;
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  pointer-events: none;
  z-index: 5;
}
.scn-herald-feasting-declared .courtyard-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e4d0 0%, #d0b89a 70%, #b09070 100%);
  z-index: 1;
}
.scn-herald-feasting-declared .ivy {
  position: absolute; top: 0; left: 5%; right: 5%; height: 70px;
  background: linear-gradient(180deg, #4a7a3a 0%, #2a5a1a 40%, transparent 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  filter: blur(2px);
  animation: hfd-sway 6s ease-in-out infinite;
  z-index: 2;
}
.scn-herald-feasting-declared .fountain {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 90px; margin-left: -40px;
  background: linear-gradient(180deg, #a0b8c8 0%, #6a8a9a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 -4px 20px rgba(255,255,255,.6);
  z-index: 3;
  animation: hfd-sparkle 4s ease-in-out infinite;
}
.scn-herald-feasting-declared .feast-table {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 25px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  z-index: 4;
}
.scn-herald-feasting-declared .celebrants {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 70px;
  background: repeating-linear-gradient(90deg, #3a3030 0px, #3a3030 8px, transparent 10px, transparent 18px);
  mask-image: linear-gradient(180deg, transparent 0%, #000 100%);
  animation: hfd-dance 3s ease-in-out infinite alternate;
  z-index: 4;
}
.scn-herald-feasting-declared .banner-l {
  position: absolute; top: 12%; left: 12%; width: 16px; height: 70px;
  background: linear-gradient(180deg, #c8553d 0%, #8a2a1a 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: 2px 4px 8px rgba(0,0,0,.3);
  transform-origin: top center;
  animation: hfd-banner-sway 3.5s ease-in-out infinite;
  z-index: 6;
}
.scn-herald-feasting-declared .banner-r {
  position: absolute; top: 15%; right: 15%; width: 16px; height: 55px;
  background: linear-gradient(180deg, #c99a3b 0%, #7a5a1a 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: -2px 4px 8px rgba(0,0,0,.3);
  transform-origin: top center;
  animation: hfd-banner-sway 4s ease-in-out infinite .5s;
  z-index: 6;
}
@keyframes hfd-sway { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes hfd-sparkle { 0%,100% { opacity: .8; box-shadow: 0 -4px 15px rgba(255,255,255,.4); } 50% { opacity: 1; box-shadow: 0 -4px 30px rgba(255,255,255,.8); } }
@keyframes hfd-dance { 0% { transform: translateY(0) translateX(0); } 50% { transform: translateY(-2px) translateX(1px); } 100% { transform: translateY(0) translateX(-1px); } }
@keyframes hfd-banner-sway { 0%,100% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } }

.scn-othello-departs-for-watch {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(180deg, #e8eaed 0%, #c5c9ce 50%, #8a9aa8 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 80%);
}
.scn-othello-departs-for-watch .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d0d8e0 0%, #aab2ba 100%);
  animation: odw-breathe 10s ease-in-out infinite alternate;
}
.scn-othello-departs-for-watch .pillar-left {
  position: absolute; bottom: 0; left: 15%; width: 30px; height: 85%;
  background: linear-gradient(90deg, #8a9aa8 0%, #c5c9ce 40%, #8a9aa8 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 4px 0 15px rgba(0,0,0,.1);
  z-index: 2;
}
.scn-othello-departs-for-watch .pillar-right {
  position: absolute; bottom: 0; right: 15%; width: 30px; height: 85%;
  background: linear-gradient(90deg, #8a9aa8 0%, #c5c9ce 40%, #8a9aa8 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -4px 0 15px rgba(0,0,0,.1);
  z-index: 2;
}
.scn-othello-departs-for-watch .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c5c9ce 0%, #8a9aa8 100%);
  box-shadow: inset 0 15px 30px rgba(0,0,0,.15);
  background-size: 200% 200%;
  animation: odw-shimmer 12s ease-in-out infinite;
  z-index: 1;
}
.scn-othello-departs-for-watch .window-arch {
  position: absolute; bottom: 30%; left: 50%; width: 140px; height: 180px; margin-left: -70px;
  background: linear-gradient(180deg, #ffffff 0%, #d0d8e0 100%);
  border-radius: 70px 70px 0 0 / 90px 90px 0 0;
  box-shadow: inset 0 0 60px rgba(255,255,255,.9), 0 0 60px rgba(255,255,255,.3);
  z-index: 0;
}
.scn-othello-departs-for-watch .othello-figure {
  position: absolute; bottom: 12%; left: 34%; width: 45px; height: 130px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: -4px 0 12px rgba(0,0,0,.2);
  animation: odw-stand 6s ease-in-out infinite;
  z-index: 3;
}
.scn-othello-departs-for-watch .cassio-figure {
  position: absolute; bottom: 12%; left: 52%; width: 35px; height: 115px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: -2px 0 8px rgba(0,0,0,.2);
  animation: odw-stand 6s ease-in-out infinite .3s;
  z-index: 3;
}
.scn-othello-departs-for-watch .light-beam {
  position: absolute; top: -10%; left: 50%; width: 250px; height: 130%; margin-left: -125px;
  background: linear-gradient(180deg, rgba(255,255,255,.35) 0%, rgba(255,255,255,.1) 40%, transparent 100%);
  transform: skewX(-12deg);
  animation: odw-ray 8s ease-in-out infinite alternate;
  z-index: 4;
  pointer-events: none;
}
@keyframes odw-breathe { 0%,100% { opacity: .9; } 50% { opacity: 1; } }
@keyframes odw-shimmer { 0% { background-position: 0% 0%; } 50% { background-position: 100% 0%; } 100% { background-position: 0% 0%; } }
@keyframes odw-stand { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(.5deg); } }
@keyframes odw-ray { 0% { transform: skewX(-12deg) translateX(-15px); opacity: .7; } 50% { transform: skewX(-6deg) translateX(0); opacity: 1; } 100% { transform: skewX(-18deg) translateX(15px); opacity: .8; } }

.scn-rousing-brabantio-plan {
  background: linear-gradient(180deg, #0f0f2a 0%, #1a1a3e 40%, #0a0a1a 80%), radial-gradient(ellipse at 70% 80%, #2a1a3a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-rousing-brabantio-plan .sky {
  position: absolute;
  inset: 0 0 30% 0;
  background:
    radial-gradient(circle at 15% 20%, rgba(255,255,255,0.3) 1px, transparent 1px),
    radial-gradient(circle at 35% 10%, rgba(255,255,255,0.2) 1px, transparent 1px),
    radial-gradient(circle at 55% 30%, rgba(255,255,255,0.15) 1px, transparent 1px),
    radial-gradient(circle at 80% 15%, rgba(255,255,255,0.25) 1px, transparent 1px),
    radial-gradient(circle at 90% 40%, rgba(255,255,255,0.1) 1px, transparent 1px),
    linear-gradient(180deg, transparent 0%, #0a0a1a 80%);
  background-size: 200px 200px, 150px 150px, 180px 180px, 120px 120px, 250px 250px, 100% 100%;
  animation: rbp-sky 8s ease-in-out infinite alternate;
}
.scn-rousing-brabantio-plan .moon {
  position: absolute;
  top: 12%;
  left: 65%;
  width: 28px;
  height: 28px;
  background: radial-gradient(circle at 30% 30%, #e8e0c0 0%, #b0a080 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200,180,120,0.3);
  animation: rbp-moon 20s ease-in-out infinite alternate;
}
.scn-rousing-brabantio-plan .house {
  position: absolute;
  bottom: 20%;
  right: 10%;
  width: 130px;
  height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 6% 6% 3% 3% / 8% 8% 3% 3%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.7), 0 8px 16px rgba(0,0,0,0.5);
  transform: scale(1);
}
.scn-rousing-brabantio-plan .window {
  position: absolute;
  bottom: 25%;
  right: 18%;
  width: 30px;
  height: 40px;
  background: radial-gradient(circle, #f0c868 0%, #d08830 50%, #802010 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 30px 8px #d08830, 0 0 60px 16px rgba(200,120,40,0.4);
  animation: rbp-window 3s ease-in-out infinite alternate;
}
.scn-rousing-brabantio-plan .figure1 {
  position: absolute;
  bottom: 18%;
  left: 25%;
  width: 22px;
  height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #050510 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: rbp-figure1 4s ease-in-out infinite;
}
.scn-rousing-brabantio-plan .figure2 {
  position: absolute;
  bottom: 17%;
  left: 35%;
  width: 20px;
  height: 44px;
  background: linear-gradient(180deg, #20202e 0%, #08081a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rbp-figure2 5s ease-in-out infinite;
}
.scn-rousing-brabantio-plan .lantern {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 8px;
  height: 8px;
  background: #ffd080;
  border-radius: 50%;
  box-shadow: 0 0 18px 4px #ffd080, 0 0 36px 10px rgba(255,200,100,0.4);
  animation: rbp-lantern 3s ease-in-out infinite alternate;
}
@keyframes rbp-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes rbp-moon {
  0% { transform: translate(0, 0) scale(1); opacity: 0.8; }
  50% { transform: translate(5px, -3px) scale(1.02); opacity: 1; }
  100% { transform: translate(-2px, 2px) scale(0.98); opacity: 0.85; }
}
@keyframes rbp-window {
  0% { box-shadow: 0 0 20px 4px #d08830, 0 0 40px 10px rgba(200,120,40,0.3); opacity: 0.7; }
  50% { box-shadow: 0 0 40px 12px #f0c868, 0 0 80px 20px rgba(240,200,104,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px #d08830, 0 0 50px 12px rgba(200,120,40,0.35); opacity: 0.75; }
}
@keyframes rbp-figure1 {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(15px) translateY(-4px) rotate(-1deg); }
  75% { transform: translateX(8px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes rbp-figure2 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-5px) translateY(-1px) rotate(1deg); }
  60% { transform: translateX(-10px) translateY(-3px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes rbp-lantern {
  0% { transform: translate(0, 0) rotate(-4deg); }
  50% { transform: translate(2px, -2px) rotate(4deg); box-shadow: 0 0 24px 8px #ffd080, 0 0 48px 14px rgba(255,200,100,0.5); }
  100% { transform: translate(0, 0) rotate(0deg); box-shadow: 0 0 18px 4px #ffd080, 0 0 36px 10px rgba(255,200,100,0.4); }
}

.scn-rousing-brabantio-plan {
  background:
    linear-gradient(180deg, #0f0a1a 0%, #1a1124 30%, #2a1a2e 60%, #3a2a1a 85%, #4a3a2a 100%),
    radial-gradient(ellipse at 70% 0%, #2a1a2e 0%, transparent 60%);
}
.scn-rousing-brabantio-plan .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0f0a1a 0%, #1a1124 40%, transparent 100%);
  animation: rbp-sky 12s ease-in-out infinite alternate;
}
.scn-rousing-brabantio-plan .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0f0a0a 100%);
  border-radius: 60% 60% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: rbp-ground 8s ease-in-out infinite alternate;
}
.scn-rousing-brabantio-plan .building {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5), inset 0 2px 4px rgba(100,80,60,.2);
  transform: perspective(300px) rotateX(2deg);
  animation: rbp-build 10s ease-in-out infinite;
}
.scn-rousing-brabantio-plan .door {
  position: absolute; bottom: 30%; left: 38%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a120a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 8px rgba(0,0,0,.8);
}
.scn-rousing-brabantio-plan .figure {
  position: absolute; bottom: 28%; left: 55%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rbp-walk 4s ease-in-out infinite;
}
.scn-rousing-brabantio-plan .lantern {
  position: absolute; bottom: 30%; left: 55%; width: 6px; height: 8px;
  background: radial-gradient(circle, #e8b060 0%, #b07030 100%);
  border-radius: 30%;
  box-shadow: 0 0 6px 2px #b07030;
  animation: rbp-lantern 3s ease-in-out infinite alternate;
}
.scn-rousing-brabantio-plan .lantern-glow {
  position: absolute; bottom: 28%; left: 54%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(200,140,60,.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: rbp-glow 3s ease-in-out infinite alternate;
}
.scn-rousing-brabantio-plan .cloud {
  position: absolute; top: 15%; right: 10%; width: 70px; height: 14px;
  background: linear-gradient(180deg, rgba(40,30,20,.4) 0%, rgba(20,15,10,.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: rbp-drift 50s linear infinite;
}

@keyframes rbp-sky {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .75; }
}
@keyframes rbp-ground {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes rbp-build {
  0%,100% { transform: perspective(300px) rotateX(2deg) translateY(0); }
  50% { transform: perspective(300px) rotateX(2deg) translateY(-3px); }
}
@keyframes rbp-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(24px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0); }
}
@keyframes rbp-lantern {
  0% { box-shadow: 0 0 6px 2px #b07030, 0 0 12px 4px rgba(176,112,48,.3); opacity: .8; }
  50% { box-shadow: 0 0 14px 6px #d09040, 0 0 28px 10px rgba(208,144,64,.5); opacity: 1; }
  100% { box-shadow: 0 0 8px 3px #b07030, 0 0 16px 6px rgba(176,112,48,.35); opacity: .85; }
}
@keyframes rbp-glow {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: .7; transform: scale(1.05); }
}
@keyframes rbp-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.dark { position: absolute; pointer-events: none; }
.hall { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.sd-cloud { position: absolute; pointer-events: none; }
.wave { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-council-chamber-brabantio-grief { background: linear-gradient(180deg, #d4a373 0%, #8b5e3c 50%, #3e2723 100%), radial-gradient(ellipse at 50% 30%, #f5d6b3 0%, transparent 60%); }
.scn-council-chamber-brabantio-grief .chamber-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e6cba8 0%, #a67b5b 100%); clip-path: polygon(0 0, 100% 0, 100% 70%, 0 70%); animation: bc1-sway 12s ease-in-out infinite alternate; }
.scn-council-chamber-brabantio-grief .table { position:absolute; bottom:25%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #7a5230 0%, #4a3018 100%); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.6); transform: perspective(600px) rotateX(15deg); }
.scn-council-chamber-brabantio-grief .figure-brabantio { position:absolute; bottom:30%; left:35%; width:14%; height:30%; background: linear-gradient(180deg, #1a0f0a 0%, #2b1a0f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bc1-slump 6s ease-in-out infinite; }
.scn-council-chamber-brabantio-grief .letter { position:absolute; bottom:35%; left:45%; width:10%; height:4%; background: #f5e6c8; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); transform: rotate(-5deg); animation: bc1-tremble 3s ease-in-out infinite; }
.scn-council-chamber-brabantio-grief .candle { position:absolute; bottom:28%; left:50%; width:3%; height:10%; background: linear-gradient(180deg, #f5d6b3 0%, #c9a06e 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,0.5); }
.scn-council-chamber-brabantio-grief .candle-flame { position:absolute; bottom:37%; left:50%; width:2%; height:4%; background: radial-gradient(circle, #ffd080 0%, #ffb040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 24px 6px #ffb040, 0 0 48px 12px rgba(255,176,64,0.4); animation: bc1-flame 1.2s ease-in-out infinite alternate; }
.scn-council-chamber-brabantio-grief .shadow { position:absolute; bottom:20%; left:20%; width:60%; height:10%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 100%); filter: blur(6px); animation: bc1-flicker 4s ease-in-out infinite; }
@keyframes bc1-sway { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(-2px) } }
@keyframes bc1-slump { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(4px) rotate(3deg) } 50% { transform: translateY(2px) rotate(-1deg) } 75% { transform: translateY(6px) rotate(4deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bc1-tremble { 0% { transform: rotate(-5deg) translateX(0) } 25% { transform: rotate(-3deg) translateX(1px) } 50% { transform: rotate(-6deg) translateX(-1px) } 75% { transform: rotate(-2deg) translateX(2px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes bc1-flame { 0% { transform: scaleY(0.8) translateY(0); opacity:0.9 } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.9) translateY(0); opacity:0.8 } }
@keyframes bc1-flicker { 0% { opacity:0.6 } 50% { opacity:0.3 } 100% { opacity:0.5 } }

.scn-council-chamber-othello-speaks { background: linear-gradient(180deg, #d4a373 0%, #8b5e3c 50%, #3e2723 100%), radial-gradient(ellipse at 50% 30%, #f5d6b3 0%, transparent 60%); }
.scn-council-chamber-othello-speaks .chamber-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e6cba8 0%, #a67b5b 100%); clip-path: polygon(0 0, 100% 0, 100% 70%, 0 70%); animation: bc2-drift 15s ease-in-out infinite alternate; }
.scn-council-chamber-othello-speaks .podium { position:absolute; bottom:10%; left:45%; width:10%; height:15%; background: linear-gradient(180deg, #7a5230 0%, #4a3018 100%); border-radius: 4px 4px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.6); transform: perspective(400px) rotateX(10deg); }
.scn-council-chamber-othello-speaks .figure-othello { position:absolute; bottom:28%; left:42%; width:16%; height:40%; background: linear-gradient(180deg, #2b1a0f 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bc2-speak 5s ease-in-out infinite; }
.scn-council-chamber-othello-speaks .scroll { position:absolute; bottom:45%; left:35%; width:8%; height:4%; background: #f5e6c8; border-radius: 2px; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: bc2-roll 8s ease-in-out infinite; }
.scn-council-chamber-othello-speaks .torch { position:absolute; bottom:20%; left:55%; width:3%; height:12%; background: linear-gradient(180deg, #c9a06e 0%, #8b5e3c 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,0.5); }
.scn-council-chamber-othello-speaks .torch::after { content:""; position:absolute; top:-10%; left:20%; width:60%; height:30%; background: radial-gradient(circle, #ffd080 0%, #ffb040 50%, transparent 100%); border-radius:50%; animation: bc2-flame 1.5s ease-in-out infinite alternate; }
.scn-council-chamber-othello-speaks .banner { position:absolute; top:10%; right:10%; width:12%; height:20%; background: linear-gradient(180deg, #a0461a 0%, #702243 100%); border-radius: 2px; transform-origin: top center; animation: bc2-wind 10s ease-in-out infinite; }
@keyframes bc2-drift { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(2px) } }
@keyframes bc2-speak { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bc2-roll { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(12deg) translateX(2px) } 100% { transform: rotate(15deg) translateX(0) } }
@keyframes bc2-flame { 0% { transform: scaleY(0.8) translateY(0); opacity:0.9 } 50% { transform: scaleY(1.3) translateY(-3px); opacity:1 } 100% { transform: scaleY(0.9) translateY(0); opacity:0.8 } }
@keyframes bc2-wind { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }

.scn-council-chamber-othello-defense { background: linear-gradient(180deg, #e3d5c8 0%, #c9a06e 50%, #8b5e3c 100%), radial-gradient(ellipse at 50% 20%, #f5e6c8 0%, transparent 60%); }
.scn-council-chamber-othello-defense .chamber-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f5e6c8 0%, #d4a373 100%); clip-path: polygon(0 0, 100% 0, 100% 70%, 0 70%); animation: bc3-breathe 20s ease-in-out infinite alternate; }
.scn-council-chamber-othello-defense .map-table { position:absolute; bottom:15%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #7a5230 0%, #4a3018 100%); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.3); transform: perspective(800px) rotateX(10deg); }
.scn-council-chamber-othello-defense .figure-othello { position:absolute; bottom:30%; left:40%; width:20%; height:45%; background: linear-gradient(180deg, #2b1a0f 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bc3-gesture 8s ease-in-out infinite; }
.scn-council-chamber-othello-defense .helmet { position:absolute; bottom:55%; left:50%; width:10%; height:8%; background: linear-gradient(180deg, #8b5e3c 0%, #5a3a1e 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); transform: rotate(-10deg); animation: bc3-gleam 6s ease-in-out infinite; }
.scn-council-chamber-othello-defense .shield { position:absolute; bottom:50%; left:30%; width:8%; height:12%; background: radial-gradient(circle, #c9a06e 0%, #8b5e3c 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); transform: rotate(5deg); animation: bc3-shield 10s ease-in-out infinite; }
.scn-council-chamber-othello-defense .scroll-open { position:absolute; bottom:40%; left:55%; width:12%; height:4%; background: #f5e6c8; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); transform: rotate(2deg); }
.scn-council-chamber-othello-defense .compass { position:absolute; bottom:35%; left:20%; width:5%; height:5%; background: radial-gradient(circle, #d4a373 0%, #8b5e3c 100%); border-radius:50%; border: 1px solid #5a3a1e; animation: bc3-point 12s linear infinite; }
@keyframes bc3-breathe { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes bc3-gesture { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bc3-gleam { 0% { box-shadow: 0 4px 8px rgba(0,0,0,0.4) } 50% { box-shadow: 0 4px 16px rgba(255,255,255,0.3) } 100% { box-shadow: 0 4px 8px rgba(0,0,0,0.4) } }
@keyframes bc3-shield { 0% { transform: rotate(5deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(5deg) } }
@keyframes bc3-point { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

.scn-council-chamber-brabantio-objects { background: linear-gradient(180deg, #d4a373 0%, #8b5e3c 50%, #3e2723 100%), radial-gradient(ellipse at 50% 30%, #f5d6b3 0%, transparent 60%); }
.scn-council-chamber-brabantio-objects .chamber-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e6cba8 0%, #a67b5b 100%); clip-path: polygon(0 0, 100% 0, 100% 70%, 0 70%); animation: bc4-shudder 14s ease-in-out infinite alternate; }
.scn-council-chamber-brabantio-objects .dais { position:absolute; bottom:12%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #7a5230 0%, #4a3018 100%); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.6); transform: perspective(500px) rotateX(10deg); }
.scn-council-chamber-brabantio-objects .figure-brabantio { position:absolute; bottom:25%; left:35%; width:18%; height:38%; background: linear-gradient(180deg, #1a0f0a 0%, #2b1a0f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bc4-accuse 4s ease-in-out infinite; }
.scn-council-chamber-brabantio-objects .staff { position:absolute; bottom:30%; left:42%; width:4%; height:45%; background: linear-gradient(180deg, #5a3a1e 0%, #3e2723 100%); border-radius: 20%; transform: rotate(15deg); box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: bc4-staff 5s ease-in-out infinite; }
.scn-council-chamber-brabantio-objects .broken-chain { position:absolute; bottom:45%; left:50%; width:12%; height:4%; background: transparent; border-bottom: 2px dashed #705636; animation: bc4-chain 3s ease-in-out infinite; }
.scn-council-chamber-brabantio-objects .shadow-stretch { position:absolute; bottom:10%; left:10%; width:80%; height:15%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 100%); filter: blur(8px); animation: bc4-stretch 7s ease-in-out infinite; }
@keyframes bc4-shudder { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(-3px) } }
@keyframes bc4-accuse { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-4px) rotate(5deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bc4-staff { 0% { transform: rotate(15deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(15deg) } }
@keyframes bc4-chain { 0% { opacity:1 } 50% { opacity:0.4 } 100% { opacity:1 } }
@keyframes bc4-stretch { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }

/* ---------- council-chamber-othello-requests (calm, bright-interior) ---------- */
.scn-council-chamber-othello-requests {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8d5b0 40%, #d4c09a 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e8 0%, #d4c09a 80%);
}
.scn-council-chamber-othello-requests .chamber-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #c9b692 0%, #b8a07a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);
}
.scn-council-chamber-othello-requests .dais {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 25%;
  background: linear-gradient(180deg, #a08765 0%, #8b7355 100%);
  border-radius: 8% 8% 0 0 / 15% 15% 0 0;
  box-shadow: 0 8px 15px rgba(0,0,0,0.2);
  animation: req-dais 10s ease-in-out infinite alternate;
}
.scn-council-chamber-othello-requests .duke-profile {
  position: absolute; bottom: 25%; left: 38%; width: 30px; height: 55px;
  background: linear-gradient(90deg, #4a3728 0%, #3a2a1e 100%);
  border-radius: 50% 20% 40% 40% / 60% 30% 40% 40%;
  transform: rotate(5deg);
  animation: req-duke 6s ease-in-out infinite alternate;
}
.scn-council-chamber-othello-requests .othello-silhouette {
  position: absolute; bottom: 20%; left: 52%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2e1f14 0%, #1a100a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: req-othello 4s ease-in-out infinite;
}
.scn-council-chamber-othello-requests .chamber-window {
  position: absolute; top: 10%; right: 8%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #b8d8f0 0%, #8ab4d8 100%);
  border: 4px solid #5a4a3a;
  border-radius: 10%;
  opacity: 0.7;
  animation: req-window 20s ease-in-out infinite alternate;
}
.scn-council-chamber-othello-requests .chamber-lantern {
  position: absolute; top: 30%; left: 15%; width: 12px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #b88a40 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,0.6);
  animation: req-lantern 3s ease-in-out infinite alternate;
}
.scn-council-chamber-othello-requests .chamber-column {
  position: absolute; bottom: 10%; left: 22%; width: 14px; height: 60%;
  background: linear-gradient(180deg, #c5b290 0%, #a88d6a 100%);
  border-radius: 10%;
  box-shadow: 2px 0 5px rgba(0,0,0,0.1);
  animation: req-column 15s ease-in-out infinite alternate;
}

@keyframes req-dais { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes req-duke { 0% { transform: rotate(4deg) scaleX(1); } 50% { transform: rotate(6deg) scaleX(1.02); } 100% { transform: rotate(5deg) scaleX(1); } }
@keyframes req-othello { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(1px) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes req-window { 0% { opacity: 0.6; filter: brightness(1); } 50% { opacity: 0.8; filter: brightness(1.1); } 100% { opacity: 0.65; filter: brightness(0.95); } }
@keyframes req-lantern { 0% { box-shadow: 0 0 15px 4px rgba(255,208,128,0.5); } 50% { box-shadow: 0 0 25px 8px rgba(255,208,128,0.8); } 100% { box-shadow: 0 0 20px 6px rgba(255,208,128,0.6); } }
@keyframes req-column { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(0.98) translateY(1px); } }

/* ---------- council-chamber-othello-tale (warm, bright-interior) ---------- */
.scn-council-chamber-othello-tale {
  background:
    linear-gradient(180deg, #f7e1b8 0%, #eccf9e 40%, #dbb87b 100%),
    radial-gradient(ellipse at 30% 50%, #ffefd5 0%, #dbb87b 80%);
}
.scn-council-chamber-othello-tale .tale-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #b58d5a 0%, #a87a47 100%);
  clip-path: polygon(0 0, 100% 0, 100% 80%, 0 100%);
}
.scn-council-chamber-othello-tale .tale-othello {
  position: absolute; bottom: 20%; left: 45%; width: 32px; height: 58px;
  background: linear-gradient(180deg, #2e1f14 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: t1-othello 4s ease-in-out infinite;
}
.scn-council-chamber-othello-tale .tale-chair {
  position: absolute; bottom: 18%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6b4c31 0%, #4a3320 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.3);
  animation: t1-chair 8s ease-in-out infinite alternate;
}
.scn-council-chamber-othello-tale .tale-candle {
  position: absolute; top: 40%; left: 55%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b888 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 15px 4px #ffb84d;
  animation: t1-candle 3s ease-in-out infinite alternate;
}
.scn-council-chamber-othello-tale .tale-tapestry {
  position: absolute; top: 5%; left: 10%; width: 70px; height: 100px;
  background: linear-gradient(180deg, #8b3a3a 0%, #5e1a1d 100%);
  border-radius: 5% 5% 0 0;
  clip-path: polygon(0 0, 100% 0, 95% 100%, 5% 100%);
  animation: t1-tapestry 12s ease-in-out infinite alternate;
}
.scn-council-chamber-othello-tale .tale-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #9e845a 0%, #7a653f 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}

@keyframes t1-othello { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(3deg); } 50% { transform: translateY(2px) rotate(-2deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes t1-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(2px) rotate(-1deg); } }
@keyframes t1-candle { 0% { box-shadow: 0 0 12px 3px #ffb84d; opacity: 0.9; } 50% { box-shadow: 0 0 20px 6px #ffb84d; opacity: 1; } 100% { box-shadow: 0 0 14px 4px #ffb84d; opacity: 0.85; } }
@keyframes t1-tapestry { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.97); } }

/* ---------- council-chamber-othello-tale-2 (warm, bright-interior) ---------- */
.scn-council-chamber-othello-tale-2 {
  background:
    linear-gradient(180deg, #fae3bc 0%, #ebce9a 40%, #dabb7d 100%),
    radial-gradient(ellipse at 70% 40%, #fff4e0 0%, #dabb7d 80%);
}
.scn-council-chamber-othello-tale-2 .tale2-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c09f74 0%, #a88359 100%);
  clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);
}
.scn-council-chamber-othello-tale-2 .tale2-othello {
  position: absolute; bottom: 20%; left: 40%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #2e1f14 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: t2-othello 3.5s ease-in-out infinite;
}
.scn-council-chamber-othello-tale-2 .tale2-duke {
  position: absolute; bottom: 25%; left: 25%; width: 28px; height: 50px;
  background: linear-gradient(90deg, #5a4535 0%, #3d2d20 100%);
  border-radius: 50% 30% 40% 40% / 60% 40% 40% 40%;
  transform: rotate(-5deg);
  animation: t2-duke 5s ease-in-out infinite alternate;
}
.scn-council-chamber-othello-tale-2 .tale2-table {
  position: absolute; bottom: 15%; left: 30%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #7a5d3a 0%, #5e4528 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 5px 10px rgba(0,0,0,0.2);
}
.scn-council-chamber-othello-tale-2 .tale2-scroll {
  position: absolute; bottom: 28%; left: 40%; width: 20px; height: 14px;
  background: linear-gradient(90deg, #f5e6c8 0%, #d4b888 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-15deg);
  animation: t2-scroll 6s ease-in-out infinite alternate;
}
.scn-council-chamber-othello-tale-2 .tale2-candle {
  position: absolute; top: 30%; left: 60%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #ffe6a0 0%, #d4a040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 18px 5px #ffb84d;
  animation: t2-candle 3s ease-in-out infinite alternate;
}

@keyframes t2-othello { 0% { transform: translateY(0) rotate(0deg) scaleX(1); } 20% { transform: translateY(-6px) rotate(4deg) scaleX(1.05); } 40% { transform: translateY(2px) rotate(-2deg) scaleX(1); } 60% { transform: translateY(-4px) rotate(3deg) scaleX(1.02); } 80% { transform: translateY(1px) rotate(-1deg) scaleX(1); } 100% { transform: translateY(0) rotate(0deg) scaleX(1); } }
@keyframes t2-duke { 0% { transform: rotate(-6deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(1px); } }
@keyframes t2-scroll { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } 100% { transform: rotate(-18deg) translateY(2px); } }
@keyframes t2-candle { 0% { box-shadow: 0 0 14px 3px #ffb84d; opacity: 0.85; } 50% { box-shadow: 0 0 22px 7px #ffb84d; opacity: 1; } 100% { box-shadow: 0 0 16px 4px #ffb84d; opacity: 0.9; } }

/* ---------- council-chamber-othello-tale-3 (warm, bright-interior) ---------- */
.scn-council-chamber-othello-tale-3 {
  background:
    linear-gradient(180deg, #f8e4c2 0%, #e8d0a8 40%, #d4bc94 100%),
    radial-gradient(ellipse at 40% 60%, #fff5e0 0%, #d4bc94 80%);
}
.scn-council-chamber-othello-tale-3 .tale3-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #b69068 0%, #a07850 100%);
  clip-path: polygon(0 0, 100% 0, 100% 80%, 0 100%);
}
.scn-council-chamber-othello-tale-3 .tale3-desdemona {
  position: absolute; bottom: 22%; left: 48%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3027 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 45% 45%;
  transform-origin: bottom center;
  animation: t3-desdemona 5s ease-in-out infinite;
}
.scn-council-chamber-othello-tale-3 .tale3-othello {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2e1f14 0%, #1a100a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  opacity: 0.6;
  animation: t3-othello 4s ease-in-out infinite alternate;
}
.scn-council-chamber-othello-tale-3 .tale3-window {
  position: absolute; top: 8%; right: 10%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #b8d8f0 0%, #8ab4d8 100%);
  border: 4px solid #5a4a3a;
  border-radius: 10%;
  opacity: 0.5;
  animation: t3-window 15s ease-in-out infinite alternate;
}
.scn-council-chamber-othello-tale-3 .tale3-curtain {
  position: absolute; top: 0; right: 5%; width: 20px; height: 100%;
  background: linear-gradient(180deg, #b87878 0%, #8a5a5a 100%);
  border-radius: 5% 5% 0 0 / 10% 10% 0 0;
  animation: t3-curtain 8s ease-in-out infinite alternate;
}
.scn-council-chamber-othello-tale-3 .tale3-tears {
  position: absolute; bottom: 30%; left: 52%; width: 4px; height: 6px;
  background: radial-gradient(circle, #c0d8f0 0%, transparent 80%);
  border-radius: 50%;
  animation: t3-tears 2s ease-in-out infinite;
}

@keyframes t3-desdemona { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(2deg); } 60% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes t3-othello { 0% { transform: translateY(0) scaleX(1); opacity: 0.6; } 50% { transform: translateY(-2px) scaleX(1.03); opacity: 0.7; } 100% { transform: translateY(1px) scaleX(0.97); opacity: 0.55; } }
@keyframes t3-window { 0% { opacity: 0.4; filter: brightness(1); } 50% { opacity: 0.6; filter: brightness(1.2); } 100% { opacity: 0.45; filter: brightness(0.9); } }
@keyframes t3-curtain { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.01) translateX(-2px); } 100% { transform: scaleY(0.99) translateX(1px); } }
@keyframes t3-tears { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(-6px) scale(1.2); opacity: 1; } 100% { transform: translateY(0) scale(0.9); opacity: 0.6; } }

.scn-venice-street-roderigo-plot { background: linear-gradient(180deg, #0c0c1a 0%, #1a1a2e 30%, #0e1a2a 70%), radial-gradient(ellipse at 50% 100%, #2a2a4e 0%, transparent 80%); }
.scn-venice-street-roderigo-plot .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a1a3a 0%, #0e0e1a 100%); animation: vsrp-skybreathe 10s ease-in-out infinite alternate; }
.scn-venice-street-roderigo-plot .canal { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #0a1a1a 0%, #050f0f 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,0.6); animation: vsrp-water 8s ease-in-out infinite; }
.scn-venice-street-roderigo-plot .bridge { position:absolute; bottom:22%; left:35%; width:30%; height:12%; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.7); transform-origin: bottom center; animation: vsrp-bridge-sway 14s ease-in-out infinite alternate; }
.scn-venice-street-roderigo-plot .window-glowing { position:absolute; bottom:35%; left:20%; width:24px; height:30px; background: radial-gradient(circle, #b08040 0%, #604020 70%); border-radius: 4px 4px 6px 6px; box-shadow: 0 0 20px 6px #805030, 0 0 40px 12px rgba(128,80,48,0.4); animation: vsrp-windowflicker 2s steps(2) infinite; }
.scn-venice-street-roderigo-plot .figure-roderigo { position:absolute; bottom:18%; left:55%; 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: vsrp-pacesil 5s ease-in-out infinite; }
.scn-venice-street-roderigo-plot .lantern-swing { position:absolute; bottom:30%; left:42%; width:8px; height:10px; background: radial-gradient(circle, #ffd060 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 16px 4px #ffd060, 0 0 32px 10px rgba(255,208,96,0.5); transform-origin: center top; animation: vsrp-lanternswing 3s ease-in-out infinite; }
.scn-venice-street-roderigo-plot .mist-1 { position:absolute; top:20%; left:-10%; width:120%; height:20%; background: linear-gradient(90deg, transparent 0%, rgba(100,120,140,0.15) 40%, rgba(100,120,140,0.25) 60%, transparent 100%); filter: blur(30px); animation: vsrp-mistdrift 25s linear infinite; }
.scn-venice-street-roderigo-plot .mist-2 { position:absolute; bottom:10%; left:-10%; width:120%; height:30%; background: linear-gradient(90deg, transparent 0%, rgba(80,100,120,0.15) 30%, rgba(80,100,120,0.2) 70%, transparent 100%); filter: blur(40px); animation: vsrp-mistdrift 35s linear infinite reverse; }
@keyframes vsrp-skybreathe { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes vsrp-water { 0% { transform: translateY(0) } 25% { transform: translateY(2px) } 50% { transform: translateY(-1px) } 75% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes vsrp-bridge-sway { 0% { transform: rotate(-0.5deg) } 50% { transform: rotate(0.5deg) } 100% { transform: rotate(-0.3deg) } }
@keyframes vsrp-windowflicker { 0% { opacity:0.8; box-shadow: 0 0 15px 4px #805030; } 50% { opacity:1; box-shadow: 0 0 30px 10px #b06040; } 100% { opacity:0.8; box-shadow: 0 0 15px 4px #805030; } }
@keyframes vsrp-pacesil { 0%,100% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(1deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(15px) rotate(2deg) } }
@keyframes vsrp-lanternswing { 0% { transform: rotate(-8deg) translateY(0) } 25% { transform: rotate(5deg) translateY(-2px) } 50% { transform: rotate(-6deg) translateY(1px) } 75% { transform: rotate(4deg) translateY(-1px) } 100% { transform: rotate(-8deg) translateY(0) } }
@keyframes vsrp-mistdrift { 0% { transform: translateX(-20%) } 50% { transform: translateX(30%) } 100% { transform: translateX(-20%) } }

.scn-venice-street-brabantio-roused { background: linear-gradient(135deg, #0e0e1a 0%, #1a1a2e 40%, #0a1620 80%), radial-gradient(ellipse at 30% 40%, #2a2a3a 0%, transparent 70%); }
.scn-venice-street-brabantio-roused .night-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0a0a14 0%, #12122a 100%); animation: vsbr-sky 8s ease-in-out infinite alternate; }
.scn-venice-street-brabantio-roused .facade { position:absolute; bottom:15%; left:20%; width:60%; height:50%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8); }
.scn-venice-street-brabantio-roused .door { position:absolute; bottom:15%; left:50%; width:30px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 6px 6px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.7); }
.scn-venice-street-brabantio-roused .figure-brabantio { position:absolute; bottom:18%; left:40%; width:20px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vsbr-gesture 2s ease-in-out infinite alternate; }
.scn-venice-street-brabantio-roused .torch-1 { position:absolute; bottom:25%; left:30%; width:6px; height:14px; background: radial-gradient(circle at 50% 0%, #ff8040 0%, #b05020 60%, transparent 100%); box-shadow: 0 0 20px 6px #ff8030, 0 0 40px 12px rgba(255,128,48,0.5); animation: vsbr-torch 1.5s steps(3) infinite; }
.scn-venice-street-brabantio-roused .torch-2 { position:absolute; bottom:25%; right:30%; width:6px; height:14px; background: radial-gradient(circle at 50% 0%, #ff8040 0%, #b05020 60%, transparent 100%); box-shadow: 0 0 20px 6px #ff8030, 0 0 40px 12px rgba(255,128,48,0.5); animation: vsbr-torch 1.8s steps(2) infinite reverse; }
.scn-venice-street-brabantio-roused .shadow-figure { position:absolute; bottom:18%; right:35%; width:16px; height:36px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: vsbr-shadowmove 4s ease-in-out infinite; }
@keyframes vsbr-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes vsbr-gesture { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes vsbr-torch { 0% { opacity:0.7; transform: scaleY(0.9) } 25% { opacity:1; transform: scaleY(1.1) } 50% { opacity:0.8; transform: scaleY(0.8) } 75% { opacity:0.9; transform: scaleY(1.2) } 100% { opacity:0.7; transform: scaleY(0.9) } }
@keyframes vsbr-shadowmove { 0%,100% { transform: translateX(0) } 25% { transform: translateX(4px) } 50% { transform: translateX(-2px) } 75% { transform: translateX(6px) } }

.scn-venice-street-iago-provocations { background: linear-gradient(145deg, #0f0f1a 0%, #1a1a2e 35%, #0c1420 70%), radial-gradient(ellipse at 80% 70%, #2a2a3e 0%, transparent 70%); }
.scn-venice-street-iago-provocations .bg-buildings { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 0 0 30% 30% / 0 0 40% 40%; box-shadow: inset 0 20px 40px rgba(0,0,0,0.7); }
.scn-venice-street-iago-provocations .ground-street { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-venice-street-iago-provocations .figure-iago { position:absolute; bottom:18%; left:35%; width:20px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #080812 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vsip-iagostep 6s ease-in-out infinite; }
.scn-venice-street-iago-provocations .figure-roderigo-confront { position:absolute; bottom:18%; left:55%; width:18px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: vsip-roderigoretreat 7s ease-in-out infinite; }
.scn-venice-street-iago-provocations .gesture-hand { position:absolute; bottom:28%; left:42%; width:8px; height:12px; background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 0 0; transform: rotate(15deg); animation: vsip-handpoint 2.5s ease-in-out infinite alternate; }
.scn-venice-street-iago-provocations .street-lamp { position:absolute; bottom:25%; left:20%; width:10px; height:16px; background: radial-gradient(circle at 50% 0%, #ffd060 0%, #b08030 70%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 30px 8px #ffd060, 0 0 60px 15px rgba(255,208,96,0.4); animation: vsip-lampflicker 2.2s steps(2) infinite; }
.scn-venice-street-iago-provocations .fog-drift { position:absolute; top:15%; left:-10%; width:120%; height:15%; background: linear-gradient(90deg, transparent 0%, rgba(80,100,120,0.2) 40%, rgba(80,100,120,0.1) 70%, transparent 100%); filter: blur(40px); animation: vsip-fogslow 30s linear infinite; }
.scn-venice-street-iago-provocations .sparks { position:absolute; bottom:30%; left:38%; width:4px; height:4px; background: #ffd060; border-radius: 50%; box-shadow: 0 0 8px 2px #ffd060, 0 0 16px 4px rgba(255,208,96,0.6); animation: vsip-sparkfloat 4s ease-in-out infinite; }
@keyframes vsip-iagostep { 0%,100% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(8px) rotate(1deg) } 50% { transform: translateX(4px) rotate(-2deg) } 75% { transform: translateX(12px) rotate(0deg) } }
@keyframes vsip-roderigoretreat { 0%,100% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-10px) rotate(-3deg) } 60% { transform: translateX(-5px) rotate(1deg) } 90% { transform: translateX(-12px) rotate(-2deg) } }
@keyframes vsip-handpoint { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-4px) } 100% { transform: rotate(12deg) translateY(0) } }
@keyframes vsip-lampflicker { 0% { opacity:0.8; box-shadow: 0 0 20px 6px #ffd060; } 50% { opacity:1; box-shadow: 0 0 40px 12px #ffd060; } 100% { opacity:0.8; box-shadow: 0 0 20px 6px #ffd060; } }
@keyframes vsip-fogslow { 0% { transform: translateX(-30%) } 50% { transform: translateX(40%) } 100% { transform: translateX(-30%) } }
@keyframes vsip-sparkfloat { 0% { transform: translate(0,0) scale(1); opacity:0.7 } 25% { transform: translate(3px,-5px) scale(1.2); opacity:1 } 50% { transform: translate(-2px,-2px) scale(0.8); opacity:0.8 } 75% { transform: translate(4px,-7px) scale(1.1); opacity:0.9 } 100% { transform: translate(0,0) scale(1); opacity:0.7 } }

.scn-venice-street-roderigo-confrontation { background: linear-gradient(180deg, #0a0a14 0%, #12122a 40%, #0e1420 80%), radial-gradient(ellipse at 60% 50%, #1a1a2e 0%, transparent 70%); }
.scn-venice-street-roderigo-confrontation .archway { position:absolute; bottom:10%; left:25%; width:50%; height:65%; border: 4px solid #2a2a3a; border-radius: 20% 20% 0 0 / 40% 40% 0 0; background: linear-gradient(135deg, rgba(20,20,30,0.6) 0%, rgba(10,10,20,0.9) 100%); box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8); }
.scn-venice-street-roderigo-confrontation .street-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,0.5); }
.scn-venice-street-roderigo-confrontation .figure-roderigo-back { position:absolute; bottom:15%; left:40%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #080812 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: vsrc-roderigostill 5s ease-in-out infinite alternate; }
.scn-venice-street-roderigo-confrontation .figure-iago-shape { position:absolute; bottom:15%; left:55%; width:20px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: vsrc-iagoleans 6s ease-in-out infinite; }
.scn-venice-street-roderigo-confrontation .dagger-glint { position:absolute; bottom:22%; left:50%; width:4px; height:14px; background: linear-gradient(180deg, #c0c0d0 0%, #707080 100%); border-radius: 2px; box-shadow: 0 0 12px 4px #d0d0e0, 0 0 24px 8px rgba(176,176,192,0.4); animation: vsrc-glintpulse 1.2s ease-in-out infinite alternate; }
.scn-venice-street-roderigo-confrontation .moon-glow { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, rgba(180,200,220,0.4) 0%, transparent 70%); border-radius: 50%; animation: vsrc-mooncloud 12s ease-in-out infinite; }
.scn-venice-street-roderigo-confrontation .cloud-shadow { position:absolute; top:10%; left:-20%; width:140%; height:12%; background: linear-gradient(90deg, transparent 0%, rgba(20,20,40,0.3) 40%, transparent 100%); filter: blur(20px); animation: vsrc-cloudpass 25s linear infinite; }
@keyframes vsrc-roderigostill { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(0deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes vsrc-iagoleans { 0%,100% { transform: rotate(8deg) } 25% { transform: rotate(15deg) } 50% { transform: rotate(5deg) } 75% { transform: rotate(12deg) } }
@keyframes vsrc-glintpulse { 0% { opacity:0.6; box-shadow: 0 0 8px 2px #d0d0e0; } 50% { opacity:1; box-shadow: 0 0 20px 6px #e0e0f0; } 100% { opacity:0.6; box-shadow: 0 0 8px 2px #d0d0e0; } }
@keyframes vsrc-mooncloud { 0% { opacity:0.5; transform: scale(0.9) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.5; transform: scale(0.9) } }
@keyframes vsrc-cloudpass { 0% { transform: translateX(0) } 50% { transform: translateX(40%) } 100% { transform: translateX(0) } }

/* Scene 1: council-chamber-cyprus-orders (tense) */
.scn-council-chamber-cyprus-orders {
  background: linear-gradient(180deg, #e8d5b8 0%, #c7ab7a 40%, #8a6e4a 70%, #2d2015 100%),
              radial-gradient(ellipse at 50% 30%, #f5e6c8 0%, transparent 60%);
}
.scn-council-chamber-cyprus-orders .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #7a6548 0%, #b89a6e 50%, #7a6548 100%); }
.scn-council-chamber-cyprus-orders .bg-pillar-left { position:absolute; left:10%; top:0; bottom:30%; width:5%; background: linear-gradient(180deg, #9a7a50 0%, #6a5238 100%); border-radius:0 0 4px 4px; box-shadow:4px 0 8px rgba(0,0,0,.3); }
.scn-council-chamber-cyprus-orders .bg-pillar-right { position:absolute; right:10%; top:0; bottom:30%; width:5%; background: linear-gradient(180deg, #9a7a50 0%, #6a5238 100%); border-radius:0 0 4px 4px; box-shadow:-4px 0 8px rgba(0,0,0,.3); }
.scn-council-chamber-cyprus-orders .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%); }
.scn-council-chamber-cyprus-orders .table { position:absolute; bottom:15%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #5a3e28 0%, #3a2210 100%); border-radius:6px 6px 0 0; box-shadow:0 -4px 12px rgba(0,0,0,.5); }
.scn-council-chamber-cyprus-orders .map { position:absolute; bottom:22%; left:35%; width:30%; height:8%; background: linear-gradient(135deg, #c8a86a 0%, #a07848 50%, #7a5a30 100%); border-radius:4px; transform:rotate(-2deg); animation: sc1-map 12s ease-in-out infinite alternate; }
.scn-council-chamber-cyprus-orders .candle { position:absolute; bottom:18%; left:48%; width:3%; height:12%; background: linear-gradient(180deg, #f0d080 0%, #d8a050 40%, #804020 100%); border-radius:10% 10% 30% 30%; animation: sc1-candle 3s ease-in-out infinite alternate; }
.scn-council-chamber-cyprus-orders .figure-duke { position:absolute; bottom:30%; left:35%; width:12%; height:22%; background: linear-gradient(180deg, #2a2010 0%, #0a0800 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin:bottom center; animation: sc1-duke 4s ease-in-out infinite; }
.scn-council-chamber-cyprus-orders .figure-othello { position:absolute; bottom:30%; right:35%; width:12%; height:24%; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin:bottom center; animation: sc1-othello 4s ease-in-out infinite 0.5s; }
.scn-council-chamber-cyprus-orders .shadow { position:absolute; bottom:0; left:30%; width:40%; height:10%; background: rgba(0,0,0,.4); border-radius:50%; filter:blur(8px); animation: sc1-shadow 8s ease-in-out infinite alternate; }
@keyframes sc1-map { 0% { transform:rotate(-2deg) scale(1); opacity:.8 } 50% { transform:rotate(1deg) scale(1.02); opacity:1 } 100% { transform:rotate(-1deg) scale(1); opacity:.85 } }
@keyframes sc1-candle { 0% { height:12%; opacity:.8; transform:translateY(0) } 50% { height:13%; opacity:1; transform:translateY(-3px) } 100% { height:12%; opacity:.9; transform:translateY(0) } }
@keyframes sc1-duke { 0% { transform:translateX(0) rotate(0) } 30% { transform:translateX(3px) rotate(-2deg) } 60% { transform:translateX(-2px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes sc1-othello { 0% { transform:translateX(0) rotate(0) } 30% { transform:translateX(-4px) rotate(2deg) } 60% { transform:translateX(2px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes sc1-shadow { 0% { transform:scaleX(1); opacity:.3 } 50% { transform:scaleX(1.1); opacity:.5 } 100% { transform:scaleX(1); opacity:.35 } }

/* Scene 2: council-chamber-othello-arrangements (calm) */
.scn-council-chamber-othello-arrangements {
  background: linear-gradient(180deg, #f5eace 0%, #dcc6a0 40%, #b89a6e 70%, #6a5238 100%),
              radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 50%);
}
.scn-council-chamber-othello-arrangements .bg-arch { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, #e8d8b8 0%, #b89a6e 100%); }
.scn-council-chamber-othello-arrangements .window { position:absolute; top:5%; left:20%; width:25%; height:35%; background: linear-gradient(180deg, #d0e8f0 0%, #a8c8d8 100%); border:6px solid #7a5a30; border-radius:4px; box-shadow:inset 0 0 20px rgba(200,230,255,.6); animation: sc2-window 15s ease-in-out infinite alternate; }
.scn-council-chamber-othello-arrangements .table-desk { position:absolute; bottom:20%; left:30%; width:30%; height:12%; background: linear-gradient(180deg, #6a4a32 0%, #4a2a18 100%); border-radius:6px; box-shadow:0 4px 12px rgba(0,0,0,.3); }
.scn-council-chamber-othello-arrangements .figure-duke { position:absolute; bottom:30%; left:35%; width:14%; height:20%; background: linear-gradient(180deg, #2a220f 0%, #0a0800 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: sc2-duke 6s ease-in-out infinite; }
.scn-council-chamber-othello-arrangements .figure-othello { position:absolute; bottom:30%; right:35%; width:14%; height:22%; background: linear-gradient(180deg, #1c1a0a 0%, #0a0800 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: sc2-othello 6s ease-in-out infinite 0.3s; }
.scn-council-chamber-othello-arrangements .figure-counselor { position:absolute; bottom:30%; left:48%; width:10%; height:18%; background: linear-gradient(180deg, #3a3020 0%, #1a1008 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: sc2-counselor 8s ease-in-out infinite 0.6s; }
.scn-council-chamber-othello-arrangements .candle { position:absolute; bottom:20%; left:48%; width:2%; height:10%; background: linear-gradient(180deg, #f5d890 0%, #d8a050 40%, #804020 100%); border-radius:20%; box-shadow:0 0 12px 2px #f0c060; animation: sc2-candle 4s ease-in-out infinite alternate; }
.scn-council-chamber-othello-arrangements .books { position:absolute; bottom:24%; left:40%; width:6%; height:4%; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius:2px; box-shadow:0 2px 6px rgba(0,0,0,.4); }
@keyframes sc2-window { 0% { opacity:.7; filter:brightness(.9) } 50% { opacity:1; filter:brightness(1.1) } 100% { opacity:.8; filter:brightness(1) } }
@keyframes sc2-duke { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-4px) rotate(-1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes sc2-othello { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-5px) rotate(1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes sc2-counselor { 0% { transform:translateY(0) rotate(0) } 33% { transform:translateY(-2px) rotate(2deg) } 66% { transform:translateY(1px) rotate(-1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes sc2-candle { 0% { height:10%; opacity:.8 } 50% { height:11%; opacity:1 } 100% { height:10%; opacity:.9 } }

/* Scene 3: council-chamber-desdemona-pleads (calm) */
.scn-council-chamber-desdemona-pleads {
  background: linear-gradient(180deg, #e8d5b8 0%, #c7ab7a 30%, #8a6e4a 60%, #4a3a28 100%),
              radial-gradient(ellipse at 50% 40%, #f5e6c8 0%, transparent 60%);
}
.scn-council-chamber-desdemona-pleads .bg-chamber { position:absolute; inset:0; background: linear-gradient(90deg, #7a6548 0%, #b89a6e 50%, #7a6548 100%); }
.scn-council-chamber-desdemona-pleads .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%); }
.scn-council-chamber-desdemona-pleads .ray-light { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,240,200,.4) 0%, transparent 70%); filter:blur(10px); animation: sc3-ray 10s ease-in-out infinite alternate; }
.scn-council-chamber-desdemona-pleads .figure-desdemona { position:absolute; bottom:30%; left:45%; width:10%; height:22%; background: linear-gradient(180deg, #3a2a18 0%, #1a1008 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: sc3-desdemona 6s ease-in-out infinite; }
.scn-council-chamber-desdemona-pleads .figure-othello { position:absolute; bottom:30%; right:30%; width:14%; height:25%; background: linear-gradient(180deg, #1c1a0a 0%, #0a0800 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: sc3-othello 6s ease-in-out infinite 0.4s; }
.scn-council-chamber-desdemona-pleads .figure-duke { position:absolute; bottom:30%; left:20%; width:16%; height:20%; background: linear-gradient(180deg, #2a220f 0%, #0a0800 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: sc3-duke 8s ease-in-out infinite 0.2s; }
.scn-council-chamber-desdemona-pleads .petal { position:absolute; top:20%; left:30%; width:2%; height:2%; background: radial-gradient(circle, #c8553d 0%, #702243 100%); border-radius:50%; filter:blur(1px); animation: sc3-petal 12s ease-in-out infinite; }
@keyframes sc3-ray { 0% { opacity:.3; transform:scaleX(1) } 50% { opacity:.6; transform:scaleX(1.1) } 100% { opacity:.4; transform:scaleX(1) } }
@keyframes sc3-desdemona { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-6px) rotate(2deg) scale(1.02) } 100% { transform:translateY(0) rotate(0) } }
@keyframes sc3-othello { 0% { transform:translateX(0) rotate(0) } 50% { transform:translateX(3px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes sc3-duke { 0% { transform:translateY(0) rotate(0) } 33% { transform:translateY(-2px) rotate(1deg) } 66% { transform:translateY(2px) rotate(-1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes sc3-petal { 0% { transform:translate(0,0) rotate(0); opacity:.5 } 50% { transform:translate(10px,20px) rotate(45deg); opacity:1 } 100% { transform:translate(20px,40px) rotate(90deg); opacity:.3 } }

/* Scene 4: council-chamber-desdemona-goes (calm) */
.scn-council-chamber-desdemona-goes {
  background: linear-gradient(180deg, #e8d5b8 0%, #c7ab7a 40%, #8a6e4a 70%, #4a3a28 100%),
              radial-gradient(ellipse at 30% 40%, #f5e6c8 0%, transparent 50%);
}
.scn-council-chamber-desdemona-goes .bg-doorway { position:absolute; inset:0; background: linear-gradient(180deg, #7a6548 0%, #5a4a32 100%); }
.scn-council-chamber-desdemona-goes .door-frame { position:absolute; left:35%; top:0; bottom:20%; width:30%; background: linear-gradient(180deg, #6a4a32 0%, #3a2a18 100%); border-radius:10% 10% 0 0; box-shadow:inset 0 0 20px rgba(0,0,0,.5); }
.scn-council-chamber-desdemona-goes .figure-desdemona { position:absolute; bottom:20%; left:40%; width:8%; height:18%; background: linear-gradient(180deg, #3a2a18 0%, #1a1008 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin:bottom center; animation: sc4-desdemona 8s ease-in-out infinite; }
.scn-council-chamber-desdemona-goes .figure-othello { position:absolute; bottom:20%; right:40%; width:10%; height:20%; background: linear-gradient(180deg, #1c1a0a 0%, #0a0800 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin:bottom center; animation: sc4-othello 8s ease-in-out infinite 0.5s; }
.scn-council-chamber-desdemona-goes .figure-duke { position:absolute; bottom:20%; left:15%; width:12%; height:16%; background: linear-gradient(180deg, #2a220f 0%, #0a0800 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin:bottom center; animation: sc4-duke 10s ease-in-out infinite 1s; }
.scn-council-chamber-desdemona-goes .light-spill { position:absolute; top:10%; left:40%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(255,240,200,.3) 0%, transparent 70%); filter:blur(12px); animation: sc4-light 12s ease-in-out infinite alternate; }
@keyframes sc4-desdemona { 0% { transform:translateX(0) rotate(0) } 50% { transform:translateX(-8px) rotate(3deg) scale(1.02) } 100% { transform:translateX(-2px) rotate(0) } }
@keyframes sc4-othello { 0% { transform:translateX(0) rotate(0) } 50% { transform:translateX(6px) rotate(-2deg) scale(1.02) } 100% { transform:translateX(2px) rotate(0) } }
@keyframes sc4-duke { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-3px) rotate(1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes sc4-light { 0% { opacity:.2; transform:scaleY(1) } 50% { opacity:.5; transform:scaleY(1.2) } 100% { opacity:.3; transform:scaleY(1) } }

.scn-council-chamber-desdemona-arrives {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #7a5a3a 40%, #c8a070 70%, #e8c890 100%),
    radial-gradient(ellipse at 50% 60%, #e8c890 0%, transparent 70%);
}
.scn-council-chamber-desdemona-arrives .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(0deg, #5a3a1a 0%, #7a5a3a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: sc1-floor 10s ease-in-out infinite;
}
.scn-council-chamber-desdemona-arrives .back-wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #b89460 0%, #a08050 40%, #806040 100%);
  animation: sc1-wall 14s ease-in-out infinite alternate;
}
.scn-council-chamber-desdemona-arrives .col-left {
  position:absolute; bottom:25%; left:10%; width:4%; height:60%;
  background: linear-gradient(90deg, #7a5a3a 0%, #b89460 40%, #8a6a4a 100%);
  border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,0.3);
  animation: sc1-col 8s ease-in-out infinite;
}
.scn-council-chamber-desdemona-arrives .col-right {
  position:absolute; bottom:25%; right:10%; width:4%; height:60%;
  background: linear-gradient(90deg, #8a6a4a 0%, #b89460 60%, #7a5a3a 100%);
  border-radius: 4px; box-shadow: -2px 0 8px rgba(0,0,0,0.3);
  animation: sc1-col 8s ease-in-out infinite reverse;
}
.scn-council-chamber-desdemona-arrives .doorway {
  position:absolute; bottom:25%; left:38%; width:24%; height:55%;
  background: radial-gradient(ellipse at 50% 20%, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 12px 12px 0 0; box-shadow: inset 0 0 20px #1a0a00;
  animation: sc1-door 6s ease-in-out infinite alternate;
}
.scn-council-chamber-desdemona-arrives .figure {
  position:absolute; bottom:25%; left:45%; width:10%; height:40%;
  background: linear-gradient(180deg, #c8a070 0%, #a07040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 0 12px rgba(0,0,0,0.4);
  animation: sc1-figure 4s ease-in-out infinite;
}
.scn-council-chamber-desdemona-arrives .torch {
  position:absolute; bottom:25%; left:30%; width:2%; height:6%;
  background: linear-gradient(180deg, #b08040 0%, #706050 100%);
  border-radius: 2px; box-shadow: 0 -4px 12px #d09050;
  animation: sc1-torch 2s ease-in-out infinite alternate;
}
.scn-council-chamber-desdemona-arrives .torch-glow {
  position:absolute; bottom:30%; left:28%; width:6%; height:8%;
  background: radial-gradient(circle, rgba(240,200,120,0.8) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: sc1-glow 3s ease-in-out infinite alternate;
}
@keyframes sc1-floor { 0% { opacity:0.9; } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.85; } }
@keyframes sc1-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes sc1-col { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0); } }
@keyframes sc1-door { 0% { opacity:0.75; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sc1-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0); } }
@keyframes sc1-torch { 0% { box-shadow: 0 -4px 12px #d09050; } 50% { box-shadow: 0 -6px 20px #f0b060; } 100% { box-shadow: 0 -4px 12px #d09050; } }
@keyframes sc1-glow { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.3); opacity:1; } 100% { transform: scale(0.9); opacity:0.5; } }

.scn-council-chamber-desdemona-says {
  background:
    linear-gradient(180deg, #5a4a3a 0%, #8a7a5a 40%, #c8b890 70%, #e8d8c0 100%),
    radial-gradient(ellipse at 50% 40%, #e8d8c0 0%, transparent 70%);
}
.scn-council-chamber-desdemona-says .bg-arch {
  position:absolute; inset:0 0 20% 0;
  background: radial-gradient(ellipse at 50% 20%, #c8b890 0%, #8a7a5a 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  animation: sc2-arch 12s ease-in-out infinite alternate;
}
.scn-council-chamber-desdemona-says .podium {
  position:absolute; bottom:20%; left:35%; width:30%; height:15%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: sc2-podium 8s ease-in-out infinite;
}
.scn-council-chamber-desdemona-says .figure {
  position:absolute; bottom:32%; left:42%; width:16%; height:38%;
  background: linear-gradient(180deg, #e8d8c0 0%, #b8a080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.3);
  animation: sc2-figure 6s ease-in-out infinite;
}
.scn-council-chamber-desdemona-says .halo {
  position:absolute; bottom:55%; left:45%; width:10%; height:12%;
  background: radial-gradient(circle, rgba(255,240,200,0.7) 0%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: sc2-halo 5s ease-in-out infinite alternate;
}
.scn-council-chamber-desdemona-says .shadow {
  position:absolute; bottom:20%; left:30%; width:40%; height:8%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.2) 50%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: sc2-shadow 7s ease-in-out infinite;
}
.scn-council-chamber-desdemona-says .candle-left {
  position:absolute; bottom:45%; left:30%; width:2%; height:10%;
  background: linear-gradient(180deg, #d0b090 0%, #a08060 100%);
  border-radius: 2px; box-shadow: 0 0 8px #f0d0a0;
  animation: sc2-candle 3s ease-in-out infinite alternate;
}
.scn-council-chamber-desdemona-says .candle-right {
  position:absolute; bottom:45%; right:30%; width:2%; height:10%;
  background: linear-gradient(180deg, #d0b090 0%, #a08060 100%);
  border-radius: 2px; box-shadow: 0 0 8px #f0d0a0;
  animation: sc2-candle 3s ease-in-out infinite alternate-reverse;
}
@keyframes sc2-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes sc2-podium { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sc2-figure { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0); } }
@keyframes sc2-halo { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(0.9); } }
@keyframes sc2-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }
@keyframes sc2-candle { 0% { box-shadow: 0 0 8px #f0d0a0; } 50% { box-shadow: 0 0 16px #ffd8a0; } 100% { box-shadow: 0 0 8px #f0d0a0; } }

.scn-council-chamber-brabantio-gives-up {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 40%, #8a7a6a 100%),
    radial-gradient(ellipse at 50% 70%, #8a7a6a 0%, transparent 70%);
}
.scn-council-chamber-brabantio-gives-up .desk {
  position:absolute; bottom:20%; left:20%; width:60%; height:18%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 8px; box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
  animation: sc3-desk 10s ease-in-out infinite;
}
.scn-council-chamber-brabantio-gives-up .figure-seated {
  position:absolute; bottom:30%; left:38%; width:24%; height:30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  box-shadow: 0 4px 16px rgba(0,0,0,0.5);
  animation: sc3-figure 8s ease-in-out infinite;
}
.scn-council-chamber-brabantio-gives-up .head-down {
  position:absolute; bottom:52%; left:45%; width:12%; height:10%;
  background: radial-gradient(circle at 50% 40%, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50%;
  animation: sc3-head 6s ease-in-out infinite;
}
.scn-council-chamber-brabantio-gives-up .lamp {
  position:absolute; bottom:45%; left:55%; width:4%; height:8%;
  background: radial-gradient(circle, #f0d080 0%, #c8a060 100%);
  border-radius: 4px; box-shadow: 0 0 20px #f0d080, 0 0 40px rgba(240,208,128,0.3);
  animation: sc3-lamp 4s ease-in-out infinite alternate;
}
.scn-council-chamber-brabantio-gives-up .paper {
  position:absolute; bottom:30%; left:45%; width:10%; height:6%;
  background: linear-gradient(135deg, #d8c8a0 0%, #c0b090 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: sc3-paper 5s ease-in-out infinite;
}
.scn-council-chamber-brabantio-gives-up .wall-panel {
  position:absolute; top:5%; left:10%; width:80%; height:40%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 8px; box-shadow: inset 0 2px 8px rgba(0,0,0,0.3);
  animation: sc3-panel 12s ease-in-out infinite alternate;
}
@keyframes sc3-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sc3-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0); } }
@keyframes sc3-head { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes sc3-lamp { 0% { opacity:0.7; box-shadow: 0 0 20px #f0d080; } 50% { opacity:1; box-shadow: 0 0 30px #f0d080, 0 0 60px rgba(240,208,128,0.4); } 100% { opacity:0.6; box-shadow: 0 0 15px #f0d080; } }
@keyframes sc3-paper { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes sc3-panel { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }

.scn-council-chamber-brabantio-replies {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #6a5a4a 40%, #9a8a7a 100%),
    radial-gradient(ellipse at 40% 50%, #9a8a7a 0%, transparent 70%);
}
.scn-council-chamber-brabantio-replies .bg-panels {
  position:absolute; inset:0 0 15% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #7a6a5a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: sc4-bg 14s ease-in-out infinite alternate;
}
.scn-council-chamber-brabantio-replies .figure-left {
  position:absolute; bottom:15%; left:20%; width:18%; height:45%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: 4px 0 12px rgba(0,0,0,0.4);
  animation: sc4-fig-left 6s ease-in-out infinite;
}
.scn-council-chamber-brabantio-replies .figure-right {
  position:absolute; bottom:15%; right:20%; width:18%; height:45%;
  background: linear-gradient(180deg, #a08a7a 0%, #7a6a5a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.4);
  animation: sc4-fig-right 6s ease-in-out infinite;
}
.scn-council-chamber-brabantio-replies .table {
  position:absolute; bottom:15%; left:30%; width:40%; height:10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: sc4-table 10s ease-in-out infinite;
}
.scn-council-chamber-brabantio-replies .candle {
  position:absolute; bottom:25%; left:48%; width:4%; height:12%;
  background: linear-gradient(180deg, #d0b090 0%, #a08060 100%);
  border-radius: 2px; box-shadow: 0 0 10px #f0d0a0;
  animation: sc4-candle 3s ease-in-out infinite alternate;
}
.scn-council-chamber-brabantio-replies .shadow-left {
  position:absolute; bottom:15%; left:15%; width:25%; height:5%;
  background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: sc4-shadow 9s ease-in-out infinite;
}
.scn-council-chamber-brabantio-replies .shadow-right {
  position:absolute; bottom:15%; right:15%; width:25%; height:5%;
  background: linear-gradient(270deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: sc4-shadow 9s ease-in-out infinite reverse;
}
@keyframes sc4-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes sc4-fig-left { 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); } }
@keyframes sc4-fig-right { 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); } }
@keyframes sc4-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sc4-candle { 0% { box-shadow: 0 0 10px #f0d0a0; } 50% { box-shadow: 0 0 20px #ffd8a0; } 100% { box-shadow: 0 0 10px #f0d0a0; } }
@keyframes sc4-shadow { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

.scn-council-chamber-final-arrangements {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #d9c9b0 40%, #b8a28a 100%),
    radial-gradient(circle at 30% 50%, #fff5e0 0%, transparent 60%);
}
.scn-council-chamber-final-arrangements .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #cbb99e 0%, #a0876e 100%);
  border-top: 4px solid #8a7259;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
}
.scn-council-chamber-final-arrangements .back-wall {
  position:absolute; top:0; left:0; right:0; bottom:35%;
  background: linear-gradient(180deg, #e8d9c4 0%, #d4c3ab 70%, #bfab90 100%);
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.1);
}
.scn-council-chamber-final-arrangements .table {
  position:absolute; bottom:25%; left:15%; right:15%; height:18%;
  background: linear-gradient(180deg, #6b4c2e 0%, #4a3320 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: ccf-table 10s ease-in-out infinite;
}
.scn-council-chamber-final-arrangements .document {
  position:absolute; bottom:30%; left:35%; width:12%; height:8%;
  background: #faf0d8;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(-2deg);
  animation: ccf-doc 8s ease-in-out infinite alternate;
}
.scn-council-chamber-final-arrangements .candle-glow {
  position:absolute; bottom:32%; left:42%; width:3%; height:8%;
  background: radial-gradient(circle, #ffd080 0%, #b07640 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  box-shadow: 0 0 30px 10px #b07640;
  animation: ccf-candle 4s ease-in-out infinite alternate;
}
.scn-council-chamber-final-arrangements .chair-left {
  position:absolute; bottom:20%; left:8%; width:12%; height:20%;
  background: linear-gradient(180deg, #3d2c1a 0%, #2a1d0f 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ccf-chair 12s ease-in-out infinite alternate;
}
.scn-council-chamber-final-arrangements .chair-right {
  position:absolute; bottom:20%; right:8%; width:12%; height:20%;
  background: linear-gradient(180deg, #3d2c1a 0%, #2a1d0f 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ccf-chair 14s ease-in-out infinite alternate-reverse;
}
.scn-council-chamber-final-arrangements .figure {
  position:absolute; bottom:22%; left:50%; width:8%; height:22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ccf-fig 6s ease-in-out infinite;
}
.scn-council-chamber-final-arrangements .window-light {
  position:absolute; top:8%; left:60%; width:20%; height:30%;
  background: linear-gradient(135deg, rgba(255,255,220,0.6) 0%, rgba(255,255,180,0.1) 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(255,255,200,0.3);
  animation: ccf-win 20s ease-in-out infinite alternate;
}
@keyframes ccf-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes ccf-doc {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes ccf-candle {
  0% { opacity:0.7; box-shadow: 0 0 20px 5px #b07640; }
  50% { opacity:1; box-shadow: 0 0 40px 15px #ffd080; }
  100% { opacity:0.8; box-shadow: 0 0 25px 8px #b07640; }
}
@keyframes ccf-chair {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(0.98) translateY(0); }
}
@keyframes ccf-fig {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(2deg); }
  75% { transform: translateX(-50%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes ccf-win {
  0% { opacity:0.4; }
  50% { opacity:0.9; }
  100% { opacity:0.5; }
}

.scn-council-chamber-farewell {
  background:
    linear-gradient(180deg, #e6d3ba 0%, #cbb99e 50%, #a0876e 100%),
    radial-gradient(circle at 70% 30%, #fff5e0 0%, transparent 60%);
}
.scn-council-chamber-farewell .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #b8a28a 0%, #8a7259 100%);
  border-top: 3px solid #7a634d;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
}
.scn-council-chamber-farewell .back-wall {
  position:absolute; top:0; left:0; right:0; bottom:35%;
  background: linear-gradient(180deg, #d9c9b0 0%, #c4b29a 70%, #b09b82 100%);
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.08);
}
.scn-council-chamber-farewell .door {
  position:absolute; bottom:25%; left:40%; width:20%; height:45%;
  background: linear-gradient(180deg, #5a4230 0%, #3d2c1a 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 4px 10px rgba(0,0,0,0.3);
  animation: cfb-door 15s ease-in-out infinite alternate;
}
.scn-council-chamber-farewell .door-handle {
  position:absolute; bottom:45%; left:55%; width:4%; height:4%;
  background: radial-gradient(circle, #c8a060 0%, #7a5a30 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: cfb-handle 8s ease-in-out infinite;
}
.scn-council-chamber-farewell .figure-old {
  position:absolute; bottom:22%; left:25%; width:8%; height:22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: cfb-old 6s ease-in-out infinite;
}
.scn-council-chamber-farewell .figure-young {
  position:absolute; bottom:22%; right:25%; width:7%; height:20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cfb-young 8s ease-in-out infinite alternate;
}
.scn-council-chamber-farewell .candle-glow {
  position:absolute; bottom:32%; left:50%; width:3%; height:8%;
  background: radial-gradient(circle, #ffd080 0%, #b07640 70%, transparent 100%);
  filter: blur(4px);
  box-shadow: 0 0 30px 10px #b07640;
  animation: cfb-candle 4s ease-in-out infinite alternate;
}
.scn-council-chamber-farewell .arch {
  position:absolute; top:10%; left:20%; right:20%; height:5%;
  background: linear-gradient(180deg, #c4b29a 0%, transparent);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.1);
  animation: cfb-arch 20s ease-in-out infinite;
}
@keyframes cfb-door {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(0); }
}
@keyframes cfb-handle {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes cfb-old {
  0% { transform: scaleX(-1) translateY(0) rotate(0deg); }
  25% { transform: scaleX(-1) translateY(-2px) rotate(2deg); }
  75% { transform: scaleX(-1) translateY(0) rotate(-1deg); }
  100% { transform: scaleX(-1) translateY(0) rotate(0deg); }
}
@keyframes cfb-young {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cfb-candle {
  0% { opacity:0.6; box-shadow: 0 0 20px 5px #b07640; }
  50% { opacity:1; box-shadow: 0 0 40px 15px #ffd080; }
  100% { opacity:0.7; box-shadow: 0 0 25px 8px #b07640; }
}
@keyframes cfb-arch {
  0% { opacity:0.4; }
  50% { opacity:0.8; }
  100% { opacity:0.5; }
}

.scn-council-chamber-love-and-trust {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8cd9e 40%, #c8a87a 100%),
    radial-gradient(circle at 50% 50%, #ffeaad 0%, transparent 70%);
}
.scn-council-chamber-love-and-trust .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #c8a87a 0%, #a0805a 100%);
  border-top: 3px solid #90704a;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-council-chamber-love-and-trust .back-wall {
  position:absolute; top:0; left:0; right:0; bottom:30%;
  background: linear-gradient(180deg, #e8cd9e 0%, #d4bc8a 70%, #bfa674 100%);
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.1);
}
.scn-council-chamber-love-and-trust .hearth {
  position:absolute; bottom:22%; left:35%; right:35%; height:15%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 0 30px 10px #d08040;
  animation: clt-hearth 6s ease-in-out infinite alternate;
}
.scn-council-chamber-love-and-trust .fire-glow {
  position:absolute; bottom:26%; left:40%; right:40%; height:12%;
  background: radial-gradient(ellipse at center, #ffb060 0%, #d08040 50%, transparent 100%);
  filter: blur(8px);
  animation: clt-fire 3s ease-in-out infinite alternate;
}
.scn-council-chamber-love-and-trust .figure-m {
  position:absolute; bottom:20%; left:38%; width:8%; height:22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: clt-m 8s ease-in-out infinite;
}
.scn-council-chamber-love-and-trust .figure-f {
  position:absolute; bottom:20%; right:38%; width:7%; height:20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: clt-f 8s ease-in-out infinite reverse;
}
.scn-council-chamber-love-and-trust .hands-clasp {
  position:absolute; bottom:30%; left:45%; right:45%; height:3%;
  background: #6b5a4a;
  border-radius: 10px;
  box-shadow: 0 0 10px 2px rgba(0,0,0,0.3);
  animation: clt-hands 5s ease-in-out infinite alternate;
}
.scn-council-chamber-love-and-trust .window-light {
  position:absolute; top:5%; left:65%; width:15%; height:25%;
  background: linear-gradient(135deg, rgba(255,220,150,0.6) 0%, rgba(255,200,100,0.1) 100%);
  border-radius: 3px;
  box-shadow: 0 0 40px 20px rgba(255,200,100,0.4);
  animation: clt-win 25s ease-in-out infinite alternate;
}
@keyframes clt-hearth {
  0% { box-shadow: 0 0 20px 5px #a06030; }
  50% { box-shadow: 0 0 40px 15px #d08040; }
  100% { box-shadow: 0 0 25px 8px #b06030; }
}
@keyframes clt-fire {
  0% { transform: scaleY(0.9); opacity:0.7; }
  50% { transform: scaleY(1.1); opacity:1; }
  100% { transform: scaleY(0.95); opacity:0.8; }
}
@keyframes clt-m {
  0% { transform: rotate(5deg) translateY(0); }
  25% { transform: rotate(5deg) translateY(-2px); }
  75% { transform: rotate(5deg) translateY(1px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes clt-f {
  0% { transform: rotate(-5deg) translateY(0); }
  25% { transform: rotate(-5deg) translateY(-2px); }
  75% { transform: rotate(-5deg) translateY(1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes clt-hands {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
  100% { transform: scaleX(1); }
}
@keyframes clt-win {
  0% { opacity:0.3; }
  50% { opacity:0.8; }
  100% { opacity:0.4; }
}

.scn-council-chamber-roderigo-despondent {
  background:
    linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 40%, #3a3a4a 100%),
    radial-gradient(circle at 50% 80%, #6a6a7a 0%, transparent 70%);
}
.scn-council-chamber-roderigo-despondent .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-top: 2px solid #3a3a4a;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-council-chamber-roderigo-despondent .back-wall {
  position:absolute; top:0; left:0; right:0; bottom:35%;
  background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 70%, #3a3a4a 100%);
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.2);
}
.scn-council-chamber-roderigo-despondent .table {
  position:absolute; bottom:20%; left:20%; right:20%; height:20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: crd-table 12s ease-in-out infinite alternate;
}
.scn-council-chamber-roderigo-despondent .figure-slumped {
  position:absolute; bottom:18%; left:30%; width:10%; height:25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(15deg);
  animation: crd-fig 6s ease-in-out infinite;
}
.scn-council-chamber-roderigo-despondent .bottle {
  position:absolute; bottom:28%; left:50%; width:3%; height:10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: crd-bottle 8s ease-in-out infinite alternate;
}
.scn-council-chamber-roderigo-despondent .candle-glow-dim {
  position:absolute; bottom:30%; left:55%; width:2%; height:6%;
  background: radial-gradient(circle, #a08060 0%, #604020 70%, transparent 100%);
  filter: blur(3px);
  box-shadow: 0 0 15px 5px #604020;
  animation: crd-candle 5s ease-in-out infinite alternate;
}
.scn-council-chamber-roderigo-despondent .shadow-bars {
  position:absolute; top:0; left:10%; width:5%; height:100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.1) 100%);
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.3);
  animation: crd-bars 15s ease-in-out infinite;
}
@keyframes crd-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes crd-fig {
  0% { transform: rotate(15deg) translateY(0); }
  25% { transform: rotate(15deg) translateY(3px); }
  75% { transform: rotate(15deg) translateY(-2px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes crd-bottle {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes crd-candle {
  0% { opacity:0.3; box-shadow: 0 0 10px 3px #604020; }
  50% { opacity:0.6; box-shadow: 0 0 20px 8px #a08060; }
  100% { opacity:0.4; box-shadow: 0 0 12px 4px #604020; }
}
@keyframes crd-bars {
  0% { opacity:0.2; }
  50% { opacity:0.5; }
  100% { opacity:0.3; }
}

.scn-venice-street-roderigo-upset {
  background: linear-gradient(180deg, #0e101a 0%, #161825 30%, #1a1c2e 70%, #0f1120 100%), radial-gradient(ellipse at 30% 50%, #1a1c2e 0%, transparent 70%);
}
.scn-venice-street-roderigo-upset .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #12142a 0%, #08091a 100%); animation: roi-bg 10s ease-in-out infinite alternate;
}
.scn-venice-street-roderigo-upset .wall {
  position: absolute; bottom: 20%; left: 5%; right: 45%; height: 70%; background: linear-gradient(180deg, #2d2a3a 0%, #1e1b28 60%, #14121c 100%); border-radius: 0 8px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: roi-wall 8s ease-in-out infinite alternate;
}
.scn-venice-street-roderigo-upset .window {
  position: absolute; bottom: 40%; left: 15%; width: 28px; height: 30px; background: radial-gradient(circle, #c08040 0%, #8a5a20 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px #b07030, 0 0 40px 12px rgba(176,112,48,0.3); animation: roi-glow 3s ease-in-out infinite alternate;
}
.scn-venice-street-roderigo-upset .figure {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 40px; background: linear-gradient(180deg, #2a2a3a 0%, #10101a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: roi-fig 4s ease-in-out infinite;
}
.scn-venice-street-roderigo-upset .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: repeating-linear-gradient(90deg, #242228 0px, #1a1820 4px, #242228 8px, #1a1820 12px); border-radius: 60% 60% 0 0 / 30% 30% 0 0; animation: roi-ground 12s linear infinite;
}
.scn-venice-street-roderigo-upset .lantern {
  position: absolute; bottom: 30%; left: 12%; width: 8px; height: 10px; background: radial-gradient(circle, #ffd080 0%, #b07030 70%); border-radius: 50%; box-shadow: 0 0 14px 4px #b07030, 0 0 28px 8px rgba(176,112,48,0.4); animation: roi-lantern 2s ease-in-out infinite alternate;
}
.scn-venice-street-roderigo-upset .shadow {
  position: absolute; bottom: 20%; left: 34%; width: 26px; height: 10px; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%); animation: roi-shadow 4s ease-in-out infinite;
}
@keyframes roi-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes roi-wall { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.02) translateX(-1px); } 100% { transform: scaleY(1) translateX(0); } }
@keyframes roi-glow { 0% { box-shadow: 0 0 14px 3px #b07030; opacity: 0.8; } 50% { box-shadow: 0 0 24px 8px #d09040, 0 0 48px 14px rgba(208,144,64,0.5); opacity: 1; } 100% { box-shadow: 0 0 18px 5px #b07030; opacity: 0.9; } }
@keyframes roi-fig { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(3deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(4deg); } 100% { transform: translateX(16px) translateY(0) rotate(0deg); } }
@keyframes roi-ground { 0% { background-position: 0 0; } 100% { background-position: -24px 0; } }
@keyframes roi-lantern { 0% { transform: rotate(-5deg) scale(1); opacity: 0.9; } 50% { transform: rotate(5deg) scale(1.1); opacity: 1; } 100% { transform: rotate(-3deg) scale(0.95); opacity: 0.85; } }
@keyframes roi-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(6px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); } }

.scn-venice-street-iago-bitterness {
  background: linear-gradient(180deg, #080a14 0%, #0c0e1e 40%, #141630 70%, #0a0c1a 100%), radial-gradient(ellipse at 50% 80%, #141630 0%, transparent 70%);
}
.scn-venice-street-iago-bitterness .wall-left {
  position: absolute; inset: 5% 60% 0 0; background: linear-gradient(90deg, #1a1b2a 0%, #0d0e1c 100%); border-radius: 0 8px 0 0; animation: iab-wall-l 15s ease-in-out infinite alternate;
}
.scn-venice-street-iago-bitterness .wall-right {
  position: absolute; inset: 5% 0 0 60%; background: linear-gradient(90deg, #0d0e1c 0%, #1a1b2a 100%); border-radius: 8px 0 0 0; animation: iab-wall-r 15s ease-in-out infinite alternate reverse;
}
.scn-venice-street-iago-bitterness .sky-strip {
  position: absolute; top: 0; left: 30%; right: 30%; height: 8%; background: linear-gradient(180deg, #2a2e4e 0%, #16183a 100%); border-radius: 0 0 40% 40%; animation: iab-sky 12s ease-in-out infinite alternate;
}
.scn-venice-street-iago-bitterness .figure {
  position: absolute; bottom: 12%; left: 50%; width: 20px; height: 36px; transform: translateX(-50%); background: linear-gradient(180deg, #1e1e2e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: iab-fig 5s ease-in-out infinite;
}
.scn-venice-street-iago-bitterness .drain {
  position: absolute; bottom: 0; left: 45%; right: 45%; height: 6%; background: repeating-linear-gradient(90deg, #222244 0px, #1a1b30 4px, #222244 8px); border-radius: 20% 20% 0 0; animation: iab-drain 8s linear infinite;
}
.scn-venice-street-iago-bitterness .drip {
  position: absolute; top: 15%; left: 50%; width: 4px; height: 4px; background: radial-gradient(circle, #6a8aaa 0%, #3a5a7a 100%); border-radius: 50%; box-shadow: 0 0 6px 2px #4a6a8a; animation: iab-drip 2.5s ease-in infinite;
}
@keyframes iab-wall-l { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes iab-wall-r { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes iab-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes iab-fig { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 30% { transform: translateX(-50%) translateY(-2px) rotate(0deg); } 60% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes iab-drain { 0% { background-position: 0 0; } 100% { background-position: -16px 0; } }
@keyframes iab-drip { 0% { opacity: 0; transform: translateY(0) scale(0.8); } 15% { opacity: 1; transform: translateY(2px) scale(1); } 50% { opacity: 1; transform: translateY(20px) scale(0.8); } 85% { opacity: 1; transform: translateY(40px) scale(0.6); } 100% { opacity: 0; transform: translateY(45px) scale(0.4); } }

.scn-venice-street-iago-scheme {
  background: linear-gradient(180deg, #0c0e1e 0%, #10122a 30%, #1a1c3a 60%, #0e1020 100%), radial-gradient(ellipse at 40% 30%, #1a1c3a 0%, transparent 70%);
}
.scn-venice-street-iago-scheme .bg-sky {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #1a1e3e 0%, #0e102a 100%); animation: ias-sky 14s ease-in-out infinite alternate;
}
.scn-venice-street-iago-scheme .buildings {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #2a2e44 0%, #1e2032 100%); border-radius: 30% 0 0 0 / 40% 0 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: ias-buildings 20s ease-in-out infinite alternate;
}
.scn-venice-street-iago-scheme .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a2838 0%, #12101c 100%); border-radius: 70% 30% 0 0 / 30% 10% 0 0; animation: ias-ground 9s ease-in-out infinite;
}
.scn-venice-street-iago-scheme .figure-a {
  position: absolute; bottom: 20%; left: 35%; width: 18px; height: 32px; background: linear-gradient(180deg, #1a1a28 0%, #0a0a16 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ias-fig-a 6s ease-in-out infinite;
}
.scn-venice-street-iago-scheme .figure-b {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 34px; background: linear-gradient(180deg, #222238 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ias-fig-b 6s ease-in-out infinite 0.5s;
}
.scn-venice-street-iago-scheme .moon {
  position: absolute; top: 8%; left: 20%; width: 30px; height: 30px; background: radial-gradient(circle, #c0c8e0 0%, #808aa0 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #a0a8c0, 0 0 60px 20px rgba(160,168,192,0.3); animation: ias-moon 8s ease-in-out infinite alternate;
}
.scn-venice-street-iago-scheme .cloud {
  position: absolute; top: 10%; right: 10%; width: 60px; height: 16px; background: linear-gradient(180deg, rgba(160,168,192,0.5) 0%, rgba(60,70,90,0.2) 100%); border-radius: 50%; filter: blur(4px); animation: ias-cloud 40s linear infinite;
}
@keyframes ias-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ias-buildings { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ias-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ias-fig-a { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ias-fig-b { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ias-moon { 0% { box-shadow: 0 0 20px 6px #a0a8c0; opacity: 0.9; } 50% { box-shadow: 0 0 40px 14px #b0b8d0, 0 0 70px 24px rgba(160,168,192,0.4); opacity: 1; } 100% { box-shadow: 0 0 25px 8px #a0a8c0; opacity: 0.85; } }
@keyframes ias-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

.scn-venice-street-iago-scheme-2 {
  background: linear-gradient(180deg, #0e0e1e 0%, #14142a 40%, #1a1a32 70%, #0a0a18 100%), radial-gradient(ellipse at 30% 70%, #1a1a32 0%, transparent 70%);
}
.scn-venice-street-iago-scheme-2 .arch {
  position: absolute; bottom: 10%; left: 10%; right: 10%; top: 10%; background: radial-gradient(ellipse at 50% 100%, #2a2e4a 0%, #14162a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); animation: ia2-arch 12s ease-in-out infinite alternate;
}
.scn-venice-street-iago-scheme-2 .column-left {
  position: absolute; bottom: 10%; left: 15%; width: 12px; top: 30%; background: linear-gradient(90deg, #222444, #14162a, #222444); border-radius: 10% 10% 0 0; animation: ia2-col-l 10s ease-in-out infinite alternate;
}
.scn-venice-street-iago-scheme-2 .column-right {
  position: absolute; bottom: 10%; right: 15%; width: 12px; top: 30%; background: linear-gradient(90deg, #222444, #14162a, #222444); border-radius: 10% 10% 0 0; animation: ia2-col-r 10s ease-in-out infinite alternate;
}
.scn-venice-street-iago-scheme-2 .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: repeating-linear-gradient(90deg, #2a2a40 0px, #1a1a2e 6px, #2a2a40 12px); animation: ia2-floor 8s linear infinite;
}
.scn-venice-street-iago-scheme-2 .figure-iago {
  position: absolute; bottom: 18%; left: 38%; width: 20px; height: 36px; background: linear-gradient(180deg, #1c1c2e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ia2-iago 5s ease-in-out infinite;
}
.scn-venice-street-iago-scheme-2 .figure-roderigo {
  position: absolute; bottom: 18%; left: 52%; width: 18px; height: 34px; background: linear-gradient(180deg, #22223a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ia2-roderigo 5s ease-in-out infinite 0.5s;
}
.scn-venice-street-iago-scheme-2 .candle {
  position: absolute; bottom: 28%; left: 46%; width: 6px; height: 8px; background: radial-gradient(circle, #ffd080 0%, #b07030 70%); border-radius: 50%; box-shadow: 0 0 20px 6px #b07030, 0 0 40px 12px rgba(176,112,48,0.4); animation: ia2-candle 2.5s ease-in-out infinite alternate;
}
.scn-venice-street-iago-scheme-2 .shadow {
  position: absolute; bottom: 10%; left: 35%; right: 35%; height: 10%; background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 100%); animation: ia2-shadow 6s ease-in-out infinite;
}
@keyframes ia2-arch { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ia2-col-l { 0% { transform: translateX(0); } 50% { transform: translateX(-1px); } 100% { transform: translateX(0); } }
@keyframes ia2-col-r { 0% { transform: translateX(0); } 50% { transform: translateX(1px); } 100% { transform: translateX(0); } }
@keyframes ia2-floor { 0% { background-position: 0 0; } 100% { background-position: -24px 0; } }
@keyframes ia2-iago { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ia2-roderigo { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ia2-candle { 0% { transform: scale(1) rotate(-3deg); opacity: 0.9; } 50% { transform: scale(1.1) rotate(3deg); opacity: 1; } 100% { transform: scale(0.95) rotate(-2deg); opacity: 0.85; } }
@keyframes ia2-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(4px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }

/* council-chamber-duke */
.scn-council-chamber-duke {
  background: 
    radial-gradient(ellipse at 30% 100%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #d4c4a8 0%, #b8a088 50%, #8a7a6a 100%);
}
.scn-council-chamber-duke .wall-deep {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 30%, #6a5a4a 70%, #5a4a3a 100%);
  animation: cd-wall 12s ease-in-out infinite alternate;
}
.scn-council-chamber-duke .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 2% 2% 0 0;
}
.scn-council-chamber-duke .column-left {
  position: absolute; bottom: 40%; left: 10%; width: 6%; height: 60%;
  background: linear-gradient(90deg, #9a8a7a, #b8a898, #9a8a7a);
  border-radius: 4px;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
  animation: cd-column 6s ease-in-out infinite alternate;
}
.scn-council-chamber-duke .column-right {
  position: absolute; bottom: 40%; right: 10%; width: 6%; height: 60%;
  background: linear-gradient(90deg, #9a8a7a, #b8a898, #9a8a7a);
  border-radius: 4px;
  box-shadow: -4px 0 12px rgba(0,0,0,0.3);
  animation: cd-column 6s ease-in-out infinite alternate-reverse;
}
.scn-council-chamber-duke .table {
  position: absolute; bottom: 35%; left: 30%; right: 30%; height: 10%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: cd-table 4s ease-in-out infinite;
}
.scn-council-chamber-duke .duke-figure {
  position: absolute; bottom: 38%; left: 45%; width: 10%; height: 25%;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-figure 3s ease-in-out infinite alternate;
}
.scn-council-chamber-duke .candle-glow {
  position: absolute; bottom: 42%; left: 48%; width: 2%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,208,128,0.6), 0 0 80px 40px rgba(255,208,128,0.3);
  animation: cd-candle 1.5s ease-in-out infinite alternate;
}
.scn-council-chamber-duke .window-light {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,240,200,0.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: cd-window 8s ease-in-out infinite;
}
.scn-council-chamber-duke .shadow-pulse {
  position: absolute; bottom: 40%; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.2) 0%, transparent 80%);
  animation: cd-shadow 5s ease-in-out infinite alternate;
}
@keyframes cd-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes cd-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98) translateY(1px); } 100% { transform: scaleY(1); } }
@keyframes cd-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cd-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cd-candle { 0% { opacity:0.8; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.85; transform: scale(1); } }
@keyframes cd-window { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes cd-shadow { 0% { opacity:0.1; } 50% { opacity:0.25; } 100% { opacity:0.15; } }

/* council-chamber-messenger */
.scn-council-chamber-messenger {
  background: 
    radial-gradient(ellipse at 80% 50%, #2a1a1a 0%, transparent 50%),
    linear-gradient(180deg, #c8b8a0 0%, #a89880 50%, #786858 100%);
}
.scn-council-chamber-messenger .wall-deep {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 40%, #5a4a3a 100%);
  animation: cm-wall 10s ease-in-out infinite alternate;
}
.scn-council-chamber-messenger .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2% 2% 0 0;
}
.scn-council-chamber-messenger .door-frame {
  position: absolute; botton: 40%; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(90deg, #3a2a1a, #5a4a3a, #3a2a1a);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-council-chamber-messenger .door-panel {
  position: absolute; bottom: 40%; left: 42%; width: 16%; height: 58%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: cm-door 2s ease-in-out infinite alternate;
}
.scn-council-chamber-messenger .light-beam {
  position: absolute; bottom: 40%; left: 42%; width: 16%; height: 58%;
  background: linear-gradient(90deg, rgba(255,240,200,0.5) 0%, transparent 100%);
  animation: cm-beam 4s ease-in-out infinite alternate;
}
.scn-council-chamber-messenger .messenger-silhouette {
  position: absolute; bottom: 40%; left: 48%; width: 8%; height: 25%;
  background: radial-gradient(ellipse at 50% 30%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cm-messenger 3s ease-in-out infinite alternate;
}
.scn-council-chamber-messenger .scroll {
  position: absolute; bottom: 38%; left: 52%; width: 10%; height: 3%;
  background: linear-gradient(90deg, #d4c4a8, #b8a898, #d4c4a8);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: cm-scroll 5s ease-in-out infinite alternate;
}
@keyframes cm-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes cm-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9) translateX(-4px); } 100% { transform: scaleX(1); } }
@keyframes cm-beam { 0% { opacity:0.2; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes cm-messenger { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cm-scroll { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }

/* council-chamber-strategy */
.scn-council-chamber-strategy {
  background: 
    radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 60%),
    linear-gradient(180deg, #c4b49a 0%, #a8947a 50%, #7a6858 100%);
}
.scn-council-chamber-strategy .table-surface {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: 0 12px 30px rgba(0,0,0,0.5);
  animation: cs-table 6s ease-in-out infinite;
}
.scn-council-chamber-strategy .map-overlay {
  position: absolute; bottom: 35%; left: 20%; right: 20%; height: 25%;
  background: 
    linear-gradient(135deg, #8a7a5a 10%, transparent 10%, transparent 20%, #8a7a5a 20%, #8a7a5a 30%, transparent 30%),
    linear-gradient(45deg, #6a5a3a 0%, #9a8a6a 50%, #6a5a3a 100%);
  border-radius: 4px;
  opacity: 0.8;
  animation: cs-map 8s ease-in-out infinite alternate;
}
.scn-council-chamber-strategy .marker-a {
  position: absolute; bottom: 45%; left: 30%; width: 3%; height: 3%;
  background: radial-gradient(circle, #a0452a 0%, #602010 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px #a0452a;
  animation: cs-marker 2s ease-in-out infinite alternate;
}
.scn-council-chamber-strategy .marker-b {
  position: absolute; bottom: 40%; left: 50%; width: 3%; height: 3%;
  background: radial-gradient(circle, #2a6040 0%, #1a3a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px #2a6040;
  animation: cs-marker 2.5s ease-in-out infinite alternate;
}
.scn-council-chamber-strategy .marker-c {
  position: absolute; bottom: 48%; left: 60%; width: 3%; height: 3%;
  background: radial-gradient(circle, #60402a 0%, #3a2010 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px #60402a;
  animation: cs-marker 1.8s ease-in-out infinite alternate-reverse;
}
.scn-council-chamber-strategy .hand-pointing {
  position: absolute; bottom: 35%; left: 40%; width: 8%; height: 15%;
  background: radial-gradient(ellipse at 50% 40%, #c8b898 0%, #8a7a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  clip-path: polygon(40% 0%, 65% 0%, 55% 60%, 45% 60%);
  animation: cs-hand 3s ease-in-out infinite alternate;
}
.scn-council-chamber-strategy .candle-flame {
  position: absolute; bottom: 30%; left: 55%; width: 2%; height: 4%;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(255,208,128,0.5);
  animation: cs-candle 1.2s ease-in-out infinite alternate;
}
@keyframes cs-table { 0%,100% { transform: rotateX(0); } 50% { transform: rotateX(2deg) translateY(-1px); } }
@keyframes cs-map { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes cs-marker { 0% { transform: scale(0.9) translateY(0); } 50% { transform: scale(1.1) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes cs-hand { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cs-candle { 0% { opacity:0.7; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(1); } }

/* council-chamber-othello-arrives */
.scn-council-chamber-othello-arrives {
  background: 
    radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 50%),
    linear-gradient(180deg, #d0c0a8 0%, #b0a088 50%, #807060 100%);
}
.scn-council-chamber-othello-arrives .bg-arch {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 30%, #6a5a4a 70%, #5a4a3a 100%);
  animation: co-arch 15s ease-in-out infinite alternate;
}
.scn-council-chamber-othello-arrives .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: 
    repeating-linear-gradient(90deg, #7a6a5a 0px, #7a6a5a 20px, #6a5a4a 20px, #6a5a4a 40px);
  transform: perspective(200px) rotateX(60deg);
  transform-origin: bottom;
  animation: co-floor 10s ease-in-out infinite;
}
.scn-council-chamber-othello-arrives .doorway {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(90deg, #1a0a0a 0%, #3a2a1a 50%, #1a0a0a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.8);
  animation: co-door 8s ease-in-out infinite alternate;
}
.scn-council-chamber-othello-arrives .light-rays {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 70%;
  background: linear-gradient(135deg, rgba(255,240,200,0.4) 0%, transparent 80%);
  filter: blur(8px);
  animation: co-rays 12s ease-in-out infinite alternate;
}
.scn-council-chamber-othello-arrives .othello-figure {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: co-figure 6s ease-in-out infinite alternate;
}
.scn-council-chamber-othello-arrives .cape-sweep {
  position: absolute; bottom: 30%; left: 45%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 80% 40% 0 / 0 60% 40% 0;
  transform-origin: left bottom;
  animation: co-cape 7s ease-in-out infinite alternate;
}
@keyframes co-arch { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes co-floor { 0% { transform: perspective(200px) rotateX(60deg) translateY(0); } 50% { transform: perspective(200px) rotateX(58deg) translateY(-2px); } 100% { transform: perspective(200px) rotateX(60deg) translateY(0); } }
@keyframes co-door { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes co-rays { 0% { opacity:0.1; } 50% { opacity:0.5; } 100% { opacity:0.2; } }
@keyframes co-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes co-cape { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }

.scn-council-chamber-iago-advice {
  background:
    radial-gradient(ellipse at 50% 70%, #c48a3c 0%, #2a1e12 70%),
    linear-gradient(180deg, #3b2b1a 0%, #1f130b 40%, #0f0a05 100%);
}
.scn-council-chamber-iago-advice .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2f2216 0%, #1a100a 80%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
}
.scn-council-chamber-iago-advice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1e14 0%, #140e08 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-council-chamber-iago-advice .table {
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #4a3520 0%, #2f1f10 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: perspective(500px) rotateX(10deg);
}
.scn-council-chamber-iago-advice .candle {
  position: absolute; bottom: 33%; left: 50%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #f0d070 0%, #b08030 100%);
  border-radius: 3px;
  transform: translateX(-50%);
  animation: sc1-candle 3s ease-in-out infinite;
}
.scn-council-chamber-iago-advice .glow {
  position: absolute; bottom: 33%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(240,200,100,0.5) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: sc1-glow 3s ease-in-out infinite alternate;
}
.scn-council-chamber-iago-advice .figure-left {
  position: absolute; bottom: 25%; left: 25%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a1e12 0%, #140c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-figure-left 6s ease-in-out infinite alternate;
}
.scn-council-chamber-iago-advice .figure-right {
  position: absolute; bottom: 25%; right: 25%; width: 36px; height: 85px;
  background: linear-gradient(180deg, #2a2018 0%, #140e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-figure-right 8s ease-in-out infinite alternate;
}
.scn-council-chamber-iago-advice .window {
  position: absolute; top: 10%; left: 65%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a6a8a 0%, #2a3a4a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  opacity: 0.3;
  animation: sc1-window 12s ease-in-out infinite alternate;
}
@keyframes sc1-candle {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.9; }
  25% { transform: translateX(-50%) scaleY(1.02); opacity: 1; }
  50% { transform: translateX(-50%) scaleY(0.98); opacity: 0.8; }
  75% { transform: translateX(-50%) scaleY(1.01); opacity: 0.95; }
  100% { transform: translateX(-50%) scaleY(1); opacity: 0.9; }
}
@keyframes sc1-glow {
  0% { transform: translate(-50%, -50%) scale(0.95); opacity: 0.6; }
  50% { transform: translate(-50%, -50%) scale(1.1); opacity: 0.9; }
  100% { transform: translate(-50%, -50%) scale(1); opacity: 0.7; }
}
@keyframes sc1-figure-left {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(2deg) scaleY(1.01); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes sc1-figure-right {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-3px) rotate(-1deg) scaleY(0.99); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes sc1-window {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.02); }
  100% { opacity: 0.3; transform: scaleY(1); }
}

.scn-council-chamber-iago-advice-2 {
  background:
    radial-gradient(ellipse at 40% 60%, #d49440 0%, #2a1e12 75%),
    linear-gradient(180deg, #3b2a18 0%, #1a100a 40%, #0a0604 100%);
}
.scn-council-chamber-iago-advice-2 .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2f2216 0%, #150e08 80%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-council-chamber-iago-advice-2 .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e14 0%, #0f0a05 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
}
.scn-council-chamber-iago-advice-2 .table {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  transform: perspective(400px) rotateX(15deg);
  border-radius: 4px;
}
.scn-council-chamber-iago-advice-2 .candle {
  position: absolute; bottom: 28%; left: 45%; width: 7px; height: 28px;
  background: linear-gradient(180deg, #f0c060 0%, #a07030 100%);
  border-radius: 3px;
  animation: sc2-candle 2.5s ease-in-out infinite;
}
.scn-council-chamber-iago-advice-2 .glow {
  position: absolute; bottom: 28%; left: 45%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(240,180,80,0.4) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: sc2-glow 2.5s ease-in-out infinite alternate;
}
.scn-council-chamber-iago-advice-2 .glow-wide {
  position: absolute; bottom: 28%; left: 45%; width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(240,180,80,0.15) 0%, transparent 80%);
  transform: translate(-50%, -50%);
  animation: sc2-glow-wide 4s ease-in-out infinite alternate;
}
.scn-council-chamber-iago-advice-2 .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #2a1e12 0%, #140c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-figure-left 5s ease-in-out infinite alternate;
}
.scn-council-chamber-iago-advice-2 .figure-right {
  position: absolute; bottom: 20%; right: 18%; width: 38px; height: 90px;
  background: linear-gradient(180deg, #2a2018 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-figure-right 7s ease-in-out infinite alternate;
}
.scn-council-chamber-iago-advice-2 .shadow-wall {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 160px;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(12px);
  transform: translateX(-50%);
  animation: sc2-shadow 8s ease-in-out infinite alternate;
}
@keyframes sc2-candle {
  0% { transform: rotate(-2deg) scaleY(1); opacity: 0.9; }
  30% { transform: rotate(1deg) scaleY(1.03); opacity: 1; }
  60% { transform: rotate(-1deg) scaleY(0.97); opacity: 0.7; }
  100% { transform: rotate(2deg) scaleY(1); opacity: 0.9; }
}
@keyframes sc2-glow {
  0% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.5; }
  50% { transform: translate(-50%, -50%) scale(1.15); opacity: 0.9; }
  100% { transform: translate(-50%, -50%) scale(1); opacity: 0.6; }
}
@keyframes sc2-glow-wide {
  0% { transform: translate(-50%, -50%) scale(1); opacity: 0.2; }
  50% { transform: translate(-50%, -50%) scale(1.1); opacity: 0.4; }
  100% { transform: translate(-50%, -50%) scale(1); opacity: 0.2; }
}
@keyframes sc2-figure-left {
  0% { transform: translateX(0) rotate(-3deg); }
  50% { transform: translateX(8px) rotate(3deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(-3deg); }
}
@keyframes sc2-figure-right {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-5px) rotate(-2deg) scaleY(0.98); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes sc2-shadow {
  0% { transform: translateX(-50%) scaleY(1) skewX(0deg); opacity: 0.5; }
  50% { transform: translateX(-50%) scaleY(1.1) skewX(5deg); opacity: 0.8; }
  100% { transform: translateX(-50%) scaleY(1) skewX(0deg); opacity: 0.5; }
}

.scn-council-chamber-iago-scheme {
  background:
    radial-gradient(ellipse at 60% 50%, #b07a3a 0%, #2a1e12 70%),
    linear-gradient(180deg, #3a2a18 0%, #1a100a 50%, #0a0604 100%);
}
.scn-council-chamber-iago-scheme .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2f2216 0%, #150e08 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
}
.scn-council-chamber-iago-scheme .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #2a1e14 0%, #100a06 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-council-chamber-iago-scheme .table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 7%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  transform: perspective(500px) rotateX(12deg);
  border-radius: 6px;
}
.scn-council-chamber-iago-scheme .candle {
  position: absolute; bottom: 27%; left: 40%; width: 6px; height: 26px;
  background: linear-gradient(180deg, #f0c060 0%, #a07030 100%);
  border-radius: 3px;
  animation: sc3-candle 3.5s ease-in-out infinite;
}
.scn-council-chamber-iago-scheme .glow {
  position: absolute; bottom: 27%; left: 40%; width: 90px; height: 90px;
  background: radial-gradient(circle, rgba(240,180,80,0.4) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: sc3-glow 3.5s ease-in-out infinite alternate;
}
.scn-council-chamber-iago-scheme .figure-left {
  position: absolute; bottom: 18%; left: 35%; width: 42px; height: 95px;
  background: linear-gradient(180deg, #2a1e12 0%, #140c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc3-figure-left 6s ease-in-out infinite alternate;
}
.scn-council-chamber-iago-scheme .figure-right {
  position: absolute; bottom: 18%; right: 30%; width: 36px; height: 85px;
  background: linear-gradient(180deg, #2a2018 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc3-figure-right 8s ease-in-out infinite alternate;
}
.scn-council-chamber-iago-scheme .hand {
  position: absolute; bottom: 26%; left: 48%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8a06a 0%, #8a6030 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(15deg);
  animation: sc3-hand 5s ease-in-out infinite alternate;
}
.scn-council-chamber-iago-scheme .pouch {
  position: absolute; bottom: 24%; left: 52%; width: 24px; height: 18px;
  background: #6a4a2a;
  border-radius: 50% 50% 40% 40%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: sc3-pouch 5s ease-in-out infinite alternate;
}
@keyframes sc3-candle {
  0% { transform: rotate(0deg) scaleY(1); opacity: 0.85; }
  40% { transform: rotate(3deg) scaleY(1.04); opacity: 1; }
  80% { transform: rotate(-2deg) scaleY(0.96); opacity: 0.75; }
  100% { transform: rotate(0deg) scaleY(1); opacity: 0.85; }
}
@keyframes sc3-glow {
  0% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.4; }
  50% { transform: translate(-50%, -50%) scale(1.2); opacity: 0.8; }
  100% { transform: translate(-50%, -50%) scale(0.95); opacity: 0.5; }
}
@keyframes sc3-figure-left {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(10px) rotate(2deg) scaleY(1.01); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes sc3-figure-right {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-6px) rotate(-1deg) scaleY(0.99); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes sc3-hand {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(20deg) translateX(4px) scale(1.02); }
  100% { transform: rotate(15deg) translateX(0); }
}
@keyframes sc3-pouch {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}

.scn-council-chamber-iago-scheme-2 {
  background:
    radial-gradient(ellipse at 50% 55%, #c08030 0%, #2a1e12 75%),
    linear-gradient(180deg, #352818 0%, #1a100a 50%, #0a0604 100%);
}
.scn-council-chamber-iago-scheme-2 .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2f2216 0%, #120c06 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-council-chamber-iago-scheme-2 .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #2a1e14 0%, #0f0a05 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-council-chamber-iago-scheme-2 .table {
  position: absolute; bottom: 22%; left: 28%; width: 44%; height: 7%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  transform: perspective(450px) rotateX(10deg);
  border-radius: 5px;
}
.scn-council-chamber-iago-scheme-2 .candle {
  position: absolute; bottom: 29%; left: 55%; width: 6px; height: 28px;
  background: linear-gradient(180deg, #e8b850 0%, #a07030 100%);
  border-radius: 3px;
  animation: sc4-candle 2s ease-in-out infinite;
}
.scn-council-chamber-iago-scheme-2 .glow {
  position: absolute; bottom: 29%; left: 55%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(232,184,80,0.45) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: sc4-glow 2s ease-in-out infinite alternate;
}
.scn-council-chamber-iago-scheme-2 .figure-left {
  position: absolute; bottom: 18%; left: 30%; width: 44px; height: 98px;
  background: linear-gradient(180deg, #2a1e12 0%, #140c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-figure-left 4s ease-in-out infinite alternate;
}
.scn-council-chamber-iago-scheme-2 .figure-right {
  position: absolute; bottom: 18%; right: 25%; width: 38px; height: 88px;
  background: linear-gradient(180deg, #2a2018 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-figure-right 6s ease-in-out infinite alternate;
}
.scn-council-chamber-iago-scheme-2 .shadow-wall {
  position: absolute; top: 5%; left: 35%; width: 120px; height: 180px;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(15px);
  transform: skewX(-10deg);
  animation: sc4-shadow 6s ease-in-out infinite alternate;
}
.scn-council-chamber-iago-scheme-2 .coin {
  position: absolute; bottom: 26%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0d080 0%, #b08840 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: sc4-coin 3s ease-in-out infinite;
}
@keyframes sc4-candle {
  0% { transform: rotate(0deg) scaleY(1); opacity: 0.9; }
  20% { transform: rotate(5deg) scaleY(1.05); opacity: 1; }
  60% { transform: rotate(-3deg) scaleY(0.95); opacity: 0.7; }
  100% { transform: rotate(0deg) scaleY(1); opacity: 0.9; }
}
@keyframes sc4-glow {
  0% { transform: translate(-50%, -50%) scale(0.85); opacity: 0.4; }
  30% { transform: translate(-50%, -50%) scale(1.25); opacity: 0.9; }
  70% { transform: translate(-50%, -50%) scale(1.05); opacity: 0.5; }
  100% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.4; }
}
@keyframes sc4-figure-left {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(12px) rotate(3deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes sc4-figure-right {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-8px) rotate(-2deg) scaleY(0.98); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes sc4-shadow {
  0% { transform: skewX(-10deg) scaleY(1); opacity: 0.4; }
  50% { transform: skewX(-5deg) scaleY(1.2); opacity: 0.7; }
  100% { transform: skewX(-10deg) scaleY(1); opacity: 0.4; }
}
@keyframes sc4-coin {
  0% { transform: translateY(0) rotate(0deg); opacity: 1; }
  30% { transform: translateY(-8px) rotate(180deg) scale(1.1); opacity: 0.8; }
  60% { transform: translateY(-4px) rotate(360deg) scale(0.95); opacity: 0.9; }
  100% { transform: translateY(0) rotate(720deg); opacity: 1; }
}

/* venice-street-brabantio-anger */
.scn-venice-street-brabantio-anger {
  background: linear-gradient(180deg, #0b0f1f 0%, #1a1e35 40%, #2a2f4a 100%), radial-gradient(ellipse at 50% 100%, #1a1e35 0%, transparent 70%);
}
.scn-venice-street-brabantio-anger .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #050812 0%, #121730 60%, #1a1f3a 100%);
  animation: vsba-sky 8s ease-in-out infinite alternate;
}
.scn-venice-street-brabantio-anger .buildings-bg {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #2a2f45 0%, #1a1e30 100%);
  clip-path: polygon(0% 100%, 0% 0%, 15% 0%, 15% 40%, 25% 40%, 25% 0%, 30% 0%, 30% 50%, 40% 50%, 40% 0%, 55% 0%, 55% 30%, 65% 30%, 65% 0%, 75% 0%, 75% 20%, 85% 20%, 85% 0%, 100% 0%, 100% 100%);
  animation: vsba-buildings 12s ease-in-out infinite alternate;
}
.scn-venice-street-brabantio-anger .canal {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #0f152f 0%, #1a2040 50%, #0f152f 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: vsba-canal 6s ease-in-out infinite alternate;
}
.scn-venice-street-brabantio-anger .bridge {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 25px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #3a3f55 0%, #2a2f40 50%, #1a1f30 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: vsba-bridge 10s ease-in-out infinite alternate;
}
.scn-venice-street-brabantio-anger .figure-brabantio {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: vsba-figure 4s ease-in-out infinite;
}
.scn-venice-street-brabantio-anger .arm-gesture {
  position: absolute; bottom: 40%; left: 42%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: left center;
  animation: vsba-arm 0.8s ease-in-out infinite alternate;
}
.scn-venice-street-brabantio-anger .window-light {
  position: absolute; bottom: 45%; left: 30%; width: 12px; height: 16px;
  background: radial-gradient(circle, #f0c080 0%, #b08040 70%);
  border-radius: 20%;
  box-shadow: 0 0 12px 4px rgba(240,192,128,0.4);
  animation: vsba-window 3s ease-in-out infinite alternate;
}
.scn-venice-street-brabantio-anger .lantern-glow {
  position: absolute; bottom: 30%; left: 55%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 18px 6px rgba(255,208,128,0.6);
  animation: vsba-lantern 2s ease-in-out infinite alternate;
}
@keyframes vsba-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes vsba-buildings { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes vsba-canal { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.9; transform: scaleY(1); } }
@keyframes vsba-bridge { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes vsba-figure { 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 vsba-arm { 0% { transform: rotate(-30deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-30deg); } }
@keyframes vsba-window { 0% { opacity: 0.6; box-shadow: 0 0 8px 2px rgba(240,192,128,0.2); } 50% { opacity: 1; box-shadow: 0 0 16px 6px rgba(240,192,128,0.5); } 100% { opacity: 0.7; box-shadow: 0 0 10px 3px rgba(240,192,128,0.3); } }
@keyframes vsba-lantern { 0% { transform: scale(0.8); opacity: 0.7; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.8; } }

/* venice-street-brabantio-disbelief */
.scn-venice-street-brabantio-disbelief {
  background: linear-gradient(180deg, #0a0e1e 0%, #181d35 40%, #282d45 100%), radial-gradient(ellipse at 50% 100%, #181d35 0%, transparent 70%);
}
.scn-venice-street-brabantio-disbelief .night-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #040710 0%, #101530 60%, #181d3a 100%);
  animation: vsbd-sky 10s ease-in-out infinite alternate;
}
.scn-venice-street-brabantio-disbelief .buildings-bg {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2f45 0%, #1a1e30 100%);
  clip-path: polygon(0% 100%, 0% 0%, 20% 0%, 20% 50%, 35% 50%, 35% 0%, 50% 0%, 50% 40%, 60% 40%, 60% 0%, 80% 0%, 80% 30%, 90% 30%, 90% 0%, 100% 0%, 100% 100%);
  animation: vsbd-buildings 15s ease-in-out infinite alternate;
}
.scn-venice-street-brabantio-disbelief .canal {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #0e142e 0%, #182040 50%, #0e142e 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: vsbd-canal 8s ease-in-out infinite alternate;
}
.scn-venice-street-brabantio-disbelief .wall {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #3a3f50 0%, #2a2e3e 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4);
  animation: vsbd-wall 12s ease-in-out infinite alternate;
}
.scn-venice-street-brabantio-disbelief .figure-brabantio {
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: vsbd-figure-b 5s ease-in-out infinite;
}
.scn-venice-street-brabantio-disbelief .figure-roderigo {
  position: absolute; bottom: 18%; left: 50%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #262638 0%, #161626 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: vsbd-figure-r 6s ease-in-out infinite;
}
.scn-venice-street-brabantio-disbelief .swaying-lantern {
  position: absolute; bottom: 35%; left: 45%; width: 10px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,208,128,0.5);
  animation: vsbd-lantern 3s ease-in-out infinite alternate;
}
.scn-venice-street-brabantio-disbelief .mist {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, transparent 0%, rgba(200,210,230,0.1) 50%, transparent 100%);
  filter: blur(10px);
  animation: vsbd-mist 20s linear infinite;
}
@keyframes vsbd-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes vsbd-buildings { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes vsbd-canal { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.03); } 100% { opacity: 0.8; transform: scaleY(1); } }
@keyframes vsbd-wall { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes vsbd-figure-b { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(-2deg); } 60% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes vsbd-figure-r { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes vsbd-lantern { 0% { transform: rotate(-5deg); box-shadow: 0 0 15px 5px rgba(255,208,128,0.4); } 50% { transform: rotate(5deg); box-shadow: 0 0 25px 10px rgba(255,208,128,0.7); } 100% { transform: rotate(-3deg); box-shadow: 0 0 18px 6px rgba(255,208,128,0.5); } }
@keyframes vsbd-mist { 0% { transform: translateX(-10%); } 50% { transform: translateX(10%); } 100% { transform: translateX(-10%); } }

/* venice-street-iago-leaves */
.scn-venice-street-iago-leaves {
  background: linear-gradient(180deg, #060a18 0%, #121830 40%, #202540 100%), radial-gradient(ellipse at 50% 100%, #121830 0%, transparent 70%);
}
.scn-venice-street-iago-leaves .night-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #03060e 0%, #0d1128 60%, #161a32 100%);
  animation: vsil-sky 9s ease-in-out infinite alternate;
}
.scn-venice-street-iago-leaves .buildings-bg {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #22273e 0%, #12172a 100%);
  clip-path: polygon(0% 100%, 0% 0%, 10% 0%, 10% 30%, 20% 30%, 20% 0%, 30% 0%, 30% 50%, 45% 50%, 45% 0%, 60% 0%, 60% 20%, 70% 20%, 70% 0%, 85% 0%, 85% 40%, 100% 40%, 100% 0%, 100% 100%);
  animation: vsil-buildings 14s ease-in-out infinite alternate;
}
.scn-venice-street-iago-leaves .canal {
  position: absolute; bottom: 8%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0d122a 0%, #161e3a 50%, #0d122a 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
  animation: vsil-canal 7s ease-in-out infinite alternate;
}
.scn-venice-street-iago-leaves .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #1a1e32 0%, #0e1120 100%);
  animation: vsil-ground 5s ease-in-out infinite alternate;
}
.scn-venice-street-iago-leaves .figure-iago {
  position: absolute; bottom: 10%; left: 55%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: vsil-iago 4s ease-in-out infinite;
}
.scn-venice-street-iago-leaves .figure-brabantio-bg {
  position: absolute; bottom: 15%; left: 30%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: vsil-brab 6s ease-in-out infinite;
}
.scn-venice-street-iago-leaves .figure-roderigo-bg {
  position: absolute; bottom: 15%; left: 40%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #262638 0%, #161626 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: vsil-rod 6.5s ease-in-out infinite;
}
.scn-venice-street-iago-leaves .fog-drift {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, transparent 0%, rgba(180,190,210,0.08) 30%, transparent 70%, rgba(180,190,210,0.05) 100%);
  filter: blur(15px);
  animation: vsil-fog 30s linear infinite;
}
.scn-venice-street-iago-leaves .distant-light {
  position: absolute; bottom: 35%; left: 70%; width: 6px; height: 6px;
  background: radial-gradient(circle, #e0c080 0%, #b08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(224,192,128,0.3);
  animation: vsil-light 4s ease-in-out infinite alternate;
}
@keyframes vsil-sky { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes vsil-buildings { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes vsil-canal { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.7; transform: scaleY(1); } }
@keyframes vsil-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes vsil-iago { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(5px) rotate(2deg); } 60% { transform: translateX(12px) rotate(-1deg); } 100% { transform: translateX(20px) rotate(0deg); } }
@keyframes vsil-brab { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes vsil-rod { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes vsil-fog { 0% { transform: translateX(-5%); } 50% { transform: translateX(5%); } 100% { transform: translateX(-5%); } }
@keyframes vsil-light { 0% { opacity: 0.4; box-shadow: 0 0 8px 2px rgba(224,192,128,0.2); } 50% { opacity: 1; box-shadow: 0 0 16px 6px rgba(224,192,128,0.5); } 100% { opacity: 0.5; box-shadow: 0 0 10px 3px rgba(224,192,128,0.3); } }

/* venice-street-brabantio-search */
.scn-venice-street-brabantio-search {
  background: linear-gradient(180deg, #070b1a 0%, #141933 40%, #24294a 100%), radial-gradient(ellipse at 50% 100%, #141933 0%, transparent 70%);
}
.scn-venice-street-brabantio-search .night-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #040710 0%, #101530 60%, #181d3a 100%);
  animation: vsbs-sky 11s ease-in-out infinite alternate;
}
.scn-venice-street-brabantio-search .buildings-bg {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #282d44 0%, #181d30 100%);
  clip-path: polygon(0% 100%, 0% 0%, 12% 0%, 12% 40%, 22% 40%, 22% 0%, 35% 0%, 35% 30%, 50% 30%, 50% 0%, 65% 0%, 65% 50%, 78% 50%, 78% 0%, 90% 0%, 90% 20%, 100% 20%, 100% 0%, 100% 100%);
  animation: vsbs-buildings 16s ease-in-out infinite alternate;
}
.scn-venice-street-brabantio-search .canal {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #0c112a 0%, #161e3a 50%, #0c112a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: vsbs-canal 9s ease-in-out infinite alternate;
}
.scn-venice-street-brabantio-search .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #1a1e32 0%, #0e1120 100%);
  animation: vsbs-street 6s ease-in-out infinite alternate;
}
.scn-venice-street-brabantio-search .figure-brabantio {
  position: absolute; bottom: 12%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: vsbs-brab 5s ease-in-out infinite;
}
.scn-venice-street-brabantio-search .figure-roderigo {
  position: absolute; bottom: 14%; left: 45%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #262638 0%, #161626 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: vsbs-rod 7s ease-in-out infinite;
}
.scn-venice-street-brabantio-search .lantern-beam {
  position: absolute; bottom: 25%; left: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, rgba(255,210,150,0.4) 0%, transparent 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  transform-origin: top center;
  animation: vsbs-beam 2s ease-in-out infinite alternate;
}
.scn-venice-street-brabantio-search .shadow-cast {
  position: absolute; bottom: 0; left: 25%; width: 20%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: vsbs-shadow 4s ease-in-out infinite alternate;
}
.scn-venice-street-brabantio-search .mist-swirl {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 25%;
  background: linear-gradient(90deg, transparent 0%, rgba(180,190,210,0.06) 30%, transparent 70%, rgba(180,190,210,0.03) 100%);
  filter: blur(12px);
  animation: vsbs-mist 25s linear infinite;
}
@keyframes vsbs-sky { 0% { opacity: 0.5; } 50% { opacity: 0.85; } 100% { opacity: 0.65; } }
@keyframes vsbs-buildings { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes vsbs-canal { 0% { opacity: 0.65; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.02); } 100% { opacity: 0.7; transform: scaleY(1); } }
@keyframes vsbs-street { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes vsbs-brab { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes vsbs-rod { 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 vsbs-beam { 0% { transform: rotate(-8deg); opacity: 0.6; } 50% { transform: rotate(8deg); opacity: 1; } 100% { transform: rotate(-6deg); opacity: 0.7; } }
@keyframes vsbs-shadow { 0% { transform: scaleX(0.8); opacity: 0.4; } 50% { transform: scaleX(1.2); opacity: 0.7; } 100% { transform: scaleX(0.9); opacity: 0.5; } }
@keyframes vsbs-mist { 0% { transform: translateX(-8%); } 50% { transform: translateX(8%); } 100% { transform: translateX(-8%); } }

/* scene: venice-street-brabantio-search-2 */
.scn-venice-street-brabantio-search-2 { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0e0e1e 70%, #05050f 100%), radial-gradient(ellipse at 30% 20%, #1a1a3e 0%, transparent 60%); }
.scn-venice-street-brabantio-search-2 .night-sky-vbs { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #111122 0%, #15152a 50%, #0a0a1a 100%); animation: vbs-sky 15s ease-in-out infinite alternate; }
.scn-venice-street-brabantio-search-2 .moon-vbs { position:absolute; top:16%; right:22%; width:28px; height:28px; background: radial-gradient(circle, rgba(200,200,220,0.2) 0%, rgba(150,150,180,0.05) 70%); border-radius:50%; filter: blur(3px); animation: vbs-moon 10s ease-in-out infinite alternate; }
.scn-venice-street-brabantio-search-2 .houses-vbs { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #12121a 0%, #06060c 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.6); animation: vbs-houses 20s ease-in-out infinite alternate; }
.scn-venice-street-brabantio-search-2 .figure-1-vbs { position:absolute; bottom:30%; left:30%; width:16px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #08080f 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vbs-walk-1 5s ease-in-out infinite; }
.scn-venice-street-brabantio-search-2 .figure-2-vbs { position:absolute; bottom:28%; left:55%; width:16px; height:40px; background: linear-gradient(180deg, #1e1e30 0%, #0c0c14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vbs-walk-2 6s ease-in-out infinite 1s; }
.scn-venice-street-brabantio-search-2 .lantern-vbs { position:absolute; bottom:42%; left:40%; width:6px; height:10px; background: #c08030; border-radius:20% 20% 10% 10%; box-shadow: 0 0 12px 3px #b07030, 0 0 24px 6px rgba(160,80,20,0.3); animation: vbs-lantern 3s ease-in-out infinite alternate; }
.scn-venice-street-brabantio-search-2 .cloud-vbs { position:absolute; background: linear-gradient(180deg, rgba(40,40,60,0.3) 0%, rgba(20,20,40,0.05) 100%); border-radius:50%; filter: blur(5px); }
.scn-venice-street-brabantio-search-2 .cloud-a-vbs { top:12%; left:10%; width:70px; height:16px; animation: vbs-drift-a 40s linear infinite; }
.scn-venice-street-brabantio-search-2 .cloud-b-vbs { top:20%; right:5%; width:50px; height:12px; animation: vbs-drift-b 55s linear infinite reverse; }
@keyframes vbs-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes vbs-moon { 0% { opacity:0.2; transform: translateX(0) } 50% { opacity:0.4; transform: translateX(3px) } 100% { opacity:0.25; transform: translateX(0) } }
@keyframes vbs-houses { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes vbs-walk-1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(10px) translateY(0) rotate(0deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(20px) translateY(0) rotate(0deg) } }
@keyframes vbs-walk-2 { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(-5px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-10px) translateY(0) rotate(0deg) } 75% { transform: translateX(-15px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(-20px) translateY(0) rotate(0deg) } }
@keyframes vbs-lantern { 0% { opacity:0.6; box-shadow: 0 0 8px 2px #b07030 } 50% { opacity:1; box-shadow: 0 0 18px 5px #d09040 } 100% { opacity:0.7; box-shadow: 0 0 10px 3px #b07030 } }
@keyframes vbs-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes vbs-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* scene: another-street-othello-iago */
.scn-another-street-othello-iago { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #3a2a5a 70%, #1e1a30 100%), radial-gradient(ellipse at 60% 20%, #4a3a6e 0%, transparent 60%); }
.scn-another-street-othello-iago .night-sky-oi { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a50 0%, #18183a 60%, #0e0e2a 100%); animation: oi-sky 18s ease-in-out infinite alternate; }
.scn-another-street-othello-iago .moon-oi { position:absolute; top:12%; left:25%; width:40px; height:40px; background: radial-gradient(circle, #f0f0ff 0%, #c0c0e0 60%, rgba(200,200,255,0.1) 100%); border-radius:50%; box-shadow: 0 0 30px 8px #a0a0d0, 0 0 60px 20px rgba(160,160,200,0.3); animation: oi-moon 12s ease-in-out infinite alternate; }
.scn-another-street-othello-iago .ground-oi { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #22223a 0%, #101020 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 8px 16px rgba(0,0,0,0.5); animation: oi-ground 15s ease-in-out infinite alternate; }
.scn-another-street-othello-iago .figure-1-oi { position:absolute; bottom:24%; left:35%; width:20px; height:44px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oi-fig1 8s ease-in-out infinite; }
.scn-another-street-othello-iago .figure-2-oi { position:absolute; bottom:22%; left:52%; width:22px; height:46px; background: linear-gradient(180deg, #222238 0%, #0e0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oi-fig2 9s ease-in-out infinite 0.5s; }
.scn-another-street-othello-iago .shadow-oi { position:absolute; bottom:22%; left:38%; width:40px; height:8px; background: #0a0a14; border-radius:50%; filter: blur(3px); opacity:0.4; animation: oi-shadow 8s ease-in-out infinite; }
.scn-another-street-othello-iago .window-oi { position:absolute; top:28%; right:20%; width:14px; height:20px; background: radial-gradient(circle, #d0b080 0%, #806040 70%); border-radius:10% 10% 5% 5%; box-shadow: 0 0 16px 4px #a08060, 0 0 32px 8px rgba(160,128,96,0.3); animation: oi-window 4s ease-in-out infinite alternate; }
.scn-another-street-othello-iago .cloud-oi { position:absolute; background: linear-gradient(180deg, rgba(60,60,100,0.2) 0%, rgba(40,40,80,0.05) 100%); border-radius:50%; filter: blur(4px); }
.scn-another-street-othello-iago .cloud-a-oi { top:18%; left:5%; width:80px; height:18px; animation: oi-drift-a 45s linear infinite; }
.scn-another-street-othello-iago .cloud-b-oi { top:14%; right:5%; width:60px; height:14px; animation: oi-drift-b 60s linear infinite reverse; }
@keyframes oi-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes oi-moon { 0% { opacity:0.7; transform: scale(0.95) translateY(0) } 50% { opacity:1; transform: scale(1.05) translateY(-2px) } 100% { opacity:0.8; transform: scale(0.98) translateY(0) } }
@keyframes oi-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes oi-fig1 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(4px) translateY(-1px) rotate(2deg) } 60% { transform: translateX(8px) translateY(0) rotate(-1deg) } 100% { transform: translateX(12px) translateY(0) rotate(0deg) } }
@keyframes oi-fig2 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(-5px) translateY(-1px) rotate(-2deg) } 60% { transform: translateX(-10px) translateY(0) rotate(1deg) } 100% { transform: translateX(-15px) translateY(0) rotate(0deg) } }
@keyframes oi-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(1.2) } 100% { opacity:0.4; transform: scaleX(1) } }
@keyframes oi-window { 0% { box-shadow: 0 0 8px 2px #a08060; opacity:0.6 } 50% { box-shadow: 0 0 24px 6px #c0a080; opacity:1 } 100% { box-shadow: 0 0 12px 3px #a08060; opacity:0.7 } }
@keyframes oi-drift-a { 0% { transform: translateX(-20px) } 100% { transform: translateX(130vw) } }
@keyframes oi-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-110vw) } }

/* scene: another-street-othello-defiant */
.scn-another-street-othello-defiant { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #3a2a5a 70%, #1e1a30 100%), radial-gradient(ellipse at 40% 30%, #4a3a6e 0%, transparent 50%); }
.scn-another-street-othello-defiant .night-sky-od { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a2a50 0%, #18183a 60%, #0e0e2a 100%); animation: od-sky 20s ease-in-out infinite alternate; }
.scn-another-street-othello-defiant .moon-od { position:absolute; top:8%; right:30%; width:36px; height:36px; background: radial-gradient(circle, #f0f0ff 0%, #c0c0e0 60%, rgba(200,200,255,0.1) 100%); border-radius:50%; box-shadow: 0 0 30px 8px #a0a0d0, 0 0 60px 20px rgba(160,160,200,0.3); animation: od-moon 14s ease-in-out infinite alternate; }
.scn-another-street-othello-defiant .ground-od { position:absolute; bottom:30%; left:0; right:0; height:18%; background: linear-gradient(180deg, #22223a 0%, #101020 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 8px 16px rgba(0,0,0,0.5); animation: od-ground 12s ease-in-out infinite alternate; }
.scn-another-street-othello-defiant .figure-od { position:absolute; bottom:22%; left:45%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: od-figure 10s ease-in-out infinite; }
.scn-another-street-othello-defiant .cloak-od { position:absolute; bottom:22%; left:44%; width:26px; height:36px; background: linear-gradient(180deg, #2a2a3e 0%, #121218 100%); border-radius:60% 60% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: od-cloak 8s ease-in-out infinite; }
.scn-another-street-othello-defiant .cloud-od { position:absolute; background: linear-gradient(180deg, rgba(60,60,100,0.2) 0%, rgba(40,40,80,0.05) 100%); border-radius:50%; filter: blur(4px); }
.scn-another-street-othello-defiant .cloud-a-od { top:16%; left:5%; width:90px; height:20px; animation: od-drift-a 50s linear infinite; }
.scn-another-street-othello-defiant .cloud-b-od { top:12%; right:5%; width:70px; height:16px; animation: od-drift-b 65s linear infinite reverse; }
.scn-another-street-othello-defiant .star-od { position:absolute; top:20%; left:15%; width:4px; height:4px; background: #ffffff; border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,255,255,0.4); animation: od-star 6s ease-in-out infinite alternate; }
@keyframes od-sky { 0% { opacity:0.7 } 50% { opacity:0.95 } 100% { opacity:0.6 } }
@keyframes od-moon { 0% { transform: scale(0.95) translateY(0) } 50% { transform: scale(1.05) translateY(-3px) } 100% { transform: scale(0.98) translateY(0) } }
@keyframes od-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes od-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(2px) rotate(2deg) } 60% { transform: translateX(4px) rotate(-1deg) } 100% { transform: translateX(6px) rotate(0deg) } }
@keyframes od-cloak { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes od-star { 0% { opacity:0.2 } 50% { opacity:0.8 } 100% { opacity:0.3 } }
@keyframes od-drift-a { 0% { transform: translateX(-20px) } 100% { transform: translateX(130vw) } }
@keyframes od-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-110vw) } }

/* scene: another-street-cassio-arrives */
.scn-another-street-cassio-arrives { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #3a2a5a 70%, #1e1a30 100%), radial-gradient(ellipse at 50% 25%, #4a3a6e 0%, transparent 50%); }
.scn-another-street-cassio-arrives .night-sky-ca { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a50 0%, #18183a 60%, #0e0e2a 100%); animation: ca-sky 16s ease-in-out infinite alternate; }
.scn-another-street-cassio-arrives .moon-ca { position:absolute; top:10%; left:20%; width:30px; height:30px; background: radial-gradient(circle, #f0f0ff 0%, #c0c0e0 60%, rgba(200,200,255,0.1) 100%); border-radius:50%; box-shadow: 0 0 30px 8px #a0a0d0, 0 0 60px 20px rgba(160,160,200,0.3); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); animation: ca-moon 13s ease-in-out infinite alternate; }
.scn-another-street-cassio-arrives .ground-ca { position:absolute; bottom:30%; left:0; right:0; height:22%; background: linear-gradient(180deg, #22223a 0%, #101020 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 8px 16px rgba(0,0,0,0.5); animation: ca-ground 14s ease-in-out infinite alternate; }
.scn-another-street-cassio-arrives .figure-1-ca { position:absolute; bottom:22%; left:38%; width:20px; height:44px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-fig1 7s ease-in-out infinite; }
.scn-another-street-cassio-arrives .figure-2-ca { position:absolute; bottom:20%; left:55%; width:22px; height:46px; background: linear-gradient(180deg, #222238 0%, #0e0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-fig2 8s ease-in-out infinite 0.3s; }
.scn-another-street-cassio-arrives .gate-ca { position:absolute; bottom:25%; left:10%; width:80px; height:70px; background: linear-gradient(180deg, #15152a 0%, #0a0a1a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); animation: ca-gate 18s ease-in-out infinite alternate; }
.scn-another-street-cassio-arrives .stone-ca { position:absolute; bottom:28%; left:35%; width:12px; height:8px; background: #1a1a30; border-radius:20% 30% 30% 20%; filter: blur(2px); opacity:0.5; animation: ca-stone 12s ease-in-out infinite; }
.scn-another-street-cassio-arrives .cloud-ca { position:absolute; background: linear-gradient(180deg, rgba(60,60,100,0.2) 0%, rgba(40,40,80,0.05) 100%); border-radius:50%; filter: blur(4px); }
.scn-another-street-cassio-arrives .cloud-a-ca { top:15%; left:8%; width:75px; height:17px; animation: ca-drift-a 48s linear infinite; }
.scn-another-street-cassio-arrives .cloud-b-ca { top:11%; right:8%; width:55px; height:13px; animation: ca-drift-b 62s linear infinite reverse; }
@keyframes ca-sky { 0% { opacity:0.75 } 50% { opacity:0.95 } 100% { opacity:0.65 } }
@keyframes ca-moon { 0% { transform: scale(0.95); opacity:0.7 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(0.98); opacity:0.8 } }
@keyframes ca-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ca-fig1 { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(3px) rotate(1deg) } 60% { transform: translateX(6px) rotate(-1deg) } 100% { transform: translateX(9px) rotate(0deg) } }
@keyframes ca-fig2 { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-4px) rotate(-2deg) } 60% { transform: translateX(-8px) rotate(1deg) } 100% { transform: translateX(-12px) rotate(0deg) } }
@keyframes ca-gate { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ca-stone { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes ca-drift-a { 0% { transform: translateX(-20px) } 100% { transform: translateX(130vw) } }
@keyframes ca-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-110vw) } }

/* Scene: another-street-iago-mocking */
.scn-another-street-iago-mocking {
  background: linear-gradient(180deg, #0a1428 0%, #1a2a44 40%, #2a3a5a 70%, #1a2a3a 100%), radial-gradient(ellipse at 80% 20%, #3a5a7a 0%, transparent 60%);
}
.scn-another-street-iago-mocking .iago-moon { position:absolute; top:8%; left:75%; width:60px; height:60px; background:radial-gradient(circle, #e0e8f0 0%, #b0b8c8 70%, transparent 100%); border-radius:50%; box-shadow:0 0 30px 10px rgba(200,210,230,0.4); animation:iag-moon 12s ease-in-out infinite alternate; }
.scn-another-street-iago-mocking .iago-stars { position:absolute; inset:0; background-image:radial-gradient(circle, #e0e8f0 0.5px, transparent 0.5px); background-size:30px 30px; animation:iag-stars 30s linear infinite; }
.scn-another-street-iago-mocking .iago-street { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:50% 50% 0 0 / 30% 30% 0 0; }
.scn-another-street-iago-mocking .iago-wall-left { position:absolute; bottom:40%; left:0; width:35%; height:60%; background:linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:0 10% 0 0; }
.scn-another-street-iago-mocking .iago-wall-right { position:absolute; bottom:40%; right:0; width:35%; height:60%; background:linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:10% 0 0 0; }
.scn-another-street-iago-mocking .iago-figure { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:40px; height:80px; background:linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:iag-figure 4s ease-in-out infinite; }
.scn-another-street-iago-mocking .iago-hat { position:absolute; bottom:85%; left:50%; transform:translateX(-50%); width:50px; height:30px; background:#1a2a3a; border-radius:50% 50% 0 0; transform-origin:bottom center; animation:iag-hat 4s ease-in-out infinite; }
.scn-another-street-iago-mocking .iago-arm { position:absolute; bottom:45%; left:55%; width:20px; height:8px; background:#1a2a3a; border-radius:50%; transform-origin:left center; animation:iag-arm 2s ease-in-out infinite alternate; }
@keyframes iag-moon { 0% { opacity:0.9; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.85; transform:scale(0.95); } }
@keyframes iag-stars { 0% { background-position:0 0; } 50% { background-position:15px 15px; } 100% { background-position:30px 30px; } }
@keyframes iag-figure { 0% { transform:translateX(-50%) translateY(0) rotate(-2deg); } 25% { transform:translateX(-48%) translateY(-2px) rotate(2deg); } 50% { transform:translateX(-50%) translateY(0) rotate(-2deg); } 75% { transform:translateX(-52%) translateY(-2px) rotate(2deg); } 100% { transform:translateX(-50%) translateY(0) rotate(0); } }
@keyframes iag-hat { 0% { transform:translateX(-50%) rotate(0); } 25% { transform:translateX(-50%) rotate(-5deg); } 50% { transform:translateX(-50%) rotate(5deg); } 75% { transform:translateX(-50%) rotate(-5deg); } 100% { transform:translateX(-50%) rotate(0); } }
@keyframes iag-arm { 0% { transform:rotate(-30deg); } 50% { transform:rotate(0deg); } 100% { transform:rotate(30deg); } }

/* Scene: another-street-othello-brabantio */
.scn-another-street-othello-brabantio {
  background: linear-gradient(180deg, #0a1428 0%, #1a2a44 50%, #2a3a5a 80%, #1a2a3a 100%), radial-gradient(ellipse at 20% 30%, #3a5a7a 0%, transparent 70%);
}
.scn-another-street-othello-brabantio .ob-moon { position:absolute; top:8%; left:20%; width:60px; height:60px; background:radial-gradient(circle, #e0e8f0 0%, #b0b8c8 70%, transparent 100%); border-radius:50%; box-shadow:0 0 30px 10px rgba(200,210,230,0.4); animation:obc-moon 14s ease-in-out infinite alternate; }
.scn-another-street-othello-brabantio .ob-stars { position:absolute; inset:0; background-image:radial-gradient(circle, #e0e8f0 0.5px, transparent 0.5px); background-size:25px 25px; animation:obc-stars 40s linear infinite; }
.scn-another-street-othello-brabantio .ob-street { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:40% 60% 0 0 / 30% 30% 0 0; }
.scn-another-street-othello-brabantio .ob-figure-left { position:absolute; bottom:30%; left:25%; width:45px; height:100px; background:linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:obc-figure-left 8s ease-in-out infinite alternate; }
.scn-another-street-othello-brabantio .ob-figure-right { position:absolute; bottom:30%; right:25%; width:45px; height:100px; background:linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:obc-figure-right 8s ease-in-out infinite alternate; }
.scn-another-street-othello-brabantio .ob-sword-left { position:absolute; bottom:22%; left:27%; width:4px; height:70px; background:linear-gradient(180deg, #c0c8d0 0%, #808890 100%); transform:rotate(20deg); transform-origin:top; animation:obc-sword-left 6s ease-in-out infinite alternate; }
.scn-another-street-othello-brabantio .ob-sword-right { position:absolute; bottom:22%; right:27%; width:4px; height:70px; background:linear-gradient(180deg, #c0c8d0 0%, #808890 100%); transform:rotate(-20deg); transform-origin:top; animation:obc-sword-right 6s ease-in-out infinite alternate; }
.scn-another-street-othello-brabantio .ob-ground { position:absolute; bottom:0; left:0; right:0; height:18%; background:linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); }
@keyframes obc-moon { 0% { opacity:0.9; transform:scale(1); } 50% { opacity:1; transform:scale(1.03); } 100% { opacity:0.85; transform:scale(0.97); } }
@keyframes obc-stars { 0% { background-position:0 0; } 50% { background-position:12.5px 12.5px; } 100% { background-position:25px 25px; } }
@keyframes obc-figure-left { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }
@keyframes obc-figure-right { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }
@keyframes obc-sword-left { 0% { transform:rotate(20deg); } 50% { transform:rotate(18deg); } 100% { transform:rotate(22deg); } }
@keyframes obc-sword-right { 0% { transform:rotate(-20deg); } 50% { transform:rotate(-18deg); } 100% { transform:rotate(-22deg); } }

/* Scene: another-street-accusation */
.scn-another-street-accusation {
  background: linear-gradient(180deg, #0a1220 0%, #0f1a2e 40%, #1a2a3a 70%, #0a1a2a 100%), radial-gradient(ellipse at 60% 40%, #1f3045 0%, transparent 70%);
}
.scn-another-street-accusation .acc-moon { position:absolute; top:5%; right:15%; width:55px; height:55px; background:radial-gradient(circle, #c8d0d8 0%, #a0a8b8 70%, transparent 100%); border-radius:50%; box-shadow:0 0 20px 8px rgba(180,190,200,0.3); animation:acc-moon 10s ease-in-out infinite alternate; }
.scn-another-street-accusation .acc-stars { position:absolute; inset:0; background-image:radial-gradient(circle, #c0c8d0 0.4px, transparent 0.4px); background-size:20px 20px; animation:acc-stars 35s linear infinite; }
.scn-another-street-accusation .acc-street { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #0f1a2a 0%, #050e1a 100%); border-radius:30% 70% 0 0 / 50% 40% 0 0; }
.scn-another-street-accusation .acc-accuser { position:absolute; bottom:30%; left:20%; width:40px; height:90px; background:linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:acc-accuser 6s ease-in-out infinite alternate; }
.scn-another-street-accusation .acc-accused { position:absolute; bottom:30%; right:20%; width:40px; height:90px; background:linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:acc-accused 8s ease-in-out infinite alternate; }
.scn-another-street-accusation .acc-pointing-arm { position:absolute; bottom:42%; left:22%; width:30px; height:6px; background:#1a2a3a; border-radius:50%; transform-origin:right center; transform:rotate(-40deg); animation:acc-arm 4s ease-in-out infinite alternate; }
.scn-another-street-accusation .acc-ground { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #0a1a2a 0%, #030a14 100%); }
@keyframes acc-moon { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.04); } 100% { opacity:0.75; transform:scale(0.96); } }
@keyframes acc-stars { 0% { background-position:0 0; } 50% { background-position:10px 10px; } 100% { background-position:20px 20px; } }
@keyframes acc-accuser { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-3px) rotate(2deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes acc-accused { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes acc-arm { 0% { transform:rotate(-40deg); } 50% { transform:rotate(-35deg); } 100% { transform:rotate(-45deg); } }

/* Scene: another-street-othello-reason */
.scn-another-street-othello-reason {
  background: linear-gradient(180deg, #0a1428 0%, #1a2a44 45%, #2a3a5a 75%, #1a2a3a 100%), radial-gradient(ellipse at 50% 15%, #3a5a7a 0%, transparent 70%);
}
.scn-another-street-othello-reason .or-moon { position:absolute; top:8%; left:70%; width:55px; height:55px; background:radial-gradient(circle, #e0e8f0 0%, #b0b8c8 70%, transparent 100%); border-radius:50%; box-shadow:0 0 30px 10px rgba(200,210,230,0.4); animation:ore-moon 16s ease-in-out infinite alternate; }
.scn-another-street-othello-reason .or-stars { position:absolute; inset:0; background-image:radial-gradient(circle, #e0e8f0 0.5px, transparent 0.5px); background-size:28px 28px; animation:ore-stars 45s linear infinite; }
.scn-another-street-othello-reason .or-street { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:50% 50% 0 0 / 30% 30% 0 0; }
.scn-another-street-othello-reason .or-figure { position:absolute; bottom:28%; left:50%; transform:translateX(-50%); width:45px; height:95px; background:linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ore-figure 10s ease-in-out infinite alternate; }
.scn-another-street-othello-reason .or-hand-left { position:absolute; bottom:40%; left:44%; width:16px; height:20px; background:#1a2a3a; border-radius:50% 50% 0 0; transform:rotate(-30deg); transform-origin:bottom; animation:ore-hand-left 5s ease-in-out infinite alternate; }
.scn-another-street-othello-reason .or-hand-right { position:absolute; bottom:40%; right:44%; width:16px; height:20px; background:#1a2a3a; border-radius:50% 50% 0 0; transform:rotate(30deg); transform-origin:bottom; animation:ore-hand-right 5s ease-in-out infinite alternate; }
.scn-another-street-othello-reason .or-cloak { position:absolute; bottom:28%; left:50%; transform:translateX(-50%); width:55px; height:40px; background:linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:50% 50% 0 0; animation:ore-cloak 8s ease-in-out infinite alternate; }
.scn-another-street-othello-reason .or-ground { position:absolute; bottom:0; left:0; right:0; height:18%; background:linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); }
@keyframes ore-moon { 0% { opacity:0.9; transform:scale(1); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.85; transform:scale(0.98); } }
@keyframes ore-stars { 0% { background-position:0 0; } 50% { background-position:14px 14px; } 100% { background-position:28px 28px; } }
@keyframes ore-figure { 0% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-4px); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes ore-hand-left { 0% { transform:rotate(-30deg); } 50% { transform:rotate(-20deg); } 100% { transform:rotate(-30deg); } }
@keyframes ore-hand-right { 0% { transform:rotate(30deg); } 50% { transform:rotate(20deg); } 100% { transform:rotate(30deg); } }
@keyframes ore-cloak { 0% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(1.02); } 100% { transform:translateX(-50%) scaleY(1); } }

.scn-council-chamber-iago-scheme-3{background:linear-gradient(180deg,#2a1d0f 0%,#4a2e15 100%),radial-gradient(ellipse at 60% 30%,#d4a056 0%,transparent 50%);}
.scn-council-chamber-iago-scheme-3 .bg-walls{position:absolute;inset:0 0 30% 0;background:linear-gradient(135deg,#3a2310,#1f1308)}
.scn-council-chamber-iago-scheme-3 .floor{position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(180deg,#3a2515,#1f1308)}
.scn-council-chamber-iago-scheme-3 .table{position:absolute;bottom:20%;left:25%;width:50%;height:10%;background:linear-gradient(180deg,#5e3b1a,#3a220e);border-radius:4px;box-shadow:0 4px 8px rgba(0,0,0,.6);animation:sc1-table 6s ease-in-out infinite;}
.scn-council-chamber-iago-scheme-3 .candle{position:absolute;bottom:35%;left:48%;width:10px;height:20px;background:linear-gradient(180deg,#ffe5b0 0%,#d49a40 50%,#a66618 100%);border-radius:2px;transform-origin:bottom center;animation:sc1-candle 2s ease-in-out infinite alternate;}
.scn-council-chamber-iago-scheme-3 .iago-fig{position:absolute;bottom:28%;left:30%;width:20px;height:50px;background:linear-gradient(90deg,#1a0f07,#2d1a0c);border-radius:40% 40% 30% 30%/60% 60% 30% 30%;transform:rotate(-10deg);animation:sc1-iago 5s ease-in-out infinite alternate;}
.scn-council-chamber-iago-scheme-3 .roderigo-fig{position:absolute;bottom:28%;right:30%;width:20px;height:48px;background:linear-gradient(90deg,#2d1a0c,#1a0f07);border-radius:40% 40% 30% 30%/60% 60% 30% 30%;transform:rotate(10deg);animation:sc1-roderigo 5s ease-in-out infinite alternate;}
@keyframes sc1-table{0%{transform:translateY(0)}50%{transform:translateY(-1px)}100%{transform:translateY(0)}}
@keyframes sc1-candle{0%{transform:scaleY(1);opacity:.9}50%{transform:scaleY(1.05);opacity:1}100%{transform:scaleY(0.95);opacity:.9}}
@keyframes sc1-iago{0%{transform:rotate(-10deg) translateY(0)}50%{transform:rotate(-8deg) translateY(-1px)}100%{transform:rotate(-12deg) translateY(1px)}}
@keyframes sc1-roderigo{0%{transform:rotate(10deg) translateY(0)}50%{transform:rotate(8deg) translateY(-1px)}100%{transform:rotate(12deg) translateY(1px)}}

.scn-council-chamber-iago-solo{background:linear-gradient(180deg,#1a1a2e 0%,#2a2a3e 30%,#3a3a4e 100%),radial-gradient(ellipse at 80% 20%,#c0b070 0%,transparent 60%);}
.scn-council-chamber-iago-solo .bg-room{position:absolute;inset:0 0 25% 0;background:linear-gradient(180deg,#2a2a3e,#1a1a2e);}
.scn-council-chamber-iago-solo .window-light{position:absolute;top:10%;left:70%;width:30%;height:60%;background:linear-gradient(135deg,rgba(255,255,200,.3) 0%,transparent 100%);clip-path:polygon(0 0,100% 0,80% 100%,20% 100%);animation:sc2-window 8s ease-in-out infinite alternate;}
.scn-council-chamber-iago-solo .desk{position:absolute;bottom:20%;left:25%;width:50%;height:12%;background:linear-gradient(180deg,#5e3b1a,#3a220e);border-radius:4px;box-shadow:0 4px 6px rgba(0,0,0,.5);animation:sc2-desk 10s ease-in-out infinite;}
.scn-council-chamber-iago-solo .purse{position:absolute;bottom:28%;left:35%;width:16px;height:10px;background:linear-gradient(180deg,#8c6b40,#5e4528);border-radius:0 0 8px 8px;animation:sc2-purse 3s ease-in-out infinite alternate;}
.scn-council-chamber-iago-solo .iago-stand{position:absolute;bottom:22%;left:45%;width:22px;height:55px;background:linear-gradient(90deg,#1a0f07,#2d1a0c);border-radius:40% 40% 30% 30%/60% 60% 30% 30%;animation:sc2-iago 6s ease-in-out infinite alternate;}
.scn-council-chamber-iago-solo .shadow-self{position:absolute;bottom:22%;left:45%;width:22px;height:55px;background:rgba(0,0,0,.4);border-radius:40% 40% 30% 30%/60% 60% 30% 30%;transform:translate(10px,5px) scaleX(-1);animation:sc2-shadow 6s ease-in-out infinite alternate;}
@keyframes sc2-window{0%{opacity:.3}50%{opacity:.5}100%{opacity:.3}}
@keyframes sc2-desk{0%{transform:translateY(0)}50%{transform:translateY(-1px)}100%{transform:translateY(0)}}
@keyframes sc2-purse{0%{transform:scaleY(1) translateY(0)}50%{transform:scaleY(1.1) translateY(-1px)}100%{transform:scaleY(1) translateY(0)}}
@keyframes sc2-iago{0%{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(0deg) translateY(-2px)}100%{transform:rotate(5deg) translateY(0)}}
@keyframes sc2-shadow{0%{opacity:.3;transform:translate(10px,5px) scaleX(-1)}50%{opacity:.5;transform:translate(8px,3px) scaleX(-1)}100%{opacity:.3;transform:translate(10px,5px) scaleX(-1)}}

.scn-council-chamber-iago-plot-hatched{background:linear-gradient(180deg,#1a0a0a 0%,#2a1010 100%),radial-gradient(ellipse at 50% 40%,#8a3030 0%,transparent 70%);}
.scn-council-chamber-iago-plot-hatched .bg-dark{position:absolute;inset:0 0 30% 0;background:linear-gradient(180deg,#2a1010,#1a0a0a);}
.scn-council-chamber-iago-plot-hatched .writing-desk{position:absolute;bottom:20%;left:30%;width:40%;height:12%;background:linear-gradient(180deg,#4a2e1a,#2a1a0e);border-radius:4px;box-shadow:0 4px 8px rgba(0,0,0,.7);}
.scn-council-chamber-iago-plot-hatched .candle-flicker{position:absolute;bottom:36%;left:48%;width:12px;height:22px;background:linear-gradient(180deg,#ffe5b0 0%,#d49a40 50%,#a66618 100%);border-radius:2px;transform-origin:bottom center;animation:sc3-candle 2s ease-in-out infinite alternate;}
.scn-council-chamber-iago-plot-hatched .document{position:absolute;bottom:28%;left:42%;width:30px;height:20px;background:linear-gradient(180deg,#f0e0c0 0%,#c0a060 100%);transform:rotate(-5deg);animation:sc3-doc 5s ease-in-out infinite alternate;}
.scn-council-chamber-iago-plot-hatched .quill{position:absolute;bottom:35%;left:55%;width:4px;height:12px;background:linear-gradient(180deg,#e0d0b0 0%,#a08050 50%,#604020 100%);border-radius:2px;transform:rotate(30deg);transform-origin:bottom center;animation:sc3-quill 3s ease-in-out infinite alternate;}
.scn-council-chamber-iago-plot-hatched .iago-write{position:absolute;bottom:18%;left:30%;width:24px;height:55px;background:linear-gradient(90deg,#1a0f07,#2d1a0c);border-radius:40% 40% 30% 30%/60% 60% 30% 30%;animation:sc3-iago 4s ease-in-out infinite alternate;}
.scn-council-chamber-iago-plot-hatched .shadow-monster{position:absolute;bottom:10%;left:10%;right:10%;height:60%;background:radial-gradient(ellipse at 50% 80%,rgba(30,10,10,.6) 0%,transparent 70%);animation:sc3-shadow 7s ease-in-out infinite alternate;}
@keyframes sc3-candle{0%{transform:scaleY(1);opacity:.9}50%{transform:scaleY(1.08);opacity:1}100%{transform:scaleY(0.92);opacity:.9}}
@keyframes sc3-doc{0%{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(-3deg) translateY(-1px)}100%{transform:rotate(-7deg) translateY(1px)}}
@keyframes sc3-quill{0%{transform:rotate(25deg) translateY(0)}50%{transform:rotate(35deg) translateY(-2px)}100%{transform:rotate(25deg) translateY(0)}}
@keyframes sc3-iago{0%{transform:translateX(0) rotate(-2deg)}50%{transform:translateX(-3px) rotate(0deg)}100%{transform:translateX(0) rotate(2deg)}}
@keyframes sc3-shadow{0%{opacity:.4;transform:scaleY(1)}50%{opacity:.6;transform:scaleY(1.1)}100%{opacity:.4;transform:scaleY(1)}}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.ajar { position: absolute; pointer-events: none; }
.ha-figure { position: absolute; pointer-events: none; }
.iago- { position: absolute; pointer-events: none; }
.im-figure { position: absolute; pointer-events: none; }
.looming { position: absolute; pointer-events: none; }
.mh-figure { position: absolute; pointer-events: none; }
.sd-figure { position: absolute; pointer-events: none; }
.streak { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-truth-revealed {
  background: 
    linear-gradient(180deg, #1a1428 0%, #2c1e3a 40%, #1e1424 100%),
    radial-gradient(ellipse at 30% 60%, #3a2a4a 0%, transparent 70%);
}

.scn-truth-revealed .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0f0a14 0%, #1a1428 50%, #14101e 100%);
  animation: tr-fade 10s ease-in-out infinite alternate;
}

.scn-truth-revealed .bed {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1e1424 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 12px rgba(60,30,60,0.6);
  transform: perspective(400px) rotateX(10deg);
  animation: tr-bed 12s ease-in-out infinite;
}

.scn-truth-revealed .figure-down {
  position: absolute; bottom: 18%; left: 30%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #2a1e32 0%, #1a1220 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: tr-figure-down 8s ease-in-out infinite;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
}

.scn-truth-revealed .figure-stand {
  position: absolute; bottom: 18%; left: 55%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #1c1428 0%, #0e0a16 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-figure-stand 6s ease-in-out infinite alternate;
  box-shadow: -8px 0 12px rgba(0,0,0,0.5);
}

.scn-truth-revealed .window {
  position: absolute; top: 14%; right: 12%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, #4a5a6a 0%, #2a3a4a 60%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 4px rgba(30,50,70,0.4);
  animation: tr-window 15s ease-in-out infinite alternate;
}

.scn-truth-revealed .candle {
  position: absolute; bottom: 28%; left: 42%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #a07040 0%, #603818 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 16px 6px #b07848, 0 0 30px 12px rgba(176,120,72,0.4);
  animation: tr-candle 3s ease-in-out infinite alternate;
}

.scn-truth-revealed .shadow {
  position: absolute; bottom: 18%; left: 20%; width: 100px; height: 80px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%);
  filter: blur(8px);
  animation: tr-shadow 8s ease-in-out infinite;
}

@keyframes tr-fade {
  0% { opacity: 0.7 }
  50% { opacity: 1 }
  100% { opacity: 0.8 }
}
@keyframes tr-bed {
  0% { transform: perspective(400px) rotateX(10deg) translateY(0) }
  50% { transform: perspective(400px) rotateX(10deg) translateY(-2px) }
  100% { transform: perspective(400px) rotateX(10deg) translateY(0) }
}
@keyframes tr-figure-down {
  0% { transform: translateY(0) rotate(-1deg) }
  25% { transform: translateY(-2px) rotate(1deg) }
  50% { transform: translateY(0) rotate(0deg) }
  75% { transform: translateY(1px) rotate(-1deg) }
  100% { transform: translateY(0) rotate(0deg) }
}
@keyframes tr-figure-stand {
  0% { transform: translateY(0) rotate(2deg) scale(1) }
  50% { transform: translateY(-3px) rotate(-2deg) scale(0.98) }
  100% { transform: translateY(0) rotate(2deg) scale(1) }
}
@keyframes tr-window {
  0% { opacity: 0.3; box-shadow: 0 0 10px 2px rgba(30,50,70,0.2) }
  50% { opacity: 0.7; box-shadow: 0 0 30px 6px rgba(30,50,70,0.6) }
  100% { opacity: 0.4; box-shadow: 0 0 15px 3px rgba(30,50,70,0.3) }
}
@keyframes tr-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.85 }
}
@keyframes tr-shadow {
  0% { transform: scale(1) translateX(0) }
  50% { transform: scale(1.1) translateX(5px) }
  100% { transform: scale(1) translateX(0) }
}

/* ----- */

.scn-iago-s-end {
  background: 
    linear-gradient(180deg, #0c0a12 0%, #161222 40%, #0e0c1a 100%),
    radial-gradient(ellipse at 60% 40%, #1e1830 0%, transparent 70%);
}

.scn-iago-s-end .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #08060e 0%, #100c1c 50%, #0a0814 100%);
  animation: ie-ambient 12s ease-in-out infinite alternate;
}

.scn-iago-s-end .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1424 0%, #0e0a16 100%);
  border-radius: 0 0 20% 20% / 0 0 8% 8%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  animation: ie-floor 15s ease-in-out infinite;
}

.scn-iago-s-end .knife {
  position: absolute; bottom: 22%; left: 40%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #a08070 0%, #604840 100%);
  border-radius: 2px 10px 10px 2px;
  transform: rotate(30deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: ie-knife 4s ease-in-out infinite alternate;
}

.scn-iago-s-end .handkerchief {
  position: absolute; bottom: 18%; left: 52%; width: 50px; height: 40px;
  background: radial-gradient(ellipse at 40% 50%, #704848 0%, #402828 100%);
  border-radius: 30% 50% 40% 50% / 40% 30% 60% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ie-handkerchief 8s ease-in-out infinite;
}

.scn-iago-s-end .figure-iago {
  position: absolute; bottom: 15%; left: 20%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #1a1420 0%, #0c0810 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ie-figure-iago 6s ease-in-out infinite alternate;
  box-shadow: -4px 0 12px rgba(0,0,0,0.7);
}

.scn-iago-s-end .figure-emilia {
  position: absolute; bottom: 12%; left: 60%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a1828 0%, #0c0a14 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ie-figure-emilia 9s ease-in-out infinite;
  box-shadow: 4px 0 12px rgba(0,0,0,0.6);
}

.scn-iago-s-end .pool {
  position: absolute; bottom: 8%; left: 30%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, #3a1a1a 0%, #1e0e0e 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ie-pool 10s ease-in-out infinite alternate;
}

@keyframes ie-ambient {
  0% { opacity: 0.6 }
  50% { opacity: 1 }
  100% { opacity: 0.7 }
}
@keyframes ie-floor {
  0% { transform: translateY(0) scaleY(1) }
  50% { transform: translateY(-1px) scaleY(1.01) }
  100% { transform: translateY(0) scaleY(1) }
}
@keyframes ie-knife {
  0% { transform: rotate(30deg) scale(1) }
  50% { transform: rotate(25deg) scale(1.02) }
  100% { transform: rotate(30deg) scale(1) }
}
@keyframes ie-handkerchief {
  0% { transform: translateY(0) rotate(-2deg) }
  50% { transform: translateY(-3px) rotate(2deg) }
  100% { transform: translateY(0) rotate(-2deg) }
}
@keyframes ie-figure-iago {
  0% { transform: translateY(0) rotate(3deg) }
  25% { transform: translateY(-4px) rotate(-2deg) }
  50% { transform: translateY(0) rotate(2deg) }
  75% { transform: translateY(2px) rotate(4deg) }
  100% { transform: translateY(0) rotate(3deg) }
}
@keyframes ie-figure-emilia {
  0% { transform: translateY(0) scale(1) }
  33% { transform: translateY(-5px) scale(0.97) }
  66% { transform: translateY(2px) scale(1.02) }
  100% { transform: translateY(0) scale(1) }
}
@keyframes ie-pool {
  0% { opacity: 0.3; transform: scale(1) }
  50% { opacity: 0.6; transform: scale(1.15) }
  100% { opacity: 0.4; transform: scale(0.95) }
}

/* ----- */

.scn-final-scene-list {
  background: 
    linear-gradient(180deg, #1a202a 0%, #2a3040 40%, #1e2430 100%),
    radial-gradient(ellipse at 50% 30%, #3a4050 0%, transparent 70%);
}

.scn-final-scene-list .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #10141e 0%, #1a1e2a 30%, #2a3040 70%, #1e2430 100%);
  animation: fs-sky 20s ease-in-out infinite alternate;
}

.scn-final-scene-list .castle {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 50%;
  background: linear-gradient(180deg, #2a2e3a 0%, #1a1e28 100%);
  border-radius: 8% 8% 4% 4% / 20% 20% 4% 4%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  transform: scaleY(0.9);
  animation: fs-castle 15s ease-in-out infinite alternate;
}

.scn-final-scene-list .window-a,
.scn-final-scene-list .window-b,
.scn-final-scene-list .window-c {
  position: absolute; width: 12px; height: 18px;
  background: radial-gradient(ellipse, #6a7a8a 0%, #3a4a5a 60%, transparent 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 2px rgba(70,90,120,0.4);
  animation: fs-window 8s ease-in-out infinite alternate;
}

.scn-final-scene-list .window-a { bottom: 45%; left: 30%; animation-delay: 0s; }
.scn-final-scene-list .window-b { bottom: 50%; left: 48%; animation-delay: -1.5s; }
.scn-final-scene-list .window-c { bottom: 42%; right: 28%; animation-delay: -3s; }

.scn-final-scene-list .curtain-l {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(90deg, #2a2030 0%, #1a1420 50%, #0e0a14 100%);
  border-radius: 0 40% 40% 0 / 0 50% 50% 0;
  box-shadow: 8px 0 20px rgba(0,0,0,0.6);
  animation: fs-curtain-l 12s ease-in-out infinite alternate;
}

.scn-final-scene-list .curtain-r {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(270deg, #2a2030 0%, #1a1420 50%, #0e0a14 100%);
  border-radius: 40% 0 0 40% / 50% 0 0 50%;
  box-shadow: -8px 0 20px rgba(0,0,0,0.6);
  animation: fs-curtain-r 12s ease-in-out infinite alternate;
}

.scn-final-scene-list .spotlight {
  position: absolute; bottom: 35%; left: 50%; width: 120px; height: 40px;
  background: radial-gradient(ellipse, rgba(160,180,200,0.3) 0%, transparent 70%);
  transform: translateX(-50%) scaleY(0.6);
  filter: blur(10px);
  animation: fs-spotlight 10s ease-in-out infinite alternate;
}

@keyframes fs-sky {
  0% { opacity: 0.5; background-position: 0% 0% }
  50% { opacity: 0.8; background-position: 100% 100% }
  100% { opacity: 0.6; background-position: 0% 0% }
}
@keyframes fs-castle {
  0% { transform: scaleY(0.9) translateY(0) }
  50% { transform: scaleY(0.92) translateY(-3px) }
  100% { transform: scaleY(0.9) translateY(0) }
}
@keyframes fs-window {
  0% { opacity: 0.3; box-shadow: 0 0 5px 1px rgba(70,90,120,0.2) }
  50% { opacity: 0.8; box-shadow: 0 0 18px 4px rgba(70,90,120,0.6) }
  100% { opacity: 0.5; box-shadow: 0 0 10px 2px rgba(70,90,120,0.3) }
}
@keyframes fs-curtain-l {
  0% { transform: translateX(0) scaleX(1) }
  50% { transform: translateX(5%) scaleX(1.02) }
  100% { transform: translateX(0) scaleX(1) }
}
@keyframes fs-curtain-r {
  0% { transform: translateX(0) scaleX(1) }
  50% { transform: translateX(-5%) scaleX(1.02) }
  100% { transform: translateX(0) scaleX(1) }
}
@keyframes fs-spotlight {
  0% { opacity: 0.2; transform: translateX(-50%) scaleY(0.6) }
  50% { opacity: 0.5; transform: translateX(-50%) scaleY(0.7) scaleX(1.1) }
  100% { opacity: 0.3; transform: translateX(-50%) scaleY(0.6) }
}

.scn-iago-s-advice { background: linear-gradient(180deg, #1a1412 0%, #2a1e18 40%, #1c1410 80%), radial-gradient(ellipse at 30% 70%, #3a2818 0%, transparent 70%), linear-gradient(90deg, #12100e 0%, #1e1814 100%); }
.scn-iago-s-advice .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a1e18 0%, #3a2820 30%, #2a1e18 70%); }
.scn-iago-s-advice .bg-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 80%, #0a0806 0%, transparent 60%); animation: si-adv-shadow 8s ease-in-out infinite alternate; }
.scn-iago-s-advice .table { position:absolute; bottom:22%; left:15%; width:70%; height:12%; background: linear-gradient(180deg, #4a3430 0%, #2a1e1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-iago-s-advice .candle { position:absolute; bottom:34%; left:35%; width:6px; height:20px; background: linear-gradient(180deg, #e8d4b0 0%, #b89870 60%, #5a3a28 100%); border-radius: 2px; transform-origin: bottom center; animation: si-adv-candle 3s ease-in-out infinite alternate; }
.scn-iago-s-advice .candle-glow { position:absolute; bottom:40%; left:35%; width:40px; height:40px; transform:translate(-50%,50%); background: radial-gradient(circle, #f0c868 0%, #c88840 40%, #8a5020 70%, transparent 100%); border-radius:50%; animation: si-adv-glow 2.5s ease-in-out infinite alternate; }
.scn-iago-s-advice .figure-iago { position:absolute; bottom:20%; left:20%; width:40px; height:80px; background: linear-gradient(180deg, #1a1412 0%, #0e0c0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-adv-iago 6s ease-in-out infinite; }
.scn-iago-s-advice .figure-roderigo { position:absolute; bottom:20%; right:22%; width:36px; height:76px; background: linear-gradient(180deg, #1e1a18 0%, #10100e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-adv-roderigo 8s ease-in-out infinite; }
.scn-iago-s-advice .coin-pile { position:absolute; bottom:22%; left:40%; width:30px; height:8px; background: radial-gradient(ellipse, #c8a860 0%, #8a6a28 60%, #5a4220 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-iago-s-advice .drape { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); box-shadow: inset -8px 0 16px rgba(0,0,0,.5); animation: si-adv-drape 12s ease-in-out infinite alternate; }
@keyframes si-adv-shadow { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.5; } }
@keyframes si-adv-candle { 0% { transform: scaleY(1) rotate(-2deg); } 25% { transform: scaleY(1.02) rotate(1deg); } 50% { transform: scaleY(0.98) rotate(2deg); } 75% { transform: scaleY(1.01) rotate(-1deg); } 100% { transform: scaleY(1) rotate(0); } }
@keyframes si-adv-glow { 0% { opacity:.7; transform:translate(-50%,50%) scale(.9); } 50% { opacity:1; transform:translate(-50%,50%) scale(1.1); } 100% { opacity:.8; transform:translate(-50%,50%) scale(.95); } }
@keyframes si-adv-iago { 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(1px) rotate(1deg); } }
@keyframes si-adv-roderigo { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-3px) rotate(-3deg); } 66% { transform: translateY(2px) rotate(2deg); } 100% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes si-adv-drape { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }

.scn-cyprus-banter { background: linear-gradient(180deg, #87bece 0%, #b0d4e0 30%, #d4e8ee 50%, #7ca8b4 80%, #4a7880 100%), radial-gradient(ellipse at 50% 0%, #f0e4a0 0%, transparent 70%); }
.scn-cyprus-banter .sky-sea { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c8dce6 0%, #9cbcc6 60%, #6a909a 100%); }
.scn-cyprus-banter .sun-glow { position:absolute; top:8%; left:50%; width:100px; height:100px; transform:translateX(-50%); background: radial-gradient(circle, #f8e8a0 0%, #e8c860 40%, #c8a040 70%, transparent 100%); border-radius:50%; animation: si-ban-sun 12s ease-in-out infinite alternate; }
.scn-cyprus-banter .ship-hull { position:absolute; bottom:30%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #4a3228 0%, #2a1e18 100%); border-radius: 30% 30% 10% 10% / 60% 60% 30% 30%; box-shadow: 0 -4px 12px rgba(0,0,0,.3); animation: si-ban-ship 8s ease-in-out infinite; }
.scn-cyprus-banter .ship-flag { position:absolute; bottom:50%; left:30%; width:24px; height:16px; background: linear-gradient(180deg, #c04028 0%, #a03020 100%); border-radius: 0 40% 10% 0; transform-origin: left center; animation: si-ban-flag 3s ease-in-out infinite alternate; }
.scn-cyprus-banter .figure-desdemona { position:absolute; bottom:22%; left:28%; width:34px; height:70px; background: linear-gradient(180deg, #c8b098 0%, #a88870 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-ban-desde 4s ease-in-out infinite; }
.scn-cyprus-banter .figure-othello { position:absolute; bottom:20%; right:25%; width:40px; height:74px; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-ban-othello 5s ease-in-out infinite; }
.scn-cyprus-banter .figure-iago2 { position:absolute; bottom:24%; left:44%; width:36px; height:72px; background: linear-gradient(180deg, #2a2220 0%, #161210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-ban-iago2 6s ease-in-out infinite; }
.scn-cyprus-banter .gull { position:absolute; top:12%; background: linear-gradient(180deg, #e8e8e8 0%, #c8c8c8 100%); border-radius: 50%; filter: blur(1px); }
.scn-cyprus-banter .gull-1 { width:30px; height:8px; left:20%; animation: si-ban-gull1 18s linear infinite; }
.scn-cyprus-banter .gull-2 { width:22px; height:6px; right:30%; animation: si-ban-gull2 22s linear infinite; }
@keyframes si-ban-sun { 0% { opacity:.85; transform:translateX(-50%) scale(.95); } 50% { opacity:1; transform:translateX(-50%) scale(1.05); } 100% { opacity:.9; transform:translateX(-50%) scale(.98); } }
@keyframes si-ban-ship { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-4px) rotate(.5deg); } 50% { transform: translateY(2px) rotate(-.3deg); } 75% { transform: translateY(-2px) rotate(.3deg); } 100% { transform: translateY(1px) rotate(-.2deg); } }
@keyframes si-ban-flag { 0% { transform: rotate(0); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-10deg); } }
@keyframes si-ban-desde { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(4px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes si-ban-othello { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes si-ban-iago2 { 0% { transform: translateX(0) scaleY(1); } 30% { transform: translateX(3px) scaleY(1.02); } 60% { transform: translateX(-2px) scaleY(0.98); } 100% { transform: translateX(1px) scaleY(1); } }
@keyframes si-ban-gull1 { 0% { transform: translateX(-40px) translateY(0); } 25% { transform: translateX(20vw) translateY(-8px); } 50% { transform: translateX(60vw) translateY(4px); } 75% { transform: translateX(80vw) translateY(-4px); } 100% { transform: translateX(120vw) translateY(0); } }
@keyframes si-ban-gull2 { 0% { transform: translateX(0) translateY(0); } 33% { transform: translateX(-30vw) translateY(-6px); } 66% { transform: translateX(20vw) translateY(3px); } 100% { transform: translateX(-100vw) translateY(0); } }

.scn-cassio-disgraced { background: linear-gradient(180deg, #d8c8b0 0%, #c8b098 40%, #b09880 70%, #8a7868 100%), radial-gradient(ellipse at 50% 0%, #e8dcc8 0%, transparent 80%); }
.scn-cassio-disgraced .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(90deg, #6a5a4a 0%, #5a4a3a 25%, #6a5a4a 50%, #5a4a3a 75%, #6a5a4a 100%); background-size: 12% 100%; }
.scn-cassio-disgraced .wall-panel { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.15); }
.scn-cassio-disgraced .bench { position:absolute; bottom:38%; left:10%; width:40%; height:6%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-cassio-disgraced .figure-cassio { position:absolute; bottom:28%; left:20%; width:38px; height:70px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-cass-cass 4s ease-in-out infinite; }
.scn-cassio-disgraced .figure-montano { position:absolute; bottom:30%; right:20%; width:36px; height:68px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-cass-mont 5s ease-in-out infinite; }
.scn-cassio-disgraced .figure-iago3 { position:absolute; bottom:26%; left:42%; width:34px; height:72px; background: linear-gradient(180deg, #2a2220 0%, #1a1412 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-cass-iago3 6s ease-in-out infinite; }
.scn-cassio-disgraced .wine-cup { position:absolute; bottom:38%; left:32%; width:14px; height:18px; background: linear-gradient(180deg, #a08878 0%, #806860 100%); border-radius: 2px 2px 10px 10px; transform-origin: bottom center; animation: si-cass-cup 3s ease-in-out infinite; }
.scn-cassio-disgraced .blood-spatter { position:absolute; bottom:36%; right:30%; width:18px; height:12px; background: radial-gradient(ellipse, #7a1a14 0%, #5a100c 60%, transparent 100%); border-radius: 50%; filter: blur(1px); }
@keyframes si-cass-cass { 0% { transform: translateX(0) rotate(0); } 20% { transform: translateX(6px) rotate(4deg); } 40% { transform: translateX(-3px) rotate(-2deg); } 60% { transform: translateX(4px) rotate(2deg); } 80% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(1px) rotate(0); } }
@keyframes si-cass-mont { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-4px) rotate(-3deg); } 66% { transform: translateY(2px) rotate(2deg); } 100% { transform: translateY(-1px) rotate(0); } }
@keyframes si-cass-iago3 { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(3px) scaleY(1.02); } 50% { transform: translateX(-2px) scaleY(0.98); } 75% { transform: translateX(1px) scaleY(1.01); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes si-cass-cup { 0% { transform: rotate(0) translateY(0); } 20% { transform: rotate(15deg) translateY(-2px); } 40% { transform: rotate(-10deg) translateY(1px); } 60% { transform: rotate(8deg) translateY(-1px); } 80% { transform: rotate(-5deg) translateY(2px); } 100% { transform: rotate(2deg) translateY(0); } }

.scn-iago-s-scheme { background: linear-gradient(180deg, #1e1a16 0%, #2a221c 40%, #221a16 80%, #161210 100%), radial-gradient(ellipse at 40% 60%, #3a2a20 0%, transparent 70%); }
.scn-iago-s-scheme .dark-bg { position:absolute; inset:0; background: linear-gradient(90deg, #161210 0%, #221c18 50%, #1a1612 100%); }
.scn-iago-s-scheme .corridor-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a221c 0%, #1e1814 60%, #161210 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-iago-s-scheme .archway { position:absolute; top:5%; left:30%; width:40%; height:50%; background: linear-gradient(180deg, #1a1410 0%, #120e0c 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.3); }
.scn-iago-s-scheme .figure-cassio2 { position:absolute; bottom:18%; left:25%; width:36px; height:72px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-schm-cass2 6s ease-in-out infinite; }
.scn-iago-s-scheme .figure-iago4 { position:absolute; bottom:20%; right:22%; width:38px; height:76px; background: linear-gradient(180deg, #2a2220 0%, #1a1412 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-schm-iago4 8s ease-in-out infinite; }
.scn-iago-s-scheme .lantern-glow { position:absolute; top:15%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #d0a858 0%, #a07830 40%, #60481a 70%, transparent 100%); border-radius:50%; animation: si-schm-lantern 4s ease-in-out infinite alternate; }
.scn-iago-s-scheme .shadow-bars { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0%, transparent 6%, rgba(0,0,0,.15) 6%, rgba(0,0,0,.15) 8%, transparent 8%, transparent 14%); }
.scn-iago-s-scheme .dust-mote { position:absolute; top:30%; left:40%; width:6px; height:6px; background: rgba(200,180,140,.3); border-radius:50%; filter: blur(2px); animation: si-schm-dust 12s ease-in-out infinite; }
@keyframes si-schm-cass2 { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(2px) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(0); } }
@keyframes si-schm-iago4 { 0% { transform: translateX(0) scaleY(1); } 30% { transform: translateX(4px) scaleY(1.02); } 60% { transform: translateX(-3px) scaleY(0.98); } 100% { transform: translateX(1px) scaleY(1); } }
@keyframes si-schm-lantern { 0% { opacity:.6; transform:translateX(-50%) scale(.9); } 50% { opacity:.9; transform:translateX(-50%) scale(1.08); } 100% { opacity:.7; transform:translateX(-50%) scale(.95); } }
@keyframes si-schm-dust { 0% { transform: translate(0, 0) scale(1); opacity:.3; } 25% { transform: translate(8px, -6px) scale(1.2); opacity:.5; } 50% { transform: translate(-4px, -12px) scale(0.8); opacity:.2; } 75% { transform: translate(6px, -8px) scale(1.1); opacity:.4; } 100% { transform: translate(-2px, -4px) scale(1); opacity:.3; } }

.scn-desdemona-s-tears {
  background: linear-gradient(180deg, #1e1e2f 0%, #2a2a3a 30%, #1a1a2a 70%, #0e0e18 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%);
}
.scn-desdemona-s-tears .bg { position:absolute; inset:0; background:linear-gradient(135deg, #121218 0%, #1c1c28 100%); }
.scn-desdemona-s-tears .wall { position:absolute; left:10%; right:10%; top:5%; bottom:20%; background:linear-gradient(180deg, #2c2c3a 0%, #1c1c2a 100%); border-radius: 4px; box-shadow: inset 0 0 30px #0a0a14; animation: dst-wall 12s ease-in-out infinite alternate; }
.scn-desdemona-s-tears .desdemona { position:absolute; left:20%; bottom:25%; width:30px; height:50px; background:linear-gradient(180deg, #3a3040 0%, #1e1a24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dst-des 4s ease-in-out infinite; }
.scn-desdemona-s-tears .iago { position:absolute; right:25%; bottom:20%; width:35px; height:55px; background:linear-gradient(180deg, #2a2a30 0%, #0e0e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:scaleX(-1); animation: dst-iago 6s ease-in-out infinite; }
.scn-desdemona-s-tears .candle { position:absolute; top:15%; left:20%; width:4px; height:16px; background:linear-gradient(180deg, #c08040 0%, #8a5a2a 100%); border-radius: 2px; box-shadow: 0 0 20px 6px #c08040; animation: dst-candle 2s ease-in-out infinite alternate; }
.scn-desdemona-s-tears .tears { position:absolute; left:22%; bottom:55%; width:4px; height:6px; background:linear-gradient(180deg, #6a8abe 0%, #3a5a7e 100%); border-radius: 50%; filter: blur(1px); animation: dst-tears 5s ease-in-out infinite; }
.scn-desdemona-s-tears .shadow { position:absolute; left:15%; right:15%; bottom:0; height:30%; background:linear-gradient(180deg, transparent 0%, #0a0a14 100%); animation: dst-shadow 8s ease-in-out infinite alternate; }
@keyframes dst-wall { 0% { opacity:0.9; transform:scaleX(1); } 50% { opacity:0.7; transform:scaleX(0.97); } 100% { opacity:0.9; transform:scaleX(1); } }
@keyframes dst-des { 0% { transform:translateX(0) translateY(0) rotate(-1deg); } 25% { transform:translateX(-2px) translateY(2px) rotate(1deg); } 50% { transform:translateX(0) translateY(0) rotate(-1deg); } 75% { transform:translateX(2px) translateY(2px) rotate(1deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes dst-iago { 0% { transform:scaleX(-1) translateX(0) translateY(0) rotate(0deg); } 50% { transform:scaleX(-1) translateX(4px) translateY(-2px) rotate(3deg); } 100% { transform:scaleX(-1) translateX(0) translateY(0) rotate(0deg); } }
@keyframes dst-candle { 0% { opacity:0.7; transform:scaleY(1) scaleX(1); } 50% { opacity:1; transform:scaleY(1.05) scaleX(0.95); } 100% { opacity:0.8; transform:scaleY(0.95) scaleX(1.05); } }
@keyframes dst-tears { 0% { transform:translateY(0) rotate(0deg); opacity:0; } 10% { opacity:0.6; } 30% { transform:translateY(30px) rotate(10deg); opacity:0; } 100% { transform:translateY(30px) rotate(10deg); opacity:0; } }
@keyframes dst-shadow { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-willow-song {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1410 30%, #1e0e0c 70%, #0a0505 100%),
              radial-gradient(ellipse at 50% 100%, #3a1a12 0%, transparent 70%);
}
.scn-willow-song .bg { position:absolute; inset:0; background:radial-gradient(ellipse at 40% 60%, #2a1410 0%, #0e0705 100%); }
.scn-willow-song .fire { position:absolute; left:50%; bottom:10%; width:40px; height:50px; transform:translateX(-50%); background:radial-gradient(ellipse at 50% 100%, #ff8020 0%, #d06010 30%, #8a3a0a 60%, transparent 100%); border-radius:60% 60% 40% 40%; box-shadow: 0 0 40px 20px #d06010; animation: wls-fire 3s ease-in-out infinite alternate; }
.scn-willow-song .desdemona { position:absolute; left:30%; bottom:25%; width:28px; height:48px; background:linear-gradient(180deg, #3a2820 0%, #1e1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wls-des 8s ease-in-out infinite; }
.scn-willow-song .willow { position:absolute; left:60%; bottom:10%; width:8px; height:60px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 4px; transform-origin: bottom center; animation: wls-willow 6s ease-in-out infinite; }
.scn-willow-song .willow::before, .scn-willow-song .willow::after { content:''; position:absolute; top:10%; left:50%; width:2px; height:20px; background:#3a2a1a; border-radius:50%; transform-origin: top left; } /* pseudo-elements for branches – allowed per spec */
.scn-willow-song .song-particles { position:absolute; left:20%; bottom:40%; width:6px; height:6px; background:radial-gradient(circle, #c0a080 0%, transparent 70%); border-radius:50%; filter:blur(2px); animation: wls-particles 10s linear infinite; }
.scn-willow-song .shadow { position:absolute; left:20%; right:20%; bottom:0; height:40%; background:linear-gradient(180deg, transparent 0%, #0e0705 100%); animation: wls-shadow 12s ease-in-out infinite alternate; }
@keyframes wls-fire { 0% { opacity:0.8; transform:translateX(-50%) scaleY(0.95) scaleX(1); } 50% { opacity:1; transform:translateX(-50%) scaleY(1.1) scaleX(0.9); } 100% { opacity:0.9; transform:translateX(-50%) scaleY(1) scaleX(1); } }
@keyframes wls-des { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 25% { transform:translateX(-2px) translateY(2px) rotate(-2deg); } 50% { transform:translateX(0) translateY(0) rotate(0deg); } 75% { transform:translateX(2px) translateY(2px) rotate(2deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes wls-willow { 0% { transform:rotate(-3deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-3deg); } }
@keyframes wls-particles { 0% { transform:translateY(0) translateX(0) scale(1); opacity:0.6; } 50% { transform:translateY(-30px) translateX(15px) scale(0.5); opacity:0.3; } 100% { transform:translateY(-60px) translateX(-10px) scale(0.2); opacity:0; } }
@keyframes wls-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

.scn-ambush-darkness {
  background: linear-gradient(180deg, #0a0a12 0%, #10101a 40%, #08080e 70%, #020205 100%),
              radial-gradient(ellipse at 50% 100%, #12121e 0%, transparent 70%);
}
.scn-ambush-darkness .bg { position:absolute; inset:0; background:linear-gradient(160deg, #0e0e16 0%, #04040a 100%); }
.scn-ambush-darkness .ground { position:absolute; left:0; right:0; bottom:0; height:35%; background:linear-gradient(180deg, #14141c 0%, #0a0a10 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-ambush-darkness .cassio { position:absolute; left:30%; bottom:35%; width:30px; height:48px; background:linear-gradient(180deg, #1e1e2a 0%, #0e0e16 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: amb-cassio 4s ease-in-out infinite; }
.scn-ambush-darkness .iago { position:absolute; right:35%; bottom:30%; width:32px; height:50px; background:linear-gradient(180deg, #161620 0%, #08080e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: amb-iago 3s ease-in-out infinite; }
.scn-ambush-darkness .roderigo { position:absolute; left:55%; bottom:20%; width:28px; height:45px; background:linear-gradient(180deg, #1a1a24 0%, #0a0a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: amb-roderigo 5s ease-in-out infinite; }
.scn-ambush-darkness .blade-flash { position:absolute; left:40%; bottom:40%; width:2px; height:20px; background:linear-gradient(180deg, #c0c0d0 0%, #606080 100%); border-radius:1px; box-shadow: 0 0 8px 4px #a0a0b0; animation: amb-blade 2s ease-in-out infinite; }
.scn-ambush-darkness .darkness { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 50%, transparent 0%, #020205 80%); animation: amb-dark 10s ease-in-out infinite alternate; }
@keyframes amb-cassio { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 20% { transform:translateX(-3px) translateY(-2px) rotate(-3deg); } 40% { transform:translateX(2px) translateY(3px) rotate(2deg); } 60% { transform:translateX(-2px) translateY(-1px) rotate(-1deg); } 80% { transform:translateX(4px) translateY(2px) rotate(4deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes amb-iago { 0% { transform:rotate(0deg); } 50% { transform:rotate(6deg); } 100% { transform:rotate(0deg); } }
@keyframes amb-roderigo { 0% { transform:translateX(0) scaleX(1); } 25% { transform:translateX(-5px) scaleX(1.02); } 50% { transform:translateX(0) scaleX(1); } 75% { transform:translateX(5px) scaleX(0.98); } 100% { transform:translateX(0) scaleX(1); } }
@keyframes amb-blade { 0% { opacity:0; transform:rotate(-20deg) translateY(0) scaleY(1); } 25% { opacity:1; transform:rotate(-30deg) translateY(10px) scaleY(1.5); } 50% { opacity:0; transform:rotate(-40deg) translateY(20px) scaleY(1); } 75% { opacity:1; transform:rotate(20deg) translateY(10px) scaleY(1.2); } 100% { opacity:0; transform:rotate(30deg) translateY(0) scaleY(1); } }
@keyframes amb-dark { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-desdemona-s-death {
  background: linear-gradient(180deg, #0e0e14 0%, #1a1518 30%, #121012 70%, #08080a 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a20 0%, transparent 70%);
}
.scn-desdemona-s-death .bg { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 30%, #1a1518 0%, #060608 100%); }
.scn-desdemona-s-death .bed { position:absolute; left:30%; right:30%; bottom:20%; height:30%; background:linear-gradient(180deg, #2a2020 0%, #1a1212 100%); border-radius: 8px 8px 30px 30px; box-shadow: 0 4px 12px #0a0606; animation: dth-bed 10s ease-in-out infinite alternate; }
.scn-desdemona-s-death .desdemona { position:absolute; left:38%; bottom:30%; width:24px; height:32px; background:linear-gradient(180deg, #3a2a2a 0%, #1e1414 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dth-des 12s ease-in-out infinite; }
.scn-desdemona-s-death .othello { position:absolute; right:35%; bottom:25%; width:32px; height:52px; background:linear-gradient(180deg, #1e1e24 0%, #0a0a0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dth-othello 8s ease-in-out infinite; }
.scn-desdemona-s-death .candle { position:absolute; top:20%; left:25%; width:3px; height:14px; background:linear-gradient(180deg, #c06030 0%, #804020 100%); border-radius:2px; box-shadow: 0 0 12px 4px #c06030; animation: dth-candle 4s ease-in-out infinite alternate; }
.scn-desdemona-s-death .curtains { position:absolute; left:5%; right:5%; top:5%; bottom:30%; background:linear-gradient(180deg, #2a1e1e 0%, #1a1212 50%, #0e0a0a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: dth-curtains 15s ease-in-out infinite alternate; }
.scn-desdemona-s-death .shadows { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 30%, transparent 30%, #060608 80%); animation: dth-shadows 20s ease-in-out infinite alternate; }
@keyframes dth-bed { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:0.9; transform:scale(0.98); } 100% { opacity:0.7; transform:scale(1); } }
@keyframes dth-des { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 33% { transform:translateX(-1px) translateY(1px) rotate(-1deg); } 66% { transform:translateX(1px) translateY(-1px) rotate(1deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes dth-othello { 0% { transform:rotate(0deg); } 50% { transform:rotate(5deg) translateY(-3px); } 100% { transform:rotate(0deg); } }
@keyframes dth-candle { 0% { opacity:0.5; transform:scaleY(0.9) scaleX(1); } 50% { opacity:0.8; transform:scaleY(1.1) scaleX(0.9); } 100% { opacity:0.6; transform:scaleY(0.95) scaleX(1.05); } }
@keyframes dth-curtains { 0% { opacity:0.6; transform:translateY(0); } 50% { opacity:0.8; transform:translateY(4px); } 100% { opacity:0.5; transform:translateY(0); } }
@keyframes dth-shadows { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* Scene: handkerchief-revealed */
.scn-handkerchief-revealed {
  background:
    linear-gradient(180deg, #0c1a2e 0%, #16283f 50%, #1a3050 100%),
    radial-gradient(ellipse at 70% 30%, #2a4a6a 0%, transparent 60%);
}
.scn-handkerchief-revealed .sky { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(120,160,200,0.05) 2px, rgba(120,160,200,0.05) 4px); }
.scn-handkerchief-revealed .moon { position:absolute; top:8%; right:20%; width:60px; height:60px; background: radial-gradient(circle at 30% 30%, #d8e8f0 0%, #a0b8d0 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(160,184,208,0.4), 0 0 120px 40px rgba(160,184,208,0.2); animation: hkr-moon 20s ease-in-out infinite alternate; }
.scn-handkerchief-revealed .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 20% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); }
.scn-handkerchief-revealed .building-left { position:absolute; bottom:35%; left:5%; width:25%; height:45%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -5px 15px rgba(0,0,0,0.5); animation: hkr-bld 25s ease-in-out infinite; }
.scn-handkerchief-revealed .building-right { position:absolute; bottom:35%; right:5%; width:20%; height:50%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -5px 15px rgba(0,0,0,0.5); animation: hkr-bld 30s ease-in-out infinite reverse; }
.scn-handkerchief-revealed .cassio { position:absolute; bottom:38%; left:35%; width:28px; height:48px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom; animation: hkr-cassio 4s ease-in-out infinite; }
.scn-handkerchief-revealed .bianca { position:absolute; bottom:38%; left:55%; width:22px; height:46px; background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom; animation: hkr-bianca 5s ease-in-out infinite 0.5s; }
.scn-handkerchief-revealed .handkerchief { position:absolute; bottom:50%; left:43%; width:24px; height:20px; background: radial-gradient(ellipse at 50% 30%, #d8c8a0 0%, #b8a880 100%); border-radius: 10% 10% 10% 10% / 20% 20% 20% 20%; transform: rotate(-15deg); box-shadow: 0 0 30px 8px rgba(184,168,128,0.5); animation: hkr-handkerchief 3s ease-in-out infinite; }
.scn-handkerchief-revealed .othello-shadow { position:absolute; bottom:35%; left:15%; width:20px; height:40px; background: linear-gradient(180deg, #0a1a1a 0%, #000a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; opacity:0.8; animation: hkr-othello 6s ease-in-out infinite; }
@keyframes hkr-moon { 0% { transform: translateX(0) scale(1); opacity:0.9; } 50% { transform: translateX(10px) scale(1.05); opacity:1; } 100% { transform: translateX(-5px) scale(0.95); opacity:0.85; } }
@keyframes hkr-bld { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes hkr-cassio { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes hkr-bianca { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 33% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); } 66% { transform: translateX(-6px) translateY(0) rotate(0); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes hkr-handkerchief { 0% { transform: rotate(-15deg) translateY(0); opacity:0.9; } 50% { transform: rotate(-10deg) translateY(-12px) scale(1.1); opacity:1; } 100% { transform: rotate(-20deg) translateY(0); opacity:0.8; } }
@keyframes hkr-othello { 0% { transform: scaleY(1) translateX(0); } 40% { transform: scaleY(1.02) translateX(2px); } 60% { transform: scaleY(0.98) translateX(-1px); } 100% { transform: scaleY(1) translateX(0); } }

/* Scene: othello-strikes-desdemona */
.scn-othello-strikes-desdemona {
  background:
    linear-gradient(180deg, #f0e6d0 0%, #d8c8a8 40%, #b8a880 100%),
    radial-gradient(ellipse at 80% 20%, #f0f0d0 0%, transparent 60%);
}
.scn-othello-strikes-desdemona .sun { position:absolute; top:5%; right:15%; width:80px; height:80px; background: radial-gradient(circle at 40% 40%, #fff8e0 0%, #f0d090 100%); border-radius:50%; box-shadow: 0 0 100px 40px rgba(240,208,144,0.5), 0 0 200px 80px rgba(240,208,144,0.2); animation: osd-sun 30s ease-in-out infinite alternate; }
.scn-othello-strikes-desdemona .sky-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(240,230,208,0.6) 0%, rgba(216,200,168,0.3) 100%); }
.scn-othello-strikes-desdemona .ground-sunlit { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8b898 0%, #a09070 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); border-radius: 30% 20% 0 0; }
.scn-othello-strikes-desdemona .column-left { position:absolute; bottom:40%; left:12%; width:6%; height:40%; background: linear-gradient(180deg, #d8c8a8 0%, #b8a880 100%); border-radius: 4% 4% 0 0; box-shadow: inset -3px 0 8px rgba(0,0,0,0.2); }
.scn-othello-strikes-desdemona .column-right { position:absolute; bottom:40%; right:12%; width:6%; height:40%; background: linear-gradient(180deg, #d8c8a8 0%, #b8a880 100%); border-radius: 4% 4% 0 0; box-shadow: inset 3px 0 8px rgba(0,0,0,0.2); }
.scn-othello-strikes-desdemona .othello-figure { position:absolute; bottom:42%; left:38%; width:32px; height:52px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 45% 45% 30% 30% / 55% 55% 40% 40%; transform-origin: bottom; box-shadow: -8px 0 12px rgba(0,0,0,0.5); animation: osd-othello 2s ease-in-out infinite; }
.scn-othello-strikes-desdemona .desdemona-fallen { position:absolute; bottom:35%; left:48%; width:24px; height:38px; background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(20deg); transform-origin: bottom; animation: osd-desdemona 3s ease-in-out infinite; }
.scn-othello-strikes-desdemona .shadow-sharp { position:absolute; bottom:40%; left:35%; width:40px; height:20px; background: #1a1a1a; filter: blur(2px); opacity:0.5; animation: osd-shadow 2s ease-in-out infinite; }
.scn-othello-strikes-desdemona .lodovico-distant { position:absolute; bottom:42%; right:20%; width:16px; height:34px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; opacity:0.7; animation: osd-lodovico 6s ease-in-out infinite; }
@keyframes osd-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.02); } 100% { transform: translateX(-5px) scale(0.98); } }
@keyframes osd-othello { 0% { transform: translateY(0) rotate(0) scaleY(1); } 20% { transform: translateY(-2px) rotate(-5deg) scaleY(1.05); } 40% { transform: translateY(0) rotate(0) scaleY(1); } 60% { transform: translateY(-1px) rotate(5deg) scaleY(1.02); } 100% { transform: translateY(0) rotate(0) scaleY(1); } }
@keyframes osd-desdemona { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-3px); } 100% { transform: rotate(22deg) translateY(0); } }
@keyframes osd-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.2); opacity:0.7; } 100% { transform: scaleX(1); opacity:0.5; } }
@keyframes osd-lodovico { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }

/* Scene: lodovico-s-concern */
.scn-lodovico-s-concern {
  background:
    linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 50%, #a09078 100%),
    radial-gradient(ellipse at 70% 40%, #f0e0d0 0%, transparent 70%);
}
.scn-lodovico-s-concern .interior-wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #d8c8b0, #d8c8b0 3px, #c8b8a0 3px, #c8b8a0 6px); }
.scn-lodovico-s-concern .table { position:absolute; bottom:20%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -2px 8px rgba(0,0,0,0.3); }
.scn-lodovico-s-concern .chair-left { position:absolute; bottom:28%; left:15%; width:12%; height:20%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 20% 20% 5% 5%; box-shadow: -2px 2px 6px rgba(0,0,0,0.2); animation: lsc-chair 10s ease-in-out infinite; }
.scn-lodovico-s-concern .chair-right { position:absolute; bottom:28%; right:15%; width:12%; height:20%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 20% 20% 5% 5%; box-shadow: 2px 2px 6px rgba(0,0,0,0.2); animation: lsc-chair 10s ease-in-out infinite reverse; }
.scn-lodovico-s-concern .lodovico { position:absolute; bottom:30%; left:30%; width:22px; height:42px; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom; animation: lsc-lodovico 5s ease-in-out infinite; }
.scn-lodovico-s-concern .iago { position:absolute; bottom:30%; right:30%; width:20px; height:40px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom; animation: lsc-iago 4s ease-in-out infinite 0.5s; }
.scn-lodovico-s-concern .desdemona-sad { position:absolute; bottom:30%; left:50%; width:18px; height:36px; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: translateX(-50%); animation: lsc-desdemona 8s ease-in-out infinite; }
.scn-lodovico-s-concern .candle-glow { position:absolute; bottom:35%; left:45%; width:8px; height:16px; background: radial-gradient(ellipse at 50% 0%, #f0e080 0%, #d8b060 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 40px 20px rgba(240,224,128,0.5), 0 0 80px 30px rgba(240,224,128,0.2); animation: lsc-candle 3s ease-in-out infinite; }
.scn-lodovico-s-concern .window-bright { position:absolute; top:15%; left:10%; width:20%; height:25%; background: linear-gradient(135deg, #f0f0e0 0%, #d8d8c0 100%); border: 4px solid #6a5a4a; border-radius: 4%; box-shadow: inset 0 0 20px rgba(240,240,224,0.6); animation: lsc-window 20s ease-in-out infinite; }
@keyframes lsc-chair { 0% { transform: rotate(0); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0); } }
@keyframes lsc-lodovico { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lsc-iago { 0% { transform: translateX(0) rotate(0); } 40% { transform: translateX(4px) rotate(-2deg); } 70% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lsc-desdemona { 0% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-3px) scale(0.98); } 100% { transform: translateX(-50%) translateY(0) scale(1); } }
@keyframes lsc-candle { 0% { transform: scaleY(1) scaleX(1); opacity:0.9; } 50% { transform: scaleY(1.1) scaleX(0.9); opacity:1; } 100% { transform: scaleY(1) scaleX(1); opacity:0.9; } }
@keyframes lsc-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }

/* Scene: desdemona-accused */
.scn-desdemona-accused {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 60%, #3a3a5a 0%, transparent 80%);
}
.scn-desdemona-accused .room-wall { position:absolute; inset:0; background: repeating-linear-gradient(0deg, #2a2a3a, #2a2a3a 4px, #1a1a2a 4px, #1a1a2a 8px); }
.scn-desdemona-accused .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-desdemona-accused .candle { position:absolute; bottom:40%; left:50%; width:10px; height:18px; background: radial-gradient(ellipse at 50% 20%, #f0c868 0%, #c89040 100%); border-radius: 20% 20% 40% 40%; transform: translateX(-50%); box-shadow: 0 0 60px 30px rgba(200,144,64,0.5), 0 0 120px 60px rgba(200,144,64,0.15); animation: dac-candle 4s ease-in-out infinite; }
.scn-desdemona-accused .othello { position:absolute; bottom:38%; left:30%; width:28px; height:50px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 45% 45% 30% 30% / 55% 55% 40% 40%; transform-origin: bottom; box-shadow: -5px 0 15px rgba(0,0,0,0.6); animation: dac-othello 3s ease-in-out infinite; }
.scn-desdemona-accused .desdemona { position:absolute; bottom:38%; left:50%; width:22px; height:44px; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: translateX(-50%); animation: dac-desdemona 5s ease-in-out infinite 0.5s; }
.scn-desdemona-accused .emilia { position:absolute; bottom:38%; right:25%; width:20px; height:42px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom; animation: dac-emilia 6s ease-in-out infinite 1s; }
.scn-desdemona-accused .shadow-deep { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }
.scn-desdemona-accused .light-cone { position:absolute; bottom:40%; left:45%; right:40%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(240,200,100,0.15) 0%, transparent 100%); animation: dac-light 3s ease-in-out infinite; }
@keyframes dac-candle { 0% { transform: translateX(-50%) scaleY(1) rotate(0); } 25% { transform: translateX(-50%) scaleY(1.05) rotate(2deg); } 50% { transform: translateX(-50%) scaleY(0.95) rotate(-1deg); } 75% { transform: translateX(-50%) scaleY(1.02) rotate(0); } 100% { transform: translateX(-50%) scaleY(1) rotate(0); } }
@keyframes dac-othello { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(-3deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes dac-desdemona { 0% { transform: translateX(-50%) translateY(0) scale(1); } 40% { transform: translateX(-50%) translateY(-2px) scale(0.98); } 70% { transform: translateX(-50%) translateY(0) scale(1.02); } 100% { transform: translateX(-50%) translateY(0) scale(1); } }
@keyframes dac-emilia { 0% { transform: translateY(0) rotate(0) scale(1); } 40% { transform: translateY(-3px) rotate(2deg) scale(1.03); } 80% { transform: translateY(0) rotate(-1deg) scale(0.97); } 100% { transform: translateY(0) rotate(0) scale(1); } }
@keyframes dac-light { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }

.scn-venice-iago-reveals-hate {
  background:
    linear-gradient(180deg, #0b0b1a 0%, #1a1a3a 40%, #2a2a4a 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a5a 0%, transparent 60%);
}
.scn-venice-iago-reveals-hate .skyline {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #111128 50%, transparent 100%);
  animation: vi1-sky 20s ease-in-out infinite alternate;
}
.scn-venice-iago-reveals-hate .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
}
.scn-venice-iago-reveals-hate .wall {
  position: absolute; bottom: 20%; left: 10%; width: 35%; height: 60%;
  background: linear-gradient(90deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-venice-iago-reveals-hate .lantern {
  position: absolute; bottom: 45%; left: 28%; width: 12px; height: 18px;
  background: radial-gradient(circle, #f0d080 0%, #b08030 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px #a06020, 0 0 60px 20px rgba(160,96,32,.3);
  animation: vi1-lantern 2s ease-in-out infinite alternate;
}
.scn-venice-iago-reveals-hate .figure-iago {
  position: absolute; bottom: 15%; left: 30%; width: 30px; 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: vi1-iago 4s ease-in-out infinite;
}
.scn-venice-iago-reveals-hate .figure-roderigo {
  position: absolute; bottom: 15%; left: 42%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%;
  transform-origin: bottom center;
  animation: vi1-roderigo 4.5s ease-in-out infinite;
}
.scn-venice-iago-reveals-hate .shadow {
  position: absolute; bottom: 8%; left: 25%; width: 40%; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: vi1-shadow 5s ease-in-out infinite alternate;
}
@keyframes vi1-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .6 } }
@keyframes vi1-lantern { 0% { box-shadow: 0 0 20px 5px #a06020; opacity: .8 } 50% { box-shadow: 0 0 40px 15px #d0a040; opacity: 1 } 100% { box-shadow: 0 0 25px 8px #a06020; opacity: .85 } }
@keyframes vi1-iago { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(.5deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes vi1-roderigo { 0% { transform: translateX(0) scaleX(.95) } 50% { transform: translateX(4px) scaleX(1) } 100% { transform: translateX(0) scaleX(.95) } }
@keyframes vi1-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

.scn-brabantio-confrontation {
  background:
    linear-gradient(180deg, #0c0c1e 0%, #1a1a3a 40%, #2a2a4a 100%),
    radial-gradient(ellipse at 70% 30%, #4a2a1a 0%, transparent 50%);
}
.scn-brabantio-confrontation .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #151538 0%, #1a1a3a 60%, transparent 100%);
  animation: bc2-sky 25s ease-in-out infinite alternate;
}
.scn-brabantio-confrontation .house {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 40%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 8% 8% 2% 2%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.6), 0 5px 15px rgba(0,0,0,.5);
}
.scn-brabantio-confrontation .door {
  position: absolute; bottom: 18%; left: 53%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: bc2-door 7s ease-in-out infinite alternate;
}
.scn-brabantio-confrontation .lit-window {
  position: absolute; bottom: 45%; left: 55%; width: 10%; height: 14%;
  background: radial-gradient(circle, #f0c060 0%, #b08030 70%);
  border-radius: 20%;
  box-shadow: 0 0 30px 8px #b08030, 0 0 60px 20px rgba(176,128,48,.4);
  animation: bc2-window 3s ease-in-out infinite alternate;
}
.scn-brabantio-confrontation .figure-iago {
  position: absolute; bottom: 15%; left: 25%; width: 28px; 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: bc2-iago 3.5s ease-in-out infinite;
}
.scn-brabantio-confrontation .figure-roderigo {
  position: absolute; bottom: 15%; left: 40%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%;
  transform-origin: bottom center;
  animation: bc2-roderigo 3.8s ease-in-out infinite;
}
.scn-brabantio-confrontation .torch {
  position: absolute; bottom: 35%; left: 30%; width: 8px; height: 20px;
  background: radial-gradient(circle, #ff9040 0%, #c06020 50%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 15px #c06020, 0 0 80px 30px rgba(192,96,32,.3);
  animation: bc2-torch 2s ease-in-out infinite alternate;
}
.scn-brabantio-confrontation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 5px 15px rgba(0,0,0,.4);
}
@keyframes bc2-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes bc2-door { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes bc2-window { 0% { box-shadow: 0 0 20px 4px #b08030; opacity: .85 } 50% { box-shadow: 0 0 40px 12px #f0c060; opacity: 1 } 100% { box-shadow: 0 0 25px 6px #b08030; opacity: .9 } }
@keyframes bc2-iago { 0% { transform: translateX(0) rotate(-1deg) } 30% { transform: translateX(5px) rotate(1deg) } 60% { transform: translateX(2px) rotate(-.5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bc2-roderigo { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-3px) scaleY(1.02) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes bc2-torch { 0% { box-shadow: 0 0 30px 10px #c06020; opacity: .9 } 50% { box-shadow: 0 0 50px 20px #ff9040; opacity: 1 } 100% { box-shadow: 0 0 35px 12px #c06020; opacity: .85 } }

.scn-duke-s-council {
  background:
    linear-gradient(180deg, #d4b88a 0%, #b8926d 40%, #8f6b4a 100%),
    radial-gradient(ellipse at 50% 70%, #f0d8b0 0%, transparent 60%);
}
.scn-duke-s-council .chamber-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c9a87a 0%, #b58e62 50%, #9a774f 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.15);
  animation: dc3-bg 30s ease-in-out infinite alternate;
}
.scn-duke-s-council .column-left {
  position: absolute; top: 5%; left: 5%; width: 8%; height: 90%;
  background: linear-gradient(90deg, #b8926d 0%, #e0c8a0 30%, #c9a87a 100%);
  border-radius: 4%;
  box-shadow: 2px 0 10px rgba(0,0,0,.15);
}
.scn-duke-s-council .column-right {
  position: absolute; top: 5%; right: 5%; width: 8%; height: 90%;
  background: linear-gradient(270deg, #b8926d 0%, #e0c8a0 30%, #c9a87a 100%);
  border-radius: 4%;
  box-shadow: -2px 0 10px rgba(0,0,0,.15);
}
.scn-duke-s-council .throne {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 20%; height: 35%;
  background: linear-gradient(180deg, #b8926d 0%, #8f6b4a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 -5px 20px rgba(0,0,0,.2), inset 0 5px 15px rgba(255,220,180,.3);
  animation: dc3-throne 15s ease-in-out infinite alternate;
}
.scn-duke-s-council .figure-duke {
  position: absolute; bottom: 20%; left: 48%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #6b4a2a 0%, #4a2a1a 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%;
  transform-origin: bottom center;
  animation: dc3-duke 6s ease-in-out infinite;
}
.scn-duke-s-council .figure-othello {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dc3-othello 5s ease-in-out infinite;
}
.scn-duke-s-council .figure-senator1 {
  position: absolute; bottom: 18%; left: 35%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%;
  transform-origin: bottom center;
  animation: dc3-sen1 6.5s ease-in-out infinite;
}
.scn-duke-s-council .figure-senator2 {
  position: absolute; bottom: 18%; left: 65%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%;
  transform-origin: bottom center;
  animation: dc3-sen2 7s ease-in-out infinite;
}
.scn-duke-s-council .chandelier {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%); width: 30%; height: 20%;
  background: radial-gradient(ellipse, #f0d8b0 0%, #d4b88a 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #f0d8b0, 0 0 120px 40px rgba(240,216,176,.3);
  animation: dc3-chandelier 4s ease-in-out infinite alternate;
}
@keyframes dc3-bg { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes dc3-throne { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes dc3-duke { 0% { transform: translateX(0) rotate(-.5deg) } 30% { transform: translateX(2px) rotate(.5deg) } 60% { transform: translateX(-1px) rotate(-.3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dc3-othello { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(3px) scaleY(1.01) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes dc3-sen1 { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dc3-sen2 { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dc3-chandelier { 0% { opacity: .8; box-shadow: 0 0 40px 15px #f0d8b0 } 50% { opacity: 1; box-shadow: 0 0 80px 30px #f0d8b0 } 100% { opacity: .85; box-shadow: 0 0 50px 20px #f0d8b0 } }

.scn-brabantio-s-warning {
  background:
    linear-gradient(180deg, #d4b88a 0%, #b8926d 40%, #8f6b4a 100%),
    radial-gradient(ellipse at 60% 50%, #e0c8a0 0%, transparent 60%);
}
.scn-brabantio-s-warning .council-walls {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c9a87a 0%, #b58e62 50%, #9a774f 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.25);
  animation: bw4-walls 35s ease-in-out infinite alternate;
}
.scn-brabantio-s-warning .table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 -10px 20px rgba(0,0,0,.3);
}
.scn-brabantio-s-warning .figure-othello {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bw4-othello 4s ease-in-out infinite;
}
.scn-brabantio-s-warning .figure-brabantio {
  position: absolute; bottom: 15%; left: 55%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bw4-brabantio 3.5s ease-in-out infinite;
}
.scn-brabantio-s-warning .figure-duke {
  position: absolute; bottom: 18%; left: 30%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #6b4a2a 0%, #4a2a1a 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%;
  transform-origin: bottom center;
  animation: bw4-duke 5s ease-in-out infinite;
}
.scn-brabantio-s-warning .figure-desdemona {
  position: absolute; bottom: 15%; left: 65%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bw4-desdemona 4.5s ease-in-out infinite;
}
.scn-brabantio-s-warning .light-beam {
  position: absolute; top: 0%; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(255,220,180,.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(20px);
  animation: bw4-beam 6s ease-in-out infinite alternate;
}
.scn-brabantio-s-warning .shadow-sharp {
  position: absolute; bottom: 10%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: bw4-shadow 8s ease-in-out infinite alternate;
}
@keyframes bw4-walls { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes bw4-othello { 0% { transform: translateX(0) rotate(-.5deg) } 30% { transform: translateX(2px) rotate(.5deg) } 60% { transform: translateX(-1px) rotate(-.3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bw4-brabantio { 0% { transform: translateX(0) scaleY(1) } 25% { transform: translateX(3px) scaleY(1.02) } 50% { transform: translateX(0) scaleY(1) } 75% { transform: translateX(-2px) scaleY(1.01) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes bw4-duke { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-1px) rotate(.5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bw4-desdemona { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(1px) rotate(-.5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bw4-beam { 0% { opacity: .3; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(1.1) } 100% { opacity: .4; transform: scaleX(.95) } }
@keyframes bw4-shadow { 0% { opacity: .5; transform: scaleX(1) } 50% { opacity: .7; transform: scaleX(1.2) } 100% { opacity: .6; transform: scaleX(.9) } }

.scn-seed-of-doubt {
  background:
    linear-gradient(180deg, #87CEEB 0%, #f0e68c 60%, #f4a460 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 70%);
}
.scn-seed-of-doubt .sd-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d4ff 0%, transparent 100%);
  animation: sd-sky 15s ease-in-out infinite alternate;
}
.scn-seed-of-doubt .sd-sun {
  position: absolute; top: 10%; left: 60%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff4b0 0%, #ffcc33 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,204,51,.5), 0 0 120px 40px rgba(255,153,0,.2);
  animation: sd-sun-pulse 4s ease-in-out infinite alternate;
}
.scn-seed-of-doubt .sd-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c8a96e 0%, #8b7d3c 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-seed-of-doubt .sd-othello {
  position: absolute; bottom: 32%; left: 35%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #2c1e16 0%, #1a100a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sd-othello-breathe 3s ease-in-out infinite;
}
.scn-seed-of-doubt .sd-iago {
  position: absolute; bottom: 32%; left: 48%;
  width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: sd-iago-turn 5s ease-in-out infinite;
}
.scn-seed-of-doubt .sd-shadow {
  position: absolute; bottom: 20%; left: 30%;
  width: 100px; height: 6px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: sd-shadow-sway 6s ease-in-out infinite alternate;
}
.scn-seed-of-doubt .sd-cloud-a {
  position: absolute; top: 15%; left: 10%;
  width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: sd-cloud-drift 30s linear infinite;
}
.scn-seed-of-doubt .sd-cloud-b {
  position: absolute; top: 8%; right: 15%;
  width: 60px; height: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.05) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sd-cloud-drift 40s linear infinite reverse;
}
@keyframes sd-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes sd-sun-pulse {
  0% { transform: scale(1); opacity: .9; }
  50% { transform: scale(1.08); opacity: 1; box-shadow: 0 0 80px 30px rgba(255,204,51,.6); }
  100% { transform: scale(1); opacity: .85; }
}
@keyframes sd-othello-breathe {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(1px) rotate(1deg); }
}
@keyframes sd-iago-turn {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(1px) rotate(1deg); }
}
@keyframes sd-shadow-sway {
  0% { transform: translateX(-5px) scaleX(1); }
  50% { transform: translateX(3px) scaleX(1.05); }
  100% { transform: translateX(-2px) scaleX(.95); }
}
@keyframes sd-cloud-drift {
  0% { transform: translateX(-30px); }
  50% { transform: translateX(10px); }
  100% { transform: translateX(120vw); }
}

.scn-handkerchief-accusation {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 80%);
}
.scn-handkerchief-accusation .ha-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
}
.scn-handkerchief-accusation .ha-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-handkerchief-accusation .ha-table {
  position: absolute; bottom: 28%; left: 25%; width: 50%; height: 6px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a4a3a 50%, #4a3a2a 100%);
  border-radius: 2px;
}
.scn-handkerchief-accusation .ha-candle {
  position: absolute; bottom: 35%; left: 42%;
  width: 4px; height: 12px;
  background: linear-gradient(180deg, #ffd680 0%, #b08040 100%);
  border-radius: 30%;
  box-shadow: 0 0 16px 6px #ffd680, 0 0 32px 12px rgba(255,214,128,.5);
  animation: ha-candle-flicker .8s ease-in-out infinite alternate;
}
.scn-handkerchief-accusation .ha-othello {
  position: absolute; bottom: 20%; left: 30%;
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ha-othello-rage 4s ease-in-out infinite;
}
.scn-handkerchief-accusation .ha-iago {
  position: absolute; bottom: 20%; left: 52%;
  width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: ha-iago-sly 6s ease-in-out infinite;
}
.scn-handkerchief-accusation .ha-handkerchief {
  position: absolute; bottom: 26%; left: 38%;
  width: 14px; height: 10px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 1px 4px rgba(0,0,0,.5);
  animation: ha-handkerchief-tremble 2s ease-in-out infinite;
}
.scn-handkerchief-accusation .ha-shadow {
  position: absolute; bottom: 18%; left: 28%;
  width: 120px; height: 8px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.4) 30%, rgba(0,0,0,.2) 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ha-shadow-pulse 5s ease-in-out infinite alternate;
}
@keyframes ha-candle-flicker {
  0% { transform: scaleY(1) scaleX(1); opacity: .9; }
  50% { transform: scaleY(1.1) scaleX(.95); opacity: 1; }
  100% { transform: scaleY(.95) scaleX(1.05); opacity: .85; }
}
@keyframes ha-othello-rage {
  0% { transform: translateY(0) rotate(-2deg); }
  40% { transform: translateY(-4px) rotate(3deg); }
  70% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ha-iago-sly {
  0% { transform: translateX(0) rotate(1deg); }
  40% { transform: translateX(3px) rotate(-3deg); }
  80% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ha-handkerchief-tremble {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(1px,-1px) rotate(3deg); }
  50% { transform: translate(-1px,0) rotate(-2deg); }
  75% { transform: translate(0,1px) rotate(1deg); }
  100% { transform: translate(0,0) rotate(0); }
}
@keyframes ha-shadow-pulse {
  0% { transform: scaleX(1) translateX(0); opacity: .6; }
  50% { transform: scaleX(1.15) translateX(5px); opacity: .8; }
  100% { transform: scaleX(.9) translateX(-3px); opacity: .5; }
}

.scn-missing-handkerchief {
  background:
    linear-gradient(180deg, #12121c 0%, #1a1a2e 40%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a2a 0%, transparent 80%);
}
.scn-missing-handkerchief .mh-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
}
.scn-missing-handkerchief .mh-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,.7);
}
.scn-missing-handkerchief .mh-lamp {
  position: absolute; bottom: 35%; left: 20%;
  width: 6px; height: 16px;
  background: linear-gradient(180deg, #ffc060 0%, #a07030 100%);
  border-radius: 30%;
  box-shadow: 0 0 20px 8px rgba(255,192,96,.6), 0 0 40px 16px rgba(255,160,48,.3);
  animation: mh-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-missing-handkerchief .mh-othello {
  position: absolute; bottom: 18%; left: 28%;
  width: 30px; height: 58px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mh-othello-storm 5s ease-in-out infinite;
}
.scn-missing-handkerchief .mh-desdemona {
  position: absolute; bottom: 18%; left: 48%;
  width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: mh-desdemona-cower 4s ease-in-out infinite;
}
.scn-missing-handkerchief .mh-drawer {
  position: absolute; bottom: 22%; left: 38%;
  width: 40px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: inset 0 -2px 6px rgba(0,0,0,.5);
  overflow: hidden;
}
.scn-missing-handkerchief .mh-drawer::after {
  content: '';
  position: absolute; top: 4px; left: 4px; right: 4px; bottom: 4px;
  background: #1a0a0a;
  border-radius: 2px;
}
.scn-missing-handkerchief .mh-curtain {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 0 30% 0 0;
  filter: blur(2px);
  animation: mh-curtain-sway 10s ease-in-out infinite alternate;
}
.scn-missing-handkerchief .mh-silence {
  position: absolute; bottom: 30%; left: 42%;
  width: 12px; height: 1px;
  background: #3a2a2a;
  border-radius: 50%;
  opacity: .3;
  animation: mh-silence-pulse 6s ease-in-out infinite alternate;
}
@keyframes mh-lamp-glow {
  0% { box-shadow: 0 0 16px 4px rgba(255,192,96,.5), 0 0 32px 12px rgba(255,160,48,.2); opacity: .85; }
  50% { box-shadow: 0 0 28px 10px rgba(255,192,96,.7), 0 0 48px 20px rgba(255,160,48,.4); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px rgba(255,192,96,.4), 0 0 36px 14px rgba(255,160,48,.25); opacity: .9; }
}
@keyframes mh-othello-storm {
  0% { transform: translateY(0) rotate(-3deg); }
  30% { transform: translateY(-5px) rotate(4deg); }
  60% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(2px) rotate(1deg); }
}
@keyframes mh-desdemona-cower {
  0% { transform: translateY(0) translateX(0) rotate(0deg); }
  30% { transform: translateY(3px) translateX(-4px) rotate(-5deg); }
  60% { transform: translateY(1px) translateX(-2px) rotate(-2deg); }
  100% { transform: translateY(0) translateX(0) rotate(0); }
}
@keyframes mh-curtain-sway {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes mh-silence-pulse {
  0% { opacity: .2; transform: scaleX(1); }
  50% { opacity: .4; transform: scaleX(2); }
  100% { opacity: .1; transform: scaleX(.5); }
}

.scn-iago-s-manipulation {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 40%, #2a2a4e 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a3e 0%, transparent 70%);
}
.scn-iago-s-manipulation .im-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #0e0e24 100%);
  animation: im-sky-pulse 20s ease-in-out infinite alternate;
}
.scn-iago-s-manipulation .im-moon {
  position: absolute; top: 6%; left: 65%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #e0e8ff 0%, #b0c0e0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(176,192,224,.5), 0 0 80px 30px rgba(176,192,224,.2);
  animation: im-moon-glow 6s ease-in-out infinite alternate;
}
.scn-iago-s-manipulation .im-stars {
  position: absolute; inset: 0 0 30% 0;
  background: radial-gradient(circle at 20% 10%, #ffffff .5px, transparent .5px),
              radial-gradient(circle at 40% 5%, #ffffff .6px, transparent .6px),
              radial-gradient(circle at 70% 8%, #ffffff .4px, transparent .4px),
              radial-gradient(circle at 10% 20%, #ffffff .5px, transparent .5px),
              radial-gradient(circle at 80% 15%, #ffffff .6px, transparent .6px);
  background-size: 4px 4px;
  opacity: .7;
  animation: im-stars-twinkle 4s ease-in-out infinite alternate;
}
.scn-iago-s-manipulation .im-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0a0a2a 0%, #0e0e3a 50%, #12124a 100%);
  animation: im-sea-wave 8s ease-in-out infinite;
}
.scn-iago-s-manipulation .im-pier {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 4px;
  background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.8);
  animation: im-pier-bob 5s ease-in-out infinite;
}
.scn-iago-s-manipulation .im-iago {
  position: absolute; bottom: 28%; left: 30%;
  width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: im-iago-gloat 6s ease-in-out infinite;
}
.scn-iago-s-manipulation .im-othello {
  position: absolute; bottom: 24%; left: 48%;
  width: 28px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: im-othello-trance 8s ease-in-out infinite;
}
.scn-iago-s-manipulation .im-cloud {
  position: absolute; top: 14%; left: 20%;
  width: 70px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,.1) 0%, rgba(255,255,255,.02) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: im-cloud-drift 45s linear infinite;
}
@keyframes im-sky-pulse {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .6; }
}
@keyframes im-moon-glow {
  0% { transform: scale(1); opacity: .9; box-shadow: 0 0 40px 15px rgba(176,192,224,.4); }
  50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 60px 25px rgba(176,192,224,.6); }
  100% { transform: scale(.98); opacity: .85; box-shadow: 0 0 30px 10px rgba(176,192,224,.3); }
}
@keyframes im-stars-twinkle {
  0% { opacity: .5; }
  50% { opacity: .9; }
  100% { opacity: .6; }
}
@keyframes im-sea-wave {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.05); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes im-pier-bob {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(1px) rotate(.5deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes im-iago-gloat {
  0% { transform: translateY(0) rotate(2deg); }
  40% { transform: translateY(-2px) rotate(-3deg); }
  80% { transform: translateY(1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes im-othello-trance {
  0% { transform: translateY(0) rotate(-1deg) scaleY(1); }
  40% { transform: translateY(-5px) rotate(3deg) scaleY(.95); }
  70% { transform: translateY(-2px) rotate(-2deg) scaleY(1.02); }
  100% { transform: translateY(0) rotate(0) scaleY(1); }
}
@keyframes im-cloud-drift {
  0% { transform: translateX(-20px); }
  50% { transform: translateX(30px); }
  100% { transform: translateX(120vw); }
}
/* end per-scene blocks */
