/* 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) */
/* Scene 1: gloucester-demands-letter */
.scn-gloucester-demands-letter {
  background:
    radial-gradient(ellipse at 30% 50%, #2a1a0a 0%, #1a0e04 40%, transparent 70%),
    linear-gradient(180deg, #1a0e04 0%, #0d0702 100%);
}
.scn-gloucester-demands-letter .wall-shadow { position:absolute; inset:0; background: linear-gradient(180deg, #1a0e04 0%, #0d0702 100%); opacity:0.6; }
.scn-gloucester-demands-letter .candle-glow { position:absolute; left:35%; bottom:40%; width:120px; height:180px; background: radial-gradient(ellipse, #b8732a 0%, #6b3a0a 30%, transparent 60%); animation: gdl-glow 3s ease-in-out infinite alternate; }
.scn-gloucester-demands-letter .figure-gloucester { position:absolute; left:20%; bottom:12%; width:60px; height:120px; background: linear-gradient(180deg, #2a1a0a 0%, #0d0702 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gdl-bow 5s ease-in-out infinite; }
.scn-gloucester-demands-letter .figure-edmund { position:absolute; right:22%; bottom:14%; width:50px; height:100px; background: linear-gradient(180deg, #2a1a0a 0%, #0d0702 100%); border-radius: 45% 55% 40% 40% / 55% 65% 35% 45%; transform-origin: bottom center; animation: gdl-straight 6s ease-in-out infinite; }
.scn-gloucester-demands-letter .table { position:absolute; left:25%; right:25%; bottom:8%; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%); border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-gloucester-demands-letter .letter { position:absolute; left:38%; bottom:20%; width:40px; height:30px; background: linear-gradient(135deg, #d4c8a0 0%, #a09060 100%); border-radius: 2px; transform: rotate(15deg); animation: gdl-letter 4s ease-in-out infinite; }
.scn-gloucester-demands-letter .candle { position:absolute; left:35%; bottom:32%; width:8px; height:30px; background: linear-gradient(180deg, #d4a060 0%, #8a5a20 100%); border-radius: 2px 2px 0 0; animation: gdl-candle 2s ease-in-out infinite alternate; }
.scn-gloucester-demands-letter .shadow { position:absolute; inset:0; background: linear-gradient(180deg, transparent 40%, #0d0702 100%); mix-blend-mode: multiply; opacity:0.7; animation: gdl-shadow-pulse 8s ease-in-out infinite; }
@keyframes gdl-glow { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.95); opacity:0.7; } }
@keyframes gdl-bow { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } }
@keyframes gdl-straight { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-1px); } }
@keyframes gdl-letter { 0%,100% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(20deg) translateX(2px); } }
@keyframes gdl-candle { 0% { height:28px; opacity:0.9; } 100% { height:32px; opacity:1; } }
@keyframes gdl-shadow-pulse { 0%,100% { opacity:0.6; } 50% { opacity:0.8; } }

/* Scene 2: item-forged-letter */
.scn-item-forged-letter {
  background:
    radial-gradient(ellipse at 60% 30%, #2a1a0a 0%, #1a0e04 40%, transparent 70%),
    linear-gradient(180deg, #1a0e04 0%, #0d0702 100%);
}
.scn-item-forged-letter .wall-dark { position:absolute; inset:0; background: linear-gradient(180deg, #1a0e04 0%, #0d0702 100%); }
.scn-item-forged-letter .window-casement { position:absolute; right:8%; top:15%; width:80px; height:120px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border: 4px solid #0d0702; border-radius: 4px; box-shadow: inset 0 0 20px #6b3a0a; animation: ifl-window 6s ease-in-out infinite; }
.scn-item-forged-letter .curtain-left { position:absolute; right:20%; top:15%; width:30px; height:140px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 0 4px 4px 0; transform-origin: top right; animation: ifl-curtain-open 8s ease-in-out infinite; }
.scn-item-forged-letter .curtain-right { position:absolute; right:6%; top:15%; width:30px; height:140px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 4px 0 0 4px; transform-origin: top left; animation: ifl-curtain-open 8s ease-in-out infinite reverse; }
.scn-item-forged-letter .figure-edmund { position:absolute; left:30%; bottom:14%; width:50px; height:100px; background: linear-gradient(180deg, #2a1a0a 0%, #0d0702 100%); border-radius: 45% 55% 40% 40% / 55% 65% 35% 45%; transform-origin: bottom center; animation: ifl-turn 5s ease-in-out infinite; }
.scn-item-forged-letter .letter-forged { position:absolute; left:38%; bottom:22%; width:45px; height:35px; background: linear-gradient(135deg, #d4c8a0 0%, #a09060 100%); border-radius: 2px; transform: rotate(-10deg); animation: ifl-letter 3s ease-in-out infinite; }
.scn-item-forged-letter .desk { position:absolute; left:20%; right:30%; bottom:8%; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%); border-radius: 2px; }
.scn-item-forged-letter .candle { position:absolute; left:35%; bottom:30%; width:8px; height:30px; background: linear-gradient(180deg, #d4a060 0%, #8a5a20 100%); border-radius: 2px 2px 0 0; animation: ifl-candle 2.5s ease-in-out infinite alternate; }
@keyframes ifl-window { 0%,100% { box-shadow: inset 0 0 20px #6b3a0a; } 50% { box-shadow: inset 0 0 30px #b8732a; } }
@keyframes ifl-curtain-open { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }
@keyframes ifl-turn { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } }
@keyframes ifl-letter { 0%,100% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(3px); } }
@keyframes ifl-candle { 0% { height:28px; opacity:0.9; } 100% { height:32px; opacity:1; } }

/* Scene 3: edmund-cunning */
.scn-edmund-cunning {
  background:
    radial-gradient(ellipse at 40% 60%, #2a1a0a 0%, #1a0e04 40%, transparent 70%),
    linear-gradient(180deg, #1a0e04 0%, #0d0702 100%);
}
.scn-edmund-cunning .wall-panel { position:absolute; inset:0; background: linear-gradient(180deg, #1a0e04 0%, #0d0702 100%); opacity:0.8; }
.scn-edmund-cunning .casement { position:absolute; right:10%; top:20%; width:70px; height:100px; background: linear-gradient(180deg, #2a1a0a 0%, #0d0702 100%); border: 3px solid #0d0702; border-radius: 4px; box-shadow: inset 0 0 15px #6b3a0a; animation: ec-casement 5s ease-in-out infinite; }
.scn-edmund-cunning .figure-gloucester { position:absolute; left:20%; bottom:12%; width:60px; height:120px; background: linear-gradient(180deg, #2a1a0a 0%, #0d0702 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ec-gloucester 4s ease-in-out infinite; }
.scn-edmund-cunning .figure-edmund { position:absolute; right:25%; bottom:14%; width:50px; height:100px; background: linear-gradient(180deg, #2a1a0a 0%, #0d0702 100%); border-radius: 45% 55% 40% 40% / 55% 65% 35% 45%; transform-origin: bottom center; animation: ec-edmund 5s ease-in-out infinite; }
.scn-edmund-cunning .letter { position:absolute; left:35%; bottom:20%; width:40px; height:30px; background: linear-gradient(135deg, #d4c8a0 0%, #a09060 100%); border-radius: 2px; transform: rotate(5deg); animation: ec-letter 3s ease-in-out infinite; }
.scn-edmund-cunning .floor { position:absolute; inset:0 0 0 0; bottom:5%; height:20px; background: linear-gradient(180deg, #1a0e04 0%, #0d0702 100%); border-radius: 0; }
.scn-edmund-cunning .candle { position:absolute; left:40%; bottom:32%; width:8px; height:30px; background: linear-gradient(180deg, #d4a060 0%, #8a5a20 100%); border-radius: 2px 2px 0 0; animation: ec-candle 2s ease-in-out infinite alternate; }
.scn-edmund-cunning .shadow { position:absolute; inset:0; background: linear-gradient(180deg, transparent 50%, #0d0702 100%); mix-blend-mode: multiply; opacity:0.6; animation: ec-shadow 10s ease-in-out infinite; }
@keyframes ec-casement { 0%,100% { box-shadow: inset 0 0 15px #6b3a0a; } 50% { box-shadow: inset 0 0 25px #b8732a; } }
@keyframes ec-gloucester { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-8deg) translateY(-2px); } }
@keyframes ec-edmund { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(10deg) translateX(3px); } }
@keyframes ec-letter { 0%,100% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(0deg) translateX(5px); } }
@keyframes ec-candle { 0% { height:28px; opacity:0.85; } 100% { height:32px; opacity:1; } }
@keyframes ec-shadow { 0%,100% { opacity:0.5; } 50% { opacity:0.7; } }

/* Scene 4: gloucester-deceived */
.scn-gloucester-deceived {
  background:
    radial-gradient(ellipse at 50% 70%, #1a0e04 0%, #0d0702 40%, transparent 70%),
    linear-gradient(180deg, #0d0702 0%, #1a0e04 100%);
}
.scn-gloucester-deceived .wall-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0d0702 0%, #1a0e04 100%); }
.scn-gloucester-deceived .table { position:absolute; left:20%; right:20%; bottom:8%; height:25px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 4px; }
.scn-gloucester-deceived .figure-gloucester { position:absolute; left:25%; bottom:12%; width:60px; height:120px; background: linear-gradient(180deg, #1a0e04 0%, #0d0702 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gd-gloucester 3s ease-in-out infinite; }
.scn-gloucester-deceived .figure-edmund-shadow { position:absolute; right:20%; bottom:14%; width:50px; height:100px; background: linear-gradient(180deg, #1a0e04 0%, #0d0702 100%); border-radius: 45% 55% 40% 40% / 55% 65% 35% 45%; transform-origin: bottom center; animation: gd-shadow-figure 6s ease-in-out infinite; opacity:0.6; }
.scn-gloucester-deceived .letter-torn { position:absolute; left:40%; bottom:20%; width:45px; height:20px; background: linear-gradient(135deg, #d4c8a0 0%, #a09060 100%); border-radius: 2px; transform: rotate(-20deg); animation: gd-letter 2s ease-in-out infinite; }
.scn-gloucester-deceived .candle { position:absolute; left:30%; bottom:30%; width:8px; height:25px; background: linear-gradient(180deg, #b8732a 0%, #6b3a0a 100%); border-radius: 2px 2px 0 0; animation: gd-candle 1.5s ease-in-out infinite alternate; }
.scn-gloucester-deceived .shadow { position:absolute; inset:0; background: linear-gradient(180deg, transparent 30%, #0d0702 100%); mix-blend-mode: multiply; opacity:0.8; animation: gd-shadow-pulse 4s ease-in-out infinite; }
@keyframes gd-gloucester { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } }
@keyframes gd-shadow-figure { 0%,100% { opacity:0.4; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.05); } }
@keyframes gd-letter { 0%,100% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-25deg) translateX(2px); } }
@keyframes gd-candle { 0% { height:22px; opacity:0.8; } 100% { height:28px; opacity:1; } }
@keyframes gd-shadow-pulse { 0%,100% { opacity:0.6; } 50% { opacity:0.9; } }

.scn-gloucester-questioned {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e16 40%, #3a2820 100%), radial-gradient(ellipse at 50% 70%, #4a2e1a 0%, transparent 60%);
}
.scn-gloucester-questioned .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e16 0%, #1a1410 100%); animation: glq-wall 12s ease-in-out infinite alternate;
}
.scn-gloucester-questioned .chair {
  position: absolute; bottom: 20%; left: 25%; width: 60px; height: 80px; background: linear-gradient(180deg, #4a3428 0%, #2a1a10 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: glq-chair 6s ease-in-out infinite;
}
.scn-gloucester-questioned .figure-glq {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 70px; background: linear-gradient(180deg, #6a4a3e 0%, #3a2a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: glq-figure 4s ease-in-out infinite;
}
.scn-gloucester-questioned .candle {
  position: absolute; bottom: 30%; right: 30%; width: 8px; height: 20px; background: linear-gradient(180deg, #e8c088 0%, #8a5a2a 100%); border-radius: 50% 50% 20% 20%; animation: glq-candle 5s ease-in-out infinite alternate;
}
.scn-gloucester-questioned .candle-glow {
  position: absolute; bottom: 25%; right: 28%; width: 40px; height: 40px; background: radial-gradient(circle, #d09050 0%, #8a4a1a 50%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: glq-glow 3s ease-in-out infinite alternate;
}
.scn-gloucester-questioned .desk {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 12px; background: linear-gradient(180deg, #5a3e2e 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: glq-desk 8s ease-in-out infinite;
}
.scn-gloucester-questioned .shadow-glq {
  position: absolute; bottom: 18%; left: 22%; width: 80px; height: 20px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); animation: glq-shadow 4s ease-in-out infinite alternate;
}
@keyframes glq-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes glq-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes glq-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes glq-candle { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.05) translateY(-1px) } 100% { transform: scaleY(0.95) translateY(0) } }
@keyframes glq-glow { 0% { opacity:0.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(1) } }
@keyframes glq-desk { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes glq-shadow { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.05) scaleY(0.9) } }

.scn-gloucester-defies {
  background: linear-gradient(180deg, #1a1210 0%, #2a1c18 50%, #1a1210 100%), radial-gradient(ellipse at 50% 60%, #3a2020 0%, transparent 60%);
}
.scn-gloucester-defies .bg-floor {
  position: absolute; inset: 0; background: linear-gradient(0deg, #2a1a16 0%, #1a1210 100%); animation: gld-floor 15s ease-in-out infinite alternate;
}
.scn-gloucester-defies .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 35px; height: 80px; background: linear-gradient(180deg, #6a4a3e 0%, #3a2a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gld-figure-l 5s ease-in-out infinite;
}
.scn-gloucester-defies .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 35px; height: 80px; background: linear-gradient(180deg, #5a3a2e 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gld-figure-r 5s ease-in-out infinite 0.5s;
}
.scn-gloucester-defies .weapon-left {
  position: absolute; bottom: 40%; left: 28%; width: 4px; height: 40px; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius: 2px; transform: rotate(-20deg); transform-origin: bottom center; animation: gld-weapon-l 3s ease-in-out infinite;
}
.scn-gloucester-defies .weapon-right {
  position: absolute; bottom: 40%; right: 28%; width: 4px; height: 40px; background: linear-gradient(180deg, #7a5a3a 0%, #3a1a0a 100%); border-radius: 2px; transform: rotate(20deg); transform-origin: bottom center; animation: gld-weapon-r 3s ease-in-out infinite 0.3s;
}
.scn-gloucester-defies .shadow-defies {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 20px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); animation: gld-shadow 4s ease-in-out infinite alternate;
}
@keyframes gld-floor { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes gld-figure-l { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-5px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes gld-figure-r { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-5px) rotate(-1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes gld-weapon-l { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-20deg) } }
@keyframes gld-weapon-r { 0% { transform: rotate(20deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(20deg) } }
@keyframes gld-shadow { 0% { opacity:0.6; transform: scaleX(1) } 100% { opacity:0.8; transform: scaleX(1.1) } }

.scn-item-gloucesters-eyes-plucked {
  background: linear-gradient(180deg, #0e0a08 0%, #1a1410 50%, #0e0a08 100%), radial-gradient(ellipse at 50% 60%, #2a1410 0%, transparent 70%);
}
.scn-item-gloucesters-eyes-plucked .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); animation: gle-bg 10s ease-in-out infinite alternate;
}
.scn-item-gloucesters-eyes-plucked .chair-gle {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 70px; height: 90px; background: linear-gradient(180deg, #4a3428 0%, #2a1a10 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.7); animation: gle-chair 8s ease-in-out infinite;
}
.scn-item-gloucesters-eyes-plucked .hand-gle {
  position: absolute; bottom: 30%; left: 45%; width: 25px; height: 30px; background: linear-gradient(180deg, #7a5a4a 0%, #3a2a1e 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: gle-hand 3s ease-in-out infinite;
}
.scn-item-gloucesters-eyes-plucked .eye-gle {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%); width: 20px; height: 14px; background: radial-gradient(circle, #a08060 0%, #5a3a2a 100%); border-radius: 50%; box-shadow: 0 0 6px rgba(160,128,96,0.4); animation: gle-eye 4s ease-in-out infinite alternate;
}
.scn-item-gloucesters-eyes-plucked .blood-drop {
  position: absolute; bottom: 25%; left: 48%; width: 6px; height: 10px; background: linear-gradient(180deg, #8a3a2a 0%, #4a1a10 100%); border-radius: 50% 50% 40% 40%; animation: gle-blood 5s ease-in-out infinite;
}
.scn-item-gloucesters-eyes-plucked .shadow-gle {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 16px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); animation: gle-shadow 3s ease-in-out infinite alternate;
}
@keyframes gle-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes gle-chair { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes gle-hand { 0% { transform: translateX(0) rotate(10deg) } 25% { transform: translateX(-3px) rotate(5deg) } 50% { transform: translateX(0) rotate(-10deg) } 75% { transform: translateX(3px) rotate(-5deg) } 100% { transform: translateX(0) rotate(10deg) } }
@keyframes gle-eye { 0% { transform: translateX(-50%) scale(0.8); opacity:0.7 } 50% { transform: translateX(-50%) scale(1); opacity:1 } 100% { transform: translateX(-50%) scale(0.9); opacity:0.8 } }
@keyframes gle-blood { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(4px) scale(1.2) } 100% { transform: translateY(0) scale(1) } }
@keyframes gle-shadow { 0% { transform: scaleX(0.9) scaleY(0.8) } 100% { transform: scaleX(1.1) scaleY(1) } }

.scn-servant-rebellion {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 50%, #1a1410 100%), radial-gradient(ellipse at 50% 70%, #3a2020 0%, transparent 60%);
}
.scn-servant-rebellion .bg-fight {
  position: absolute; inset: 0; background: linear-gradient(0deg, #2a1a16 0%, #1a1410 100%); animation: ser-bg 14s ease-in-out infinite alternate;
}
.scn-servant-rebellion .fighter1 {
  position: absolute; bottom: 20%; left: 30%; width: 35px; height: 80px; background: linear-gradient(180deg, #6a4a3e 0%, #3a2a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ser-f1 6s ease-in-out infinite;
}
.scn-servant-rebellion .fighter2 {
  position: absolute; bottom: 20%; right: 30%; width: 35px; height: 80px; background: linear-gradient(180deg, #5a3a2e 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ser-f2 6s ease-in-out infinite 0.3s;
}
.scn-servant-rebellion .sword {
  position: absolute; bottom: 45%; left: 40%; width: 4px; height: 50px; background: linear-gradient(180deg, #9a7a5a 0%, #5a3a1a 100%); border-radius: 2px; transform: rotate(-30deg); transform-origin: bottom center; animation: ser-sword 3s ease-in-out infinite;
}
.scn-servant-rebellion .blood-splash {
  position: absolute; bottom: 25%; left: 45%; width: 12px; height: 12px; background: radial-gradient(circle, #8a3a2a 0%, #4a1a10 70%); border-radius: 50%; filter: blur(2px); animation: ser-blood 4s ease-in-out infinite alternate;
}
.scn-servant-rebellion .ground {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 10px; background: linear-gradient(180deg, #4a3428 0%, #2a1a10 100%); border-radius: 4px; animation: ser-ground 8s ease-in-out infinite;
}
@keyframes ser-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes ser-f1 { 0% { transform: translateX(0) rotate(5deg) } 25% { transform: translateX(-8px) rotate(-5deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(8px) rotate(5deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes ser-f2 { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(8px) rotate(5deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-8px) rotate(-5deg) } 100% { transform: translateX(0) rotate(5deg) } }
@keyframes ser-sword { 0% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-4px) } 100% { transform: rotate(-30deg) translateY(0) } }
@keyframes ser-blood { 0% { opacity:0.6; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.7; transform: scale(0.9) } }
@keyframes ser-ground { 0%,100% { opacity:0.8 } 50% { opacity:1 } }

.scn-edmund-fools-edgar {
  background: linear-gradient(135deg, #1a181a 0%, #2a2225 40%, #2e2428 100%), radial-gradient(ellipse 120% 80% at 50% 60%, #3a2a2e 0%, transparent 60%);
}
.scn-edmund-fools-edgar .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2e2428 0%, #1a181a 100%); }
.scn-edmund-fools-edgar .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 10% 10% 0 0 / 8% 8% 0 0; }
.scn-edmund-fools-edgar .desk { position:absolute; bottom:25%; left:20%; width:55%; height:15%; background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%); border-radius: 2% 2% 6% 6%; box-shadow: 0 8px 16px rgba(0,0,0,0.7); }
.scn-edmund-fools-edgar .candle { position:absolute; bottom:38%; left:36%; width:4%; height:18%; background: linear-gradient(180deg, #b07a50 0%, #5a3a2a 100%); border-radius: 40% 40% 20% 20% / 30% 30% 10% 10%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5); animation: ef-candle 3s ease-in-out infinite; }
.scn-edmund-fools-edgar .parchment { position:absolute; bottom:27%; left:30%; width:18%; height:12%; background: linear-gradient(180deg, #c8b89a 0%, #a8987a 100%); border-radius: 2% 2% 6% 6%; transform: rotate(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: ef-parchment 10s ease-in-out infinite; }
.scn-edmund-fools-edgar .shadow-figure { position:absolute; bottom:22%; right:15%; width:12%; height:45%; background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.2) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(3px); transform-origin: bottom center; animation: ef-shadow 8s ease-in-out infinite; }
.scn-edmund-fools-edgar .chair { position:absolute; bottom:22%; left:18%; width:14%; height:28%; background: linear-gradient(180deg, #3a2a22 0%, #1a1612 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); }
@keyframes ef-candle {
  0% { transform: scaleY(1) rotate(0deg); opacity: 0.9; }
  25% { transform: scaleY(1.02) rotate(0.5deg); opacity: 1; }
  50% { transform: scaleY(0.98) rotate(-0.5deg); opacity: 0.85; }
  75% { transform: scaleY(1.01) rotate(0.3deg); opacity: 0.95; }
  100% { transform: scaleY(1) rotate(0deg); opacity: 0.9; }
}
@keyframes ef-parchment {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes ef-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.6; }
  50% { transform: translateX(4px) scale(0.98); opacity: 0.8; }
  100% { transform: translateX(0) scale(1); opacity: 0.6; }
}

.scn-edmund-lies-about-gloucester {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2222 60%, #1e1e1e 100%), radial-gradient(ellipse 80% 100% at 50% 30%, #3a2a2a 0%, transparent 60%);
}
.scn-edmund-lies-about-gloucester .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #2a2222 0%, #1a1a1a 100%); }
.scn-edmund-lies-about-gloucester .floor-plank { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-edmund-lies-about-gloucester .table { position:absolute; bottom:18%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
.scn-edmund-lies-about-gloucester .chair-left { position:absolute; bottom:16%; left:20%; width:12%; height:30%; background: linear-gradient(180deg, #3a2a22 0%, #1a1612 100%); border-radius: 8% 8% 4% 4%; }
.scn-edmund-lies-about-gloucester .chair-right { position:absolute; bottom:16%; right:20%; width:12%; height:30%; background: linear-gradient(180deg, #3a2a22 0%, #1a1612 100%); border-radius: 8% 8% 4% 4%; }
.scn-edmund-lies-about-gloucester .silhouette-left { position:absolute; bottom:14%; left:26%; width:10%; height:45%; background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.2) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px); transform-origin: bottom center; animation: elg-fig1 6s ease-in-out infinite; }
.scn-edmund-lies-about-gloucester .silhouette-right { position:absolute; bottom:14%; right:26%; width:10%; height:45%; background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.2) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px); transform-origin: bottom center; animation: elg-fig2 7s ease-in-out infinite 1s; }
@keyframes elg-fig1 {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes elg-fig2 {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}

.scn-edmund-advises-armed {
  background: linear-gradient(180deg, #121212 0%, #1a1a1a 50%, #0e0e0e 100%), radial-gradient(ellipse 100% 80% at 40% 50%, #2a1a1a 0%, transparent 70%);
}
.scn-edmund-advises-armed .bg-shadow { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); }
.scn-edmund-advises-armed .hand { position:absolute; bottom:20%; left:25%; width:20%; height:35%; background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%); border-radius: 40% 20% 30% 40% / 60% 40% 50% 50%; transform: rotate(15deg); transform-origin: bottom right; animation: ea-hand 4s ease-in-out infinite; }
.scn-edmund-advises-armed .key { position:absolute; bottom:32%; left:30%; width:6%; height:20%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 20% 20% 40% 40% / 30% 30% 10% 10%; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,0.8); animation: ea-key 4s ease-in-out infinite; }
.scn-edmund-advises-armed .lantern { position:absolute; bottom:45%; right:20%; width:8%; height:15%; background: radial-gradient(circle, #b08040 0%, #5a3a2a 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,0.4); animation: ea-lantern 3s ease-in-out infinite; }
.scn-edmund-advises-armed .glow { position:absolute; bottom:40%; right:16%; width:20%; height:25%; background: radial-gradient(circle, rgba(176,128,64,0.3) 0%, transparent 70%); pointer-events: none; animation: ea-glow 3s ease-in-out infinite -1s; }
@keyframes ea-hand {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-3px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes ea-key {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-8deg) translateX(2px) scale(1.02); }
  100% { transform: rotate(-10deg) translateX(0); }
}
@keyframes ea-lantern {
  0% { box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,0.4); opacity: 0.9; }
  50% { box-shadow: 0 0 30px 10px #c09050, 0 0 60px 20px rgba(192,144,80,0.6); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,0.4); opacity: 0.9; }
}
@keyframes ea-glow {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(1); opacity: 0.7; }
}

.scn-goneril-complains {
  background: linear-gradient(180deg, #d4c8b8 0%, #b8a898 30%, #9a8a7a 70%, #7a6a5a 100%), radial-gradient(ellipse 100% 60% at 50% 30%, #e8d8c8 0%, transparent 60%);
}
.scn-goneril-complains .palace-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c8b8a8 0%, #9a8a7a 100%); }
.scn-goneril-complains .palace-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 0 0 / 8% 8% 0 0; }
.scn-goneril-complains .window { position:absolute; top:10%; left:40%; width:20%; height:40%; background: linear-gradient(135deg, #f0e8d8 0%, #d0c0b0 100%); border: 4px solid #5a4a3a; border-radius: 4% 4% 10% 10%; box-shadow: inset 0 0 30px 10px rgba(255,255,220,0.3); animation: gc-window 6s ease-in-out infinite; }
.scn-goneril-complains .pillar { position:absolute; top:0; left:30%; width:6%; height:100%; background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 50%, #5a4a3a 100%); border-radius: 4% 4% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,0.3); }
.scn-goneril-complains .figure-goneril { position:absolute; bottom:15%; left:20%; width:12%; height:60%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: gc-goneril 5s ease-in-out infinite; }
.scn-goneril-complains .figure-oswald { position:absolute; bottom:15%; right:25%; width:10%; height:50%; background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: gc-oswald 6s ease-in-out infinite 1s; }
.scn-goneril-complains .curtain { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 60%, #4a2a1a 100%); border-radius: 0 0 0 20% / 0 0 0 10%; transform: scaleX(0.9); transform-origin: right; animation: gc-curtain 15s ease-in-out infinite; }
@keyframes gc-window {
  0% { box-shadow: inset 0 0 30px 10px rgba(255,255,220,0.3); opacity: 0.9; }
  50% { box-shadow: inset 0 0 50px 20px rgba(255,255,220,0.5); opacity: 1; }
  100% { box-shadow: inset 0 0 30px 10px rgba(255,255,220,0.3); opacity: 0.9; }
}
@keyframes gc-goneril {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(2deg) scale(1.01); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes gc-oswald {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes gc-curtain {
  0% { transform: scaleX(0.9) translateY(0); }
  50% { transform: scaleX(0.95) translateY(2px); }
  100% { transform: scaleX(0.9) translateY(0); }
}

/* goneril-schemes */
.scn-goneril-schemes {
  background: 
    linear-gradient(180deg, #c8b28e 0%, #a08860 60%, #806848 100%),
    radial-gradient(ellipse at 80% 40%, #d4c4a8 0%, transparent 60%);
}
.scn-goneril-schemes .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #dac8a8 0%, #b8a080 100%);
  box-shadow: inset 0 -10px 20px rgba(60,40,20,0.3);
}
.scn-goneril-schemes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a6040 0%, #5a4028 100%);
  border-radius: 0 0 4px 4px;
}
.scn-goneril-schemes .table {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: gs-table 6s ease-in-out infinite;
}
.scn-goneril-schemes .candle {
  position: absolute; bottom: 28%; left: 50%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e8d0a0 0%, #b08050 100%);
  border-radius: 2px 2px 2px 2px;
  transform: translateX(-50%);
  animation: gs-candle 2s ease-in-out infinite alternate;
}
.scn-goneril-schemes .figure-scheme {
  position: absolute; bottom: 18%; left: 42%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gs-figure-scheme 3s ease-in-out infinite alternate;
}
.scn-goneril-schemes .shadow-sharp {
  position: absolute; bottom: 18%; left: 38%; width: 40px; height: 10px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: gs-shadow 3s ease-in-out infinite alternate;
}
.scn-goneril-schemes .curtain-left {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(90deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 0 30% 30% 0 / 0 40% 40% 0;
  animation: gs-curtain 12s ease-in-out infinite;
}
.scn-goneril-schemes .curtain-right {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(-90deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 30% 0 0 30% / 40% 0 0 40%;
  animation: gs-curtain 12s ease-in-out infinite reverse;
}
@keyframes gs-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes gs-candle {
  0% { opacity: 0.8; transform: translateX(-50%) scaleY(0.95); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.05); }
  100% { opacity: 0.85; transform: translateX(-50%) scaleY(0.98); }
}
@keyframes gs-figure-scheme {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes gs-shadow { 0%,100% { width:40px; opacity:0.4; } 50% { width:44px; opacity:0.5; } }
@keyframes gs-curtain { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.85); } }

/* goneril-writes-to-regan */
.scn-goneril-writes-to-regan {
  background: 
    linear-gradient(180deg, #d0be9e 0%, #b09878 50%, #8a7050 100%),
    radial-gradient(ellipse at 60% 30%, #e0d0b0 0%, transparent 70%);
}
.scn-goneril-writes-to-regan .back-panel {
  position: absolute; inset: 0 10% 20% 10%;
  background: linear-gradient(180deg, #b8a080 0%, #8a6848 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
}
.scn-goneril-writes-to-regan .desk {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #9a8058 0%, #6a5030 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: wr-desk 8s ease-in-out infinite;
}
.scn-goneril-writes-to-regan .letter {
  position: absolute; bottom: 24%; left: 45%; width: 18%; height: 10%;
  background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: wr-letter 4s ease-in-out infinite alternate;
}
.scn-goneril-writes-to-regan .inkwell {
  position: absolute; bottom: 24%; left: 38%; width: 8px; height: 12px;
  background: #3a2a1a;
  border-radius: 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: wr-inkwell 6s ease-in-out infinite;
}
.scn-goneril-writes-to-regan .quill {
  position: absolute; bottom: 26%; left: 39%; width: 2px; height: 16px;
  background: linear-gradient(180deg, #c8b090 0%, #8a7050 100%);
  border-radius: 1px;
  transform-origin: bottom center;
  animation: wr-quill 1.5s ease-in-out infinite alternate;
}
.scn-goneril-writes-to-regan .figure-write {
  position: absolute; bottom: 15%; left: 35%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wr-figure 3s ease-in-out infinite alternate;
}
.scn-goneril-writes-to-regan .candle-flicker {
  position: absolute; bottom: 28%; left: 55%; width: 5px; height: 18px;
  background: linear-gradient(180deg, #e8d0a0 0%, #b08050 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  animation: wr-candle 2s ease-in-out infinite alternate;
}
@keyframes wr-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes wr-letter { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes wr-inkwell { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(0.95); } }
@keyframes wr-quill { 0% { transform: rotate(-10deg); } 100% { transform: rotate(10deg); } }
@keyframes wr-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes wr-candle { 0% { opacity:0.8; transform: translateX(-50%) scaleY(0.95); } 100% { opacity:1; transform: translateX(-50%) scaleY(1.05); } }

/* albany-advises-caution */
.scn-albany-advises-caution {
  background: 
    linear-gradient(180deg, #dac8b0 0%, #bfa88a 50%, #9a8268 100%),
    radial-gradient(ellipse at 50% 20%, #efe0c8 0%, transparent 60%);
}
.scn-albany-advises-caution .wall-calm {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d4c0a8 0%, #b8a088 100%);
  box-shadow: inset 0 -20px 30px rgba(60,40,20,0.2);
  animation: ac-wall 20s ease-in-out infinite;
}
.scn-albany-advises-caution .floor-calm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a6040 0%, #5a4028 100%);
  border-radius: 0 0 6px 6px;
}
.scn-albany-advises-caution .window-calm {
  position: absolute; top: 15%; left: 40%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #f0e8dc 0%, #d8d0c0 100%);
  border: 4px solid #6a5030;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,255,200,0.3);
  animation: ac-window 10s ease-in-out infinite alternate;
}
.scn-albany-advises-caution .fig-albany {
  position: absolute; bottom: 12%; left: 30%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac-fig1 8s ease-in-out infinite alternate;
}
.scn-albany-advises-caution .fig-listener {
  position: absolute; bottom: 12%; left: 55%; width: 30px; height: 66px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac-fig2 8s ease-in-out infinite alternate reverse;
}
.scn-albany-advises-caution .glow-soft {
  position: absolute; top: 20%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(255,240,200,0.4) 0%, transparent 70%);
  animation: ac-glow 6s ease-in-out infinite alternate;
}
.scn-albany-advises-caution .drape-left {
  position: absolute; top: 0; left: 0; width: 12%; height: 100%;
  background: linear-gradient(90deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 0 40% 40% 0 / 0 50% 50% 0;
  animation: ac-drape 15s ease-in-out infinite;
}
.scn-albany-advises-caution .drape-right {
  position: absolute; top: 0; right: 0; width: 12%; height: 100%;
  background: linear-gradient(-90deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 40% 0 0 40% / 50% 0 0 50%;
  animation: ac-drape 15s ease-in-out infinite reverse;
}
@keyframes ac-wall { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes ac-window { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ac-fig1 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes ac-fig2 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes ac-glow { 0% { opacity:0.3; transform: scale(0.9); } 100% { opacity:0.6; transform: scale(1.1); } }
@keyframes ac-drape { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } }

/* lear-sends-letters */
.scn-lear-sends-letters {
  background: 
    linear-gradient(180deg, #c8b28e 0%, #a08860 50%, #7a6040 100%),
    radial-gradient(ellipse at 70% 30%, #d4c4a8 0%, transparent 60%);
}
.scn-lear-sends-letters .bg-court {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #dac8a8 0%, #b8a080 100%);
  box-shadow: inset 0 -15px 25px rgba(40,30,10,0.3);
}
.scn-lear-sends-letters .floor-court {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a6040 0%, #5a4028 100%);
  border-radius: 0 0 4px 4px;
}
.scn-lear-sends-letters .figure-lear {
  position: absolute; bottom: 14%; left: 35%; width: 34px; height: 72px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ls-lear 4s ease-in-out infinite alternate;
}
.scn-lear-sends-letters .figure-kent {
  position: absolute; bottom: 14%; left: 52%; width: 30px; height: 68px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ls-kent 4s ease-in-out infinite alternate;
}
.scn-lear-sends-letters .letter-hand {
  position: absolute; bottom: 22%; left: 44%; width: 14%; height: 8%;
  background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform-origin: left center;
  animation: ls-letter 2s ease-in-out infinite alternate;
}
.scn-lear-sends-letters .seal {
  position: absolute; bottom: 23%; left: 49%; width: 8px; height: 8px;
  background: #a0461a;
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(160,70,26,0.5);
  animation: ls-seal 4s ease-in-out infinite;
}
.scn-lear-sends-letters .pillar-left {
  position: absolute; bottom: 0; left: 8%; width: 6%; height: 100%;
  background: linear-gradient(180deg, #a08868 0%, #684830 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.2);
  animation: ls-pillar 10s ease-in-out infinite;
}
.scn-lear-sends-letters .pillar-right {
  position: absolute; bottom: 0; right: 8%; width: 6%; height: 100%;
  background: linear-gradient(180deg, #a08868 0%, #684830 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.2);
  animation: ls-pillar 10s ease-in-out infinite reverse;
}
@keyframes ls-lear {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes ls-kent {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes ls-letter {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes ls-seal { 0%,100% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } }
@keyframes ls-pillar { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } }

.scn-gloucester-warns-flight {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e18 30%, #3a2820 60%, #2a1e18 100%),
    radial-gradient(ellipse at 50% 20%, #4a3428 0%, transparent 70%);
}
.scn-gloucester-warns-flight .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1e1612 0%, #2a1e18 50%, #1a1410 100%); }
.scn-gloucester-warns-flight .bed { position:absolute; bottom:18%; left:10%; width:55%; height:30%; background: linear-gradient(180deg, #3a2820 0%, #1e1410 100%); border-radius: 0 0 20% 20% / 0 0 40% 40%; box-shadow: inset 0 -8px 20px rgba(0,0,0,.6); }
.scn-gloucester-warns-flight .sleeping-figure { position:absolute; bottom:20%; left:20%; width:40%; height:18%; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gwf-breath 4s ease-in-out infinite; }
.scn-gloucester-warns-flight .standing-figure { position:absolute; bottom:22%; right:15%; width:14%; height:38%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: gwf-urgent 1.5s ease-in-out infinite alternate; }
.scn-gloucester-warns-flight .lantern { position:absolute; bottom:38%; right:28%; width:8%; height:10%; background: radial-gradient(circle, #c08040 0%, #8a5a2a 60%, #3a2820 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 24px 8px #c08040, 0 0 48px 16px rgba(192,128,64,.3); animation: gwf-flicker 0.8s ease-in-out infinite alternate; }
.scn-gloucester-warns-flight .door { position:absolute; bottom:0; right:0; width:25%; height:70%; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); border-radius: 10% 0 0 0; box-shadow: inset 4px 0 12px rgba(0,0,0,.5); }
.scn-gloucester-warns-flight .light-flicker { position:absolute; inset:0; background: radial-gradient(ellipse at 72% 40%, rgba(192,128,64,.08) 0%, transparent 60%); animation: gwf-flicker-glow 1.2s ease-in-out infinite alternate; }
.scn-gloucester-warns-flight .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, transparent 0%, #0e0a08 100%); }
@keyframes gwf-breath { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) scaleX(.97) } }
@keyframes gwf-urgent { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes gwf-flicker { 0% { box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.2); opacity:.8 } 50% { box-shadow: 0 0 30px 10px #d09050, 0 0 60px 20px rgba(208,144,80,.4); opacity:1 } 100% { box-shadow: 0 0 22px 7px #c08040, 0 0 44px 14px rgba(192,128,64,.25); opacity:.85 } }
@keyframes gwf-flicker-glow { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }

.scn-edgar-soliloquy-resolve {
  background:
    linear-gradient(180deg, #0a0e14 0%, #141a24 40%, #1a2230 70%, #0e121a 100%),
    radial-gradient(ellipse at 30% 60%, #1a2a3a 0%, transparent 70%);
}
.scn-edgar-soliloquy-resolve .chamber-bg { position:absolute; inset:0; background: linear-gradient(135deg, #0e121a 0%, #161e2a 50%, #0a0e14 100%); }
.scn-edgar-soliloquy-resolve .edgar-figure { position:absolute; bottom:20%; left:40%; width:12%; height:40%; background: linear-gradient(180deg, #0e121a 0%, #080c12 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: esr-stand 7s ease-in-out infinite; }
.scn-edgar-soliloquy-resolve .candle { position:absolute; bottom:30%; left:25%; width:2%; height:8%; background: linear-gradient(180deg, #e0c080 0%, #8a6a3a 100%); border-radius: 50% 50% 20% 20%; }
.scn-edgar-soliloquy-resolve .candle-glow { position:absolute; bottom:28%; left:23%; width:6%; height:12%; background: radial-gradient(circle, #e0b060 0%, #c09040 40%, transparent 70%); animation: esr-glow 2s ease-in-out infinite alternate; }
.scn-edgar-soliloquy-resolve .window-rect { position:absolute; top:10%; right:15%; width:18%; height:30%; background: linear-gradient(180deg, #0a121c 0%, #141e2c 100%); border: 3px solid #1a2634; border-radius: 4px 4px 8px 8px; }
.scn-edgar-soliloquy-resolve .moonbeam { position:absolute; top:12%; right:18%; width:12%; height:60%; background: linear-gradient(180deg, rgba(200,220,240,.06) 0%, transparent 100%); transform-origin: top right; animation: esr-beam 10s ease-in-out infinite alternate; }
.scn-edgar-soliloquy-resolve .shadow-wall { position:absolute; top:0; left:0; width:40%; height:100%; background: linear-gradient(90deg, #0a0e14 0%, transparent 100%); }
@keyframes esr-stand { 0%,100% { transform: scaleY(1) translateY(0) } 25% { transform: scaleY(1.02) translateY(-2px) } 50% { transform: scaleY(.98) translateY(1px) } 75% { transform: scaleY(1.01) translateY(-1px) } }
@keyframes esr-glow { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.7; transform: scale(1.3) } 100% { opacity:.4; transform: scale(1.1) } }
@keyframes esr-beam { 0% { opacity:.3; transform: rotate(-2deg) } 50% { opacity:.6; transform: rotate(2deg) } 100% { opacity:.4; transform: rotate(-1deg) } }

.scn-cornwall-orders-capture {
  background:
    linear-gradient(180deg, #1a1418 0%, #2a2028 30%, #3a2c34 60%, #1a1418 100%),
    radial-gradient(ellipse at 50% 30%, #4a3840 0%, transparent 70%);
}
.scn-cornwall-orders-capture .great-hall { position:absolute; inset:0; background: linear-gradient(135deg, #201a1e 0%, #2a2228 50%, #1a1418 100%); }
.scn-cornwall-orders-capture .cornwall-throne { position:absolute; bottom:10%; left:50%; width:30%; height:35%; transform: translateX(-50%); background: linear-gradient(180deg, #3a2c34 0%, #1e1418 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 8px 24px rgba(0,0,0,.5); }
.scn-cornwall-orders-capture .cornwall-figure { position:absolute; bottom:18%; left:50%; width:14%; height:36%; transform: translateX(-50%); background: linear-gradient(180deg, #2a2028 0%, #141014 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: coc-sit 6s ease-in-out infinite; }
.scn-cornwall-orders-capture .letter-paper { position:absolute; bottom:30%; left:32%; width:10%; height:8%; background: linear-gradient(135deg, #c0a878 0%, #a08858 100%); transform: rotate(-15deg); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: coc-letter 4s ease-in-out infinite alternate; }
.scn-cornwall-orders-capture .servant-group { position:absolute; bottom:14%; right:8%; width:16%; height:34%; background: linear-gradient(180deg, #1a1418 0%, #0e0a0c 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: coc-bow 3s ease-in-out infinite; }
.scn-cornwall-orders-capture .torch { position:absolute; bottom:38%; left:10%; width:3%; height:14%; background: linear-gradient(180deg, #8a6030 0%, #4a3018 100%); border-radius: 30% 30% 10% 10%; }
.scn-cornwall-orders-capture .torch-glow { position:absolute; bottom:34%; left:7%; width:10%; height:18%; background: radial-gradient(circle, #d09040 0%, #b07030 30%, transparent 70%); animation: coc-torch 1.5s ease-in-out infinite alternate; }
.scn-cornwall-orders-capture .flag-banner { position:absolute; top:5%; right:5%; width:12%; height:20%; background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%); border-radius: 0 0 20% 20% / 0 0 60% 60%; animation: coc-flag 8s ease-in-out infinite alternate; }
@keyframes coc-sit { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) translateY(-2px) } }
@keyframes coc-letter { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-3px) } 100% { transform: rotate(-18deg) translateY(1px) } }
@keyframes coc-bow { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(.9) translateY(4px) } }
@keyframes coc-torch { 0% { opacity:.5; transform: scale(.9) } 50% { opacity:.9; transform: scale(1.2) } 100% { opacity:.6; transform: scale(1) } }
@keyframes coc-flag { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) scaley(.95) } 100% { transform: scaleX(.95) } }

.scn-gloucester-arrested {
  background:
    linear-gradient(180deg, #141012 0%, #221a1c 30%, #2a2022 60%, #141012 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a2c 0%, transparent 70%);
}
.scn-gloucester-arrested .stone-room { position:absolute; inset:0; background: linear-gradient(135deg, #181416 0%, #221c1e 50%, #141012 100%); }
.scn-gloucester-arrested .gloucester-figure { position:absolute; bottom:16%; left:50%; width:14%; height:38%; transform: translateX(-50%); background: linear-gradient(180deg, #2a2022 0%, #141012 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ga-struggle 2s ease-in-out infinite alternate; }
.scn-gloucester-arrested .binder-left { position:absolute; bottom:20%; left:40%; width:8%; height:24%; background: linear-gradient(180deg, #1a1416 0%, #0e0a0c 100%); border-radius: 20% 20% 30% 30%; transform-origin: bottom right; animation: ga-grip-left 1.8s ease-in-out infinite alternate; }
.scn-gloucester-arrested .binder-right { position:absolute; bottom:20%; right:40%; width:8%; height:24%; background: linear-gradient(180deg, #1a1416 0%, #0e0a0c 100%); border-radius: 20% 20% 30% 30%; transform-origin: bottom left; animation: ga-grip-right 1.8s ease-in-out infinite alternate; }
.scn-gloucester-arrested .table { position:absolute; bottom:10%; left:5%; width:30%; height:14%; background: linear-gradient(180deg, #2a2022 0%, #1a1416 100%); border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-gloucester-arrested .lantern { position:absolute; bottom:38%; right:12%; width:6%; height:8%; background: radial-gradient(circle, #c07040 0%, #8a5030 50%, #2a2022 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #c07040, 0 0 40px 12px rgba(192,112,64,.25); animation: ga-lantern 3s ease-in-out infinite alternate; }
.scn-gloucester-arrested .rope-coil { position:absolute; bottom:40%; left:25%; width:8%; height:4%; background: linear-gradient(90deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-gloucester-arrested .shadow-arch { position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #0e0a0c 0%, transparent 100%); }
@keyframes ga-struggle { 0% { transform: translateX(-50%) rotate(-2deg) } 25% { transform: translateX(-48%) rotate(1deg) } 50% { transform: translateX(-50%) rotate(-1deg) } 75% { transform: translateX(-52%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes ga-grip-left { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(12deg) translateY(2px) } }
@keyframes ga-grip-right { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } 100% { transform: rotate(-12deg) translateY(2px) } }
@keyframes ga-lantern { 0% { box-shadow: 0 0 16px 4px #c07040, 0 0 32px 8px rgba(192,112,64,.2); opacity:.8 } 50% { box-shadow: 0 0 28px 10px #d08050, 0 0 56px 18px rgba(208,128,80,.4); opacity:1 } 100% { box-shadow: 0 0 20px 6px #c07040, 0 0 40px 12px rgba(192,112,64,.25); opacity:.85 } }

.scn-gloucester-blinded {
  background:
    linear-gradient(180deg, #1a1018 0%, #2a1a18 40%, #1a0e0c 100%),
    radial-gradient(ellipse at 30% 60%, #3a2a20 0%, transparent 60%);
}
.scn-gloucester-blinded .wall   { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1a18 0%, #1a0e0c 100%); }
.scn-gloucester-blinded .floor  { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a0e0c 0%, #0e0604 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-gloucester-blinded .figure { position:absolute; bottom:30%; left:60%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a20 0%, #1a0e0c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: glbl-figure 8s ease-in-out infinite alternate; }
.scn-gloucester-blinded .door   { position:absolute; bottom:28%; left:20%; width:50px; height:80px; background: linear-gradient(180deg, #4a3a28 0%, #2a1a0e 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: glbl-door 12s ease-in-out infinite; }
.scn-gloucester-blinded .lantern{ position:absolute; bottom:45%; left:40%; width:8px; height:12px; background: radial-gradient(circle, #d08a3a 0%, #8a5a1a 60%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 30px 8px #c08030, 0 0 60px 15px rgba(192,128,48,.3); animation: glbl-lantern 3s ease-in-out infinite alternate; }
.scn-gloucester-blinded .shadow { position:absolute; bottom:30%; left:55%; width:40px; height:20px; background: radial-gradient(ellipse, #0a0604 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: glbl-shadow 8s ease-in-out infinite alternate; }
.scn-gloucester-blinded .puddle { position:absolute; bottom:15%; left:25%; width:60px; height:10px; background: radial-gradient(ellipse, #1a1410 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: glbl-puddle 6s ease-in-out infinite; }
@keyframes glbl-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes glbl-door   { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes glbl-lantern{ 0% { box-shadow: 0 0 20px 4px #c08030, 0 0 40px 10px rgba(192,128,48,.2); opacity: 0.8; } 50% { box-shadow: 0 0 40px 12px #d09040, 0 0 80px 20px rgba(208,144,64,.4); opacity: 1; } 100% { box-shadow: 0 0 25px 6px #c08030, 0 0 50px 12px rgba(192,128,48,.25); opacity: 0.9; } }
@keyframes glbl-shadow { 0% { transform: scaleX(1) scaleY(1); opacity: 0.6; } 50% { transform: scaleX(1.1) scaleY(0.9); opacity: 0.8; } 100% { transform: scaleX(0.9) scaleY(1.1); opacity: 0.5; } }
@keyframes glbl-puddle { 0% { transform: scale(1) rotate(0deg); opacity: 0.3; } 50% { transform: scale(1.1) rotate(3deg); opacity: 0.5; } 100% { transform: scale(0.95) rotate(-2deg); opacity: 0.2; } }

.scn-aftermath-blindness {
  background:
    linear-gradient(180deg, #0e0e12 0%, #1a161e 40%, #0a0810 100%),
    radial-gradient(ellipse at 50% 70%, #2a2230 0%, transparent 50%);
}
.scn-aftermath-blindness .corridor-wall  { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1620 0%, #0e0a14 100%); }
.scn-aftermath-blindness .corridor-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #0e0a14 0%, #060408 100%); }
.scn-aftermath-blindness .figure-leader  { position:absolute; bottom:25%; left:30%; width:28px; height:55px; background: linear-gradient(180deg, #2a2230 0%, #1a1620 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: aftbl-leader 6s ease-in-out infinite alternate; }
.scn-aftermath-blindness .figure-follower{ position:absolute; bottom:25%; left:50%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: aftbl-follower 7s ease-in-out infinite alternate; }
.scn-aftermath-blindness .torch         { position:absolute; bottom:35%; left:35%; width:6px; height:10px; background: radial-gradient(circle, #d08030 0%, #8a5010 70%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 20px 6px #b07020, 0 0 40px 12px rgba(176,112,32,.3); animation: aftbl-torch 2s ease-in-out infinite alternate; }
.scn-aftermath-blindness .debris        { position:absolute; bottom:10%; left:20%; width:40px; height:8px; background: radial-gradient(ellipse, #1a1620 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: aftbl-debris 10s linear infinite; }
.scn-aftermath-blindness .crack         { position:absolute; bottom:32%; left:55%; width:3px; height:40px; background: linear-gradient(180deg, #2a2230 0%, transparent 100%); border-radius: 1px; animation: aftbl-crack 15s linear infinite; }
@keyframes aftbl-leader   { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes aftbl-follower { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(4px) scaleY(0.98); } 100% { transform: translateX(-2px) scaleY(1.02); } }
@keyframes aftbl-torch    { 0% { box-shadow: 0 0 15px 4px #b07020, 0 0 30px 8px rgba(176,112,32,.2); opacity: 0.7; } 50% { box-shadow: 0 0 25px 8px #d08030, 0 0 50px 15px rgba(208,128,48,.4); opacity: 1; } 100% { box-shadow: 0 0 18px 5px #b07020, 0 0 35px 10px rgba(176,112,32,.25); opacity: 0.8; } }
@keyframes aftbl-debris   { 0% { transform: translateX(0); opacity: 0.3; } 50% { transform: translateX(10px); opacity: 0.5; } 100% { transform: translateX(0); opacity: 0.2; } }
@keyframes aftbl-crack    { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.1; } }

.scn-heath-edgar-contemplation {
  background:
    linear-gradient(180deg, #2a2e30 0%, #3a3e40 30%, #1a1e20 100%),
    radial-gradient(ellipse at 50% 20%, #4a4e50 0%, transparent 70%);
}
.scn-heath-edgar-contemplation .sky     { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a3e40 0%, #2a2e30 100%); animation: heath-sky 20s ease-in-out infinite alternate; }
.scn-heath-edgar-contemplation .ground  { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a2e20 0%, #1a1e10 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-heath-edgar-contemplation .figure  { position:absolute; bottom:30%; left:60%; width:28px; height:55px; background: linear-gradient(180deg, #1a1e20 0%, #0e1012 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: heath-figure 10s ease-in-out infinite alternate; }
.scn-heath-edgar-contemplation .rock    { position:absolute; bottom:30%; left:25%; width:40px; height:30px; background: linear-gradient(180deg, #3a3e40 0%, #2a2e30 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; animation: heath-rock 15s ease-in-out infinite; }
.scn-heath-edgar-contemplation .cloud-a { position:absolute; top:15%; left:10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,255,250,0.3) 0%, rgba(255,255,250,0.05) 100%); border-radius: 50%; filter: blur(8px); animation: heath-drift-a 40s linear infinite; }
.scn-heath-edgar-contemplation .cloud-b { position:absolute; top:25%; right:20%; width:80px; height:15px; background: linear-gradient(180deg, rgba(255,255,250,0.2) 0%, rgba(255,255,250,0.02) 100%); border-radius: 50%; filter: blur(6px); animation: heath-drift-b 50s linear infinite reverse; }
.scn-heath-edgar-contemplation .grass   { position:absolute; bottom:20%; left:40%; width:60px; height:5px; background: radial-gradient(ellipse, #2a3a1a 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: heath-grass 8s ease-in-out infinite alternate; }
@keyframes heath-sky   { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes heath-figure{ 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(3px) rotate(2deg); } }
@keyframes heath-rock  { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes heath-drift-a{ 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }
@keyframes heath-drift-b{ 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes heath-grass { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }

.scn-gloucester-led-old-man {
  background:
    linear-gradient(180deg, #2a3030 0%, #3a4040 30%, #1a2020 100%),
    radial-gradient(ellipse at 50% 80%, #4a5050 0%, transparent 60%);
}
.scn-gloucester-led-old-man .sky          { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a4040 0%, #2a3030 100%); animation: glom-sky 25s ease-in-out infinite alternate; }
.scn-gloucester-led-old-man .path         { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a2e20 0%, #1a1e10 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; }
.scn-gloucester-led-old-man .figure-blind { position:absolute; bottom:25%; left:40%; width:30px; height:55px; background: linear-gradient(180deg, #2a3030 0%, #1a2020 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: glom-blind 12s ease-in-out infinite alternate; }
.scn-gloucester-led-old-man .figure-guide { position:absolute; bottom:25%; left:55%; width:28px; height:50px; background: linear-gradient(180deg, #3a4040 0%, #2a3030 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: glom-guide 10s ease-in-out infinite alternate; }
.scn-gloucester-led-old-man .staff        { position:absolute; bottom:25%; left:52%; width:2px; height:45px; background: linear-gradient(180deg, #4a5050 0%, #2a3030 100%); border-radius: 1px; transform: rotate(-10deg); transform-origin: bottom; animation: glom-staff 8s ease-in-out infinite alternate; }
.scn-gloucester-led-old-man .tree         { position:absolute; bottom:40%; left:10%; width:30px; height:80px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 20% 20% 10% 10% / 50% 50% 10% 10%; animation: glom-tree 20s ease-in-out infinite; }
.scn-gloucester-led-old-man .mist         { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(255,255,255,0.08) 0%, transparent 100%); border-radius: 50% 50% 0 0; filter: blur(10px); animation: glom-mist 30s linear infinite; }
@keyframes glom-sky  { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes glom-blind{ 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes glom-guide{ 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-2px) scaleY(0.98); } 100% { transform: translateX(1px) scaleY(1.02); } }
@keyframes glom-staff{ 0% { transform: rotate(-10deg); } 50% { transform: rotate(-8deg); } 100% { transform: rotate(-12deg); } }
@keyframes glom-tree { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1.02); } }
@keyframes glom-mist { 0% { transform: translateY(0); opacity: 0.3; } 50% { transform: translateY(-10px); opacity: 0.5; } 100% { transform: translateY(0); opacity: 0.2; } }

.scn-albany-intervenes {
  background: linear-gradient(180deg, #d4c4a0 0%, #c0a880 100%), radial-gradient(ellipse at 70% 20%, #f5e6c8 0%, transparent 60%);
}
.scn-albany-intervenes .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b09878 0%, #d4c4a0 100%);
  animation: ai-wall 8s ease-in-out infinite alternate;
}
.scn-albany-intervenes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6f52 0%, #6b543e 100%);
  border-radius: 0 0 10% 10%;
}
.scn-albany-intervenes .column-left {
  position: absolute; bottom: 20%; left: 15%; width: 20px; height: 60%;
  background: linear-gradient(180deg, #c8b898 0%, #a89070 100%);
  border-radius: 4px;
  box-shadow: inset -2px 0 6px rgba(0,0,0,0.3);
}
.scn-albany-intervenes .column-right {
  position: absolute; bottom: 20%; right: 15%; width: 20px; height: 60%;
  background: linear-gradient(180deg, #c8b898 0%, #a89070 100%);
  border-radius: 4px;
  box-shadow: inset 2px 0 6px rgba(0,0,0,0.3);
}
.scn-albany-intervenes .throne-base {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #4a321a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-albany-intervenes .lear-figure {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ai-lear 4s ease-in-out infinite;
}
.scn-albany-intervenes .kent-figure {
  position: absolute; bottom: 28%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(-10deg);
  animation: ai-kent 5s ease-in-out infinite;
}
.scn-albany-intervenes .albany-figure {
  position: absolute; bottom: 32%; left: 62%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(15deg);
  animation: ai-albany 3s ease-in-out infinite;
}
.scn-albany-intervenes .light-ray {
  position: absolute; top: 0; left: 30%; right: 30%; bottom: 60%;
  background: linear-gradient(180deg, rgba(245,230,200,0.4) 0%, transparent 100%);
  clip-path: polygon(30% 0, 70% 0, 80% 100%, 20% 100%);
  animation: ai-ray 6s ease-in-out infinite alternate;
}
@keyframes ai-wall { 0% { opacity: 0.9; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes ai-lear { 0%, 100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } }
@keyframes ai-kent { 0%, 100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1px); } }
@keyframes ai-albany { 0%, 100% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(18deg) translateX(2px) translateY(-1px); } }
@keyframes ai-ray { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.1); } 100% { opacity: 0.5; transform: scaleY(0.9); } }

.scn-lear-banishes-kent {
  background: linear-gradient(180deg, #c8a878 0%, #b89860 70%, #8a6a3a 100%), radial-gradient(ellipse at 50% 30%, #e8d4a8 0%, transparent 70%);
}
.scn-lear-banishes-kent .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #b09868 0%, #d0b888 100%);
}
.scn-lear-banishes-kent .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 0 0 15% 15%;
}
.scn-lear-banishes-kent .throne-base {
  position: absolute; bottom: 30%; left: 30%; width: 90px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 15% 15% 0 0;
}
.scn-lear-banishes-kent .lear-throne {
  position: absolute; bottom: 40%; left: 30%; width: 50px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
}
.scn-lear-banishes-kent .lear-arm {
  position: absolute; bottom: 50%; left: 34%; width: 40px; height: 10px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50%;
  transform-origin: left center;
  animation: lbk-arm 1.5s ease-in-out infinite;
}
.scn-lear-banishes-kent .kent-profile {
  position: absolute; bottom: 28%; left: 55%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  transform: rotate(-5deg);
  animation: lbk-kent 4s ease-in-out infinite;
}
.scn-lear-banishes-kent .guard-shadow {
  position: absolute; bottom: 25%; left: 65%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  opacity: 0.7;
  animation: lbk-guard 5s ease-in-out infinite alternate;
}
.scn-lear-banishes-kent .door-arch {
  position: absolute; bottom: 0; right: 15%; width: 60px; height: 80%;
  background: transparent;
  border: 6px solid #6a4a2a;
  border-top: none;
  border-radius: 0 0 40% 40%;
  clip-path: inset(0 0 0 0);
  animation: lbk-door 8s ease-in-out infinite;
}
@keyframes lbk-arm { 0%, 100% { transform: rotate(15deg); } 50% { transform: rotate(45deg); } }
@keyframes lbk-kent { 0%, 100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } }
@keyframes lbk-guard { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.05); } 100% { opacity: 0.5; transform: scaleY(0.95); } }
@keyframes lbk-door { 0%,100% { border-color: #6a4a2a; } 50% { border-color: #8a6a4a; } }

.scn-kent-bid-farewell {
  background: linear-gradient(180deg, #b09878 0%, #908060 60%, #6a5a4a 100%), radial-gradient(ellipse at 80% 30%, #f0d8b8 0%, transparent 70%);
}
.scn-kent-bid-farewell .wall-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a08868 0%, #c0a888 100%);
  animation: kbf-wall 10s ease-in-out infinite alternate;
}
.scn-kent-bid-farewell .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(45deg, #7a5a3a 25%, #6a4a2a 25%, #6a4a2a 50%, #7a5a3a 50%, #7a5a3a 75%, #6a4a2a 75%);
  background-size: 30px 30px;
}
.scn-kent-bid-farewell .doorway {
  position: absolute; bottom: 10%; right: 10%; width: 40px; height: 70%;
  border: 4px solid #4a3020;
  border-radius: 0 0 30% 30%;
  background: radial-gradient(ellipse at 50% 100%, #f5e6c8 0%, transparent 70%);
  animation: kbf-door 6s ease-in-out infinite alternate;
}
.scn-kent-bid-farewell .kent-farewell {
  position: absolute; bottom: 25%; right: 14%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(5deg);
  animation: kbf-kent 8s ease-in-out infinite;
}
.scn-kent-bid-farewell .lantern {
  position: absolute; bottom: 40%; right: 18%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd680 0%, #d4a040 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 4px rgba(255,214,128,0.6);
  animation: kbf-lantern 4s ease-in-out infinite;
}
.scn-kent-bid-farewell .shadow-strip {
  position: absolute; bottom: 20%; left: 40%; right: 40%; height: 5px;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.3), transparent);
  animation: kbf-shadow 6s ease-in-out infinite;
}
.scn-kent-bid-farewell .dawn-light {
  position: absolute; top: 0; right: 0; width: 40%; height: 60%;
  background: linear-gradient(135deg, rgba(245,230,200,0.3) 0%, transparent 100%);
  clip-path: polygon(30% 0, 100% 0, 100% 100%, 60% 100%);
  animation: kbf-dawn 12s ease-in-out infinite alternate;
}
@keyframes kbf-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes kbf-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }
@keyframes kbf-kent { 0%,100% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(2deg) translateX(3px); } }
@keyframes kbf-lantern { 0%,100% { opacity: 0.8; box-shadow: 0 0 12px 3px rgba(255,214,128,0.5); } 50% { opacity: 1; box-shadow: 0 0 24px 6px rgba(255,214,128,0.8); } }
@keyframes kbf-shadow { 0%,100% { opacity: 0.5; } 50% { opacity: 0.8; } }
@keyframes kbf-dawn { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }

.scn-france-burgundy-arrive {
  background: linear-gradient(180deg, #f0e0c8 0%, #d8c8b0 100%), radial-gradient(ellipse at 50% 30%, #fff8e8 0%, transparent 70%);
}
.scn-france-burgundy-arrive .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d8c0 0%, #d0c0a8 100%);
  animation: fba-wall 15s ease-in-out infinite alternate;
}
.scn-france-burgundy-arrive .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8b098 0%, #a89078 100%);
  border-radius: 0 0 20% 20%;
}
.scn-france-burgundy-arrive .arch-left {
  position: absolute; bottom: 20%; left: 10%; width: 30px; height: 60%;
  background: linear-gradient(180deg, #d0c0a8 0%, #b8a890 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 2px 0 8px rgba(0,0,0,0.1);
}
.scn-france-burgundy-arrive .arch-right {
  position: absolute; bottom: 20%; right: 10%; width: 30px; height: 60%;
  background: linear-gradient(180deg, #d0c0a8 0%, #b8a890 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset -2px 0 8px rgba(0,0,0,0.1);
}
.scn-france-burgundy-arrive .cordelia-figure {
  position: absolute; bottom: 25%; left: 45%; width: 35px; height: 65px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: fba-cordelia 6s ease-in-out infinite;
}
.scn-france-burgundy-arrive .france-figure {
  position: absolute; bottom: 28%; left: 55%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(5deg);
  animation: fba-france 7s ease-in-out infinite alternate;
}
.scn-france-burgundy-arrive .burgundy-figure {
  position: absolute; bottom: 25%; left: 35%; width: 38px; height: 68px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: fba-burgundy 8s ease-in-out infinite alternate;
}
.scn-france-burgundy-arrive .banner-left {
  position: absolute; top: 10%; left: 15%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 0 0 30% 30%;
  animation: fba-banner-l 10s ease-in-out infinite;
}
.scn-france-burgundy-arrive .banner-right {
  position: absolute; top: 10%; right: 15%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #5e1a1d 0%, #702243 100%);
  border-radius: 0 0 30% 30%;
  animation: fba-banner-r 12s ease-in-out infinite;
}
@keyframes fba-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fba-cordelia { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes fba-france { 0%,100% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(7deg) translateX(2px); } }
@keyframes fba-burgundy { 0%,100% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-7deg) translateX(-2px); } }
@keyframes fba-banner-l { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } }
@keyframes fba-banner-r { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.08); } }

.scn-oswald-defies-lear { background: linear-gradient(180deg, #d4a86a 0%, #b8864a 40%, #7a5020 100%), radial-gradient(ellipse at 50% 100%, #7a5020 0%, transparent 70%); }
.scn-oswald-defies-lear .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c49a5e 0%, #a0763a 100%); }
.scn-oswald-defies-lear .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a3820 0%, #3a2210 100%); }
.scn-oswald-defies-lear .window { position:absolute; top:10%; right:15%; width:60px; height:80px; background: linear-gradient(180deg, #f0d8a0 0%, #d4b880 100%); box-shadow: inset 0 0 0 4px #7a5020, 0 0 20px 6px rgba(240,216,160,0.5); border-radius:4%; }
.scn-oswald-defies-lear .lear-silhouette { position:absolute; bottom:35%; left:55%; width:30px; height:80px; background: radial-gradient(ellipse 14px 12px at 50% 18%, #1a1a1a 0%, #1a1a1a 100%) no-repeat, linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: odl-lear 8s ease-in-out infinite alternate; }
.scn-oswald-defies-lear .oswald-silhouette { position:absolute; bottom:35%; left:30%; width:24px; height:72px; background: radial-gradient(ellipse 10px 10px at 50% 18%, #2a2a2a 0%, #2a2a2a 100%) no-repeat, linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: odl-oswald 3s ease-in-out infinite; }
.scn-oswald-defies-lear .shadow-lear { position:absolute; bottom:35%; left:55%; width:30px; height:10px; background: rgba(0,0,0,0.4); border-radius:50%; filter:blur(3px); animation: odl-shadow-pulse 8s ease-in-out infinite alternate; }
.scn-oswald-defies-lear .shadow-oswald { position:absolute; bottom:35%; left:30%; width:24px; height:8px; background: rgba(0,0,0,0.3); border-radius:50%; filter:blur(2px); animation: odl-shadow-pulse 3s ease-in-out infinite; }
@keyframes odl-lear { 0% { transform: scaleX(-1) translateY(0) rotate(0deg); } 50% { transform: scaleX(-1) translateY(-2px) rotate(0.5deg); } 100% { transform: scaleX(-1) translateY(0) rotate(0deg); } }
@keyframes odl-oswald { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(8px) translateY(-3px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes odl-shadow-pulse { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.6; transform:scale(1); } }

.scn-knight-warns-lear { background: linear-gradient(180deg, #d4a86a 0%, #b8864a 40%, #7a5020 100%), radial-gradient(ellipse at 40% 100%, #7a5020 0%, transparent 70%); }
.scn-knight-warns-lear .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c49a5e 0%, #a0763a 100%); }
.scn-knight-warns-lear .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a3820 0%, #3a2210 100%); }
.scn-knight-warns-lear .candle { position:absolute; bottom:45%; left:25%; width:8px; height:20px; background: linear-gradient(180deg, #f0d0a0 0%, #d4a060 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; box-shadow: 0 0 12px 4px rgba(240,208,160,0.6); animation: kwl-candle 2s ease-in-out infinite alternate; }
.scn-knight-warns-lear .lear-seated { position:absolute; bottom:40%; right:20%; width:40px; height:70px; background: radial-gradient(ellipse 20px 16px at 50% 20%, #1a1a1a 0%, #1a1a1a 100%) no-repeat, linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: kwl-lear-sit 6s ease-in-out infinite; }
.scn-knight-warns-lear .knight-bowing { position:absolute; bottom:40%; left:30%; width:25px; height:65px; background: radial-gradient(ellipse 12px 10px at 50% 18%, #2a2a2a 0%, #2a2a2a 100%) no-repeat, linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kwl-bow 4s ease-in-out infinite alternate; }
.scn-knight-warns-lear .candle-glow { position:absolute; bottom:45%; left:25%; width:40px; height:40px; background: radial-gradient(circle, rgba(240,208,160,0.4) 0%, transparent 70%); border-radius:50%; animation: kwl-glow-pulse 2s ease-in-out infinite alternate; }
.scn-knight-warns-lear .shadow { position:absolute; bottom:40%; left:30%; width:30px; height:6px; background: rgba(0,0,0,0.4); border-radius:50%; filter:blur(3px); animation: kwl-shadow 4s ease-in-out infinite alternate; }
@keyframes kwl-candle { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.1); } 100% { transform: rotate(-2deg) scaleY(1); } }
@keyframes kwl-lear-sit { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-2px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes kwl-bow { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes kwl-glow-pulse { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.7; transform:scale(1); } }
@keyframes kwl-shadow { 0% { opacity:0.5; transform:scale(1); } 50% { opacity:0.8; transform:scale(1.1); } 100% { opacity:0.5; transform:scale(1); } }

.scn-fool-has-pined { background: linear-gradient(180deg, #b0886a 0%, #90684a 40%, #604028 100%), radial-gradient(ellipse at 50% 100%, #604028 0%, transparent 70%); }
.scn-fool-has-pined .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a07858 0%, #886040 100%); }
.scn-fool-has-pined .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #483020 0%, #281810 100%); }
.scn-fool-has-pined .window-dim { position:absolute; top:12%; right:20%; width:50px; height:70px; background: linear-gradient(180deg, #c8b090 0%, #b09878 100%); box-shadow: inset 0 0 0 4px #604028; border-radius:4%; opacity:0.6; }
.scn-fool-has-pined .lear-stand { position:absolute; bottom:40%; left:55%; width:35px; height:80px; background: radial-gradient(ellipse 16px 14px at 50% 18%, #1a1a1a 0%, #1a1a1a 100%) no-repeat, linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: fhp-lear 10s ease-in-out infinite alternate; }
.scn-fool-has-pined .fool-slump { position:absolute; bottom:40%; left:30%; width:20px; height:55px; background: radial-gradient(ellipse 10px 8px at 50% 18%, #2a2a2a 0%, #2a2a2a 100%) no-repeat, linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fhp-fool 5s ease-in-out infinite; }
.scn-fool-has-pined .shadow-fool { position:absolute; bottom:40%; left:30%; width:20px; height:6px; background: rgba(0,0,0,0.4); border-radius:50%; filter:blur(2px); animation: fhp-shadow-fool 5s ease-in-out infinite; }
.scn-fool-has-pined .shadow-lear { position:absolute; bottom:40%; left:55%; width:30px; height:8px; background: rgba(0,0,0,0.4); border-radius:50%; filter:blur(3px); animation: fhp-shadow-lear 10s ease-in-out infinite alternate; }
@keyframes fhp-lear { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-3px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes fhp-fool { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(5deg) translateY(2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes fhp-shadow-fool { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes fhp-shadow-lear { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-lear-strikes-oswald { background: linear-gradient(180deg, #d4a86a 0%, #b8864a 40%, #7a5020 100%), radial-gradient(ellipse at 50% 100%, #7a5020 0%, transparent 70%); }
.scn-lear-strikes-oswald .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c49a5e 0%, #a0763a 100%); }
.scn-lear-strikes-oswald .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a3820 0%, #3a2210 100%); }
.scn-lear-strikes-oswald .table { position:absolute; bottom:38%; left:15%; width:80px; height:20px; background: linear-gradient(180deg, #7a5030 0%, #5a3820 100%); border-radius:4%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); transform: rotate(-5deg); animation: lso-table 3s ease-in-out infinite; }
.scn-lear-strikes-oswald .lear-lunge { position:absolute; bottom:35%; left:50%; width:30px; height:78px; background: radial-gradient(ellipse 14px 12px at 50% 18%, #1a1a1a 0%, #1a1a1a 100%) no-repeat, linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1) rotate(15deg); animation: lso-lear-lunge 0.5s ease-in-out infinite; }
.scn-lear-strikes-oswald .oswald-fall { position:absolute; bottom:35%; left:30%; width:24px; height:70px; background: radial-gradient(ellipse 10px 10px at 50% 20%, #2a2a2a 0%, #2a2a2a 100%) no-repeat, linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-30deg); animation: lso-fall 0.5s ease-in-out infinite; }
.scn-lear-strikes-oswald .chair { position:absolute; bottom:35%; right:20%; width:20px; height:40px; background: linear-gradient(180deg, #5a3820 0%, #3a2210 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform: rotate(10deg); animation: lso-chair-shake 0.5s ease-in-out infinite; }
.scn-lear-strikes-oswald .dust { position:absolute; bottom:40%; left:40%; width:30px; height:30px; background: radial-gradient(circle, rgba(180,140,100,0.3) 0%, transparent 70%); border-radius:50%; filter:blur(4px); animation: lso-dust 0.5s ease-in-out infinite; }
@keyframes lso-table { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes lso-lear-lunge { 0% { transform: scaleX(-1) rotate(15deg) translateX(0); } 50% { transform: scaleX(-1) rotate(20deg) translateX(5px); } 100% { transform: scaleX(-1) rotate(15deg) translateX(0); } }
@keyframes lso-fall { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-35deg) translateY(3px); } 100% { transform: rotate(-30deg) translateY(0); } }
@keyframes lso-chair-shake { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes lso-dust { 0% { opacity:0.3; transform:scale(1); } 50% { opacity:0.6; transform:scale(1.3); } 100% { opacity:0.3; transform:scale(1); } }

.scn-lear-recognizes-gloucester {
  background: linear-gradient(180deg, #c8a878 0%, #a08050 30%, #604830 70%, #302010 100%), radial-gradient(ellipse at 50% 80%, #d0b888 0%, transparent 60%);
}
.scn-lear-recognizes-gloucester .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 60%, #a08050 100%);
  animation: lr-sky 14s ease-in-out infinite alternate;
}
.scn-lear-recognizes-gloucester .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #4a3a2a 0%, #7a5a3a 50%, #a08050 100%);
  border-top: 2px solid #b89860;
  animation: lr-ground 20s ease-in-out infinite alternate;
}
.scn-lear-recognizes-gloucester .sun {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd080 0%, #e8a040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(232,160,64,0.5), 0 0 80px 40px rgba(200,120,48,0.3);
  animation: lr-sun 8s ease-in-out infinite alternate;
}
.scn-lear-recognizes-gloucester .figure-lear {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lr-figure-lear 9s ease-in-out infinite;
}
.scn-lear-recognizes-gloucester .figure-gloucester {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lr-figure-gloucester 9s ease-in-out infinite 2s;
}
.scn-lear-recognizes-gloucester .staff {
  position: absolute; bottom: 22%; left: 56%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%);
  transform: rotate(15deg);
  border-radius: 1px;
  animation: lr-staff 11s ease-in-out infinite;
}
.scn-lear-recognizes-gloucester .dust-cloud {
  position: absolute; bottom: 5%; left: 40%; width: 80px; height: 20px;
  background: rgba(180,140,100,0.3);
  filter: blur(8px);
  border-radius: 50%;
  animation: lr-dust 30s linear infinite;
}
@keyframes lr-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes lr-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01) translateY(-1px); }
  100% { transform: scaleY(1); }
}
@keyframes lr-sun {
  0% { transform: translate(0,0); opacity: 0.9; box-shadow: 0 0 30px 15px rgba(232,160,64,0.4); }
  50% { transform: translate(5px, -3px); opacity: 1; box-shadow: 0 0 50px 25px rgba(232,160,64,0.6); }
  100% { transform: translate(0,0); opacity: 0.85; box-shadow: 0 0 35px 18px rgba(200,120,48,0.5); }
}
@keyframes lr-figure-lear {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  75% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lr-figure-gloucester {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  50% { transform: translateX(-3px) rotate(2deg) scale(1.02); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes lr-staff {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes lr-dust {
  0% { transform: translateX(-20px) scale(1); opacity: 0.3; }
  50% { transform: translateX(40px) scale(1.1); opacity: 0.4; }
  100% { transform: translateX(100px) scale(1); opacity: 0.1; }
}

.scn-lear-mad-ramblings {
  background: linear-gradient(180deg, #4a3030 0%, #2a1a1a 40%, #1a0a0a 80%), radial-gradient(ellipse at 50% 30%, #6a4040 0%, transparent 60%);
}
.scn-lear-mad-ramblings .bg {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 20%, #5a3530 0%, #2a1510 70%);
  animation: lmr-bg 12s ease-in-out infinite alternate;
}
.scn-lear-mad-ramblings .swirl-left {
  position: absolute; top: 10%; left: 10%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(180,120,80,0.2) 0%, transparent 60%);
  filter: blur(10px);
  border-radius: 50%;
  animation: lmr-swirl 20s linear infinite;
}
.scn-lear-mad-ramblings .swirl-right {
  position: absolute; top: 40%; right: 15%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(160,100,60,0.15) 0%, transparent 60%);
  filter: blur(12px);
  border-radius: 50%;
  animation: lmr-swirl 25s linear infinite reverse;
}
.scn-lear-mad-ramblings .figure-lear-rambling {
  position: absolute; bottom: 25%; left: 45%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #3a2220 0%, #1a0a08 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lmr-figure 6s ease-in-out infinite;
}
.scn-lear-mad-ramblings .centaur-shadow {
  position: absolute; bottom: 25%; right: 20%; width: 50px; height: 40px;
  background: radial-gradient(ellipse at 50% 0%, #1a0a0a 0%, transparent 70%);
  filter: blur(6px);
  animation: lmr-centaur 12s ease-in-out infinite;
}
.scn-lear-mad-ramblings .ripple {
  position: absolute; bottom: 15%; left: 30%; width: 60px; height: 10px;
  background: rgba(200,160,120,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: lmr-ripple 8s ease-in-out infinite;
}
.scn-lear-mad-ramblings .fragment {
  position: absolute; top: 30%; left: 20%; width: 8px; height: 8px;
  background: #8a5a3a;
  border-radius: 50%;
  filter: blur(2px);
  animation: lmr-fragment 15s ease-in-out infinite;
}
@keyframes lmr-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes lmr-swirl {
  0% { transform: rotate(0deg) scale(1); opacity: 0.5; }
  50% { transform: rotate(180deg) scale(1.2); opacity: 0.7; }
  100% { transform: rotate(360deg) scale(1); opacity: 0.4; }
}
@keyframes lmr-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(3deg); }
  50% { transform: translateX(2px) rotate(-2deg); }
  75% { transform: translateX(-1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lmr-centaur {
  0% { transform: scale(1) translateY(0); opacity: 0.3; }
  50% { transform: scale(1.1) translateY(-5px); opacity: 0.6; }
  100% { transform: scale(1) translateY(0); opacity: 0.2; }
}
@keyframes lmr-ripple {
  0% { transform: scaleX(1); opacity: 0.2; }
  50% { transform: scaleX(1.2); opacity: 0.4; }
  100% { transform: scaleX(1); opacity: 0.2; }
}
@keyframes lmr-fragment {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(15px,10px) rotate(180deg); }
  100% { transform: translate(0,0) rotate(360deg); }
}

.scn-lear-and-gloucester {
  background: linear-gradient(180deg, #5a4040 0%, #3a2020 40%, #1a0a0a 80%), radial-gradient(ellipse at 50% 60%, #6a4848 0%, transparent 70%);
}
.scn-lear-and-gloucester .skylight {
  position: absolute; top: 0; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #d0b090 0%, #a08060 100%);
  border-radius: 0 0 20% 20%;
  animation: lag-skylight 16s ease-in-out infinite alternate;
}
.scn-lear-and-gloucester .wall {
  position: absolute; inset: 20% 0 0 0;
  background: linear-gradient(270deg, #4a3020 0%, #3a2010 50%, #4a3020 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: lag-wall 10s ease-in-out infinite alternate;
}
.scn-lear-and-gloucester .figure-lear-blind {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2518 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lag-figure-lear 8s ease-in-out infinite;
}
.scn-lear-and-gloucester .figure-gloucester-blind {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lag-figure-gloucester 8s ease-in-out infinite 2s;
}
.scn-lear-and-gloucester .blindfold {
  position: absolute; bottom: 28%; left: 55%; width: 14px; height: 4px;
  background: #6a4a2a;
  border-radius: 2px;
  transform: translateX(-50%);
  animation: lag-blindfold 12s ease-in-out infinite;
}
.scn-lear-and-gloucester .cupid-arrow {
  position: absolute; top: 35%; left: 50%; width: 30px; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #c08050 50%, transparent 100%);
  transform: rotate(45deg);
  animation: lag-arrow 20s linear infinite;
}
.scn-lear-and-gloucester .shadow-bars {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,0.2) 0px, rgba(0,0,0,0.2) 4px, transparent 4px, transparent 10px);
  animation: lag-bars 6s ease-in-out infinite alternate;
}
@keyframes lag-skylight {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.8; transform: scaleY(1); }
}
@keyframes lag-wall {
  0% { background-position: 0% 0%; }
  50% { background-position: 2% 0%; }
  100% { background-position: 0% 0%; }
}
@keyframes lag-figure-lear {
  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 lag-figure-gloucester {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  50% { transform: translateX(-2px) rotate(2deg) scale(1.02); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes lag-blindfold {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes lag-arrow {
  0% { transform: rotate(45deg) translateX(-20px); opacity: 0; }
  50% { transform: rotate(45deg) translateX(0); opacity: 1; }
  100% { transform: rotate(45deg) translateX(20px); opacity: 0; }
}
@keyframes lag-bars {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}

.scn-lear-mad-justice {
  background: linear-gradient(180deg, #c8a878 0%, #a08050 30%, #604830 70%, #302010 100%), radial-gradient(ellipse at 50% 90%, #b09868 0%, transparent 60%);
}
.scn-lear-mad-justice .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e0c8a0 0%, #b89870 50%, #8a6840 100%);
  animation: lmj-sky 15s ease-in-out infinite alternate;
}
.scn-lear-mad-justice .platform {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #4a2a1a 0%, #6a3a2a 50%, #8a5040 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: lmj-platform 18s ease-in-out infinite alternate;
}
.scn-lear-mad-justice .figure-justice {
  position: absolute; bottom: 20%; left: 35%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lmj-figurej 8s ease-in-out infinite;
}
.scn-lear-mad-justice .figure-thief {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lmj-figuret 8s ease-in-out infinite 2s;
}
.scn-lear-mad-justice .dog {
  position: absolute; bottom: 8%; left: 48%; width: 18px; height: 12px;
  background: linear-gradient(270deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(-10deg);
  animation: lmj-dog 10s ease-in-out infinite;
}
.scn-lear-mad-justice .bark-ripple {
  position: absolute; bottom: 5%; left: 48%; width: 30px; height: 6px;
  background: rgba(200,160,120,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: lmj-bark 5s ease-in-out infinite;
}
.scn-lear-mad-justice .scale {
  position: absolute; top: 30%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #8a6a40 0%, #6a4a20 100%);
  border-radius: 0 0 50% 50% / 0 0 40% 40%;
  transform: translateX(-50%);
  animation: lmj-scale 12s ease-in-out infinite;
}
.scn-lear-mad-justice .gavel {
  position: absolute; top: 22%; left: 52%; width: 6px; height: 20px;
  background: #6a4a2a;
  border-radius: 2px;
  transform: rotate(20deg);
  animation: lmj-gavel 7s ease-in-out infinite;
}
@keyframes lmj-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes lmj-platform {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01) translateY(-1px); }
  100% { transform: scaleY(1); }
}
@keyframes lmj-figurej {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-3deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  75% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lmj-figuret {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  50% { transform: translateX(-2px) rotate(2deg) scale(1.03); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes lmj-dog {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-5deg) translateX(3px); }
  100% { transform: rotate(-10deg) translateX(0); }
}
@keyframes lmj-bark {
  0% { transform: scale(0); opacity: 0; }
  50% { transform: scale(1.2); opacity: 0.5; }
  100% { transform: scale(0); opacity: 0; }
}
@keyframes lmj-scale {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes lmj-gavel {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(25deg) translateY(-3px); }
  100% { transform: rotate(20deg) translateY(0); }
}

.scn-edmunds-repentance {
  background: linear-gradient(180deg, #f7e7c0 0%, #e0c68a 40%, #c9a66b 100%), radial-gradient(ellipse at 50% 0%, #fff2d6 0%, transparent 60%);
}
.scn-edmunds-repentance .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0d4f0 50%, transparent 100%);
  animation: er-sky 15s ease-in-out infinite alternate;
}
.scn-edmunds-repentance .sun {
  position: absolute; top: 10%; left: 60%; width: 60px; height: 60px; background: radial-gradient(circle, #ffe680 0%, #ffcc33 60%, transparent 100%);
  animation: er-sun 20s ease-in-out infinite alternate;
  box-shadow: 0 0 80px 20px rgba(255, 204, 51, 0.5);
}
.scn-edmunds-repentance .castle {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 130px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform: translateX(-50%);
}
.scn-edmunds-repentance .road {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, #d4b88a 0%, #b89a6a 100%);
}
.scn-edmunds-repentance .runner {
  position: absolute; bottom: 20%; left: 10%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  animation: er-run 1.2s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-edmunds-repentance .dust {
  position: absolute; bottom: 20%; left: 12%; width: 18px; height: 10px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.6) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: er-dust 1.8s ease-in-out infinite;
}
.scn-edmunds-repentance .er-cloud {
  position: absolute; top: 12%; right: 15%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: er-cloud 40s linear infinite;
}
@keyframes er-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes er-sun {
  0% { transform: scale(0.95) translate(0,0); box-shadow: 0 0 60px 10px rgba(255,204,51,0.4); }
  50% { transform: scale(1.05) translate(5px,-3px); box-shadow: 0 0 100px 30px rgba(255,204,51,0.7); }
  100% { transform: scale(0.95) translate(0,0); box-shadow: 0 0 60px 10px rgba(255,204,51,0.4); }
}
@keyframes er-run {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(24px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes er-dust {
  0% { transform: translateX(0) scale(1); opacity:0.6; }
  50% { transform: translateX(5px) scale(1.5); opacity:0.3; }
  100% { transform: translateX(10px) scale(0.8); opacity:0; }
}
@keyframes er-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}

.scn-lears-final-grief {
  background: linear-gradient(180deg, #1a1426 0%, #2a1a32 40%, #1a1220 100%), radial-gradient(ellipse at 50% 30%, #2a1a32 0%, transparent 70%);
}
.scn-lears-final-grief .wall {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #3a2a3e 0%, #1a0a1e 100%);
  animation: lg-wall 20s ease-in-out infinite alternate;
}
.scn-lears-final-grief .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #2a1a2e 0%, #0a0010 100%);
}
.scn-lears-final-grief .window-light {
  position: absolute; top: 10%; left: 25%; width: 30px; height: 50px;
  background: radial-gradient(ellipse, #f0d0a0 0%, transparent 100%);
  border-radius: 20% 20% 5% 5%; box-shadow: 0 0 60px 20px rgba(240,208,160,0.3);
  animation: lg-light 5s ease-in-out infinite alternate;
}
.scn-lears-final-grief .lear-figure {
  position: absolute; bottom: 15%; left: 40%; width: 30px; height: 75px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lg-lear 8s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-lears-final-grief .cordelia-body {
  position: absolute; bottom: 15%; left: 50%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%);
  border-radius: 40% 40% 60% 60% / 50% 50% 40% 40%;
  transform: rotate(-10deg);
  animation: lg-cordelia 10s ease-in-out infinite;
}
.scn-lears-final-grief .shadow-figures {
  position: absolute; bottom: 12%; right: 15%; width: 50px; height: 80px;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 40% 40% 20% 20%;
  filter: blur(6px);
  animation: lg-shadows 12s ease-in-out infinite;
}
.scn-lears-final-grief .tear-drop {
  position: absolute; bottom: 48%; left: 45%; width: 4px; height: 8px;
  background: radial-gradient(circle, #b0a0b0 0%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  animation: lg-tear 3s ease-in-out infinite;
}
@keyframes lg-wall { 0% { opacity:0.9 } 50% { opacity:0.7 } 100% { opacity:0.85 } }
@keyframes lg-light {
  0% { opacity:0.5; box-shadow: 0 0 40px 10px rgba(240,208,160,0.2); }
  50% { opacity:0.8; box-shadow: 0 0 80px 30px rgba(240,208,160,0.4); }
  100% { opacity:0.5; box-shadow: 0 0 40px 10px rgba(240,208,160,0.2); }
}
@keyframes lg-lear {
  0% { transform: translateY(0) rotate(0deg); }
  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 lg-cordelia {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-12deg) translateX(2px); }
  100% { transform: rotate(-10deg) translateX(0); }
}
@keyframes lg-shadows {
  0% { transform: scaleY(1); opacity:0.4; }
  50% { transform: scaleY(0.95); opacity:0.6; }
  100% { transform: scaleY(1); opacity:0.4; }
}
@keyframes lg-tear {
  0% { transform: translateY(0) scale(1); opacity:0.7; }
  50% { transform: translateY(12px) scale(1.2); opacity:0.3; }
  100% { transform: translateY(0) scale(1); opacity:0.7; }
}

.scn-lears-hope-and-despair {
  background: linear-gradient(180deg, #1e1628 0%, #2e1e38 40%, #1a1022 100%), radial-gradient(ellipse at 50% 50%, #3a2a4a 0%, transparent 70%);
}
.scn-lears-hope-and-despair .chamber-wall {
  position: absolute; inset: 0 0 15% 0; background: linear-gradient(180deg, #2a1e32 0%, #1a0e22 100%);
}
.scn-lears-hope-and-despair .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #0e0a12 0%, #000 100%);
}
.scn-lears-hope-and-despair .light-beam {
  position: absolute; top: 5%; left: 45%; width: 10%; height: 60%;
  background: linear-gradient(180deg, rgba(255, 230, 180, 0.3) 0%, transparent 100%);
  filter: blur(10px); animation: hd-beam 6s ease-in-out infinite alternate;
}
.scn-lears-hope-and-despair .lear-kneeling {
  position: absolute; bottom: 12%; left: 38%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hd-lear 9s ease-in-out infinite;
}
.scn-lears-hope-and-despair .cordelia-lying {
  position: absolute; bottom: 10%; left: 50%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%);
  border-radius: 40% 40% 60% 60% / 50% 50% 40% 40%;
  transform: rotate(-5deg);
  animation: hd-cordelia 12s ease-in-out infinite;
}
.scn-lears-hope-and-despair .feather {
  position: absolute; bottom: 22%; left: 45%; width: 6px; height: 12px;
  background: rgba(255,255,230,0.6);
  border-radius: 50% 0 50% 0; filter: blur(1px);
  animation: hd-feather 3s ease-in-out infinite;
}
.scn-lears-hope-and-despair .kent-shadow {
  position: absolute; bottom: 12%; right: 18%; width: 40px; height: 70px;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 40% 40% 20% 20%;
  filter: blur(8px);
  animation: hd-shadow 14s ease-in-out infinite;
}
@keyframes hd-beam {
  0% { opacity:0.3; transform: scaleX(1); }
  50% { opacity:0.6; transform: scaleX(1.2); }
  100% { opacity:0.3; transform: scaleX(1); }
}
@keyframes hd-lear {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hd-cordelia {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-6deg) translateX(1px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes hd-feather {
  0% { transform: translateY(0) rotate(0deg) scale(1); opacity:0.6; }
  25% { transform: translateY(-4px) rotate(10deg) scale(1.1); opacity:0.9; }
  50% { transform: translateY(0) rotate(0deg) scale(1); opacity:0.6; }
  75% { transform: translateY(-2px) rotate(-10deg) scale(1.05); opacity:0.8; }
  100% { transform: translateY(0) rotate(0deg) scale(1); opacity:0.6; }
}
@keyframes hd-shadow {
  0% { transform: scaleY(1); opacity:0.3; }
  50% { transform: scaleY(0.9); opacity:0.5; }
  100% { transform: scaleY(1); opacity:0.3; }
}

.scn-kent-reveals-himself {
  background: linear-gradient(180deg, #2a1a28 0%, #3a2a38 40%, #1a1018 100%), radial-gradient(ellipse at 50% 50%, #3a2a38 0%, transparent 70%);
}
.scn-kent-reveals-himself .interior-wall {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #3a2a32 0%, #1a101a 100%);
}
.scn-kent-reveals-himself .hearth {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #c07030 0%, #4a2010 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 60px 20px rgba(192,112,48,0.4);
  animation: kr-hearth 8s ease-in-out infinite alternate;
}
.scn-kent-reveals-himself .kent-figure {
  position: absolute; bottom: 15%; left: 40%; width: 32px; height: 80px;
  background: linear-gradient(180deg, #4a3a42 0%, #2a1a22 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kr-kent 10s ease-in-out infinite;
}
.scn-kent-reveals-himself .falchion {
  position: absolute; bottom: 15%; left: 48%; width: 4px; height: 35px;
  background: linear-gradient(180deg, #a0a0a0 0%, #606060 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(20deg);
  transform-origin: top center;
  animation: kr-sword 6s ease-in-out infinite;
}
.scn-kent-reveals-himself .audience-shadows {
  position: absolute; bottom: 12%; right: 15%; width: 60px; height: 100px;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 40% 40% 10% 10%;
  filter: blur(8px);
  animation: kr-audience 20s ease-in-out infinite;
}
.scn-kent-reveals-himself .smoke {
  position: absolute; bottom: 30%; left: 18%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, rgba(180,140,100,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: kr-smoke 12s linear infinite;
}
.scn-kent-reveals-himself .spark {
  position: absolute; bottom: 38%; left: 22%; width: 3px; height: 3px;
  background: #ffa050;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ffa050;
  animation: kr-spark 3s ease-in-out infinite;
}
@keyframes kr-hearth {
  0% { box-shadow: 0 0 40px 10px rgba(192,112,48,0.3); transform: scaleY(1); }
  50% { box-shadow: 0 0 80px 30px rgba(192,112,48,0.6); transform: scaleY(1.05); }
  100% { box-shadow: 0 0 40px 10px rgba(192,112,48,0.3); transform: scaleY(1); }
}
@keyframes kr-kent {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes kr-sword {
  0% { transform: rotate(18deg) scaleY(1); }
  50% { transform: rotate(22deg) scaleY(1.02); }
  100% { transform: rotate(18deg) scaleY(1); }
}
@keyframes kr-audience {
  0% { opacity:0.4; transform: scaleY(1); }
  50% { opacity:0.6; transform: scaleY(0.95); }
  100% { opacity:0.4; transform: scaleY(1); }
}
@keyframes kr-smoke {
  0% { transform: translateY(0) scale(1); opacity:0.4; }
  50% { transform: translateY(-10px) scale(1.5); opacity:0.2; }
  100% { transform: translateY(0) scale(1); opacity:0.4; }
}
@keyframes kr-spark {
  0% { transform: translateY(0) scale(1); opacity:0.8; }
  25% { transform: translateY(-6px) scale(1.3); opacity:0.5; }
  50% { transform: translateY(-12px) scale(0.8); opacity:0; }
  75% { transform: translateY(-6px) scale(1.1); opacity:0.4; }
  100% { transform: translateY(0) scale(1); opacity:0.8; }
}

/* Scene 1: lear-offers-cordelia – calm, bright interior court */
.scn-lear-offers-cordelia {
  background:
    linear-gradient(180deg, #f0e8dc 0%, #d8c8b0 40%, #b8a090 100%),
    radial-gradient(ellipse at 50% 0%, #fff6e8 10%, transparent 60%);
}
.scn-lear-offers-cordelia .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
  animation: lo-floor 8s ease-in-out infinite alternate;
}
.scn-lear-offers-cordelia .wall-back {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8ddd0 0%, #d4c4b0 60%, #c0ad9a 100%);
  animation: lo-wall 8s ease-in-out infinite alternate;
}
.scn-lear-offers-cordelia .throne {
  position: absolute; bottom: 35%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: lo-throne 6s ease-in-out infinite;
}
.scn-lear-offers-cordelia .king {
  position: absolute; bottom: 38%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: lo-king 4s ease-in-out infinite;
}
.scn-lear-offers-cordelia .courtier-a,
.scn-lear-offers-cordelia .courtier-b {
  position: absolute; bottom: 36%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lo-courtier 5s ease-in-out infinite alternate;
}
.scn-lear-offers-cordelia .courtier-a { left: 25%; }
.scn-lear-offers-cordelia .courtier-b { right: 25%; animation-delay: -2.5s; }
.scn-lear-offers-cordelia .window-light {
  position: absolute; top: 8%; left: 15%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,250,240,0.4) 0%, transparent 70%);
  border-radius: 10%; filter: blur(4px);
  animation: lo-window 10s ease-in-out infinite alternate;
}
.scn-lear-offers-cordelia .beam {
  position: absolute; top: 8%; left: 15%; width: 80px; height: 200px;
  background: linear-gradient(180deg, rgba(255,250,240,0.2) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  filter: blur(6px);
  animation: lo-beam 12s ease-in-out infinite alternate;
}
@keyframes lo-floor { 0% { opacity:0.9; transform: translateY(0); } 50% { opacity:1; transform: translateY(-2px); } 100% { opacity:0.95; transform: translateY(0); } }
@keyframes lo-wall { 0% { background-position: 0 0; } 50% { background-position: 0 2px; } 100% { background-position: 0 0; } }
@keyframes lo-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-1px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes lo-king { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(1deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes lo-courtier { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lo-window { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes lo-beam { 0% { opacity:0.3; transform: scaleY(1); } 50% { opacity:0.6; transform: scaleY(1.1); } 100% { opacity:0.3; transform: scaleY(1); } }

/* Scene 2: france-chooses-cordelia – warm, bright interior */
.scn-france-chooses-cordelia {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e0c8a8 40%, #c8a880 100%),
    radial-gradient(ellipse at 50% 20%, #ffe8c0 0%, transparent 60%);
}
.scn-france-chooses-cordelia .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0e0cc 0%, #dcc8b0 100%);
  animation: fc-room 10s ease-in-out infinite alternate;
}
.scn-france-chooses-cordelia .france-fig {
  position: absolute; bottom: 30%; left: 38%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: fc-france 5s ease-in-out infinite alternate;
}
.scn-france-chooses-cordelia .cordelia-fig {
  position: absolute; bottom: 30%; left: 48%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: fc-cordelia 5s ease-in-out infinite alternate;
}
.scn-france-chooses-cordelia .warm-glow {
  position: absolute; top: 10%; left: 35%; width: 100px; height: 120px;
  background: radial-gradient(ellipse, #ffd080 0%, rgba(255,208,128,0.3) 50%, transparent 80%);
  filter: blur(10px);
  animation: fc-glow 4s ease-in-out infinite alternate;
}
.scn-france-chooses-cordelia .crown-symbol {
  position: absolute; bottom: 60%; left: 43%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #e8c040 0%, #b89030 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 12px 4px rgba(232,192,64,0.6);
  animation: fc-crown 3s ease-in-out infinite;
}
.scn-france-chooses-cordelia .embrace-shadow {
  position: absolute; bottom: 28%; left: 38%; width: 80px; height: 50px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 70%);
  filter: blur(4px);
  animation: fc-shadow 6s ease-in-out infinite alternate;
}
@keyframes fc-room { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.92; } }
@keyframes fc-france { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(12deg) translateX(3px); } 100% { transform: rotate(8deg) translateX(0); } }
@keyframes fc-cordelia { 0% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-12deg) translateX(-3px); } 100% { transform: rotate(-8deg) translateX(0); } }
@keyframes fc-glow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(1); } }
@keyframes fc-crown { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes fc-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.1); } 100% { opacity:0.3; transform: scaleX(1); } }

/* Scene 3: cordelia-defends-herself – calm, bright interior vertical shaft */
.scn-cordelia-defends-herself {
  background:
    linear-gradient(180deg, #dcd0c0 0%, #c8b8a0 40%, #a89880 100%),
    radial-gradient(ellipse at 50% 30%, #eee8dc 0%, transparent 70%);
}
.scn-cordelia-defends-herself .hall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e0d4c4 0%, #c8b8a0 100%);
  animation: cd-hall 12s ease-in-out infinite alternate;
}
.scn-cordelia-defends-herself .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b8a890 0%, #9a8878 100%);
  border-radius: 8% 8% 0 0;
  animation: cd-floor 10s ease-in-out infinite alternate;
}
.scn-cordelia-defends-herself .light-shaft {
  position: absolute; top: 0; left: 40%; width: 60px; height: 80%;
  background: linear-gradient(180deg, rgba(255,250,240,0.3) 0%, transparent 90%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  filter: blur(6px);
  animation: cd-shaft 8s ease-in-out infinite alternate;
}
.scn-cordelia-defends-herself .cordelia-sil {
  position: absolute; bottom: 22%; left: 50%; width: 22px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cd-figure 5s ease-in-out infinite;
}
.scn-cordelia-defends-herself .shadow {
  position: absolute; bottom: 20%; left: 42%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%);
  filter: blur(3px);
  animation: cd-shadow 6s ease-in-out infinite alternate;
}
.scn-cordelia-defends-herself .window-high {
  position: absolute; top: 5%; left: 45%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,250,240,0.5) 0%, transparent 70%);
  border-radius: 10%;
  filter: blur(4px);
  animation: cd-window 10s ease-in-out infinite alternate;
}
@keyframes cd-hall { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes cd-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cd-shaft { 0% { opacity:0.4; transform: scaleY(1); } 50% { opacity:0.7; transform: scaleY(1.05); } 100% { opacity:0.5; transform: scaleY(1); } }
@keyframes cd-figure { 0% { transform: translateX(-50%) rotate(0deg); } 33% { transform: translateX(-50%) rotate(2deg); } 66% { transform: translateX(-50%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes cd-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.1); } 100% { opacity:0.3; transform: scaleX(1); } }
@keyframes cd-window { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

/* Scene 4: france-takes-cordelia – warm, bright interior, embrace close-up */
.scn-france-takes-cordelia {
  background:
    linear-gradient(180deg, #f0e0cc 0%, #dcc8b0 40%, #c8a880 100%),
    radial-gradient(ellipse at 50% 30%, #ffe0b0 0%, transparent 60%);
}
.scn-france-takes-cordelia .gold-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f5e6d0 0%, #e0c8a8 100%);
  animation: ft-bg 10s ease-in-out infinite alternate;
}
.scn-france-takes-cordelia .halo {
  position: absolute; top: 15%; left: 30%; width: 120px; height: 140px;
  background: radial-gradient(ellipse, #ffd080 0%, rgba(255,208,128,0.2) 60%, transparent 80%);
  filter: blur(12px);
  animation: ft-halo 6s ease-in-out infinite alternate;
}
.scn-france-takes-cordelia .france-arm {
  position: absolute; bottom: 35%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(30deg);
  animation: ft-arm 5s ease-in-out infinite alternate;
}
.scn-france-takes-cordelia .cordelia-hand {
  position: absolute; bottom: 38%; left: 45%; width: 25px; height: 35px;
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-30deg);
  animation: ft-hand 5s ease-in-out infinite alternate;
}
.scn-france-takes-cordelia .dowry-chest {
  position: absolute; bottom: 18%; left: 40%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ft-chest 7s ease-in-out infinite;
}
.scn-france-takes-cordelia .petals {
  position: absolute; top: 10%; left: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle at 30% 40%, #d4a080 0%, transparent 60%);
  filter: blur(3px);
  animation: ft-petals 12s linear infinite;
}
.scn-france-takes-cordelia .petal-shadow {
  position: absolute; bottom: 10%; left: 30%; width: 60px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.1) 0%, transparent 70%);
  filter: blur(4px);
  animation: ft-pshadow 8s ease-in-out infinite alternate;
}
@keyframes ft-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.92; } }
@keyframes ft-halo { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes ft-arm { 0% { transform: rotate(28deg) translateX(0); } 50% { transform: rotate(32deg) translateX(2px); } 100% { transform: rotate(28deg) translateX(0); } }
@keyframes ft-hand { 0% { transform: rotate(-28deg) translateX(0); } 50% { transform: rotate(-32deg) translateX(-2px); } 100% { transform: rotate(-28deg) translateX(0); } }
@keyframes ft-chest { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ft-petals { 0% { transform: translateX(0) rotate(0deg); opacity:0.3; } 50% { transform: translateX(20px) rotate(180deg); opacity:0.6; } 100% { transform: translateX(0) rotate(360deg); opacity:0.3; } }
@keyframes ft-pshadow { 0% { opacity:0.2; transform: scaleX(1); } 50% { opacity:0.4; transform: scaleX(1.2); } 100% { opacity:0.2; transform: scaleX(1); } }

/* Scene: french-tent-cordelia */
.scn-french-tent-cordelia {
  background: 
    linear-gradient(135deg, #f5e6c8 0%, #e0c8a0 40%, #c8a87a 100%),
    radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 60%);
}
.scn-french-tent-cordelia .tent-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d4b0 0%, #d4b890 50%, #b89a70 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  animation: ftc-bg 12s ease-in-out infinite alternate;
}
.scn-french-tent-cordelia .tent-flap-l {
  position: absolute; top: -5%; left: -10%; width: 50%; height: 110%;
  background: linear-gradient(to right, #c4a078, #d4b890 60%, transparent);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  transform-origin: left;
  animation: ftc-flap 16s ease-in-out infinite alternate;
}
.scn-french-tent-cordelia .tent-flap-r {
  position: absolute; top: -5%; right: -10%; width: 50%; height: 110%;
  background: linear-gradient(to left, #c4a078, #d4b890 60%, transparent);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 20% 100%);
  transform-origin: right;
  animation: ftc-flap 14s ease-in-out infinite alternate-reverse;
}
.scn-french-tent-cordelia .bed {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #b89a70 0%, #8a7050 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
  animation: ftc-bed 20s ease-in-out infinite;
}
.scn-french-tent-cordelia .blanket {
  position: absolute; bottom: 15%; left: 25%; right: 30%; height: 15%;
  background: linear-gradient(180deg, #d4a87a 0%, #c89060 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: ftc-blanket 8s ease-in-out infinite alternate;
}
.scn-french-tent-cordelia .figure-cordelia {
  position: absolute; bottom: 20%; left: 40%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #f5d8b0 0%, #d4a87a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ftc-figure 6s ease-in-out infinite;
}
.scn-french-tent-cordelia .figure-kent {
  position: absolute; bottom: 22%; right: 35%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #e0c8a0 0%, #b89a70 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ftc-figure 7s ease-in-out infinite -2s;
}
.scn-french-tent-cordelia .lantern-glow {
  position: absolute; top: 30%; left: 50%; width: 30px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffdd88 0%, #e8b040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffdd88, 0 0 80px 40px rgba(255,221,136,0.4);
  animation: ftc-glow 3s ease-in-out infinite alternate;
}
@keyframes ftc-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes ftc-flap { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes ftc-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ftc-blanket { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.02); } 100% { transform: translateY(1px) scaleY(0.98); } }
@keyframes ftc-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(1deg); } 70% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ftc-glow { 0% { opacity: 0.8; box-shadow: 0 0 30px 15px #ffdd88; } 50% { opacity: 1; box-shadow: 0 0 50px 25px #ffe090; } 100% { opacity: 0.85; box-shadow: 0 0 35px 18px #e8b040; } }

/* Scene: doctor-tends-lear */
.scn-doctor-tends-lear {
  background: 
    linear-gradient(180deg, #f0e0c0 0%, #d8c0a0 40%, #b09878 100%),
    radial-gradient(ellipse at 50% 80%, #fff5e0 0%, transparent 60%);
}
.scn-doctor-tends-lear .tent-interior {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e0d0b0 0%, #c8b090 50%, #a89070 100%);
  border-radius: 40% 40% 0 0 / 50% 50% 0 0;
  animation: dtl-bg 15s ease-in-out infinite alternate;
}
.scn-doctor-tends-lear .bed {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #c8a880 0%, #987858 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 15px rgba(0,0,0,0.3);
  animation: dtl-bed 20s ease-in-out infinite;
}
.scn-doctor-tends-lear .figure-king {
  position: absolute; bottom: 22%; left: 20%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c8b090 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: dtl-figure 8s ease-in-out infinite;
}
.scn-doctor-tends-lear .figure-doctor {
  position: absolute; bottom: 25%; right: 25%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #d8c0a0 0%, #b09878 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dtl-figure 7s ease-in-out infinite -3s;
}
.scn-doctor-tends-lear .stool {
  position: absolute; bottom: 18%; right: 22%; width: 18px; height: 12px;
  background: linear-gradient(180deg, #a08868 0%, #806848 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 4px rgba(0,0,0,0.2);
  animation: dtl-stool 10s ease-in-out infinite alternate;
}
.scn-doctor-tends-lear .cup {
  position: absolute; bottom: 30%; right: 28%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c0a0 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.2);
  animation: dtl-cup 6s ease-in-out infinite;
}
.scn-doctor-tends-lear .warm-light {
  position: absolute; top: 25%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe8b0 0%, transparent 70%);
  border-radius: 50%;
  animation: dtl-light 5s ease-in-out infinite alternate;
}
@keyframes dtl-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes dtl-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes dtl-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dtl-stool { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dtl-cup { 0%,100% { transform: translate(0,0); } 50% { transform: translate(2px,-2px); } }
@keyframes dtl-light { 0% { opacity: 0.7; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.8; transform: translateX(-50%) scale(0.95); } }

/* Scene: cordelia-kisses-lear */
.scn-cordelia-kisses-lear {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #e0c8a0 50%, #c8a87a 100%),
    radial-gradient(ellipse at 50% 40%, #fff5e0 0%, transparent 50%);
}
.scn-cordelia-kisses-lear .tent-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #ecd8b8 0%, #d4b898 60%, #b89878 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: ckl-wall 18s ease-in-out infinite alternate;
}
.scn-cordelia-kisses-lear .bed-far {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 22%;
  background: linear-gradient(180deg, #c8a880 0%, #987858 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
  animation: ckl-bed 22s ease-in-out infinite;
}
.scn-cordelia-kisses-lear .figure-lear-head {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 28px;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8b090 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ckl-head 9s ease-in-out infinite;
}
.scn-cordelia-kisses-lear .figure-cordelia-head {
  position: absolute; bottom: 28%; left: 38%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #f0d8b0 0%, #d4b890 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ckl-head 8s ease-in-out infinite -2s;
}
.scn-cordelia-kisses-lear .kiss-glow {
  position: absolute; bottom: 35%; left: 34%; width: 30px; height: 30px;
  transform: translate(-50%);
  background: radial-gradient(circle, #ffe0a0 0%, transparent 60%);
  border-radius: 50%;
  animation: ckl-glow 4s ease-in-out infinite alternate;
}
.scn-cordelia-kisses-lear .hands-cordelia {
  position: absolute; bottom: 22%; left: 34%; width: 16px; height: 10px;
  background: linear-gradient(180deg, #f5d8b0 0%, #e0c0a0 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: ckl-hands 6s ease-in-out infinite;
}
.scn-cordelia-kisses-lear .pillow {
  position: absolute; bottom: 16%; left: 26%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #f0e0c8 0%, #d8c0a0 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
  animation: ckl-pillow 14s ease-in-out infinite alternate;
}
@keyframes ckl-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes ckl-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes ckl-head { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ckl-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(0.9); } }
@keyframes ckl-hands { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(5deg); } 70% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ckl-pillow { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.02); } 100% { transform: translateY(1px) scaleY(0.98); } }

/* Scene: lear-recognizes-cordelia */
.scn-lear-recognizes-cordelia {
  background: 
    linear-gradient(180deg, #f0e0c0 0%, #d8c0a0 40%, #b09878 100%),
    radial-gradient(ellipse at 40% 60%, #fff5e0 0%, transparent 60%);
}
.scn-lear-recognizes-cordelia .tent-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d4b898 0%, #b89878 50%, #987858 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  animation: lrc-bg 16s ease-in-out infinite alternate;
}
.scn-lear-recognizes-cordelia .bed-near {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 28%;
  background: linear-gradient(180deg, #b09878 0%, #887058 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 15px rgba(0,0,0,0.3);
  animation: lrc-bed 24s ease-in-out infinite;
}
.scn-lear-recognizes-cordelia .figure-lear-torso {
  position: absolute; bottom: 20%; left: 20%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c8b090 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: lrc-torso 10s ease-in-out infinite;
}
.scn-lear-recognizes-cordelia .figure-cordelia-kneeling {
  position: absolute; bottom: 15%; left: 38%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #f0d8b0 0%, #d4b890 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lrc-kneel 7s ease-in-out infinite -1s;
}
.scn-lear-recognizes-cordelia .hands-lear {
  position: absolute; bottom: 28%; left: 24%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #e8d4b0 0%, #d0b898 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: lrc-hands 5s ease-in-out infinite alternate;
}
.scn-lear-recognizes-cordelia .hands-cordelia {
  position: absolute; bottom: 26%; left: 36%; width: 16px; height: 10px;
  background: linear-gradient(180deg, #f5d8b0 0%, #e0c0a0 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: lrc-hands 6s ease-in-out infinite alternate-reverse;
}
.scn-lear-recognizes-cordelia .halo-light {
  position: absolute; top: 35%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe8b0 0%, transparent 60%);
  border-radius: 50%;
  animation: lrc-halo 8s ease-in-out infinite alternate;
}
.scn-lear-recognizes-cordelia .tear {
  position: absolute; bottom: 30%; left: 40%; width: 4px; height: 6px;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(255,255,255,0.3);
  animation: lrc-tear 4s ease-in-out infinite;
}
@keyframes lrc-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes lrc-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes lrc-torso { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lrc-kneel { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(1deg); } 70% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lrc-hands { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lrc-halo { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.9); } }
@keyframes lrc-tear { 0%,100% { transform: translateY(0) scaleY(1); opacity: 0.6; } 50% { transform: translateY(6px) scaleY(1.5); opacity: 0.2; } }

/* edgar-gives-letter - tense overcast tent scene */
.scn-edgar-gives-letter {
  background: 
    linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 30%, #2e2e3e 70%, #1e1e2e 100%),
    radial-gradient(ellipse at 50% 20%, #5a5a6a 0%, transparent 60%);
}
.scn-edgar-gives-letter .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, transparent 100%);
  animation: egl-sky 20s ease-in-out infinite alternate;
}
.scn-edgar-gives-letter .tent {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #5a5044 0%, #3a322a 100%);
  border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
  animation: egl-tent 12s ease-in-out infinite;
}
.scn-edgar-gives-letter .figure-edgar {
  position: absolute; bottom: 25%; left: 35%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: egl-figure-a 6s ease-in-out infinite;
}
.scn-edgar-gives-letter .figure-albany {
  position: absolute; bottom: 25%; left: 55%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: egl-figure-b 7s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-edgar-gives-letter .letter {
  position: absolute; bottom: 40%; left: 48%; width: 4%; height: 3%;
  background: #c8b090;
  border-radius: 2px;
  box-shadow: 0 0 6px 2px rgba(200,176,144,0.4);
  animation: egl-letter 4s ease-in-out infinite;
}
.scn-edgar-gives-letter .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3a2e 0%, #2a2a1e 100%);
  border-radius: 20% 20% 0 0;
}
.scn-edgar-gives-letter .mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(80,80,100,0.3) 50%, transparent 100%);
  filter: blur(12px);
  animation: egl-mist 15s ease-in-out infinite alternate;
}
@keyframes egl-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes egl-tent { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) rotate(0.5deg) } }
@keyframes egl-figure-a { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(0.5deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-2px) rotate(-0.5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes egl-figure-b { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-4px) rotate(-0.5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes egl-letter { 0%,100% { transform: translateY(0) rotate(-2deg) scale(1) } 50% { transform: translateY(-5px) rotate(2deg) scale(1.1) } }
@keyframes egl-mist { 0% { transform: translateX(0) scaleY(1) } 100% { transform: translateX(20px) scaleY(1.2) } }

/* albany-pledges - calm overcast wide horizon camp scene */
.scn-albany-pledges {
  background:
    linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 40%, #3a3a4a 80%, #2e2e3e 100%),
    radial-gradient(ellipse at 50% 0%, #6a6a7a 0%, transparent 80%);
}
.scn-albany-pledges .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 100%);
  animation: alp-sky 25s ease-in-out infinite alternate;
}
.scn-albany-pledges .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a5044 0%, #3a4034 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: alp-hills 20s ease-in-out infinite alternate;
}
.scn-albany-pledges .tents {
  position: absolute; bottom: 25%; left: 20%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: alp-tents 18s ease-in-out infinite;
}
.scn-albany-pledges .figure-albany {
  position: absolute; bottom: 25%; left: 45%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: alp-fig-a 8s ease-in-out infinite;
}
.scn-albany-pledges .figure-edmund {
  position: absolute; bottom: 25%; left: 55%; width: 11%; height: 32%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: alp-fig-b 9s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-albany-pledges .flag-a {
  position: absolute; bottom: 40%; left: 35%; width: 2%; height: 15%;
  background: #8a7a6a;
  border-radius: 2px;
  animation: alp-flag 5s ease-in-out infinite;
}
.scn-albany-pledges .flag-b {
  position: absolute; bottom: 40%; left: 60%; width: 2%; height: 15%;
  background: #7a6a5a;
  border-radius: 2px;
  animation: alp-flag 5s ease-in-out infinite reverse;
  animation-delay: -2.5s;
}
.scn-albany-pledges .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3a2e 0%, #2a2a1e 100%);
  border-radius: 30% 30% 0 0;
}
@keyframes alp-sky { 0%,100% { opacity: 0.8 } 50% { opacity: 1 } }
@keyframes alp-hills { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(0.95) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes alp-tents { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes alp-fig-a { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes alp-fig-b { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-6px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes alp-flag { 0%,100% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(4px) rotate(3deg) } }

/* edmund-schemes - dark overcast interior tent scene */
.scn-edmund-schemes {
  background:
    linear-gradient(180deg, #1e1e2e 0%, #16162a 50%, #0e0e1e 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 70%);
}
.scn-edmund-schemes .dark-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  animation: esm-bg 30s ease-in-out infinite alternate;
}
.scn-edmund-schemes .wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: esm-wall 15s ease-in-out infinite;
}
.scn-edmund-schemes .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 5%;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.6);
  animation: esm-table 10s ease-in-out infinite;
}
.scn-edmund-schemes .figure-edmund {
  position: absolute; bottom: 25%; left: 60%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: esm-figure 8s ease-in-out infinite;
}
.scn-edmund-schemes .lantern {
  position: absolute; bottom: 30%; left: 25%; width: 6%; height: 8%;
  background: radial-gradient(circle at 50% 40%, #ffcc80 0%, #cc8844 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,200,120,0.3), 0 0 60px 20px rgba(255,200,120,0.1);
  animation: esm-lantern 4s ease-in-out infinite alternate;
}
.scn-edmund-schemes .map {
  position: absolute; bottom: 18%; left: 35%; width: 20%; height: 12%;
  background: #5a4a3a;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: esm-map 12s ease-in-out infinite;
}
.scn-edmund-schemes .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: esm-shadow 20s ease-in-out infinite alternate;
}
@keyframes esm-bg { 0%,100% { opacity: 0.7 } 50% { opacity: 1 } }
@keyframes esm-wall { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(0.98) } 100% { transform: translateY(0) scale(1) } }
@keyframes esm-table { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(-1deg) } }
@keyframes esm-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(6px) rotate(0.5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes esm-lantern { 0% { opacity: 0.8; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.9; transform: scale(0.95) } }
@keyframes esm-map { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-4px) rotate(-1deg) } }
@keyframes esm-shadow { 0% { opacity: 0.6 } 100% { opacity: 0.8 } }

/* battle-prelude - tense overcast aftermath scene */
.scn-battle-prelude {
  background:
    linear-gradient(180deg, #3a3a4a 0%, #2e2e3e 40%, #1e1e2e 80%, #16162a 100%),
    radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 70%);
}
.scn-battle-prelude .sky {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  animation: btl-sky 30s ease-in-out infinite alternate;
}
.scn-battle-prelude .smoke {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 50%;
  background: radial-gradient(ellipse at 30% 50%, rgba(80,80,90,0.4) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 50%, rgba(80,80,90,0.3) 0%, transparent 50%);
  filter: blur(15px);
  animation: btl-smoke 20s ease-in-out infinite alternate;
}
.scn-battle-prelude .figure-edgar {
  position: absolute; bottom: 25%; left: 35%; width: 13%; height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: btl-fig-a 6s ease-in-out infinite;
}
.scn-battle-prelude .figure-old-man {
  position: absolute; bottom: 25%; left: 50%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  animation: btl-fig-b 8s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-battle-prelude .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2e2e2a 0%, #1e1e1a 100%);
  border-radius: 40% 40% 0 0;
}
.scn-battle-prelude .blade {
  position: absolute; bottom: 18%; left: 60%; width: 2%; height: 20%;
  background: #6a6a7a;
  border-radius: 1px;
  box-shadow: 0 0 4px rgba(100,100,120,0.3);
  animation: btl-blade 4s ease-in-out infinite;
}
.scn-battle-prelude .debris {
  position: absolute; bottom: 15%; left: 25%; width: 6%; height: 4%;
  background: #3a3a2a;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: btl-debris 10s ease-in-out infinite;
}
@keyframes btl-sky { 0%,100% { opacity: 0.8 } 50% { opacity: 1 } }
@keyframes btl-smoke { 0% { transform: translateX(-10px) scaleY(0.9) opacity 0.7 } 50% { transform: translateX(10px) scaleY(1.1) opacity 1 } 100% { transform: translateX(-5px) scaleY(0.95) opacity 0.8 } }
@keyframes btl-fig-a { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(6px) rotate(0) } 50% { transform: translateX(-2px) rotate(1deg) } 75% { transform: translateX(4px) rotate(-0.5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes btl-fig-b { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-5px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes btl-blade { 0%,100% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-8px) rotate(5deg) } }
@keyframes btl-debris { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-10px) rotate(20deg) } 50% { transform: translateY(-20px) rotate(40deg) } 75% { transform: translateY(-10px) rotate(-10deg) } 100% { transform: translateY(0) rotate(0) } }

/* regan-oswald-intrigue: dim interior, tense */
.scn-regan-oswald-intrigue {
  background: linear-gradient(180deg, #2c1f1a 0%, #1a120e 40%, #0f0b09 100%), radial-gradient(ellipse at 30% 20%, #4a3528 0%, transparent 60%);
}
.scn-regan-oswald-intrigue .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a2a20 0%, #1f1610 100%);
  animation: roi-wall 8s ease-in-out infinite alternate;
}
.scn-regan-oswald-intrigue .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a0e0a 0%, #2a1c14 100%);
  border-radius: 0 0 4% 4%;
}
.scn-regan-oswald-intrigue .window {
  position: absolute; top: 10%; right: 8%; width: 28%; height: 40%;
  background: linear-gradient(180deg, #4a3b30 0%, #1a1410 100%);
  border: 3px solid #3a2a1e;
  box-shadow: inset 0 0 30px rgba(255, 180, 100, 0.1);
  animation: roi-window 5s ease-in-out infinite;
}
.scn-regan-oswald-intrigue .candle {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0c080 0%, #c08040 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 40px 10px rgba(240, 192, 128, 0.6), 0 0 80px 30px rgba(240, 192, 128, 0.2);
  animation: roi-candle 2s ease-in-out infinite alternate;
}
.scn-regan-oswald-intrigue .figure-left {
  position: absolute; bottom: 20%; left: 15%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0807 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: roi-figure-left 4s ease-in-out infinite;
}
.scn-regan-oswald-intrigue .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 38px; height: 68px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0807 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: roi-figure-right 4.5s ease-in-out infinite reverse;
}
.scn-regan-oswald-intrigue .letter {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #e8d8b0 0%, #b8a880 100%);
  border-radius: 5%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: roi-letter 6s ease-in-out infinite;
}
.scn-regan-oswald-intrigue .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: roi-shadow 3s ease-in-out infinite alternate;
}
@keyframes roi-wall { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes roi-window { 0% { border-color: #3a2a1e; } 50% { border-color: #5a4a3e; } 100% { border-color: #2a1a0e; } }
@keyframes roi-candle { 0% { transform: scaleY(1) rotate(-1deg); } 50% { transform: scaleY(1.1) rotate(1deg); box-shadow: 0 0 50px 15px rgba(240,192,128,0.7); } 100% { transform: scaleY(1) rotate(0); } }
@keyframes roi-figure-left { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes roi-figure-right { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes roi-letter { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(2px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes roi-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

/* regan-schemes: dim interior, tense */
.scn-regan-schemes {
  background: linear-gradient(180deg, #2a1c18 0%, #18120e 50%, #0e0a08 100%), radial-gradient(ellipse at 70% 20%, #4a3028 0%, transparent 50%);
}
.scn-regan-schemes .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a20 0%, #1a1210 100%);
  animation: rs-bg 10s ease-in-out infinite alternate;
}
.scn-regan-schemes .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-regan-schemes .hand-left {
  position: absolute; bottom: 15%; left: 25%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #d4c0a8 0%, #a08870 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: rs-hand-left 3s ease-in-out infinite;
}
.scn-regan-schemes .hand-right {
  position: absolute; bottom: 15%; right: 25%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #d4c0a8 0%, #a08870 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: rs-hand-right 3.5s ease-in-out infinite reverse;
}
.scn-regan-schemes .scroll {
  position: absolute; bottom: 18%; left: 40%; width: 40px; height: 18px;
  background: linear-gradient(90deg, #e8d8b0 0%, #c8b898 50%, #d8c8a0 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: rs-scroll 5s ease-in-out infinite;
}
.scn-regan-schemes .seal {
  position: absolute; bottom: 20%; left: 52%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b05040 0%, #702020 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(176, 80, 64, 0.5);
  animation: rs-seal 4s ease-in-out infinite alternate;
}
.scn-regan-schemes .ink {
  position: absolute; bottom: 22%; left: 35%; width: 10px; height: 10px;
  background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(0,0,0,0.4);
  animation: rs-ink 6s ease-in-out infinite;
}
.scn-regan-schemes .flicker {
  position: absolute; top: 10%; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,200,100,0.15) 0%, transparent 70%);
  animation: rs-flicker 2s ease-in-out infinite alternate;
}
@keyframes rs-bg { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes rs-hand-left { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes rs-hand-right { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes rs-scroll { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rs-seal { 0% { transform: scale(1); box-shadow: 0 0 10px 2px rgba(176,80,64,0.5); } 100% { transform: scale(1.1); box-shadow: 0 0 20px 5px rgba(176,80,64,0.7); } }
@keyframes rs-ink { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(0.8); } 100% { transform: translateY(0) scale(1); } }
@keyframes rs-flicker { 0% { opacity: 0; } 50% { opacity: 0.3; } 100% { opacity: 0.1; } }

/* cliff-dover: sunlit, tense */
.scn-cliff-dover {
  background: linear-gradient(180deg, #87ceeb 0%, #add8e6 30%, #f0e68c 50%, #deb887 70%, #8b7355 100%), radial-gradient(ellipse at 30% 40%, #fff5e0 0%, transparent 60%);
}
.scn-cliff-dover .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffd700 0%, #87ceeb 40%, #b0e0e6 100%);
  animation: cd-sky 12s ease-in-out infinite alternate;
}
.scn-cliff-dover .sea {
  position: absolute; bottom: 0; left: 10%; right: 0; height: 60%;
  background: linear-gradient(180deg, #1e90ff 0%, #00008b 100%);
  border-radius: 40% 0 0 0;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  animation: cd-sea 8s ease-in-out infinite;
}
.scn-cliff-dover .cliff {
  position: absolute; bottom: 30%; left: 0; width: 45%; height: 50%;
  background: linear-gradient(135deg, #a0522d 0%, #8b4513 40%, #6b3e1b 100%);
  border-radius: 10% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
  animation: cd-cliff 10s ease-in-out infinite alternate;
}
.scn-cliff-dover .figure-blind {
  position: absolute; bottom: 35%; left: 25%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-figure-blind 4s ease-in-out infinite;
}
.scn-cliff-dover .figure-guide {
  position: absolute; bottom: 35%; left: 35%; width: 34px; height: 64px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-figure-guide 4.5s ease-in-out infinite reverse;
}
.scn-cliff-dover .staff {
  position: absolute; bottom: 40%; left: 30%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #8b4513 0%, #6b3e1b 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  animation: cd-staff 5s ease-in-out infinite;
}
.scn-cliff-dover .gull {
  position: absolute; top: 10%; right: 20%; width: 20px; height: 10px;
  background: linear-gradient(135deg, #fff 0%, #ddd 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-15deg);
  animation: cd-gull 3s ease-in-out infinite;
}
@keyframes cd-sky { 0% { background-position: 0% 0%; } 50% { background-position: 20% 10%; } 100% { background-position: 0% 0%; } }
@keyframes cd-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes cd-cliff { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes cd-figure-blind { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cd-figure-guide { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cd-staff { 0% { transform: rotate(10deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(10deg); } }
@keyframes cd-gull { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(10px); } 100% { transform: rotate(-15deg) translateX(0); } }

/* item-jewel-purse: sunlit, dark mood */
.scn-item-jewel-purse {
  background: linear-gradient(180deg, #ffd700 0%, #f0e68c 20%, #deb887 50%, #8b7355 80%, #5c4033 100%), radial-gradient(ellipse at 50% 30%, #fff8dc 0%, transparent 60%);
}
.scn-item-jewel-purse .light {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 40%, rgba(255,255,200,0.3) 0%, transparent 70%);
  animation: ijp-light 6s ease-in-out infinite alternate;
}
.scn-item-jewel-purse .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6b5b4b 0%, #3a2e22 100%);
  border-radius: 20% 20% 0 0;
}
.scn-item-jewel-purse .hand {
  position: absolute; bottom: 25%; left: 45%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #d4c0a8 0%, #a08870 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  animation: ijp-hand 4s ease-in-out infinite;
}
.scn-item-jewel-purse .purse {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #8b4513 0%, #6b3e1b 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  transform: rotate(15deg);
  animation: ijp-purse 3s ease-in-out infinite;
}
.scn-item-jewel-purse .jewel {
  position: absolute; bottom: 33%; left: 55%; width: 8px; height: 8px;
  background: radial-gradient(circle, #00ffff 0%, #008080 60%, #004040 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px rgba(0,255,255,0.4);
  animation: ijp-jewel 2s ease-in-out infinite alternate;
}
.scn-item-jewel-purse .chain {
  position: absolute; bottom: 32%; left: 46%; width: 20px; height: 4px;
  background: linear-gradient(90deg, #ffd700 0%, #b8860b 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  animation: ijp-chain 5s ease-in-out infinite;
}
.scn-item-jewel-purse .dust {
  position: absolute; top: 5%; left: 20%; right: 20%; height: 10%;
  background: radial-gradient(ellipse at 30% 0%, rgba(255,255,200,0.1) 0%, transparent 80%);
  animation: ijp-dust 8s linear infinite;
}
@keyframes ijp-light { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ijp-hand { 0% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-3px) rotate(0); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes ijp-purse { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(10deg) scale(1.05); } 100% { transform: rotate(15deg) scale(1); } }
@keyframes ijp-jewel { 0% { transform: scale(1); box-shadow: 0 0 20px 5px rgba(0,255,255,0.4); } 100% { transform: scale(1.2); box-shadow: 0 0 30px 10px rgba(0,255,255,0.6); } }
@keyframes ijp-chain { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(-30deg); } }
@keyframes ijp-dust { 0% { transform: translateY(0); } 100% { transform: translateY(-30px); opacity: 0; } }

.scn-oswald-attacks-gloucester {
  background: linear-gradient(180deg, #f5e6c8 0%, #dac292 40%, #c4a57b 100%), radial-gradient(ellipse at 50% 0%, #f0dbb0 0%, transparent 60%);
  overflow: hidden;
}
.scn-oswald-attacks-gloucester .sky-glow {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fcedc0 0%, #ebd4a0 60%, transparent 100%);
  animation: oag-sky 10s ease-in-out infinite alternate;
}
.scn-oswald-attacks-gloucester .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #b8926a 0%, #8c6e4a 40%, #5a3e28 100%);
  border-radius: 30% 40% 0 0 / 70% 80% 0 0;
  animation: oag-ground 8s ease-in-out infinite alternate;
}
.scn-oswald-attacks-gloucester .figure-left {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #5a3e28 0%, #3a2818 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: oag-fight-left 2s ease-in-out infinite;
}
.scn-oswald-attacks-gloucester .figure-right {
  position: absolute; bottom: 30%; right: 25%; width: 40px; height: 85px;
  background: linear-gradient(180deg, #6b4f3a 0%, #4a3520 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: oag-fight-right 2.2s ease-in-out infinite;
}
.scn-oswald-attacks-gloucester .sword-clash {
  position: absolute; bottom: 55%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffdd88 0%, #ffcc55 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #ffcc55, 0 0 40px 16px rgba(255,204,85,0.5);
  animation: oag-clash 0.8s ease-in-out infinite;
}
.scn-oswald-attacks-gloucester .dust {
  position: absolute; bottom: 28%; left: 30%; right: 30%; height: 20px;
  background: radial-gradient(ellipse at 50% 0%, rgba(180,140,100,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: oag-dust 3s ease-in-out infinite;
}
.scn-oswald-attacks-gloucester .oag-c1 {
  position: absolute; top: 12%; left: 10%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(255,255,240,0.7) 0%, rgba(255,255,240,0.2) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: oag-drift1 40s linear infinite;
}
.scn-oswald-attacks-gloucester .oag-c2 {
  position: absolute; top: 22%; right: 15%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,240,0.5) 0%, rgba(255,255,240,0.1) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: oag-drift2 55s linear infinite reverse;
}
@keyframes oag-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes oag-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes oag-fight-left { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(6px) rotate(-5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-6px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes oag-fight-right { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-6px) rotate(5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(6px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes oag-clash { 0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: 0; transform: scale(0.5); } }
@keyframes oag-dust { 0% { opacity: 0; transform: translateY(0); } 50% { opacity: 0.6; transform: translateY(-10px); } 100% { opacity: 0; transform: translateY(0); } }
@keyframes oag-drift1 { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes oag-drift2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-edgar-kills-oswald {
  background: linear-gradient(180deg, #e8d4a8 0%, #c9af7a 40%, #a38b5a 100%), radial-gradient(ellipse at 60% 30%, #f0deb8 0%, transparent 60%);
  overflow: hidden;
}
.scn-edgar-kills-oswald .sky-pale {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fcefd0 0%, #eddbb8 70%, transparent 100%);
  animation: ekos-sky 12s ease-in-out infinite alternate;
}
.scn-edgar-kills-oswald .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a4f34 0%, #3a2818 100%);
  border-radius: 20% 40% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-edgar-kills-oswald .fallen-figure {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: ekos-fallen 4s ease-in-out infinite alternate;
}
.scn-edgar-kills-oswald .standing-figure {
  position: absolute; bottom: 30%; right: 30%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #5a3e28 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ekos-standing 6s ease-in-out infinite;
}
.scn-edgar-kills-oswald .sword-point {
  position: absolute; bottom: 55%; right: 33%; width: 3px; height: 30px;
  background: linear-gradient(180deg, #d4af37 0%, #b8962c 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(15deg);
  box-shadow: 0 0 8px 2px #d4af37;
  animation: ekos-sword 3s ease-in-out infinite;
}
.scn-edgar-kills-oswald .blood-pool {
  position: absolute; bottom: 18%; left: 33%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, #a0461a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ekos-blood 5s ease-in-out infinite;
}
.scn-edgar-kills-oswald .shaft-light {
  position: absolute; top: 0; left: 45%; width: 30px; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: ekos-shaft 9s ease-in-out infinite alternate;
}
@keyframes ekos-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ekos-fallen { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-3px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes ekos-standing { 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 ekos-sword { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(12deg) scaleY(1.1); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes ekos-blood { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.2); } 100% { opacity: 0.4; transform: scaleX(1); } }
@keyframes ekos-shaft { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

.scn-item-letter-goneril {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 50%, #1a1008 100%), radial-gradient(ellipse at 40% 60%, #5a4028 0%, transparent 70%);
  overflow: hidden;
}
.scn-item-letter-goneril .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a3420 0%, #3a2818 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-item-letter-goneril .desk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #6a4f34 0%, #4a3420 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.4);
  animation: itl-desk 7s ease-in-out infinite alternate;
}
.scn-item-letter-goneril .figure-reading {
  position: absolute; bottom: 35%; left: 50%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #5a3e28 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: itl-figure 5s ease-in-out infinite;
}
.scn-item-letter-goneril .letter {
  position: absolute; bottom: 45%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #dac292 0%, #b8926a 100%);
  border-radius: 2px;
  transform: translateX(-50%) rotate(-5deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: itl-letter 4s ease-in-out infinite alternate;
}
.scn-item-letter-goneril .candle {
  position: absolute; bottom: 42%; left: 38%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0dbb0 0%, #d4a76a 40%, #8c6e4a 100%);
  border-radius: 20% 20% 0 0;
  animation: itl-candle 3s ease-in-out infinite;
}
.scn-item-letter-goneril .candle-glow {
  position: absolute; bottom: 55%; left: 35%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd680 0%, #e8a84a 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: itl-glow 2s ease-in-out infinite alternate;
}
.scn-item-letter-goneril .itl-s1 {
  position: absolute; top: 12%; left: 5%; width: 60px; height: 15px;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius: 4px;
  animation: itl-shadow 10s ease-in-out infinite alternate;
}
.scn-item-letter-goneril .itl-s2 {
  position: absolute; top: 20%; right: 8%; width: 45px; height: 12px;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  border-radius: 4px;
  animation: itl-shadow 12s ease-in-out infinite alternate-reverse;
}
@keyframes itl-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes itl-figure { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-2deg) translateY(-1px); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) rotate(2deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes itl-letter { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(-2deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes itl-candle { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.9; } }
@keyframes itl-glow { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes itl-shadow { 0% { opacity: 0.2; transform: translateX(0); } 50% { opacity: 0.5; transform: translateX(5px); } 100% { opacity: 0.2; transform: translateX(0); } }

.scn-letter-goneril-edmund {
  background: linear-gradient(180deg, #f5e6c8 0%, #dac292 50%, #c4a57b 100%), radial-gradient(ellipse at 50% 0%, #fcedc0 0%, transparent 60%);
  overflow: hidden;
}
.scn-letter-goneril-edmund .sky-warm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fcedc0 0%, #ebd4a0 70%, transparent 100%);
  animation: lge-sky 12s ease-in-out infinite alternate;
}
.scn-letter-goneril-edmund .sea {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8cb8c8 0%, #6a9aaa 40%, #4a7a8a 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  animation: lge-sea 8s ease-in-out infinite alternate;
}
.scn-letter-goneril-edmund .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #d4b88a 0%, #b8926a 40%, #8c6e4a 100%);
  border-radius: 10% 20% 0 0 / 30% 40% 0 0;
  animation: lge-sand 6s ease-in-out infinite alternate;
}
.scn-letter-goneril-edmund .figure-kneeling {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a3e28 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%) scaleY(0.8);
  transform-origin: bottom center;
  animation: lge-kneel 5s ease-in-out infinite;
}
.scn-letter-goneril-edmund .letter-in-hand {
  position: absolute; bottom: 35%; left: 48%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #dac292 0%, #b8926a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 1px 2px 3px rgba(0,0,0,0.2);
  animation: lge-letter 4s ease-in-out infinite alternate;
}
.scn-letter-goneril-edmund .spade {
  position: absolute; bottom: 10%; left: 40%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #8c6e4a 0%, #5a3e28 100%);
  border-radius: 30% 30% 0 0;
  transform: rotate(15deg);
  animation: lge-spade 7s ease-in-out infinite;
}
.scn-letter-goneril-edmund .lge-w1 {
  position: absolute; bottom: 30%; left: 0; width: 120%; height: 20px;
  background: linear-gradient(180deg, rgba(200,230,240,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: lge-wave1 10s linear infinite;
}
.scn-letter-goneril-edmund .lge-w2 {
  position: absolute; bottom: 35%; left: 0; width: 100%; height: 15px;
  background: linear-gradient(180deg, rgba(200,230,240,0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: lge-wave2 14s linear infinite reverse;
}
@keyframes lge-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes lge-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes lge-sand { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lge-kneel { 0% { transform: translateX(-50%) scaleY(0.8) rotate(0deg); } 25% { transform: translateX(-50%) scaleY(0.85) rotate(-2deg) translateY(-1px); } 50% { transform: translateX(-50%) scaleY(0.8) rotate(0deg); } 75% { transform: translateX(-50%) scaleY(0.85) rotate(2deg) translateY(-1px); } 100% { transform: translateX(-50%) scaleY(0.8) rotate(0deg); } }
@keyframes lge-letter { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes lge-spade { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes lge-wave1 { 0% { transform: translateX(-20px); } 100% { transform: translateX(80px); } }
@keyframes lge-wave2 { 0% { transform: translateX(0); } 100% { transform: translateX(-60px); } }

/* albany-goneril-quarrel */
.scn-albany-goneril-quarrel {
  background: linear-gradient(180deg, #d4c4a0 0%, #b59a7a 40%, #8a6e50 100%), radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 70%);
}
.scn-albany-goneril-quarrel .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #c4b49a 0%, #a08870 50%, #7a6050 100%);
  animation: agq-room 12s ease-in-out infinite alternate;
}
.scn-albany-goneril-quarrel .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-top: 2px solid #8a7050;
  animation: agq-floor 8s ease-in-out infinite;
}
.scn-albany-goneril-quarrel .table {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: agq-table 6s ease-in-out infinite;
}
.scn-albany-goneril-quarrel .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: agq-fig-left 4s ease-in-out infinite;
}
.scn-albany-goneril-quarrel .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 55px; height: 110px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: agq-fig-right 3.5s ease-in-out infinite;
}
.scn-albany-goneril-quarrel .shadow-left {
  position: absolute; bottom: 20%; left: 15%; width: 70px; height: 20px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: agq-shadow 5s ease-in-out infinite alternate;
}
.scn-albany-goneril-quarrel .shadow-right {
  position: absolute; bottom: 20%; right: 15%; width: 65px; height: 20px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: agq-shadow2 4.5s ease-in-out infinite alternate;
}
.scn-albany-goneril-quarrel .door {
  position: absolute; bottom: 30%; right: 5%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #6a5040 0%, #3a2818 100%);
  border: 2px solid #4a3828;
  border-radius: 4px 4px 0 0;
  animation: agq-door 15s ease-in-out infinite;
}

@keyframes agq-room { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes agq-floor { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes agq-table { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-1px); } }
@keyframes agq-fig-left { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes agq-fig-right { 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 agq-shadow { 0% { opacity:0.3; transform: scaleX(0.8); } 50% { opacity:0.6; transform: scaleX(1); } 100% { opacity:0.4; transform: scaleX(0.9); } }
@keyframes agq-shadow2 { 0% { opacity:0.4; transform: scaleY(0.8); } 50% { opacity:0.5; transform: scaleY(1); } 100% { opacity:0.3; transform: scaleY(0.9); } }
@keyframes agq-door { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } }

/* news-cornwall-dead */
.scn-news-cornwall-dead {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2030 40%, #3a2a3e 100%), radial-gradient(ellipse at 50% 20%, #4a3a4e 0%, transparent 70%);
}
.scn-news-cornwall-dead .room-dark {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%);
  animation: ncd-room 10s ease-in-out infinite alternate;
}
.scn-news-cornwall-dead .window-bright {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at center, #f0e0a0 0%, #c0a060 60%, transparent);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(240,224,160,0.5);
  animation: ncd-window 8s ease-in-out infinite alternate;
}
.scn-news-cornwall-dead .messenger {
  position: absolute; bottom: 22%; left: 25%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ncd-messenger 6s ease-in-out infinite;
}
.scn-news-cornwall-dead .seated-figure {
  position: absolute; bottom: 20%; right: 30%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ncd-seated 7s ease-in-out infinite;
}
.scn-news-cornwall-dead .table-candle {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: ncd-table 9s ease-in-out infinite;
}
.scn-news-cornwall-dead .candle-flame {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(circle at center, #ffd070 0%, #ffa030 40%, #ff6000 70%, transparent);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(255,160,48,0.6);
  animation: ncd-flame 2s ease-in-out infinite alternate;
}
.scn-news-cornwall-dead .pool-light {
  position: absolute; bottom: 20%; left: 35%; width: 120px; height: 40px;
  background: radial-gradient(ellipse at center, rgba(255,160,48,0.3) 0%, transparent 70%);
  animation: ncd-pool 5s ease-in-out infinite alternate;
}

@keyframes ncd-room { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes ncd-window { 0% { opacity:0.6; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); box-shadow: 0 0 40px 15px rgba(240,224,160,0.7); } 100% { opacity:0.7; transform: scale(0.98); } }
@keyframes ncd-messenger { 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 ncd-seated { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(-1deg); } 60% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ncd-table { 0%,100% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.02); } }
@keyframes ncd-flame { 0% { transform: translateX(-50%) scaleY(0.9); opacity:0.8; } 50% { transform: translateX(-50%) scaleY(1.1); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.95); opacity:0.9; } }
@keyframes ncd-pool { 0% { opacity:0.2; transform: scaleY(0.8); } 50% { opacity:0.4; transform: scaleY(1.1); } 100% { opacity:0.3; transform: scaleY(0.9); } }

/* goneril-reads-letter */
.scn-goneril-reads-letter {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 20%, #5a4a3a 0%, transparent 70%);
}
.scn-goneril-reads-letter .desk-bg {
  position: absolute; inset: 40% 0 0 0;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2818 100%);
  border-top: 3px solid #8a6a4a;
  animation: grl-deskbg 10s ease-in-out infinite alternate;
}
.scn-goneril-reads-letter .desk-surface {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(135deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4);
  animation: grl-desk 8s ease-in-out infinite;
}
.scn-goneril-reads-letter .letter {
  position: absolute; bottom: 40%; left: 40%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #e8d4b0 0%, #c8a880 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: grl-letter 6s ease-in-out infinite;
}
.scn-goneril-reads-letter .hand-left {
  position: absolute; bottom: 38%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c8a080 0%, #a08060 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform: rotate(-20deg);
  transform-origin: 50% 100%;
  animation: grl-handl 4s ease-in-out infinite alternate;
}
.scn-goneril-reads-letter .hand-right {
  position: absolute; bottom: 38%; right: 35%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #c8a080 0%, #a08060 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform: rotate(15deg);
  transform-origin: 50% 100%;
  animation: grl-handr 4.5s ease-in-out infinite alternate;
}
.scn-goneril-reads-letter .candle {
  position: absolute; bottom: 45%; right: 20%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #e0c090 0%, #a08050 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 10px 2px rgba(200,150,80,0.5);
  animation: grl-candle 5s ease-in-out infinite;
}
.scn-goneril-reads-letter .candle-glow {
  position: absolute; bottom: 48%; right: 20%; width: 6px; height: 14px;
  background: radial-gradient(circle at center, #ffd060 0%, #ffa030 50%, transparent);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,160,48,0.4);
  animation: grl-glow 2s ease-in-out infinite alternate;
}
.scn-goneril-reads-letter .shadow {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: grl-shadow 7s ease-in-out infinite alternate;
}

@keyframes grl-deskbg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes grl-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes grl-letter { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } 100% { transform: rotate(-6deg) scale(0.98); } }
@keyframes grl-handl { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-2px); } 100% { transform: rotate(-22deg) translateY(1px); } }
@keyframes grl-handr { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(13deg) translateY(-2px); } 100% { transform: rotate(17deg) translateY(1px); } }
@keyframes grl-candle { 0%,100% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.05); opacity:1; } }
@keyframes grl-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(0.9); } }
@keyframes grl-shadow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.4; } }

/* french-camp-kent */
.scn-french-camp-kent {
  background: linear-gradient(180deg, #7ab0c0 0%, #b0d0e0 30%, #e0f0f0 60%, #f0e8c0 100%), radial-gradient(ellipse at 50% 30%, #f0e8c0 0%, transparent 70%);
}
.scn-french-camp-kent .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #90c0d0 0%, #b0d8e0 40%, #d0e8f0 100%);
  animation: fck-sky 15s ease-in-out infinite alternate;
}
.scn-french-camp-kent .sun {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle at center, #ffd080 0%, #ffb060 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,176,96,0.5);
  animation: fck-sun 20s ease-in-out infinite alternate;
}
.scn-french-camp-kent .hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a9a5a 0%, #5a7a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: fck-hills 12s ease-in-out infinite alternate;
}
.scn-french-camp-kent .tent {
  position: absolute; bottom: 30%; left: 20%; width: 120px; height: 100px;
  background: linear-gradient(135deg, #c0a070 0%, #a08050 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  box-shadow: 0 4px 15px rgba(0,0,0,0.3);
  animation: fck-tent 8s ease-in-out infinite;
}
.scn-french-camp-kent .figure-kent {
  position: absolute; bottom: 28%; left: 15%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fck-kent 6s ease-in-out infinite;
}
.scn-french-camp-kent .figure-gentleman {
  position: absolute; bottom: 28%; left: 35%; width: 38px; height: 85px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fck-gentleman 5.5s ease-in-out infinite;
}
.scn-french-camp-kent .flag {
  position: absolute; bottom: 42%; left: 23%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #b08060 0%, #906040 100%);
  transform-origin: bottom left;
  animation: fck-flag 4s ease-in-out infinite alternate;
}
.scn-french-camp-kent .grass {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%);
  border-radius: 30% 30% 0 0;
  animation: fck-grass 10s ease-in-out infinite alternate;
}

@keyframes fck-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes fck-sun { 0% { transform: scale(0.9); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.9; } }
@keyframes fck-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes fck-tent { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.02); } }
@keyframes fck-kent { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(2px) rotate(2deg); } 60% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fck-gentleman { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-2px) rotate(-2deg); } 60% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fck-flag { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes fck-grass { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }

/* Scene 1: gloucester-falls-forward */
.scn-gloucester-falls-forward {
  background: linear-gradient(180deg, #f0e6c0 0%, #c8b080 30%, #806040 70%, #403020 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}

.scn-gloucester-falls-forward .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 50%, #f0e6c0 100%);
  animation: gl-sky 8s ease-in-out infinite alternate;
}

.scn-gloucester-falls-forward .cliff {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b4c3a 0%, #4a3020 100%);
  border-radius: 0 0 20% 20% / 0 0 50% 50%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: gl-cliff 6s ease-in-out infinite;
}

.scn-gloucester-falls-forward .sun {
  position: absolute; top: 8%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8c0 0%, #ffe080 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,224,128,0.6);
  animation: gl-sun 12s ease-in-out infinite alternate;
}

.scn-gloucester-falls-forward .figure {
  position: absolute; top: 20%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0c06 100%);
  border-radius: 40% 40% 60% 60% / 50% 50% 40% 40%;
  transform-origin: center bottom;
  animation: gl-fall 3s ease-in-out infinite;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}

.scn-gloucester-falls-forward .rock-a {
  position: absolute; bottom: 15%; left: 10%; width: 80px; height: 50px;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2210 100%);
  border-radius: 30% 70% 40% 60% / 60% 40% 60% 40%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: gl-rock 9s ease-in-out infinite alternate;
}

.scn-gloucester-falls-forward .rock-b {
  position: absolute; bottom: 10%; right: 20%; width: 60px; height: 40px;
  background: linear-gradient(225deg, #4a2a1a 0%, #2a1208 100%);
  border-radius: 50% 30% 70% 30% / 40% 60% 40% 60%;
  box-shadow: inset 0 3px 6px rgba(0,0,0,0.5);
  animation: gl-rock 12s ease-in-out infinite alternate-reverse;
}

.scn-gloucester-falls-forward .light-ray {
  position: absolute; top: 0; left: 20%; width: 40px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: gl-ray 5s ease-in-out infinite alternate;
}

@keyframes gl-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes gl-cliff { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes gl-sun { 0% { transform: scale(0.95); opacity: 0.9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.85; } }
@keyframes gl-fall { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(10px) rotate(15deg); } 50% { transform: translateY(20px) rotate(30deg); } 75% { transform: translateY(30px) rotate(15deg); } 100% { transform: translateY(40px) rotate(0deg); } }
@keyframes gl-rock { 0% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(0.98); } }
@keyframes gl-ray { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

/* Scene 2: gloucester-revives */
.scn-gloucester-revives {
  background: linear-gradient(180deg, #c8b080 0%, #a08060 40%, #604828 70%, #302818 100%),
              radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 60%);
}

.scn-gloucester-revives .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: gr-ground 10s ease-in-out infinite alternate;
}

.scn-gloucester-revives .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0cce0 0%, #d8e8f0 40%, #f0e6c0 100%);
  animation: gr-sky 15s ease-in-out infinite alternate;
}

.scn-gloucester-revives .sun {
  position: absolute; top: 5%; right: 10%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff0b0 0%, #ffd080 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,208,128,0.5);
  animation: gr-sun 8s ease-in-out infinite alternate;
}

.scn-gloucester-revives .body {
  position: absolute; bottom: 25%; left: 30%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1a10 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform: rotate(15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: gr-body 4s ease-in-out infinite;
}

.scn-gloucester-revives .head {
  position: absolute; bottom: 45%; left: 25%; width: 30px; height: 35px;
  background: #3a2a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5);
  animation: gr-head 4s ease-in-out infinite;
}

.scn-gloucester-revives .arm {
  position: absolute; bottom: 30%; left: 20%; width: 25px; height: 10px;
  background: #4a3a28;
  border-radius: 0 80% 80% 0 / 0 50% 50% 0;
  transform: rotate(-30deg);
  transform-origin: left center;
  animation: gr-arm 3s ease-in-out infinite alternate;
}

.scn-gloucester-revives .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #5a6a30 0%, #3a4a18 100%);
  filter: blur(3px);
  animation: gr-grass 8s ease-in-out infinite;
}

@keyframes gr-ground { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes gr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes gr-sun { 0% { transform: scale(0.9); opacity: 0.7; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.8; } }
@keyframes gr-body { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(12deg) translateY(0); } }
@keyframes gr-head { 0% { transform: rotate(20deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(15deg); } }
@keyframes gr-arm { 0% { transform: rotate(-30deg); } 100% { transform: rotate(-15deg); } }
@keyframes gr-grass { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* Scene 3: edgar-deceives-gloucester */
.scn-edgar-deceives-gloucester {
  background: linear-gradient(180deg, #a0b8c8 0%, #8090a0 40%, #5a6a78 70%, #3a4850 100%),
              radial-gradient(ellipse at 60% 30%, #e8f0f8 0%, transparent 60%);
}

.scn-edgar-deceives-gloucester .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c0d0e0 0%, #a0b8c8 50%, #8090a0 100%);
  animation: ed-sky 20s ease-in-out infinite alternate;
}

.scn-edgar-deceives-gloucester .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a5a48 0%, #2a3a28 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}

.scn-edgar-deceives-gloucester .gloucester {
  position: absolute; bottom: 20%; left: 10%; width: 40px; height: 60px;
  background: #2a1a10;
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform: rotate(10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ed-body 5s ease-in-out infinite;
}

.scn-edgar-deceives-gloucester .fiend {
  position: absolute; top: 10%; right: 15%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  clip-path: polygon(20% 0%, 80% 0%, 70% 30%, 90% 50%, 60% 70%, 50% 100%, 40% 70%, 10% 50%, 30% 30%);
  filter: drop-shadow(0 0 10px rgba(0,0,0,0.6));
  animation: ed-fiend 6s ease-in-out infinite;
}

.scn-edgar-deceives-gloucester .edgar {
  position: absolute; bottom: 10%; left: 25%; width: 20px; height: 40px;
  background: #2a1a10;
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: ed-edgar 4s ease-in-out infinite;
}

.scn-edgar-deceives-gloucester .rock {
  position: absolute; bottom: 15%; right: 30%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #4a3a28 0%, #2a1a08 100%);
  border-radius: 40% 60% 30% 70% / 50% 40% 60% 50%;
  box-shadow: inset 0 3px 6px rgba(0,0,0,0.4);
}

.scn-edgar-deceives-gloucester .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: ed-shadow 10s ease-in-out infinite alternate;
}

@keyframes ed-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ed-body { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes ed-fiend { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(0.95) rotate(-3deg); } }
@keyframes ed-edgar { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes ed-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* Scene 4: lear-mad-flower-crown */
.scn-lear-mad-flower-crown {
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b080 40%, #907050 70%, #604030 100%),
              radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 50%);
}

.scn-lear-mad-flower-crown .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0c0d0 0%, #d0d8e0 50%, #e8d8b0 100%);
  animation: le-sky 12s ease-in-out infinite alternate;
}

.scn-lear-mad-flower-crown .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: le-ground 8s ease-in-out infinite alternate;
}

.scn-lear-mad-flower-crown .lear-head {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 50px;
  background: #3a2818;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(-10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: le-head 4s ease-in-out infinite;
}

.scn-lear-mad-flower-crown .flower-a {
  position: absolute; bottom: 48%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0c060 0%, #c08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(240,192,96,0.5);
  animation: le-flower 3s ease-in-out infinite;
}

.scn-lear-mad-flower-crown .flower-b {
  position: absolute; bottom: 50%; left: 52%; width: 10px; height: 10px;
  background: radial-gradient(circle, #d0a050 0%, #a07030 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(208,160,80,0.5);
  animation: le-flower 4s ease-in-out infinite 0.5s;
}

.scn-lear-mad-flower-crown .flower-c {
  position: absolute; bottom: 46%; left: 55%; width: 8px; height: 8px;
  background: radial-gradient(circle, #e0b070 0%, #b08050 100%);
  border-radius: 50%;
  box-shadow: 0 0 3px 1px rgba(224,176,112,0.5);
  animation: le-flower 5s ease-in-out infinite 1s;
}

.scn-lear-mad-flower-crown .hair {
  position: absolute; bottom: 40%; left: 45%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0c06 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: le-hair 6s ease-in-out infinite;
}

.scn-lear-mad-flower-crown .staff {
  position: absolute; bottom: 20%; left: 60%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1a08 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: le-staff 5s ease-in-out infinite;
}

@keyframes le-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes le-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes le-head { 0% { transform: translateX(-50%) rotate(-10deg); } 50% { transform: translateX(-50%) rotate(-5deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-15deg); } }
@keyframes le-flower { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.7; } }
@keyframes le-hair { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes le-staff { 0% { transform: rotate(15deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(10deg); } }

/* Scene: fool-sings (humorous bright interior) */
.scn-fool-sings {
  background:
    linear-gradient(180deg, #f7e8c4 0%, #ead5a0 40%, #d4b87a 100%),
    radial-gradient(ellipse at 30% 20%, #fff3d0 0%, transparent 60%);
}
.scn-fool-sings .room-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f0e0b8 0%, #e8d4a0 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.08);
}
.scn-fool-sings .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c9a86c 0%, #ad8a52 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
}
.scn-fool-sings .fool {
  position: absolute; bottom: 30%; left: 30%;
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #6b4c2a 0%, #4a3420 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: fs-fool 3s ease-in-out infinite;
}
.scn-fool-sings .rod {
  position: absolute; bottom: 33%; left: 38%;
  width: 6px; height: 50px;
  background: linear-gradient(180deg, #cca56a 0%, #8a6e3a 100%);
  border-radius: 30%;
  transform-origin: bottom center;
  animation: fs-rod 4s ease-in-out infinite;
}
.scn-fool-sings .cap {
  position: absolute; bottom: 78%; left: 27%; width: 26px; height: 20px;
  background: linear-gradient(135deg, #b45c2e 0%, #7a3a1e 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: center bottom;
  animation: fs-cap 1.5s ease-in-out infinite;
}
.scn-fool-sings .light-beam {
  position: absolute; top: 10%; left: 50%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,235,180,0.7) 0%, rgba(255,235,180,0) 100%);
  transform: translateX(-50%) skewX(-10deg);
  filter: blur(4px);
  animation: fs-beam 8s ease-in-out infinite alternate;
}
.scn-fool-sings .sparkle {
  position: absolute; top: 20%; left: 20%; width: 8px; height: 8px;
  background: #ffdd99;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,220,150,0.7);
  animation: fs-sparkle 2s ease-in-out infinite;
}
@keyframes fs-fool {
  0%   { transform: translateY(0) rotate(-2deg); }
  50%  { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes fs-rod {
  0%   { transform: rotate(-15deg); }
  50%  { transform: rotate(15deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes fs-cap {
  0%   { transform: rotate(0deg) scaleY(1); }
  50%  { transform: rotate(10deg) scaleY(1.2); }
  100% { transform: rotate(-5deg) scaleY(1); }
}
@keyframes fs-beam {
  0%   { opacity: 0.6; transform: translateX(-50%) skewX(-10deg) scaleX(1); }
  50%  { opacity: 1; transform: translateX(-45%) skewX(-5deg) scaleX(1.1); }
  100% { opacity: 0.7; transform: translateX(-55%) skewX(-15deg) scaleX(0.9); }
}
@keyframes fs-sparkle {
  0%   { opacity: 0; transform: scale(0.5) translateY(0); }
  50%  { opacity: 1; transform: scale(1.5) translateY(-10px); }
  100% { opacity: 0; transform: scale(0.5) translateY(0); }
}

/* Scene: goneril-confronts-lear (tense bright interior) */
.scn-goneril-confronts-lear {
  background:
    linear-gradient(180deg, #e2d4b0 0%, #c4b48a 40%, #a89870 100%),
    radial-gradient(ellipse at 60% 20%, #ffe9cc 0%, transparent 60%);
}
.scn-goneril-confronts-lear .hall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #d4c4a0 0%, #ede0c0 50%, #d4c4a0 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.15);
}
.scn-goneril-confronts-lear .window {
  position: absolute; top: 15%; right: 10%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #a4c0e0 0%, #7a9bc0 100%);
  border: 4px solid #8a7040;
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: gc-window 6s ease-in-out infinite alternate;
}
.scn-goneril-confronts-lear .lear {
  position: absolute; bottom: 20%; left: 25%;
  width: 50px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: gc-lear 5s ease-in-out infinite;
}
.scn-goneril-confronts-lear .goneril {
  position: absolute; bottom: 20%; right: 25%;
  width: 44px; height: 68px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2210 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: gc-goneril 5s ease-in-out infinite alternate;
}
.scn-goneril-confronts-lear .shadow-sharp {
  position: absolute; bottom: 5%; left: 20%; width: 100px; height: 60px;
  background: rgba(30,20,5,0.4);
  filter: blur(2px);
  clip-path: polygon(10% 0%, 90% 0%, 70% 100%, 30% 100%);
  animation: gc-shadow 7s ease-in-out infinite;
}
.scn-goneril-confronts-lear .frown-line {
  position: absolute; top: 48%; left: 38%; width: 50px; height: 4px;
  background: #5a3a2a;
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: gc-frown 4s ease-in-out infinite alternate;
}
@keyframes gc-window {
  0%   { filter: brightness(1); transform: scale(1); }
  50%  { filter: brightness(1.2); transform: scale(1.02); }
  100% { filter: brightness(0.9); transform: scale(0.98); }
}
@keyframes gc-lear {
  0%   { transform: translateY(0) rotate(0deg); }
  25%  { transform: translateY(-3px) rotate(-2deg); }
  50%  { transform: translateY(0) rotate(0deg); }
  75%  { transform: translateY(3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gc-goneril {
  0%   { transform: translateY(0) rotate(0deg) scaleX(1); }
  50%  { transform: translateY(-2px) rotate(2deg) scaleX(0.97); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes gc-shadow {
  0%   { opacity: 0.3; transform: scaleX(1); }
  50%  { opacity: 0.6; transform: scaleX(1.2); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
@keyframes gc-frown {
  0%   { width: 50px; opacity: 0.8; }
  50%  { width: 60px; opacity: 1; }
  100% { width: 45px; opacity: 0.7; }
}

/* Scene: fool-warns-again (funny bright interior with candle) */
.scn-fool-warns-again {
  background:
    linear-gradient(180deg, #ead8b0 0%, #d6c49c 40%, #b89e7a 100%),
    radial-gradient(ellipse at 50% 80%, #e6d0a0 0%, transparent 60%);
}
.scn-fool-warns-again .room {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f0e2c8 0%, #d8c8a8 100%);
}
.scn-fool-warns-again .table {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 8px;
  background: linear-gradient(90deg, #8a6e3a 0%, #a08050 100%);
  transform: translateX(-50%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
}
.scn-fool-warns-again .candle {
  position: absolute; bottom: 32%; left: 50%;
  width: 10px; height: 30px;
  background: linear-gradient(180deg, #ede0c0 0%, #c4b490 100%);
  transform: translateX(-50%);
  border-radius: 2px 2px 4px 4px;
}
.scn-fool-warns-again .fool {
  position: absolute; bottom: 25%; left: 25%;
  width: 36px; height: 54px;
  background: linear-gradient(180deg, #6b4c2a 0%, #4a3420 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: fw-fool 3.5s ease-in-out infinite;
}
.scn-fool-warns-again .cuckoo {
  position: absolute; top: 25%; left: 65%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center center;
  animation: fw-cuckoo 6s ease-in-out infinite;
}
.scn-fool-warns-again .smoke {
  position: absolute; bottom: 38%; left: 48%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,200,200,0.5) 0%, transparent 70%);
  filter: blur(3px);
  animation: fw-smoke 4s ease-out infinite;
}
@keyframes fw-fool {
  0%   { transform: translateX(0) rotate(0deg); }
  25%  { transform: translateX(8px) rotate(3deg); }
  50%  { transform: translateX(16px) rotate(0deg); }
  75%  { transform: translateX(8px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fw-cuckoo {
  0%   { transform: translateY(0) scaleX(1); }
  50%  { transform: translateY(-8px) scaleX(1.3); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes fw-smoke {
  0%   { opacity: 0.6; transform: translateY(0) scale(0.5); }
  50%  { opacity: 0.3; transform: translateY(-20px) scale(1.2); }
  100% { opacity: 0; transform: translateY(-40px) scale(2); }
}

/* Scene: lear-question-identity (dark mood, bright interior) */
.scn-lear-question-identity {
  background:
    linear-gradient(180deg, #b8a88a 0%, #9e8e70 40%, #7a6a52 100%),
    radial-gradient(ellipse at 50% 0%, #d4c8b0 0%, transparent 70%);
}
.scn-lear-question-identity .chamber {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8b89a 0%, #b0a080 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.2);
}
.scn-lear-question-identity .mirror-frame {
  position: absolute; top: 15%; left: 50%; width: 70px; height: 90px;
  border: 6px solid #7a6a52;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #a8a090 0%, #8a7a6a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: lq-mirror 7s ease-in-out infinite alternate;
}
.scn-lear-question-identity .lear-silhouette {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: lq-lear 6s ease-in-out infinite;
}
.scn-lear-question-identity .shadow-figure {
  position: absolute; bottom: 20%; right: 30%; width: 36px; height: 60px;
  background: rgba(20,10,0,0.6);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  filter: blur(2px);
  animation: lq-shadow 8s ease-in-out infinite alternate;
}
.scn-lear-question-identity .light-source {
  position: absolute; top: 10%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffefc0 0%, rgba(255,239,192,0.3) 50%, transparent 100%);
  border-radius: 50%;
  animation: lq-light 5s ease-in-out infinite alternate;
}
.scn-lear-question-identity .question-mark {
  position: absolute; top: 25%; left: 60%; width: 16px; height: 24px;
  background: #8a7a62;
  clip-path: polygon(50% 0%, 60% 10%, 60% 40%, 50% 60%, 40% 55%, 45% 40%, 55% 40%, 55% 15%, 45% 10%);
  animation: lq-qmark 4s ease-in-out infinite;
}
@keyframes lq-mirror {
  0%   { transform: translateX(-50%) scaleX(1); filter: brightness(0.9); }
  50%  { transform: translateX(-50%) scaleX(1.03); filter: brightness(1.1); }
  100% { transform: translateX(-50%) scaleX(0.97); filter: brightness(0.8); }
}
@keyframes lq-lear {
  0%   { transform: translateX(0) rotate(0deg); }
  25%  { transform: translateX(10px) rotate(-3deg); }
  50%  { transform: translateX(0) rotate(0deg); }
  75%  { transform: translateX(-10px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lq-shadow {
  0%   { transform: translateY(0) scale(0.9); opacity: 0.5; }
  50%  { transform: translateY(-5px) scale(1.1); opacity: 0.8; }
  100% { transform: translateY(0) scale(0.9); opacity: 0.5; }
}
@keyframes lq-light {
  0%   { opacity: 0.7; transform: scale(0.8); }
  50%  { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.9); }
}
@keyframes lq-qmark {
  0%   { opacity: 0.3; transform: translateY(0) scale(0.8); }
  50%  { opacity: 1; transform: translateY(-8px) scale(1.2); }
  100% { opacity: 0.3; transform: translateY(0) scale(0.8); }
}

/* Scene: quarrels-over-status */
.scn-quarrels-over-status {
  background: linear-gradient(180deg, #fdd9a0 0%, #f0b060 40%, #c08040 75%, #a06020 100%),
              radial-gradient(ellipse at 50% 0%, #ffe8b0 0%, transparent 60%);
}
.scn-quarrels-over-status .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d4e4f0 0%, #b0c8e0 100%); animation: qs-sky 3s ease-in-out infinite alternate; }
.scn-quarrels-over-status .sun { position:absolute; top:10%; left:60%; width:50px; height:50px; background: radial-gradient(circle, #fff8c0 0%, #ffd060 40%, #f0a030 100%); border-radius:50%; box-shadow: 0 0 60px 20px #ffd060, 0 0 120px 40px rgba(255,208,96,.4); animation: qs-pulse 2s ease-in-out infinite; }
.scn-quarrels-over-status .figure-left { position:absolute; bottom:25%; left:15%; width:28px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: qs-body-l 4s ease-in-out infinite; }
.scn-quarrels-over-status .figure-left::after { content:''; position:absolute; top:10%; left:25%; width:18px; height:20px; background: inherit; border-radius:50%; } /* head */
.scn-quarrels-over-status .figure-right { position:absolute; bottom:25%; right:15%; width:30px; height:65px; background: linear-gradient(180deg, #2a1a0a 0%, #100500 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: qs-body-r 5s ease-in-out infinite; }
.scn-quarrels-over-status .figure-right::after { content:''; position:absolute; top:10%; right:25%; width:20px; height:22px; background: inherit; border-radius:50%; } /* head */
.scn-quarrels-over-status .ground { position:absolute; bottom:0; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-quarrels-over-status .shadow { position:absolute; bottom:25%; left:20%; right:20%; height:8px; background: rgba(0,0,0,.3); border-radius:50%; filter:blur(4px); animation: qs-shadow 4s ease-in-out infinite; }
.scn-quarrels-over-status .dust-1,
.scn-quarrels-over-status .dust-2 { position:absolute; bottom:30%; width:4px; height:4px; background: rgba(180,160,120,.4); border-radius:50%; filter:blur(2px); animation: qs-dust 3s ease-in-out infinite; }
.scn-quarrels-over-status .dust-1 { left:40%; animation-delay:0s; }
.scn-quarrels-over-status .dust-2 { left:55%; animation-delay:1.5s; }
@keyframes qs-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes qs-pulse { 0% { transform:scale(1); box-shadow: 0 0 40px 10px #ffd060; } 50% { transform:scale(1.08); box-shadow: 0 0 100px 30px #ffe090; } 100% { transform:scale(1); box-shadow: 0 0 60px 15px #ffd060; } }
@keyframes qs-body-l { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes qs-body-r { 0% { transform: translateX(0) rotate(5deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(5deg); } }
@keyframes qs-shadow { 0% { opacity:0.3; transform:scaleX(1); } 50% { opacity:0.6; transform:scaleX(1.1); } 100% { opacity:0.3; transform:scaleX(1); } }
@keyframes qs-dust { 0% { transform: translateY(0) scale(1); opacity:0.4; } 50% { transform: translateY(-10px) scale(1.5); opacity:0.8; } 100% { transform: translateY(0) scale(1); opacity:0.4; } }

/* Scene: gonerils-surrender */
.scn-gonerils-surrender {
  background: linear-gradient(180deg, #f0d8b0 0%, #d8b080 30%, #b08050 70%, #805030 100%),
              radial-gradient(ellipse at 20% 80%, #ffd090 0%, transparent 60%);
}
.scn-gonerils-surrender .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d4dce8 0%, #b0c0d0 100%); animation: gs-sky 4s ease-in-out infinite alternate; }
.scn-gonerils-surrender .sun-door { position:absolute; top:25%; left:50%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 30%, #ffe8a0 0%, #f0b040 60%, #c08020 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 30px 8px #f0b040; animation: gs-door 5s ease-in-out infinite; }
.scn-gonerils-surrender .arch { position:absolute; bottom:40%; left:50%; transform:translateX(-50%); width:50px; height:80px; background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius:40% 40% 10% 10% / 60% 60% 10% 10%; }
.scn-gonerils-surrender .figure-kneeling { position:absolute; bottom:15%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: gs-kneel 3s ease-in-out infinite; }
.scn-gonerils-surrender .figure-kneeling::after { content:''; position:absolute; top:10%; left:20%; width:14px; height:16px; background: inherit; border-radius:50%; }
.scn-gonerils-surrender .figure-standing { position:absolute; bottom:10%; right:30%; width:22px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 25% 25% 15% 15% / 45% 45% 25% 25%; transform-origin: bottom center; animation: gs-stand 4s ease-in-out infinite; }
.scn-gonerils-surrender .figure-standing::after { content:''; position:absolute; top:8%; right:25%; width:16px; height:18px; background: inherit; border-radius:50%; }
.scn-gonerils-surrender .floor { position:absolute; bottom:0; left:5%; right:5%; height:15%; background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-gonerils-surrender .drapery { position:absolute; top:12%; right:10%; width:30px; height:70px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 70%, #5e1a1d 100%); border-radius:10% 10% 50% 50% / 20% 20% 40% 40%; transform-origin: top center; animation: gs-drape 6s ease-in-out infinite alternate; }
@keyframes gs-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes gs-door { 0% { transform: translateX(0) scaleY(1); opacity:0.8 } 50% { transform: translateX(2px) scaleY(1.05); opacity:1 } 100% { transform: translateX(0) scaleY(1); opacity:0.8 } }
@keyframes gs-kneel { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gs-stand { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gs-drape { 0% { transform: scaleX(1) rotate(-2deg); } 50% { transform: scaleX(1.1) rotate(0deg); } 100% { transform: scaleX(1) rotate(2deg); } }

/* Scene: albany-arrests-edmund */
.scn-albany-arrests-edmund {
  background: linear-gradient(180deg, #f5e8c0 0%, #d8b890 30%, #b08858 70%, #886040 100%),
              radial-gradient(ellipse at 50% 100%, #ffe0a0 0%, transparent 50%);
}
.scn-albany-arrests-edmund .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c8d4e0 0%, #a0b8c8 100%); animation: ae-sky 3s ease-in-out infinite alternate; }
.scn-albany-arrests-edmund .shield-left,
.scn-albany-arrests-edmund .shield-right { position:absolute; bottom:40%; width:25px; height:30px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius:30% 30% 20% 20%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.4); transform-origin: center bottom; }
.scn-albany-arrests-edmund .shield-left { left:20%; animation: ae-shield-l 3s ease-in-out infinite; }
.scn-albany-arrests-edmund .shield-right { right:20%; animation: ae-shield-r 3s ease-in-out infinite reverse; }
.scn-albany-arrests-edmund .figure-captive { position:absolute; bottom:15%; left:45%; width:20px; height:45px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ae-captive 5s ease-in-out infinite; }
.scn-albany-arrests-edmund .figure-captive::after { content:''; position:absolute; top:10%; left:25%; width:14px; height:16px; background: inherit; border-radius:50%; }
.scn-albany-arrests-edmund .figure-archer { position:absolute; bottom:15%; right:40%; width:22px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 25% 25% 15% 15% / 45% 45% 25% 25%; transform-origin: bottom center; animation: ae-archer 6s ease-in-out infinite; }
.scn-albany-arrests-edmund .figure-archer::after { content:''; position:absolute; top:8%; right:30%; width:16px; height:18px; background: inherit; border-radius:50%; }
.scn-albany-arrests-edmund .ground { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-albany-arrests-edmund .chain-1,
.scn-albany-arrests-edmund .chain-2 { position:absolute; bottom:20%; width:6px; height:4px; background: #a08060; border-radius:2px; filter:blur(1px); animation: ae-chain 2s ease-in-out infinite; }
.scn-albany-arrests-edmund .chain-1 { left:48%; height:30px; background: linear-gradient(180deg, transparent 0%, #a08060 40%, #a08060 60%, transparent 100%); }
.scn-albany-arrests-edmund .chain-2 { left:52%; height:25px; background: linear-gradient(180deg, transparent 0%, #a08060 30%, #a08060 70%, transparent 100%); animation-delay:1s; }
@keyframes ae-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ae-shield-l { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ae-shield-r { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ae-captive { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes ae-archer { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ae-chain { 0% { opacity:0.3; transform:scaleY(1); } 50% { opacity:0.8; transform:scaleY(1.2); } 100% { opacity:0.3; transform:scaleY(1); } }

/* Scene: albany-challenges */
.scn-albany-challenges {
  background: linear-gradient(180deg, #f0d8b0 0%, #d8b080 30%, #b08050 70%, #905030 100%),
              radial-gradient(ellipse at 60% 20%, #ffe8b0 0%, transparent 50%);
}
.scn-albany-challenges .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d8e0e8 0%, #b0c0d0 100%); animation: ac-sky 3s ease-in-out infinite alternate; }
.scn-albany-challenges .sunburst { position:absolute; top:5%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #ffe8a0 0%, #f0c060 30%, #d09020 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 15px #f0c060, 0 0 80px 30px rgba(240,192,96,.3); animation: ac-sun 4s ease-in-out infinite; }
.scn-albany-challenges .figure-frontal { position:absolute; bottom:20%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ac-front 5s ease-in-out infinite; }
.scn-albany-challenges .figure-frontal::after { content:''; position:absolute; top:10%; left:30%; width:18px; height:20px; background: inherit; border-radius:50%; }
.scn-albany-challenges .figure-profile { position:absolute; bottom:20%; right:25%; width:25px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 25% 25% 15% 15% / 45% 45% 25% 25%; transform-origin: bottom center; animation: ac-profile 6s ease-in-out infinite; }
.scn-albany-challenges .figure-profile::after { content:''; position:absolute; top:8%; right:25%; width:16px; height:18px; background: inherit; border-radius:50%; }
.scn-albany-challenges .lance { position:absolute; bottom:30%; left:48%; width:4px; height:70px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); transform:rotate(15deg); transform-origin: bottom center; border-radius:1px; box-shadow: 0 0 4px rgba(0,0,0,.3); animation: ac-lance 2s ease-in-out infinite alternate; }
.scn-albany-challenges .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-albany-challenges .banner { position:absolute; top:10%; left:50%; width:20px; height:35px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 60%, #5e1a1d 100%); border-radius:0 0 20% 20%; transform-origin: top left; animation: ac-banner 4s ease-in-out infinite alternate; }
@keyframes ac-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ac-sun { 0% { transform: scale(1); box-shadow: 0 0 30px 10px #f0c060; } 50% { transform: scale(1.1); box-shadow: 0 0 60px 20px #ffe090; } 100% { transform: scale(1); box-shadow: 0 0 30px 10px #f0c060; } }
@keyframes ac-front { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes ac-profile { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes ac-lance { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(18deg) scaleY(1.05); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes ac-banner { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }

.scn-lear-requires-love-protestation {
  background: linear-gradient(180deg, #e7d9b8 0%, #c6b28a 40%, #9e8b62 100%), 
              radial-gradient(ellipse at 50% 10%, #f5ecda 0%, transparent 60%);
}
.scn-lear-requires-love-protestation .lr-back {
  position: absolute; inset: 20% 10% 30% 10%;
  background: linear-gradient(135deg, #b8a882 0%, #8a7a5a 100%);
  border-radius: 10% / 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.15);
}
.scn-lear-requires-love-protestation .lr-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 30% 30% 0 0;
  animation: lr-floor-pulse 12s ease-in-out infinite alternate;
}
.scn-lear-requires-love-protestation .lr-curtain-l {
  position: absolute; top: 10%; left: 5%; width: 18%; height: 70%;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #5a4a3a 100%);
  border-radius: 0 40% 40% 0 / 0 60% 60% 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
  animation: lr-curtain-sway 6s ease-in-out infinite alternate;
}
.scn-lear-requires-love-protestation .lr-curtain-r {
  position: absolute; top: 10%; right: 5%; width: 18%; height: 70%;
  background: linear-gradient(270deg, #6a5a4a 0%, #8a7a6a 50%, #5a4a3a 100%);
  border-radius: 40% 0 0 40% / 60% 0 0 60%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.3);
  animation: lr-curtain-sway 7s ease-in-out infinite alternate-reverse;
}
.scn-lear-requires-love-protestation .lr-throne {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 100px;
  background: linear-gradient(180deg, #c8a87a 0%, #8a6a42 100%);
  border-radius: 30% 30% 15% 15%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4), inset 0 -10px 20px rgba(0,0,0,0.2);
  animation: lr-throne-breathe 9s ease-in-out infinite;
}
.scn-lear-requires-love-protestation .lr-king {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: lr-king-sit 4s ease-in-out infinite;
}
.scn-lear-requires-love-protestation .lr-light {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #f5ecda 0%, transparent 70%);
  opacity: 0.5;
  animation: lr-light-flicker 3s ease-in-out infinite alternate;
}
@keyframes lr-floor-pulse { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lr-curtain-sway { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes lr-throne-breathe { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } }
@keyframes lr-king-sit { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-1px); } }
@keyframes lr-light-flicker { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

.scn-goneril-speech-of-love {
  background: linear-gradient(180deg, #d9cdb8 0%, #b8a88a 40%, #8a7a5a 100%), 
              radial-gradient(ellipse at 40% 30%, #ede4d2 0%, transparent 70%);
}
.scn-goneril-speech-of-love .gs-bg {
  position: absolute; inset: 15% 15% 30% 15%;
  background: linear-gradient(135deg, #a89878 0%, #7a6a4a 100%);
  border-radius: 20% / 30%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
}
.scn-goneril-speech-of-love .gs-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 20% 20% 0 0;
  animation: gs-floor-shift 10s ease-in-out infinite alternate;
}
.scn-goneril-speech-of-love .gs-pillar-l {
  position: absolute; bottom: 20%; left: 10%; width: 12px; height: 70%;
  background: linear-gradient(90deg, #b8a080 0%, #d8c0a0 50%, #a88868 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: gs-pillar-stand 8s ease-in-out infinite;
}
.scn-goneril-speech-of-love .gs-pillar-r {
  position: absolute; bottom: 20%; right: 10%; width: 12px; height: 70%;
  background: linear-gradient(270deg, #b8a080 0%, #d8c0a0 50%, #a88868 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: gs-pillar-stand 8s ease-in-out infinite 0.5s;
}
.scn-goneril-speech-of-love .gs-goneril {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 28px; height: 54px;
  background: linear-gradient(180deg, #c8b89a 0%, #a89070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gs-figure-tilt 2s ease-in-out infinite alternate;
}
.scn-goneril-speech-of-love .gs-arm {
  position: absolute; bottom: 32%; left: 44%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #b8a080 0%, #9a8060 100%);
  border-radius: 50% / 70%;
  transform-origin: 70% 80%;
  animation: gs-arm-gesture 1.5s ease-in-out infinite;
}
.scn-goneril-speech-of-love .gs-shadow {
  position: absolute; bottom: 18%; left: 45%; width: 20%; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: gs-shadow-squeeze 2s ease-in-out infinite alternate;
}
@keyframes gs-floor-shift { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes gs-pillar-stand { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes gs-figure-tilt { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes gs-arm-gesture { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(20deg) translateX(4px); } 50% { transform: rotate(-10deg) translateX(-2px); } 75% { transform: rotate(15deg) translateX(3px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes gs-shadow-squeeze { 0% { transform: scaleX(1); opacity: 0.4; } 100% { transform: scaleX(1.3); opacity: 0.6; } }

.scn-regan-speech-of-love {
  background: linear-gradient(180deg, #e7e0c8 0%, #c8bd9e 40%, #a89870 100%), 
              radial-gradient(ellipse at 60% 25%, #f5f0e0 0%, transparent 60%);
}
.scn-regan-speech-of-love .rs-bg {
  position: absolute; inset: 10% 8% 25% 8%;
  background: linear-gradient(135deg, #c8b890 0%, #9a8868 100%);
  border-radius: 15% / 25%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.15);
}
.scn-regan-speech-of-love .rs-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 40% 40% 0 0;
  animation: rs-floor-ripple 14s ease-in-out infinite alternate;
}
.scn-regan-speech-of-love .rs-regan {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 32px; height: 56px;
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rs-regan-bow 5s ease-in-out infinite;
}
.scn-regan-speech-of-love .rs-skirt {
  position: absolute; bottom: 16%; left: 50%; transform: translateX(-50%);
  width: 44px; height: 20px;
  background: linear-gradient(180deg, #c8b090 0%, #a88868 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  animation: rs-skirt-sway 4s ease-in-out infinite alternate;
}
.scn-regan-speech-of-love .rs-crown {
  position: absolute; bottom: 52%; left: 50%; transform: translateX(-50%);
  width: 10px; height: 14px;
  background: linear-gradient(180deg, #d4c080 0%, #b09850 100%);
  clip-path: polygon(0% 100%, 20% 50%, 40% 100%, 50% 40%, 60% 100%, 80% 50%, 100% 100%);
  animation: rs-crown-glow 3s ease-in-out infinite alternate;
}
.scn-regan-speech-of-love .rs-light {
  position: absolute; top: 8%; left: 45%; width: 12%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #fff8e0 0%, transparent 70%);
  opacity: 0.4;
  animation: rs-light-pulse 6s ease-in-out infinite alternate;
}
.scn-regan-speech-of-love .rs-glow {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(200,180,120,0.3) 0%, transparent 70%);
  animation: rs-glow-breathe 8s ease-in-out infinite;
}
@keyframes rs-floor-ripple { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes rs-regan-bow { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(4deg) translateY(-2px); } }
@keyframes rs-skirt-sway { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes rs-crown-glow { 0% { opacity: 0.7; } 50% { opacity: 1; box-shadow: 0 0 8px #d4c080; } 100% { opacity: 0.8; } }
@keyframes rs-light-pulse { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes rs-glow-breathe { 0%,100% { transform: scale(1); opacity: 0.3; } 50% { transform: scale(1.2); opacity: 0.5; } }

.scn-cordelia-aside-poor {
  background: linear-gradient(180deg, #b0a080 0%, #7a6a4a 40%, #4a3a2a 100%), 
              radial-gradient(ellipse at 50% 30%, #c8b898 0%, transparent 70%);
}
.scn-cordelia-aside-poor .ca-bg {
  position: absolute; inset: 18% 12% 30% 12%;
  background: linear-gradient(135deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% / 30%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.4);
}
.scn-cordelia-aside-poor .ca-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 24%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a12 100%);
  border-radius: 30% 30% 0 0;
  animation: ca-floor-darken 15s ease-in-out infinite alternate;
}
.scn-cordelia-aside-poor .ca-cordelia {
  position: absolute; bottom: 22%; left: 42%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ca-cordelia-slump 4s ease-in-out infinite;
}
.scn-cordelia-aside-poor .ca-shade {
  position: absolute; bottom: 20%; left: 38%; width: 34%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: ca-shade-creep 6s ease-in-out infinite alternate;
}
.scn-cordelia-aside-poor .ca-heart {
  position: absolute; bottom: 36%; left: 48%; width: 14px; height: 12px;
  background: radial-gradient(circle at 50% 40%, #b87878 0%, #5e1a1d 100%);
  border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
  transform: rotate(45deg);
  box-shadow: 0 0 12px rgba(184,120,120,0.5);
  animation: ca-heart-beat 2s ease-in-out infinite;
}
.scn-cordelia-aside-poor .ca-light-beam {
  position: absolute; top: 5%; left: 45%; width: 10%; height: 40%;
  background: linear-gradient(180deg, rgba(220,200,160,0.2) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  animation: ca-beam-sway 7s ease-in-out infinite alternate;
}
.scn-cordelia-aside-poor .ca-shadow-frame {
  position: absolute; inset: 5%;
  border: 6px solid rgba(0,0,0,0.3);
  border-radius: 10px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
  animation: ca-frame-vignette 5s ease-in-out infinite alternate;
}
@keyframes ca-floor-darken { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes ca-cordelia-slump { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(2deg); } 75% { transform: translateX(2px) rotate(-2deg); } }
@keyframes ca-shade-creep { 0% { transform: scaleY(0.8); opacity: 0.4; } 100% { transform: scaleY(1.2); opacity: 0.7; } }
@keyframes ca-heart-beat { 0%,100% { transform: rotate(45deg) scale(1); } 50% { transform: rotate(45deg) scale(1.15); } }
@keyframes ca-beam-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes ca-frame-vignette { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.4); } 50% { box-shadow: inset 0 0 50px rgba(0,0,0,0.6); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.3); } }

.scn-lears-final-moments {
  background: radial-gradient(ellipse at 30% 60%, #2b1a1a 0%, #1a0f0f 70%), linear-gradient(180deg, #1a1015 0%, #0d080a 100%);
}
.scn-lears-final-moments .wall {
  position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #1e1417 0%, #2a1d1f 50%, #1a1113 100%);
}
.scn-lears-final-moments .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1f20 0%, #110b0c 100%);
  border-top: 2px solid #3d2a2b;
}
.scn-lears-final-moments .window {
  position:absolute; top:18%; left:28%; width:60px; height:90px; background: radial-gradient(circle at 40% 50%, #5c5548 0%, #37322b 60%, transparent 100%);
  border: 4px solid #2e2520; border-radius: 4px; box-shadow: inset 0 0 20px 6px rgba(180,170,150,0.2), 0 0 30px 10px rgba(80,75,60,0.3);
  animation: lfm-window-glow 6s ease-in-out infinite alternate;
}
.scn-lears-final-moments .light-beam {
  position:absolute; top:18%; left:28%; width:60px; height:50%; background: linear-gradient(180deg, rgba(200,190,170,0.15) 0%, transparent 100%);
  transform: skewX(-8deg) scaleY(2); filter: blur(8px); transform-origin: top left;
  animation: lfm-beam 8s ease-in-out infinite alternate;
}
.scn-lears-final-moments .lear-figure {
  position:absolute; bottom:30%; left:38%; width:24px; height:50px;
  background: linear-gradient(180deg, #281e1f 0%, #150d0e 50%, #0b0607 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg); transform-origin: bottom center;
  animation: lfm-kneel 4s ease-in-out infinite alternate;
}
.scn-lears-final-moments .cordelia-figure {
  position:absolute; bottom:30%; left:44%; width:22px; height:32px;
  background: linear-gradient(180deg, #3a2e30 0%, #201618 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-5deg) scaleY(1.2);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-lears-final-moments .candle {
  position:absolute; bottom:38%; left:52%; width:6px; height:14px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a40 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 12px 6px rgba(200,160,96,0.6), 0 0 30px 12px rgba(200,160,96,0.2);
  animation: lfm-candle-flicker 2s ease-in-out infinite;
}
.scn-lears-final-moments .shadow-drape {
  position:absolute; top:0; left:45%; width:30%; height:60%;
  background: linear-gradient(135deg, transparent 0%, #0b0607 60%, transparent 100%);
  filter: blur(12px);
  animation: lfm-shadow-drift 10s ease-in-out infinite alternate;
}
@keyframes lfm-window-glow {
  0% { opacity: 0.7; box-shadow: inset 0 0 15px 4px rgba(180,170,150,0.15), 0 0 20px 6px rgba(80,75,60,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 30px 10px rgba(200,190,170,0.3), 0 0 50px 18px rgba(100,95,80,0.4); }
  100% { opacity: 0.8; box-shadow: inset 0 0 20px 6px rgba(180,170,150,0.2), 0 0 35px 10px rgba(80,75,60,0.3); }
}
@keyframes lfm-beam {
  0% { opacity: 0.6; transform: skewX(-8deg) scaleY(2) translateX(-2px); }
  50% { opacity: 0.8; transform: skewX(-8deg) scaleY(2.1) translateX(1px); }
  100% { opacity: 0.5; transform: skewX(-8deg) scaleY(1.9) translateX(0px); }
}
@keyframes lfm-kneel {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-2px); }
  100% { transform: rotate(12deg) translateY(0); }
}
@keyframes lfm-candle-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 10px 4px rgba(200,160,96,0.5), 0 0 25px 10px rgba(200,160,96,0.15); }
  20% { opacity: 1; box-shadow: 0 0 15px 6px rgba(200,160,96,0.7), 0 0 35px 14px rgba(200,160,96,0.3); }
  40% { opacity: 0.9; box-shadow: 0 0 12px 5px rgba(200,160,96,0.6), 0 0 30px 12px rgba(200,160,96,0.2); }
  60% { opacity: 0.95; box-shadow: 0 0 14px 6px rgba(210,170,100,0.65), 0 0 32px 13px rgba(210,170,100,0.25); }
  80% { opacity: 0.85; box-shadow: 0 0 11px 4px rgba(200,160,96,0.55), 0 0 28px 11px rgba(200,160,96,0.2); }
  100% { opacity: 0.9; box-shadow: 0 0 13px 5px rgba(200,160,96,0.6), 0 0 30px 12px rgba(200,160,96,0.22); }
}
@keyframes lfm-shadow-drift {
  0% { transform: translateX(0) scaleX(1); opacity: 0.7; }
  50% { transform: translateX(5px) scaleX(1.05); opacity: 0.9; }
  100% { transform: translateX(-3px) scaleX(0.95); opacity: 0.6; }
}

.scn-lears-death {
  background: radial-gradient(ellipse at 50% 70%, #1e1213 0%, #0d0809 70%), linear-gradient(180deg, #171011 0%, #0a0607 100%);
}
.scn-lears-death .bg-dark {
  position:absolute; inset:0; background: linear-gradient(135deg, #0f0a0b 30%, #1a1112 70%, #0a0607 100%);
}
.scn-lears-death .floor-dark {
  position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1c1415 0%, #0a0607 100%);
  border-top: 1px solid #2a1c1d;
}
.scn-lears-death .shaft-light {
  position:absolute; top:0; left:45%; width:80px; height:100%;
  background: linear-gradient(180deg, rgba(200,190,170,0.12) 0%, transparent 60%, transparent 100%);
  filter: blur(6px); transform: skewX(-5deg) scaleX(0.8);
  animation: ld-light-shaft 7s ease-in-out infinite alternate;
}
.scn-lears-death .lear-body {
  position:absolute; bottom:20%; left:38%; width:30px; height:50px;
  background: linear-gradient(180deg, #1e1516 0%, #110b0c 50%, #080405 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(15deg); transform-origin: bottom center;
  animation: ld-body-fall 6s ease-in-out infinite;
}
.scn-lears-death .cordelia-body {
  position:absolute; bottom:22%; left:44%; width:26px; height:44px;
  background: linear-gradient(180deg, #2d1f20 0%, #1a1011 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform: rotate(-8deg); transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
}
.scn-lears-death .hand-reaching {
  position:absolute; bottom:38%; left:35%; width:12px; height:16px;
  background: linear-gradient(180deg, #2a1d1e 0%, #140b0c 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-30deg); transform-origin: 50% 100%;
  animation: ld-hand 4s ease-in-out infinite alternate;
}
.scn-lears-death .dust-motes {
  position:absolute; inset:0;
  background: radial-gradient(2px at 30% 40%, rgba(200,180,160,0.3) 0%, transparent 50%),
              radial-gradient(1px at 60% 30%, rgba(200,180,160,0.2) 0%, transparent 50%),
              radial-gradient(3px at 70% 80%, rgba(200,180,160,0.15) 0%, transparent 50%),
              radial-gradient(2px at 20% 70%, rgba(200,180,160,0.25) 0%, transparent 50%);
  animation: ld-dust 15s linear infinite;
  background-size: 200px 200px;
}
@keyframes ld-light-shaft {
  0% { opacity: 0.3; transform: skewX(-5deg) scaleX(0.8) translateY(0); }
  50% { opacity: 0.6; transform: skewX(-4deg) scaleX(0.85) translateY(-5px); }
  100% { opacity: 0.4; transform: skewX(-6deg) scaleX(0.75) translateY(2px); }
}
@keyframes ld-body-fall {
  0% { transform: rotate(15deg) translateY(0); opacity: 0.9; }
  25% { transform: rotate(12deg) translateY(3px); opacity: 0.8; }
  50% { transform: rotate(10deg) translateY(6px); opacity: 0.7; }
  75% { transform: rotate(13deg) translateY(4px); opacity: 0.8; }
  100% { transform: rotate(15deg) translateY(0); opacity: 0.9; }
}
@keyframes ld-hand {
  0% { transform: rotate(-30deg) translate(0,0); }
  50% { transform: rotate(-25deg) translate(4px,-2px); }
  100% { transform: rotate(-32deg) translate(1px,-1px); }
}
@keyframes ld-dust {
  0% { background-position: 0 0, 0 0, 0 0, 0 0; }
  100% { background-position: 100px 200px, -50px 150px, 80px -100px, -30px 180px; }
}

.scn-final-mourning {
  background: linear-gradient(180deg, #4c4a4e 0%, #3a383c 30%, #2d2b2f 70%, #1f1e21 100%),
              radial-gradient(ellipse at 50% 30%, #5a585c 0%, transparent 60%);
}
.scn-final-mourning .sky-overcast {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5c5a5e 0%, #3e3c40 60%, #2c2a2e 100%);
  animation: fm-sky 20s ease-in-out infinite alternate;
}
.scn-final-mourning .horizon {
  position:absolute; bottom:50%; left:0; right:0; height:4px;
  background: linear-gradient(90deg, transparent 0%, #6d6b6f 20%, #5a585c 50%, #6d6b6f 80%, transparent 100%);
  filter: blur(2px);
}
.scn-final-mourning .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #2a282c 0%, #161518 100%);
  border-top: 1px solid #3a383c;
}
.scn-final-mourning .figure-center {
  position:absolute; bottom:30%; left:50%; width:30px; height:60px;
  background: linear-gradient(180deg, #1e1c20 0%, #0f0e11 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) scale(1.05);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: fm-figure-center 8s ease-in-out infinite;
}
.scn-final-mourning .figure-left {
  position:absolute; bottom:28%; left:30%; width:26px; height:52px;
  background: linear-gradient(180deg, #1e1c20 0%, #0f0e11 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg) scale(0.95);
  animation: fm-figure-side 9s ease-in-out infinite alternate;
}
.scn-final-mourning .figure-right {
  position:absolute; bottom:28%; right:30%; width:26px; height:52px;
  background: linear-gradient(180deg, #1e1c20 0%, #0f0e11 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg) scale(0.95);
  animation: fm-figure-side 9s ease-in-out infinite alternate-reverse;
}
.scn-final-mourning .bier {
  position:absolute; bottom:22%; left:48%; width:70px; height:18px;
  background: linear-gradient(180deg, #322e32 0%, #1a181b 100%);
  border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  transform: translateX(-50%);
  animation: fm-bier 12s ease-in-out infinite alternate;
}
.scn-final-mourning .mist-layer {
  position:absolute; bottom:20%; left:0; right:0; height:40%;
  background: linear-gradient(180deg, rgba(100,98,102,0.2) 0%, rgba(80,78,82,0.1) 50%, transparent 100%);
  filter: blur(10px);
  animation: fm-mist 15s ease-in-out infinite alternate;
}
.scn-final-mourning .cloud-veil {
  position:absolute; top:10%; left:20%; width:200px; height:30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(130,128,132,0.25) 0%, transparent 70%);
  filter: blur(20px);
  animation: fm-cloud-drift 40s linear infinite;
}
@keyframes fm-sky {
  0% { opacity: 0.8; background: linear-gradient(180deg, #5c5a5e 0%, #3e3c40 60%, #2c2a2e 100%); }
  50% { opacity: 0.9; background: linear-gradient(180deg, #666468 0%, #48464a 60%, #343236 100%); }
  100% { opacity: 0.75; background: linear-gradient(180deg, #545256 0%, #3a383c 60%, #28262a 100%); }
}
@keyframes fm-figure-center {
  0% { transform: translateX(-50%) scale(1.05) translateY(0); }
  50% { transform: translateX(-50%) scale(1.03) translateY(-3px); }
  100% { transform: translateX(-50%) scale(1.05) translateY(0); }
}
@keyframes fm-figure-side {
  0% { transform: rotate(-5deg) scale(0.95) translateY(0); }
  50% { transform: rotate(-3deg) scale(0.96) translateY(-2px); }
  100% { transform: rotate(-6deg) scale(0.94) translateY(1px); }
}
@keyframes fm-bier {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.02) translateY(-2px); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.98) translateY(1px); opacity: 0.85; }
}
@keyframes fm-mist {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.5; transform: translateX(-10px); }
  100% { opacity: 0.2; transform: translateX(5px); }
}
@keyframes fm-cloud-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(120vw); }
}

/* Scene 1: edmund-pretends-to-defend */
.scn-edmund-pretends-to-defend {
  background: linear-gradient(180deg, #3a2a24 0%, #2c1e1a 50%, #1f1412 100%), 
              radial-gradient(ellipse at 50% 100%, #3a2a24 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-edmund-pretends-to-defend .wall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3832 0%, #2c1e1a 100%);
  border-bottom: 2px solid #1a0f0d;
  animation: epd-wall 12s ease-in-out infinite alternate;
}
.scn-edmund-pretends-to-defend .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #3a2a24 0%, #1f1412 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
}
.scn-edmund-pretends-to-defend .desk {
  position: absolute;
  bottom: 35%;
  left: 20%;
  width: 120px;
  height: 20px;
  background: linear-gradient(90deg, #5c4036 0%, #3a2a24 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: epd-desk 8s ease-in-out infinite alternate;
}
.scn-edmund-pretends-to-defend .candle {
  position: absolute;
  bottom: 42%;
  left: 30%;
  width: 8px;
  height: 30px;
  background: linear-gradient(180deg, #f0c068 0%, #b08040 70%, #5a3a1a 100%);
  border-radius: 2px 2px 4px 4px;
  transform-origin: bottom center;
  animation: epd-candle 3s ease-in-out infinite alternate;
}
.scn-edmund-pretends-to-defend .glow-candle {
  position: absolute;
  bottom: 40%;
  left: 28%;
  width: 20px;
  height: 40px;
  background: radial-gradient(circle, rgba(240,192,104,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: epd-glow 3s ease-in-out infinite alternate;
}
.scn-edmund-pretends-to-defend .figure-edmund {
  position: absolute;
  bottom: 35%;
  left: 55%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #1a1412 0%, #0f0b0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: epd-figure 6s ease-in-out infinite;
}
.scn-edmund-pretends-to-defend .book {
  position: absolute;
  bottom: 38%;
  left: 22%;
  width: 40px;
  height: 30px;
  background: linear-gradient(180deg, #5c4036 0%, #3a2a24 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: epd-book 10s ease-in-out infinite alternate;
}
.scn-edmund-pretends-to-defend .shadow-figure {
  position: absolute;
  bottom: 35%;
  left: 55%;
  width: 24px;
  height: 50px;
  background: rgba(0,0,0,0.3);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-10px) scaleX(-1);
  filter: blur(4px);
  animation: epd-shadow 6s ease-in-out infinite;
}

@keyframes epd-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes epd-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes epd-candle {
  0% { transform: rotate(-2deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.02); }
  100% { transform: rotate(-1.5deg) scaleY(0.98); }
}
@keyframes epd-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes epd-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(0deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes epd-book {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes epd-shadow {
  0% { opacity: 0.3; transform: translateX(-10px) scaleX(-1) scaleY(1); }
  50% { opacity: 0.5; transform: translateX(-8px) scaleX(-1) scaleY(1.05); }
  100% { opacity: 0.4; transform: translateX(-12px) scaleX(-1) scaleY(0.97); }
}

/* Scene 2: gloucester-fears-nature */
.scn-gloucester-fears-nature {
  background: linear-gradient(180deg, #1a1215 0%, #100b0d 50%, #0a0608 100%), 
              radial-gradient(ellipse at 50% 100%, #1a1215 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-gloucester-fears-nature .wall-dark {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #241a1c 0%, #100b0d 100%);
  border-bottom: 2px solid #050303;
  animation: gfn-wall 15s ease-in-out infinite alternate;
}
.scn-gloucester-fears-nature .floor-dark {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 45%;
  background: linear-gradient(180deg, #1a1215 0%, #0a0608 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-gloucester-fears-nature .door {
  position: absolute;
  bottom: 30%;
  left: 10%;
  width: 50px;
  height: 80px;
  background: linear-gradient(180deg, #3a2a2c 0%, #1a1215 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  transform-origin: left center;
  animation: gfn-door 12s ease-in-out infinite;
}
.scn-gloucester-fears-nature .figure-gloucester {
  position: absolute;
  bottom: 30%;
  left: 40%;
  width: 28px;
  height: 55px;
  background: linear-gradient(180deg, #2a1e20 0%, #120c0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gfn-figure 4s ease-in-out infinite;
}
.scn-gloucester-fears-nature .candle-flicker {
  position: absolute;
  bottom: 38%;
  left: 60%;
  width: 6px;
  height: 20px;
  background: linear-gradient(180deg, #d08040 0%, #803020 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 12px 4px rgba(200,100,50,0.5);
  animation: gfn-candle 2s ease-in-out infinite alternate;
}
.scn-gloucester-fears-nature .shadow-creep {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 40px;
  height: 60px;
  background: rgba(0,0,0,0.5);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(8px);
  animation: gfn-shadow 6s ease-in-out infinite;
}
.scn-gloucester-fears-nature .table {
  position: absolute;
  bottom: 25%;
  left: 55%;
  width: 80px;
  height: 15px;
  background: linear-gradient(90deg, #2a1e20 0%, #1a1215 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: gfn-table 20s ease-in-out infinite alternate;
}

@keyframes gfn-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes gfn-door {
  0% { transform: rotateY(0deg); }
  25% { transform: rotateY(-15deg); }
  50% { transform: rotateY(0deg); }
  75% { transform: rotateY(10deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes gfn-figure {
  0% { transform: translateY(0) rotate(-3deg); }
  30% { transform: translateY(-2px) rotate(0deg); }
  60% { transform: translateY(0) rotate(3deg); }
  100% { transform: translateY(-1px) rotate(-2deg); }
}
@keyframes gfn-candle {
  0% { transform: rotate(-3deg); opacity: 0.8; }
  25% { transform: rotate(4deg); opacity: 0.9; }
  50% { transform: rotate(-2deg); opacity: 0.7; }
  75% { transform: rotate(5deg); opacity: 1; }
  100% { transform: rotate(-3deg); opacity: 0.8; }
}
@keyframes gfn-shadow {
  0% { transform: translateX(0) scaleY(1); opacity: 0.5; }
  50% { transform: translateX(10px) scaleY(1.1); opacity: 0.7; }
  100% { transform: translateX(-5px) scaleY(0.9); opacity: 0.4; }
}
@keyframes gfn-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

/* Scene 3: edmund-mocks-prophecy */
.scn-edmund-mocks-prophecy {
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 50%, #1a1a0a 100%), 
              radial-gradient(ellipse at 50% 100%, #3a3a2a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-edmund-mocks-prophecy .wall-bright {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-bottom: 2px solid #1a1a0a;
  animation: emp-wall 10s ease-in-out infinite alternate;
}
.scn-edmund-mocks-prophecy .floor-bright {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.2);
}
.scn-edmund-mocks-prophecy .lamp {
  position: absolute;
  bottom: 40%;
  left: 50%;
  width: 10px;
  height: 30px;
  background: linear-gradient(180deg, #c0a060 0%, #806040 100%);
  border-radius: 2px 2px 4px 4px;
  transform-origin: bottom center;
  animation: emp-lamp 4s ease-in-out infinite alternate;
}
.scn-edmund-mocks-prophecy .lamp-glow {
  position: absolute;
  bottom: 35%;
  left: 48%;
  width: 30px;
  height: 50px;
  background: radial-gradient(circle, rgba(192,160,96,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: emp-glow 4s ease-in-out infinite alternate;
}
.scn-edmund-mocks-prophecy .figure-edmund-mock {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 26px;
  height: 52px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: emp-figure 3s ease-in-out infinite;
}
.scn-edmund-mocks-prophecy .book-mock {
  position: absolute;
  bottom: 35%;
  left: 20%;
  width: 30px;
  height: 25px;
  background: linear-gradient(180deg, #5c4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: emp-book 5s ease-in-out infinite;
}
.scn-edmund-mocks-prophecy .shadow-mock {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 26px;
  height: 52px;
  background: rgba(0,0,0,0.3);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(20px) scaleX(-1);
  filter: blur(5px);
  animation: emp-shadow 3s ease-in-out infinite;
}
.scn-edmund-mocks-prophecy .pendulum {
  position: absolute;
  bottom: 50%;
  left: 70%;
  width: 4px;
  height: 40px;
  background: #806040;
  border-radius: 2px;
  transform-origin: top center;
  animation: emp-pendulum 2s ease-in-out infinite alternate;
}

@keyframes emp-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes emp-lamp {
  0% { transform: rotate(-5deg) scaleY(1); }
  25% { transform: rotate(5deg) scaleY(1.03); }
  50% { transform: rotate(-3deg) scaleY(0.98); }
  75% { transform: rotate(6deg) scaleY(1.02); }
  100% { transform: rotate(-4deg) scaleY(1); }
}
@keyframes emp-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.15); }
  100% { opacity: 0.6; transform: scale(0.9); }
}
@keyframes emp-figure {
  0% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-4px) rotate(0deg); }
  50% { transform: translateY(0) rotate(5deg); }
  75% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes emp-book {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes emp-shadow {
  0% { opacity: 0.3; transform: translateX(20px) scaleX(-1) scaleY(1); }
  50% { opacity: 0.5; transform: translateX(18px) scaleX(-1) scaleY(1.08); }
  100% { opacity: 0.4; transform: translateX(22px) scaleX(-1) scaleY(0.95); }
}
@keyframes emp-pendulum {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(30deg); }
  100% { transform: rotate(-25deg); }
}

/* Scene 4: edgar-enters */
.scn-edgar-enters {
  background: linear-gradient(180deg, #2a2420 0%, #1a1614 50%, #0e0c0a 100%), 
              radial-gradient(ellipse at 50% 100%, #2a2420 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-edgar-enters .wall-door {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a322e 0%, #1a1614 100%);
  border-bottom: 2px solid #0a0807;
  animation: eeg-wall 14s ease-in-out infinite alternate;
}
.scn-edgar-enters .floor-door {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #2a2420 0%, #0e0c0a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-edgar-enters .doorway {
  position: absolute;
  bottom: 20%;
  left: 15%;
  width: 60px;
  height: 100px;
  background: linear-gradient(180deg, #1a1614 0%, #0a0807 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  transform-origin: left center;
  animation: eeg-door 8s ease-in-out infinite;
}
.scn-edgar-enters .figure-edgar {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #2a2220 0%, #140f0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eeg-figure 5s ease-in-out infinite;
}
.scn-edgar-enters .cape {
  position: absolute;
  bottom: 25%;
  left: 43%;
  width: 40px;
  height: 30px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 0 50% 50% 50% / 0 60% 60% 60%;
  transform-origin: top center;
  animation: eeg-cape 4s ease-in-out infinite;
}
.scn-edgar-enters .shadow-enter {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 30px;
  height: 60px;
  background: rgba(0,0,0,0.4);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-15px) scaleX(-1);
  filter: blur(6px);
  animation: eeg-shadow 5s ease-in-out infinite;
}
.scn-edgar-enters .chandelier {
  position: absolute;
  top: 5%;
  left: 40%;
  width: 60px;
  height: 20px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: eeg-chandelier 12s ease-in-out infinite alternate;
}
.scn-edgar-enters .chandelier-glow {
  position: absolute;
  top: 10%;
  left: 35%;
  width: 80px;
  height: 40px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.4) 0%, transparent 70%);
  filter: blur(12px);
  animation: eeg-glow 12s ease-in-out infinite alternate;
}

@keyframes eeg-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes eeg-door {
  0% { transform: rotateY(0deg); }
  30% { transform: rotateY(-20deg); }
  60% { transform: rotateY(0deg); }
  100% { transform: rotateY(15deg); }
}
@keyframes eeg-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  20% { transform: translateY(-5px) rotate(0deg); }
  40% { transform: translateY(0) rotate(3deg); }
  60% { transform: translateY(-3px) rotate(-2deg); }
  80% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-1px) rotate(2deg); }
}
@keyframes eeg-cape {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(10deg) scaleY(1.05); }
  50% { transform: rotate(-5deg) scaleY(0.95); }
  75% { transform: rotate(15deg) scaleY(1.02); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes eeg-shadow {
  0% { opacity: 0.3; transform: translateX(-15px) scaleX(-1) scaleY(1); }
  50% { opacity: 0.5; transform: translateX(-12px) scaleX(-1) scaleY(1.1); }
  100% { opacity: 0.4; transform: translateX(-18px) scaleX(-1) scaleY(0.9); }
}
@keyframes eeg-chandelier {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes eeg-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.95); }
}

/* sisters-conspire */
.scn-sisters-conspire {
  background: linear-gradient(180deg, #d4c3a3 0%, #b8a282 40%, #8c6e4a 100%), radial-gradient(ellipse at 80% 30%, #f0e0c0 0%, transparent 70%);
  animation: sc-bg 12s ease-in-out infinite alternate;
}
.scn-sisters-conspire .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b896 60%, #a08060 100%);
  animation: sc-wall 8s ease-in-out infinite alternate;
}
.scn-sisters-conspire .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a4f2e 0%, #4a3320 100%);
  border-top: 4px solid #8a6b44;
  animation: sc-floor 10s ease-in-out infinite alternate;
}
.scn-sisters-conspire .window {
  position: absolute; top: 8%; left: 65%; width: 90px; height: 120px;
  background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #e8dcc8 40%, #b8a282 100%);
  border: 6px solid #5a3e28; border-radius: 6px;
  box-shadow: inset 0 0 40px 8px #fff8e0, 0 0 50px 20px rgba(232,220,200,0.6);
  animation: sc-window 5s ease-in-out infinite alternate;
}
.scn-sisters-conspire .table {
  position: absolute; bottom: 22%; left: 30%; width: 180px; height: 40px;
  background: linear-gradient(180deg, #5a3e28 0%, #3a2818 100%);
  border-radius: 4px; box-shadow: 0 6px 20px rgba(0,0,0,0.5);
}
.scn-sisters-conspire .figure-a {
  position: absolute; bottom: 26%; left: 32%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-figure-a 4s ease-in-out infinite;
}
.scn-sisters-conspire .figure-b {
  position: absolute; bottom: 28%; right: 28%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-figure-b 4.5s ease-in-out infinite;
}
.scn-sisters-conspire .document {
  position: absolute; bottom: 30%; left: 45%; width: 60px; height: 45px;
  background: linear-gradient(135deg, #f5e6c8 0%, #d4c090 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: sc-doc 3s ease-in-out infinite alternate;
}
.scn-sisters-conspire .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0d090 0%, #d4a060 50%, #a06030 100%);
  border-radius: 2px;
  animation: sc-candle 2s ease-in-out infinite alternate;
}
@keyframes sc-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sc-wall { 0% { background-position: 0 0; } 100% { background-position: 0 5px; } }
@keyframes sc-floor { 0% { background-position: 0 0; } 100% { background-position: 0 -3px; } }
@keyframes sc-window { 0% { box-shadow: inset 0 0 30px 6px #fff8e0, 0 0 40px 15px rgba(232,220,200,0.5); } 100% { box-shadow: inset 0 0 50px 10px #fff8e0, 0 0 60px 25px rgba(232,220,200,0.7); } }
@keyframes sc-figure-a { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes sc-figure-b { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-4px) rotate(-1deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes sc-doc { 0% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(-2deg) translateY(-2px); } }
@keyframes sc-candle { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.85; transform: scaleY(1); } }

/* sisters-plan */
.scn-sisters-plan {
  background: linear-gradient(180deg, #d4c3a3 0%, #b8a282 40%, #8c6e4a 100%), radial-gradient(ellipse at 20% 30%, #f0e0c0 0%, transparent 70%);
  animation: sp-bg 14s ease-in-out infinite alternate;
}
.scn-sisters-plan .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e0d0b8 0%, #c0b090 60%, #a08060 100%);
  animation: sp-wall 9s ease-in-out infinite alternate;
}
.scn-sisters-plan .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a4f2e 0%, #4a3320 100%);
  border-top: 3px solid #8a6b44;
  animation: sp-floor 11s ease-in-out infinite alternate;
}
.scn-sisters-plan .window {
  position: absolute; top: 6%; left: 12%; width: 100px; height: 130px;
  background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #e8dcc8 40%, #b8a282 100%);
  border: 5px solid #5a3e28; border-radius: 6px;
  box-shadow: inset 0 0 45px 10px #fff8e0, 0 0 60px 25px rgba(232,220,200,0.6);
  animation: sp-window 6s ease-in-out infinite alternate;
}
.scn-sisters-plan .table {
  position: absolute; bottom: 18%; left: 35%; width: 160px; height: 35px;
  background: linear-gradient(180deg, #5a3e28 0%, #3a2818 100%);
  border-radius: 4px; box-shadow: 0 5px 18px rgba(0,0,0,0.5);
}
.scn-sisters-plan .chair {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a10 100%);
  border-radius: 4px;
}
.scn-sisters-plan .figure-sit {
  position: absolute; bottom: 25%; left: 31%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: sp-figure-sit 4.8s ease-in-out infinite;
}
.scn-sisters-plan .figure-stand {
  position: absolute; bottom: 22%; right: 22%; width: 24px; height: 65px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sp-figure-stand 3.8s ease-in-out infinite;
}
.scn-sisters-plan .map {
  position: absolute; bottom: 24%; left: 40%; width: 80px; height: 55px;
  background: linear-gradient(135deg, #e8d4a0 0%, #c8b080 100%);
  border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  transform: rotate(3deg);
  animation: sp-map 4s ease-in-out infinite alternate;
}
@keyframes sp-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sp-wall { 0% { background-position: 0 0; } 100% { background-position: 0 4px; } }
@keyframes sp-floor { 0% { background-position: 0 0; } 100% { background-position: 0 -2px; } }
@keyframes sp-window { 0% { box-shadow: inset 0 0 35px 8px #fff8e0, 0 0 50px 20px rgba(232,220,200,0.5); } 100% { box-shadow: inset 0 0 55px 12px #fff8e0, 0 0 70px 28px rgba(232,220,200,0.7); } }
@keyframes sp-figure-sit { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes sp-figure-stand { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(-5px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes sp-map { 0% { transform: rotate(3deg) translateY(0); } 100% { transform: rotate(6deg) translateY(-2px); } }

/* item-edmund-soliloquy */
.scn-item-edmund-soliloquy {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2030 40%, #0e0e1a 100%), radial-gradient(ellipse at 50% 80%, #2a1a0e 0%, transparent 60%);
  animation: es-bg 16s ease-in-out infinite alternate;
}
.scn-item-edmund-soliloquy .bg-Dark {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%);
  animation: es-bg-dark 12s ease-in-out infinite alternate;
}
.scn-item-edmund-soliloquy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
  animation: es-floor 9s ease-in-out infinite alternate;
}
.scn-item-edmund-soliloquy .desk {
  position: absolute; bottom: 15%; left: 35%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-item-edmund-soliloquy .candle {
  position: absolute; bottom: 22%; left: 50%; width: 6px; height: 25px;
  background: linear-gradient(180deg, #f0c068 0%, #c08040 60%, #602010 100%);
  border-radius: 2px;
  box-shadow: 0 0 30px 8px rgba(192,128,64,0.4), 0 0 60px 20px rgba(192,128,64,0.15);
  animation: es-candle 3s ease-in-out infinite alternate;
}
.scn-item-edmund-soliloquy .figure-edmund {
  position: absolute; bottom: 16%; left: 42%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: es-figure 5s ease-in-out infinite;
}
.scn-item-edmund-soliloquy .letter {
  position: absolute; bottom: 24%; left: 45%; width: 45px; height: 35px;
  background: linear-gradient(135deg, #d4c090 0%, #b8a070 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-15deg);
  animation: es-letter 4s ease-in-out infinite alternate;
}
@keyframes es-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes es-bg-dark { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes es-floor { 0% { background-position: 0 0; } 100% { background-position: 0 2px; } }
@keyframes es-candle { 0% { opacity: 0.7; transform: scaleY(1); box-shadow: 0 0 20px 5px rgba(192,128,64,0.3); } 50% { opacity: 1; transform: scaleY(1.08); box-shadow: 0 0 40px 12px rgba(192,128,64,0.5); } 100% { opacity: 0.8; transform: scaleY(1); box-shadow: 0 0 25px 6px rgba(192,128,64,0.35); } }
@keyframes es-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(2deg); } 50% { transform: translateX(1px) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes es-letter { 0% { transform: rotate(-15deg) translateY(0); } 100% { transform: rotate(-10deg) translateY(-3px); } }

/* gloucester-enters */
.scn-gloucester-enters {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2030 40%, #0e0e1a 100%), radial-gradient(ellipse at 70% 20%, #2a1a0e 0%, transparent 60%);
  animation: ge-bg 15s ease-in-out infinite alternate;
}
.scn-gloucester-enters .bg-Dark {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%);
  animation: ge-bg-dark 13s ease-in-out infinite alternate;
}
.scn-gloucester-enters .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
  animation: ge-floor 10s ease-in-out infinite alternate;
}
.scn-gloucester-enters .doorway {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 140px;
  background: radial-gradient(ellipse at 50% 60%, #1a0e08 0%, #0a0402 100%);
  border: 4px solid #2a1a10; border-radius: 8px;
  box-shadow: 0 0 30px 6px rgba(0,0,0,0.6);
  animation: ge-door 7s ease-in-out infinite alternate;
}
.scn-gloucester-enters .chair {
  position: absolute; bottom: 18%; left: 50%; width: 24px; height: 35px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 4px;
}
.scn-gloucester-enters .figure-gloucester {
  position: absolute; bottom: 18%; left: 12%; width: 26px; height: 68px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ge-figure-glou 5.5s ease-in-out infinite;
}
.scn-gloucester-enters .figure-edmund {
  position: absolute; bottom: 16%; right: 25%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: ge-figure-ed 4.5s ease-in-out infinite;
}
.scn-gloucester-enters .candle {
  position: absolute; bottom: 24%; right: 20%; width: 6px; height: 22px;
  background: linear-gradient(180deg, #f0c068 0%, #c08040 60%, #602010 100%);
  border-radius: 2px;
  box-shadow: 0 0 25px 6px rgba(192,128,64,0.4), 0 0 50px 16px rgba(192,128,64,0.15);
  animation: ge-candle 3.2s ease-in-out infinite alternate;
}
.scn-gloucester-enters .letter {
  position: absolute; bottom: 26%; right: 22%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #d4c090 0%, #b8a070 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(10deg);
  animation: ge-letter 3.5s ease-in-out infinite alternate;
}
@keyframes ge-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ge-bg-dark { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes ge-floor { 0% { background-position: 0 0; } 100% { background-position: 0 2px; } }
@keyframes ge-door { 0% { opacity: 0.9; box-shadow: 0 0 20px 4px rgba(0,0,0,0.5); } 100% { opacity: 1; box-shadow: 0 0 40px 10px rgba(0,0,0,0.7); } }
@keyframes ge-figure-glou { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ge-figure-ed { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-4px) rotate(-1deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes ge-candle { 0% { opacity: 0.7; transform: scaleY(1); box-shadow: 0 0 15px 4px rgba(192,128,64,0.3); } 50% { opacity: 1; transform: scaleY(1.06); box-shadow: 0 0 35px 10px rgba(192,128,64,0.5); } 100% { opacity: 0.8; transform: scaleY(1); box-shadow: 0 0 20px 5px rgba(192,128,64,0.35); } }
@keyframes ge-letter { 0% { transform: rotate(10deg) translateY(0); } 100% { transform: rotate(14deg) translateY(-3px); } }

.scn-lear-asks-cordelia {
  background:
    linear-gradient(180deg, #d4c4a0 0%, #b8a278 100%),
    radial-gradient(ellipse at 30% 40%, #f0e8d0 0%, transparent 60%);
}
.scn-lear-asks-cordelia .wall-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8dcc4 0%, #c8b898 100%); z-index: 1; animation: lc1-wall 12s ease-in-out infinite alternate;
}
.scn-lear-asks-cordelia .window-left {
  position: absolute; top: 10%; left: 10%; width: 18%; height: 35%; background: radial-gradient(ellipse at 50% 50%, #aaccdd 0%, #7a9aad 100%); border: 4px solid #705840; border-radius: 4px; z-index: 2; box-shadow: inset 0 0 20px rgba(255,255,200,.3); animation: lc1-window 8s ease-in-out infinite alternate;
}
.scn-lear-asks-cordelia .window-right {
  position: absolute; top: 10%; right: 10%; width: 18%; height: 35%; background: radial-gradient(ellipse at 50% 50%, #aaccdd 0%, #7a9aad 100%); border: 4px solid #705840; border-radius: 4px; z-index: 2; box-shadow: inset 0 0 20px rgba(255,255,200,.3); animation: lc1-window 8s ease-in-out infinite alternate-reverse;
}
.scn-lear-asks-cordelia .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #8a7a62 0%, #5a4a32 100%); z-index: 3; box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-lear-asks-cordelia .throne {
  position: absolute; bottom: 20%; left: 20%; width: 90px; height: 120px; background: linear-gradient(180deg, #b09060 0%, #705030 100%); border-radius: 20% 20% 10% 10%; z-index: 4; box-shadow: 0 8px 16px rgba(0,0,0,.4); animation: lc1-throne 15s ease-in-out infinite alternate;
}
.scn-lear-asks-cordelia .figure-lear-same {
  position: absolute; bottom: 20%; left: 22%; width: 60px; height: 100px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; z-index: 5; transform-origin: bottom center; animation: lc1-lear-sit 4s ease-in-out infinite alternate;
}
.scn-lear-asks-cordelia .figure-cordelia {
  position: absolute; bottom: 20%; left: 45%; width: 40px; height: 90px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; z-index: 5; transform-origin: bottom center; animation: lc1-cordelia-stand 5s ease-in-out infinite;
}
.scn-lear-asks-cordelia .curtain-left {
  position: absolute; top: 0; left: 0; width: 8%; height: 100%; background: linear-gradient(90deg, #8a3060 0%, #6a2050 50%, #4a1030 100%); z-index: 6; border-radius: 0 30% 30% 0; filter: drop-shadow(4px 0 6px rgba(0,0,0,.3)); animation: lc1-curtain 10s ease-in-out infinite alternate;
}
.scn-lear-asks-cordelia .curtain-right {
  position: absolute; top: 0; right: 0; width: 8%; height: 100%; background: linear-gradient(270deg, #8a3060 0%, #6a2050 50%, #4a1030 100%); z-index: 6; border-radius: 30% 0 0 30%; filter: drop-shadow(-4px 0 6px rgba(0,0,0,.3)); animation: lc1-curtain 10s ease-in-out infinite alternate-reverse;
}
@keyframes lc1-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes lc1-window { 0% { box-shadow: inset 0 0 10px rgba(255,255,200,.2); } 50% { box-shadow: inset 0 0 30px rgba(255,255,200,.5); } 100% { box-shadow: inset 0 0 15px rgba(255,255,200,.3); } }
@keyframes lc1-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes lc1-lear-sit { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lc1-cordelia-stand { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-2px) rotate(0); } 60% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(-1px) rotate(0); } }
@keyframes lc1-curtain { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

.scn-cordelia-speaks-truth {
  background:
    linear-gradient(180deg, #c4b090 0%, #a08868 100%),
    radial-gradient(ellipse at 40% 30%, #e8dcc0 0%, transparent 50%);
}
.scn-cordelia-speaks-truth .wall-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d8c8a8 0%, #b8a080 100%); z-index: 1; animation: cs1-wall 10s ease-in-out infinite alternate;
}
.scn-cordelia-speaks-truth .window-left {
  position: absolute; top: 10%; left: 10%; width: 18%; height: 35%; background: radial-gradient(ellipse at 50% 50%, #9bbdd4 0%, #6a8a9d 100%); border: 4px solid #604830; border-radius: 4px; z-index: 2; box-shadow: inset 0 0 20px rgba(255,255,200,.2); animation: cs1-window 6s ease-in-out infinite alternate;
}
.scn-cordelia-speaks-truth .window-right {
  position: absolute; top: 10%; right: 10%; width: 18%; height: 35%; background: radial-gradient(ellipse at 50% 50%, #9bbdd4 0%, #6a8a9d 100%); border: 4px solid #604830; border-radius: 4px; z-index: 2; box-shadow: inset 0 0 20px rgba(255,255,200,.2); animation: cs1-window 6s ease-in-out infinite alternate-reverse;
}
.scn-cordelia-speaks-truth .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #7a6a52 0%, #4a3a22 100%); z-index: 3; box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
}
.scn-cordelia-speaks-truth .throne {
  position: absolute; bottom: 20%; left: 20%; width: 90px; height: 120px; background: linear-gradient(180deg, #a08050 0%, #604020 100%); border-radius: 20% 20% 10% 10%; z-index: 4; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: cs1-throne 12s ease-in-out infinite alternate;
}
.scn-cordelia-speaks-truth .figure-lean-lear {
  position: absolute; bottom: 20%; left: 22%; width: 55px; height: 100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%; z-index: 5; transform-origin: bottom center; animation: cs1-lear-lean 3s ease-in-out infinite;
}
.scn-cordelia-speaks-truth .figure-cordelia-still {
  position: absolute; bottom: 20%; left: 45%; width: 38px; height: 85px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; z-index: 5; transform-origin: bottom center; animation: cs1-cordelia-still 4s ease-in-out infinite alternate;
}
.scn-cordelia-speaks-truth .curtain-left {
  position: absolute; top: 0; left: 0; width: 8%; height: 100%; background: linear-gradient(90deg, #7a2a50 0%, #5a1a3a 50%, #3a0a20 100%); z-index: 6; border-radius: 0 30% 30% 0; filter: drop-shadow(4px 0 8px rgba(0,0,0,.4)); animation: cs1-curtain 8s ease-in-out infinite alternate;
}
.scn-cordelia-speaks-truth .curtain-right {
  position: absolute; top: 0; right: 0; width: 8%; height: 100%; background: linear-gradient(270deg, #7a2a50 0%, #5a1a3a 50%, #3a0a20 100%); z-index: 6; border-radius: 30% 0 0 30%; filter: drop-shadow(-4px 0 8px rgba(0,0,0,.4)); animation: cs1-curtain 8s ease-in-out infinite alternate-reverse;
}
@keyframes cs1-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes cs1-window { 0% { box-shadow: inset 0 0 10px rgba(255,255,200,.15); } 50% { box-shadow: inset 0 0 25px rgba(255,255,200,.4); } 100% { box-shadow: inset 0 0 15px rgba(255,255,200,.2); } }
@keyframes cs1-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cs1-lear-lean { 0% { transform: translateX(0) rotate(0) scale(1); } 30% { transform: translateX(3px) rotate(2deg) scale(1.02); } 60% { transform: translateX(0) rotate(-1deg) scale(1); } 100% { transform: translateX(2px) rotate(1deg) scale(1); } }
@keyframes cs1-cordelia-still { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(0); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cs1-curtain { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.03) translateX(2px); } 100% { transform: scaleY(1) translateX(0); } }

.scn-lear-cordelia-dialogue {
  background:
    linear-gradient(180deg, #c8b898 0%, #a08868 100%),
    radial-gradient(ellipse at 50% 50%, #e0d0b0 0%, transparent 60%);
}
.scn-lear-cordelia-dialogue .wall-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d4c4a4 0%, #b09878 100%); z-index: 1; animation: lcd-wall 10s ease-in-out infinite alternate;
}
.scn-lear-cordelia-dialogue .window-left {
  position: absolute; top: 10%; left: 10%; width: 18%; height: 35%; background: radial-gradient(ellipse at 50% 50%, #9bbcd4 0%, #6a8a9d 100%); border: 4px solid #604830; border-radius: 4px; z-index: 2; box-shadow: inset 0 0 20px rgba(255,255,200,.2); animation: lcd-window 6s ease-in-out infinite alternate;
}
.scn-lear-cordelia-dialogue .window-right {
  position: absolute; top: 10%; right: 10%; width: 18%; height: 35%; background: radial-gradient(ellipse at 50% 50%, #9bbcd4 0%, #6a8a9d 100%); border: 4px solid #604830; border-radius: 4px; z-index: 2; box-shadow: inset 0 0 20px rgba(255,255,200,.2); animation: lcd-window 6s ease-in-out infinite alternate-reverse;
}
.scn-lear-cordelia-dialogue .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #7a6a52 0%, #4a3a22 100%); z-index: 3; box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
}
.scn-lear-cordelia-dialogue .throne {
  position: absolute; bottom: 20%; left: 20%; width: 90px; height: 120px; background: linear-gradient(180deg, #a08050 0%, #604020 100%); border-radius: 20% 20% 10% 10%; z-index: 4; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: lcd-throne 10s ease-in-out infinite alternate;
}
.scn-lear-cordelia-dialogue .figure-lear-point {
  position: absolute; bottom: 20%; left: 20%; width: 60px; height: 100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%; z-index: 5; transform-origin: 50% 80%; animation: lcd-lear-point 2.5s ease-in-out infinite;
}
.scn-lear-cordelia-dialogue .figure-cordelia-hand {
  position: absolute; bottom: 20%; left: 45%; width: 38px; height: 85px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; z-index: 5; transform-origin: bottom center; animation: lcd-cordelia-hand 3s ease-in-out infinite;
}
.scn-lear-cordelia-dialogue .curtain-left {
  position: absolute; top: 0; left: 0; width: 8%; height: 100%; background: linear-gradient(90deg, #7a2a50 0%, #5a1a3a 50%, #3a0a20 100%); z-index: 6; border-radius: 0 30% 30% 0; filter: drop-shadow(4px 0 8px rgba(0,0,0,.4)); animation: lcd-curtain 9s ease-in-out infinite alternate;
}
.scn-lear-cordelia-dialogue .curtain-right {
  position: absolute; top: 0; right: 0; width: 8%; height: 100%; background: linear-gradient(270deg, #7a2a50 0%, #5a1a3a 50%, #3a0a20 100%); z-index: 6; border-radius: 30% 0 0 30%; filter: drop-shadow(-4px 0 8px rgba(0,0,0,.4)); animation: lcd-curtain 9s ease-in-out infinite alternate-reverse;
}
@keyframes lcd-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes lcd-window { 0% { box-shadow: inset 0 0 10px rgba(255,255,200,.15); } 50% { box-shadow: inset 0 0 30px rgba(255,255,200,.45); } 100% { box-shadow: inset 0 0 15px rgba(255,255,200,.2); } }
@keyframes lcd-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lcd-lear-point { 0% { transform: rotate(-3deg) translateY(0); } 30% { transform: rotate(5deg) translateY(-2px); } 60% { transform: rotate(-2deg) translateY(0); } 100% { transform: rotate(3deg) translateY(-1px); } }
@keyframes lcd-cordelia-hand { 0% { transform: translateY(0) rotate(-2deg); } 40% { transform: translateY(-3px) rotate(1deg); } 70% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-2px) rotate(2deg); } }
@keyframes lcd-curtain { 0% { transform: scaleY(1) skewY(0); } 50% { transform: scaleY(1.02) skewY(2deg); } 100% { transform: scaleY(1) skewY(0); } }

.scn-lear-disowns-cordelia {
  background:
    linear-gradient(180deg, #b8a080 0%, #907060 100%),
    radial-gradient(ellipse at 50% 50%, #d4c0a8 0%, transparent 50%);
}
.scn-lear-disowns-cordelia .wall-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); z-index: 1; animation: ldo-wall 8s ease-in-out infinite alternate;
}
.scn-lear-disowns-cordelia .window-left {
  position: absolute; top: 10%; left: 10%; width: 18%; height: 35%; background: radial-gradient(ellipse at 50% 50%, #8aacbd 0%, #5a7a8a 100%); border: 4px solid #504030; border-radius: 4px; z-index: 2; box-shadow: inset 0 0 20px rgba(255,255,200,.15); animation: ldo-window 5s ease-in-out infinite alternate;
}
.scn-lear-disowns-cordelia .window-right {
  position: absolute; top: 10%; right: 10%; width: 18%; height: 35%; background: radial-gradient(ellipse at 50% 50%, #8aacbd 0%, #5a7a8a 100%); border: 4px solid #504030; border-radius: 4px; z-index: 2; box-shadow: inset 0 0 20px rgba(255,255,200,.15); animation: ldo-window 5s ease-in-out infinite alternate-reverse;
}
.scn-lear-disowns-cordelia .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #6a5a42 0%, #3a2a12 100%); z-index: 3; box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-lear-disowns-cordelia .throne {
  position: absolute; bottom: 20%; left: 20%; width: 90px; height: 120px; background: linear-gradient(180deg, #907040 0%, #503020 100%); border-radius: 20% 20% 10% 10%; z-index: 4; box-shadow: 0 8px 16px rgba(0,0,0,.6); animation: ldo-throne 14s ease-in-out infinite alternate;
}
.scn-lear-disowns-cordelia .figure-lear-raise {
  position: absolute; bottom: 20%; left: 20%; width: 58px; height: 105px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%; z-index: 5; transform-origin: bottom center; animation: ldo-lear-raise 2s ease-in-out infinite;
}
.scn-lear-disowns-cordelia .figure-cordelia-kneel {
  position: absolute; bottom: 20%; left: 45%; width: 36px; height: 70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; z-index: 5; transform-origin: bottom center; animation: ldo-cordelia-kneel 4s ease-in-out infinite;
}
.scn-lear-disowns-cordelia .curtain-left {
  position: absolute; top: 0; left: 0; width: 8%; height: 100%; background: linear-gradient(90deg, #6a2040 0%, #4a1028 50%, #2a0010 100%); z-index: 6; border-radius: 0 30% 30% 0; filter: drop-shadow(4px 0 8px rgba(0,0,0,.4)); animation: ldo-curtain 7s ease-in-out infinite alternate;
}
.scn-lear-disowns-cordelia .curtain-right {
  position: absolute; top: 0; right: 0; width: 8%; height: 100%; background: linear-gradient(270deg, #6a2040 0%, #4a1028 50%, #2a0010 100%); z-index: 6; border-radius: 30% 0 0 30%; filter: drop-shadow(-4px 0 8px rgba(0,0,0,.4)); animation: ldo-curtain 7s ease-in-out infinite alternate-reverse;
}
@keyframes ldo-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ldo-window { 0% { box-shadow: inset 0 0 10px rgba(255,255,200,.1); } 50% { box-shadow: inset 0 0 20px rgba(255,255,200,.3); } 100% { box-shadow: inset 0 0 12px rgba(255,255,200,.15); } }
@keyframes ldo-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ldo-lear-raise { 0% { transform: rotate(-5deg) translateY(0); } 30% { transform: rotate(8deg) translateY(-3px); } 60% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(4deg) translateY(-2px); } }
@keyframes ldo-cordelia-kneel { 0% { transform: translateY(0) rotate(0) scale(1); } 50% { transform: translateY(-4px) rotate(-3deg) scale(0.95); } 100% { transform: translateY(0) rotate(0) scale(1); } }
@keyframes ldo-curtain { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.03) translateX(-2px); } 100% { transform: scaleY(1) translateX(0); } }

.scn-edgars-story-3 {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 40%, #b0967a 100%), radial-gradient(ellipse at 30% 10%, #fff2d6 0%, transparent 70%);
  overflow: hidden;
}
.scn-edgars-story-3 .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fcebd5 0%, #e3c8a8 100%);
  animation: es3-sky 12s ease-in-out infinite alternate;
}
.scn-edgars-story-3 .sun {
  position: absolute; top: 12%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff5d0 0%, #ffd48a 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 20px rgba(255,212,138,0.4), 0 0 150px 40px rgba(255,212,138,0.2);
  animation: es3-sunpulse 10s ease-in-out infinite;
}
.scn-edgars-story-3 .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #9c8a7a 0%, #7a6858 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: es3-hills 20s ease-in-out infinite alternate;
}
.scn-edgars-story-3 .tree {
  position: absolute; bottom: 28%; left: 25%; width: 14px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: es3-tree 6s ease-in-out infinite;
}
.scn-edgars-story-3 .figure {
  position: absolute; bottom: 24%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: es3-figure 4s ease-in-out infinite;
}
.scn-edgars-story-3 .teardrop {
  position: absolute; bottom: 38%; left: 46%; width: 4px; height: 8px;
  background: radial-gradient(circle, #c8d8ff 0%, #80a0d0 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  opacity: 0.6;
  animation: es3-tear 3s ease-in-out infinite;
}
.scn-edgars-story-3 .cloud-1 {
  position: absolute; top: 8%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, rgba(255,255,240,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: es3-drift1 40s linear infinite;
}
.scn-edgars-story-3 .cloud-2 {
  position: absolute; top: 18%; right: 5%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,240,0.5) 0%, rgba(255,255,240,0.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: es3-drift2 55s linear infinite reverse;
}
@keyframes es3-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes es3-sunpulse { 0% { transform: scale(1); box-shadow: 0 0 60px 15px rgba(255,212,138,0.4) } 50% { transform: scale(1.05); box-shadow: 0 0 100px 25px rgba(255,212,138,0.5) } 100% { transform: scale(0.98); box-shadow: 0 0 70px 18px rgba(255,212,138,0.35) } }
@keyframes es3-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) scale(1.005) } 100% { transform: translateY(2px) } }
@keyframes es3-tree { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes es3-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-3deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes es3-tear { 0% { transform: translateY(0) scaleY(1); opacity:0.6 } 50% { transform: translateY(10px) scaleY(1.5); opacity:0.3 } 100% { transform: translateY(20px) scaleY(1); opacity:0 } }
@keyframes es3-drift1 { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes es3-drift2 { 0% { transform: translateX(0) } 100% { transform: translateX(-130vw) } }

.scn-kents-revelation {
  background: linear-gradient(180deg, #f2e6d0 0%, #d4bfa0 30%, #b09878 100%), radial-gradient(ellipse at 40% 10%, #ffe8c0 0%, transparent 60%);
  overflow: hidden;
}
.scn-kents-revelation .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fdebd0 0%, #e0c8a8 100%);
  animation: kr-sky 14s ease-in-out infinite alternate;
}
.scn-kents-revelation .sun {
  position: absolute; top: 15%; left: 55%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff5d8 0%, #ffd48a 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 70px 15px rgba(255,212,138,0.5);
  animation: kr-sun 12s ease-in-out infinite;
}
.scn-kents-revelation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8c7a60 0%, #685a48 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 12px 25px rgba(0,0,0,0.3);
  animation: kr-ground 22s ease-in-out infinite alternate;
}
.scn-kents-revelation .figure-kneeling {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2a2a3a 0%, #151520 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kr-kneel 5s ease-in-out infinite;
}
.scn-kents-revelation .figure-standing {
  position: absolute; bottom: 22%; left: 50%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 45% 55% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: kr-stand 6s ease-in-out infinite;
}
.scn-kents-revelation .arms {
  position: absolute; bottom: 40%; left: 45%; width: 30px; height: 8px;
  background: #2a2a3a;
  border-radius: 50%;
  transform: rotate(-25deg);
  animation: kr-arms 3s ease-in-out infinite;
}
.scn-kents-revelation .dust {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: kr-dust 8s ease-in-out infinite;
}
@keyframes kr-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes kr-sun { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.03) translateY(-2px) } 100% { transform: scale(0.98) translateY(1px) } }
@keyframes kr-ground { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.01) } 100% { transform: translateY(2px) scaleY(0.99) } }
@keyframes kr-kneel { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes kr-stand { 0% { transform: translateY(0) } 33% { transform: translateY(-1px) } 66% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes kr-arms { 0%,100% { transform: rotate(-25deg) scaleX(1) } 50% { transform: rotate(-35deg) scaleX(1.2) } }
@keyframes kr-dust { 0% { opacity:0.3; transform: translate(0,0) scale(1) } 50% { opacity:0.1; transform: translate(10px,-5px) scale(1.5) } 100% { opacity:0.3; transform: translate(0,0) scale(1) } }

.scn-deaths-announced {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 40%, #2a1a2e 100%), radial-gradient(ellipse at 50% 10%, #5a3a3a 0%, transparent 70%);
  overflow: hidden;
}
.scn-deaths-announced .bg-dark {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #151525 0%, #0a0a12 100%);
  animation: da-dark 20s ease-in-out infinite alternate;
}
.scn-deaths-announced .sun-harsh {
  position: absolute; top: 5%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe0a0 0%, #cc8840 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 120px 30px rgba(204,136,64,0.5), 0 0 200px 60px rgba(204,136,64,0.2);
  animation: da-sun 15s ease-in-out infinite;
}
.scn-deaths-announced .pillar {
  position: absolute; bottom: 0; left: 30%; width: 20px; height: 70%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.5);
  animation: da-pillar 8s ease-in-out infinite alternate;
}
.scn-deaths-announced .lady-lying {
  position: absolute; bottom: 15%; left: 40%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a5a5a 0%, #3a2a2a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(20deg);
  animation: da-lady 5s ease-in-out infinite;
}
.scn-deaths-announced .figure-knife {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: da-figure 4s ease-in-out infinite;
}
.scn-deaths-announced .blade {
  position: absolute; bottom: 50%; left: 62%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #c0a090 0%, #8a7a6a 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(15deg);
  box-shadow: 0 0 6px rgba(200,150,100,0.4);
  animation: da-blade 3s ease-in-out infinite;
}
.scn-deaths-announced .shadow {
  position: absolute; bottom: 0; left: 35%; width: 60%; height: 10px;
  background: radial-gradient(ellipse, #0a0a12 0%, transparent 100%);
  filter: blur(6px);
  animation: da-shadow 12s ease-in-out infinite alternate;
}
.scn-deaths-announced .drip {
  position: absolute; bottom: 48%; left: 63%; width: 3px; height: 6px;
  background: radial-gradient(circle, #a05040 0%, #702820 100%);
  border-radius: 50%;
  animation: da-drip 2s ease-in-out infinite;
}
@keyframes da-dark { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes da-sun { 0% { transform: scale(1) } 50% { transform: scale(1.02) brightness(1.1) } 100% { transform: scale(0.98) brightness(0.9) } }
@keyframes da-pillar { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(1px) } }
@keyframes da-lady { 0%,100% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(18deg) translateY(-2px) } }
@keyframes da-figure { 0% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-1px) rotate(-2deg) } 66% { transform: translateY(0) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes da-blade { 0% { transform: rotate(15deg) scaleY(1) } 50% { transform: rotate(20deg) scaleY(1.05) } 100% { transform: rotate(15deg) scaleY(1) } }
@keyframes da-shadow { 0% { transform: scaleX(1) opacity:0.6 } 50% { transform: scaleX(1.1) opacity:0.8 } 100% { transform: scaleX(0.95) opacity:0.5 } }
@keyframes da-drip { 0% { transform: translateY(0) scaleY(1); opacity:0.8 } 50% { transform: translateY(15px) scaleY(1.5); opacity:0.4 } 100% { transform: translateY(30px) scaleY(1); opacity:0 } }

.scn-kent-arrives {
  background: linear-gradient(180deg, #eedcc0 0%, #c8b090 30%, #a08870 100%), radial-gradient(ellipse at 20% 10%, #ffebc0 0%, transparent 60%);
  overflow: hidden;
}
.scn-kent-arrives .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f5e6d0 0%, #ddc8a8 100%);
  animation: ka-sky 16s ease-in-out infinite alternate;
}
.scn-kent-arrives .sun {
  position: absolute; top: 10%; left: 30%; width: 55px; height: 55px;
  background: radial-gradient(circle, #fff0c8 0%, #ffd48a 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 90px 20px rgba(255,212,138,0.4);
  animation: ka-sun 14s ease-in-out infinite;
}
.scn-kent-arrives .heath {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a6a50 0%, #5a4a38 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.3);
  animation: ka-heath 24s ease-in-out infinite alternate;
}
.scn-kent-arrives .figure-kent {
  position: absolute; bottom: 18%; left: 35%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ka-kent 5s ease-in-out infinite;
}
.scn-kent-arrives .figure-lear {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #101018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ka-lear 6s ease-in-out infinite;
}
.scn-kent-arrives .staff {
  position: absolute; bottom: 10%; left: 52%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20%;
  transform: rotate(-8deg);
  animation: ka-staff 4s ease-in-out infinite;
}
.scn-kent-arrives .wind-lines {
  position: absolute; top: 25%; left: 10%; width: 80%; height: 2px;
  background: repeating-linear-gradient(90deg, rgba(200,180,150,0.3) 0px, rgba(200,180,150,0.3) 20px, transparent 20px, transparent 40px);
  animation: ka-wind 10s linear infinite;
}
@keyframes ka-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ka-sun { 0% { transform: scale(1) } 50% { transform: scale(1.04) box-shadow: 0 0 110px 25px rgba(255,212,138,0.5) } 100% { transform: scale(0.97) } }
@keyframes ka-heath { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) scale(1.01) } 100% { transform: translateY(3px) } }
@keyframes ka-kent { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ka-lear { 0% { transform: translateY(0) scaleY(1) } 33% { transform: translateY(-1px) scaleY(0.98) } 66% { transform: translateY(1px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ka-staff { 0% { transform: rotate(-8deg) } 50% { transform: rotate(-12deg) translateX(2px) } 100% { transform: rotate(-8deg) } }
@keyframes ka-wind { 0% { transform: translateX(-10%) } 100% { transform: translateX(10%) } }

.scn-palace-intro { background: linear-gradient(180deg, #d4c4a8 0%, #c2b094 40%, #a88e72 100%), radial-gradient(ellipse at 50% 0%, #fef0d0 0%, transparent 70%); }
.scn-palace-intro .bg-deep { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a7a5e 0%, #b8a88a 100%); }
.scn-palace-intro .columns { position:absolute; bottom:0; left:10%; width:8%; height:90%; background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #a89878 100%); border-radius:4px; box-shadow: 0 0 20px rgba(0,0,0,0.1); animation: pi-column 8s ease-in-out infinite alternate; }
.scn-palace-intro .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #b8a088 0%, #d0c0a8 40%, #e0d0b8 100%); border-radius:50% 50% 0 0 / 20% 20% 0 0; }
.scn-palace-intro .light-rays { position:absolute; top:0; left:20%; width:60%; height:100%; background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 80%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: pi-light 12s ease-in-out infinite alternate; }
.scn-palace-intro .throne { position:absolute; bottom:20%; left:45%; width:10%; height:40%; background: linear-gradient(180deg, #b0906a 0%, #7a6040 100%); border-radius:10% 10% 5% 5%; box-shadow: inset 0 -10px 20px #5a4020; transform: translateX(-50%); animation: pi-throne 4s ease-in-out infinite; }
.scn-palace-intro .chandelier { position:absolute; top:8%; left:50%; width:12%; height:6%; background: radial-gradient(ellipse, #f0d080 0%, #c0a060 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #f0d080; animation: pi-chandelier 3s ease-in-out infinite alternate; }
.scn-palace-intro .curtain { position:absolute; top:0; left:2%; width:15%; height:100%; background: linear-gradient(180deg, #b03040 0%, #701820 100%); border-radius:0 0 20% 20%; opacity:0.8; animation: pi-curtain 6s ease-in-out infinite; }
@keyframes pi-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes pi-light { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.03); } 100% { opacity:0.7; transform: scaleY(0.97); } }
@keyframes pi-throne { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(1deg) translateY(-2px); } 75% { transform: translateX(-50%) rotate(-1deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes pi-chandelier { 0% { box-shadow: 0 0 20px 6px #f0d080; } 50% { box-shadow: 0 0 40px 15px #f0d080, 0 0 60px 20px #d0a060; } 100% { box-shadow: 0 0 25px 8px #f0d080; } }
@keyframes pi-curtain { 0% { transform: skewX(0deg); } 50% { transform: skewX(2deg); } 100% { transform: skewX(-1deg); } }

.scn-bastard-edmund-discussion { background: linear-gradient(180deg, #c8b8a0 0%, #a89880 50%, #8a7860 100%), radial-gradient(ellipse at 50% 100%, #d0c0a8 0%, transparent 70%); }
.scn-bastard-edmund-discussion .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #b8a898 0%, #987868 100%); border-radius:20% 20% 0 0; }
.scn-bastard-edmund-discussion .figure-left { position:absolute; bottom:30%; left:15%; width:12%; height:45%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: be-figL 4s ease-in-out infinite; }
.scn-bastard-edmund-discussion .figure-right { position:absolute; bottom:30%; right:15%; width:12%; height:42%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: be-figR 4.5s ease-in-out infinite; animation-delay: 0.5s; }
.scn-bastard-edmund-discussion .table { position:absolute; bottom:25%; left:40%; width:20%; height:8%; background: linear-gradient(180deg, #6a4a30 0%, #4a2a10 100%); border-radius:10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-bastard-edmund-discussion .candle { position:absolute; bottom:35%; left:48%; width:2%; height:12%; background: linear-gradient(180deg, #f0e0c0 0%, #c0a070 100%); border-radius:10%; box-shadow: 0 0 20px 6px #f0d080; animation: be-candle 2s ease-in-out infinite alternate; }
.scn-bastard-edmund-discussion .shadow-left { position:absolute; bottom:20%; left:8%; width:20%; height:50%; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%); animation: be-shadL 5s ease-in-out infinite; }
.scn-bastard-edmund-discussion .shadow-right { position:absolute; bottom:20%; right:8%; width:20%; height:50%; background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 100%); animation: be-shadR 4s ease-in-out infinite; animation-delay: 1s; }
@keyframes be-figL { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(2deg); } 66% { transform: translateX(-1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes be-figR { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-2px) rotate(1deg); } 66% { transform: translateX(1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes be-candle { 0% { opacity:0.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); box-shadow: 0 0 30px 10px #f0d080; } 100% { opacity:0.85; transform: scaleY(0.98); } }
@keyframes be-shadL { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(3px) scale(0.95); } 100% { transform: translateX(0) scale(1); } }
@keyframes be-shadR { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-3px) scale(0.95); } 100% { transform: translateX(0) scale(1); } }

.scn-lear-division-kingdom { background: linear-gradient(180deg, #d8c8b0 0%, #c0b098 40%, #a09078 100%), radial-gradient(ellipse at 50% 0%, #eee0c0 0%, transparent 70%); }
.scn-lear-division-kingdom .bg-arch { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c0b098 0%, #b0a088 100%); border-radius:80% 80% 0 0 / 60% 60% 0 0; }
.scn-lear-division-kingdom .floor-tile { position:absolute; bottom:0; left:0; right:0; height:20%; background: repeating-conic-gradient(#b8a088 0% 25%, #a89078 0% 50%) 0 0 / 60px 60px; opacity:0.6; }
.scn-lear-division-kingdom .throne-king { position:absolute; bottom:20%; left:50%; width:18%; height:55%; background: linear-gradient(180deg, #806040 0%, #503020 100%); border-radius:15% 15% 5% 5%; transform: translateX(-50%); box-shadow: 0 8px 20px rgba(0,0,0,0.4); animation: ld-throne 6s ease-in-out infinite; }
.scn-lear-division-kingdom .king { position:absolute; bottom:35%; left:50%; width:8%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform: translateX(-50%); animation: ld-king 5s ease-in-out infinite; }
.scn-lear-division-kingdom .map { position:absolute; bottom:8%; left:30%; width:40%; height:12%; background: linear-gradient(135deg, #d0c098 0%, #b8a070 50%, #907858 100%); border-radius:4px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: ld-map 10s ease-in-out infinite; }
.scn-lear-division-kingdom .crown { position:absolute; bottom:45%; left:45%; width:10%; height:6%; background: radial-gradient(ellipse, #f0d080 0%, #c0a050 80%); border-radius:50%; box-shadow: 0 0 20px 5px #f0d080; animation: ld-crown 3s ease-in-out infinite alternate; }
.scn-lear-division-kingdom .courtier-a { position:absolute; bottom:20%; left:10%; width:8%; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: ld-courtA 4.5s ease-in-out infinite; }
.scn-lear-division-kingdom .courtier-b { position:absolute; bottom:20%; right:10%; width:8%; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: ld-courtB 4s ease-in-out infinite; animation-delay: 0.8s; }
@keyframes ld-throne { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 33% { transform: translateX(-50%) scale(0.98) rotate(0.5deg); } 66% { transform: translateX(-50%) scale(1.01) rotate(-0.5deg); } 100% { transform: translateX(-50%) scale(1) rotate(0deg); } }
@keyframes ld-king { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 20% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 80% { transform: translateX(-50%) translateY(2px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes ld-map { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(0.98); } 100% { transform: rotate(-7deg) scale(1.02); } }
@keyframes ld-crown { 0% { box-shadow: 0 0 15px 3px #f0d080; opacity:0.8; } 50% { box-shadow: 0 0 30px 10px #f0d080, 0 0 40px 15px #d0a060; opacity:1; } 100% { box-shadow: 0 0 20px 5px #f0d080; opacity:0.9; } }
@keyframes ld-courtA { 0% { transform: rotate(0deg); } 33% { transform: rotate(4deg); } 66% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes ld-courtB { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-3deg) translateX(-2px); } 75% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); } }

.scn-item-map-kingdom { background: linear-gradient(180deg, #c8b898 0%, #b8a888 40%, #a89878 100%), radial-gradient(ellipse at 50% 0%, #eee0c8 0%, transparent 70%); }
.scn-item-map-kingdom .bg-shield { position:absolute; inset:0 0 15% 0; background: linear-gradient(135deg, #a88a70 0%, #c0a888 100%); border-radius:0 0 30% 30%; }
.scn-item-map-kingdom .table-map { position:absolute; bottom:10%; left:15%; width:70%; height:50%; background: linear-gradient(180deg, #8a7040 0%, #5a4020 100%); border-radius:10px; box-shadow: 0 8px 20px rgba(0,0,0,0.6); transform: rotate(3deg); }
.scn-item-map-kingdom .parchment { position:absolute; bottom:25%; left:25%; width:50%; height:30%; background: linear-gradient(135deg, #f0e0c0 0%, #d0c098 50%, #b8a070 100%); border-radius:4px; transform: rotate(-8deg); box-shadow: inset 0 0 10px rgba(0,0,0,0.1); animation: im-map 8s ease-in-out infinite; }
.scn-item-map-kingdom .crown-gold { position:absolute; bottom:45%; left:35%; width:20%; height:15%; background: radial-gradient(ellipse, #f0d080 0%, #c0a050 80%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 30px 8px #f0d080; animation: im-crown 10s ease-in-out infinite alternate; }
.scn-item-map-kingdom .hand-point { position:absolute; bottom:30%; left:48%; width:6%; height:20%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: im-hand 5s ease-in-out infinite; }
.scn-item-map-kingdom .scepter { position:absolute; bottom:35%; right:20%; width:2%; height:35%; background: linear-gradient(180deg, #f0d080 0%, #c0a050 100%); border-radius:10%; transform: rotate(15deg); box-shadow: 0 0 10px 2px #f0d080; animation: im-scepter 6s ease-in-out infinite; }
.scn-item-map-kingdom .inkwell { position:absolute; bottom:20%; right:20%; width:6%; height:6%; background: radial-gradient(circle, #2a1a0a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: im-ink 4s ease-in-out infinite; }
@keyframes im-map { 0% { transform: rotate(-8deg) scale(1); } 33% { transform: rotate(-6deg) scale(0.98); } 66% { transform: rotate(-10deg) scale(1.02); } 100% { transform: rotate(-8deg) scale(1); } }
@keyframes im-crown { 0% { box-shadow: 0 0 20px 5px #f0d080; transform: scale(1) rotate(0deg); } 33% { box-shadow: 0 0 40px 15px #f0d080; transform: scale(1.02) rotate(5deg); } 66% { box-shadow: 0 0 25px 8px #f0d080; transform: scale(0.98) rotate(-5deg); } 100% { box-shadow: 0 0 20px 5px #f0d080; transform: scale(1) rotate(0deg); } }
@keyframes im-hand { 0% { transform: rotate(0deg) translateX(0); } 33% { transform: rotate(10deg) translateX(4px); } 66% { transform: rotate(-5deg) translateX(-2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes im-scepter { 0% { transform: rotate(15deg) scale(1); opacity:0.9; } 50% { transform: rotate(20deg) scale(1.05); opacity:1; } 100% { transform: rotate(10deg) scale(0.95); opacity:0.85; } }
@keyframes im-ink { 0% { transform: scale(1); } 25% { transform: scale(0.95); } 75% { transform: scale(1.05); } 100% { transform: scale(1); } }

.scn-edmund-deceives-edgar {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2240 40%, #4a3a5e 100%), radial-gradient(ellipse at 30% 70%, #3a2a4a 0%, transparent 60%);
}
.scn-edmund-deceives-edgar .bg-wall-left {
  position: absolute; inset: 0 50% 0 0; background: linear-gradient(180deg, #1e1a2c 0%, #2a2038 100%); animation: edde-wall 8s ease-in-out infinite alternate;
}
.scn-edmund-deceives-edgar .bg-wall-right {
  position: absolute; inset: 0 0 0 50%; background: linear-gradient(180deg, #1a1628 0%, #241c34 100%); animation: edde-wall 8s ease-in-out infinite alternate-reverse;
}
.scn-edmund-deceives-edgar .bg-floor {
  position: absolute; inset: 60% 0 0 0; background: linear-gradient(180deg, #2a2030 0%, #1a1220 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 4px 20px rgba(0,0,0,0.6); animation: edde-floor 12s ease-in-out infinite;
}
.scn-edmund-deceives-edgar .figure-edmund {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 70px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1220 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: edde-figure-left 4s ease-in-out infinite;
}
.scn-edmund-deceives-edgar .figure-edgar {
  position: absolute; bottom: 22%; left: 55%; width: 28px; height: 65px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1220 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: edde-figure-right 4s ease-in-out infinite;
}
.scn-edmund-deceives-edgar .sword-edmund {
  position: absolute; bottom: 40%; left: 35%; width: 4px; height: 50px; background: linear-gradient(180deg, #7a7a8a 0%, #3a3a4a 100%); transform: rotate(-15deg); transform-origin: bottom; box-shadow: 0 0 4px rgba(120,120,140,0.3); animation: edde-sword 2s ease-in-out infinite alternate;
}
.scn-edmund-deceives-edgar .blood-drip {
  position: absolute; bottom: 55%; left: 32%; width: 4px; height: 12px; background: linear-gradient(180deg, #6a1a2a 0%, #4a101a 100%); border-radius: 0 0 50% 50%; animation: edde-drip 3s ease-in-out infinite;
}
.scn-edmund-deceives-edgar .candle-glow {
  position: absolute; bottom: 45%; left: 45%; width: 12px; height: 12px; background: radial-gradient(circle, #f0c080 0%, #d09050 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #d09050; animation: edde-candle 3s ease-in-out infinite alternate;
}
.scn-edmund-deceives-edgar .shadow-stripe {
  position: absolute; inset: 0; background: linear-gradient(90deg, transparent 30%, rgba(0,0,0,0.3) 50%, transparent 70%); animation: edde-stripe 8s ease-in-out infinite alternate;
}
@keyframes edde-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes edde-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes edde-figure-left { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes edde-figure-right { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes edde-sword { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(-15deg); } }
@keyframes edde-drip { 0% { transform: translateY(0) scaleY(1); opacity: 0.8; } 50% { transform: translateY(4px) scaleY(1.2); opacity: 1; } 100% { transform: translateY(0) scaleY(1); opacity: 0.6; } }
@keyframes edde-candle { 0% { box-shadow: 0 0 20px 5px #c08040; } 50% { box-shadow: 0 0 40px 15px #d09050; } 100% { box-shadow: 0 0 25px 8px #b07030; } }
@keyframes edde-stripe { 0% { transform: translateX(-5%); } 50% { transform: translateX(5%); } 100% { transform: translateX(-5%); } }

.scn-edmund-frames-edgar {
  background: linear-gradient(180deg, #1a0a0a 0%, #2c1a10 40%, #4a2a1a 100%), radial-gradient(ellipse at 60% 70%, #4a2a1a 0%, transparent 70%);
}
.scn-edmund-frames-edgar .bg-hearth {
  position: absolute; inset: 50% 20% 0 20%; background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%); border-radius: 20% 20% 0 0; animation: effr-hearth 6s ease-in-out infinite alternate;
}
.scn-edmund-frames-edgar .bg-wall {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,0.5); animation: effr-wall 10s ease-in-out infinite;
}
.scn-edmund-frames-edgar .figure-edmund-talk {
  position: absolute; bottom: 25%; left: 35%; width: 28px; height: 65px; background: linear-gradient(180deg, #3a2a20 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: effr-edmund 5s ease-in-out infinite;
}
.scn-edmund-frames-edgar .figure-gloucester {
  position: absolute; bottom: 25%; left: 55%; width: 32px; height: 68px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: effr-gloucester 5s ease-in-out infinite alternate;
}
.scn-edmund-frames-edgar .letter-scroll {
  position: absolute; bottom: 45%; left: 42%; width: 20px; height: 12px; background: linear-gradient(180deg, #b89a6a 0%, #8a6a3a 100%); border-radius: 2px; transform: rotate(10deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: effr-letter 8s ease-in-out infinite;
}
.scn-edmund-frames-edgar .fire-flames {
  position: absolute; bottom: 45%; left: 25%; width: 30px; height: 40px; background: linear-gradient(180deg, #f0a040 0%, #d07020 40%, #8a3a10 100%); border-radius: 40% 60% 0 0; filter: blur(4px); animation: effr-flame 1s ease-in-out infinite alternate;
}
.scn-edmund-frames-edgar .fire-glow {
  position: absolute; inset: 40% 20% 0 20%; background: radial-gradient(ellipse at 25% 60%, #f0a040 0%, transparent 60%); animation: effr-glow 4s ease-in-out infinite alternate;
}
.scn-edmund-frames-edgar .table {
  position: absolute; bottom: 22%; left: 30%; width: 60px; height: 10px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: effr-table 10s ease-in-out infinite;
}
.scn-edmund-frames-edgar .inkwell {
  position: absolute; bottom: 30%; left: 48%; width: 6px; height: 8px; background: #1a1a2a; border-radius: 50% 50% 10% 10%; box-shadow: 0 0 4px rgba(0,0,0,0.6); animation: effr-ink 2s ease-in-out infinite;
}
@keyframes effr-hearth { 0% { box-shadow: inset 0 0 20px #3a1a0a; } 50% { box-shadow: inset 0 0 40px #5a2a10; } 100% { box-shadow: inset 0 0 20px #3a1a0a; } }
@keyframes effr-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes effr-edmund { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes effr-gloucester { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes effr-letter { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes effr-flame { 0% { transform: scaleY(0.9) translateY(0); } 50% { transform: scaleY(1.2) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes effr-glow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes effr-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes effr-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-gloucester-orders-pursuit {
  background: linear-gradient(180deg, #1a0a0a 0%, #2c1410 50%, #4a1a12 100%), radial-gradient(ellipse at 50% 80%, #5a2a1a 0%, transparent 60%);
}
.scn-gloucester-orders-pursuit .bg-arch-left {
  position: absolute; inset: 0 50% 40% 0; background: linear-gradient(180deg, #2a1410 0%, #1a0a08 100%); border-radius: 0 0 60% 0 / 0 0 80% 0; box-shadow: inset -8px 0 20px rgba(0,0,0,0.5); animation: glor-arch 10s ease-in-out infinite alternate;
}
.scn-gloucester-orders-pursuit .bg-arch-right {
  position: absolute; inset: 0 0 40% 50%; background: linear-gradient(180deg, #2a1410 0%, #1a0a08 100%); border-radius: 0 0 0 60% / 0 0 0 80%; box-shadow: inset 8px 0 20px rgba(0,0,0,0.5); animation: glor-arch 10s ease-in-out infinite alternate-reverse;
}
.scn-gloucester-orders-pursuit .bg-floor-stone {
  position: absolute; inset: 60% 0 0 0; background: linear-gradient(180deg, #3a1a12 0%, #1a0a08 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 20px rgba(0,0,0,0.6); animation: glor-floor 12s ease-in-out infinite;
}
.scn-gloucester-orders-pursuit .figure-gloucester-order {
  position: absolute; bottom: 25%; left: 25%; width: 34px; height: 72px; background: linear-gradient(180deg, #3a2218 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: glor-gloucester 6s ease-in-out infinite;
}
.scn-gloucester-orders-pursuit .figure-servant {
  position: absolute; bottom: 28%; left: 55%; width: 26px; height: 60px; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.95); transform-origin: bottom; animation: glor-servant 6s ease-in-out infinite alternate;
}
.scn-gloucester-orders-pursuit .lantern {
  position: absolute; bottom: 45%; left: 30%; width: 10px; height: 14px; background: linear-gradient(180deg, #d0a060 0%, #a08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #d0a060; animation: glor-lantern 4s ease-in-out infinite alternate;
}
.scn-gloucester-orders-pursuit .torch-flame {
  position: absolute; bottom: 40%; left: 65%; width: 8px; height: 20px; background: linear-gradient(180deg, #f0a030 0%, #d07020 40%, #8a3010 100%); border-radius: 50% 50% 0 0; filter: blur(2px); animation: glor-torch 1.5s ease-in-out infinite alternate;
}
.scn-gloucester-orders-pursuit .shadow-pillar {
  position: absolute; inset: 30% 0 0 0; background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, transparent 20%, transparent 80%, rgba(0,0,0,0.3) 100%); animation: glor-pillar 8s ease-in-out infinite alternate;
}
@keyframes glor-arch { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes glor-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes glor-gloucester { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes glor-servant { 0% { transform: scale(0.95) translateX(0); } 25% { transform: scale(0.92) translateX(-3px); } 50% { transform: scale(0.95) translateX(0); } 75% { transform: scale(0.94) translateX(2px); } 100% { transform: scale(0.95) translateX(0); } }
@keyframes glor-lantern { 0% { box-shadow: 0 0 15px 4px #c09040; } 50% { box-shadow: 0 0 30px 10px #d0a060; } 100% { box-shadow: 0 0 20px 6px #b08030; } }
@keyframes glor-torch { 0% { transform: scaleY(0.8) translateY(0); opacity: 0.8; } 50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.9) translateY(0); opacity: 0.7; } }
@keyframes glor-pillar { 0% { transform: translateX(-2%); } 50% { transform: translateX(2%); } 100% { transform: translateX(-2%); } }

.scn-gloucester-castle-plot {
  background: linear-gradient(180deg, #1a1420 0%, #2c1c2a 50%, #4a2a3a 100%), radial-gradient(ellipse at 40% 50%, #3a2230 0%, transparent 70%);
}
.scn-gloucester-castle-plot .bg-wall-castle {
  position: absolute; inset: 0 0 0 0; background: linear-gradient(90deg, #1a1220 0%, #2a1c2a 50%, #1a1220 100%); box-shadow: inset 0 0 30px rgba(0,0,0,0.5); animation: glcp-wall 10s ease-in-out infinite alternate;
}
.scn-gloucester-castle-plot .bg-table {
  position: absolute; bottom: 20%; left: 20%; width: 70%; height: 14px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: glcp-table 8s ease-in-out infinite;
}
.scn-gloucester-castle-plot .figure-mystery {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 65px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1018 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: glcp-fig1 5s ease-in-out infinite;
}
.scn-gloucester-castle-plot .figure-councilor {
  position: absolute; bottom: 25%; left: 55%; width: 32px; height: 68px; background: linear-gradient(180deg, #3a2a20 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: glcp-fig2 5s ease-in-out infinite alternate;
}
.scn-gloucester-castle-plot .candle-light {
  position: absolute; bottom: 40%; left: 48%; width: 8px; height: 16px; background: linear-gradient(180deg, #f0c080 0%, #d0a060 100%); border-radius: 20% 20% 4px 4px; box-shadow: 0 0 30px 12px #d0a060; animation: glcp-candle 3s ease-in-out infinite alternate;
}
.scn-gloucester-castle-plot .map-scroll {
  position: absolute; bottom: 32%; left: 38%; width: 30px; height: 4px; background: linear-gradient(180deg, #c8a86a 0%, #a08040 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: glcp-map 10s ease-in-out infinite;
}
.scn-gloucester-castle-plot .dagger {
  position: absolute; bottom: 38%; left: 42%; width: 3px; height: 24px; background: linear-gradient(180deg, #7a7a8a 0%, #4a4a5a 100%); transform: rotate(25deg); transform-origin: top; border-radius: 0 0 2px 2px; box-shadow: 0 0 4px rgba(120,120,140,0.2); animation: glcp-dagger 2s ease-in-out infinite alternate;
}
.scn-gloucester-castle-plot .shadow-corner {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 80% 80%, rgba(0,0,0,0.4) 0%, transparent 50%); animation: glcp-shadow 8s ease-in-out infinite alternate;
}
@keyframes glcp-wall { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes glcp-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes glcp-fig1 { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes glcp-fig2 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes glcp-candle { 0% { box-shadow: 0 0 20px 6px #c09040; opacity: 0.8; } 50% { box-shadow: 0 0 40px 14px #d0a060; opacity: 1; } 100% { box-shadow: 0 0 25px 8px #b08030; opacity: 0.9; } }
@keyframes glcp-map { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes glcp-dagger { 0% { transform: rotate(20deg) scaleY(1); } 50% { transform: rotate(30deg) scaleY(0.9); } 100% { transform: rotate(25deg) scaleY(1); } }
@keyframes glcp-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }

/* scene: item-fools-coxcomb */
.scn-item-fools-coxcomb {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #e8d5a8 40%, #d4b884 100%),
    radial-gradient(ellipse at 50% 20%, #fff5e0 0%, transparent 70%);
}
.scn-item-fools-coxcomb .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #ecdcc0 0%, #dccaa8 100%);
}
.scn-item-fools-coxcomb .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #c8b48a 0%, #b09870 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-item-fools-coxcomb .cap-dome {
  position:absolute; bottom:40%; left:50%; width:70px; height:60px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #d46a3a 0%, #b84d2a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: inset 0 -10px 15px rgba(0,0,0,0.3);
  animation: fcc-bounce 2s ease-in-out infinite;
}
.scn-item-fools-coxcomb .cap-brim {
  position:absolute; bottom:40%; left:50%; width:90px; height:12px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #f2c078 0%, #dca45a 100%);
  border-radius: 50% 50% 30% 30% / 100% 100% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: fcc-sway 3s ease-in-out infinite;
}
.scn-item-fools-coxcomb .cap-bell {
  position:absolute; width:12px; height:12px; border-radius:50%;
  background: radial-gradient(circle at 40% 40%, #e8b030 0%, #c88a18 100%);
  box-shadow: 0 0 6px 2px rgba(200,138,24,0.4);
  animation: fcc-ring 0.8s ease-in-out infinite alternate;
}
.scn-item-fools-coxcomb .bell-1 { bottom:44%; left:calc(50% - 20px); }
.scn-item-fools-coxcomb .bell-2 { bottom:44%; left:calc(50% + 8px); }
.scn-item-fools-coxcomb .hand {
  position:absolute; bottom:36%; left:calc(50% + 40px); width:20px; height:30px;
  background: linear-gradient(180deg, #eac090 0%, #d4a07a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-15deg);
  animation: fcc-hand 4s ease-in-out infinite;
}
.scn-item-fools-coxcomb .shadow {
  position:absolute; bottom:30%; left:calc(50% - 30px); width:80px; height:8px;
  background: rgba(0,0,0,0.15);
  border-radius:50%; filter:blur(3px);
  animation: fcc-shadow 2s ease-in-out infinite;
}
@keyframes fcc-bounce {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-6px) scale(1.02); }
  100% { transform: translateX(-50%) translateY(0) scale(1); }
}
@keyframes fcc-sway {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes fcc-ring {
  0% { transform: rotate(-10deg) scale(1); }
  100% { transform: rotate(10deg) scale(1.1); }
}
@keyframes fcc-hand {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(-10deg) translateX(4px); }
  100% { transform: rotate(-15deg) translateX(0); }
}
@keyframes fcc-shadow {
  0% { opacity:0.5; transform: scaleX(1); }
  50% { opacity:0.8; transform: scaleX(0.9); }
  100% { opacity:0.5; transform: scaleX(1); }
}

/* scene: fool-warns-lear */
.scn-fool-warns-lear {
  background: 
    linear-gradient(180deg, #f2e2c0 0%, #dfcba0 50%, #c8b088 100%),
    radial-gradient(ellipse at 70% 30%, #fff4dd 0%, transparent 60%);
}
.scn-fool-warns-lear .bg-room {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #efe0c5 0%, #dccbac 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
}
.scn-fool-warns-lear .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #baa880 0%, #a8946c 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-fool-warns-lear .kennel {
  position:absolute; bottom:34%; left:20%; width:50px; height:40px;
  background: linear-gradient(180deg, #a08060 0%, #7a5e44 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-fool-warns-lear .dog-shadow {
  position:absolute; bottom:36%; left:24%; width:20px; height:14px;
  background: #3a2a1a;
  border-radius: 50% 50% 30% 30% / 50% 50% 20% 20%;
  animation: fwl-peek 3s ease-in-out infinite;
}
.scn-fool-warns-lear .fool-figure {
  position:absolute; bottom:28%; left:55%; width:22px; height:44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: fwl-fool 5s ease-in-out infinite;
}
.scn-fool-warns-lear .whip-crack {
  position:absolute; bottom:40%; left:65%; width:40px; height:4px;
  background: linear-gradient(90deg, #8a6a4a, transparent);
  border-radius: 2px;
  transform-origin: left center;
  animation: fwl-whip 1.2s ease-in-out infinite;
}
@keyframes fwl-peek {
  0% { transform: translateY(0) scale(1); }
  40% { transform: translateY(-2px) scale(0.95); }
  60% { transform: translateY(-2px) scale(0.95); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes fwl-fool {
  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 fwl-whip {
  0% { transform: rotate(-10deg) scaleX(1); opacity:0.7; }
  30% { transform: rotate(10deg) scaleX(1.3); opacity:1; }
  50% { transform: rotate(5deg) scaleX(0.8); opacity:0.5; }
  100% { transform: rotate(-10deg) scaleX(1); opacity:0.7; }
}

/* scene: fool-riddles */
.scn-fool-riddles {
  background: 
    linear-gradient(180deg, #f7ecd0 0%, #ebdbb8 50%, #d4c4a0 100%),
    radial-gradient(ellipse at 50% 40%, #fff9ea 0%, transparent 60%);
}
.scn-fool-riddles .bg-hall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #f2e6d0 0%, #e2d2b8 100%);
}
.scn-fool-riddles .floor-tiles {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: repeating-linear-gradient(90deg, #d4c4a0 0px, #d4c4a0 20px, #c8b890 20px, #c8b890 40px);
  border-radius: 0 0 40% 40% / 0 0 10% 10%;
}
.scn-fool-riddles .figure-sweet {
  position:absolute; bottom:30%; left:30%; width:20px; height:44px;
  background: linear-gradient(180deg, #e8a060 0%, #c87a3a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: frd-sweet 6s ease-in-out infinite;
}
.scn-fool-riddles .figure-bitter {
  position:absolute; bottom:30%; right:30%; width:20px; height:44px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: frd-bitter 6s ease-in-out infinite;
}
.scn-fool-riddles .crown-gone {
  position:absolute; bottom:26%; left:50%; width:30px; height:12px;
  transform:translateX(-50%) rotate(-20deg);
  background: linear-gradient(180deg, #d4a840 0%, #b8862a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: frd-crown 8s ease-in-out infinite;
}
.scn-fool-riddles .mirror-pane {
  position:absolute; top:20%; left:50%; width:60px; height:40px;
  transform:translateX(-50%);
  background: linear-gradient(135deg, rgba(255,255,255,0.4) 0%, rgba(200,200,200,0.1) 50%, rgba(255,255,255,0.2) 100%);
  border-radius: 10% 10% 20% 20% / 10% 10% 20% 20%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: frd-mirror 10s ease-in-out infinite;
}
@keyframes frd-sweet {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-4px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes frd-bitter {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes frd-crown {
  0% { transform: translateX(-50%) rotate(-20deg) translateY(0); opacity:0.8; }
  50% { transform: translateX(-50%) rotate(-15deg) translateY(-4px); opacity:1; }
  100% { transform: translateX(-50%) rotate(-20deg) translateY(0); opacity:0.8; }
}
@keyframes frd-mirror {
  0% { opacity:0.3; transform: translateX(-50%) scale(1); }
  50% { opacity:0.6; transform: translateX(-50%) scale(1.03); }
  100% { opacity:0.3; transform: translateX(-50%) scale(1); }
}

/* scene: fool-calls-lear-fool */
.scn-fool-calls-lear-fool {
  background: 
    linear-gradient(180deg, #f0debe 0%, #dfcba3 50%, #c2aa7a 100%),
    radial-gradient(ellipse at 50% 60%, #fff3dd 0%, transparent 60%);
}
.scn-fool-calls-lear-fool .bg-throne {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #e8d6b4 0%, #d2be96 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
}
.scn-fool-calls-lear-fool .floor-rug {
  position:absolute; bottom:0; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #b09870 0%, #9a825c 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-fool-calls-lear-fool .lear-figure {
  position:absolute; bottom:26%; left:35%; width:24px; height:48px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: fcf-lear 4s ease-in-out infinite;
}
.scn-fool-calls-lear-fool .fool-figure {
  position:absolute; bottom:24%; right:32%; width:20px; height:40px;
  background: linear-gradient(180deg, #c86a3a 0%, #a04a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: fcf-fool 5s ease-in-out infinite;
}
.scn-fool-calls-lear-fool .scroll-titles {
  position:absolute; bottom:30%; left:50%; width:16px; height:24px;
  transform:translateX(-50%) rotate(-10deg);
  background: linear-gradient(180deg, #e8d4a0 0%, #c8ae7a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: fcf-scroll 6s ease-in-out infinite;
}
.scn-fool-calls-lear-fool .fool-cap {
  position:absolute; bottom:28%; right:38%; width:20px; height:16px;
  background: radial-gradient(ellipse at 50% 60%, #d46a3a 0%, #b84d2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%;
  transform: rotate(10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: fcf-cap 3s ease-in-out infinite alternate;
}
@keyframes fcf-lear {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fcf-fool {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fcf-scroll {
  0% { transform: translateX(-50%) rotate(-10deg) translateY(0); opacity:0.8; }
  25% { transform: translateX(-50%) rotate(-12deg) translateY(-3px); opacity:1; }
  75% { transform: translateX(-50%) rotate(-8deg) translateY(2px); opacity:0.6; }
  100% { transform: translateX(-50%) rotate(-10deg) translateY(0); opacity:0.8; }
}
@keyframes fcf-cap {
  0% { transform: rotate(10deg) scale(1); }
  100% { transform: rotate(-5deg) scale(1.1); }
}

/* Scene: before-gloucester-castle (dawn, tense) */
.scn-before-gloucester-castle {
  background:
    linear-gradient(180deg, #4a3a5e 0%, #6a4a4a 30%, #b07a5a 60%, #c88a5a 100%),
    radial-gradient(ellipse at 50% 30%, #d09860 0%, transparent 80%);
}
.scn-before-gloucester-castle .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a2a4e 0%, #7a5a4a 100%);
  animation: bgc-sky 14s ease-in-out infinite alternate;
}
.scn-before-gloucester-castle .ground {
  position: absolute; bottom: 0; height: 45%; left: 0; right: 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,.6);
}
.scn-before-gloucester-castle .castle-wall {
  position: absolute; bottom: 20%; left: 10%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 10% 10% 0 0;
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
}
.scn-before-gloucester-castle .gate {
  position: absolute; bottom: 25%; left: 28%; width: 14%; height: 28%;
  background: #1a0a0a;
  border-radius: 40% 40% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
}
.scn-before-gloucester-castle .figure-kent {
  position: absolute; bottom: 15%; left: 55%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bgc-figure-turn 8s ease-in-out infinite, bgc-shift 3s ease-in-out infinite;
}
.scn-before-gloucester-castle .figure-oswald {
  position: absolute; bottom: 15%; left: 68%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bgc-figure-turn 8s ease-in-out infinite reverse, bgc-shift 3s ease-in-out infinite 1s;
}
.scn-before-gloucester-castle .mud-puddle {
  position: absolute; bottom: 10%; left: 50%; width: 50px; height: 12px;
  background: radial-gradient(ellipse, #3a2a1a 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(3px);
  animation: bgc-pulse 6s ease-in-out infinite;
}
@keyframes bgc-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes bgc-figure-turn { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }
@keyframes bgc-shift { 0% { transform: translateX(0px); } 50% { transform: translateX(4px); } 100% { transform: translateX(0px); } }
@keyframes bgc-pulse { 0%,100% { opacity: .4; } 50% { opacity: .7; } }

/* Scene: mock-trial-goneril (dim interior, candlelit) */
.scn-mock-trial-goneril {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1a1a 50%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 80%);
}
.scn-mock-trial-goneril .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1210 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
}
.scn-mock-trial-goneril .floor {
  position: absolute; bottom: 0; height: 30%; left: 0; right: 0;
  background: linear-gradient(0deg, #1a0a0a 0%, #2a1a12 100%);
  border-radius: 70% 30% 0 0 / 40% 20% 0 0;
}
.scn-mock-trial-goneril .stool {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 20px;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 0 0;
  transform: perspective(200px) rotateX(10deg);
  animation: mtg-stool 6s ease-in-out infinite;
}
.scn-mock-trial-goneril .figure-goneril {
  position: absolute; bottom: 26%; left: 46%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #1a121a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtg-figure-seated 10s ease-in-out infinite, mtg-tremble 2s ease-in-out infinite;
}
.scn-mock-trial-goneril .figure-lear {
  position: absolute; bottom: 24%; left: 37%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtg-figure-standing 12s ease-in-out infinite, mtg-tremble 2s ease-in-out infinite 1s;
}
.scn-mock-trial-goneril .lantern {
  position: absolute; top: 20%; left: 30%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(200,100,40,.6);
  animation: mtg-flicker 3s ease-in-out infinite;
}
.scn-mock-trial-goneril .candle-glow {
  position: absolute; top: 20%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,120,40,.25) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: mtg-glow-pulse 4s ease-in-out infinite;
}
@keyframes mtg-stool { 0%,100% { transform: perspective(200px) rotateX(10deg); } 50% { transform: perspective(200px) rotateX(5deg) translateY(2px); } }
@keyframes mtg-figure-seated { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(3deg) translateX(2px); } 50% { transform: rotate(0deg) translateX(0); } 75% { transform: rotate(-3deg) translateX(-2px); } }
@keyframes mtg-figure-standing { 0%,100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(2deg) translateY(-2px); } 60% { transform: rotate(-1deg) translateY(2px); } 90% { transform: rotate(1deg) translateY(-1px); } }
@keyframes mtg-tremble { 0% { transform: translateX(0); } 25% { transform: translateX(1px); } 50% { transform: translateX(0); } 75% { transform: translateX(-1px); } 100% { transform: translateX(0); } }
@keyframes mtg-flicker { 0%,100% { opacity: .8; box-shadow: 0 0 20px 6px rgba(200,100,40,.5); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(200,100,40,.8); } }
@keyframes mtg-glow-pulse { 0%,100% { opacity: .5; transform: scale(1); } 50% { opacity: .8; transform: scale(1.2); } }

/* Scene: mock-trial-fool (same interior, different focus) */
.scn-mock-trial-fool {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1a1a 50%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 80%);
}
.scn-mock-trial-fool .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1210 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
}
.scn-mock-trial-fool .floor {
  position: absolute; bottom: 0; height: 30%; left: 0; right: 0;
  background: linear-gradient(0deg, #1a0a0a 0%, #2a1a12 100%);
  border-radius: 70% 30% 0 0 / 40% 20% 0 0;
}
.scn-mock-trial-fool .figure-fool {
  position: absolute; bottom: 26%; left: 42%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtf-fool-dance 5s ease-in-out infinite, mtf-tremble 2s ease-in-out infinite;
}
.scn-mock-trial-fool .figure-tom {
  position: absolute; bottom: 24%; left: 55%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtf-tom-cower 8s ease-in-out infinite, mtf-tremble 2s ease-in-out infinite 0.5s;
}
.scn-mock-trial-fool .dog-one {
  position: absolute; bottom: 30%; left: 48%; width: 16px; height: 10px;
  background: radial-gradient(ellipse, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50%;
  animation: mtf-dog-bark 3s ease-in-out infinite;
}
.scn-mock-trial-fool .dog-two {
  position: absolute; bottom: 32%; left: 52%; width: 14px; height: 8px;
  background: radial-gradient(ellipse, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 50%;
  animation: mtf-dog-bark 3s ease-in-out infinite 1s;
}
.scn-mock-trial-fool .dog-three {
  position: absolute; bottom: 29%; left: 56%; width: 12px; height: 7px;
  background: radial-gradient(ellipse, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50%;
  animation: mtf-dog-bark 3s ease-in-out infinite 2s;
}
@keyframes mtf-fool-dance { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(10deg) translateY(-4px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mtf-tom-cower { 0%,100% { transform: scale(1) translateY(0); } 30% { transform: scale(0.95) translateY(4px); } 60% { transform: scale(1) translateY(0); } 80% { transform: scale(0.98) translateY(2px); } }
@keyframes mtf-tremble { 0% { transform: translateX(0); } 25% { transform: translateX(1px); } 50% { transform: translateX(0); } 75% { transform: translateX(-1px); } 100% { transform: translateX(0); } }
@keyframes mtf-dog-bark { 0%,100% { transform: translateY(0) scale(1); } 20% { transform: translateY(-3px) scale(1.1); } 40% { transform: translateY(0) scale(1); } 60% { transform: translateY(-2px) scale(1.05); } 80% { transform: translateY(0) scale(1); } }

/* Scene: king-sleeps (dim interior, plot) */
.scn-king-sleeps {
  background:
    linear-gradient(180deg, #1a0a0a 0%, #2a1212 50%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 40%, #2a1a1a 0%, transparent 70%);
}
.scn-king-sleeps .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1212 0%, #1a0a0a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,.7);
}
.scn-king-sleeps .floor {
  position: absolute; bottom: 0; height: 35%; left: 0; right: 0;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a0a0a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-king-sleeps .litter {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 10%;
  background: linear-gradient(0deg, #3a1a1a 0%, #2a1212 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.8);
  animation: ks-litter-rock 12s ease-in-out infinite;
}
.scn-king-sleeps .figure-king {
  position: absolute; bottom: 16%; left: 38%; width: 22%; height: 8%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ks-king-sleep 8s ease-in-out infinite;
}
.scn-king-sleeps .figure-attendant {
  position: absolute; bottom: 20%; left: 55%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ks-attendant-still 10s ease-in-out infinite, ks-tremble 3s ease-in-out infinite;
}
.scn-king-sleeps .shadow-fig {
  position: absolute; bottom: 20%; left: 28%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #0a0a0a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: ks-shadow-creep 15s ease-in-out infinite, ks-tremble 3s ease-in-out infinite 1.5s;
}
@keyframes ks-litter-rock { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-2deg); } }
@keyframes ks-king-sleep { 0%,100% { transform: translateY(0) scale(1); } 30% { transform: translateY(2px) scale(1.02); } 60% { transform: translateY(0) scale(1); } 80% { transform: translateY(-1px) scale(0.98); } }
@keyframes ks-attendant-still { 0%,100% { transform: rotate(0deg); } 20% { transform: rotate(-3deg) translateX(2px); } 40% { transform: rotate(0deg); } 60% { transform: rotate(3deg) translateX(-2px); } 80% { transform: rotate(0deg); } }
@keyframes ks-shadow-creep { 0%,100% { transform: translateX(0) scale(1); opacity: .6; } 25% { transform: translateX(5px) scale(1.05); opacity: .8; } 50% { transform: translateX(0) scale(1); opacity: .6; } 75% { transform: translateX(-5px) scale(0.95); opacity: .9; } }
@keyframes ks-tremble { 0% { transform: translateX(0); } 25% { transform: translateX(1px); } 50% { transform: translateX(0); } 75% { transform: translateX(-1px); } 100% { transform: translateX(0); } }

/* Scene: lear-cordelia-prisoners (overcast, dark) */
.scn-lear-cordelia-prisoners { 
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%), radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 70%);
}
.scn-lear-cordelia-prisoners .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a3e 0%, transparent 100%); animation: lc-sky 14s ease-in-out infinite alternate; }
.scn-lear-cordelia-prisoners .bars { position:absolute; left:50%; transform:translateX(-50%); width:6px; height:100%; background: linear-gradient(180deg, #4a4a5e, #2a2a3e); box-shadow: -14px 0 0 #4a4a5e, 14px 0 0 #4a4a5e, -28px 0 0 #3a3a4e, 28px 0 0 #3a3a4e; animation: lc-bars 6s ease-in-out infinite; }
.scn-lear-cordelia-prisoners .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); animation: lc-floor 12s ease-in-out infinite; }
.scn-lear-cordelia-prisoners .figure-learn { position:absolute; bottom:25%; left:35%; width:20px; height:44px; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lc-figure-lear 5s ease-in-out infinite; }
.scn-lear-cordelia-prisoners .figure-cordelia { position:absolute; bottom:25%; left:55%; width:16px; height:38px; background: linear-gradient(180deg, #4a4a5e 0%, #2e2e3e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lc-figure-cordelia 5s ease-in-out 1.5s infinite; }
.scn-lear-cordelia-prisoners .light-shard { position:absolute; top:10%; left:20%; width:12px; height:18px; background: radial-gradient(circle, #6a6a7e 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(106,106,126,0.3); animation: lc-light 9s ease-in-out infinite alternate; }
.scn-lear-cordelia-prisoners .dust { position:absolute; top:40%; left:30%; width:4px; height:4px; background: #6a6a7e; border-radius:50%; box-shadow: 30px 20px 0 #5a5a6e, -20px 50px 0 #4a4a5e, 10px -30px 0 #6a6a7e; filter: blur(2px); animation: lc-dust 20s linear infinite; }
.scn-lear-cordelia-prisoners .chain { position:absolute; bottom:20%; left:45%; width:20px; height:8px; background: #3a3a4e; border-radius: 4px; box-shadow: 0 10px 0 #3a3a4e, 0 20px 0 #3a3a4e; animation: lc-chain 3s ease-in-out infinite alternate; }

@keyframes lc-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes lc-bars { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes lc-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes lc-figure-lear { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(-2px) rotate(1deg) } 60% { transform: translateX(1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lc-figure-cordelia { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lc-light { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.7; transform: scale(1.2) } 100% { opacity:0.4; transform: scale(0.9) } }
@keyframes lc-dust { 0% { transform: translateY(0) } 100% { transform: translateY(-60px) } }
@keyframes lc-chain { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(2px) rotate(5deg) } 100% { transform: translateY(0) rotate(-3deg) } }


/* Scene: lears-prison-vision (warm, dim-interior) */
.scn-lears-prison-vision {
  background: linear-gradient(180deg, #2a1a0e 0%, #4a2a1a 40%, #5a3a2a 100%), radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 60%);
}
.scn-lears-prison-vision .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0e 100%); border-radius: 6% 6% 0 0; animation: lp-wall 18s ease-in-out infinite alternate; }
.scn-lears-prison-vision .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: lp-floor 12s ease-in-out infinite; }
.scn-lears-prison-vision .lantern { position:absolute; top:25%; left:50%; width:16px; height:24px; transform:translateX(-50%); background: radial-gradient(circle, #c08040 0%, #6a4a2a 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,0.4); animation: lp-lantern 4s ease-in-out infinite alternate; }
.scn-lears-prison-vision .figure-lear { position:absolute; bottom:25%; left:30%; width:22px; height:46px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lp-figure-lear 6s ease-in-out infinite; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-lears-prison-vision .figure-cordelia { position:absolute; bottom:25%; left:55%; width:18px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lp-figure-cordelia 6s ease-in-out 2s infinite; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-lears-prison-vision .light-orb { position:absolute; top:20%; left:40%; width:8px; height:8px; background: #ffd080; border-radius:50%; box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,0.3); animation: lp-orb 5s ease-in-out infinite; }
.scn-lears-prison-vision .birdcage { position:absolute; top:10%; right:20%; width:20px; height:30px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; border: 2px solid #6a4a2a; box-shadow: 0 0 10px 2px rgba(0,0,0,0.5); animation: lp-cage 8s ease-in-out infinite alternate; }
.scn-lears-prison-vision .shadow-shape { position:absolute; bottom:20%; left:45%; width:40px; height:20px; background: linear-gradient(90deg, transparent, rgba(42,26,14,0.8), transparent); border-radius: 50%; filter: blur(4px); animation: lp-shadow 6s ease-in-out infinite; }

@keyframes lp-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lp-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes lp-lantern { 0% { box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.3); opacity:0.9 } 50% { box-shadow: 0 0 40px 14px #ffd080, 0 0 80px 24px rgba(255,208,128,0.5); opacity:1 } 100% { box-shadow: 0 0 25px 8px #c08040, 0 0 50px 16px rgba(192,128,64,0.35); opacity:0.92 } }
@keyframes lp-figure-lear { 0% { transform: translateX(0) rotate(-2deg) translateY(0) } 25% { transform: translateX(3px) rotate(1deg) translateY(-1px) } 50% { transform: translateX(-1px) rotate(-1deg) translateY(0) } 75% { transform: translateX(2px) rotate(2deg) translateY(-1px) } 100% { transform: translateX(0) rotate(0) translateY(0) } }
@keyframes lp-figure-cordelia { 0% { transform: translateX(0) rotate(0) translateY(0) } 20% { transform: translateX(-2px) rotate(-1deg) translateY(-1px) } 40% { transform: translateX(4px) rotate(2deg) translateY(0) } 60% { transform: translateX(-1px) rotate(-1deg) translateY(-1px) } 80% { transform: translateX(3px) rotate(1deg) translateY(0) } 100% { transform: translateX(0) rotate(0) translateY(0) } }
@keyframes lp-orb { 0% { transform: scale(1) translate(0,0); opacity:0.6 } 50% { transform: scale(1.5) translate(5px,-3px); opacity:1 } 100% { transform: scale(0.8) translate(-3px,2px); opacity:0.5 } }
@keyframes lp-cage { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes lp-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.9) } }


/* Scene: lears-moon-vision (warm, dim-interior) */
.scn-lears-moon-vision {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #4a3a2a 100%), radial-gradient(ellipse at 30% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-lears-moon-vision .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 100%); border-radius: 8% 8% 0 0; animation: lm-wall 20s ease-in-out infinite alternate; }
.scn-lears-moon-vision .window-frame { position:absolute; top:10%; left:40%; width:50px; height:60px; background: linear-gradient(180deg, #4a3a2a, #2a1a0e); border-radius: 4% 4% 8% 8% / 10% 10% 20% 20%; box-shadow: inset 0 0 10px rgba(0,0,0,0.6), 0 0 20px 4px rgba(0,0,0,0.4); animation: lm-frame 10s ease-in-out infinite; }
.scn-lears-moon-vision .moon-disk { position:absolute; top:12%; left:44%; width:18px; height:18px; background: radial-gradient(circle, #f0e8c8 0%, #c8b888 100%); border-radius:50%; box-shadow: 0 0 30px 8px #f0e8c8, 0 0 60px 16px rgba(240,232,200,0.3); animation: lm-moon 12s ease-in-out infinite alternate; }
.scn-lears-moon-vision .figure-lear { position:absolute; bottom:25%; left:25%; width:22px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lm-figure-lear 7s ease-in-out infinite; }
.scn-lears-moon-vision .figure-cordelia { position:absolute; bottom:25%; left:55%; width:18px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lm-figure-cordelia 7s ease-in-out 2.5s infinite; }
.scn-lears-moon-vision .bench { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:40px; height:10px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4%; box-shadow: 0 4px 6px rgba(0,0,0,0.5); animation: lm-bench 15s ease-in-out infinite; }
.scn-lears-moon-vision .moonbeams { position:absolute; top:12%; left:44%; width:18px; height:60px; background: linear-gradient(180deg, rgba(240,232,200,0.3) 0%, transparent 100%); filter: blur(4px); border-radius: 50% 50% 0 0; transform-origin: top center; animation: lm-beams 8s ease-in-out infinite alternate; }
.scn-lears-moon-vision .rustle { position:absolute; bottom:15%; left:70%; width:6px; height:6px; background: #4a3a2a; border-radius:50%; box-shadow: 10px 5px 0 #3a2a1a, -5px -10px 0 #5a4a3a; filter: blur(1px); animation: lm-rustle 4s ease-in-out infinite; }

@keyframes lm-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lm-frame { 0% { box-shadow: inset 0 0 10px rgba(0,0,0,0.6), 0 0 20px 4px rgba(0,0,0,0.4) } 50% { box-shadow: inset 0 0 15px rgba(0,0,0,0.8), 0 0 30px 6px rgba(0,0,0,0.5) } 100% { box-shadow: inset 0 0 12px rgba(0,0,0,0.7), 0 0 22px 5px rgba(0,0,0,0.45) } }
@keyframes lm-moon { 0% { transform: scale(1); box-shadow: 0 0 30px 8px #f0e8c8, 0 0 60px 16px rgba(240,232,200,0.3) } 50% { transform: scale(1.05); box-shadow: 0 0 40px 12px #f0e8c8, 0 0 80px 24px rgba(240,232,200,0.4) } 100% { transform: scale(0.98); box-shadow: 0 0 28px 6px #f0e8c8, 0 0 50px 12px rgba(240,232,200,0.25) } }
@keyframes lm-figure-lear { 0% { transform: translateX(0) rotate(-1deg) } 20% { transform: translateX(2px) rotate(1deg) } 40% { transform: translateX(-1px) rotate(-2deg) } 60% { transform: translateX(3px) rotate(1deg) } 80% { transform: translateX(-2px) rotate(0) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes lm-figure-cordelia { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-3px) rotate(-1deg) } 66% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lm-bench { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.98) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes lm-beams { 0% { transform: rotate(-5deg) scaleY(1); opacity:0.4 } 50% { transform: rotate(3deg) scaleY(1.1); opacity:0.7 } 100% { transform: rotate(-4deg) scaleY(0.95); opacity:0.5 } }
@keyframes lm-rustle { 0% { transform: translate(0,0) } 25% { transform: translate(2px,-1px) } 50% { transform: translate(-1px,1px) } 75% { transform: translate(3px,0) } 100% { transform: translate(0,0) } }


/* Scene: lears-dismissal-cordelia (tense, dim-interior) */
.scn-lears-dismissal-cordelia {
  background: linear-gradient(180deg, #1a0e0e 0%, #2a1a1a 40%, #4a2a1a 100%), radial-gradient(ellipse at 30% 50%, #6a3a1a 0%, transparent 70%);
}
.scn-lears-dismissal-cordelia .pit { position:absolute; inset:auto 0 0 0; height:60%; background: linear-gradient(180deg, #2a1a1a 0%, #0e0e0e 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.8); animation: ld-pit 14s ease-in-out infinite alternate; }
.scn-lears-dismissal-cordelia .fire-brand { position:absolute; top:30%; left:35%; width:12px; height:20px; background: radial-gradient(circle, #c8553d 0%, #a0461a 50%, #5e1a1d 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 0 30px 12px #c8553d, 0 0 60px 24px rgba(200,85,61,0.4); animation: ld-fire 0.8s ease-in-out infinite alternate; }
.scn-lears-dismissal-cordelia .bars-left { position:absolute; left:10%; top:0; bottom:0; width:4px; background: linear-gradient(180deg, #4a2a1a, #1a0e0e); box-shadow: 0 0 10px rgba(0,0,0,0.8); animation: ld-bars 7s ease-in-out infinite; }
.scn-lears-dismissal-cordelia .bars-right { position:absolute; right:10%; top:0; bottom:0; width:4px; background: linear-gradient(180deg, #4a2a1a, #1a0e0e); box-shadow: 0 0 10px rgba(0,0,0,0.8); animation: ld-bars 7s ease-in-out 3.5s infinite; }
.scn-lears-dismissal-cordelia .figure-separator { position:absolute; bottom:40%; left:50%; transform:translateX(-50%); width:10px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0e 100%); border-radius: 30% 30% 20% 20%; animation: ld-sep 4s ease-in-out infinite; }
.scn-lears-dismissal-cordelia .figure-lear { position:absolute; bottom:20%; left:30%; width:20px; height:42px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ld-figure-lear 5s ease-in-out infinite; }
.scn-lears-dismissal-cordelia .figure-cordelia { position:absolute; bottom:20%; left:55%; width:16px; height:36px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ld-figure-cordelia 5s ease-in-out 2s infinite; }
.scn-lears-dismissal-cordelia .spark-fall { position:absolute; top:30%; left:40%; width:3px; height:3px; background: #c8553d; border-radius:50%; box-shadow: 10px 15px 0 #a0461a, -8px 25px 0 #c8553d, 5px 40px 0 #a0461a; filter: blur(1px); animation: ld-sparks 2s linear infinite; }

@keyframes ld-pit { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes ld-fire { 0% { transform: scale(1) translateY(0); opacity:0.9 } 50% { transform: scale(1.2) translateY(-2px); opacity:1 } 100% { transform: scale(0.95) translateY(1px); opacity:0.8 } }
@keyframes ld-bars { 0%,100% { opacity:0.7 } 50% { opacity:1 } }
@keyframes ld-sep { 0% { transform: translateX(-50%) scaleY(1) } 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(1deg) } 100% { transform: translateX(-50%) scaleY(1) rotate(0) } }
@keyframes ld-figure-lear { 0% { transform: translateX(0) rotate(-3deg) } 20% { transform: translateX(-4px) rotate(1deg) } 40% { transform: translateX(3px) rotate(-2deg) } 60% { transform: translateX(-2px) rotate(2deg) } 80% { transform: translateX(5px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes ld-figure-cordelia { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(5px) rotate(3deg) } 60% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ld-sparks { 0% { transform: translateY(0); opacity:1 } 100% { transform: translateY(60px); opacity:0 } }

/* ---- Scene: lear-rage-disownment (lr) ---- */
.scn-lear-rage-disownment {
  background: 
    linear-gradient(180deg, #1a1520 0%, #2a1f28 30%, #3c2835 60%, #1a1018 100%),
    radial-gradient(ellipse at 40% 20%, rgba(200,140,60,0.25) 0%, transparent 70%);
}
.scn-lear-rage-disownment .bg-wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(135deg, #3a2a30 0%, #2a1a22 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  animation: lr-wall 12s ease-in-out infinite alternate;
}
.scn-lear-rage-disownment .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #1a1218 0%, #0d0810 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
}
.scn-lear-rage-disownment .throne {
  position:absolute; bottom:30%; left:50%; width:120px; height:160px;
  transform:translateX(-50%);
  background: 
    linear-gradient(135deg, #4a3530 30%, #2a1c18 70%),
    radial-gradient(ellipse at 50% 20%, #5a4538 30%, transparent 60%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.7), inset 0 -4px 12px #5a3a20;
  animation: lr-throne 8s ease-in-out infinite alternate;
}
.scn-lear-rage-disownment .king-figure {
  position:absolute; bottom:38%; left:50%; width:60px; height:110px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #1a1518 0%, #0d080a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lr-king 4s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-lear-rage-disownment .knight-figure {
  position:absolute; bottom:32%; left:32%; width:50px; height:90px;
  background: linear-gradient(180deg, #1a181a 0%, #0a080a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: lr-knight 5s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-lear-rage-disownment .candelabra {
  position:absolute; bottom:35%; left:62%; width:30px; height:70px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 10% 10% 20% 20%;
  animation: lr-candle-sway 7s ease-in-out infinite;
}
.scn-lear-rage-disownment .flame-1 {
  position:absolute; bottom:68%; left:60%; width:8px; height:18px;
  background: radial-gradient(circle, #ffc060 0%, #d0a040 50%, #803020 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: lr-flame1 2s ease-in-out infinite alternate;
}
.scn-lear-rage-disownment .flame-2 {
  position:absolute; bottom:68%; left:64%; width:6px; height:14px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 50%, #702820 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: lr-flame2 2.5s ease-in-out infinite alternate-reverse;
}
.scn-lear-rage-disownment .shadow-pool {
  position:absolute; bottom:0; left:50%; width:200px; height:50px;
  transform:translateX(-50%) scaleY(0.6);
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.6) 0%, transparent 80%);
  animation: lr-shadow 6s ease-in-out infinite alternate;
}
@keyframes lr-wall { 0% { opacity:0.85 } 50% { opacity:0.95 } 100% { opacity:0.8 } }
@keyframes lr-throne { 0% { transform:translateX(-50%) rotate(-1deg); } 50% { transform:translateX(-50%) rotate(1deg); } 100% { transform:translateX(-50%) rotate(-0.5deg); } }
@keyframes lr-king { 0% { transform:translateX(-50%) rotate(-2deg); } 30% { transform:translateX(-48%) rotate(1deg); } 60% { transform:translateX(-52%) rotate(-1deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes lr-knight { 0% { transform:translateX(0) rotate(0deg); } 40% { transform:translateX(4px) rotate(2deg); } 80% { transform:translateX(-2px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes lr-candle-sway { 0% { transform:rotate(-3deg); } 50% { transform:rotate(3deg); } 100% { transform:rotate(-2deg); } }
@keyframes lr-flame1 { 0% { opacity:0.7; transform:scaleY(0.9) translateY(2px); } 50% { opacity:1; transform:scaleY(1.1) translateY(-1px); } 100% { opacity:0.8; transform:scaleY(1) translateY(0); } }
@keyframes lr-flame2 { 0% { opacity:0.6; transform:scaleY(0.8); } 50% { opacity:0.9; transform:scaleY(1.2) translateY(-2px); } 100% { opacity:0.7; transform:scaleY(0.9); } }
@keyframes lr-shadow { 0% { opacity:0.5; transform:translateX(-50%) scaleY(0.5); } 50% { opacity:0.8; transform:translateX(-48%) scaleY(0.7); } 100% { opacity:0.6; transform:translateX(-52%) scaleY(0.6); } }

/* ---- Scene: item-coronet-part (cp) ---- */
.scn-item-coronet-part {
  background:
    linear-gradient(180deg, #2a2520 0%, #3a3228 30%, #4a3f35 60%, #2a2220 100%),
    radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, transparent 70%);
}
.scn-item-coronet-part .die-backdrop {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(135deg, #3a3028 0%, #2a2018 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: cp-back 20s ease-in-out infinite alternate;
}
.scn-item-coronet-part .table {
  position:absolute; bottom:15%; left:10%; right:10%; height:20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2c20 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: cp-table 15s ease-in-out infinite alternate;
}
.scn-item-coronet-part .coronet {
  position:absolute; bottom:28%; left:50%; width:70px; height:40px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #d0b080 0%, #a08050 50%, #604828 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(160,120,60,0.4);
  animation: cp-coronet 6s ease-in-out infinite;
}
.scn-item-coronet-part .hand-l {
  position:absolute; bottom:18%; left:36%; width:25px; height:55px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cp-hand-l 4s ease-in-out infinite;
}
.scn-item-coronet-part .hand-r {
  position:absolute; bottom:18%; right:36%; width:25px; height:55px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cp-hand-r 4s ease-in-out infinite;
}
.scn-item-coronet-part .cloth-drape {
  position:absolute; bottom:15%; left:5%; right:5%; height:10%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a2018 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(3px);
  animation: cp-drape 12s ease-in-out infinite alternate;
}
.scn-item-coronet-part .glow-centre {
  position:absolute; bottom:30%; left:50%; width:100px; height:100px;
  transform:translate(-50%, 50%);
  background: radial-gradient(circle, rgba(200,170,100,0.3) 0%, transparent 70%);
  animation: cp-glow 5s ease-in-out infinite alternate;
}
.scn-item-coronet-part .sparkle-1 {
  position:absolute; bottom:35%; left:48%; width:4px; height:4px;
  background: #ffd080;
  border-radius: 50%;
  box-shadow: 0 0 6px #ffd080;
  animation: cp-sparkle1 3s ease-in-out infinite;
}
.scn-item-coronet-part .sparkle-2 {
  position:absolute; bottom:32%; left:53%; width:3px; height:3px;
  background: #ffe0a0;
  border-radius: 50%;
  box-shadow: 0 0 4px #ffe0a0;
  animation: cp-sparkle2 3.5s ease-in-out infinite 1s;
}
@keyframes cp-back { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.85; } }
@keyframes cp-table { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes cp-coronet { 0% { transform:translateX(-50%) rotate(-2deg) scale(1); } 50% { transform:translateX(-50%) rotate(0deg) scale(1.02); } 100% { transform:translateX(-50%) rotate(2deg) scale(1); } }
@keyframes cp-hand-l { 0% { transform:rotate(0deg); } 50% { transform:rotate(5deg) translateY(-2px); } 100% { transform:rotate(0deg); } }
@keyframes cp-hand-r { 0% { transform:rotate(0deg); } 50% { transform:rotate(-5deg) translateY(-2px); } 100% { transform:rotate(0deg); } }
@keyframes cp-drape { 0% { transform:scaleY(0.9); opacity:0.6; } 50% { transform:scaleY(1.1); opacity:0.9; } 100% { transform:scaleY(1); opacity:0.8; } }
@keyframes cp-glow { 0% { opacity:0.4; transform:translate(-50%, 50%) scale(0.9); } 50% { opacity:0.8; transform:translate(-50%, 50%) scale(1.2); } 100% { opacity:0.6; transform:translate(-50%, 50%) scale(1); } }
@keyframes cp-sparkle1 { 0% { opacity:0; transform:scale(0.3); } 30% { opacity:1; transform:scale(1.5); } 70% { opacity:0.8; transform:scale(1); } 100% { opacity:0; transform:scale(0.5); } }
@keyframes cp-sparkle2 { 0% { opacity:0; transform:scale(0.2); } 40% { opacity:1; transform:scale(1.3); } 80% { opacity:0.7; transform:scale(0.8); } 100% { opacity:0; transform:scale(0.4); } }

/* ---- Scene: kent-intervenes (ki) ---- */
.scn-kent-intervenes {
  background:
    linear-gradient(180deg, #2a2228 0%, #3a2830 30%, #1a1218 60%, #0a0608 100%),
    radial-gradient(ellipse at 50% 40%, rgba(180,120,60,0.3) 0%, transparent 70%);
}
.scn-kent-intervenes .bg-arch {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #3a2a30 0%, #1a1018 100%);
  border-radius: 0 0 50% 50% / 0 0 40% 40%;
  box-shadow: inset 0 0 80px rgba(0,0,0,0.7);
  animation: ki-arch 10s ease-in-out infinite alternate;
}
.scn-kent-intervenes .lear-silhouette {
  position:absolute; bottom:25%; left:60%; width:70px; height:120px;
  background: linear-gradient(90deg, #0d080a 0%, #1a1012 50%, #0d080a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: ki-lear 3s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-kent-intervenes .bow-vertical {
  position:absolute; bottom:20%; left:42%; width:12px; height:110px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a100c 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: ki-bow 2s ease-in-out infinite alternate;
}
.scn-kent-intervenes .bowstring {
  position:absolute; bottom:32%; left:41%; width:4px; height:90px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50%;
  transform-origin: top center;
  animation: ki-string 0.8s ease-in-out infinite alternate;
}
.scn-kent-intervenes .kent-silhouette {
  position:absolute; bottom:25%; left:20%; width:60px; height:110px;
  background: linear-gradient(90deg, #151012 0%, #1a1418 50%, #151012 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ki-kent 3.5s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-kent-intervenes .arrow {
  position:absolute; bottom:45%; left:45%; width:50px; height:4px;
  background: linear-gradient(90deg, #5a4a3a 0%, #2a1c10 100%);
  border-radius: 20%;
  transform-origin: left center;
  animation: ki-arrow 2s ease-in-out infinite;
}
.scn-kent-intervenes .crush-shadow {
  position:absolute; bottom:0; left:10%; right:10%; height:30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: ki-shadow 4s ease-in-out infinite alternate;
}
.scn-kent-intervenes .dust-motes {
  position:absolute; inset:0;
  background-image: radial-gradient(circle at 30% 60%, rgba(200,180,160,0.1) 0%, transparent 50%),
                    radial-gradient(circle at 70% 30%, rgba(200,180,160,0.08) 0%, transparent 40%);
  animation: ki-dust 15s linear infinite;
}
@keyframes ki-arch { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.85; } }
@keyframes ki-lear { 0% { transform:rotate(-2deg); } 30% { transform:rotate(3deg); } 60% { transform:rotate(-1deg); } 100% { transform:rotate(0deg); } }
@keyframes ki-bow { 0% { transform:rotate(-4deg); } 50% { transform:rotate(4deg); } 100% { transform:rotate(-2deg); } }
@keyframes ki-string { 0% { transform:scaleY(1); } 100% { transform:scaleY(0.9); } }
@keyframes ki-kent { 0% { transform:rotate(1deg); } 40% { transform:rotate(-3deg) translateX(5px); } 80% { transform:rotate(0deg) translateX(-2px); } 100% { transform:rotate(0deg); } }
@keyframes ki-arrow { 0% { transform:rotate(-10deg) translateX(-5px); } 50% { transform:rotate(5deg) translateX(5px); } 100% { transform:rotate(-5deg) translateX(-2px); } }
@keyframes ki-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes ki-dust { 0% { background-position:0% 0%, 100% 0%; } 100% { background-position:100% 100%, 0% 100%; } }

/* ---- Scene: kent-defies-lear (kd) ---- */
.scn-kent-defies-lear {
  background:
    linear-gradient(180deg, #2a1f28 0%, #3a2830 30%, #201218 60%, #0a0408 100%),
    radial-gradient(ellipse at 50% 30%, rgba(180,90,30,0.2) 0%, transparent 70%);
}
.scn-kent-defies-lear .colonnade-left {
  position:absolute; bottom:0; left:0; width:15%; height:100%;
  background: linear-gradient(180deg, #2a1c1a 0%, #1a0c0a 100%);
  border-radius: 0 20% 0 0;
  box-shadow: 4px 0 20px rgba(0,0,0,0.5);
  animation: kd-col-left 20s ease-in-out infinite alternate;
}
.scn-kent-defies-lear .colonnade-right {
  position:absolute; bottom:0; right:0; width:15%; height:100%;
  background: linear-gradient(180deg, #2a1c1a 0%, #1a0c0a 100%);
  border-radius: 20% 0 0 0;
  box-shadow: -4px 0 20px rgba(0,0,0,0.5);
  animation: kd-col-right 20s ease-in-out infinite alternate;
}
.scn-kent-defies-lear .lear-figure {
  position:absolute; bottom:20%; left:60%; width:70px; height:130px;
  background: linear-gradient(180deg, #0d080a 0%, #1a1012 50%, #0d080a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: kd-lear 4s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-kent-defies-lear .kent-figure {
  position:absolute; bottom:20%; left:28%; width:60px; height:120px;
  background: linear-gradient(180deg, #151012 0%, #1a1418 50%, #151012 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: kd-kent 3s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-kent-defies-lear .kent-arm {
  position:absolute; bottom:46%; left:30%; width:50px; height:10px;
  background: linear-gradient(90deg, #1a1418 0%, #2a1c22 100%);
  border-radius: 20% 20% 40% 40%;
  transform-origin: left center;
  animation: kd-arm 2.5s ease-in-out infinite;
}
.scn-kent-defies-lear .floor-tile {
  position:absolute; bottom:0; left:0; right:0; height:5%;
  background: repeating-linear-gradient(90deg, #2a1e1c 0px, #2a1e1c 20px, #3a2a28 20px, #3a2a28 40px);
  opacity:0.4;
  animation: kd-floor 10s linear infinite;
}
.scn-kent-defies-lear .angry-glint {
  position:absolute; bottom:50%; left:55%; width:20px; height:20px;
  background: radial-gradient(circle, rgba(200,100,30,0.6) 0%, transparent 80%);
  animation: kd-glint 2s ease-in-out infinite alternate;
}
@keyframes kd-col-left { 0% { transform:translateX(0); } 50% { transform:translateX(-5px); } 100% { transform:translateX(0); } }
@keyframes kd-col-right { 0% { transform:translateX(0); } 50% { transform:translateX(5px); } 100% { transform:translateX(0); } }
@keyframes kd-lear { 0% { transform:rotate(-1deg); } 30% { transform:rotate(4deg) scale(1.02); } 70% { transform:rotate(-2deg); } 100% { transform:rotate(0deg); } }
@keyframes kd-kent { 0% { transform:rotate(2deg) translateX(0); } 40% { transform:rotate(-3deg) translateX(-8px); } 80% { transform:rotate(1deg) translateX(4px); } 100% { transform:rotate(0deg); } }
@keyframes kd-arm { 0% { transform:rotate(-10deg); } 50% { transform:rotate(25deg); } 100% { transform:rotate(-5deg); } }
@keyframes kd-floor { 0% { background-position:0% 0%; } 100% { background-position:40px 0%; } }
@keyframes kd-glint { 0% { opacity:0.3; transform:scale(0.5); } 50% { opacity:1; transform:scale(1.3); } 100% { opacity:0.4; transform:scale(0.7); } }

.scn-gloucester-meets-poor-tom { background: linear-gradient(180deg, #2a2a3a 0%, #3c3c4e 30%, #4e4e62 60%, #3a3a4e 100%), radial-gradient(ellipse at 50% 100%, #3c3c4e 0%, transparent 60%); }
.scn-gloucester-meets-poor-tom .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3e3e54 0%, #54546e 50%, #6e6e8a 100%); animation: gmp-sky 20s ease-in-out infinite alternate; }
.scn-gloucester-meets-poor-tom .ground { position:absolute; bottom:0; left:0; right:0; height:48%; background: linear-gradient(180deg, #3a3a2e 0%, #2a2a20 100%); border-radius: 80% 70% 0 0 / 40% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-gloucester-meets-poor-tom .rock-left { position:absolute; bottom:30%; left:5%; width:40px; height:50px; background: linear-gradient(180deg, #4a4a3e 0%, #2e2e24 100%); border-radius: 30% 70% 60% 40% / 40% 60% 40% 60%; transform: rotate(-10deg); box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: gmp-rock 12s ease-in-out infinite; }
.scn-gloucester-meets-poor-tom .rock-right { position:absolute; bottom:28%; right:10%; width:55px; height:45px; background: linear-gradient(180deg, #4a4a3e 0%, #2e2e24 100%); border-radius: 60% 30% 40% 70% / 50% 40% 60% 50%; transform: rotate(5deg); box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: gmp-rock 15s ease-in-out infinite reverse; }
.scn-gloucester-meets-poor-tom .figure-poor-tom { position:absolute; bottom:18%; left:30%; width:22px; height:45px; background: linear-gradient(180deg, #3a3a44 0%, #2a2a34 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gmp-poor-tom 6s ease-in-out infinite; }
.scn-gloucester-meets-poor-tom .figure-gloucester { position:absolute; bottom:18%; left:55%; width:26px; height:50px; background: linear-gradient(180deg, #4a4a54 0%, #3a3a44 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gmp-gloucester 7s ease-in-out infinite; }
.scn-gloucester-meets-poor-tom .path { position:absolute; bottom:10%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #5c5c4e 0%, #4a4a3e 50%, #3a3a2e 100%); border-radius: 0 0 40% 40%; box-shadow: inset 0 4px 8px rgba(0,0,0,.3); animation: gmp-path 10s ease-in-out infinite; }
.scn-gloucester-meets-poor-tom .cloud-a { position:absolute; top:12%; left:15%; width:70px; height:16px; background: rgba(120,120,140,.4); border-radius: 50%; filter: blur(4px); animation: gmp-cloud-a 40s linear infinite; }
.scn-gloucester-meets-poor-tom .cloud-b { position:absolute; top:20%; right:10%; width:50px; height:12px; background: rgba(120,120,140,.3); border-radius: 50%; filter: blur(3px); animation: gmp-cloud-b 30s linear infinite reverse; }
@keyframes gmp-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes gmp-rock { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } }
@keyframes gmp-poor-tom { 0%,100% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(0deg); } 50% { transform: translateX(8px) rotate(1deg); } 75% { transform: translateX(4px) rotate(0deg); } }
@keyframes gmp-gloucester { 0%,100% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-3px) rotate(-1deg); } 66% { transform: translateX(-6px) rotate(1deg); } }
@keyframes gmp-path { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes gmp-cloud-a { 0% { transform: translateX(0); } 100% { transform: translateX(150vw); } }
@keyframes gmp-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

.scn-gloucester-trusts-edgar { background: linear-gradient(180deg, #404048 0%, #585860 30%, #686870 60%, #484850 100%), radial-gradient(ellipse at 50% 100%, #5a5a62 0%, transparent 70%); }
.scn-gloucester-trusts-edgar .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #606068 0%, #808088 50%, #a0a0a8 100%); animation: gte-sky 18s ease-in-out infinite alternate; }
.scn-gloucester-trusts-edgar .ground { position:absolute; bottom:0; left:0; right:0; height:42%; background: linear-gradient(180deg, #4a4a3e 0%, #3a3a2e 100%); border-radius: 60% 80% 0 0 / 30% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-gloucester-trusts-edgar .tree { position:absolute; bottom:20%; left:70%; width:12px; height:80px; background: linear-gradient(180deg, #3a3a2e 0%, #2a2a1e 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: gte-tree 20s ease-in-out infinite; }
.scn-gloucester-trusts-edgar .tree::before { content:''; position:absolute; top:-20px; left:-20px; width:50px; height:40px; background: radial-gradient(ellipse, #4a4a3e 0%, #3a3a2e 60%, transparent 70%); border-radius:50%; }
.scn-gloucester-trusts-edgar .figure-edgar { position:absolute; bottom:22%; left:40%; width:20px; height:42px; background: linear-gradient(180deg, #404048 0%, #303038 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gte-edgar 5s ease-in-out infinite; }
.scn-gloucester-trusts-edgar .figure-gloucester { position:absolute; bottom:20%; left:55%; width:28px; height:52px; background: linear-gradient(180deg, #585860 0%, #484850 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gte-gloucester 6s ease-in-out infinite; }
.scn-gloucester-trusts-edgar .lantern { position:absolute; bottom:28%; left:48%; width:10px; height:14px; background: radial-gradient(circle, #c89050 0%, #a07030 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,.4); animation: gte-lantern 4s ease-in-out infinite alternate; }
.scn-gloucester-trusts-edgar .shrub { position:absolute; bottom:15%; left:15%; width:40px; height:25px; background: radial-gradient(ellipse at 50% 100%, #4a4a3e 0%, #3a3a2e 80%); border-radius: 50% 50% 30% 30%; box-shadow: inset 0 4px 8px rgba(0,0,0,.3); }
.scn-gloucester-trusts-edgar .mist { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(100,100,110,.3) 0%, transparent 100%); animation: gte-mist 15s ease-in-out infinite; }
.scn-gloucester-trusts-edgar .cloud { position:absolute; top:8%; left:30%; width:80px; height:18px; background: rgba(160,160,170,.5); border-radius: 50%; filter: blur(5px); animation: gte-cloud 50s linear infinite; }
@keyframes gte-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes gte-tree { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes gte-edgar { 0%,100% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(0deg); } 50% { transform: translateX(6px) rotate(1deg); } 75% { transform: translateX(3px) rotate(0deg); } }
@keyframes gte-gloucester { 0%,100% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-2px) rotate(-1deg); } 66% { transform: translateX(-4px) rotate(1deg); } }
@keyframes gte-lantern { 0% { box-shadow: 0 0 20px 6px #b08040; opacity:.85; } 50% { box-shadow: 0 0 30px 10px #c89050, 0 0 50px 15px rgba(200,144,80,.5); opacity:1; } 100% { box-shadow: 0 0 24px 8px #b08040; opacity:.9; } }
@keyframes gte-mist { 0%,100% { opacity:.5; } 50% { opacity:.8; } }
@keyframes gte-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(200vw); } }

.scn-gloucester-and-edgar { background: linear-gradient(180deg, #2a2a3e 0%, #3e3e52 30%, #52526a 60%, #3a3a4e 100%), radial-gradient(ellipse at 50% 100%, #3e3e52 0%, transparent 60%); }
.scn-gloucester-and-edgar .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3c3c50 0%, #585870 50%, #787892 100%); animation: gae-sky 22s ease-in-out infinite alternate; }
.scn-gloucester-and-edgar .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a3a2e 0%, #2a2a1e 100%); border-radius: 70% 50% 0 0 / 40% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-gloucester-and-edgar .hill { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a4a3e 0%, #3a3a2e 100%); border-radius: 100% 80% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.4); animation: gae-hill 14s ease-in-out infinite; }
.scn-gloucester-and-edgar .figure-edgar { position:absolute; bottom:20%; left:35%; width:20px; height:44px; background: linear-gradient(180deg, #3a3a44 0%, #2a2a34 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gae-edgar 6s ease-in-out infinite; }
.scn-gloucester-and-edgar .figure-gloucester { position:absolute; bottom:18%; left:55%; width:28px; height:54px; background: linear-gradient(180deg, #4e4e5a 0%, #3e3e4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gae-gloucester 7s ease-in-out infinite; }
.scn-gloucester-and-edgar .path { position:absolute; bottom:8%; left:25%; right:25%; height:12%; background: linear-gradient(180deg, #5c5c4e 0%, #4a4a3e 50%, #3a3a2e 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 4px 8px rgba(0,0,0,.3); animation: gae-path 12s ease-in-out infinite; }
.scn-gloucester-and-edgar .cloud-c { position:absolute; top:10%; left:20%; width:60px; height:14px; background: rgba(120,120,140,.4); border-radius: 50%; filter: blur(4px); animation: gae-cloud-c 35s linear infinite; }
.scn-gloucester-and-edgar .cloud-d { position:absolute; top:18%; right:15%; width:70px; height:16px; background: rgba(120,120,140,.3); border-radius: 50%; filter: blur(5px); animation: gae-cloud-d 45s linear infinite reverse; }
.scn-gloucester-and-edgar .bird { position:absolute; top:8%; left:60%; width:12px; height:8px; background: transparent; border-top: 2px solid #5e5e6e; border-bottom: 2px solid #5e5e6e; border-radius: 50%; animation: gae-bird 8s ease-in-out infinite; }
@keyframes gae-sky { 0% { opacity:.75; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes gae-hill { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes gae-edgar { 0%,100% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(0deg); } 50% { transform: translateX(6px) rotate(1deg); } 75% { transform: translateX(3px) rotate(0deg); } }
@keyframes gae-gloucester { 0%,100% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-2px) rotate(-1deg); } 66% { transform: translateX(-4px) rotate(1deg); } }
@keyframes gae-path { 0% { opacity:.5; } 50% { opacity:.7; } 100% { opacity:.5; } }
@keyframes gae-cloud-c { 0% { transform: translateX(0); } 100% { transform: translateX(160vw); } }
@keyframes gae-cloud-d { 0% { transform: translateX(0); } 100% { transform: translateX(-140vw); } }
@keyframes gae-bird { 0%,100% { transform: translateX(0) scale(1); } 25% { transform: translateX(20px) scale(1.1); } 50% { transform: translateX(40px) scale(0.9); } 75% { transform: translateX(20px) scale(1); } }

.scn-item-purse-given { background: linear-gradient(180deg, #3a3a4a 0%, #505060 30%, #707080 60%, #4a4a5a 100%), radial-gradient(ellipse at 50% 100%, #505060 0%, transparent 70%); }
.scn-item-purse-given .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5c5c70 0%, #808098 50%, #a8a8b8 100%); animation: ipg-sky 16s ease-in-out infinite alternate; }
.scn-item-purse-given .cliff { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-item-purse-given .cliff-edge { position:absolute; bottom:40%; left:45%; width:40%; height:20%; background: linear-gradient(180deg, #6a6a5a 0%, #5a5a4a 100%); border-radius: 40% 60% 20% 30% / 60% 40% 20% 30%; box-shadow: 0 -4px 10px rgba(0,0,0,.4); animation: ipg-edge 10s ease-in-out infinite; }
.scn-item-purse-given .figure-gloucester { position:absolute; bottom:38%; left:40%; width:26px; height:50px; background: linear-gradient(180deg, #4a4a56 0%, #3a3a46 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ipg-gloucester 6s ease-in-out infinite; }
.scn-item-purse-given .figure-edgar { position:absolute; bottom:36%; left:52%; width:22px; height:44px; background: linear-gradient(180deg, #3e3e4a 0%, #2e2e3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ipg-edgar 7s ease-in-out infinite; }
.scn-item-purse-given .abyss { position:absolute; bottom:0; left:0; right:0; height:38%; background: linear-gradient(0deg, #1a1a2a 0%, #2a2a3a 50%, #3a3a4a 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: ipg-abyss 8s ease-in-out infinite alternate; }
.scn-item-purse-given .sun-glow { position:absolute; top:5%; left:50%; width:50px; height:50px; transform: translateX(-50%); background: radial-gradient(circle, #d0b080 0%, #b09060 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(208,176,128,.3); animation: ipg-sun 12s ease-in-out infinite; }
.scn-item-purse-given .bird-1 { position:absolute; top:18%; left:20%; width:14px; height:8px; background: transparent; border-top: 2px solid #6e6e7e; border-bottom: 2px solid #6e6e7e; border-radius: 50%; animation: ipg-bird-1 10s ease-in-out infinite; }
.scn-item-purse-given .bird-2 { position:absolute; top:22%; left:30%; width:12px; height:6px; background: transparent; border-top: 2px solid #7e7e8e; border-bottom: 2px solid #7e7e8e; border-radius: 50%; animation: ipg-bird-2 12s ease-in-out infinite reverse; }
@keyframes ipg-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes ipg-edge { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ipg-gloucester { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 75% { transform: translateX(2px) rotate(0deg); } }
@keyframes ipg-edgar { 0%,100% { transform: translateX(0) rotate(-1deg); } 33% { transform: translateX(-3px) rotate(0deg); } 66% { transform: translateX(-6px) rotate(1deg); } }
@keyframes ipg-abyss { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.7; } }
@keyframes ipg-sun { 0%,100% { opacity:.6; transform: translateX(-50%) scale(1); } 50% { opacity:.8; transform: translateX(-50%) scale(1.05); } }
@keyframes ipg-bird-1 { 0%,100% { transform: translateX(0) scale(1); } 25% { transform: translateX(30px) scale(1.2); } 50% { transform: translateX(60px) scale(0.8); } 75% { transform: translateX(30px) scale(1); } }
@keyframes ipg-bird-2 { 0%,100% { transform: translateX(0) scale(1); } 25% { transform: translateX(-25px) scale(1.1); } 50% { transform: translateX(-50px) scale(0.9); } 75% { transform: translateX(-25px) scale(1); } }

.scn-item-edmunds-note {
  background: linear-gradient(180deg, #1a0c0a 0%, #2b1612 40%, #1f0f0b 100%),
              radial-gradient(ellipse at 30% 70%, #3b221c 0%, transparent 60%);
}
.scn-item-edmunds-note .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #120806 0%, #1f0f0b 60%, #0d0604 100%);
  animation: e1-breath 12s ease-in-out infinite alternate;
}
.scn-item-edmunds-note .table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #3a2518 0%, #1f140e 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-item-edmunds-note .candle {
  position: absolute; bottom: 32%; left: 25%; width: 10px; height: 60px;
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  transform: rotate(-5deg);
  animation: e1-candle 8s ease-in-out infinite;
}
.scn-item-edmunds-note .flame {
  position: absolute; bottom: 62%; left: 25%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 20%, #ffd080 0%, #e8a040 50%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 40px 20px rgba(232,160,64,0.5), 0 0 80px 40px rgba(232,160,64,0.2);
  animation: e1-flame 2s ease-in-out infinite alternate;
}
.scn-item-edmunds-note .paper {
  position: absolute; bottom: 34%; left: 32%; width: 70px; height: 50px;
  background: linear-gradient(135deg, #f5ecd8 0%, #e0d0b0 100%);
  border-radius: 4% 4% 6% 6%;
  transform: rotate(8deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: e1-paper 6s ease-in-out infinite;
}
.scn-item-edmunds-note .hand {
  position: absolute; bottom: 32%; left: 38%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #2b1a12 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: rotate(10deg);
  animation: e1-hand 4s ease-in-out infinite;
}
.scn-item-edmunds-note .shadow {
  position: absolute; bottom: 30%; left: 22%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: e1-shadow 6s ease-in-out infinite alternate;
}
@keyframes e1-breath { 0% { opacity:0.9 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes e1-candle { 0%,100% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(-4deg) scaleY(0.98) } }
@keyframes e1-flame { 0% { transform: translateY(0) scale(1); opacity:0.9 } 50% { transform: translateY(-4px) scale(1.1); opacity:1 } 100% { transform: translateY(-2px) scale(0.95); opacity:0.85 } }
@keyframes e1-paper { 0%,100% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(7deg) translateY(-2px) } }
@keyframes e1-hand { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(6deg) } }
@keyframes e1-shadow { 0% { transform: scaleX(1); opacity:1 } 100% { transform: scaleX(0.9); opacity:0.7 } }

.scn-captain-replies {
  background: linear-gradient(135deg, #1f1410 0%, #2c1e1a 50%, #140b08 100%),
              radial-gradient(ellipse at 60% 80%, #3a2420 0%, transparent 60%);
}
.scn-captain-replies .bg-room {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0d0806 0%, #1f1410 60%, #0a0503 100%);
  animation: c2-pulse 8s ease-in-out infinite alternate;
}
.scn-captain-replies .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2e1f18 0%, #1a100b 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-captain-replies .wall {
  position: absolute; top: 0; left: 10%; right: 10%; bottom: 25%;
  background: linear-gradient(180deg, #2a1c16 0%, #1f1410 80%);
  border-radius: 0 0 10% 10% / 0 0 20% 20%;
}
.scn-captain-replies .captain {
  position: absolute; bottom: 25%; left: 30%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a100e 0%, #0d0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: c2-figure 3s ease-in-out infinite;
}
.scn-captain-replies .arm {
  position: absolute; bottom: 42%; left: 36%; width: 40px; height: 10px;
  background: linear-gradient(180deg, #1a100e 0%, #0d0806 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: left center;
  transform: rotate(-30deg);
  animation: c2-arm 2.5s ease-in-out infinite alternate;
}
.scn-captain-replies .letter {
  position: absolute; bottom: 40%; left: 44%; width: 20px; height: 28px;
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b8a0 100%);
  border-radius: 6% 6% 8% 8%;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: c2-letter 4s ease-in-out infinite;
}
.scn-captain-replies .door {
  position: absolute; bottom: 25%; right: 15%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a281e 0%, #221610 100%);
  border-radius: 6% 6% 4% 4%;
  transform-origin: right center;
  animation: c2-door 6s ease-in-out infinite alternate;
}
.scn-captain-replies .lamp {
  position: absolute; top: 10%; right: 25%; width: 8px; height: 20px;
  background: radial-gradient(ellipse, #d4a060 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(212,160,96,0.4);
  animation: c2-lamp 5s ease-in-out infinite alternate;
}
@keyframes c2-pulse { 0% { opacity:1 } 50% { opacity:0.9 } 100% { opacity:0.95 } }
@keyframes c2-figure { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(0deg) } }
@keyframes c2-arm { 0% { transform: rotate(-30deg) } 100% { transform: rotate(-45deg) } }
@keyframes c2-letter { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(12deg) } }
@keyframes c2-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } 100% { transform: scaleX(1) } }
@keyframes c2-lamp { 0% { opacity:0.7; transform: scale(1) } 100% { opacity:1; transform: scale(1.1) } }

.scn-albany-addresses {
  background: linear-gradient(180deg, #87ceeb 0%, #6da3c0 40%, #3b6b8a 100%),
              radial-gradient(ellipse at 50% 20%, #f0e68c 0%, transparent 50%);
}
.scn-albany-addresses .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, #8ab8d8 60%, #6da3c0 100%);
  animation: a3-sky 20s ease-in-out infinite alternate;
}
.scn-albany-addresses .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #6b8e53 0%, #4a6b33 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
}
.scn-albany-addresses .sun {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8dc 0%, #ffe4b5 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255,228,181,0.5);
  animation: a3-sun 10s ease-in-out infinite alternate;
}
.scn-albany-addresses .albany {
  position: absolute; bottom: 40%; left: 45%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2c1e12 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: a3-albany 4s ease-in-out infinite;
}
.scn-albany-addresses .attendant-left {
  position: absolute; bottom: 40%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #22150e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: a3-attendant 5s ease-in-out infinite;
}
.scn-albany-addresses .attendant-right {
  position: absolute; bottom: 40%; left: 60%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #22150e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: a3-attendant 5s ease-in-out infinite reverse;
}
.scn-albany-addresses .shadow {
  position: absolute; bottom: 40%; left: 40%; width: 120px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: a3-shadow 8s ease-in-out infinite alternate;
}
.scn-albany-addresses .banner {
  position: absolute; top: 25%; left: 10%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #a0461a 0%, #6b2e0e 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 5% 5%;
  transform: rotate(10deg);
  animation: a3-banner 6s ease-in-out infinite;
}
@keyframes a3-sky { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes a3-sun { 0% { transform: scale(1); opacity:0.9 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(0.95); opacity:0.85 } }
@keyframes a3-albany { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) translateY(-1px) } }
@keyframes a3-attendant { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-3px) } }
@keyframes a3-shadow { 0% { opacity:0.6; transform: scaleX(1) } 100% { opacity:0.4; transform: scaleX(1.1) } }
@keyframes a3-banner { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(15deg) } }

.scn-edmunds-defense {
  background: linear-gradient(180deg, #b8d4e8 0%, #8cb0cc 40%, #5a7d9a 100%),
              radial-gradient(ellipse at 30% 30%, #f0e68c 0%, transparent 50%);
}
.scn-edmunds-defense .sky-def {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8dff0 0%, #98bcd8 60%, #7ca3c0 100%);
  animation: e4-sky 18s ease-in-out infinite alternate;
}
.scn-edmunds-defense .ground-def {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a9b63 0%, #4e6b38 100%);
  border-radius: 30% 50% 0 0 / 20% 30% 0 0;
}
.scn-edmunds-defense .sun-def {
  position: absolute; top: 15%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8dc 0%, #ffdead 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,222,173,0.4);
  animation: e4-sun 12s ease-in-out infinite alternate;
}
.scn-edmunds-defense .edmund {
  position: absolute; bottom: 35%; left: 30%; width: 45px; height: 95px;
  background: linear-gradient(180deg, #1e140e 0%, #0d0a07 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: e4-edmund 3.5s ease-in-out infinite;
}
.scn-edmunds-defense .queen {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 85px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a100e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: e4-queen 4s ease-in-out infinite;
}
.scn-edmunds-defense .sword {
  position: absolute; bottom: 42%; left: 33%; width: 5px; height: 50px;
  background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 5% 5%;
  transform-origin: bottom center;
  transform: rotate(20deg);
  animation: e4-sword 2s ease-in-out infinite alternate;
}
.scn-edmunds-defense .shadow-def {
  position: absolute; bottom: 35%; left: 25%; width: 120px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(5px);
  animation: e4-shadow 7s ease-in-out infinite alternate;
}
.scn-edmunds-defense .dust {
  position: absolute; bottom: 30%; left: 10%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,180,140,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: e4-dust 5s ease-in-out infinite alternate;
}
@keyframes e4-sky { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes e4-sun { 0% { transform: scale(1); opacity:0.85 } 50% { transform: scale(1.03); opacity:1 } 100% { transform: scale(0.97); opacity:0.9 } }
@keyframes e4-edmund { 0%,100% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(2px) rotate(1deg) } 60% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes e4-queen { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) } }
@keyframes e4-sword { 0% { transform: rotate(20deg) } 100% { transform: rotate(15deg) } }
@keyframes e4-shadow { 0% { opacity:0.5; transform: scaleX(1) } 100% { opacity:0.3; transform: scaleX(1.15) } }
@keyframes e4-dust { 0% { transform: translate(0,0) scale(1); opacity:0.3 } 100% { transform: translate(10px,-5px) scale(1.5); opacity:0 } }

/* scene cordelias-grief (warm sunlit, grief) */
.scn-cordelias-grief {
  background: linear-gradient(180deg, #f9d7a3 0%, #e8b56e 45%, #c48a4a 100%),
              radial-gradient(ellipse at 30% 60%, #f5e3c0 0%, transparent 70%);
}
.scn-cordelias-grief .warm-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffdbac 0%, #f9c48a 80%);
  animation: cg-sky 15s ease-in-out infinite alternate;
}
.scn-cordelias-grief .warm-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a67c52 0%, #7a5a3a 100%);
  border-radius: 30% 50% 0 0 / 60% 40% 0 0;
  transform: scaleY(0.9); box-shadow: inset 0 8px 15px rgba(0,0,0,0.3);
  animation: cg-ground 20s ease-in-out infinite;
}
.scn-cordelias-grief .figure-silhouette {
  position: absolute; bottom: 25%; left: 40%;
  width: 50px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: cg-figure 6s ease-in-out infinite;
}
.scn-cordelias-grief .tear-drop {
  position: absolute; bottom: 55%; left: 47.5%;
  width: 4px; height: 8px;
  background: radial-gradient(circle at 50% 30%, #b0d0ff 0%, #6090cc 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 6px 2px rgba(96,144,204,0.5);
  animation: cg-tear 3s ease-in-out infinite;
}
.scn-cordelias-grief .hand-gesture {
  position: absolute; bottom: 42%; left: 39%;
  width: 14px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-10deg);
  animation: cg-hand 4s ease-in-out infinite alternate;
}
.scn-cordelias-grief .glow-aura {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 120px;
  background: radial-gradient(circle at 50% 60%, rgba(255,200,100,0.25) 0%, transparent 70%);
  animation: cg-glow 8s ease-in-out infinite alternate;
}
.scn-cordelias-grief .leaf-drift {
  position: absolute; top: 20%; left: 70%; width: 12px; height: 6px;
  background: linear-gradient(135deg, #a67c52, #7a5a3a);
  border-radius: 60% 40% 60% 40% / 50% 60% 40% 50%;
  filter: blur(1px);
  animation: cg-leaf 12s linear infinite;
}
@keyframes cg-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes cg-ground { 0%,100% { transform: scaleY(0.9) translateY(0); } 50% { transform: scaleY(0.92) translateY(-2px); } }
@keyframes cg-figure { 0%,100% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(1deg) translateX(2px); } 75% { transform: rotate(-1deg) translateX(-1px); } }
@keyframes cg-tear { 0% { opacity:0; transform: translateY(0) scale(0.8); } 20% { opacity:1; transform: translateY(0) scale(1); } 80% { opacity:1; transform: translateY(15px) scale(0.9); } 100% { opacity:0; transform: translateY(20px) scale(0.7); } }
@keyframes cg-hand { 0% { transform: rotate(-10deg) translateY(0); } 100% { transform: rotate(0deg) translateY(-2px); } }
@keyframes cg-glow { 0% { opacity:0.3; transform: scale(1); } 100% { opacity:0.6; transform: scale(1.2); } }
@keyframes cg-leaf { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(-30px) translateY(10px) rotate(15deg); } 66% { transform: translateX(-60px) translateY(-5px) rotate(-10deg); } 100% { transform: translateX(-100px) translateY(30px) rotate(20deg); } }

/* scene lear-in-town (dark mood, sunlit) */
.scn-lear-in-town {
  background: linear-gradient(180deg, #f0c070 0%, #d09050 30%, #805030 100%),
              radial-gradient(ellipse at 50% 40%, #d09050 0%, transparent 60%);
}
.scn-lear-in-town .harsh-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffe0a0 0%, #d0a070 100%);
  animation: lit-sky 20s ease-in-out infinite alternate;
}
.scn-lear-in-town .sun-disk {
  position: absolute; top: 5%; right: 25%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd080 0%, #f0a030 60%, #c07020 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(240,160,48,0.6), 0 0 60px 30px rgba(192,112,32,0.3);
  animation: lit-sun 10s ease-in-out infinite alternate;
}
.scn-lear-in-town .town-skyline {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 100%, 5% 60%, 10% 80%, 15% 40%, 20% 70%, 25% 30%, 30% 65%, 35% 35%, 40% 55%, 45% 20%, 50% 50%, 55% 25%, 60% 60%, 65% 15%, 70% 55%, 75% 30%, 80% 70%, 85% 25%, 90% 50%, 95% 40%, 100% 65%, 100% 100%);
  animation: lit-town 15s ease-in-out infinite;
}
.scn-lear-in-town .lear-figure {
  position: absolute; bottom: 20%; left: 45%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  transform: scaleX(0.8) skewX(-5deg);
  animation: lit-lear 6s ease-in-out infinite alternate;
}
.scn-lear-in-town .lear-shadow {
  position: absolute; bottom: 15%; left: 40%; width: 70px; height: 20px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: lit-shadow 10s ease-in-out infinite alternate;
}
.scn-lear-in-town .dark-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: lit-ground 20s ease-in-out infinite;
}
@keyframes lit-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes lit-sun { 0% { transform: scale(1); box-shadow: 0 0 30px 15px rgba(240,160,48,0.6); } 100% { transform: scale(1.05); box-shadow: 0 0 40px 20px rgba(240,160,48,0.8); } }
@keyframes lit-town { 0% { transform: translateY(0); } 100% { transform: translateY(-3px); } }
@keyframes lit-lear { 0% { transform: scaleX(0.8) skewX(-5deg) translateY(0); } 50% { transform: scaleX(0.8) skewX(-3deg) translateY(-2px); } 100% { transform: scaleX(0.8) skewX(-7deg) translateY(1px); } }
@keyframes lit-shadow { 0% { transform: scaleX(1); opacity:0.4; } 100% { transform: scaleX(1.2); opacity:0.6; } }
@keyframes lit-ground { 0% { transform: translateY(0); } 100% { transform: translateY(2px); } }

/* scene kent-leads-gentleman (calm sunlit, walking) */
.scn-kent-leads-gentleman {
  background: linear-gradient(180deg, #c8e0b0 0%, #a0c080 50%, #709050 100%),
              radial-gradient(ellipse at 60% 30%, #d0f0b0 0%, transparent 70%);
}
.scn-kent-leads-gentleman .calm-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e0f0c8 0%, #b8d8a0 100%);
  animation: klg-sky 18s ease-in-out infinite alternate;
}
.scn-kent-leads-gentleman .meadow-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #80a060 0%, #507030 100%);
  border-radius: 40% 30% 0 0 / 60% 40% 0 0;
  animation: klg-ground 22s ease-in-out infinite;
}
.scn-kent-leads-gentleman .tree-left {
  position: absolute; bottom: 30%; left: 10%;
  width: 60px; height: 90px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: klg-tree-l 12s ease-in-out infinite alternate;
}
.scn-kent-leads-gentleman .tree-right {
  position: absolute; bottom: 30%; right: 15%;
  width: 70px; height: 100px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: klg-tree-r 15s ease-in-out infinite alternate;
  animation-delay: 2s;
}
.scn-kent-leads-gentleman .figure-kent {
  position: absolute; bottom: 18%; left: 35%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 35% 35% 30% 30% / 55% 55% 40% 40%;
  transform: scaleX(0.9);
  animation: klg-walk1 5s ease-in-out infinite;
}
.scn-kent-leads-gentleman .figure-gentleman {
  position: absolute; bottom: 18%; left: 48%;
  width: 28px; height: 68px;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 35% 35% 30% 30% / 55% 55% 40% 40%;
  transform: scaleX(0.9);
  animation: klg-walk2 5s ease-in-out infinite;
  animation-delay: 1.5s;
}
.scn-kent-leads-gentleman .bird-calm {
  position: absolute; top: 15%; left: 60%;
  width: 14px; height: 8px;
  background: transparent;
  border: solid 2px #4a5a3a;
  border-radius: 50% 50% 0 0;
  border-bottom: none;
  transform: rotate(10deg);
  animation: klg-bird 8s linear infinite;
}
@keyframes klg-sky { 0% { opacity:0.8; } 100% { opacity:1; } }
@keyframes klg-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes klg-tree-l { 0% { transform: rotate(0deg); } 100% { transform: rotate(2deg); } }
@keyframes klg-tree-r { 0% { transform: rotate(0deg); } 100% { transform: rotate(-3deg); } }
@keyframes klg-walk1 { 0% { transform: scaleX(0.9) translateX(0); } 25% { transform: scaleX(0.9) translateX(5px); } 75% { transform: scaleX(0.9) translateX(-3px); } 100% { transform: scaleX(0.9) translateX(0); } }
@keyframes klg-walk2 { 0% { transform: scaleX(0.9) translateX(0); } 25% { transform: scaleX(0.9) translateX(-4px); } 75% { transform: scaleX(0.9) translateX(6px); } 100% { transform: scaleX(0.9) translateX(0); } }
@keyframes klg-bird { 0% { transform: translateX(0) translateY(0) rotate(10deg); } 33% { transform: translateX(-20px) translateY(-8px) rotate(5deg); } 66% { transform: translateX(-40px) translateY(4px) rotate(15deg); } 100% { transform: translateX(-60px) translateY(-6px) rotate(10deg); } }

/* scene cordelia-seeks-lear (warm bright interior) */
.scn-cordelia-seeks-lear {
  background: linear-gradient(180deg, #d0b080 0%, #b09060 50%, #907050 100%),
              radial-gradient(ellipse at 50% 30%, #e0c090 0%, transparent 80%);
}
.scn-cordelia-seeks-lear .interior-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8b090, #a08060);
  animation: csl-wall 25s ease-in-out infinite alternate;
}
.scn-cordelia-seeks-lear .window-frame {
  position: absolute; top: 10%; left: 60%;
  width: 80px; height: 100px;
  background: linear-gradient(180deg, #eeddcc, #bba080);
  border: 6px solid #8a6a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(200,180,150,0.5);
  animation: csl-window 12s ease-in-out infinite alternate;
}
.scn-cordelia-seeks-lear .sunbeam-light {
  position: absolute; top: 12%; left: 62%;
  width: 100px; height: 200px;
  background: linear-gradient(180deg, rgba(255,230,180,0.4) 0%, transparent 90%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  animation: csl-beam 20s ease-in-out infinite alternate;
}
.scn-cordelia-seeks-lear .cordelia-silhouette {
  position: absolute; bottom: 20%; left: 50%;
  width: 45px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform: translateX(-50%);
  animation: csl-cordelia 6s ease-in-out infinite;
}
.scn-cordelia-seeks-lear .table-wood {
  position: absolute; bottom: 12%; left: 35%;
  width: 120px; height: 18px;
  background: linear-gradient(180deg, #a08060, #705040);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: csl-table 8s ease-in-out infinite alternate;
}
.scn-cordelia-seeks-lear .dust-mote {
  position: absolute; top: 25%; left: 30%;
  width: 4px; height: 4px;
  background: rgba(255,220,180,0.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: csl-dust 14s linear infinite;
}
@keyframes csl-wall { 0% { opacity:0.9; } 100% { opacity:1; } }
@keyframes csl-window { 0% { box-shadow: inset 0 0 20px rgba(200,180,150,0.5); transform: scale(1); } 100% { box-shadow: inset 0 0 30px rgba(255,220,180,0.7); transform: scale(1.01); } }
@keyframes csl-beam { 0% { opacity:0.5; transform: skewX(0deg); } 50% { opacity:0.7; transform: skewX(2deg); } 100% { opacity:0.6; transform: skewX(-2deg); } }
@keyframes csl-cordelia { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); } }
@keyframes csl-table { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.02); } }
@keyframes csl-dust { 0% { transform: translateY(0) translateX(0); opacity:0; } 10% { opacity:0.8; } 90% { opacity:0.6; } 100% { transform: translateY(-50px) translateX(30px); opacity:0; } }

/* Scene 1: goneril-demands-reduction */
.scn-goneril-demands-reduction {
  background:
    linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 40%, #3a1a0a 100%),
    radial-gradient(ellipse at 60% 20%, #c08050 0%, transparent 60%);
}
.scn-goneril-demands-reduction .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #a07850 0%, #7a583a 100%);
  animation: gdr-bg 6s ease-in-out infinite alternate;
}
.scn-goneril-demands-reduction .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-goneril-demands-reduction .window {
  position: absolute; top: 12%; left: 68%; width: 60px; height: 80px;
  background: radial-gradient(circle at 50% 30%, #ffe0a0 0%, #c09850 70%);
  border: 4px solid #5a3a2a;
  border-radius: 4px;
  box-shadow: 0 0 30px 10px #c09850;
  animation: gdr-window 4s ease-in-out infinite alternate;
}
.scn-goneril-demands-reduction .throne {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #7a5030 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: gdr-throne 3s ease-in-out infinite;
}
.scn-goneril-demands-reduction .figure-king {
  position: absolute; bottom: 30%; left: 22%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gdr-king 2.5s ease-in-out infinite alternate;
}
.scn-goneril-demands-reduction .figure-queen {
  position: absolute; bottom: 30%; right: 30%; width: 36px; height: 66px;
  background: linear-gradient(180deg, #7a4040 0%, #4a2020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gdr-queen 3.2s ease-in-out infinite;
}
.scn-goneril-demands-reduction .knight {
  position: absolute; bottom: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
}
.scn-goneril-demands-reduction .knight-a { left: 45%; animation: gdr-knight 3.8s ease-in-out infinite; }
.scn-goneril-demands-reduction .knight-b { left: 50%; animation: gdr-knight 4.2s ease-in-out infinite 0.8s; }
.scn-goneril-demands-reduction .knight-c { left: 55%; animation: gdr-knight 3.5s ease-in-out infinite 1.6s; }

@keyframes gdr-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes gdr-window {
  0% { box-shadow: 0 0 20px 6px #c09850; }
  50% { box-shadow: 0 0 40px 12px #ffd080; }
  100% { box-shadow: 0 0 25px 8px #c09850; }
}
@keyframes gdr-throne {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02) translateY(-2px); }
}
@keyframes gdr-king {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-1px); }
  100% { transform: rotate(1deg) translateY(0); }
}
@keyframes gdr-queen {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(4deg); }
  50% { transform: translateX(20px) rotate(0deg); }
  75% { transform: translateX(10px) rotate(-4deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes gdr-knight {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

/* Scene 2: lear-curses-goneril */
.scn-lear-curses-goneril {
  background:
    linear-gradient(180deg, #1a0a1a 0%, #2a1a2a 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 30% 50%, #3a2a4a 0%, transparent 70%);
}
.scn-lear-curses-goneril .bg-deep {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  animation: lcg-deep 8s ease-in-out infinite alternate;
}
.scn-lear-curses-goneril .window-storm {
  position: absolute; top: 15%; right: 15%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #6a7a8a 0%, #3a4a5a 100%);
  border: 6px solid #1a1a2a;
  border-radius: 6px;
  box-shadow: inset 0 0 20px 6px #0a0a1a;
  animation: lcg-storm 3s step-end infinite;
}
.scn-lear-curses-goneril .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a0a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.8);
}
.scn-lear-curses-goneril .table-shadow {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 10px;
  box-shadow: 0 4px 30px rgba(0,0,0,.7);
  animation: lcg-table 2s ease-in-out infinite alternate;
}
.scn-lear-curses-goneril .figure-lear {
  position: absolute; bottom: 30%; left: 20%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -10px 0 20px rgba(0,0,0,.6);
  animation: lcg-lear 1.5s ease-in-out infinite;
}
.scn-lear-curses-goneril .figure-goneril-shadow {
  position: absolute; bottom: 30%; right: 25%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  opacity: 0.6;
  animation: lcg-goneril 3s ease-in-out infinite;
}
.scn-lear-curses-goneril .candle {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ffe080 0%, #d08040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #d08040;
  animation: lcg-candle 0.8s ease-in-out infinite alternate;
}
@keyframes lcg-deep { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes lcg-storm {
  0% { background: linear-gradient(135deg, #6a7a8a 0%, #3a4a5a 100%); }
  30% { background: linear-gradient(135deg, #8a9aaa 0%, #5a6a7a 100%); }
  60% { background: linear-gradient(135deg, #4a5a6a 0%, #2a3a4a 100%); }
  100% { background: linear-gradient(135deg, #6a7a8a 0%, #3a4a5a 100%); }
}
@keyframes lcg-table { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.03); } 100% { transform: translateX(-50%) scaleX(0.97); } }
@keyframes lcg-lear {
  0% { transform: rotate(0deg) translateY(0); }
  20% { transform: rotate(5deg) translateY(-4px); }
  40% { transform: rotate(-3deg) translateY(2px); }
  60% { transform: rotate(6deg) translateY(-6px); }
  80% { transform: rotate(-2deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes lcg-goneril {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(8px) scaleX(0.9); }
  100% { transform: translateX(-4px) scaleX(1.05); }
}
@keyframes lcg-candle { 0% { transform: translateX(-50%) scaleY(1); } 100% { transform: translateX(-50%) scaleY(1.2); } }

/* Scene 3: albany-ignorant */
.scn-albany-ignorant {
  background:
    linear-gradient(180deg, #d4c8a8 0%, #b8a888 40%, #9a8a6a 100%),
    radial-gradient(ellipse at 70% 30%, #e8d8b8 0%, transparent 60%);
}
.scn-albany-ignorant .room-light {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 100%);
  animation: ain-light 10s ease-in-out infinite alternate;
}
.scn-albany-ignorant .window-curtain {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 0 20px 6px #e8d8b8;
  animation: ain-curtain 6s ease-in-out infinite alternate;
}
.scn-albany-ignorant .floor-wood {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  box-shadow: inset 0 6px 18px rgba(0,0,0,.3);
}
.scn-albany-ignorant .chair {
  position: absolute; bottom: 30%; right: 20%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  transform-origin: bottom center;
  animation: ain-chair 12s ease-in-out infinite;
}
.scn-albany-ignorant .figure-albany {
  position: absolute; bottom: 30%; right: 22%; width: 40px; height: 65px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ain-albany 8s ease-in-out infinite alternate;
}
.scn-albany-ignorant .table {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
}
.scn-albany-ignorant .cup {
  position: absolute; bottom: 33%; left: 50%; width: 16px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a888 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: ain-cup 4s ease-in-out infinite;
}
@keyframes ain-light { 0% { opacity: 0.92; } 50% { opacity: 1; } 100% { opacity: 0.88; } }
@keyframes ain-curtain {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.03) translateX(4px); }
  100% { transform: scaleX(0.97) translateX(-2px); }
}
@keyframes ain-chair {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01) translateY(-1px); }
  100% { transform: scaleY(0.99) translateY(1px); }
}
@keyframes ain-albany {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes ain-cup {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}

/* Scene 4: goneril-dismisses-albany */
.scn-goneril-dismisses-albany {
  background:
    linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 40%, #3a1a0a 100%),
    radial-gradient(ellipse at 40% 20%, #b08060 0%, transparent 70%);
}
.scn-goneril-dismisses-albany .hall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #9a7a6a 0%, #7a5a4a 100%);
  animation: gda-bg 5s ease-in-out infinite alternate;
}
.scn-goneril-dismisses-albany .floor-stone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-goneril-dismisses-albany .wall-panel {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6a5a 20%, #6a4a3a 40%, #5a3a2a 70%, #6a4a3a 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 12px rgba(0,0,0,.3);
  animation: gda-panel 7s ease-in-out infinite;
}
.scn-goneril-dismisses-albany .door {
  position: absolute; bottom: 30%; left: 60%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -6px 0 12px rgba(0,0,0,.4);
  animation: gda-door 2s ease-in-out infinite alternate;
}
.scn-goneril-dismisses-albany .figure-goneril {
  position: absolute; bottom: 30%; left: 15%; width: 42px; height: 72px;
  background: linear-gradient(180deg, #6a3a3a 0%, #3a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: gda-goneril 2.8s ease-in-out infinite;
}
.scn-goneril-dismisses-albany .figure-albany {
  position: absolute; bottom: 30%; right: 20%; width: 38px; height: 68px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gda-albany 4s ease-in-out infinite alternate;
}
.scn-goneril-dismisses-albany .figure-lear {
  position: absolute; bottom: 30%; left: 40%; width: 46px; height: 76px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gda-lear 3.5s ease-in-out infinite;
}
@keyframes gda-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes gda-panel {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(0.98); }
}
@keyframes gda-door {
  0% { transform: rotateY(0deg); }
  100% { transform: rotateY(-15deg); }
}
@keyframes gda-goneril {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(12px) rotate(5deg); }
  60% { transform: translateX(6px) rotate(-3deg); }
  100% { transform: translateX(-4px) rotate(2deg); }
}
@keyframes gda-albany {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-8px) scaleX(0.92); }
  100% { transform: translateX(4px) scaleX(1.06); }
}
@keyframes gda-lear {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* Scene 1: kent-and-gentleman-talk - calm, bright interior */
.scn-kent-and-gentleman-talk {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 40%, #d4bfa0 100%),
    radial-gradient(ellipse at 50% 20%, #fff8f0 0%, transparent 60%);
}
.scn-kent-and-gentleman-talk .room-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e1cc 0%, #d9c8b0 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 40px 80px rgba(180,140,100,0.3);
}
.scn-kent-and-gentleman-talk .window {
  position: absolute; top: 8%; left: 50%; width: 90px; height: 130px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #fff9f0 0%, #e0cdb8 100%);
  border-radius: 4px;
  box-shadow: 0 0 60px 20px rgba(255,240,220,0.4);
  animation: kag-window 8s ease-in-out infinite alternate;
}
.scn-kent-and-gentleman-talk .table {
  position: absolute; bottom: 18%; left: 50%; width: 200px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 10% / 50%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}
.scn-kent-and-gentleman-talk .figure-left {
  position: absolute; bottom: 22%; left: 28%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a3a50 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kag-figure-l 5s ease-in-out infinite;
}
.scn-kent-and-gentleman-talk .figure-right {
  position: absolute; bottom: 22%; right: 28%; width: 38px; height: 82px;
  background: linear-gradient(180deg, #4a4a60 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kag-figure-r 6s ease-in-out infinite;
}
.scn-kent-and-gentleman-talk .chair-left {
  position: absolute; bottom: 19%; left: 26%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-kent-and-gentleman-talk .chair-right {
  position: absolute; bottom: 19%; right: 26%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-kent-and-gentleman-talk .candle {
  position: absolute; bottom: 34%; left: 50%; width: 8px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0c880 0%, #c08040 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(200,140,60,0.6), 0 0 60px 20px rgba(200,140,60,0.3);
  animation: kag-candle 3s ease-in-out infinite alternate;
}
@keyframes kag-window {
  0% { opacity: 0.85; box-shadow: 0 0 40px 15px rgba(255,240,220,0.3); }
  50% { opacity: 1; box-shadow: 0 0 80px 30px rgba(255,240,220,0.5); }
  100% { opacity: 0.9; box-shadow: 0 0 50px 20px rgba(255,240,220,0.35); }
}
@keyframes kag-figure-l {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(-2deg); }
  60% { transform: translateY(1px) rotate(1deg); }
}
@keyframes kag-figure-r {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-3px) rotate(3deg); }
  70% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes kag-candle {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.95); opacity: 0.85; }
}

/* Scene 2: british-camp-edmund - tense, overcast */
.scn-british-camp-edmund {
  background: 
    linear-gradient(180deg, #3a4a5e 0%, #2a3a4a 40%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 0%, #5a6a7e 0%, transparent 70%);
}
.scn-british-camp-edmund .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a5a6e 0%, #2a3a4e 100%);
  animation: bce-sky 12s ease-in-out infinite alternate;
}
.scn-british-camp-edmund .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-british-camp-edmund .tent-left {
  position: absolute; bottom: 32%; left: 15%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #6a7a5a 0%, #3a4a2a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: bce-tent 15s ease-in-out infinite alternate;
}
.scn-british-camp-edmund .tent-right {
  position: absolute; bottom: 32%; right: 15%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #6a7a5a 0%, #3a4a2a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: bce-tent 18s ease-in-out infinite alternate-reverse;
}
.scn-british-camp-edmund .flag {
  position: absolute; top: 10%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a0461a 0%, #6a2a0a 100%);
  border-radius: 0 20% 20% 0;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: bce-flag 4s ease-in-out infinite;
}
.scn-british-camp-edmund .figure-edmund {
  position: absolute; bottom: 27%; left: 45%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bce-figure-e 3s ease-in-out infinite;
}
.scn-british-camp-edmund .figure-regan {
  position: absolute; bottom: 27%; left: 55%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bce-figure-r 3.5s ease-in-out infinite 0.5s;
}
.scn-british-camp-edmund .soldier {
  position: absolute; bottom: 27%; left: 70%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bce-soldier 6s ease-in-out infinite;
}
.scn-british-camp-edmund .drum {
  position: absolute; bottom: 25%; left: 60%; width: 20px; height: 15px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: bce-drum 8s ease-in-out infinite;
}
@keyframes bce-sky {
  0% { opacity: 0.8; background-position: 0% 0%; }
  50% { opacity: 0.9; background-position: 50% 10%; }
  100% { opacity: 0.7; background-position: 100% 0%; }
}
@keyframes bce-tent {
  0% { transform: skew(0deg); }
  50% { transform: skew(2deg) scale(1.02); }
  100% { transform: skew(-2deg); }
}
@keyframes bce-flag {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(10deg); }
  50% { transform: translateX(-50%) rotate(-5deg); }
  75% { transform: translateX(-50%) rotate(15deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes bce-figure-e {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(-3deg); }
  60% { transform: translateY(1px) rotate(2deg); }
}
@keyframes bce-figure-r {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-1px) rotate(4deg); }
  70% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes bce-soldier {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(5px) scaleY(1.05); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes bce-drum {
  0% { transform: scale(1); box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
  50% { transform: scale(1.1); box-shadow: 0 4px 12px rgba(0,0,0,0.6); }
  100% { transform: scale(1); box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
}

/* Scene 3: regan-jealous - tense, overcast */
.scn-regan-jealous {
  background: 
    linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 40%, #0a1a2a 100%),
    radial-gradient(ellipse at 50% 60%, #4a5a6a 0%, transparent 70%);
}
.scn-regan-jealous .backdrop {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  opacity: 0.8;
  animation: rje-backdrop 10s ease-in-out infinite alternate;
}
.scn-regan-jealous .figure-regan {
  position: absolute; bottom: 20%; left: 30%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a0a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rje-regan 4s ease-in-out infinite;
}
.scn-regan-jealous .figure-edmund {
  position: absolute; bottom: 20%; right: 30%; width: 38px; height: 78px;
  background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rje-edmund 4.5s ease-in-out infinite 0.5s;
}
.scn-regan-jealous .shadow {
  position: absolute; bottom: 16%; left: 25%; width: 100px; height: 20px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 80%);
  border-radius: 50%;
  animation: rje-shadow 5s ease-in-out infinite;
}
.scn-regan-jealous .light-source {
  position: absolute; bottom: 30%; left: 50%; width: 12px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c0a060 0%, #806030 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(192,160,96,0.5), 0 0 60px 20px rgba(192,160,96,0.2);
  animation: rje-light 2s ease-in-out infinite alternate;
}
.scn-regan-jealous .scroll {
  position: absolute; bottom: 24%; left: 45%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #d4bfa0 0%, #b8a080 100%);
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-20deg);
  animation: rje-scroll 7s ease-in-out infinite;
}
@keyframes rje-backdrop {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes rje-regan {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(-5deg); }
  60% { transform: translateY(2px) rotate(3deg); }
}
@keyframes rje-edmund {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-3px) rotate(4deg); }
  70% { transform: translateY(1px) rotate(-2deg); }
}
@keyframes rje-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.2); opacity: 0.4; }
  100% { transform: scaleX(1); opacity: 0.6; }
}
@keyframes rje-light {
  0% { transform: translateX(-50%) scale(1); opacity: 0.7; box-shadow: 0 0 20px 8px rgba(192,160,96,0.3); }
  50% { transform: translateX(-50%) scale(1.1); opacity: 1; box-shadow: 0 0 40px 15px rgba(192,160,96,0.6); }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.8; box-shadow: 0 0 25px 10px rgba(192,160,96,0.35); }
}
@keyframes rje-scroll {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-2px); }
  100% { transform: rotate(-20deg) translateY(0); }
}

/* Scene 4: albany-joins - tense, overcast */
.scn-albany-joins {
  background: 
    linear-gradient(180deg, #3a4a5e 0%, #2a3a4a 40%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 80%, #5a6a7e 0%, transparent 60%);
}
.scn-albany-joins .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a5a6e 0%, #2a3a4e 100%);
  animation: aj-sky 15s ease-in-out infinite alternate;
}
.scn-albany-joins .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}
.scn-albany-joins .tent {
  position: absolute; bottom: 35%; left: 10%; width: 100px; height: 110px;
  background: linear-gradient(180deg, #5a6a4a 0%, #2a3a1a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);
  animation: aj-tent 12s ease-in-out infinite alternate;
}
.scn-albany-joins .flag {
  position: absolute; top: 8%; left: 12%; width: 25px; height: 40px;
  background: linear-gradient(180deg, #a0461a 0%, #602a0a 100%);
  border-radius: 0 20% 20% 0;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: aj-flag 4s ease-in-out infinite;
}
.scn-albany-joins .figure-albany {
  position: absolute; bottom: 30%; left: 40%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #2a2a4a 0%, #0a0a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aj-albany 3s ease-in-out infinite;
}
.scn-albany-joins .figure-soldier1 {
  position: absolute; bottom: 30%; left: 48%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aj-soldier1 3.5s ease-in-out infinite 0.2s;
}
.scn-albany-joins .figure-soldier2 {
  position: absolute; bottom: 30%; left: 56%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aj-soldier2 4s ease-in-out infinite 0.7s;
}
.scn-albany-joins .drum {
  position: absolute; bottom: 27%; left: 35%; width: 22px; height: 16px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: aj-drum 6s ease-in-out infinite;
}
.scn-albany-joins .horse {
  position: absolute; bottom: 25%; left: 65%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  clip-path: polygon(20% 10%, 80% 10%, 90% 40%, 100% 60%, 80% 90%, 20% 90%, 0% 60%, 10% 40%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: aj-horse 8s ease-in-out infinite;
}
@keyframes aj-sky {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.7; }
}
@keyframes aj-tent {
  0% { transform: skew(0deg); }
  50% { transform: skew(1deg) scale(1.01); }
  100% { transform: skew(-1deg); }
}
@keyframes aj-flag {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(8deg); }
  50% { transform: rotate(-4deg); }
  75% { transform: rotate(12deg); }
  100% { transform: rotate(0deg); }
}
@keyframes aj-albany {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(-2deg); }
  60% { transform: translateY(1px) rotate(1deg); }
}
@keyframes aj-soldier1 {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-2px) rotate(3deg); }
  70% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes aj-soldier2 {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  35% { transform: translateY(-1px) rotate(-3deg); }
  65% { transform: translateY(2px) rotate(2deg); }
}
@keyframes aj-drum {
  0% { transform: scale(1); box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
  50% { transform: scale(1.08); box-shadow: 0 4px 12px rgba(0,0,0,0.7); }
  100% { transform: scale(1); box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
}
@keyframes aj-horse {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(5px) scaleX(1.05); }
  100% { transform: translateX(0) scaleX(1); }
}

/* Scene 1: gloucester-leads-dover - Wide horizon, bleak landscape */
.scn-gloucester-leads-dover {
  background: linear-gradient(180deg, #4a5054 0%, #60686d 30%, #40484a 100%), radial-gradient(ellipse at 50% 100%, #2a3033 0%, transparent 70%);
}
.scn-gloucester-leads-dover .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6a7277 0%, #4a5054 60%, transparent 100%);
  animation: gd-sky-pulse 20s ease-in-out infinite alternate;
}
.scn-gloucester-leads-dover .moors-dist {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a423a 0%, #1a221a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: gd-moors 25s ease-in-out infinite alternate;
}
.scn-gloucester-leads-dover .path-dirt {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 70% 50% 50% / 20% 80% 20% 80%;
  filter: blur(2px);
}
.scn-gloucester-leads-dover .figure-edgar {
  position: absolute; bottom: 24%; left: 30%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 60% 50% 50% / 60% 40% 40% 60%;
  transform-origin: bottom center;
  animation: gd-walk-edgar 6s ease-in-out infinite;
}
.scn-gloucester-leads-dover .figure-gloucester {
  position: absolute; bottom: 24%; left: 40%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gd-walk-glou 6s ease-in-out infinite 3s;
}
.scn-gloucester-leads-dover .tree-dead {
  position: absolute; bottom: 28%; left: 65%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  transform-origin: bottom center;
  animation: gd-tree 8s ease-in-out infinite;
}
.scn-gloucester-leads-dover .tree-dead::after {
  content: ''; position: absolute; top: -10px; left: -12px; width: 30px; height: 20px;
  background: linear-gradient(135deg, #1a1a0a 0%, transparent 100%);
  border-radius: 80% 20% 50% 50% / 100% 40% 60% 20%;
}
.scn-gloucester-leads-dover .mist-bank {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, rgba(180,190,180,.3) 0%, rgba(180,190,180,.1) 50%, rgba(180,190,180,.3) 100%);
  filter: blur(12px);
  animation: gd-mist 45s linear infinite;
}
@keyframes gd-sky-pulse {
  0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; }
}
@keyframes gd-moors {
  0% { transform: translateY(0); } 50% { transform: translateY(-4px) scale(1.01); } 100% { transform: translateY(0); }
}
@keyframes gd-walk-edgar {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(24px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0); }
}
@keyframes gd-walk-glou {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  25% { transform: translateX(-6px) translateY(-1px) rotate(-1deg); }
  50% { transform: translateX(-12px) translateY(0) rotate(1deg); }
  75% { transform: translateX(-18px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(-24px) translateY(0) rotate(0); }
}
@keyframes gd-tree {
  0%, 100% { transform: rotate(0); } 25% { transform: rotate(2deg); } 75% { transform: rotate(-3deg); }
}
@keyframes gd-mist {
  0% { transform: translateX(-20px); opacity: .3; } 50% { transform: translateX(40px); opacity: .6; } 100% { transform: translateX(80px); opacity: .3; }
}

/* Scene 2: goneril-edmund-intrigue - Interior cutaway, conspiring figures */
.scn-goneril-edmund-intrigue {
  background: linear-gradient(135deg, #c8a05a 0%, #8c6a30 50%, #3a2a10 100%), radial-gradient(circle at 60% 50%, #e0c080 0%, transparent 60%);
}
.scn-goneril-edmund-intrigue .wall-shadow {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #5a3a1a 50%, transparent 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
  animation: gei-shadow 5s ease-in-out infinite alternate;
}
.scn-goneril-edmund-intrigue .arch-window {
  position: absolute; top: 10%; right: 15%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 30%, #a0b0c0 0%, #506070 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.4), 0 0 10px rgba(0,0,0,.5);
  opacity: .6;
}
.scn-goneril-edmund-intrigue .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.5);
}
.scn-goneril-edmund-intrigue .table-wood {
  position: absolute; bottom: 18%; left: 40%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #6a4030 0%, #3a2010 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
}
.scn-goneril-edmund-intrigue .candle-flame {
  position: absolute; bottom: 30%; left: 48%; width: 6px; height: 18px;
  background: radial-gradient(circle at 50% 80%, #ffd080 0%, #c08030 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 8px #d09040, 0 0 60px 20px rgba(180, 120, 40, .4);
  animation: gei-flame 2s ease-in-out infinite alternate;
}
.scn-goneril-edmund-intrigue .goneril-figure {
  position: absolute; bottom: 18%; left: 30%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #b07050 0%, #804030 60%, #3a1a10 100%);
  border-radius: 40% 60% 50% 50% / 70% 50% 40% 30%;
  transform-origin: bottom center;
  animation: gei-reach 6s ease-in-out infinite;
}
.scn-goneril-edmund-intrigue .edmund-figure {
  position: absolute; bottom: 16%; left: 55%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 60% / 60% 40% 60% 40%;
  transform-origin: bottom center;
  animation: gei-bow 4s ease-in-out infinite;
}
@keyframes gei-shadow {
  0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; }
}
@keyframes gei-flame {
  0% { transform: scaleY(1) translateX(0); opacity: .8; }
  25% { transform: scaleY(1.1) translateX(2px); opacity: 1; }
  50% { transform: scaleY(.9) translateX(-1px); opacity: .9; }
  75% { transform: scaleY(1.05) translateX(1px); opacity: 1; }
  100% { transform: scaleY(1) translateX(0); opacity: .8; }
}
@keyframes gei-reach {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(10px) rotate(5deg); }
  50% { transform: translateX(20px) rotate(10deg); }
  75% { transform: translateX(10px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes gei-bow {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-4px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-6px) rotate(-4deg); }
  100% { transform: translateY(0) rotate(0); }
}

/* Scene 3: albany-confronts-goneril - Tense standoff, columned space */
.scn-albany-confronts-goneril {
  background: linear-gradient(180deg, #d4c8a0 0%, #a09070 40%, #504030 100%), radial-gradient(ellipse at 30% 80%, #e0d0b0 0%, transparent 60%);
}
.scn-albany-confronts-goneril .column-stone {
  position: absolute; top: 0; left: 20%; width: 30px; height: 80%;
  background: linear-gradient(90deg, #8a7a60 0%, #b0a090 30%, #7a6a50 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 10px 0 20px rgba(0,0,0,.3);
}
.scn-albany-confronts-goneril .floor-checkered {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(45deg, #5a4a30 25%, transparent 25%, transparent 75%, #5a4a30 75%),
              linear-gradient(45deg, #5a4a30 25%, transparent 25%, transparent 75%, #5a4a30 75%);
  background-size: 40px 40px;
  background-position: 0 0, 20px 20px;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.5);
}
.scn-albany-confronts-goneril .wall-panel {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #b0a080 0%, #908060 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.2);
}
.scn-albany-confronts-goneril .albany-figure {
  position: absolute; bottom: 18%; left: 35%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 60%, #3a2a1a 100%);
  border-radius: 40% 60% 50% 50% / 70% 50% 40% 30%;
  transform-origin: bottom center;
  animation: acg-tense 3s ease-in-out infinite;
}
.scn-albany-confronts-goneril .goneril-figure-intrigue {
  position: absolute; bottom: 18%; right: 25%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #b07050 0%, #804030 60%, #3a1a10 100%);
  border-radius: 60% 40% 50% 50% / 50% 70% 30% 40%;
  transform-origin: bottom center;
  animation: acg-defiant 4s ease-in-out infinite;
}
.scn-albany-confronts-goneril .shadow-sharp {
  position: absolute; bottom: 18%; left: 35%; width: 80px; height: 20px;
  background: linear-gradient(90deg, rgba(0,0,0,.6) 0%, transparent 100%);
  filter: blur(4px);
  animation: acg-shadow-stretch 8s ease-in-out infinite alternate;
}
@keyframes acg-tense {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-2px) rotate(1deg); }
  75% { transform: translateY(2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes acg-defiant {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(2px) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes acg-shadow-stretch {
  0% { transform: scaleX(1); opacity: .3; } 50% { transform: scaleX(1.5); opacity: .6; } 100% { transform: scaleX(1); opacity: .3; }
}

/* Scene 4: goneril-albany-argument - Close-up, vertical confrontation */
.scn-goneril-albany-argument {
  background: linear-gradient(180deg, #1a1110 0%, #3a2520 40%, #1a1110 100%), radial-gradient(ellipse at 50% 30%, #ffe0a0 0%, #a06040 50%, #1a1110 90%);
}
.scn-goneril-albany-argument .void-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 20%, #1a1110 80%), radial-gradient(circle at 50% 30%, transparent 30%, #0a0505 90%);
  animation: gaa-void 8s ease-in-out infinite alternate;
}
.scn-goneril-albany-argument .light-shaft {
  position: absolute; top: -10%; left: 40%; width: 60px; height: 120%;
  background: linear-gradient(180deg, rgba(255, 220, 160, .4) 0%, transparent 100%);
  filter: blur(10px);
  animation: gaa-light 4s ease-in-out infinite alternate;
}
.scn-goneril-albany-argument .goneril-profile {
  position: absolute; bottom: 10%; left: 15%; width: 40px; height: 60px;
  background: linear-gradient(135deg, #b07050 0%, #6a3020 100%);
  border-radius: 60% 40% 50% 50% / 40% 70% 30% 60%;
  transform-origin: bottom center;
  animation: gaa-profile 3s ease-in-out infinite;
  box-shadow: -10px 0 20px rgba(0,0,0,.5);
}
.scn-goneril-albany-argument .albany-hand {
  position: absolute; bottom: 20%; right: 10%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%);
  border-radius: 40% 60% 20% 80% / 60% 40% 80% 20%;
  transform-origin: bottom left;
  animation: gaa-gesture 2s ease-in-out infinite;
  box-shadow: 0 0 10px rgba(0,0,0,.3);
}
.scn-goneril-albany-argument .debris-drift {
  position: absolute; top: 20%; left: 50%; width: 4px; height: 4px;
  background: #a08060;
  border-radius: 50%;
  filter: blur(1px);
  animation: gaa-debris 7s linear infinite;
}
@keyframes gaa-void {
  0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; }
}
@keyframes gaa-light {
  0% { transform: translateX(-10px) scaleX(1); opacity: .4; }
  25% { transform: translateX(5px) scaleX(1.2); opacity: .8; }
  50% { transform: translateX(-5px) scaleX(.9); opacity: .6; }
  75% { transform: translateX(10px) scaleX(1.1); opacity: .7; }
  100% { transform: translateX(-10px) scaleX(1); opacity: .4; }
}
@keyframes gaa-profile {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-4px) rotate(2deg); }
  75% { transform: translateY(4px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes gaa-gesture {
  0% { transform: rotate(10deg); }
  25% { transform: rotate(-10deg); }
  50% { transform: rotate(5deg); }
  75% { transform: rotate(-15deg); }
  100% { transform: rotate(10deg); }
}
@keyframes gaa-debris {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: .6; }
  50% { transform: translateY(40px) translateX(20px) scale(.5); opacity: .2; }
  100% { transform: translateY(80px) translateX(-10px) scale(0); opacity: 0; }
}

.scn-lear-preaches {
  background:
    linear-gradient(180deg, #f0d6a0 0%, #d4b080 30%, #8b6f4e 60%, #4a3020 100%),
    radial-gradient(ellipse at 50% 0%, #ffe8b0 0%, transparent 70%);
}
.scn-lear-preaches .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #c8a870 0%, #f0d6a0 40%, transparent 100%);
  animation: lp-sky 8s ease-in-out infinite alternate;
}
.scn-lear-preaches .sun {
  position: absolute; top: 12%; left: 60%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #fff2d0 0%, #ffd060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,208,96,0.3);
  animation: lp-sun 6s ease-in-out infinite alternate;
}
.scn-lear-preaches .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
}
.scn-lear-preaches .cliff {
  position: absolute; bottom: 30%; left: 15%; right: 55%;
  height: 35%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: lp-cliff 12s ease-in-out infinite alternate;
}
.scn-lear-preaches .figure-lear {
  position: absolute; bottom: 35%; left: 28%;
  width: 40px; height: 80px;
  animation: lp-walk 5s ease-in-out infinite alternate;
}
.scn-lear-preaches .figure-lear .head {
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 14px; height: 18px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-lear-preaches .figure-lear .torso {
  position: absolute; top: 16px; left: 50%; transform: translateX(-50%);
  width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
}
.scn-lear-preaches .figure-lear .arm-l,
.scn-lear-preaches .figure-lear .arm-r {
  position: absolute; top: 20px;
  width: 6px; height: 28px;
  background: #1a1a2a;
  border-radius: 40% 40% 20% 20%;
  transform-origin: top center;
}
.scn-lear-preaches .figure-lear .arm-l { left: -4px; animation: lp-arm-l 2s ease-in-out infinite alternate; }
.scn-lear-preaches .figure-lear .arm-r { right: -4px; animation: lp-arm-r 2s ease-in-out infinite alternate; }
.scn-lear-preaches .rock {
  position: absolute; bottom: 28%; left: 60%;
  width: 30px; height: 22px;
  background: #5a4a3a;
  border-radius: 40% 60% 30% 50% / 50% 40% 60% 50%;
  box-shadow: inset 2px 2px 4px rgba(0,0,0,0.3);
}
.scn-lear-preaches .cloud-a {
  position: absolute; top: 18%; left: 5%;
  width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, transparent 100%);
  filter: blur(5px);
  border-radius: 50%;
  animation: lp-cloud-a 40s linear infinite;
}
.scn-lear-preaches .cloud-b {
  position: absolute; top: 24%; right: 10%;
  width: 60px; height: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 100%);
  filter: blur(4px);
  border-radius: 50%;
  animation: lp-cloud-b 50s linear infinite reverse;
}
@keyframes lp-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes lp-sun { 0% { transform: scale(0.95); opacity: 0.9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.85; } }
@keyframes lp-cliff { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lp-walk { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(8px) rotate(0deg); } }
@keyframes lp-arm-l { 0% { transform: rotate(20deg); } 100% { transform: rotate(-10deg); } }
@keyframes lp-arm-r { 0% { transform: rotate(-20deg); } 100% { transform: rotate(10deg); } }
@keyframes lp-cloud-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes lp-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-lear-led-away {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #c8a870 40%, #8b6f4e 70%, #4a3020 100%),
    radial-gradient(ellipse at 60% 0%, #fff2d0 0%, transparent 60%);
}
.scn-lear-led-away .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d4b080 0%, transparent 100%);
  animation: la-sky 10s ease-in-out infinite alternate;
}
.scn-lear-led-away .sun {
  position: absolute; top: 8%; left: 70%;
  width: 45px; height: 45px;
  background: radial-gradient(circle, #fff8e0 0%, #ffd060 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px rgba(255,208,96,0.4);
  animation: la-sun 7s ease-in-out infinite alternate;
}
.scn-lear-led-away .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 70% 100%, 30% 100%);
}
.scn-lear-led-away .hill-bg {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 80% 50% 0 0 / 100% 70% 0 0;
  animation: la-hill 15s ease-in-out infinite alternate;
}
.scn-lear-led-away .figure-lear,
.scn-lear-led-away .figure-guard1,
.scn-lear-led-away .figure-guard2 {
  position: absolute; bottom: 25%;
  width: 30px; height: 70px;
  animation: la-march 8s linear infinite;
}
.scn-lear-led-away .figure-lear { left: 25%; animation-delay: 0s; }
.scn-lear-led-away .figure-guard1 { left: 40%; animation-delay: -1s; }
.scn-lear-led-away .figure-guard2 { left: 55%; animation-delay: -2s; }
.scn-lear-led-away .figure-lear .head,
.scn-lear-led-away .figure-guard1 .head,
.scn-lear-led-away .figure-guard2 .head {
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 12px; height: 16px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-lear-led-away .figure-lear .torso,
.scn-lear-led-away .figure-guard1 .torso,
.scn-lear-led-away .figure-guard2 .torso {
  position: absolute; top: 14px; left: 50%; transform: translateX(-50%);
  width: 16px; height: 35px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
}
.scn-lear-led-away .dust {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 10px;
  background: radial-gradient(circle, rgba(200,180,160,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: la-dust 4s ease-in-out infinite alternate;
}
@keyframes la-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes la-sun { 0% { transform: scale(0.95) translateX(0); } 50% { transform: scale(1.05) translateX(3px); } 100% { transform: scale(0.98) translateX(0); } }
@keyframes la-hill { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes la-march { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(10px) translateY(-1px); } 50% { transform: translateX(20px) translateY(0); } 75% { transform: translateX(30px) translateY(-1px); } 100% { transform: translateX(40px) translateY(0); } }
@keyframes la-dust { 0% { opacity: 0.2; transform: translateY(2px); } 50% { opacity: 0.8; transform: translateY(-2px); } 100% { opacity: 0.3; transform: translateY(1px); } }

.scn-aftermath-lear {
  background:
    linear-gradient(180deg, #d4c4a8 0%, #a0805a 40%, #6a5030 70%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 0%, #f5e6c8 0%, transparent 60%);
}
.scn-aftermath-lear .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c8b090 0%, transparent 100%);
  animation: al-sky 9s ease-in-out infinite alternate;
}
.scn-aftermath-lear .sun {
  position: absolute; top: 10%; left: 50%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #f5e6c8 0%, #d4a060 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(212,160,96,0.4);
  animation: al-sun 8s ease-in-out infinite alternate;
}
.scn-aftermath-lear .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 20%, 100% 10%, 100% 100%, 0% 100%);
}
.scn-aftermath-lear .body1,
.scn-aftermath-lear .body2 {
  position: absolute; bottom: 20%;
  width: 28px; height: 50px;
  animation: al-body 6s ease-in-out infinite alternate;
}
.scn-aftermath-lear .body1 { left: 30%; }
.scn-aftermath-lear .body2 { left: 55%; animation-delay: -3s; }
.scn-aftermath-lear .body1 .head,
.scn-aftermath-lear .body2 .head {
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 12px; height: 14px;
  background: #3a2a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-aftermath-lear .body1 .torso,
.scn-aftermath-lear .body2 .torso {
  position: absolute; top: 12px; left: 50%; transform: translateX(-50%);
  width: 16px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
}
.scn-aftermath-lear .broken-spear {
  position: absolute; bottom: 25%; left: 45%;
  width: 4px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a3a1a 100%);
  transform: rotate(30deg);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: al-spear 5s ease-in-out infinite alternate;
}
.scn-aftermath-lear .banner {
  position: absolute; bottom: 35%; left: 20%;
  width: 20px; height: 14px;
  background: #7a5a4a;
  clip-path: polygon(0% 0%, 100% 20%, 80% 100%, 0% 80%);
  animation: al-banner 4s ease-in-out infinite alternate;
}
.scn-aftermath-lear .rock {
  position: absolute; bottom: 18%; right: 15%;
  width: 35px; height: 25px;
  background: #4a3a2a;
  border-radius: 30% 50% 40% 60% / 40% 30% 70% 60%;
  box-shadow: inset 2px 2px 4px rgba(0,0,0,0.3);
}
@keyframes al-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes al-sun { 0% { transform: scale(0.95) translateX(0); } 50% { transform: scale(1.04) translateX(-2px); } 100% { transform: scale(0.97) translateX(0); } }
@keyframes al-body { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes al-spear { 0% { transform: rotate(28deg); } 50% { transform: rotate(32deg); } 100% { transform: rotate(30deg); } }
@keyframes al-banner { 0% { clip-path: polygon(0% 0%, 100% 20%, 80% 100%, 0% 80%); } 100% { clip-path: polygon(0% 0%, 100% 30%, 70% 100%, 0% 70%); } }

.scn-edgar-leads-father {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4c4a8 30%, #a0805a 60%, #6a5030 100%),
    radial-gradient(ellipse at 60% 0%, #fff8e0 0%, transparent 60%);
}
.scn-edgar-leads-father .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #e0d0b8 0%, transparent 100%);
  animation: el-sky 12s ease-in-out infinite alternate;
}
.scn-edgar-leads-father .sun {
  position: absolute; top: 10%; left: 65%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8e0 0%, #f0d6a0 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(240,214,160,0.4);
  animation: el-sun 9s ease-in-out infinite alternate;
}
.scn-edgar-leads-father .hill-far {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a0a080 0%, #6a5a4a 100%);
  border-radius: 70% 40% 0 0 / 90% 60% 0 0;
  animation: el-hill-far 20s ease-in-out infinite alternate;
}
.scn-edgar-leads-father .hill-near {
  position: absolute; bottom: 25%; left: 10%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 60% 50% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.2);
  animation: el-hill-near 15s ease-in-out infinite alternate;
}
.scn-edgar-leads-father .path {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 5%;
  background: linear-gradient(180deg, #a09080 0%, #8a7a6a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: el-path 10s ease-in-out infinite alternate;
}
.scn-edgar-leads-father .tree {
  position: absolute; bottom: 25%; left: 15%;
  width: 8px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: el-tree 8s ease-in-out infinite alternate;
}
.scn-edgar-leads-father .tree::before {
  content: '';
  position: absolute; top: -20px; left: -12px;
  width: 32px; height: 28px;
  background: radial-gradient(ellipse, #6a8a3a 0%, #4a6a2a 60%, transparent 80%);
  border-radius: 50%;
}
.scn-edgar-leads-father .figure-edgar,
.scn-edgar-leads-father .figure-gloucester {
  position: absolute; bottom: 22%;
  width: 28px; height: 65px;
  animation: el-walk 6s ease-in-out infinite alternate;
}
.scn-edgar-leads-father .figure-edgar { left: 45%; animation-delay: 0s; }
.scn-edgar-leads-father .figure-gloucester { left: 35%; animation-delay: -1s; }
.scn-edgar-leads-father .figure-edgar .head,
.scn-edgar-leads-father .figure-gloucester .head {
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 12px; height: 16px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-edgar-leads-father .figure-edgar .torso,
.scn-edgar-leads-father .figure-gloucester .torso {
  position: absolute; top: 14px; left: 50%; transform: translateX(-50%);
  width: 16px; height: 35px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
}
.scn-edgar-leads-father .figure-edgar .arm {
  position: absolute; top: 18px; right: -4px;
  width: 5px; height: 20px;
  background: #1a1a2a;
  border-radius: 40% 40% 20% 20%;
  transform-origin: top center;
  animation: el-arm 4s ease-in-out infinite alternate;
}
.scn-edgar-leads-father .bird {
  position: absolute; top: 15%; left: 25%;
  width: 8px; height: 6px;
  background: #3a3a4a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: el-bird 7s ease-in-out infinite alternate;
}
@keyframes el-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes el-sun { 0% { transform: scale(0.95) translateX(0); } 50% { transform: scale(1.03) translateX(2px); } 100% { transform: scale(0.97) translateX(0); } }
@keyframes el-hill-far { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes el-hill-near { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.01); } 100% { transform: translateY(0); } }
@keyframes el-path { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-3px); } }
@keyframes el-tree { 0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes el-walk { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(8px) translateY(-1px); } 50% { transform: translateX(16px) translateY(0); } 75% { transform: translateX(24px) translateY(-1px); } 100% { transform: translateX(32px) translateY(0); } }
@keyframes el-arm { 0% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes el-bird { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(30px) translateY(-10px); } 100% { transform: translateX(0) translateY(0); } }

/* one block per scene id. Append to style.css. */
.scn-edgar-accuses-edmund { background: linear-gradient(180deg, #1a2a4a 0%, #3a6fa5 30%, #87CEEB 60%, #FFF8DC 85%, #D2B48C 100%), radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 60%); }
.scn-edgar-accuses-edmund .sun-ea    { position:absolute; top:5%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #FFF8DC 0%, #FFD700 40%, transparent 70%); animation: ea-glare 4s ease-in-out infinite alternate; }
.scn-edgar-accuses-edmund .sky-ea    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%); }
.scn-edgar-accuses-edmund .ground-ea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%); border-radius: 60% 60% 0 0 / 100% 100% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.3); }
.scn-edgar-accuses-edmund .shadow-edgar  { position:absolute; bottom:30%; left:25%; width:60px; height:20px; background: #2F4F4F; border-radius:50%; transform: skewX(-20deg); opacity:0.6; animation: ea-shift 6s ease-in-out infinite alternate; }
.scn-edgar-accuses-edmund .shadow-edmund { position:absolute; bottom:30%; left:55%; width:60px; height:20px; background: #2F4F4F; border-radius:50%; transform: skewX(20deg); opacity:0.6; animation: ea-shift 6s ease-in-out infinite alternate-reverse; }
.scn-edgar-accuses-edmund .edgar    { position:absolute; bottom:32%; left:30%; width:40px; height:90px; background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ea-sway 3s ease-in-out infinite; }
.scn-edgar-accuses-edmund .edmund   { position:absolute; bottom:32%; left:55%; width:42px; height:95px; background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ea-sway 3.5s ease-in-out infinite reverse; }
.scn-edgar-accuses-edmund .sword-ea { position:absolute; bottom:65%; left:33%; width:4px; height:70px; background: #d0d0d0; border-radius:2px; transform-origin: bottom center; transform: rotate(-35deg); animation: ea-tremor 0.8s ease-in-out infinite alternate; }
.scn-edgar-accuses-edmund .sword-er { position:absolute; bottom:68%; left:60%; width:4px; height:75px; background: #d0d0d0; border-radius:2px; transform-origin: bottom center; transform: rotate(30deg); animation: ea-tremor 0.6s ease-in-out infinite alternate-reverse; }
@keyframes ea-glare   { 0% { opacity:0.8; transform: translateX(-50%) scale(0.9); } 50% { opacity:1; transform: translateX(-50%) scale(1.1); } 100% { opacity:0.85; transform: translateX(-50%) scale(0.95); } }
@keyframes ea-sway    { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-2deg); } }
@keyframes ea-tremor  { 0% { transform: rotate(-35deg) scaleY(1); } 50% { transform: rotate(-38deg) scaleY(1.02); } 100% { transform: rotate(-32deg) scaleY(0.98); } }
@keyframes ea-shift   { 0% { transform: skewX(-20deg) scaleX(1); } 50% { transform: skewX(-25deg) scaleX(1.1); opacity:0.7; } 100% { transform: skewX(-20deg) scaleX(1); opacity:0.5; } }

.scn-edmunds-reply { background: linear-gradient(180deg, #2a4a6a 0%, #4a7fb5 40%, #87CEEB 70%, #FFF8DC 90%, #D2B48C 100%), radial-gradient(ellipse at 80% 20%, #FFF8DC 0%, transparent 50%); }
.scn-edmunds-reply .sunburst-er { position:absolute; top:2%; right:10%; width:100px; height:100px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 30%, transparent 70%); animation: er-pulse 5s ease-in-out infinite alternate; }
.scn-edmunds-reply .sky-er      { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%); }
.scn-edmunds-reply .ground-er   { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #D2B48C 0%, #8B4513 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); }
.scn-edmunds-reply .edmund-er   { position:absolute; bottom:28%; left:50%; width:50px; height:110px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: er-breathe 4s ease-in-out infinite; }
.scn-edmunds-reply .cape-er     { position:absolute; bottom:30%; left:45%; width:70px; height:80px; background: #C8553D; border-radius: 60% 0 40% 0 / 80% 0 60% 0; transform-origin: top center; transform: rotate(5deg); animation: er-billow 3s ease-in-out infinite alternate; }
.scn-edmunds-reply .arm-er      { position:absolute; bottom:55%; left:55%; width:65px; height:10px; background: #1a1a1a; border-radius: 5px; transform-origin: left center; transform: rotate(45deg); animation: er-draw 1.5s ease-in-out infinite alternate; }
.scn-edmunds-reply .sword-er-draw { position:absolute; bottom:65%; left:80%; width:5px; height:85px; background: #d0d0d0; border-radius: 2px; transform-origin: bottom center; transform: rotate(-60deg) translateX(-10px); animation: er-draw 1.5s ease-in-out infinite alternate; }
@keyframes er-pulse   { 0% { opacity:0.7; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.15); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes er-breathe { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes er-billow  { 0% { transform: rotate(5deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.05); } 100% { transform: rotate(0deg) scaleX(0.95); } }
@keyframes er-draw    { 0% { transform: rotate(45deg); } 50% { transform: rotate(60deg); } 100% { transform: rotate(45deg); } }

.scn-fight-and-fall { background: linear-gradient(180deg, #2a5f9a 0%, #68A8D8 30%, #F5DEB3 60%, #C19A6B 100%), radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 60%); }
.scn-fight-and-fall .flash-ff   { position:absolute; top:30%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #FFF8DC 0%, #FFD700 20%, transparent 60%); animation: ff-flash 0.5s ease-in-out 3; }
.scn-fight-and-fall .sky-ff     { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%); }
.scn-fight-and-fall .ground-ff  { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #C19A6B 0%, #8B4513 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 15px 25px rgba(0,0,0,0.5); }
.scn-fight-and-fall .edgar-ff   { position:absolute; bottom:25%; left:30%; width:45px; height:100px; background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ff-stand 2s ease-in-out infinite; }
.scn-fight-and-fall .edmund-ff  { position:absolute; bottom:25%; left:55%; width:45px; height:100px; background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ff-fall 2s ease-in forwards; animation-delay: 1s; }
.scn-fight-and-fall .sword-ff1  { position:absolute; bottom:60%; left:33%; width:5px; height:80px; background: #d0d0d0; border-radius:2px; transform-origin: bottom center; transform: rotate(-40deg); animation: ff-tremor 0.4s ease-in-out infinite alternate; }
.scn-fight-and-fall .sword-ff2  { position:absolute; bottom:60%; left:58%; width:5px; height:80px; background: #d0d0d0; border-radius:2px; transform-origin: bottom center; transform: rotate(50deg); animation: ff-tremor 0.4s ease-in-out infinite alternate-reverse; }
.scn-fight-and-fall .dust-ff    { position:absolute; bottom:20%; left:45%; width:60px; height:10px; background: #A0522D; border-radius:50%; filter: blur(3px); opacity:0; animation: ff-dust 3s ease-out forwards; animation-delay: 2s; }
@keyframes ff-flash  { 0% { opacity:0; transform: translateX(-50%) scale(0.5); } 50% { opacity:1; transform: translateX(-50%) scale(1.5); } 100% { opacity:0; transform: translateX(-50%) scale(2); } }
@keyframes ff-stand  { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg) translateY(-4px); } 100% { transform: rotate(-1deg); } }
@keyframes ff-fall   { 0% { transform: rotate(0deg) translateY(0); opacity:1; } 50% { transform: rotate(45deg) translateY(40px); opacity:0.8; } 100% { transform: rotate(90deg) translateY(120px); opacity:0; } }
@keyframes ff-tremor { 0% { transform: rotate(-40deg) scaleY(1); } 50% { transform: rotate(-45deg) scaleY(1.05); } 100% { transform: rotate(-38deg) scaleY(0.95); } }
@keyframes ff-dust   { 0% { opacity:0; transform: scale(0.5); } 50% { opacity:0.8; transform: scale(1.2); } 100% { opacity:0; transform: scale(2); } }

.scn-item-letter-to-edmund { background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 40%, #8a7a6a 70%, #b0a090 100%), radial-gradient(ellipse at 50% 20%, #8a7a6a 0%, transparent 70%); }
.scn-item-letter-to-edmund .table-le   { position:absolute; bottom:15%; left:15%; right:15%; height:25px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 10px; box-shadow: 0 8px 15px rgba(0,0,0,0.5); }
.scn-item-letter-to-edmund .letter-le  { position:absolute; bottom:25%; left:45%; width:55px; height:75px; background: linear-gradient(180deg, #f5deb3 0%, #e0c080 100%); transform: rotate(-5deg); border-radius: 2px; box-shadow: 2px 2px 5px rgba(0,0,0,0.3); animation: le-tremble 0.6s ease-in-out infinite alternate; }
.scn-item-letter-to-edmund .seal-le    { position:absolute; bottom:35%; left:48%; width:18px; height:18px; background: radial-gradient(circle, #A0461A 0%, #5e1a1d 100%); border-radius:50%; box-shadow: 0 0 10px 2px rgba(160,70,26,0.6); animation: le-glow 2s ease-in-out infinite alternate; }
.scn-item-letter-to-edmund .hand-le    { position:absolute; bottom:28%; left:35%; width:35px; height:45px; background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; transform: rotate(15deg); animation: le-hold 3s ease-in-out infinite alternate; }
.scn-item-letter-to-edmund .edmund-le  { position:absolute; bottom:20%; right:25%; width:55px; height:85px; background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; transform: rotate(-10deg); animation: le-reach 2.5s ease-in-out infinite alternate; }
.scn-item-letter-to-edmund .shadow-le  { position:absolute; bottom:15%; left:20%; right:20%; height:15px; background: #1a1a1a; border-radius:50%; filter: blur(4px); opacity:0.5; animation: le-shadow 3s ease-in-out infinite alternate; }
@keyframes le-tremble { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-7deg) translateY(0); } }
@keyframes le-glow    { 0% { box-shadow: 0 0 5px 1px rgba(160,70,26,0.4); } 50% { box-shadow: 0 0 20px 6px rgba(160,70,26,0.8); } 100% { box-shadow: 0 0 10px 3px rgba(160,70,26,0.5); } }
@keyframes le-hold    { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes le-reach   { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(-10px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes le-shadow  { 0% { opacity:0.4; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.1); } 100% { opacity:0.4; transform: scaleX(1); } }

.scn-cordelia-leaves-with-france {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #e0c9a6 40%, #c9af8a 100%),
    radial-gradient(ellipse at 70% 30%, rgba(255,240,200,0.6) 0%, transparent 60%);
}
.scn-cordelia-leaves-with-france .wall {
  position:absolute; inset:0 0 60% 0;
  background: linear-gradient(180deg, #e8d4b0 0%, #d4bc9a 100%);
}
.scn-cordelia-leaves-with-france .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #b89870 0%, #a08060 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-cordelia-leaves-with-france .arch {
  position:absolute; bottom:40%; left:38%; width:24%; height:60%;
  background: linear-gradient(180deg, transparent 0%, #c0a080 30%, #8b6f50 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: clf-arch 12s ease-in-out infinite alternate;
}
.scn-cordelia-leaves-with-france .window {
  position:absolute; top:20%; right:25%; width:15%; height:25%;
  background: radial-gradient(ellipse at center, #fff8e0 0%, #f0dba0 70%);
  border-radius: 10%;
  box-shadow: 0 0 40px 20px rgba(240,219,160,0.5);
  animation: clf-glow 4s ease-in-out infinite alternate;
}
.scn-cordelia-leaves-with-france .figure-cordelia {
  position:absolute; bottom:32%; left:38%; width:8%; height:30%;
  background: linear-gradient(180deg, #e8c4a0 0%, #c09070 50%, #a07050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: clf-figure 6s ease-in-out infinite alternate;
}
.scn-cordelia-leaves-with-france .figure-france {
  position:absolute; bottom:32%; left:50%; width:9%; height:32%;
  background: linear-gradient(180deg, #c0a080 0%, #987858 50%, #785838 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: clf-figure 6s ease-in-out infinite alternate-reverse;
  animation-delay: -2s;
}
.scn-cordelia-leaves-with-france .light-beam {
  position:absolute; top:0; left:30%; width:40%; height:60%;
  background: linear-gradient(180deg, rgba(255,250,230,0.15) 0%, transparent 100%);
  filter: blur(20px);
  animation: clf-beam 8s ease-in-out infinite alternate;
}
@keyframes clf-arch { 0% { transform: translateY(0); } 50% { transform: translateY(-5px) scale(1.01); } 100% { transform: translateY(0); } }
@keyframes clf-glow { 0% { opacity:0.7; box-shadow: 0 0 30px 10px rgba(240,219,160,0.4); } 50% { opacity:1; box-shadow: 0 0 60px 30px rgba(255,248,224,0.7); } 100% { opacity:0.8; box-shadow: 0 0 40px 20px rgba(240,219,160,0.5); } }
@keyframes clf-figure { 0% { transform: translateX(0) rotate(-0.5deg); } 50% { transform: translateX(3px) rotate(0.5deg) scale(1.01); } 100% { transform: translateX(0) rotate(-0.5deg); } }
@keyframes clf-beam { 0% { transform: translateX(-5%) scale(1); opacity:0.8; } 50% { transform: translateX(5%) scale(1.05); opacity:1; } 100% { transform: translateX(-5%) scale(1); opacity:0.8; } }

.scn-lear-dismisses-all {
  background: 
    linear-gradient(180deg, #d4c4a0 0%, #b0a080 40%, #706050 100%),
    radial-gradient(ellipse at 40% 30%, rgba(255,230,150,0.6) 0%, transparent 70%);
}
.scn-lear-dismisses-all .throne-room {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #c8b898 0%, #a09070 100%);
}
.scn-lear-dismisses-all .throne {
  position:absolute; bottom:25%; left:30%; width:25%; height:40%;
  background: linear-gradient(135deg, #8b6f40 0%, #5a4420 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.5);
  animation: lda-throne 3s ease-in-out infinite alternate;
}
.scn-lear-dismisses-all .figure-lear {
  position:absolute; bottom:30%; left:32%; width:12%; height:35%;
  background: linear-gradient(180deg, #4a3060 0%, #2a1a40 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lda-lear 4s ease-in-out infinite;
}
.scn-lear-dismisses-all .figure-sister1 {
  position:absolute; bottom:28%; left:55%; width:10%; height:30%;
  background: linear-gradient(180deg, #a07858 0%, #785038 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lda-sisters 5s ease-in-out infinite alternate;
}
.scn-lear-dismisses-all .figure-sister2 {
  position:absolute; bottom:28%; left:65%; width:10%; height:30%;
  background: linear-gradient(180deg, #987050 0%, #684028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lda-sisters 5s ease-in-out infinite alternate-reverse;
  animation-delay: -2s;
}
.scn-lear-dismisses-all .shadow {
  position:absolute; bottom:0; left:20%; width:60%; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(15px);
  animation: lda-shadow 6s ease-in-out infinite alternate;
}
.scn-lear-dismisses-all .crown {
  position:absolute; bottom:62%; left:35%; width:8%; height:6%;
  background: radial-gradient(circle, #f0d060 0%, #c8a040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(200,160,64,0.5);
  animation: lda-crown 2s ease-in-out infinite alternate;
}
@keyframes lda-throne { 0% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1); } }
@keyframes lda-lear { 0% { transform: rotate(0) translateX(0); } 50% { transform: rotate(5deg) translateX(3px); } 100% { transform: rotate(-5deg) translateX(-3px); } }
@keyframes lda-sisters { 0% { transform: translateY(0); } 50% { transform: translateY(-3px) scale(0.98); } 100% { transform: translateY(0); } }
@keyframes lda-shadow { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.1); } 100% { opacity:0.5; transform: scaleX(1); } }
@keyframes lda-crown { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.1); } 100% { transform: rotate(-5deg) scale(1); } }

.scn-cordelia-bids-farewell {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #c8b098 40%, #a08870 100%),
    radial-gradient(ellipse at 50% 40%, rgba(255,240,200,0.5) 0%, transparent 70%);
}
.scn-cordelia-bids-farewell .hall {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #d4c4a8 0%, #b4a088 100%);
}
.scn-cordelia-bids-farewell .figure-cordelia {
  position:absolute; bottom:30%; left:25%; width:10%; height:32%;
  background: linear-gradient(180deg, #e0c8a8 0%, #b89878 50%, #907050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbf-cordelia 4s ease-in-out infinite;
}
.scn-cordelia-bids-farewell .figure-sister-goneril {
  position:absolute; bottom:30%; left:52%; width:11%; height:33%;
  background: linear-gradient(180deg, #b09070 0%, #886850 50%, #604030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbf-sisters 5s ease-in-out infinite alternate;
}
.scn-cordelia-bids-farewell .figure-sister-regan {
  position:absolute; bottom:30%; left:65%; width:11%; height:33%;
  background: linear-gradient(180deg, #a08060 0%, #785848 50%, #503028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbf-sisters 5s ease-in-out infinite alternate-reverse;
  animation-delay: -2.5s;
}
.scn-cordelia-bids-farewell .pillar-left {
  position:absolute; bottom:0; left:15%; width:6%; height:70%;
  background: linear-gradient(90deg, #b8a088 0%, #988070 50%, #786050 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.2);
  animation: cbf-pillar 8s ease-in-out infinite alternate;
}
.scn-cordelia-bids-farewell .pillar-right {
  position:absolute; bottom:0; right:15%; width:6%; height:70%;
  background: linear-gradient(90deg, #786050 0%, #988070 50%, #b8a088 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 5px 0 10px rgba(0,0,0,0.2);
  animation: cbf-pillar 8s ease-in-out infinite alternate-reverse;
  animation-delay: -4s;
}
.scn-cordelia-bids-farewell .curtain {
  position:absolute; top:0; left:0; right:0; height:100%;
  background: linear-gradient(180deg, rgba(180,100,80,0.3) 0%, transparent 50%, rgba(180,100,80,0.2) 100%);
  filter: blur(10px);
  animation: cbf-curtain 10s ease-in-out infinite alternate;
}
@keyframes cbf-cordelia { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes cbf-sisters { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes cbf-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes cbf-curtain { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-cordelia-departs {
  background: 
    linear-gradient(180deg, #b8c8d0 0%, #98a8b0 40%, #687888 100%),
    radial-gradient(ellipse at 60% 30%, rgba(200,220,240,0.4) 0%, transparent 70%);
}
.scn-cordelia-departs .room {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #a8b8c0 0%, #889898 100%);
}
.scn-cordelia-departs .door {
  position:absolute; bottom:0; left:40%; width:20%; height:70%;
  background: linear-gradient(180deg, #504838 0%, #302820 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: -10px 0 20px rgba(0,0,0,0.3);
  animation: cdp-door 8s ease-in-out infinite alternate;
}
.scn-cordelia-departs .figure-cordelia {
  position:absolute; bottom:30%; left:42%; width:8%; height:30%;
  background: linear-gradient(180deg, #d0b898 0%, #a88868 50%, #806048 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cdp-walk 4s ease-in-out infinite;
}
.scn-cordelia-departs .figure-france {
  position:absolute; bottom:30%; left:50%; width:9%; height:32%;
  background: linear-gradient(180deg, #b89878 0%, #987058 50%, #785038 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cdp-walk 4s ease-in-out infinite reverse;
  animation-delay: -2s;
}
.scn-cordelia-departs .window-light {
  position:absolute; top:20%; right:20%; width:18%; height:25%;
  background: radial-gradient(ellipse at center, #d0dce8 0%, #a8b8c8 70%);
  border-radius: 10%;
  box-shadow: 0 0 30px 15px rgba(160,180,200,0.4);
  animation: cdp-light 5s ease-in-out infinite alternate;
}
.scn-cordelia-departs .shadow {
  position:absolute; bottom:0; left:30%; width:40%; height:15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: cdp-shadow 7s ease-in-out infinite alternate;
}
.scn-cordelia-departs .lamp {
  position:absolute; bottom:20%; left:20%; width:4%; height:8%;
  background: radial-gradient(circle, #f0e0a0 0%, #c8b060 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(200,176,96,0.5);
  animation: cdp-lamp 3s ease-in-out infinite alternate;
}
@keyframes cdp-door { 0% { transform: rotateY(0); } 50% { transform: rotateY(10deg); } 100% { transform: rotateY(0); } }
@keyframes cdp-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(0); } 50% { transform: translateX(10px) translateY(0) rotate(1deg); } 75% { transform: translateX(15px) translateY(-2px) rotate(0); } 100% { transform: translateX(20px) translateY(0) rotate(-1deg); } }
@keyframes cdp-light { 0% { opacity:0.6; box-shadow: 0 0 20px 10px rgba(160,180,200,0.3); } 50% { opacity:0.9; box-shadow: 0 0 40px 20px rgba(160,180,200,0.6); } 100% { opacity:0.6; box-shadow: 0 0 20px 10px rgba(160,180,200,0.3); } }
@keyframes cdp-shadow { 0% { transform: scaleX(1); opacity:0.6; } 50% { transform: scaleX(1.2); opacity:0.8; } 100% { transform: scaleX(1); opacity:0.6; } }
@keyframes cdp-lamp { 0% { transform: rotate(-8deg) scale(1); } 50% { transform: rotate(8deg) scale(1.05); } 100% { transform: rotate(-8deg) scale(1); } }

.scn-goneril-plans {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(180deg, #f2e6d0 0%, #d9c4a8 40%, #ad8b6a 100%), 
              radial-gradient(ellipse at 70% 30%, #fff8e8 0%, transparent 50%);
}
.scn-goneril-plans .room { position: absolute; inset: 0; background: linear-gradient(180deg, #e6d4b8 0%, #b59a7a 100%); }
.scn-goneril-plans .window-frame { position: absolute; top: 10%; right: 15%; width: 30%; height: 40%; border: 8px solid #6b4f38; border-radius: 4px; background: rgba(255,255,240,0.3); }
.scn-goneril-plans .light-beam { position: absolute; top: 10%; right: 15%; width: 30%; height: 80%; background: linear-gradient(180deg, rgba(255,255,230,0.6) 0%, transparent 100%); transform: skewX(-5deg); animation: gp-light 3s ease-in-out infinite alternate; }
.scn-goneril-plans .figure-goneril { position: absolute; bottom: 20%; left: 30%; width: 25%; height: 50%; background: linear-gradient(180deg, #6a3f32 0%, #3a1e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gp-fig1 4s ease-in-out infinite; }
.scn-goneril-plans .figure-steward { position: absolute; bottom: 22%; left: 55%; width: 18%; height: 40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; animation: gp-fig2 5s ease-in-out infinite; }
.scn-goneril-plans .shadow { position: absolute; bottom: 10%; left: 20%; width: 60%; height: 8%; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(6px); animation: gp-shadow 4s ease-in-out infinite alternate; }
.scn-goneril-plans .table { position: absolute; bottom: 15%; left: 40%; width: 30%; height: 15%; background: linear-gradient(180deg, #8b6f50 0%, #5a3f2a 100%); border-radius: 4px; }

@keyframes gp-light {
  0% { opacity: 0.7; transform: skewX(-5deg) translateX(0); }
  50% { opacity: 1; transform: skewX(-5deg) translateX(5px); }
  100% { opacity: 0.8; transform: skewX(-5deg) translateX(-3px); }
}
@keyframes gp-fig1 {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes gp-fig2 {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(0.98); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes gp-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.2); opacity: 0.5; }
  100% { transform: scaleX(0.9); opacity: 0.25; }
}

.scn-kent-disguised {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(180deg, #e2e8f0 0%, #c8d0dc 50%, #a3b0c0 100%), 
              radial-gradient(ellipse at 50% 50%, #ffffff 0%, transparent 70%);
}
.scn-kent-disguised .hall-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #d4dce8 0%, #b0bcc8 100%); }
.scn-kent-disguised .column-left { position: absolute; left: 10%; top: 0; width: 8%; height: 100%; background: linear-gradient(90deg, #c0c8d4 0%, #ffffff 40%, #c0c8d4 100%); border-radius: 4px; }
.scn-kent-disguised .column-right { position: absolute; right: 10%; top: 0; width: 8%; height: 100%; background: linear-gradient(90deg, #c0c8d4 0%, #ffffff 40%, #c0c8d4 100%); border-radius: 4px; }
.scn-kent-disguised .mirror { position: absolute; top: 20%; left: 30%; width: 40%; height: 50%; border: 6px solid #8a9aaa; border-radius: 50%; background: linear-gradient(135deg, #eef4ff 0%, #c0d0e0 50%, #a0b0c0 100%); animation: kd-mirror 12s ease-in-out infinite; }
.scn-kent-disguised .figure-kent { position: absolute; bottom: 15%; left: 40%; width: 20%; height: 50%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kd-figure 6s ease-in-out infinite alternate; }
.scn-kent-disguised .light-soft { position: absolute; top: 0; left: 20%; width: 60%; height: 100%; background: radial-gradient(ellipse at 50% 20%, rgba(255,255,250,0.3) 0%, transparent 70%); animation: kd-light 8s ease-in-out infinite alternate; }
.scn-kent-disguised .shadow-floor { position: absolute; bottom: 10%; left: 35%; width: 30%; height: 5%; background: rgba(0,0,0,0.1); border-radius: 50%; filter: blur(8px); animation: kd-shadow 6s ease-in-out infinite; }

@keyframes kd-mirror {
  0% { transform: scale(1) rotate(0deg); opacity: 0.9; }
  50% { transform: scale(1.02) rotate(1deg); opacity: 1; }
  100% { transform: scale(0.98) rotate(-0.5deg); opacity: 0.95; }
}
@keyframes kd-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes kd-light {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes kd-shadow {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
  100% { transform: scaleX(0.95); }
}

.scn-kent-answers-lear {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 50%, #b09878 100%), 
              radial-gradient(ellipse at 40% 60%, #fff8e0 0%, transparent 60%);
}
.scn-kent-answers-lear .floor { position: absolute; bottom: 0; width: 100%; height: 30%; background: linear-gradient(180deg, #c4a884 0%, #8b7050 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-kent-answers-lear .back-wall { position: absolute; top: 0; width: 100%; height: 70%; background: linear-gradient(180deg, #e8dcc8 0%, #c8b49c 100%); }
.scn-kent-answers-lear .arch { position: absolute; top: 0; left: 25%; width: 50%; height: 70%; border: 10px solid #8b7050; border-bottom: none; border-radius: 50% 50% 0 0; background: transparent; }
.scn-kent-answers-lear .figure-lear { position: absolute; bottom: 25%; left: 35%; width: 18%; height: 45%; background: linear-gradient(180deg, #b08a6a 0%, #705040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kal-lear 5s ease-in-out infinite alternate; }
.scn-kent-answers-lear .figure-kent { position: absolute; bottom: 20%; left: 55%; width: 16%; height: 40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; animation: kal-kent 6s ease-in-out infinite alternate; }
.scn-kent-answers-lear .light-spot { position: absolute; top: 10%; left: 30%; width: 40%; height: 60%; background: radial-gradient(ellipse at 50% 30%, rgba(255,255,240,0.4) 0%, transparent 70%); animation: kal-light 7s ease-in-out infinite alternate; }

@keyframes kal-lear {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes kal-kent {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(0.98); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes kal-light {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

.scn-kent-taken-into-service {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(180deg, #f5e0b0 0%, #d4b880 50%, #a88850 100%), 
              radial-gradient(ellipse at 50% 20%, #ffe8c0 0%, transparent 60%);
}
.scn-kent-taken-into-service .throne-bg { position: absolute; top: 0; left: 0; width: 60%; height: 100%; background: linear-gradient(180deg, #c8a870 0%, #a08050 100%); border-radius: 0 0 40% 0; }
.scn-kent-taken-into-service .step { position: absolute; bottom: 10%; left: 20%; width: 60%; height: 12%; background: linear-gradient(180deg, #b09060 0%, #806040 100%); border-radius: 8px; }
.scn-kent-taken-into-service .figure-lear { position: absolute; bottom: 20%; left: 25%; width: 20%; height: 50%; background: linear-gradient(180deg, #b08060 0%, #705040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kts-lear 6s ease-in-out infinite; }
.scn-kent-taken-into-service .figure-kent { position: absolute; bottom: 12%; left: 50%; width: 18%; height: 35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; animation: kts-kent 5s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-kent-taken-into-service .torchlight { position: absolute; top: 30%; left: 35%; width: 30%; height: 40%; background: radial-gradient(ellipse at 50% 30%, #ffc060 0%, #ffa040 30%, transparent 70%); filter: blur(8px); animation: kts-torch 3s ease-in-out infinite alternate; }
.scn-kent-taken-into-service .banner { position: absolute; top: 10%; right: 5%; width: 12%; height: 40%; background: linear-gradient(180deg, #8b4030 0%, #602820 100%); border-radius: 4px; animation: kts-banner 10s ease-in-out infinite; }

@keyframes kts-lear {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes kts-kent {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(5deg); }
}
@keyframes kts-torch {
  0% { opacity: 0.7; transform: scale(1) translate(0,0); }
  50% { opacity: 1; transform: scale(1.1) translate(2px,-2px); }
  100% { opacity: 0.8; transform: scale(0.95) translate(-1px,1px); }
}
@keyframes kts-banner {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}

/* Scene 1: edgar-reveals-identity (tense + sunlit) */
.scn-edgar-reveals-identity {
  background: linear-gradient(180deg, #4a7a9c 0%, #8cb3d9 40%, #f2d8a7 70%, #e8c382 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%);
}
.scn-edgar-reveals-identity .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #6b9cc2 0%, transparent 100%); animation: eri-sky 10s ease-in-out infinite alternate; }
.scn-edgar-reveals-identity .sun { position:absolute; top:8%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #fff5cc 0%, #f2d8a7 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(242,216,167,.4); animation: eri-sun 12s ease-in-out infinite alternate; }
.scn-edgar-reveals-identity .ground { position:absolute; bottom:0; height:35%; background: linear-gradient(180deg, #6b8e6b 0%, #3a5a3a 100%); border-radius: 30% 0 0 0; }
.scn-edgar-reveals-identity .shadow-stripe { position:absolute; bottom:35%; left:0; right:0; height:6%; background: linear-gradient(90deg, transparent 0%, #1a2a1a 20%, #1a2a1a 80%, transparent 100%); opacity:.6; animation: eri-shadow 8s ease-in-out infinite alternate; }
.scn-edgar-reveals-identity .figure-left { position:absolute; bottom:35%; left:30%; width:40px; height:90px; background: #1a1a2a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: -4px 0 12px rgba(0,0,0,.5); animation: eri-figureL 4s ease-in-out infinite; }
.scn-edgar-reveals-identity .figure-right { position:absolute; bottom:35%; right:30%; width:44px; height:96px; background: #1a1a2a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 4px 0 12px rgba(0,0,0,.5); animation: eri-figureR 3.5s ease-in-out infinite; }
.scn-edgar-reveals-identity .sword { position:absolute; bottom:55%; right:35%; width:5px; height:55px; background: linear-gradient(180deg, #e0e0e0 0%, #8c8c8c 100%); border-radius:2px; box-shadow: 0 0 10px #ffffff, 0 0 20px rgba(255,255,255,.4); transform: rotate(15deg); transform-origin: bottom center; animation: eri-sword 2s ease-in-out infinite alternate; }
@keyframes eri-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes eri-sun { 0% { box-shadow: 0 0 30px 15px rgba(242,216,167,.3); transform:scale(1) } 50% { box-shadow: 0 0 60px 25px rgba(242,216,167,.6); transform:scale(1.05) } 100% { box-shadow: 0 0 40px 20px rgba(242,216,167,.4); transform:scale(.98) } }
@keyframes eri-shadow { 0% { opacity:.4; transform:scaleY(1) } 50% { opacity:.7; transform:scaleY(1.2) } 100% { opacity:.5; transform:scaleY(.9) } }
@keyframes eri-figureL { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes eri-figureR { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-5px) rotate(-1deg) } 100% { transform: translateY(-2px) rotate(1deg) } }
@keyframes eri-sword { 0% { transform: rotate(15deg) scaleY(1); opacity:.8 } 50% { transform: rotate(25deg) scaleY(1.05); opacity:1 } 100% { transform: rotate(15deg) scaleY(.98); opacity:.85 } }

/* Scene 2: edgar-reveals-tale (warm + sunlit) */
.scn-edgar-reveals-tale {
  background: linear-gradient(180deg, #8cb3d9 0%, #e8c382 50%, #c89a5e 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 50%);
}
.scn-edgar-reveals-tale .window-arch { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 0%, transparent 38%, #2a1a1a 40%); animation: ert-arch 8s ease-in-out infinite alternate; }
.scn-edgar-reveals-tale .light-beam { position:absolute; top:0; left:50%; width:65%; height:100%; background: linear-gradient(180deg, rgba(255,245,204,0.5) 0%, rgba(255,245,204,0) 100%); transform: translateX(-50%); animation: ert-beam 6s ease-in-out infinite alternate; }
.scn-edgar-reveals-tale .floor { position:absolute; bottom:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 50% 0 0 / 0 100% 0 0; }
.scn-edgar-reveals-tale .figure-kneeling { position:absolute; bottom:30%; left:38%; width:45px; height:75px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ert-kneel 5s ease-in-out infinite; }
.scn-edgar-reveals-tale .figure-blind { position:absolute; bottom:30%; right:35%; width:50px; height:85px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ert-blind 5s ease-in-out infinite; }
.scn-edgar-reveals-tale .warmth-glow { position:absolute; bottom:25%; left:50%; width:140px; height:140px; background: radial-gradient(circle, rgba(232,195,130,0.7) 0%, rgba(200,154,94,0.2) 40%, transparent 70%); transform: translateX(-50%); animation: ert-glow 4s ease-in-out infinite alternate; }
@keyframes ert-arch { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ert-beam { 0% { opacity:.5; transform: translateX(-50%) scaleX(1) } 50% { opacity:.9; transform: translateX(-50%) scaleX(1.1) } 100% { opacity:.6; transform: translateX(-50%) scaleX(.95) } }
@keyframes ert-kneel { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ert-blind { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes ert-glow { 0% { opacity:.6; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.15) } 100% { opacity:.7; transform: translateX(-50%) scale(.95) } }

/* Scene 3: edgars-story (sad + sunlit) */
.scn-edgars-story {
  background: linear-gradient(180deg, #d9d9d9 0%, #a3c4d9 30%, #f2d8a7 70%, #d9b382 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%);
}
.scn-edgars-story .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffffff 0%, #a3c4d9 100%); }
.scn-edgars-story .sun-blast { position:absolute; top:10%; left:50%; width:120px; height:120px; background: radial-gradient(circle, #ffffff 0%, #fff5cc 20%, transparent 60%); transform: translateX(-50%); animation: es1-sun 8s ease-in-out infinite alternate; }
.scn-edgars-story .ground-shadow { position:absolute; bottom:0; height:40%; background: linear-gradient(180deg, #d9b382 0%, #8c6b4a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-edgars-story .rock { position:absolute; bottom:40%; left:15%; width:70px; height:45px; background: linear-gradient(180deg, #a3a3a3 0%, #6b6b6b 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: es1-rock 12s ease-in-out infinite alternate; }
.scn-edgars-story .figure-crouched { position:absolute; bottom:40%; left:50%; width:40px; height:55px; background: #2a2a2a; border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform: translateX(-50%) scale(0.8); box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: es1-crouch 6s ease-in-out infinite; }
.scn-edgars-story .dust-devil { position:absolute; bottom:40%; left:70%; width:25px; height:70px; background: linear-gradient(180deg, rgba(200,180,150,0.5) 0%, transparent 100%); border-radius: 50%; filter: blur(5px); animation: es1-dust 12s linear infinite; }
@keyframes es1-sun { 0% { opacity:.8; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.05) } 100% { opacity:.9; transform: translateX(-50%) scale(.98) } }
@keyframes es1-rock { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes es1-crouch { 0% { transform: translateX(-50%) scale(0.8) rotate(-2deg) } 50% { transform: translateX(-50%) scale(0.85) rotate(2deg) } 100% { transform: translateX(-50%) scale(0.75) rotate(-1deg) } }
@keyframes es1-dust { 0% { transform: translateX(0) rotate(0deg) scaleY(1); opacity:.5 } 33% { transform: translateX(-20px) rotate(120deg) scaleY(1.2); opacity:.8 } 66% { transform: translateX(10px) rotate(240deg) scaleY(.9); opacity:.4 } 100% { transform: translateX(30px) rotate(360deg) scaleY(1.1); opacity:.6 } }

/* Scene 4: edgars-story-2 (sad + sunlit) */
.scn-edgars-story-2 {
  background: linear-gradient(180deg, #d9c3a3 0%, #f2d8a7 40%, #e8c382 70%, #c89a5e 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 50%);
}
.scn-edgars-story-2 .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f2f2f2 0%, #d9c3a3 100%); }
.scn-edgars-story-2 .sun { position:absolute; top:5%; right:25%; width:60px; height:60px; background: radial-gradient(circle, #ffffff 0%, #f2d8a7 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(242,216,167,.5); animation: es2-sun 10s ease-in-out infinite alternate; }
.scn-edgars-story-2 .distant-hills { position:absolute; bottom:45%; left:0; right:0; height:15%; background: linear-gradient(180deg, #a3c4d9 0%, #8cb3d9 100%); border-radius: 60% 40% 0 0 / 100% 100% 0 0; animation: es2-hills 15s ease-in-out infinite alternate; }
.scn-edgars-story-2 .road { position:absolute; bottom:0; height:45%; width:100%; background: linear-gradient(180deg, #d9b382 0%, #8c6b4a 100%); border-radius: 40% 0 0 0 / 60% 0 0 0; }
.scn-edgars-story-2 .figure-guide { position:absolute; bottom:20%; left:35%; width:40px; height:85px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: -4px 0 8px rgba(0,0,0,.4); animation: es2-guide 6s ease-in-out infinite; }
.scn-edgars-story-2 .figure-blind { position:absolute; bottom:20%; left:50%; width:45px; height:90px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 4px 0 8px rgba(0,0,0,.4); animation: es2-blind 6s ease-in-out infinite; }
.scn-edgars-story-2 .staff { position:absolute; bottom:35%; left:56%; width:4px; height:65px; background: linear-gradient(180deg, #6b4a2a 0%, #3a2a1a 100%); border-radius:2px; transform: rotate(12deg); transform-origin: bottom center; animation: es2-staff 3s ease-in-out infinite alternate; }
@keyframes es2-sun { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.04) } 100% { opacity:.9; transform: scale(.98) } }
@keyframes es2-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes es2-guide { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(8px) rotate(-1deg) } }
@keyframes es2-blind { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(6px) rotate(1deg) } }
@keyframes es2-staff { 0% { transform: rotate(12deg) scaleY(1) } 50% { transform: rotate(18deg) scaleY(1.02) } 100% { transform: rotate(8deg) scaleY(1) } }

.scn-item-glove-challenge { background: linear-gradient(180deg, #f9d78e 0%, #c99a5e 40%, #7a442a 100%), radial-gradient(ellipse at 30% 10%, rgba(255,255,200,0.6) 0%, transparent 60%); }
.scn-item-glove-challenge .bg-ground { position:absolute; bottom:0; left:0; right:0; height:70%; background: repeating-linear-gradient(90deg, rgba(0,0,0,0.05) 0px, rgba(0,0,0,0.05) 10px, transparent 10px, transparent 20px); }
.scn-item-glove-challenge .shadow-figure { position:absolute; bottom:30%; left:10%; width:80%; height:40%; background: rgba(30,20,10,0.4); clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); animation: glv-shadow 8s ease-in-out infinite alternate; }
.scn-item-glove-challenge .glove { position:absolute; bottom:38%; left:48%; width:30px; height:35px; background: radial-gradient(circle at 50% 30%, #8b5e3c 0%, #5c3a1e 100%); border-radius:30% 30% 40% 40% / 50% 50% 30% 30%; transform:rotate(-15deg); box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: glv-glove 4s ease-in-out infinite; }
.scn-item-glove-challenge .spotlight { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(135deg, rgba(255,255,220,0.3) 0%, transparent 70%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: glv-spotlight 5s ease-in-out infinite alternate; }
.scn-item-glove-challenge .dust-1 { position:absolute; bottom:45%; left:45%; width:6px; height:6px; background: rgba(255,240,200,0.4); border-radius:50%; filter: blur(2px); animation: glv-dust 6s linear infinite; }
.scn-item-glove-challenge .dust-2 { position:absolute; bottom:42%; left:52%; width:4px; height:4px; background: rgba(255,240,200,0.3); border-radius:50%; filter: blur(1px); animation: glv-dust 7s linear infinite 1s; }
@keyframes glv-shadow { 0% { transform: scaleX(0.95) scaleY(0.95); opacity:0.8; } 50% { transform: scaleX(1.05) scaleY(1.02); opacity:1; } 100% { transform: scaleX(0.95) scaleY(0.95); opacity:0.8; } }
@keyframes glv-glove { 0% { transform: rotate(-18deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-2px); } 100% { transform: rotate(-18deg) translateY(0); } }
@keyframes glv-spotlight { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes glv-dust { 0% { transform: translateY(0) scale(1); opacity:0.4; } 50% { transform: translateY(-30px) scale(1.5); opacity:0.1; } 100% { transform: translateY(0) scale(1); opacity:0.4; } }

.scn-summoning-the-herald { background: linear-gradient(180deg, #87CEEB 0%, #f5deb3 60%, #cd853f 100%), radial-gradient(ellipse at 40% 20%, rgba(255,255,240,0.5) 0%, transparent 60%); }
.scn-summoning-the-herald .bg-sky { position:absolute; top:0; left:0; right:0; height:50%; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%); }
.scn-summoning-the-herald .sunbeam { position:absolute; top:0; left:30%; width:60%; height:100%; background: linear-gradient(135deg, rgba(255,250,210,0.2) 0%, transparent 70%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); animation: hld-sunbeam 12s ease-in-out infinite alternate; }
.scn-summoning-the-herald .herald { position:absolute; bottom:20%; left:40%; width:30px; height:85px; background: linear-gradient(180deg, #2a1e0c 0%, #1a1208 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hld-body 5s ease-in-out infinite; }
.scn-summoning-the-herald .trumpet-herald { position:absolute; bottom:48%; left:44%; width:55px; height:12px; background: linear-gradient(90deg, #c8553d 0%, #f0c040 100%); border-radius: 0 50% 50% 0; transform: rotate(-20deg); transform-origin: left center; animation: hld-trumpet 3s ease-in-out infinite alternate; }
.scn-summoning-the-herald .pennant { position:absolute; bottom:38%; left:42%; width:0; height:0; border-left: 8px solid transparent; border-right: 8px solid transparent; border-bottom: 20px solid #a0461a; clip-path: polygon(0 0, 100% 50%, 0 100%); animation: hld-pennant 4s ease-in-out infinite; }
.scn-summoning-the-herald .shadow-herald { position:absolute; bottom:18%; left:36%; width:40px; height:10px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(3px); animation: hld-shadow 5s ease-in-out infinite; }
@keyframes hld-sunbeam { 0% { transform: skewX(-5deg); opacity:0.7; } 50% { transform: skewX(5deg); opacity:1; } 100% { transform: skewX(-5deg); opacity:0.7; } }
@keyframes hld-body { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes hld-trumpet { 0% { transform: rotate(-22deg) scaleX(0.95); } 50% { transform: rotate(-18deg) scaleX(1.05); } 100% { transform: rotate(-22deg) scaleX(0.95); } }
@keyframes hld-pennant { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes hld-shadow { 0% { transform: scaleX(0.9); opacity:0.3; } 50% { transform: scaleX(1.1); opacity:0.5; } 100% { transform: scaleX(0.9); opacity:0.3; } }

.scn-item-trumpet-summons { background: linear-gradient(0deg, #2a1e0c 0%, #4a3520 100%), radial-gradient(circle at 50% 30%, #f0d68a 0%, transparent 70%); }
.scn-item-trumpet-summons .bg-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, transparent 40%, rgba(0,0,0,0.4) 100%); animation: trp-pulse 6s ease-in-out infinite alternate; }
.scn-item-trumpet-summons .trumpet-copper { position:absolute; bottom:35%; left:38%; width:70px; height:18px; background: linear-gradient(90deg, #c8553d 0%, #f0c040 50%, #c8553d 100%); border-radius: 10px 60% 60% 10px; transform: rotate(-15deg); box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: trp-shimmer 4s ease-in-out infinite; }
.scn-item-trumpet-summons .trumpet-bell { position:absolute; bottom:32%; left:48%; width:25px; height:22px; background: radial-gradient(ellipse at 50% 50%, #f0c040 0%, #a0461a 100%); clip-path: polygon(0 15%, 100% 0, 100% 100%, 0 85%); transform: rotate(-15deg); animation: trp-shimmer 4s ease-in-out infinite 0.3s; }
.scn-item-trumpet-summons .sound-wave { position:absolute; bottom:35%; left:38%; border-radius:50%; border: 2px solid rgba(255,200,100,0.6); width:30px; height:30px; opacity:0; animation: trp-wave 3s ease-out infinite; }
.scn-item-trumpet-summons .wave-2 { width:50px; height:50px; animation-delay:0.8s; border-color:rgba(255,200,100,0.4); }
.scn-item-trumpet-summons .wave-3 { width:70px; height:70px; animation-delay:1.6s; border-color:rgba(255,200,100,0.2); }
.scn-item-trumpet-summons .glow-burst { position:absolute; bottom:33%; left:39%; width:20px; height:20px; border-radius:50%; background: radial-gradient(circle, rgba(255,230,150,0.8) 0%, transparent 70%); box-shadow: 0 0 30px 10px rgba(255,230,150,0.3); animation: trp-flash 2s ease-in-out infinite; }
@keyframes trp-pulse { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes trp-shimmer { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.9); } }
@keyframes trp-wave { 0% { transform: scale(0.5); opacity:0.8; } 50% { transform: scale(1.5); opacity:0.3; } 100% { transform: scale(2.5); opacity:0; } }
@keyframes trp-flash { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(0.9); } }

.scn-edmund-queries-edgar { background: linear-gradient(180deg, #f9d78e 0%, #c99a5e 40%, #7a442a 100%), radial-gradient(ellipse at 50% 10%, rgba(255,255,240,0.7) 0%, transparent 60%); }
.scn-edmund-queries-edgar .bg-horizon { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8b5e3c 0%, #5c3a1e 100%); }
.scn-edmund-queries-edgar .sun { position:absolute; top:5%; left:50%; width:60px; height:60px; background: radial-gradient(circle at 50% 50%, #fde08b 0%, #f0c040 40%, transparent 70%); transform: translateX(-50%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(240,192,64,0.3); animation: edq-sun 8s ease-in-out infinite alternate; }
.scn-edmund-queries-edgar .figure-edmund { position:absolute; bottom:12%; left:28%; width:28px; height:95px; background: linear-gradient(180deg, #2a1e0c 0%, #1a1208 100%); border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom center; animation: edq-fig1 6s ease-in-out infinite; }
.scn-edmund-queries-edgar .figure-edgar { position:absolute; bottom:12%; right:28%; width:28px; height:95px; background: linear-gradient(180deg, #2a1e0c 0%, #1a1208 100%); border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom center; transform: scaleX(-1); animation: edq-fig2 6s ease-in-out infinite 0.5s; }
.scn-edmund-queries-edgar .shadow-edmund { position:absolute; bottom:10%; left:24%; width:35px; height:8px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(2px); animation: edq-shadow 6s ease-in-out infinite; }
.scn-edmund-queries-edgar .shadow-edgar { position:absolute; bottom:10%; right:24%; width:35px; height:8px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(2px); animation: edq-shadow 6s ease-in-out infinite 0.5s; }
.scn-edmund-queries-edgar .ground-line { position:absolute; bottom:38%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent 0%, #6b4a2a 20%, #8b5e3c 50%, #6b4a2a 80%, transparent 100%); animation: edq-line 10s ease-in-out infinite; }
@keyframes edq-sun { 0% { transform: translateX(-50%) scale(0.95); opacity:0.8; } 50% { transform: translateX(-50%) scale(1.05); opacity:1; } 100% { transform: translateX(-50%) scale(0.95); opacity:0.8; } }
@keyframes edq-fig1 { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(1deg) translateX(2px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes edq-fig2 { 0% { transform: scaleX(-1) rotate(2deg) translateX(0); } 50% { transform: scaleX(-1) rotate(-1deg) translateX(-2px); } 100% { transform: scaleX(-1) rotate(2deg) translateX(0); } }
@keyframes edq-shadow { 0% { transform: scaleX(0.8); opacity:0.3; } 50% { transform: scaleX(1.2); opacity:0.5; } 100% { transform: scaleX(0.8); opacity:0.3; } }
@keyframes edq-line { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-fool-riddles-again { background: linear-gradient(180deg, #f9e6c6 0%, #e6c88a 100%), radial-gradient(ellipse at 70% 20%, #fff5e0 0%, transparent 60%); }
.scn-fool-riddles-again .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 100%); }
.scn-fool-riddles-again .window { position:absolute; top:15%; left:65%; width:80px; height:120px; background: linear-gradient(135deg, #fff9f0 0%, #ffe0b0 100%); border-radius:8px; box-shadow:0 0 40px 15px rgba(255,240,200,0.5); animation:fra-window 6s ease-in-out infinite alternate; }
.scn-fool-riddles-again .jester { position:absolute; bottom:30%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #f0c030 0%, #30b030 50%, #f0c030 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:fra-jester 2s ease-in-out infinite; }
.scn-fool-riddles-again .jester-hat { position:absolute; bottom:69%; left:30%; width:24px; height:24px; background: radial-gradient(circle, #f08030 0%, #c06020 100%); border-radius:50% 50% 0 0; transform:rotate(-10deg); animation:fra-hat 2s ease-in-out infinite; }
.scn-fool-riddles-again .table { position:absolute; bottom:22%; left:25%; width:70px; height:10px; background: linear-gradient(180deg, #8a6030 0%, #604020 100%); border-radius:4px; box-shadow:0 4px 6px rgba(0,0,0,0.3); }
.scn-fool-riddles-again .oyster { position:absolute; bottom:26%; left:32%; width:20px; height:14px; background: radial-gradient(ellipse, #c8a878 0%, #a08050 100%); border-radius:50%; animation:fra-oyster 4s ease-in-out infinite; }
.scn-fool-riddles-again .shadow { position:absolute; bottom:22%; left:28%; width:30px; height:8px; background:rgba(0,0,0,0.3); border-radius:50%; filter:blur(3px); animation:fra-shadow 3s ease-in-out infinite; }
@keyframes fra-window { 0%{opacity:0.7;box-shadow:0 0 30px 10px rgba(255,240,200,0.3)} 50%{opacity:1;box-shadow:0 0 60px 25px rgba(255,240,200,0.7)} 100%{opacity:0.8;box-shadow:0 0 40px 15px rgba(255,240,200,0.4)} }
@keyframes fra-jester { 0%{transform:translateY(0) rotate(-3deg)} 25%{transform:translateY(-4px) rotate(2deg)} 50%{transform:translateY(-2px) rotate(-1deg)} 75%{transform:translateY(-5px) rotate(3deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes fra-hat { 0%{transform:rotate(-10deg)} 50%{transform:rotate(10deg)} 100%{transform:rotate(-10deg)} }
@keyframes fra-oyster { 0%{transform:scale(1) rotate(0)} 50%{transform:scale(1.05) rotate(5deg)} 100%{transform:scale(1) rotate(0)} }
@keyframes fra-shadow { 0%{transform:translateX(0) scaleX(1)} 50%{transform:translateX(3px) scaleX(1.2)} 100%{transform:translateX(0) scaleX(1)} }

.scn-lear-exits { background: linear-gradient(180deg, #c89040 0%, #4a2a10 100%), radial-gradient(ellipse at 50% 0%, #ffcc70 0%, transparent 60%); }
.scn-lear-exits .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(200,140,60,0.2) 0%, transparent 100%); }
.scn-lear-exits .window { position:absolute; top:10%; left:20%; width:60px; height:140px; background: linear-gradient(180deg, #ffeca0 0%, #e0b060 100%); border-radius:6px; box-shadow:0 0 50px 20px rgba(255,200,100,0.4); animation:le-window 5s ease-in-out infinite alternate; }
.scn-lear-exits .lear { position:absolute; bottom:10%; left:35%; width:50px; height:100px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:le-lear 3s ease-in-out infinite; }
.scn-lear-exits .fool { position:absolute; bottom:18%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:le-fool 4s ease-in-out infinite; }
.scn-lear-exits .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:20% 20% 0 0; }
.scn-lear-exits .throne { position:absolute; bottom:30%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #8a6030 0%, #4a2a10 100%); border-radius:10% 10% 5% 5%; box-shadow:0 6px 10px rgba(0,0,0,0.5); animation:le-throne 6s ease-in-out infinite; }
@keyframes le-window { 0%{opacity:0.6;box-shadow:0 0 30px 10px rgba(255,200,100,0.2)} 50%{opacity:1;box-shadow:0 0 60px 25px rgba(255,200,100,0.6)} 100%{opacity:0.7;box-shadow:0 0 40px 15px rgba(255,200,100,0.3)} }
@keyframes le-lear { 0%{transform:translateY(0) rotate(0deg)} 25%{transform:translateY(-2px) rotate(2deg)} 50%{transform:translateY(-1px) rotate(-2deg)} 75%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes le-fool { 0%{transform:translateY(0) rotate(5deg)} 50%{transform:translateY(-2px) rotate(-5deg)} 100%{transform:translateY(0) rotate(5deg)} }
@keyframes le-throne { 0%{transform:rotate(0deg)} 50%{transform:rotate(-1deg)} 100%{transform:rotate(0deg)} }

.scn-curan-news { background: linear-gradient(180deg, #2a1a10 0%, #100a05 100%), radial-gradient(ellipse at 80% 60%, #6a3a1a 0%, transparent 60%); }
.scn-curan-news .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(30,20,10,0.4) 0%, transparent 100%); }
.scn-curan-news .table { position:absolute; bottom:20%; left:35%; width:100px; height:12px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius:4px; box-shadow:0 4px 6px rgba(0,0,0,0.5); }
.scn-curan-news .candle { position:absolute; bottom:32%; left:65%; width:12px; height:35px; background: linear-gradient(180deg, #d0b080 0%, #a08050 100%); border-radius:4px; animation:cn-candle 4s ease-in-out infinite; }
.scn-curan-news .edmund { position:absolute; bottom:12%; left:35%; width:35px; height:70px; background: linear-gradient(180deg, #1a100a 0%, #050300 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:cn-edmund 5s ease-in-out infinite; }
.scn-curan-news .curan { position:absolute; bottom:15%; left:58%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:cn-curan 4s ease-in-out infinite; }
.scn-curan-news .letter { position:absolute; bottom:30%; left:45%; width:15px; height:20px; background:#e8d8c0; border-radius:2px; animation:cn-letter 6s ease-in-out infinite; }
@keyframes cn-candle { 0%{transform:scaleY(1) rotate(0deg)} 50%{transform:scaleY(1.05) rotate(1deg)} 100%{transform:scaleY(1) rotate(0deg)} }
@keyframes cn-edmund { 0%{transform:translateY(0) rotate(0deg)} 30%{transform:translateY(-2px) rotate(3deg)} 60%{transform:translateY(-1px) rotate(-2deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes cn-curan { 0%{transform:translateX(0) translateY(0) rotate(0deg)} 50%{transform:translateX(5px) translateY(-2px) rotate(5deg)} 100%{transform:translateX(0) translateY(0) rotate(0deg)} }
@keyframes cn-letter { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-5px) rotate(10deg)} 100%{transform:translateY(0) rotate(0deg)} }

.scn-edmund-plans-trap { background: linear-gradient(180deg, #0a0a05 0%, #050505 100%), radial-gradient(ellipse at 20% 60%, #4a2a0a 0%, transparent 70%); }
.scn-edmund-plans-trap .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,10,5,0.5) 0%, transparent 100%); }
.scn-edmund-plans-trap .desk { position:absolute; bottom:25%; left:20%; width:120px; height:10px; background: linear-gradient(180deg, #3a2010 0%, #1a0a05 100%); border-radius:4px; box-shadow:0 4px 6px rgba(0,0,0,0.8); }
.scn-edmund-plans-trap .candle { position:absolute; bottom:35%; left:25%; width:10px; height:30px; background: linear-gradient(180deg, #c8a060 0%, #8a6030 100%); border-radius:4px; animation:ept-candle 3s ease-in-out infinite; }
.scn-edmund-plans-trap .edmund { position:absolute; bottom:10%; left:40%; width:40px; height:80px; background: linear-gradient(180deg, #1a100a 0%, #050300 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:ept-edmund 7s ease-in-out infinite alternate; }
.scn-edmund-plans-trap .letter { position:absolute; bottom:30%; left:55%; width:18px; height:22px; background:#d8c0a0; border-radius:2px; animation:ept-letter 10s ease-in-out infinite; }
.scn-edmund-plans-trap .quill { position:absolute; bottom:35%; left:50%; width:20px; height:4px; background:#a08060; border-radius:2px; transform:rotate(30deg); animation:ept-quill 4s ease-in-out infinite; }
.scn-edmund-plans-trap .shadow { position:absolute; bottom:0; left:30%; width:50px; height:100px; background:rgba(0,0,0,0.6); border-radius:50%; filter:blur(8px); animation:ept-shadow 8s ease-in-out infinite alternate; }
@keyframes ept-candle { 0%{transform:scaleY(1) rotate(0deg)} 50%{transform:scaleY(1.03) rotate(1deg)} 100%{transform:scaleY(1) rotate(0deg)} }
@keyframes ept-edmund { 0%{transform:translateX(0) translateY(0) rotate(0deg)} 50%{transform:translateX(2px) translateY(-2px) rotate(3deg)} 100%{transform:translateX(0) translateY(0) rotate(0deg)} }
@keyframes ept-letter { 0%{transform:translateY(0) rotate(0deg)} 25%{transform:translateY(-3px) rotate(8deg)} 50%{transform:translateY(-1px) rotate(-5deg)} 75%{transform:translateY(-4px) rotate(4deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes ept-quill { 0%{transform:rotate(30deg)} 50%{transform:rotate(40deg)} 100%{transform:rotate(30deg)} }
@keyframes ept-shadow { 0%{transform:scaleY(1) translateX(0)} 50%{transform:scaleY(1.2) translateX(5px)} 100%{transform:scaleY(1) translateX(0)} }

.scn-aftermath-lear {
  background:
    linear-gradient(180deg, #3a6b9a 0%, #c8a05a 45%, #c8a05a 55%, #2a2a1a 70%, #1a1a0a 100%),
    radial-gradient(ellipse at 50% 0%, #f0d080 0%, transparent 40%);
  background-blend-mode: normal, overlay;
}

.scn-aftermath-lear .sky-al {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a7ab0 0%, #f0d080 100%);
  animation: sky-al 20s ease-in-out infinite alternate;
}

.scn-aftermath-lear .sun-al {
  position: absolute; top: 5%; left: 65%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff0a0 0%, #f0c060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,192,96,0.6);
  animation: sun-al 12s ease-in-out infinite alternate;
}

.scn-aftermath-lear .hills-al {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}

.scn-aftermath-lear .hills-a {
  animation: hills-al-1 18s ease-in-out infinite alternate;
}

.scn-aftermath-lear .hills-b {
  bottom: 22%; height: 25%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  animation: hills-al-2 22s ease-in-out infinite alternate;
}

.scn-aftermath-lear .figure-al {
  position: absolute; bottom: 24%; left: 30%; width: 28px; height: 42px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: figure-al 6s ease-in-out infinite;
}

.scn-aftermath-lear .crown-al {
  position: absolute; bottom: 32%; left: 31%; width: 16px; height: 10px;
  background: linear-gradient(180deg, #b08040 0%, #806030 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(-10deg);
  animation: crown-al 8s ease-in-out infinite alternate;
  box-shadow: 0 0 8px 4px rgba(176,128,64,0.4);
}

.scn-aftermath-lear .spear-al {
  position: absolute; bottom: 20%; left: 55%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: spear-al 10s ease-in-out infinite alternate;
}

.scn-aftermath-lear .cloud-al {
  position: absolute; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(6px);
}

.scn-aftermath-lear .cloud1 { top: 12%; left: 10%; animation: cloud-al-1 40s linear infinite; }
.scn-aftermath-lear .cloud2 { top: 20%; right: 5%; width: 60px; height: 14px; animation: cloud-al-2 50s linear infinite reverse; }

@keyframes sky-al {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sun-al {
  0% { transform: translateX(-5px) scale(0.95); box-shadow: 0 0 40px 15px rgba(240,192,96,0.5); }
  50% { transform: translateX(0) scale(1.05); box-shadow: 0 0 80px 30px rgba(240,192,96,0.7); }
  100% { transform: translateX(3px) scale(1); box-shadow: 0 0 60px 20px rgba(240,192,96,0.6); }
}
@keyframes hills-al-1 {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes hills-al-2 {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(0.98); }
  100% { transform: translateY(1px) scaleX(1.01); }
}
@keyframes figure-al {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes crown-al {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(-8deg) translateY(1px); }
}
@keyframes spear-al {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(7deg) translateY(-2px); }
  100% { transform: rotate(3deg) translateY(1px); }
}
@keyframes cloud-al-1 {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(120vw); }
}
@keyframes cloud-al-2 {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

/* Scene 2: edgar-leads-father */
.scn-edgar-leads-father {
  background:
    linear-gradient(180deg, #6a9ac0 0%, #c8d8e0 50%, #a0b060 70%, #4a6a2a 85%, #3a4a1a 100%),
    radial-gradient(ellipse at 50% 0%, #f0e8c0 0%, transparent 50%);
  background-blend-mode: normal, overlay;
}

.scn-edgar-leads-father .sky-elf {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #7ab0d0 0%, #f0e8c0 100%);
  animation: sky-elf 25s ease-in-out infinite alternate;
}

.scn-edgar-leads-father .sun-elf {
  position: absolute; top: 6%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8e0 0%, #f0d8a0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 25px rgba(240,216,160,0.5);
  animation: sun-elf 15s ease-in-out infinite alternate;
}

.scn-edgar-leads-father .hills-elf {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: hills-elf 18s ease-in-out infinite alternate;
}

.scn-edgar-leads-father .path-elf {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #c8b080 0%, #a08860 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: scaleX(1.2);
  box-shadow: 0 -2px 10px rgba(0,0,0,0.2);
}

.scn-edgar-leads-father .tree-elf {
  position: absolute; bottom: 25%; left: 15%;
}

.scn-edgar-leads-father .trunk {
  width: 12px; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px 4px 0 0;
  transform-origin: bottom center;
  animation: trunk-elf 12s ease-in-out infinite alternate;
}

.scn-edgar-leads-father .leaves {
  position: absolute; bottom: 40px; left: -20px; width: 52px; height: 40px;
  background: linear-gradient(180deg, #8aaa5a 0%, #5a7a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: leaves-elf 8s ease-in-out infinite alternate;
}

.scn-edgar-leads-father .fig-elf {
  position: absolute; bottom: 20%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}

.scn-edgar-leads-father .leader {
  left: 35%;
  animation: leader-elf 6s ease-in-out infinite;
}

.scn-edgar-leads-father .follower {
  left: 48%;
  width: 24px; height: 38px;
  animation: follower-elf 6s ease-in-out infinite 2s;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
}

.scn-edgar-leads-father .cloud-elf {
  position: absolute; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, rgba(255,255,240,0.1) 100%);
  border-radius: 50%; filter: blur(5px);
}

.scn-edgar-leads-father .c1 { top: 10%; left: 8%; animation: cloud-elf-1 45s linear infinite; }
.scn-edgar-leads-father .c2 { top: 18%; right: 10%; width: 55px; height: 12px; animation: cloud-elf-2 55s linear infinite reverse; }

@keyframes sky-elf {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes sun-elf {
  0% { transform: translateX(-5px) scale(0.95); box-shadow: 0 0 50px 20px rgba(240,216,160,0.4); }
  50% { transform: translateX(0) scale(1.05); box-shadow: 0 0 80px 30px rgba(240,216,160,0.65); }
  100% { transform: translateX(3px) scale(1); box-shadow: 0 0 60px 25px rgba(240,216,160,0.5); }
}
@keyframes hills-elf {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes trunk-elf {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes leaves-elf {
  0% { transform: scaleY(1) rotate(-3deg); }
  50% { transform: scaleY(1.05) rotate(2deg); }
  100% { transform: scaleY(0.98) rotate(-1deg); }
}
@keyframes leader-elf {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(10px) rotate(1deg); }
  50% { transform: translateX(20px) rotate(0deg); }
  75% { transform: translateX(30px) rotate(1deg); }
  100% { transform: translateX(40px) rotate(-1deg); }
}
@keyframes follower-elf {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(8px) rotate(1deg); }
  50% { transform: translateX(16px) rotate(0deg); }
  75% { transform: translateX(24px) rotate(1deg); }
  100% { transform: translateX(32px) rotate(-2deg); }
}
@keyframes cloud-elf-1 {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}
@keyframes cloud-elf-2 {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

.scn-lear-preaches {
  background: linear-gradient(180deg, #1a1a2e 0%, #e0a96d 50%, #f5d6a0 100%), radial-gradient(ellipse at 50% 100%, #e0a96d 0%, transparent 80%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-lear-preaches .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #3a3a5e 0%, #a08040 100%); animation: lp-sky 12s ease-in-out infinite alternate; }
.scn-lear-preaches .sun { position: absolute; top: 10%; left: 60%; width: 60px; height: 60px; background: radial-gradient(circle, #ffd580 0%, #ffb040 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,180,64,0.5); animation: lp-sun 5s ease-in-out infinite alternate; }
.scn-lear-preaches .cloud { position: absolute; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(200,200,200,0.2) 100%); border-radius: 50%; filter: blur(6px); }
.scn-lear-preaches .cloud-a { top: 15%; left: 10%; width: 120px; height: 30px; animation: lp-cloud-drift 40s linear infinite; }
.scn-lear-preaches .cloud-b { top: 25%; right: 20%; width: 80px; height: 20px; animation: lp-cloud-drift 30s linear infinite reverse; }
.scn-lear-preaches .heath { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); animation: lp-heath 9s ease-in-out infinite alternate; }
.scn-lear-preaches .rock { position: absolute; bottom: 42%; left: 30%; width: 80px; height: 50px; background: linear-gradient(135deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 30% 70% 50% 50% / 40% 60% 40% 60%; box-shadow: 0 4px 10px rgba(0,0,0,0.6); animation: lp-rock 6s ease-in-out infinite; }
.scn-lear-preaches .figure-body { position: absolute; bottom: 48%; left: 33%; width: 30px; height: 60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lp-figure 4s ease-in-out infinite; }
.scn-lear-preaches .arm-left { position: absolute; bottom: 68%; left: 31%; width: 8px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 0 0; transform-origin: bottom center; animation: lp-arm-left 3s ease-in-out infinite; }
.scn-lear-preaches .arm-right { position: absolute; bottom: 68%; left: 56%; width: 8px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 0 0; transform-origin: bottom center; animation: lp-arm-right 3s ease-in-out infinite; }
@keyframes lp-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes lp-sun { 0% { transform: scale(0.9); box-shadow: 0 0 30px 15px rgba(255,180,64,0.4); } 50% { transform: scale(1.1); box-shadow: 0 0 60px 30px rgba(255,180,64,0.7); } 100% { transform: scale(0.95); box-shadow: 0 0 40px 20px rgba(255,180,64,0.5); } }
@keyframes lp-cloud-drift { 0% { transform: translateX(0); } 100% { transform: translateX(-200vw); } }
@keyframes lp-heath { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes lp-rock { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lp-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes lp-arm-left { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(-30deg); } }
@keyframes lp-arm-right { 0% { transform: rotate(30deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(30deg); } }

.scn-lear-led-away {
  background: linear-gradient(180deg, #2a2a40 0%, #c0a060 60%, #e0c080 100%), radial-gradient(ellipse at 50% 100%, #c0a060 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-lear-led-away .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #3a3a50 0%, #b09050 100%); animation: lla-sky 15s ease-in-out infinite alternate; }
.scn-lear-led-away .sun-low { position: absolute; bottom: 35%; left: 50%; width: 50px; height: 50px; background: radial-gradient(circle, #ffd060 0%, #f0a030 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 50px 25px rgba(240,160,48,0.5); transform: translateX(-50%); animation: lla-sun 10s ease-in-out infinite alternate; }
.scn-lear-led-away .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%); border-radius: 30% 70% 0 0 / 20% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-lear-led-away .figure-lear { position: absolute; bottom: 25%; left: 45%; width: 28px; height: 55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lla-walk 3s ease-in-out infinite; }
.scn-lear-led-away .guard-left { position: absolute; bottom: 25%; left: 30%; width: 25px; height: 60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: lla-walk 3s ease-in-out infinite 0.5s; }
.scn-lear-led-away .guard-right { position: absolute; bottom: 25%; right: 30%; width: 25px; height: 60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: lla-walk 3s ease-in-out infinite 1s; }
.scn-lear-led-away .chain { position: absolute; top: 55%; width: 30%; height: 3px; background: linear-gradient(90deg, #706050 0%, #908070 50%, #706050 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); transform-origin: center; }
.scn-lear-led-away .chain-left { left: 32%; transform: rotate(-10deg); animation: lla-chain 2s ease-in-out infinite alternate; }
.scn-lear-led-away .chain-right { right: 32%; transform: rotate(10deg); animation: lla-chain 2s ease-in-out infinite alternate-reverse; }
.scn-lear-led-away .crown { position: absolute; bottom: 72%; left: 47.5%; width: 18px; height: 12px; background: radial-gradient(circle at 50% 0%, #f0d060 0%, #c0a040 100%); border-radius: 50% 50% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: lla-crown 3s ease-in-out infinite; }
@keyframes lla-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes lla-sun { 0% { transform: translateX(-50%) scale(0.9); box-shadow: 0 0 30px 15px rgba(240,160,48,0.4); } 50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 60px 30px rgba(240,160,48,0.7); } 100% { transform: translateX(-50%) scale(0.95); box-shadow: 0 0 40px 20px rgba(240,160,48,0.5); } }
@keyframes lla-walk { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lla-chain { 0% { transform: rotate(-15deg); } 100% { transform: rotate(5deg); } }
@keyframes lla-crown { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(3deg); } }

.scn-edgar-leads-father {
  background: linear-gradient(180deg, #b8d8f0 0%, #e8f4e0 40%, #c4b460 100%), radial-gradient(ellipse at 30% 20%, #fff4d0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-edgar-leads-father .el-sky {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #a0c8e8 0%, #d4e8f8 40%, transparent 100%);
  animation: el-sky 20s ease-in-out infinite alternate;
}
.scn-edgar-leads-father .el-sun {
  position: absolute;
  top: 18%;
  left: 30%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #fff8d0 0%, #ffe680 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,230,128,0.5);
  animation: el-sun 10s ease-in-out infinite alternate;
}
.scn-edgar-leads-father .el-clouds {
  position: absolute;
  top: 8%;
  left: 20%;
  width: 140px;
  height: 30px;
  background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: el-clouds 40s linear infinite;
}
.scn-edgar-leads-father .el-distant {
  position: absolute;
  bottom: 45%;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #8cb86a 0%, #5a8a3a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.2);
  animation: el-distant 15s ease-in-out infinite alternate;
}
.scn-edgar-leads-father .el-ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 45%;
  background: linear-gradient(180deg, #7aa85a 0%, #4a7a2a 60%, #3a5a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-edgar-leads-father .el-path {
  position: absolute;
  bottom: 18%;
  left: 10%;
  right: 10%;
  height: 8%;
  background: linear-gradient(180deg, #c4b060 0%, #a09040 100%);
  border-radius: 50% 40% 20% 30% / 100% 100% 100% 100%;
  transform: perspective(200px) rotateX(10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: el-path 12s ease-in-out infinite alternate;
}
.scn-edgar-leads-father .el-figure-lead {
  position: absolute;
  bottom: 14%;
  left: 40%;
  width: 22px;
  height: 44px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: el-walk-lead 3s ease-in-out infinite;
  box-shadow: -2px 0 4px rgba(0,0,0,.2);
}
.scn-edgar-leads-father .el-figure-lead::before {
  content: "";
  position: absolute;
  top: -10px;
  left: 8px;
  width: 8px;
  height: 12px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  transform: rotate(-10deg);
}
.scn-edgar-leads-father .el-figure-follow {
  position: absolute;
  bottom: 12%;
  left: 50%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: el-walk-follow 3.5s ease-in-out infinite;
  box-shadow: -2px 0 4px rgba(0,0,0,.2);
}
.scn-edgar-leads-father .el-figure-follow::before {
  content: "";
  position: absolute;
  top: -8px;
  left: 10px;
  width: 6px;
  height: 16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40%;
  transform: rotate(15deg);
}
.scn-edgar-leads-father .el-tree {
  position: absolute;
  bottom: 20%;
  left: 70%;
  width: 40px;
  height: 80px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 30% 30%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.3);
  animation: el-tree 20s ease-in-out infinite alternate;
}
.scn-edgar-leads-father .el-tree::after {
  content: "";
  position: absolute;
  top: -30px;
  left: -10px;
  width: 60px;
  height: 40px;
  background: radial-gradient(ellipse, #6a9a3a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: el-tree-foliage 8s ease-in-out infinite alternate;
}
@keyframes el-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes el-sun {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 80px 30px rgba(255,230,128,0.5); }
  50% { transform: translateY(-4px) scale(1.02); box-shadow: 0 0 100px 40px rgba(255,230,128,0.6); }
  100% { transform: translateY(0) scale(1); box-shadow: 0 0 80px 30px rgba(255,230,128,0.5); }
}
@keyframes el-clouds {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}
@keyframes el-distant {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes el-path {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes el-walk-lead {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(6px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(12px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(18px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(24px) translateY(0) rotate(0deg); }
}
@keyframes el-walk-follow {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  25% { transform: translateX(5px) translateY(-1px) rotate(-1deg); }
  50% { transform: translateX(10px) translateY(0) rotate(2deg); }
  75% { transform: translateX(15px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(20px) translateY(0) rotate(-1deg); }
}
@keyframes el-tree {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes el-tree-foliage {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}

.scn-lear-preaches { background: linear-gradient(180deg, #4a6b8a 0%, #c87a4a 60%, #b05a2a 100%), radial-gradient(ellipse at 70% 20%, #ffd080 0%, transparent 50%); }
.scn-lear-preaches .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a8baa 0%, transparent 100%); animation: lp-sky 12s ease-in-out infinite alternate; }
.scn-lear-preaches .sun { position:absolute; top:10%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #ffd080 0%, #c87a4a 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 20px #ffd080; animation: lp-sun 8s ease-in-out infinite alternate; }
.scn-lear-preaches .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.3); animation: lp-hills 20s ease-in-out infinite alternate; }
.scn-lear-preaches .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a5a4a 0%, #2a2a1a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-lear-preaches .figure { position:absolute; bottom:25%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lp-figure 4s ease-in-out infinite; }
.scn-lear-preaches .staff { position:absolute; bottom:28%; left:43%; width:4px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50%; transform-origin: bottom center; animation: lp-staff 4s ease-in-out infinite; }
.scn-lear-preaches .cloud { position:absolute; top:20%; right:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(6px); animation: lp-cloud 30s linear infinite; }
@keyframes lp-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes lp-sun { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(.95); opacity:.8 } }
@keyframes lp-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes lp-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 75% { transform: translateX(0) translateY(-2px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes lp-staff { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes lp-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-150px) } }

.scn-aftermath-lear {
  background:
    linear-gradient(180deg, #6b7b8a 0%, #a4b4c4 30%, #d4c4a4 70%, #c4a474 100%),
    radial-gradient(ellipse at 30% 20%, #f0e6a0 0%, transparent 40%);
}
.scn-aftermath-lear .sky {
  position: absolute;
  inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b4c4d4 0%, transparent 100%);
  animation: al-sky 15s ease-in-out infinite alternate;
}
.scn-aftermath-lear .sun {
  position: absolute;
  top: 15%;
  left: 20%;
  width: 70px;
  height: 70px;
  background: radial-gradient(circle, #ffe8a0 0%, #f0c060 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(240,192,96,.4);
  animation: al-sun 8s ease-in-out infinite;
}
.scn-aftermath-lear .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: al-ground 20s ease-in-out infinite;
}
.scn-aftermath-lear .army {
  position: absolute;
  bottom: 42%;
  left: 5%;
  right: 30%;
  height: 20%;
  background: repeating-linear-gradient(90deg, #2a2a3a 0px, #2a2a3a 3px, transparent 3px, transparent 7px);
  opacity: 0.8;
  animation: al-army 40s linear infinite;
}
.scn-aftermath-lear .figure {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 15px;
  height: 35px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: al-figure 5s ease-in-out infinite;
}
.scn-aftermath-lear .spear {
  position: absolute;
  bottom: 38%;
  left: 45%;
  width: 2px;
  height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: al-spear 3s ease-in-out infinite;
}
.scn-aftermath-lear .dust-cloud {
  position: absolute;
  bottom: 30%;
  width: 30px;
  height: 10px;
  background: rgba(180,160,120,.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: al-dust 15s ease-in-out infinite;
}
.scn-aftermath-lear .dust-1 { left: 20%; animation-delay: 0s; }
.scn-aftermath-lear .dust-2 { left: 50%; animation-delay: -5s; }

@keyframes al-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes al-sun {
  0% { transform: scale(1) translateX(0); }
  50% { transform: scale(1.05) translateX(5px); }
  100% { transform: scale(1) translateX(0); }
}
@keyframes al-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes al-army {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(10px); }
}
@keyframes al-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(2deg) translateY(-1px); }
  50% { transform: translateX(8px) rotate(-1deg); }
  75% { transform: translateX(12px) rotate(1deg) translateY(-1px); }
  100% { transform: translateX(16px) rotate(0); }
}
@keyframes al-spear {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(-10deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes al-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(20px) scale(1.5); opacity: 0.5; }
  100% { transform: translateX(40px) scale(1); opacity: 0; }
}

.scn-lear-led-away {
  background:
    linear-gradient(180deg, #d4c9a8 0%, #b8a27a 40%, #7a6b4a 70%, #3a2e1a 100%),
    radial-gradient(ellipse at 50% 0%, #e5d4a8 0%, transparent 60%);
}

.scn-lear-led-away .sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #e5d4a8 0%, #c4b28a 40%, transparent 100%);
  animation: ll-sky 20s ease-in-out infinite alternate;
}

.scn-lear-led-away .sun {
  position: absolute;
  top: 12%;
  left: 18%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #f5e6c8 0%, #e5c88a 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(229,200,138,0.4);
  animation: ll-sun 8s ease-in-out infinite alternate;
}

.scn-lear-led-away .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(180deg, #6b5b4a 0%, #3a2e1a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: ll-ground 10s ease-in-out infinite;
}

.scn-lear-led-away .road {
  position: absolute;
  bottom: 28%;
  left: 15%;
  width: 70%;
  height: 6%;
  background: linear-gradient(90deg, #8a7a5a, #5a4a3a 50%, #8a7a5a);
  border-radius: 40%;
  opacity: 0.6;
  animation: ll-road 12s linear infinite;
}

.scn-lear-led-away .figure-lear {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ll-lear 6s ease-in-out infinite;
}

.scn-lear-led-away .crown {
  position: absolute;
  bottom: 53%;
  left: 44.8%;
  width: 26px;
  height: 12px;
  background: #d4a86a;
  clip-path: polygon(0% 100%, 15% 0%, 30% 50%, 50% 0%, 70% 50%, 85% 0%, 100% 100%);
  animation: ll-crown 6s ease-in-out infinite;
}

.scn-lear-led-away .staff {
  position: absolute;
  bottom: 32%;
  left: 41%;
  width: 4px;
  height: 55px;
  background: #5a4a3a;
  border-radius: 20%;
  transform-origin: bottom center;
  animation: ll-staff 6s ease-in-out infinite;
}

.scn-lear-led-away .dust-a {
  position: absolute;
  bottom: 26%;
  left: 50%;
  width: 30px;
  height: 20px;
  background: rgba(100,80,60,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: ll-dust-a 18s linear infinite;
}

.scn-lear-led-away .dust-b {
  position: absolute;
  bottom: 24%;
  left: 30%;
  width: 40px;
  height: 25px;
  background: rgba(100,80,60,0.2);
  border-radius: 50%;
  filter: blur(8px);
  animation: ll-dust-b 22s linear infinite;
}

@keyframes ll-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

@keyframes ll-sun {
  0% { transform: scale(0.95) translateX(0); box-shadow: 0 0 60px 20px rgba(229,200,138,0.3); }
  50% { transform: scale(1.05) translateX(-5px); box-shadow: 0 0 100px 40px rgba(229,200,138,0.5); }
  100% { transform: scale(1) translateX(0); box-shadow: 0 0 80px 30px rgba(229,200,138,0.4); }
}

@keyframes ll-ground {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(2px); }
}

@keyframes ll-road {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 0%; }
}

@keyframes ll-lear {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(16px) rotate(0deg); }
  75% { transform: translateX(8px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes ll-crown {
  0%,100% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
}

@keyframes ll-staff {
  0%,100% { transform: translateX(0) rotate(-5deg); }
  50% { transform: translateX(4px) rotate(5deg); }
}

@keyframes ll-dust-a {
  0% { transform: translateX(-20px) scale(1); opacity: 0.2; }
  25% { transform: translateX(10px) scale(1.2); opacity: 0.4; }
  50% { transform: translateX(40px) scale(1.1); opacity: 0.3; }
  75% { transform: translateX(70px) scale(0.9); opacity: 0.2; }
  100% { transform: translateX(100px) scale(1); opacity: 0.1; }
}

@keyframes ll-dust-b {
  0% { transform: translateX(0) scale(1); opacity: 0.1; }
  33% { transform: translateX(-30px) scale(1.3); opacity: 0.3; }
  66% { transform: translateX(-60px) scale(0.8); opacity: 0.2; }
  100% { transform: translateX(-90px) scale(1); opacity: 0.1; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.scn { position: absolute; pointer-events: none; }
.shield { position: absolute; pointer-events: none; }
.wave { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
/* Scene: king-lear-palace (calm, bright-interior) */
.scn-king-lear-palace {
  background: linear-gradient(180deg, #f2d9b3 0%, #c9a87c 40%, #8b6f47 100%),
              radial-gradient(ellipse at 60% 30%, #ffe0a0, transparent 60%);
  box-shadow: inset 0 0 80px 20px rgba(255, 200, 100, 0.3);
}
.scn-king-lear-palace .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d9c2a3 0%, #b5916a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.15);
}
.scn-king-lear-palace .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8b6f47 0%, #6b5535 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-king-lear-palace .pillar {
  position: absolute; bottom: 0; width: 30px; height: 70%;
  background: linear-gradient(90deg, #a0896a 0%, #c9b090 50%, #a0896a 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(0,0,0,0.2);
}
.scn-king-lear-palace .pillar-a { left: 15%; }
.scn-king-lear-palace .pillar-b { right: 15%; }
.scn-king-lear-palace .throne {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 90px;
  background: linear-gradient(180deg, #b8860b 0%, #8b6508 50%, #5a4205 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5), inset 0 0 20px rgba(255,215,0,0.3);
  animation: klp-throne 12s ease-in-out infinite alternate;
}
.scn-king-lear-palace .window-light {
  position: absolute; top: 10%; right: 20%; width: 50px; height: 70px;
  background: radial-gradient(ellipse, #fff8e0 0%, #ffe0a0 50%, transparent 70%);
  border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%;
  filter: blur(8px);
  animation: klp-light 8s ease-in-out infinite alternate;
}
.scn-king-lear-palace .figure {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: klp-figure 6s ease-in-out infinite;
}
.scn-king-lear-palace .drape {
  position: absolute; top: 0; left: -10%; width: 120%; height: 12%;
  background: linear-gradient(90deg, #8b0000 0%, #a05030 30%, #800000 70%, #a05030 100%);
  border-radius: 0 0 40% 40%;
  filter: drop-shadow(0 8px 10px rgba(0,0,0,0.3));
  animation: klp-drape 15s ease-in-out infinite alternate;
}
@keyframes klp-throne { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes klp-light { 0% { opacity: 0.7; } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; } }
@keyframes klp-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-8px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes klp-drape { 0% { transform: scaleX(1) translateY(0); } 100% { transform: scaleX(1.02) translateY(2px); } }

/* Scene: item-map-lear-division (tense, bright-interior) */
.scn-item-map-lear-division {
  background: linear-gradient(180deg, #e6ccb3 0%, #b38b6a 40%, #7a5e3e 100%),
              radial-gradient(ellipse at 50% 30%, #ffe0a0, transparent 60%);
  box-shadow: inset 0 0 60px 10px rgba(200, 100, 50, 0.2);
}
.scn-item-map-lear-division .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ccb093 0%, #a88467 100%);
  box-shadow: inset 0 8px 25px rgba(0,0,0,0.2);
}
.scn-item-map-lear-division .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #7a5e3e 0%, #5a432a 100%);
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.4);
}
.scn-item-map-lear-division .table {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 20px;
  background: linear-gradient(180deg, #6b4f2e 0%, #4a3520 100%);
  border-radius: 4px;
  box-shadow: 0 6px 15px rgba(0,0,0,0.5);
}
.scn-item-map-lear-division .map {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 70px;
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-item-map-lear-division .map-left {
  background: linear-gradient(135deg, #b8860b 0%, #8b6508 40%, #5a4205 100%);
  clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%);
  animation: iml-map-left 0.6s ease-in-out infinite alternate;
}
.scn-item-map-lear-division .map-right {
  background: linear-gradient(225deg, #a0522d 0%, #8b4513 40%, #5a2d0c 100%);
  clip-path: polygon(50% 0, 100% 0, 100% 100%, 50% 100%);
  animation: iml-map-right 0.6s ease-in-out infinite alternate;
}
.scn-item-map-lear-division .hand {
  position: absolute; bottom: 32%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
}
.scn-item-map-lear-division .hand-left { left: 37%; animation: iml-hand-left 1s ease-in-out infinite; }
.scn-item-map-lear-division .hand-right { right: 37%; animation: iml-hand-right 1s ease-in-out infinite; }
.scn-item-map-lear-division .crown {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 25px;
  background: linear-gradient(180deg, #ffd700 0%, #daa520 50%, #b8860b 100%);
  clip-path: polygon(50% 0%, 80% 20%, 100% 0%, 90% 50%, 100% 100%, 50% 80%, 0% 100%, 10% 50%, 0% 0%, 20% 20%);
  animation: iml-crown 3s ease-in-out infinite;
}
@keyframes iml-map-left { 0% { transform: translateX(-50%) translateY(0); } 100% { transform: translateX(-50%) translateY(3px); } }
@keyframes iml-map-right { 0% { transform: translateX(-50%) translateY(0); } 100% { transform: translateX(-50%) translateY(-3px); } }
@keyframes iml-hand-left { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes iml-hand-right { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes iml-crown { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(0deg); } }

/* Scene: king-lear-division (tense, bright-interior) */
.scn-king-lear-division {
  background: linear-gradient(180deg, #d9bfa0 0%, #b08b6a 40%, #7a5e3e 100%),
              radial-gradient(ellipse at 30% 20%, #ffe080, transparent 50%),
              radial-gradient(ellipse at 70% 20%, #ffd080, transparent 50%);
  box-shadow: inset 0 0 80px 20px rgba(150, 80, 30, 0.25);
}
.scn-king-lear-division .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b89878 0%, #9a7a5a 100%);
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.2);
}
.scn-king-lear-division .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a5e3e 0%, #5a432a 100%);
  box-shadow: inset 0 10px 35px rgba(0,0,0,0.4);
}
.scn-king-lear-division .throne {
  position: absolute; bottom: 20%; left: 20%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #b8860b 0%, #8b6508 50%, #5a4205 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5), inset 0 0 20px rgba(255,215,0,0.3);
  animation: kld-throne 4s ease-in-out infinite alternate;
}
.scn-king-lear-division .figure {
  position: absolute; bottom: 22%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-king-lear-division .figure-lear { left: 20%; width: 24px; height: 50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); animation: kld-lear 5s ease-in-out infinite; }
.scn-king-lear-division .figure-goneril { left: 45%; animation: kld-figure 3s ease-in-out infinite; }
.scn-king-lear-division .figure-regan { left: 55%; animation: kld-figure 3.5s ease-in-out infinite; animation-delay: 0.5s; }
.scn-king-lear-division .figure-cordelia { left: 65%; width: 16px; height: 40px; animation: kld-cordelia 4s ease-in-out infinite; }
.scn-king-lear-division .map-floor {
  position: absolute; bottom: 5%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 40px;
  background: linear-gradient(135deg, #b8860b 0%, #a0522d 50%, #5a4205 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: kld-map 6s ease-in-out infinite;
}
@keyframes kld-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes kld-lear { 0% { transform: rotate(2deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-5px); } 50% { transform: rotate(0) translateY(0); } 75% { transform: rotate(1deg) translateY(-3px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes kld-figure { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes kld-cordelia { 0% { transform: rotate(-3deg) translateY(0); } 33% { transform: rotate(0) translateY(-4px); } 66% { transform: rotate(2deg) translateY(0); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes kld-map { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(3deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(0); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.frontal { position: absolute; pointer-events: none; }
.profile { position: absolute; pointer-events: none; }
.shadow-shelf { position: absolute; pointer-events: none; }
.wave-1 { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-lear-curses-goneril-war-rumors {
  background: linear-gradient(180deg, #2a1e18 0%, #3a2a20 40%, #1a1410 100%),
              radial-gradient(ellipse at 50% 100%, #4a3428 0%, transparent 70%);
}
.scn-lear-curses-goneril-war-rumors .wall-back { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3428 0%, #3a2a20 100%); border-radius:0 0 30% 30% / 0 0 20% 20%; }
.scn-lear-curses-goneril-war-rumors .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1410 0%, #2a1e18 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.5); }
.scn-lear-curses-goneril-war-rumors .table-prop { position:absolute; bottom:22%; left:50%; width:120px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-lear-curses-goneril-war-rumors .letter { position:absolute; bottom:38%; left:55%; width:40px; height:28px; background: linear-gradient(135deg, #c8b090 0%, #a08060 100%); transform:rotate(-10deg); border-radius:1px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: lcgw-letter 6s ease-in-out infinite; }
.scn-lear-curses-goneril-war-rumors .lear-figure { position:absolute; bottom:18%; left:38%; width:40px; height:70px; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(5deg); animation: lcgw-lear 4s ease-in-out infinite; }
.scn-lear-curses-goneril-war-rumors .fool-figure { position:absolute; bottom:18%; right:35%; width:30px; height:55px; background: linear-gradient(180deg, #3a2a20 0%, #2a1e18 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform:rotate(-5deg); animation: lcgw-fool 6s ease-in-out infinite; }
.scn-lear-curses-goneril-war-rumors .candle-glow { position:absolute; bottom:42%; left:20%; width:40px; height:40px; background: radial-gradient(circle, #c08040 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 10px #c08040, 0 0 80px 20px rgba(192,128,64,.3); animation: lcgw-candle 3s ease-in-out infinite alternate; }
.scn-lear-curses-goneril-war-rumors .candle { position:absolute; bottom:42%; left:20%; width:8px; height:20px; background: linear-gradient(180deg, #c08040 0%, #a06030 100%); border-radius:2px 2px 0 0; transform:translateX(16px); }
.scn-lear-curses-goneril-war-rumors .shadow-pool { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); pointer-events:none; animation: lcgw-shadow 8s ease-in-out infinite; }
@keyframes lcgw-letter { 0% { transform:rotate(-10deg) translateY(0); } 50% { transform:rotate(-8deg) translateY(-2px); } 100% { transform:rotate(-10deg) translateY(0); } }
@keyframes lcgw-lear { 0% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(7deg) translateY(-2px); } 100% { transform:rotate(3deg) translateY(0); } }
@keyframes lcgw-fool { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-1px); } 100% { transform:rotate(-6deg) translateY(0); } }
@keyframes lcgw-candle { 0% { opacity:0.7; transform:scale(1); } 100% { opacity:1; transform:scale(1.1); } }
@keyframes lcgw-shadow { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-edmund-deceives-gloucester-stocks {
  background: linear-gradient(180deg, #2a1e18 0%, #3a2a20 40%, #1a1410 100%),
              radial-gradient(ellipse at 50% 100%, #4a3428 0%, transparent 70%);
}
.scn-edmund-deceives-gloucester-stocks .wall-panel { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a3428 0%, #3a2a20 100%); border-radius:0 0 10% 10%; }
.scn-edmund-deceives-gloucester-stocks .stocks-chair { position:absolute; bottom:18%; left:35%; width:80px; height:50px; background: linear-gradient(180deg, #3a2a20 0%, #2a1e18 100%); border-radius:4px; transform:rotate(-2deg); box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-edmund-deceives-gloucester-stocks .edmund-figure { position:absolute; bottom:20%; left:30%; width:36px; height:70px; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(10deg); animation: edmund-edm 5s ease-in-out infinite; }
.scn-edmund-deceives-gloucester-stocks .gloucester-figure { position:absolute; bottom:20%; right:30%; width:40px; height:75px; background: linear-gradient(180deg, #4a3428 0%, #2a1e18 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform:rotate(-5deg); animation: edmund-glou 4s ease-in-out infinite; }
.scn-edmund-deceives-gloucester-stocks .sword-blood { position:absolute; bottom:30%; left:42%; width:6px; height:30px; background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%); border-radius:2px; transform:rotate(15deg); box-shadow: 0 0 8px 2px rgba(160,70,26,.4); animation: edmund-sword 3s ease-in-out infinite; }
.scn-edmund-deceives-gloucester-stocks .lamp { position:absolute; bottom:40%; left:60%; width:16px; height:24px; background: linear-gradient(180deg, #6a4a3a 0%, #4a3428 100%); border-radius:4px 4px 0 0; }
.scn-edmund-deceives-gloucester-stocks .lamp-glow { position:absolute; bottom:38%; left:58%; width:40px; height:40px; background: radial-gradient(circle, #c08040 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 8px #c08040; animation: edmund-lamp 3s ease-in-out infinite alternate; }
.scn-edmund-deceives-gloucester-stocks .shadow-sweep { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); pointer-events:none; animation: edmund-shadow 7s ease-in-out infinite; }
@keyframes edmund-edm { 0% { transform:rotate(10deg) translateY(0); } 50% { transform:rotate(8deg) translateY(-3px); } 100% { transform:rotate(12deg) translateY(1px); } }
@keyframes edmund-glou { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-2px); } 100% { transform:rotate(-7deg) translateY(0); } }
@keyframes edmund-sword { 0% { transform:rotate(15deg); } 50% { transform:rotate(12deg); } 100% { transform:rotate(18deg); } }
@keyframes edmund-lamp { 0% { opacity:0.6; transform:scale(1); } 100% { opacity:1; transform:scale(1.1); } }
@keyframes edmund-shadow { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-storm-rage-heath {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a5e 0%, transparent 70%);
}
.scn-storm-rage-heath .sky-storm { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 60%, #0a0a1a 100%); animation: storm-sky 10s ease-in-out infinite alternate; }
.scn-storm-rage-heath .lightning-bolt { position:absolute; top:0; left:45%; width:4px; height:50%; background: linear-gradient(180deg, #fff 0%, #b8c8e0 40%, transparent 100%); transform:skewX(-10deg); filter:brightness(1.5); box-shadow: 0 0 20px 6px rgba(255,255,255,.6); animation: storm-bolt 6s ease-in-out infinite; }
.scn-storm-rage-heath .rain-sheet { position:absolute; inset:0; background: linear-gradient(0deg, transparent 0%, rgba(180,200,240,.1) 100%); background-size:100% 200%; animation: storm-rain 2s linear infinite; }
.scn-storm-rage-heath .rain-sheet-b { position:absolute; inset:0; background: linear-gradient(90deg, transparent 0%, rgba(180,200,240,.08) 100%); background-size:200% 100%; animation: storm-rain-b 3s linear infinite; }
.scn-storm-rage-heath .heath-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius:50% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-storm-rage-heath .lear-heath-figure { position:absolute; bottom:28%; left:45%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-15deg); animation: storm-lear 8s ease-in-out infinite; }
.scn-storm-rage-heath .wind-swept-tree { position:absolute; bottom:20%; left:20%; width:20px; height:100px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:0 0 20% 20%; transform:rotate(25deg); transform-origin:bottom; animation: storm-tree 12s ease-in-out infinite; }
.scn-storm-rage-heath .moon-hint { position:absolute; top:8%; right:15%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,220,240,.15) 0%, transparent 70%); border-radius:50%; animation: storm-moon 20s ease-in-out infinite alternate; }
@keyframes storm-sky { 0% { opacity:0.5; } 100% { opacity:1; } }
@keyframes storm-bolt { 0% { opacity:0; transform:skewX(-10deg) scaleY(1); } 10% { opacity:1; } 15% { opacity:0; } 25% { opacity:0.8; } 30% { opacity:0; } 100% { opacity:0; } }
@keyframes storm-rain { 0% { background-position:0 0; } 100% { background-position:0 -200%; } }
@keyframes storm-rain-b { 0% { background-position:0 0; } 100% { background-position:-200% 0; } }
@keyframes storm-lear { 0% { transform:rotate(-15deg) translateX(0); } 50% { transform:rotate(-20deg) translateX(-5px); } 100% { transform:rotate(-10deg) translateX(3px); } }
@keyframes storm-tree { 0% { transform:rotate(25deg); } 50% { transform:rotate(30deg); } 100% { transform:rotate(20deg); } }
@keyframes storm-moon { 0% { opacity:0; transform:scale(1); } 50% { opacity:0.3; } 100% { opacity:0.1; transform:scale(0.8); } }

.scn-hovel-mock-trial {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #0a0a0a 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a20 0%, transparent 70%);
}
.scn-hovel-mock-trial .hovel-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); border-radius:0 0 20% 20%; }
.scn-hovel-mock-trial .hovel-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1410 0%, #0a0a0a 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.6); }
.scn-hovel-mock-trial .fire-pit { position:absolute; bottom:18%; left:50%; width:40px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse, #8a4a2a 0%, #4a2a1a 80%); border-radius:50%; }
.scn-hovel-mock-trial .fire-glow { position:absolute; bottom:15%; left:50%; width:100px; height:100px; transform:translateX(-50%); background: radial-gradient(circle, #c08040 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 20px #c08040, 0 0 160px 40px rgba(192,128,64,.3); animation: hovel-fire 4s ease-in-out infinite alternate; }
.scn-hovel-mock-trial .lear-hovel { position:absolute; bottom:18%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(5deg); animation: hovel-lear 5s ease-in-out infinite; }
.scn-hovel-mock-trial .edgar-hovel { position:absolute; bottom:18%; right:30%; width:36px; height:65px; background: linear-gradient(180deg, #3a2a20 0%, #2a1e18 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform:rotate(-10deg); animation: hovel-edgar 6s ease-in-out infinite; }
.scn-hovel-mock-trial .rafters { position:absolute; top:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a1e18 0%, transparent 100%); }
.scn-hovel-mock-trial .straw { position:absolute; bottom:12%; left:10%; right:10%; height:8%; background: linear-gradient(0deg, #6a4a2a 0%, transparent 100%); border-radius:0 0 20% 20%; opacity:0.5; animation: hovel-straw 8s ease-in-out infinite; }
@keyframes hovel-fire { 0% { opacity:0.6; transform:translateX(-50%) scale(1); } 100% { opacity:1; transform:translateX(-50%) scale(1.15); } }
@keyframes hovel-lear { 0% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(3deg) translateY(-2px); } 100% { transform:rotate(6deg) translateY(0); } }
@keyframes hovel-edgar { 0% { transform:rotate(-10deg) translateY(0); } 50% { transform:rotate(-8deg) translateY(-2px); } 100% { transform:rotate(-12deg) translateY(0); } }
@keyframes hovel-straw { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-heath-hovel-woods {
  background: linear-gradient(180deg, #b8c4c8 0%, #8a9a9e 40%, #4a5a4e 100%), radial-gradient(ellipse at 30% 60%, #6a7a6e 0%, transparent 60%);
}
.scn-heath-hovel-woods .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #c8d8dc 0%, #9aacb0 100%);
  animation: hhw-sky 20s ease-in-out infinite alternate;
}
.scn-heath-hovel-woods .clouds {
  position: absolute; top: 10%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 20% 50%, rgba(180,190,195,0.4) 0%, transparent 40%),
              radial-gradient(ellipse at 70% 30%, rgba(160,170,175,0.3) 0%, transparent 30%);
  filter: blur(6px);
  animation: hhw-drift 40s linear infinite;
}
.scn-heath-hovel-woods .woods-back {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a2e 0%, #1a2a1e 100%);
  border-radius: 30% 50% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
  animation: hhw-woods 12s ease-in-out infinite;
}
.scn-heath-hovel-woods .heath {
  position: absolute; bottom: 0; left: 0; right: 0; height: 42%;
  background: linear-gradient(180deg, #5a6a4e 0%, #3a4a2e 40%, #2a3a1e 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
}
.scn-heath-hovel-woods .hovel {
  position: absolute; bottom: 30%; left: 35%; width: 130px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: hhw-house 8s ease-in-out infinite;
}
.scn-heath-hovel-woods .hovel-door {
  position: absolute; bottom: 28%; left: 35%; width: 30px; height: 50px;
  transform: translateX(50%);
  background: #2a1a1a;
  border-radius: 10% 10% 0 0;
  box-shadow: inset -4px 4px 8px rgba(0,0,0,0.6);
  animation: hhw-door 6s ease-in-out infinite;
}
.scn-heath-hovel-woods .hovel-window {
  position: absolute; bottom: 38%; left: 35%; width: 20px; height: 20px;
  transform: translateX(-80%);
  background: radial-gradient(circle, #c8a85a 0%, #8a6a3a 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(200,168,90,0.6), 0 0 32px 8px rgba(200,168,90,0.3);
  animation: hhw-glow 3s ease-in-out infinite alternate;
}
.scn-heath-hovel-woods .tree-left {
  position: absolute; bottom: 30%; left: 10%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  transform-origin: bottom center;
  animation: hhw-sway 10s ease-in-out infinite;
}
.scn-heath-hovel-woods .tree-left::before {
  content: "";
  position: absolute; top: -40px; left: -20px; width: 70px; height: 70px;
  background: radial-gradient(ellipse, #3a5a3a 0%, #1a3a1a 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-heath-hovel-woods .tree-right {
  position: absolute; bottom: 30%; right: 5%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  transform-origin: bottom center;
  animation: hhw-sway 12s ease-in-out infinite reverse;
}
.scn-heath-hovel-woods .tree-right::before {
  content: "";
  position: absolute; top: -50px; left: -25px; width: 90px; height: 90px;
  background: radial-gradient(ellipse, #4a6a4a 0%, #1a3a1a 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
}

@keyframes hhw-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes hhw-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(120vw); }
}
@keyframes hhw-woods {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes hhw-house {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes hhw-door {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes hhw-glow {
  0% { box-shadow: 0 0 12px 3px rgba(200,168,90,0.5), 0 0 24px 6px rgba(200,168,90,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 24px 8px rgba(200,168,90,0.7), 0 0 48px 16px rgba(200,168,90,0.4); opacity: 1; }
  100% { box-shadow: 0 0 16px 4px rgba(200,168,90,0.55), 0 0 32px 8px rgba(200,168,90,0.25); opacity: 0.9; }
}
@keyframes hhw-sway {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}

.scn-french-camp-british-camp {
  background: linear-gradient(180deg, #b0b8be 0%, #7a828a 40%, #3a4046 100%), radial-gradient(ellipse at 50% 100%, #5a626a 0%, transparent 60%);
}
.scn-french-camp-british-camp .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #c0c8d0 0%, #9098a0 100%);
  animation: fcbc-sky 25s ease-in-out infinite alternate;
}
.scn-french-camp-british-camp .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
}
.scn-french-camp-british-camp .hill {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: fcbc-hill 15s ease-in-out infinite;
}
.scn-french-camp-british-camp .tent-foreground-left {
  position: absolute; bottom: 25%; left: 15%; width: 60px; height: 80px;
  background: #4a4a3a;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: fcbc-tent 6s ease-in-out infinite;
}
.scn-french-camp-british-camp .tent-foreground-left::after {
  content: "";
  position: absolute; top: 20%; left: 50%; width: 4px; height: 30px;
  background: #2a2a1a;
  transform: translateX(-50%);
}
.scn-french-camp-british-camp .tent-foreground-right {
  position: absolute; bottom: 20%; right: 20%; width: 70px; height: 90px;
  background: #5a5a4a;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: fcbc-tent 6s ease-in-out infinite alternate;
}
.scn-french-camp-british-camp .tent-foreground-right::after {
  content: "";
  position: absolute; top: 20%; left: 50%; width: 5px; height: 35px;
  background: #3a3a2a;
  transform: translateX(-50%);
}
.scn-french-camp-british-camp .tent-mid {
  position: absolute; bottom: 28%; left: 40%; width: 50px; height: 65px;
  background: #4a4a3a;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: fcbc-tent 8s ease-in-out infinite 1s;
}
.scn-french-camp-british-camp .tent-back {
  position: absolute; bottom: 32%; left: 55%; width: 40px; height: 50px;
  background: #3a3a2a;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: fcbc-tent 8s ease-in-out infinite 2s;
}
.scn-french-camp-british-camp .flag {
  position: absolute; bottom: 38%; left: 33%; width: 8px; height: 50px;
  background: #2a2a1a;
  transform-origin: bottom center;
  animation: fcbc-flag 4s ease-in-out infinite;
}
.scn-french-camp-british-camp .flag::after {
  content: "";
  position: absolute; top: 0; left: 8px; width: 30px; height: 20px;
  background: #6a5a3a;
  border-radius: 0 20% 20% 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: fcbc-flag-wave 1.5s ease-in-out infinite;
}
.scn-french-camp-british-camp .campfire {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c87030 0%, #a05020 50%, #402010 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,112,48,0.6), 0 0 40px 12px rgba(200,112,48,0.3);
  animation: fcbc-fire 2s ease-in-out infinite alternate;
}
.scn-french-camp-british-camp .smoke {
  position: absolute; bottom: 35%; left: 30%; width: 30px; height: 40px;
  background: radial-gradient(ellipse, rgba(180,170,160,0.4) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(8px);
  animation: fcbc-smoke 10s ease-out infinite;
}

@keyframes fcbc-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes fcbc-hill {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes fcbc-tent {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(1deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes fcbc-flag {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes fcbc-flag-wave {
  0% { width: 30px; }
  50% { width: 35px; }
  100% { width: 30px; }
}
@keyframes fcbc-fire {
  0% { transform: scale(0.9); }
  50% { transform: scale(1.1); }
  100% { transform: scale(0.9); }
}
@keyframes fcbc-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-20px) scale(1.5); opacity: 0.3; }
  100% { transform: translateY(-40px) scale(2); opacity: 0; }
}

/* trumpet-edgar-champion - tense, overcast */
.scn-trumpet-edgar-champion {
  background:
    linear-gradient(180deg, #6b7b7b 0%, #4a5a5a 40%, #3a4a4a 100%),
    radial-gradient(ellipse at 50% 0%, #8b9b9b 0%, transparent 60%);
}
.scn-trumpet-edgar-champion .tec-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7b8b8b 0%, #4a5a5a 100%);
  animation: tec-sky 20s ease-in-out infinite alternate;
}
.scn-trumpet-edgar-champion .tec-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3d4a3d 0%, #2a352a 100%);
  border-radius: 60% 40% 0 0 / 30% 30% 0 0;
}
.scn-trumpet-edgar-champion .tec-platform {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 70%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.5);
  animation: tec-platform 15s ease-in-out infinite;
}
.scn-trumpet-edgar-champion .tec-figure {
  position: absolute; bottom: 36%; 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;
}
.scn-trumpet-edgar-champion .tec-fig-l { left: 28%; animation: tec-figure-l 4s ease-in-out infinite; }
.scn-trumpet-edgar-champion .tec-fig-c { left: 48%; width: 22px; height: 44px; animation: tec-figure-c 3.5s ease-in-out infinite; }
.scn-trumpet-edgar-champion .tec-fig-r { left: 62%; animation: tec-figure-r 4.2s ease-in-out infinite; }
.scn-trumpet-edgar-champion .tec-cloud {
  position: absolute; top: 12%;
  background: radial-gradient(ellipse, rgba(200,200,200,0.6) 0%, rgba(200,200,200,0.1) 70%);
  filter: blur(8px);
  animation: tec-cloud 40s linear infinite;
}
.scn-trumpet-edgar-champion .tec-cloud-a { left: -10%; width: 120px; height: 30px; }
.scn-trumpet-edgar-champion .tec-cloud-b { left: -30%; width: 80px; height: 20px; animation-delay: -20s; top: 22%; }

@keyframes tec-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes tec-platform { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes tec-figure-l { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(3px) rotate(2deg) } }
@keyframes tec-figure-c { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) translateY(-1px) } }
@keyframes tec-figure-r { 0%,100% { transform: translateX(0) rotate(0) } 33% { transform: translateX(4px) rotate(2deg) } 66% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes tec-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(150vw) } }

/* edgar-reveals-identity - dark, bright interior */
.scn-edgar-reveals-identity {
  background:
    linear-gradient(180deg, #2a1a12 0%, #4a2a1a 30%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 70%, #8a5a3a 0%, transparent 70%);
}
.scn-edgar-reveals-identity .eri-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  animation: eri-bg 10s ease-in-out infinite alternate;
}
.scn-edgar-reveals-identity .eri-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 70% 30% 0 0 / 40% 20% 0 0;
}
.scn-edgar-reveals-identity .eri-edgar {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eri-edgar 3s ease-in-out infinite;
}
.scn-edgar-reveals-identity .eri-edmund {
  position: absolute; bottom: 28%; right: 35%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eri-edmund 2.8s ease-in-out infinite;
}
.scn-edgar-reveals-identity .eri-glow {
  position: absolute; bottom: 45%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 40px;
  background: radial-gradient(circle, #e0a060 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  animation: eri-glow 1.5s ease-in-out infinite alternate;
}
.scn-edgar-reveals-identity .eri-sword {
  position: absolute; bottom: 40%; left: 42%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #a0a0b0 0%, #606070 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: eri-sword 0.6s ease-in-out infinite alternate;
}
.scn-edgar-reveals-identity .eri-spark {
  position: absolute; bottom: 50%; left: 46%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd060 0%, transparent 70%);
  border-radius: 50%;
  animation: eri-spark 0.3s ease-in-out infinite;
}

@keyframes eri-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes eri-edgar { 0%,100% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(6px) rotate(2deg) translateY(-2px) } }
@keyframes eri-edmund { 0%,100% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-6px) rotate(-2deg) translateY(-1px) } }
@keyframes eri-glow { 0% { box-shadow: 0 0 20px 5px #c08040, 0 0 40px 10px rgba(192,128,64,0.3); opacity: 0.8 } 50% { box-shadow: 0 0 40px 12px #e0a060, 0 0 80px 20px rgba(224,160,96,0.5); opacity: 1 } 100% { box-shadow: 0 0 25px 6px #c08040, 0 0 50px 12px rgba(192,128,64,0.35); opacity: 0.9 } }
@keyframes eri-sword { 0% { transform: rotate(-20deg) scaleX(1) } 50% { transform: rotate(10deg) scaleX(0.9) } 100% { transform: rotate(-25deg) scaleX(1.1) } }
@keyframes eri-spark { 0%,100% { transform: translate(0, 0) scale(1); opacity: 1 } 50% { transform: translate(3px, -2px) scale(1.5); opacity: 0.6 } }

/* lear-cordelia-death - dark, dim interior */
.scn-lear-cordelia-death {
  background:
    linear-gradient(180deg, #0a0a14 0%, #1a1a2e 50%, #0a0a14 100%),
    radial-gradient(ellipse at 50% 60%, #2a2a4e 0%, transparent 70%);
}
.scn-lear-cordelia-death .lcd-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  animation: lcd-wall 20s ease-in-out infinite alternate;
}
.scn-lear-cordelia-death .lcd-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #12120a 0%, #050500 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-lear-cordelia-death .lcd-lear {
  position: absolute; bottom: 30%; left: 42%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lcd-lear 5s ease-in-out infinite;
}
.scn-lear-cordelia-death .lcd-cordelia {
  position: absolute; bottom: 30%; left: 46%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 50% 50% / 40% 40% 60% 60%;
  transform-origin: 50% 30%;
  animation: lcd-cordelia 6s ease-in-out infinite;
}
.scn-lear-cordelia-death .lcd-window {
  position: absolute; top: 10%; left: 15%; width: 30px; height: 40px;
  background: linear-gradient(180deg, rgba(60,80,100,0.4) 0%, transparent 100%);
  border: 2px solid rgba(80,100,120,0.3);
  border-radius: 4px;
  box-shadow: 0 0 12px 3px rgba(60,80,100,0.2);
  animation: lcd-window 8s ease-in-out infinite alternate;
}
.scn-lear-cordelia-death .lcd-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
}

@keyframes lcd-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes lcd-lear { 0%,100% { transform: translateX(0) rotate(0deg) translateY(0) } 25% { transform: translateX(-2px) rotate(-3deg) translateY(-1px) } 50% { transform: translateX(0) rotate(2deg) translateY(0) } 75% { transform: translateX(2px) rotate(3deg) translateY(-2px) } }
@keyframes lcd-cordelia { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(8deg) translateY(3px) } }
@keyframes lcd-window { 0% { opacity: 0.3; box-shadow: 0 0 8px 2px rgba(60,80,100,0.1) } 50% { opacity: 0.6; box-shadow: 0 0 20px 6px rgba(60,80,100,0.3) } 100% { opacity: 0.4; box-shadow: 0 0 12px 4px rgba(60,80,100,0.2) } }

/* final-words-edgar - dark, dim interior */
.scn-final-words-edgar {
  background:
    linear-gradient(180deg, #0f0f1a 0%, #1a1a2a 50%, #0a0a12 100%),
    radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, transparent 70%);
}
.scn-final-words-edgar .fwe-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a0f 100%);
  animation: fwe-bg 20s ease-in-out infinite alternate;
}
.scn-final-words-edgar .fwe-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #12120e 0%, #050502 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-final-words-edgar .fwe-edgar {
  position: absolute; bottom: 30%; left: 48%; transform: translateX(-50%);
  width: 20px; height: 46px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fwe-edgar 6s ease-in-out infinite;
}
.scn-final-words-edgar .fwe-staff {
  position: absolute; bottom: 30%; left: 52%; width: 4px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: fwe-staff 7s ease-in-out infinite;
}
.scn-final-words-edgar .fwe-window {
  position: absolute; top: 15%; right: 20%; width: 25px; height: 35px;
  background: linear-gradient(180deg, rgba(70,90,110,0.3) 0%, transparent 100%);
  border: 2px solid rgba(70,90,110,0.2);
  border-radius: 3px;
  box-shadow: 0 0 10px 2px rgba(70,90,110,0.15);
  animation: fwe-window 10s ease-in-out infinite alternate;
}
.scn-final-words-edgar .fwe-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 30%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
}

@keyframes fwe-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes fwe-edgar { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(-2deg) translateY(-1px) } 50% { transform: translateX(-50%) rotate(1deg) } 75% { transform: translateX(-50%) rotate(2deg) translateY(1px) } }
@keyframes fwe-staff { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } }
@keyframes fwe-window { 0% { opacity: 0.2; box-shadow: 0 0 6px 1px rgba(70,90,110,0.1) } 50% { opacity: 0.5; box-shadow: 0 0 15px 4px rgba(70,90,110,0.25) } 100% { opacity: 0.3; box-shadow: 0 0 10px 2px rgba(70,90,110,0.15) } }

.scn-item-weed-crown { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 40%, #0e0e1a 100%), radial-gradient(ellipse at 50% 20%, rgba(200,200,220,.2) 0%, transparent 60%); }
.scn-item-weed-crown .sky    { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a4e 0%, transparent 100%); animation: wc-sky 12s ease-in-out infinite alternate; }
.scn-item-weed-crown .moon   { position:absolute; top:8%; left:60%; width:24px; height:24px; background: radial-gradient(circle, #d0c8b0 0%, #a09880 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(200,190,160,.3); animation: wc-moon 6s ease-in-out infinite alternate; }
.scn-item-weed-crown .clouds { position:absolute; top:5%; left:0; right:0; height:40%; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.05) 30%, rgba(255,255,255,.1) 50%, rgba(255,255,255,.05) 70%, transparent 100%); filter: blur(8px); animation: wc-clouds 30s linear infinite; }
.scn-item-weed-crown .lear   { position:absolute; bottom:10%; left:25%; width:60px; height:120px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wc-lear 8s ease-in-out infinite; }
.scn-item-weed-crown .crown  { position:absolute; bottom:58%; left:28%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 0%, #3a3a2a 0%, transparent 100%); border-radius: 50% 50% 0 0; transform-origin: center bottom; animation: wc-crown 4s ease-in-out infinite; }
.scn-item-weed-crown .staff  { position:absolute; bottom:10%; left:42%; width:4px; height:90px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; transform-origin: bottom center; animation: wc-staff 6s ease-in-out infinite; }
@keyframes wc-sky    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes wc-moon   { 0% { box-shadow: 0 0 20px 4px rgba(200,190,160,.2); transform: translateY(0) } 50% { box-shadow: 0 0 40px 12px rgba(200,190,160,.4); transform: translateY(-2px) scale(1.02) } 100% { box-shadow: 0 0 25px 6px rgba(200,190,160,.25); transform: translateY(0) } }
@keyframes wc-clouds { 0% { transform: translateX(0) } 50% { transform: translateX(10vw) } 100% { transform: translateX(20vw) } }
@keyframes wc-lear   { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) translateY(-2px) } 50% { transform: rotate(-1deg) translateY(0) } 75% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(0deg) } }
@keyframes wc-crown  { 0% { transform: rotate(0deg) scaleX(1) } 25% { transform: rotate(3deg) scaleX(1.05) } 50% { transform: rotate(-2deg) scaleX(0.95) } 75% { transform: rotate(2deg) scaleX(1.02) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes wc-staff  { 0% { transform: rotate(0deg) } 33% { transform: rotate(1deg) } 66% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }

.scn-item-goneril-letter-plot { background: linear-gradient(180deg, #2e2e40 0%, #1c1c30 50%, #0e0e1e 100%), radial-gradient(ellipse at 50% 100%, #1c1c30 0%, transparent 70%); }
.scn-item-goneril-letter-plot .sky      { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a4e 0%, transparent 100%); animation: gp-sky 15s ease-in-out infinite alternate; }
.scn-item-goneril-letter-plot .ground   { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: gp-ground 12s ease-in-out infinite alternate; }
.scn-item-goneril-letter-plot .tree     { position:absolute; bottom:30%; left:10%; width:12px; height:80px; background: linear-gradient(180deg, #3a3a2e 0%, #1a1a0e 100%); border-radius: 4px; transform-origin: bottom center; animation: gp-tree 7s ease-in-out infinite; }
.scn-item-goneril-letter-plot .edgar    { position:absolute; bottom:8%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #2a2a3e 0%, #0e0e1e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: gp-edgar 3s ease-in-out infinite; }
.scn-item-goneril-letter-plot .oswald   { position:absolute; bottom:8%; right:15%; width:32px; height:72px; background: linear-gradient(180deg, #2e2e3e 0%, #12121e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: gp-oswald 3.2s ease-in-out infinite reverse; }
.scn-item-goneril-letter-plot .gloucester { position:absolute; bottom:0; left:45%; width:40px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: gp-glou 10s ease-in-out infinite; }
.scn-item-goneril-letter-plot .letter   { position:absolute; bottom:45%; right:30%; width:16px; height:12px; background: #5a4a3a; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: gp-letter 8s ease-in-out infinite; }
@keyframes gp-sky    { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes gp-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes gp-tree   { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) translateX(2px) } 50% { transform: rotate(-1deg) translateX(-1px) } 75% { transform: rotate(1deg) translateX(1px) } 100% { transform: rotate(0deg) } }
@keyframes gp-edgar  { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(5deg) } 50% { transform: translateX(12px) rotate(2deg) } 75% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes gp-oswald { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-6px) rotate(-4deg) } 50% { transform: translateX(-10px) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes gp-glou   { 0% { transform: translateY(0) scale(1) } 25% { transform: translateY(-2px) scale(0.98) } 50% { transform: translateY(-4px) scale(1.01) } 75% { transform: translateY(-1px) scale(0.99) } 100% { transform: translateY(0) scale(1) } }
@keyframes gp-letter { 0% { transform: translate(0,0) rotate(0deg); opacity:.6 } 25% { transform: translate(2px,-3px) rotate(5deg); opacity:1 } 50% { transform: translate(0,0) rotate(0deg); opacity:.7 } 75% { transform: translate(-2px,-1px) rotate(-3deg); opacity:.9 } 100% { transform: translate(0,0) rotate(0deg); opacity:.6 } }

.scn-lear-french-camp-reunion { background: linear-gradient(180deg, #5e3a2a 0%, #3a2a1a 50%, #1e1410 100%), radial-gradient(ellipse at 50% 30%, #c08040 0%, transparent 50%); }
.scn-lear-french-camp-reunion .tent-wall { position:absolute; inset:0; background: linear-gradient(180deg, rgba(200,160,120,.15) 0%, rgba(100,70,40,.3) 100%); border-radius: 20% 20% 0 0; animation: lc-tent 20s ease-in-out infinite alternate; }
.scn-lear-french-camp-reunion .floor    { position:absolute; bottom:0; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2215 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.4); }
.scn-lear-french-camp-reunion .bed      { position:absolute; bottom:18%; left:25%; width:70px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: lc-bed 6s ease-in-out infinite; }
.scn-lear-french-camp-reunion .candle   { position:absolute; bottom:40%; left:60%; width:6px; height:20px; background: linear-gradient(180deg, #f0c068 0%, #b08040 100%); border-radius: 2px; box-shadow: 0 0 20px 6px #c08040, 0 0 50px 15px rgba(192,128,64,.3); animation: lc-candle 2s ease-in-out infinite alternate; }
.scn-lear-french-camp-reunion .lear     { position:absolute; bottom:20%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #2a1a1a 0%, #0e0808 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lc-lear 5s ease-in-out infinite; }
.scn-lear-french-camp-reunion .cordelia { position:absolute; bottom:20%; left:40%; width:35px; height:65px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lc-cordelia 6s ease-in-out infinite; }
.scn-lear-french-camp-reunion .glow     { position:absolute; bottom:30%; left:55%; width:60px; height:60px; background: radial-gradient(circle, rgba(240,200,100,.3) 0%, transparent 70%); filter: blur(10px); animation: lc-glow 4s ease-in-out infinite alternate; }
@keyframes lc-tent    { 0% { transform: scaleY(1); opacity:.8 } 50% { transform: scaleY(1.02); opacity:1 } 100% { transform: scaleY(0.98); opacity:.85 } }
@keyframes lc-bed     { 0% { transform: translateY(0) } 33% { transform: translateY(-1px) } 66% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes lc-candle  { 0% { box-shadow: 0 0 12px 3px #c08040, 0 0 30px 8px rgba(192,128,64,.3); transform: scaleY(0.95) } 50% { box-shadow: 0 0 30px 10px #ffd060, 0 0 60px 20px rgba(255,208,96,.4); transform: scaleY(1.05) } 100% { box-shadow: 0 0 16px 4px #c08040, 0 0 40px 12px rgba(192,128,64,.3); transform: scaleY(1) } }
@keyframes lc-lear    { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(0deg) scale(1.01) } 50% { transform: translateX(0) rotate(3deg) } 75% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes lc-cordelia { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-2px) rotate(0deg) scale(1.01) } 50% { transform: translateX(0) rotate(-3deg) } 75% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes lc-glow    { 0% { opacity:.3; transform: scale(0.9) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.4; transform: scale(1) } }

.scn-battle-british-victory { background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 50%, #050510 100%), radial-gradient(ellipse at 50% 0%, #1e1e32 0%, transparent 60%); }
.scn-battle-british-victory .sky      { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a40 0%, #121224 100%); animation: bv-sky 20s ease-in-out infinite alternate; }
.scn-battle-british-victory .ground   { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 30% 50% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-battle-british-victory .smoke-1  { position:absolute; top:10%; left:20%; width:120px; height:60px; background: radial-gradient(ellipse, rgba(200,200,220,.12) 0%, transparent 70%); filter: blur(12px); animation: bv-smoke1 40s linear infinite; }
.scn-battle-british-victory .smoke-2  { position:absolute; top:15%; right:10%; width:100px; height:50px; background: radial-gradient(ellipse, rgba(200,200,220,.1) 0%, transparent 70%); filter: blur(10px); animation: bv-smoke2 45s linear infinite reverse; }
.scn-battle-british-victory .soldier-a { position:absolute; bottom:8%; left:15%; width:28px; height:80px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: bv-soldier-a 6s ease-in-out infinite; }
.scn-battle-british-victory .soldier-b { position:absolute; bottom:8%; right:20%; width:30px; height:82px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: bv-soldier-b 5s ease-in-out infinite reverse; }
.scn-battle-british-victory .banner   { position:absolute; bottom:40%; right:25%; width:6px; height:60px; background: #2a2a3a; border-radius: 2px; transform-origin: bottom center; animation: bv-banner 4s ease-in-out infinite; }
.scn-battle-british-victory .fallen   { position:absolute; bottom:0; left:45%; width:50px; height:20px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius: 30% 30% 10% 10%; transform-origin: center bottom; animation: bv-fallen 12s ease-in-out infinite; }
@keyframes bv-sky       { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes bv-smoke1    { 0% { transform: translate(-10px, 0) scale(0.9); opacity:.3 } 25% { transform: translate(15px, -5px) scale(1.1); opacity:.5 } 50% { transform: translate(30px, -10px) scale(1.2); opacity:.4 } 75% { transform: translate(10px, -2px) scale(1.0); opacity:.6 } 100% { transform: translate(-10px, 0) scale(0.9); opacity:.3 } }
@keyframes bv-smoke2    { 0% { transform: translate(10px, 0) scale(1); opacity:.2 } 25% { transform: translate(-20px, -8px) scale(1.2); opacity:.4 } 50% { transform: translate(-40px, -15px) scale(1.3); opacity:.3 } 75% { transform: translate(-10px, -3px) scale(1.1); opacity:.5 } 100% { transform: translate(10px, 0) scale(1); opacity:.2 } }
@keyframes bv-soldier-a { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) scale(1.02) } 50% { transform: translateX(-2px) rotate(-1deg) scale(0.98) } 75% { transform: translateX(1px) rotate(1deg) scale(1.01) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bv-soldier-b { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-4px) rotate(-2deg) scale(1.03) } 50% { transform: translateX(2px) rotate(1deg) scale(0.97) } 75% { transform: translateX(-1px) rotate(-1deg) scale(1.02) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bv-banner    { 0% { transform: rotate(-3deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-5deg) } 75% { transform: rotate(1deg) } 100% { transform: rotate(-3deg) } }
@keyframes bv-fallen    { 0% { transform: translateY(0) } 25% { transform: translateY(2px) scale(0.98) } 50% { transform: translateY(0) } 75% { transform: translateY(1px) } 100% { transform: translateY(0) } }

/* king-lear-palace - calm bright interior */
.scn-king-lear-palace {
  background: linear-gradient(180deg, #f5e6c8 0%, #e8d5b0 40%, #c8b68a 100%),
              radial-gradient(ellipse at 50% 20%, #fff5e0 0%, transparent 70%);
}
.scn-king-lear-palace .bg-walls { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d5b0 0%, #d4bf9a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.1); }
.scn-king-lear-palace .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b8a07a 0%, #8a7050 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-king-lear-palace .column-left { position:absolute; left:15%; bottom:30%; width:6%; height:70%; background: linear-gradient(90deg, #d4bf9a, #c4b090, #d4bf9a); border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,0.2); animation: klp-column-sway 8s ease-in-out infinite; }
.scn-king-lear-palace .column-right{ position:absolute; right:15%; bottom:30%; width:6%; height:70%; background: linear-gradient(90deg, #d4bf9a, #c4b090, #d4bf9a); border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,0.2); animation: klp-column-sway 8s ease-in-out infinite reverse; }
.scn-king-lear-palace .throne { position:absolute; bottom:30%; left:50%; width:18%; height:40%; transform:translateX(-50%); background: linear-gradient(180deg, #b08850 0%, #7a5e30 100%); border-radius: 12% 12% 8% 8% / 30% 30% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,0.3); animation: klp-throne 6s ease-in-out infinite alternate; }
.scn-king-lear-palace .figure-lear { position:absolute; bottom:30%; left:38%; width:8%; height:35%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: klp-figure 5s ease-in-out infinite; }
.scn-king-lear-palace .figure-gloucester { position:absolute; bottom:30%; right:38%; width:8%; height:32%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: klp-figure 5s ease-in-out infinite 2.5s; }
.scn-king-lear-palace .window { position:absolute; top:8%; left:45%; width:10%; height:18%; background: radial-gradient(circle at 50% 50%, #fff9e0 0%, #e8d5b0 100%); border: 4px solid #b8a07a; border-radius: 6px; box-shadow: 0 0 30px 10px rgba(255,245,200,0.5); animation: klp-window-glow 4s ease-in-out infinite alternate; }
@keyframes klp-column-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(0.5deg); } 100% { transform: rotate(0deg); } }
@keyframes klp-throne { 0% { transform: translateX(-50%) scale(1); opacity: 0.95; } 50% { transform: translateX(-50%) scale(1.01); opacity: 1; } 100% { transform: translateX(-50%) scale(1); opacity: 0.95; } }
@keyframes klp-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.8deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes klp-window-glow { 0% { box-shadow: 0 0 20px 5px rgba(255,245,200,0.4); opacity: 0.9; } 50% { box-shadow: 0 0 40px 15px rgba(255,245,200,0.7); opacity: 1; } 100% { box-shadow: 0 0 20px 5px rgba(255,245,200,0.4); opacity: 0.9; } }

/* cordelia-refuses-love-contest - tense bright interior */
.scn-cordelia-refuses-love-contest {
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 40%, #a08060 100%),
              linear-gradient(135deg, #ffffff20 0%, transparent 50%),
              radial-gradient(ellipse at 70% 20%, #ffe8c0 0%, transparent 60%);
}
.scn-cordelia-refuses-love-contest .bg { position:absolute; inset:0 0 28% 0; background: linear-gradient(180deg, #d0b890 0%, #c0a880 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.15); }
.scn-cordelia-refuses-love-contest .chamber-floor { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #a08060 0%, #7a6040 100%); border-radius: 8% 8% 0 0 / 15% 15% 0 0; }
.scn-cordelia-refuses-love-contest .throne-gold { position:absolute; bottom:28%; left:50%; width:20%; height:45%; transform:translateX(-50%); background: linear-gradient(180deg, #c08850 0%, #906030 100%); border-radius: 15% 15% 10% 10% / 35% 35% 25% 25%; box-shadow: 0 6px 18px rgba(0,0,0,0.4), inset 0 2px 10px rgba(255,200,100,0.2); animation: crl-throne 4s ease-in-out infinite alternate; }
.scn-cordelia-refuses-love-contest .cordelia { position:absolute; bottom:28%; left:38%; width:7%; height:38%; background: linear-gradient(180deg, #7a4040 0%, #4a2020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: crl-cordelia 3s ease-in-out infinite; }
.scn-cordelia-refuses-love-contest .lear-fury { position:absolute; bottom:28%; right:36%; width:9%; height:42%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: crl-lear 1.5s ease-in-out infinite; }
.scn-cordelia-refuses-love-contest .courtier-a { position:absolute; bottom:28%; left:15%; width:6%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: crl-courtier 6s ease-in-out infinite; }
.scn-cordelia-refuses-love-contest .courtier-b { position:absolute; bottom:28%; right:15%; width:6%; height:28%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: crl-courtier 6s ease-in-out infinite 3s; }
.scn-cordelia-refuses-love-contest .window-bright { position:absolute; top:6%; left:42%; width:16%; height:22%; background: radial-gradient(circle, #ffffff 0%, #fff8e0 100%); border: 6px solid #a08060; border-radius: 4px; box-shadow: 0 0 40px 15px rgba(255,255,200,0.6); animation: crl-window 2s ease-in-out infinite alternate; }
@keyframes crl-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(0.98) rotate(-0.5deg); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes crl-cordelia { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes crl-lear { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes crl-courtier { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes crl-window { 0% { box-shadow: 0 0 30px 10px rgba(255,255,200,0.4); opacity: 0.85; } 50% { box-shadow: 0 0 60px 25px rgba(255,255,200,0.8); opacity: 1; } 100% { box-shadow: 0 0 30px 10px rgba(255,255,200,0.4); opacity: 0.85; } }

/* item-forged-letter - dim tense interior */
.scn-item-forged-letter {
  background: linear-gradient(180deg, #2a1e16 0%, #1a100a 60%, #0e0804 100%),
              radial-gradient(ellipse at 60% 40%, #4a301a 0%, transparent 70%);
}
.scn-item-forged-letter .wall-dark { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1e16 0%, #1a100a 100%); box-shadow: inset 0 0 80px rgba(0,0,0,0.6); }
.scn-item-forged-letter .desk { position:absolute; bottom:20%; left:25%; width:50%; height:18%; background: linear-gradient(180deg, #4a3020 0%, #3a2010 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5); animation: ifl-desk 10s ease-in-out infinite; }
.scn-item-forged-letter .candle { position:absolute; bottom:38%; left:48%; width:4%; height:10%; background: linear-gradient(180deg, #e0b080 0%, #c08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 8px #d09050; animation: ifl-candle 2s ease-in-out infinite alternate; }
.scn-item-forged-letter .letter { position:absolute; bottom:33%; left:45%; width:12%; height:8%; background: #d0c0a0; border: 1px solid #a08060; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: ifl-letter 3s ease-in-out infinite; }
.scn-item-forged-letter .edmund { position:absolute; bottom:20%; left:40%; width:8%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ifl-edmund 4s ease-in-out infinite; }
.scn-item-forged-letter .gloucester { position:absolute; bottom:20%; right:38%; width:9%; height:38%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ifl-gloucester 4s ease-in-out infinite 2s; }
.scn-item-forged-letter .bookshelf { position:absolute; top:10%; left:5%; width:15%; height:55%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); animation: ifl-shelf 20s linear infinite; }
.scn-item-forged-letter .shadow-layer { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, transparent 30%, rgba(0,0,0,0.6) 100%); pointer-events: none; animation: ifl-shadow 8s ease-in-out infinite alternate; }
@keyframes ifl-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes ifl-candle { 0% { box-shadow: 0 0 15px 5px #d09050; transform: scale(1); } 50% { box-shadow: 0 0 25px 12px #e0a060; transform: scale(1.02); } 100% { box-shadow: 0 0 15px 5px #d09050; transform: scale(1); } }
@keyframes ifl-letter { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(1px, -1px) rotate(2deg); } 50% { transform: translate(0, 0) rotate(0deg); } 75% { transform: translate(-1px, 1px) rotate(-2deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes ifl-edmund { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ifl-gloucester { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ifl-shelf { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes ifl-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

/* albany-palace-confrontation - tense bright interior */
.scn-albany-palace-confrontation {
  background: linear-gradient(180deg, #e8e0d0 0%, #c8b8a0 40%, #a09078 100%),
              linear-gradient(135deg, #ffffff30 0%, transparent 50%),
              radial-gradient(ellipse at 20% 30%, #f0e8d8 0%, transparent 50%);
}
.scn-albany-palace-confrontation .bg-pale { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #c8b8a0 0%, #b0a088 100%); box-shadow: inset 0 0 50px rgba(0,0,0,0.1); }
.scn-albany-palace-confrontation .floor-stone { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #a09078 0%, #7a6a58 100%); border-radius: 5% 5% 0 0 / 10% 10% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.2); }
.scn-albany-palace-confrontation .window-harsh { position:absolute; top:5%; left:20%; width:25%; height:35%; background: radial-gradient(ellipse at 50% 50%, #ffffff 0%, #e8e0d0 100%); border: 6px solid #a09078; border-radius: 4px; box-shadow: 0 0 50px 20px rgba(255,255,255,0.4); animation: apc-window 3s ease-in-out infinite alternate; }
.scn-albany-palace-confrontation .goneril { position:absolute; bottom:25%; left:35%; width:9%; height:45%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: apc-goneril 1.8s ease-in-out infinite; }
.scn-albany-palace-confrontation .oswald { position:absolute; bottom:25%; right:30%; width:7%; height:32%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: apc-oswald 0.9s ease-in-out infinite; }
.scn-albany-palace-confrontation .chair-throne { position:absolute; bottom:25%; left:55%; width:15%; height:40%; background: linear-gradient(180deg, #806850 0%, #5a3a20 100%); border-radius: 10% 10% 8% 8% / 25% 25% 15% 15%; box-shadow: 0 6px 20px rgba(0,0,0,0.3); animation: apc-chair 5s ease-in-out infinite alternate; }
.scn-albany-palace-confrontation .shadow-stripe { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(135deg, transparent 40%, rgba(0,0,0,0.08) 41%, rgba(0,0,0,0.08) 45%, transparent 46%); pointer-events: none; animation: apc-stripe 15s linear infinite; }
@keyframes apc-window { 0% { box-shadow: 0 0 30px 10px rgba(255,255,255,0.3); opacity: 0.9; } 50% { box-shadow: 0 0 60px 25px rgba(255,255,255,0.6); opacity: 1; } 100% { box-shadow: 0 0 30px 10px rgba(255,255,255,0.3); opacity: 0.9; } }
@keyframes apc-goneril { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes apc-oswald { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(0.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes apc-chair { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes apc-stripe { 0% { transform: translateX(-10%); } 50% { transform: translateX(10%); } 100% { transform: translateX(-10%); } }

.scn-gloucester-blinding {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a16 40%, #1a0e0a 100%), radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, transparent 60%);
}
.scn-gloucester-blinding .scene-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a1a16 0%, #1a0e0a 100%);
  animation: gb-bg 8s ease-in-out infinite alternate;
}
.scn-gloucester-blinding .scene-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #1a0e0a 0%, #2a1a16 100%);
}
.scn-gloucester-blinding .torch {
  position:absolute; top:10%; left:20%; width:10px; height:30px;
  background: linear-gradient(180deg, #8a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 40% 40%;
  animation: gb-torch 2s ease-in-out infinite alternate;
}
.scn-gloucester-blinding .torch-glow {
  position:absolute; top:5%; left:15%; width:20%; height:25%;
  background: radial-gradient(circle, #d08040 0%, rgba(200,100,50,0.5) 40%, transparent 70%);
  filter: blur(12px);
  animation: gb-glow 2s ease-in-out infinite alternate;
}
.scn-gloucester-blinding .figure-gloucester {
  position:absolute; bottom:30%; left:30%; width:30px; height:50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gb-kneel 6s ease-in-out infinite;
}
.scn-gloucester-blinding .figure-cornwall {
  position:absolute; bottom:30%; left:50%; width:28px; height:55px;
  background: linear-gradient(180deg, #2a1a16 0%, #1a0e0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: gb-stand 4s ease-in-out infinite alternate;
}
.scn-gloucester-blinding .figure-regan {
  position:absolute; bottom:30%; left:65%; width:25px; height:50px;
  background: linear-gradient(180deg, #2a1a16 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gb-stand 4s ease-in-out infinite alternate;
}
.scn-gloucester-blinding .chain {
  position:absolute; bottom:35%; left:30%; width:30px; height:4px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  animation: gb-chain 3s ease-in-out infinite;
}
@keyframes gb-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes gb-torch { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gb-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 gb-kneel { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes gb-stand { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gb-chain { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }

.scn-gloucester-blinding-prayer {
  background: linear-gradient(180deg, #0f0a08 0%, #1a1210 40%, #0e0a08 100%), radial-gradient(ellipse at 50% 20%, #2a1a14 0%, transparent 60%);
}
.scn-gloucester-blinding-prayer .bg-dark {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%);
}
.scn-gloucester-blinding-prayer .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #0a0604 0%, #1a1210 100%);
}
.scn-gloucester-blinding-prayer .window {
  position:absolute; top:10%; left:40%; width:20%; height:25%;
  background: radial-gradient(ellipse, #2a2a3a 0%, #0a0a1a 100%);
  border: 2px solid #1a1a2a;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  border-radius: 4px;
  animation: gbp-window 12s ease-in-out infinite alternate;
}
.scn-gloucester-blinding-prayer .light-beam {
  position:absolute; top:10%; left:40%; width:20%; height:60%;
  background: linear-gradient(180deg, rgba(200,190,180,0.15) 0%, rgba(200,190,180,0.05) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: gbp-beam 8s ease-in-out infinite alternate;
}
.scn-gloucester-blinding-prayer .figure-prayer {
  position:absolute; bottom:30%; left:45%; width:30px; height:45px;
  background: linear-gradient(180deg, #2a1a14 0%, #0a0604 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gbp-pray 5s ease-in-out infinite;
}
.scn-gloucester-blinding-prayer .crucifix {
  position:absolute; bottom:35%; left:46%; width:8px; height:20px;
  background: #3a2a1a;
  border-radius: 2px;
  transform: rotate(0);
  animation: gbp-cross 3s ease-in-out infinite alternate;
}
.scn-gloucester-blinding-prayer .shadow {
  position:absolute; bottom:30%; left:40%; width:40px; height:10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: gbp-shadow 5s ease-in-out infinite;
}
@keyframes gbp-window { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes gbp-beam { 0% { opacity:0.3; transform: skewX(2deg); } 50% { opacity:0.5; transform: skewX(-2deg); } 100% { opacity:0.4; transform: skewX(1deg); } }
@keyframes gbp-pray { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gbp-cross { 0% { transform: rotate(0); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0); } }
@keyframes gbp-shadow { 0% { transform: scale(1); opacity:0.5; } 50% { transform: scale(1.1); opacity:0.7; } 100% { transform: scale(1); opacity:0.5; } }

.scn-item-goneril-favor {
  background: linear-gradient(180deg, #4a5055 0%, #3a4045 40%, #2a3035 100%), radial-gradient(ellipse at 50% 100%, #5a6065 0%, transparent 70%);
}
.scn-item-goneril-favor .sky-overcast {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #4a5055 0%, #3a4045 100%);
  animation: gf-sky 10s ease-in-out infinite alternate;
}
.scn-item-goneril-favor .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(0deg, #2a3035 0%, #3a4045 100%);
}
.scn-item-goneril-favor .figure-goneril {
  position:absolute; bottom:40%; left:25%; width:30px; height:55px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1010 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gf-woman 4s ease-in-out infinite alternate;
}
.scn-item-goneril-favor .figure-edmund {
  position:absolute; bottom:40%; left:55%; width:32px; height:58px;
  background: linear-gradient(180deg, #1a2020 0%, #10181a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gf-man 4s ease-in-out infinite alternate;
}
.scn-item-goneril-favor .favor {
  position:absolute; bottom:55%; left:40%; width:15px; height:15px;
  background: radial-gradient(circle, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(100,70,40,0.5);
  animation: gf-favor 3s ease-in-out infinite;
}
.scn-item-goneril-favor .tree-silhouette {
  position:absolute; bottom:40%; right:10%; width:30px; height:100%;
  background: linear-gradient(180deg, transparent 0%, #1a1a1a 20%, #1a1a1a 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  clip-path: polygon(30% 0%, 70% 0%, 85% 45%, 100% 100%, 0 100%, 15% 45%);
  animation: gf-tree 15s ease-in-out infinite alternate;
}
@keyframes gf-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes gf-woman { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gf-man { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gf-favor { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(5px,-2px) scale(0.9); } 100% { transform: translate(0,0) scale(1); } }
@keyframes gf-tree { 0% { transform: scaleX(1) rotate(0); } 50% { transform: scaleX(0.95) rotate(2deg); } 100% { transform: scaleX(1) rotate(0); } }

.scn-item-goneril-letter {
  background: linear-gradient(180deg, #4a5055 0%, #3a4045 40%, #2a3035 100%), radial-gradient(ellipse at 50% 100%, #5a6065 0%, transparent 70%);
}
.scn-item-goneril-letter .sky-overcast {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #4a5055 0%, #3a4045 100%);
  animation: gl-sky 12s ease-in-out infinite alternate;
}
.scn-item-goneril-letter .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(0deg, #2a3035 0%, #3a4045 100%);
}
.scn-item-goneril-letter .figure-goneril {
  position:absolute; bottom:40%; left:30%; width:30px; height:55px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1010 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gl-woman 4s ease-in-out infinite alternate;
}
.scn-item-goneril-letter .figure-oswald {
  position:absolute; bottom:40%; left:55%; width:28px; height:52px;
  background: linear-gradient(180deg, #1a2020 0%, #10181a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: gl-man 4s ease-in-out infinite alternate;
}
.scn-item-goneril-letter .letter {
  position:absolute; bottom:50%; left:42%; width:12px; height:8px;
  background: linear-gradient(180deg, #c8b080 0%, #a08a60 100%);
  border: 1px solid #8a7050;
  border-radius: 1px;
  transform: rotate(-5deg);
  animation: gl-letter 3s ease-in-out infinite;
}
.scn-item-goneril-letter .post {
  position:absolute; bottom:40%; left:48%; width:6px; height:40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 2px;
  opacity:0.7;
  animation: gl-post 8s ease-in-out infinite alternate;
}
@keyframes gl-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes gl-woman { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gl-man { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gl-letter { 0% { transform: translate(0,0) rotate(-5deg) scale(1); } 50% { transform: translate(3px,-2px) rotate(0deg) scale(0.95); } 100% { transform: translate(0,0) rotate(-5deg) scale(1); } }
@keyframes gl-post { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
/* end per-scene blocks */
