/* style.css -- merged from per-tier scene CSS by wizard2.stages.build_deploy */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-name-inscription {
  background: 
    linear-gradient(180deg, #d4c4a8 0%, #c2b18c 30%, #a08c6e 70%),
    radial-gradient(ellipse at 50% 20%, #e8dcc8 0%, transparent 60%);
}
.scn-name-inscription .bg-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #c9b999 0%, #b8a688 40%, #9b886a 100%);
  animation: ni-wall 20s ease-in-out infinite alternate;
}
.scn-name-inscription .arch {
  position: absolute; bottom: 40%; left: 50%; width: 240px; height: 300px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, #6e5a46 0%, #4a3a2a 100%) padding-box;
  border-radius: 50% 50% 8% 8% / 60% 60% 8% 8%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
  clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%);
}
.scn-name-inscription .throne {
  position: absolute; bottom: 28%; left: 50%; width: 100px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8c735b 0%, #5c4a3a 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3), inset 0 4px 8px rgba(255,255,240,0.2);
}
.scn-name-inscription .dais {
  position: absolute; bottom: 10%; left: 50%; width: 180px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b3a08a 0%, #7a6852 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-name-inscription .inscription-l1 {
  position: absolute; bottom: 60%; left: 50%; width: 80px; height: 4px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, transparent 0%, #d4b48a 20%, #d4b48a 80%, transparent 100%);
  box-shadow: 0 0 6px rgba(212,180,138,0.5);
  animation: ni-shimmer 6s ease-in-out infinite alternate;
}
.scn-name-inscription .inscription-l2 {
  position: absolute; bottom: 55%; left: 50%; width: 100px; height: 4px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, transparent 0%, #d4b48a 15%, #d4b48a 85%, transparent 100%);
  box-shadow: 0 0 6px rgba(212,180,138,0.3);
  animation: ni-shimmer 6s ease-in-out infinite alternate 1s;
}
.scn-name-inscription .inscription-l3 {
  position: absolute; bottom: 50%; left: 50%; width: 60px; height: 4px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, transparent 0%, #d4b48a 25%, #d4b48a 75%, transparent 100%);
  box-shadow: 0 0 6px rgba(212,180,138,0.3);
  animation: ni-shimmer 6s ease-in-out infinite alternate 2s;
}
.scn-name-inscription .figure {
  position: absolute; bottom: 12%; left: 50%; width: 20px; height: 40px;
  transform: translateX(-50%) scaleX(0.6);
  transform-origin: bottom center;
  background: linear-gradient(180deg, #5c4a3a 0%, #3a2e24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ni-kneel 12s ease-in-out infinite;
}
.scn-name-inscription .light-glow {
  position: absolute; top: 0; left: 50%; width: 300px; height: 200px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #f5e6d3 0%, transparent 70%);
  opacity: 0.2;
  animation: ni-light 8s ease-in-out infinite alternate;
}

@keyframes ni-wall      { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ni-shimmer   { 0% { opacity: 0.4; transform: translateX(-50%) scaleY(1); } 50% { opacity: 0.9; transform: translateX(-50%) scaleY(1.8); } 100% { opacity: 0.5; transform: translateX(-50%) scaleY(1); } }
@keyframes ni-kneel     { 0% { transform: translateX(-50%) scaleX(0.6) translateY(0); } 30% { transform: translateX(-50%) scaleX(0.6) translateY(-2px); } 60% { transform: translateX(-50%) scaleX(0.6) translateY(0); } 100% { transform: translateX(-50%) scaleX(0.6) translateY(-1px); } }
@keyframes ni-light     { 0% { opacity: 0.15; transform: translateX(-50%) scale(0.95); } 100% { opacity: 0.3; transform: translateX(-50%) scale(1.05); } }

/* patay-prelude */
.scn-patay-prelude {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 60%, #d2b48c 100%),
              radial-gradient(ellipse at 50% 30%, #fff8dc 0%, transparent 70%);
}
.scn-patay-prelude .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 100%); animation: pp-sky 20s ease-in-out infinite alternate; }
.scn-patay-prelude .sun { position:absolute; top:5%; left:20%; width:80px; height:80px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,215,0,0.6); animation: pp-sun 8s ease-in-out infinite; }
.scn-patay-prelude .plain { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #d2b48c 0%, #8b7355 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; animation: pp-plain 15s ease-in-out infinite alternate; }
.scn-patay-prelude .road { position:absolute; bottom:20%; left:40%; width:20%; height:4px; background: #5c4033; transform: skewX(-10deg); box-shadow: 0 -2px 0 #3e2723; animation: pp-road 4s ease-in-out infinite; }
.scn-patay-prelude .army { position:absolute; bottom:22%; left:20%; width:30%; height:8px; background: repeating-linear-gradient(90deg, #4a3728 0px, #4a3728 6px, transparent 6px, transparent 8px); filter: blur(2px); animation: pp-army 5s ease-in-out infinite; }
.scn-patay-prelude .arrows { position:absolute; bottom:25%; left:25%; width:4px; height:12px; background: #c8553d; clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: pp-arrows 3s ease-in-out infinite; transform: rotate(-30deg); }
@keyframes pp-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pp-sun { 0%,100% { transform: scale(1) rotate(0deg); box-shadow: 0 0 40px 15px rgba(255,215,0,0.5) } 50% { transform: scale(1.05) rotate(10deg); box-shadow: 0 0 80px 25px rgba(255,215,0,0.8) } }
@keyframes pp-plain { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes pp-road { 0%,100% { opacity:0.7 } 50% { opacity:1 } }
@keyframes pp-army { 0% { transform: translateX(0) } 25% { transform: translateX(5px) } 50% { transform: translateX(0) } 75% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes pp-arrows { 0% { transform: translate(0,0) rotate(-30deg); opacity:1 } 50% { transform: translate(10px,-5px) rotate(-20deg); opacity:0.6 } 100% { transform: translate(0,0) rotate(-30deg); opacity:1 } }

/* patay-pursuit */
.scn-patay-pursuit {
  background: linear-gradient(180deg, #ffefd5 0%, #87ceeb 40%, #e0e0e0 100%),
              radial-gradient(ellipse at 60% 20%, #fff5ee 0%, transparent 60%);
}
.scn-patay-pursuit .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 100%); animation: pu-sky 18s ease-in-out infinite alternate; }
.scn-patay-pursuit .clouds { position:absolute; top:10%; left:0; width:200px; height:40px; background: radial-gradient(ellipse, rgba(255,255,255,0.7) 0%, transparent 70%); filter: blur(8px); animation: pu-clouds 45s linear infinite; }
.scn-patay-pursuit .plain { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #c8b28c 0%, #a0855b 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; }
.scn-patay-pursuit .maid { position:absolute; bottom:32%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #2c1e16 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pu-maid 4s ease-in-out infinite; }
.scn-patay-pursuit .horse { position:absolute; bottom:28%; left:42%; width:30px; height:20px; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius: 40% 60% 50% 50% / 50% 50% 30% 30%; animation: pu-horse 3s ease-in-out infinite alternate; }
.scn-patay-pursuit .sunrise { position:absolute; top:15%; right:15%; width:50px; height:50px; background: radial-gradient(circle, #fff5ee 0%, #ffd700 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(255,215,0,0.4); animation: pu-sunrise 6s ease-in-out infinite; }
@keyframes pu-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pu-clouds { 0% { transform: translateX(-100px) } 100% { transform: translateX(100vw) } }
@keyframes pu-maid { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(-2deg) } }
@keyframes pu-horse { 0% { transform: translateY(0) scaleX(1) } 100% { transform: translateY(-2px) scaleX(1.02) } }
@keyframes pu-sunrise { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1); box-shadow: 0 0 60px 20px rgba(255,215,0,0.6) } }

/* patay-battle */
.scn-patay-battle {
  background: linear-gradient(180deg, #8b4513 0%, #6b3a2a 30%, #3e2723 70%, #1a110a 100%),
              radial-gradient(ellipse at 50% 0%, #d2a679 0%, transparent 50%);
}
.scn-patay-battle .hills { position:absolute; bottom:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, #556b2f 0%, #2e4a1e 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; animation: ba-hills 14s ease-in-out infinite alternate; }
.scn-patay-battle .hollow { position:absolute; bottom:20%; left:30%; width:40%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f14 100%); border-radius: 40% 60% 0 0 / 30% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-patay-battle .stag { position:absolute; bottom:30%; left:35%; width:20px; height:25px; background: linear-gradient(180deg, #8b5a2b 0%, #5c3a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ba-stag 2s ease-in-out infinite; }
.scn-patay-battle .soldiers { position:absolute; bottom:22%; left:20%; width:50px; height:30px; background: linear-gradient(180deg, #3e2723 0%, #1a0f0a 100%); clip-path: polygon(0% 100%, 20% 0%, 40% 100%, 60% 0%, 80% 100%, 100% 20%, 100% 100%); animation: ba-soldiers 3s ease-in-out infinite; }
.scn-patay-battle .weapons { position:absolute; bottom:28%; left:15%; width:3px; height:20px; background: #a0522d; box-shadow: 10px 0 0 #a0522d, 20px 0 0 #a0522d; animation: ba-weapons 1.5s ease-in-out infinite; }
@keyframes ba-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ba-stag { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(5deg) } }
@keyframes ba-soldiers { 0% { transform: translateX(0) } 25% { transform: translateX(3px) } 50% { transform: translateX(0) } 75% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes ba-weapons { 0% { transform: rotate(0deg) translateY(0) } 33% { transform: rotate(10deg) translateY(-2px) } 66% { transform: rotate(-10deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }

/* patay-rout */
.scn-patay-rout {
  background: linear-gradient(180deg, #5c4033 0%, #3e2723 40%, #1a0f0a 80%, #0d0805 100%),
              radial-gradient(ellipse at 30% 50%, #795548 0%, transparent 70%);
}
.scn-patay-rout .forest { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #2e4a1e 0%, #1a2e0f 100%); border-radius: 70% 30% 0 0 / 80% 40% 0 0; }
.scn-patay-rout .road { position:absolute; bottom:18%; left:40%; width:20%; height:4px; background: #5c4033; transform: skewX(-15deg); box-shadow: 0 -2px 0 #3e2723; animation: rt-road 4s ease-in-out infinite; }
.scn-patay-rout .rout { position:absolute; bottom:20%; left:10%; width:60%; height:10px; background: repeating-linear-gradient(90deg, #3e2723 0px, #3e2723 4px, transparent 4px, transparent 6px); filter: blur(1px); animation: rt-rout 3s ease-in-out infinite; }
.scn-patay-rout .standard { position:absolute; bottom:25%; left:15%; width:3px; height:25px; background: #5c4033; animation: rt-standard 2s ease-in-out infinite; }
.scn-patay-rout .standard::after { content:''; position:absolute; top:0; left:-5px; width:20px; height:12px; background: #c8553d; border-radius:0 20% 0 0; animation: rt-flag 1s ease-in-out infinite alternate; }
.scn-patay-rout .dust { position:absolute; bottom:17%; left:30%; width:40px; height:15px; background: rgba(188,143,143,0.4); filter: blur(4px); border-radius:50%; animation: rt-dust 5s ease-in-out infinite; }
.scn-patay-rout .spears { position:absolute; bottom:20%; left:50%; width:2px; height:20px; background: #8b7355; box-shadow: -8px 0 0 #8b7355, 8px 0 0 #8b7355; animation: rt-spears 2s ease-in-out infinite; }
@keyframes rt-road { 0%,100% { opacity:0.7 } 50% { opacity:1 } }
@keyframes rt-rout { 0% { transform: translateX(0) scaleX(1) } 25% { transform: translateX(5px) scaleX(1.1) } 50% { transform: translateX(0) scaleX(1) } 75% { transform: translateX(-5px) scaleX(0.9) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes rt-standard { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } }
@keyframes rt-flag { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.3) } }
@keyframes rt-dust { 0% { transform: translate(0,0) scale(1); opacity:0.6 } 50% { transform: translate(10px,-3px) scale(1.3); opacity:0.3 } 100% { transform: translate(0,0) scale(1); opacity:0.6 } }
@keyframes rt-spears { 0%,100% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } }

.scn-louis-xiv-audience { background: linear-gradient(180deg, #d4c4a8 0%, #b8a088 40%, #7a5a4a 100%), radial-gradient(ellipse at 50% 30%, #e8d8c0 0%, transparent 60%); }
.scn-louis-xiv-audience .bg-deep { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); }
.scn-louis-xiv-audience .throne { position:absolute; bottom:32%; left:50%; width:80px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #704020 0%, #50301a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: lxa-throne 6s ease-in-out infinite; }
.scn-louis-xiv-audience .king { position:absolute; bottom:38%; left:50%; width:20px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: lxa-king 4s ease-in-out infinite; }
.scn-louis-xiv-audience .courtier-a { position:absolute; bottom:26%; left:30%; width:16px; height:40px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: lxa-bow 5s ease-in-out infinite; }
.scn-louis-xiv-audience .courtier-b { position:absolute; bottom:26%; left:62%; width:16px; height:40px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: lxa-bow 5s ease-in-out infinite 2s; }
.scn-louis-xiv-audience .window-light { position:absolute; top:8%; left:20%; width:40px; height:60px; background: radial-gradient(ellipse at center, #fff4e0 0%, #d0b888 60%, transparent 100%); border-radius:10%; box-shadow: 0 0 30px 10px rgba(255,244,224,.3); animation: lxa-light 8s ease-in-out infinite alternate; }
.scn-louis-xiv-audience .pillar { position:absolute; top:10%; right:25%; width:12px; height:80%; background: linear-gradient(90deg, #8a7048 0%, #c0a878 20%, #8a7048 40%, #5a4030 100%); border-radius:4px; box-shadow: inset -2px 0 4px rgba(0,0,0,.3); }
@keyframes lxa-throne { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes lxa-king { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(2deg); } 75% { transform: translateX(-50%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes lxa-bow { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.85) translateY(4px); } }
@keyframes lxa-light { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }

.scn-king-replies { background: linear-gradient(180deg, #c8b898 0%, #a0886a 50%, #6a5040 100%), radial-gradient(ellipse at 40% 40%, #e0c8a8 0%, transparent 70%); }
.scn-king-replies .bg-chamber { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%); }
.scn-king-replies .king-silhouette { position:absolute; bottom:30%; left:35%; width:22px; height:60px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: krp-stand 3s ease-in-out infinite; }
.scn-king-replies .king-cape { position:absolute; bottom:30%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #5e1a1d 0%, #3a1012 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; transform: translateX(-8px); opacity:0.9; animation: krp-cape 4s ease-in-out infinite; }
.scn-king-replies .king-hand { position:absolute; bottom:48%; left:38%; width:8px; height:12px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius:40% 40% 20% 20%; transform-origin: bottom; animation: krp-hand 5s ease-in-out infinite; }
.scn-king-replies .marshal { position:absolute; bottom:28%; right:20%; width:18px; height:44px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: krp-bow 6s ease-in-out infinite 1s; }
.scn-king-replies .shadow-floor { position:absolute; bottom:22%; left:20%; right:20%; height:8px; background: linear-gradient(90deg, transparent, rgba(0,0,0,.4) 30%, rgba(0,0,0,.6) 50%, rgba(0,0,0,.4) 70%, transparent); border-radius:50%; filter:blur(3px); }
@keyframes krp-stand { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes krp-cape { 0%,100% { transform: translateX(-8px) scaleX(1); } 50% { transform: translateX(-10px) scaleX(1.05); } }
@keyframes krp-hand { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(15deg); } 70% { transform: rotate(-5deg); } }
@keyframes krp-bow { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.8) translateY(6px); } }

.scn-sign-given { background: linear-gradient(180deg, #1a1210 0%, #2a1a10 40%, #1a0e08 100%), radial-gradient(ellipse at 70% 50%, #4a2a1a 0%, transparent 80%); }
.scn-sign-given .bg-dark { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0604 0%, #1a0e08 100%); }
.scn-sign-given .candle { position:absolute; bottom:22%; left:52%; width:6px; height:20px; background: linear-gradient(180deg, #e8d0a0 0%, #a07040 100%); border-radius:30% 30% 10% 10%; animation: sgn-flame 2s ease-in-out infinite; }
.scn-sign-given .candle-glow { position:absolute; bottom:18%; left:48%; width:40px; height:40px; background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 80%); border-radius:50%; filter:blur(6px); animation: sgn-glow 3s ease-in-out infinite alternate; }
.scn-sign-given .figure-king { position:absolute; bottom:28%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sgn-turn 6s ease-in-out infinite; }
.scn-sign-given .figure-farrier { position:absolute; bottom:28%; right:35%; width:18px; height:48px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sgn-turn 6s ease-in-out infinite 3s; }
.scn-sign-given .sign-hand { position:absolute; bottom:38%; left:50%; width:10px; height:10px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius:50%; transform: translateX(-50%); animation: sgn-hand 4s ease-in-out infinite; box-shadow: 0 0 8px 2px rgba(255,208,128,.3); }
@keyframes sgn-flame { 0%,100% { transform: scaleY(1) rotate(0deg); } 25% { transform: scaleY(1.2) rotate(2deg); } 75% { transform: scaleY(0.9) rotate(-2deg); } }
@keyframes sgn-glow { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes sgn-turn { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(3deg); } 70% { transform: translateX(-4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sgn-hand { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-4px) rotate(10deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-5deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(5deg); } }

.scn-third-interview { background: linear-gradient(180deg, #9a9a8a 0%, #7a7a6a 40%, #5a5a4a 100%), radial-gradient(ellipse at 50% 20%, #b0b0a0 0%, transparent 60%); }
.scn-third-interview .sky-overcast { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8a8a7a 0%, #6a6a5a 100%); animation: thi-clouds 30s linear infinite alternate; }
.scn-third-interview .monastery-wall { position:absolute; bottom:30%; left:10%; right:20%; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-third-interview .door { position:absolute; bottom:30%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:10%; box-shadow: inset 0 2px 4px rgba(0,0,0,.5); }
.scn-third-interview .princess { position:absolute; bottom:20%; left:40%; width:18px; height:40px; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: thi-walk 8s ease-in-out infinite; }
.scn-third-interview .visionary { position:absolute; bottom:22%; left:55%; width:20px; height:42px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: thi-walk 8s ease-in-out infinite 4s; }
.scn-third-interview .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%); border-radius:20% 20% 0 0; }
@keyframes thi-clouds { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes thi-walk { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(4px) translateY(-2px) rotate(1deg); } }

/* maid-prevails */
.scn-maid-prevails {
  background: 
    linear-gradient(180deg, #2c1e3a 0%, #4a2e4a 30%, #7a4a3a 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 40% 80%, #5a3a2a 0%, transparent 60%);
}
.scn-maid-prevails .sky {
  position:absolute; inset:0 0 60% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4e 50%, #4a3a5a 100%);
  animation: mp-sky 12s ease-in-out infinite alternate;
}
.scn-maid-prevails .landscape {
  position:absolute; bottom:30%; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a1a 100%);
  border-radius: 30% 70% 0 0 / 40% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.8);
  animation: mp-land 18s ease-in-out infinite alternate;
}
.scn-maid-prevails .maid {
  position:absolute; bottom:30%; left:35%; width:30px; height:60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mp-maid 4s ease-in-out infinite;
}
.scn-maid-prevails .banner {
  position:absolute; bottom:45%; left:42%; width:20px; height:40px;
  background: linear-gradient(180deg, #7a4a3a 0%, #5a2a1a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 50%, 100% 100%, 0 100%);
  animation: mp-banner 6s ease-in-out infinite alternate;
}
.scn-maid-prevails .trumpet {
  position:absolute; bottom:40%; left:32%; width:8px; height:30px;
  background: linear-gradient(90deg, #8a6a4a 0%, #6a4a2a 50%, #8a6a4a 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(-15deg);
  animation: mp-trumpet 3s ease-in-out infinite;
}
.scn-maid-prevails .dust {
  position:absolute; bottom:30%; left:20%; right:20%; height:5px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,150,.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: mp-dust 8s ease-in-out infinite;
}
@keyframes mp-sky {
  0% { opacity:.7; transform: translateY(0); }
  50% { opacity:1; transform: translateY(-2px); }
  100% { opacity:.8; transform: translateY(0); }
}
@keyframes mp-land {
  0% { transform: translateY(0); }
  50% { transform: translateY(4px); }
  100% { transform: translateY(0); }
}
@keyframes mp-maid {
  0%,100% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(0) translateY(2px) rotate(0); }
  75% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); }
}
@keyframes mp-banner {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(5px) scaleX(1.1); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes mp-trumpet {
  0%,100% { transform: rotate(-15deg) scaleX(1); }
  50% { transform: rotate(-10deg) scaleX(1.05); }
}
@keyframes mp-dust {
  0% { opacity:0; transform: translateY(0); }
  50% { opacity:.5; transform: translateY(-5px); }
  100% { opacity:0; transform: translateY(0); }
}

/* d'aulon-standard */
.scn-d'aulon-standard {
  background: 
    linear-gradient(180deg, #2a1e3a 0%, #4a2e4a 30%, #3a1e1a 70%, #1a0e0a 100%),
    radial-gradient(ellipse at 30% 70%, #5a3a2a 0%, transparent 60%);
}
.scn-d'aulon-standard .sky-ds {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #3a2a4a 70%, #5a3a3a 100%);
  animation: ds-sky 15s ease-in-out infinite alternate;
}
.scn-d'aulon-standard .ground-ds {
  position:absolute; bottom:30%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a1a 100%);
  border-radius: 20% 80% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.7);
  animation: ds-ground 20s ease-in-out infinite alternate;
}
.scn-d'aulon-standard .d-aulon {
  position:absolute; bottom:30%; left:45%; width:28px; height:55px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ds-figure 4s ease-in-out infinite;
}
.scn-d'aulon-standard .standard {
  position:absolute; bottom:45%; left:55%; width:18px; height:50px;
  background: linear-gradient(0deg, #5a3a2a 0%, #8a6a4a 50%, #5a3a2a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 50%, 100% 100%, 0 100%);
  animation: ds-standard 6s ease-in-out infinite alternate;
}
.scn-d'aulon-standard .wind {
  position:absolute; bottom:50%; left:0; right:0; height:10px;
  background: linear-gradient(90deg, transparent 0%, rgba(200,180,160,.2) 50%, transparent 100%);
  filter: blur(3px);
  animation: ds-wind 8s linear infinite;
}
.scn-d'aulon-standard .torn-banner {
  position:absolute; bottom:42%; left:58%; width:12px; height:30px;
  background: linear-gradient(180deg, #7a4a3a 0%, #5a2a1a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 30%, 100% 60%, 70% 80%, 100% 100%, 0 100%);
  animation: ds-torn 3s ease-in-out infinite alternate;
}
@keyframes ds-sky {
  0% { opacity:.8; transform: translateY(0); }
  50% { opacity:1; transform: translateY(-3px); }
  100% { opacity:.9; transform: translateY(0); }
}
@keyframes ds-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(5px); }
  100% { transform: translateY(0); }
}
@keyframes ds-figure {
  0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(0) translateY(2px) rotate(0); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
}
@keyframes ds-standard {
  0% { transform: translateX(0) rotate(-5deg); }
  50% { transform: translateX(6px) rotate(5deg); }
  100% { transform: translateX(0) rotate(-5deg); }
}
@keyframes ds-wind {
  0% { transform: translateX(-100%); opacity:0; }
  50% { opacity:.6; }
  100% { transform: translateX(100%); opacity:0; }
}
@keyframes ds-torn {
  0% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(1.1) scaleY(0.9); }
  100% { transform: scaleX(1) scaleY(1); }
}

/* standard-signal */
.scn-standard-signal {
  background: 
    linear-gradient(180deg, #2e1e3a 0%, #4a2e4a 30%, #5a3a2a 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 90%, #3a2a1a 0%, transparent 70%);
}
.scn-standard-signal .sky-ss {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #3a2a4a 50%, #4a3a3a 100%);
  animation: ss-sky 12s ease-in-out infinite alternate;
}
.scn-standard-signal .wall {
  position:absolute; bottom:20%; left:20%; right:20%; height:60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.8);
  animation: ss-wall 10s ease-in-out infinite alternate;
}
.scn-standard-signal .ladder {
  position:absolute; bottom:20%; left:50%; width:6px; height:60%;
  background: linear-gradient(0deg, #5a3a2a 0%, #3a2a1a 100%);
  transform: translateX(-50%) rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: ss-ladder 6s ease-in-out infinite;
}
.scn-standard-signal .men-at-arms {
  position:absolute; bottom:30%; left:30%; width:20px; height:40px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ss-men 4s ease-in-out infinite;
}
.scn-standard-signal .standard-ss {
  position:absolute; bottom:50%; left:55%; width:16px; height:45px;
  background: linear-gradient(180deg, #7a4a3a 0%, #5a2a1a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 50%, 100% 100%, 0 100%);
  animation: ss-standard 7s ease-in-out infinite alternate;
}
.scn-standard-signal .smoke {
  position:absolute; bottom:35%; left:40%; width:30px; height:30px;
  background: radial-gradient(circle, rgba(150,130,110,.3) 0%, transparent 70%);
  filter: blur(5px);
  animation: ss-smoke 5s ease-in-out infinite;
}
@keyframes ss-sky {
  0% { opacity:.7; }
  50% { opacity:.9; }
  100% { opacity:.7; }
}
@keyframes ss-wall {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(0); }
}
@keyframes ss-ladder {
  0%,100% { transform: translateX(-50%) rotate(-5deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(-3deg) translateY(-3px); }
}
@keyframes ss-men {
  0%,100% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(0) translateY(2px) rotate(0); }
  75% { transform: translateX(-4px) translateY(-1px) rotate(-1deg); }
}
@keyframes ss-standard {
  0% { transform: rotate(-5deg) scaleX(1); }
  50% { transform: rotate(5deg) scaleX(1.1); }
  100% { transform: rotate(-5deg) scaleX(1); }
}
@keyframes ss-smoke {
  0% { opacity:0; transform: translateY(0) scale(.8); }
  50% { opacity:.6; transform: translateY(-8px) scale(1.2); }
  100% { opacity:0; transform: translateY(0) scale(.8); }
}

/* glasdale-drowns */
.scn-glasdale-drowns {
  background: 
    linear-gradient(180deg, #1e1e3a 0%, #3a2e4a 40%, #2a1a2a 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 60%);
}
.scn-glasdale-drowns .sky-gd {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4e 50%, #3a3a5a 100%);
  animation: gd-sky 15s ease-in-out infinite alternate;
}
.scn-glasdale-drowns .water {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #1a3a3a 0%, #0a1a2a 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  box-shadow: inset 0 10px 20px rgba(0,20,30,.8);
  animation: gd-water 10s ease-in-out infinite alternate;
}
.scn-glasdale-drowns .maid-gd {
  position:absolute; bottom:40%; left:50%; width:30px; height:60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: gd-maid 4s ease-in-out infinite;
}
.scn-glasdale-drowns .reflection {
  position:absolute; bottom:30%; left:50%; width:30px; height:60px;
  background: linear-gradient(0deg, rgba(40,40,60,.5) 0%, transparent 100%);
  transform: translateX(-50%) scaleY(-.6) translateY(20px);
  opacity:.4;
  animation: gd-reflect 4s ease-in-out infinite;
}
.scn-glasdale-drowns .ripple {
  position:absolute; bottom:45%; left:40%; right:40%; height:4px;
  background: radial-gradient(ellipse at 50% 50%, rgba(100,140,160,.4) 0%, transparent 70%);
  filter: blur(2px);
  animation: gd-ripple 3s ease-in-out infinite;
}
.scn-glasdale-drowns .soldier-body {
  position:absolute; bottom:25%; left:30%; width:22px; height:20px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 40% 30%;
  transform: rotate(45deg);
  animation: gd-body 5s ease-in-out infinite;
}
@keyframes gd-sky {
  0% { opacity:.6; }
  50% { opacity:.9; }
  100% { opacity:.6; }
}
@keyframes gd-water {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(0); }
}
@keyframes gd-maid {
  0%,100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(2px) rotate(0); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); }
}
@keyframes gd-reflect {
  0%,100% { opacity:.3; transform: translateX(-50%) scaleY(-.6) translateY(20px); }
  50% { opacity:.6; transform: translateX(-50%) scaleY(-.5) translateY(25px); }
}
@keyframes gd-ripple {
  0% { transform: scaleX(1); opacity:.3; }
  50% { transform: scaleX(2); opacity:.6; }
  100% { transform: scaleX(1); opacity:.3; }
}
@keyframes gd-body {
  0% { transform: rotate(45deg) translateX(0); }
  50% { transform: rotate(45deg) translateX(5px); }
  100% { transform: rotate(45deg) translateX(0); }
}

.scn-zeal-for-rehabilitation {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 60%, #0f0a05 100%), radial-gradient(ellipse at 60% 80%, #6a4a2a 0%, transparent 70%);
}
.scn-zeal-for-rehabilitation .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a4a3a 0%, #2a2018 100%); }
.scn-zeal-for-rehabilitation .floor { position:absolute; inset:60% 0 0 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); }
.scn-zeal-for-rehabilitation .desk { position:absolute; bottom:32%; left:25%; right:25%; height:6%; background: linear-gradient(180deg, #4a3525 0%, #2a1a10 100%); border-radius:4px; box-shadow: 0 -2px 8px rgba(0,0,0,.5); }
.scn-zeal-for-rehabilitation .paper { position:absolute; bottom:38%; left:38%; width:12%; height:8%; background: linear-gradient(135deg, #c8b08a 0%, #a08860 100%); transform: rotate(-5deg); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: zfr-paper 6s ease-in-out infinite; }
.scn-zeal-for-rehabilitation .lamp { position:absolute; bottom:40%; left:45%; width:6%; height:12%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius:4px 4px 0 0; }
.scn-zeal-for-rehabilitation .lamp::before { content:''; position:absolute; top:-10px; left:50%; transform:translateX(-50%); width:14px; height:14px; background: radial-gradient(circle, #ffcc80 0%, #b08040 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,204,128,.6), 0 0 60px 20px rgba(255,204,128,.3); animation: zfr-glow 3s ease-in-out infinite alternate; }
.scn-zeal-for-rehabilitation .figure-accuser { position:absolute; bottom:22%; left:30%; width:12%; height:30%; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: zfr-figure1 4s ease-in-out infinite; }
.scn-zeal-for-rehabilitation .figure-defender { position:absolute; bottom:20%; right:30%; width:10%; height:28%; background: linear-gradient(180deg, #2a2018 0%, #0f0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: zfr-figure2 5s ease-in-out infinite; }
.scn-zeal-for-rehabilitation .shadow-beam { position:absolute; bottom:40%; left:20%; width:2%; height:50%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.4) 50%, rgba(0,0,0,.7) 100%); transform: skewX(-10deg); animation: zfr-shadow 8s ease-in-out infinite alternate; }
@keyframes zfr-paper { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes zfr-glow { 0% { opacity:.8; box-shadow: 0 0 20px 5px rgba(255,204,128,.4), 0 0 40px 10px rgba(255,204,128,.2); } 100% { opacity:1; box-shadow: 0 0 40px 15px rgba(255,204,128,.7), 0 0 80px 25px rgba(255,204,128,.4); } }
@keyframes zfr-figure1 { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } }
@keyframes zfr-figure2 { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes zfr-shadow { 0% { opacity:.3; } 100% { opacity:.7; } }

.scn-legal-artificers {
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 60%, #08080f 100%), radial-gradient(ellipse at 70% 80%, #2a2a4a 0%, transparent 70%);
}
.scn-legal-artificers .wall-panel { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-legal-artificers .table { position:absolute; bottom:25%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #3a3025 0%, #1a1410 100%); border-radius:6px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-legal-artificers .book { position:absolute; bottom:32%; left:35%; width:8%; height:10%; background: linear-gradient(135deg, #5a4030 0%, #3a2515 100%); transform: rotate(8deg); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: la-book 7s ease-in-out infinite; }
.scn-legal-artificers .candle { position:absolute; bottom:38%; left:55%; width:4%; height:14%; background: linear-gradient(180deg, #6a5040 0%, #3a2818 100%); border-radius:4px; }
.scn-legal-artificers .candle::before { content:''; position:absolute; top:-12px; left:50%; transform:translateX(-50%); width:8px; height:12px; background: radial-gradient(circle, #ffdd88 0%, #b08040 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,221,136,.5), 0 0 60px 20px rgba(255,221,136,.25); animation: la-flame 2s ease-in-out infinite alternate; }
.scn-legal-artificers .figure-priest { position:absolute; bottom:18%; left:20%; width:14%; height:35%; background: linear-gradient(180deg, #1a1414 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: la-priest 4s ease-in-out infinite; }
.scn-legal-artificers .figure-clerk { position:absolute; bottom:16%; right:20%; width:12%; height:32%; background: linear-gradient(180deg, #1a1414 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: la-clerk 5s ease-in-out infinite; }
.scn-legal-artificers .gavel { position:absolute; bottom:30%; left:70%; width:6%; height:4%; background: linear-gradient(90deg, #5a4020 0%, #3a2510 100%); border-radius:2px; transform: rotate(-15deg); animation: la-gavel 3s ease-in-out infinite alternate; }
.scn-legal-artificers .chain { position:absolute; bottom:45%; left:10%; width:2%; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:2px; box-shadow: 0 0 4px rgba(0,0,0,.5); animation: la-chain 10s ease-in-out infinite; }
@keyframes la-book { 0%,100% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } }
@keyframes la-flame { 0% { transform: translateX(-4px) scaleY(1); } 100% { transform: translateX(4px) scaleY(1.2); } }
@keyframes la-priest { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } }
@keyframes la-clerk { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes la-gavel { 0% { transform: rotate(-15deg) translateY(0); } 100% { transform: rotate(-10deg) translateY(-2px); } }
@keyframes la-chain { 0%,100% { transform: translateY(0); } 50% { transform: translateY(4px); } }

.scn-monks-weep {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1e 60%, #06060f 100%), radial-gradient(ellipse at 50% 70%, #2a2a4a 0%, transparent 80%);
}
.scn-monks-weep .chapel-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-monks-weep .altar { position:absolute; bottom:25%; left:35%; right:35%; height:10%; background: linear-gradient(180deg, #3a3025 0%, #1a1410 100%); border-radius:8px; }
.scn-monks-weep .candle-left { position:absolute; bottom:38%; left:30%; width:4%; height:16%; background: linear-gradient(180deg, #6a5040 0%, #3a2818 100%); border-radius:4px; animation: mw-candle-left 3s ease-in-out infinite alternate; }
.scn-monks-weep .candle-right { position:absolute; bottom:38%; right:30%; width:4%; height:16%; background: linear-gradient(180deg, #6a5040 0%, #3a2818 100%); border-radius:4px; animation: mw-candle-right 3.5s ease-in-out infinite alternate; }
.scn-monks-weep .candle-left::before, .scn-monks-weep .candle-right::before { content:''; position:absolute; top:-12px; left:50%; transform:translateX(-50%); width:8px; height:10px; background: radial-gradient(circle, #ffdd88 0%, #b08040 70%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(255,221,136,.4), 0 0 40px 16px rgba(255,221,136,.2); }
.scn-monks-weep .cross { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:3%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:2px; box-shadow: 0 0 8px rgba(0,0,0,.6); animation: mw-cross 12s ease-in-out infinite; }
.scn-monks-weep .monk-1 { position:absolute; bottom:18%; left:20%; width:12%; height:32%; background: linear-gradient(180deg, #1a1414 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mw-monk1 4s ease-in-out infinite; }
.scn-monks-weep .monk-2 { position:absolute; bottom:16%; right:20%; width:12%; height:32%; background: linear-gradient(180deg, #1a1414 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mw-monk2 5s ease-in-out infinite; }
.scn-monks-weep .tear { position:absolute; bottom:22%; left:30%; width:2%; height:4%; background: radial-gradient(circle, #5a8aaa 0%, #2a5a7a 100%); border-radius:50%; animation: mw-tear 2s ease-in-out infinite; }
@keyframes mw-candle-left { 0% { transform: translateY(0); } 100% { transform: translateY(-2px); } }
@keyframes mw-candle-right { 0% { transform: translateY(0); } 100% { transform: translateY(-3px); } }
@keyframes mw-cross { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes mw-monk1 { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } }
@keyframes mw-monk2 { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-1deg); } }
@keyframes mw-tear { 0%,100% { transform: translateY(0) opacity(.6); } 50% { transform: translateY(10px) opacity(.2); } }

.scn-scholastic-proving {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b89a 50%, #a89878 100%), radial-gradient(ellipse at 70% 20%, #f0e8d8 0%, transparent 60%);
}
.scn-scholastic-proving .window { position:absolute; left:5%; top:5%; width:35%; height:50%; background: linear-gradient(180deg, #b0d8f0 0%, #d0e8f8 100%); border: 6px solid #8a7050; border-radius:8px; }
.scn-scholastic-proving .sunbeam { position:absolute; left:15%; top:10%; width:3%; height:80%; background: linear-gradient(180deg, rgba(255,255,220,0.6) 0%, rgba(255,255,220,0) 100%); transform: skewX(-15deg); animation: sp-beam 10s ease-in-out infinite alternate; }
.scn-scholastic-proving .bookshelf { position:absolute; right:5%; bottom:20%; width:20%; height:60%; background: linear-gradient(180deg, #6a5040 0%, #3a2515 100%); border-radius:4px; box-shadow: 0 -4px 12px rgba(0,0,0,.3); }
.scn-scholastic-proving .lectern { position:absolute; bottom:15%; left:30%; width:20%; height:15%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 -2px 8px rgba(0,0,0,.4); }
.scn-scholastic-proving .book-open { position:absolute; bottom:22%; left:32%; width:16%; height:10%; background: linear-gradient(135deg, #d8c8a8 0%, #b8a888 100%); transform: rotate(2deg); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: sp-book 8s ease-in-out infinite; }
.scn-scholastic-proving .scholar { position:absolute; bottom:12%; left:10%; width:14%; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sp-scholar 6s ease-in-out infinite; }
.scn-scholastic-proving .quill { position:absolute; bottom:28%; left:28%; width:2%; height:10%; background: linear-gradient(180deg, #b8a888 0%, #8a7050 100%); transform: rotate(-20deg); animation: sp-quill 4s ease-in-out infinite alternate; }
@keyframes sp-beam { 0% { opacity:.3; transform: skewX(-15deg) translateX(0); } 100% { opacity:.7; transform: skewX(-20deg) translateX(10px); } }
@keyframes sp-book { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } }
@keyframes sp-scholar { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } }
@keyframes sp-quill { 0% { transform: rotate(-20deg) translateY(0); } 100% { transform: rotate(-15deg) translateY(-3px); } }

.scn-attack-tourelles-preparation { background: linear-gradient(180deg, #2e2a5a 0%, #4a426a 30%, #7a6a5a 70%, #b08a6a 100%), radial-gradient(ellipse at 50% 0%, #e0a060 0%, transparent 60%); }
.scn-attack-tourelles-preparation .dawn-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a4a7a 0%, #c8a060 100%); animation: atp-sky 8s ease-in-out infinite alternate; }
.scn-attack-tourelles-preparation .tent { position:absolute; bottom:30%; left:15%; width:100px; height:60px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.5); transform: perspective(200px) rotateX(10deg); animation: atp-tent 12s ease-in-out infinite; }
.scn-attack-tourelles-preparation .tent-flag { position:absolute; bottom:48%; left:38%; width:8px; height:20px; background: #8a6a4a; border-radius: 2px; transform-origin: bottom center; animation: atp-flag 3s ease-in-out infinite alternate; }
.scn-attack-tourelles-preparation .weapon-rack { position:absolute; bottom:25%; left:45%; width:60px; height:30px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: atp-rack 5s ease-in-out infinite; }
.scn-attack-tourelles-preparation .figure-arm { position:absolute; bottom:22%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: atp-arm 4s ease-in-out infinite; }
.scn-attack-tourelles-preparation .lantern { position:absolute; bottom:32%; left:60%; width:8px; height:8px; background: radial-gradient(circle, #e0a040 0%, #c08030 60%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(224, 160, 64, 0.6); animation: atp-lantern 3s ease-in-out infinite alternate; }
.scn-attack-tourelles-preparation .sun-edge { position:absolute; top:10%; left:50%; width:40px; height:40px; background: radial-gradient(circle, #f0c060 0%, transparent 70%); border-radius: 50%; transform: translateX(-50%); animation: atp-sun 14s ease-in-out infinite; }
@keyframes atp-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes atp-tent { 0%,100% { transform: translateY(0) perspective(200px) rotateX(10deg) } 50% { transform: translateY(-3px) perspective(200px) rotateX(12deg) } }
@keyframes atp-flag { 0% { transform: rotate(-5deg) } 100% { transform: rotate(8deg) } }
@keyframes atp-rack { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) scale(1.02) } }
@keyframes atp-arm { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(1deg) } 50% { transform: translateX(16px) rotate(-1deg) } 75% { transform: translateX(24px) rotate(2deg) } 100% { transform: translateX(32px) rotate(0) } }
@keyframes atp-lantern { 0% { box-shadow: 0 0 14px 4px rgba(224,160,64,0.4); opacity: 0.8 } 50% { box-shadow: 0 0 28px 10px rgba(224,160,64,0.7); opacity: 1 } 100% { box-shadow: 0 0 18px 6px rgba(224,160,64,0.5); opacity: 0.9 } }
@keyframes atp-sun { 0% { transform: translateX(-50%) scale(0.95); opacity: 0.6 } 50% { transform: translateX(-50%) scale(1.1); opacity: 1 } 100% { transform: translateX(-50%) scale(1); opacity: 0.8 } }

.scn-crossing-to-island { background: linear-gradient(180deg, #7a9ab0 0%, #4a7a8a 40%, #2a5a5a 100%), radial-gradient(ellipse at 50% 80%, #b0d0d0 0%, transparent 70%); }
.scn-crossing-to-island .river-bank { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: ct-bank 10s ease-in-out infinite alternate; }
.scn-crossing-to-island .boat-bridge { position:absolute; bottom:20%; left:20%; right:20%; height:10px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: ct-bridge 8s ease-in-out infinite; }
.scn-crossing-to-island .boat-1 { position:absolute; bottom:22%; left:25%; width:60px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; transform-origin: center bottom; animation: ct-boat1 6s ease-in-out infinite; }
.scn-crossing-to-island .boat-2 { position:absolute; bottom:22%; left:55%; width:50px; height:18px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; transform-origin: center bottom; animation: ct-boat2 7s ease-in-out infinite 0.5s; }
.scn-crossing-to-island .soldier-boat { position:absolute; bottom:28%; left:40%; width:14px; height:28px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ct-soldier 9s ease-in-out infinite; }
.scn-crossing-to-island .fort-ruin { position:absolute; bottom:32%; right:10%; width:80px; height:50px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: ct-fort 12s ease-in-out infinite alternate; }
.scn-crossing-to-island .sun-glare { position:absolute; top:5%; left:30%; width:60px; height:60px; background: radial-gradient(circle, #f0e080 0%, transparent 80%); border-radius: 50%; animation: ct-glare 15s ease-in-out infinite; }
.scn-crossing-to-island .ripple-set { position:absolute; bottom:15%; left:30%; right:30%; height:20px; background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, rgba(100,140,160,0.3) 8px, rgba(100,140,160,0.1) 12px); animation: ct-ripple 4s linear infinite; }
@keyframes ct-bank { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes ct-bridge { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } }
@keyframes ct-boat1 { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) translateY(-2px) } }
@keyframes ct-boat2 { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-3deg) translateY(-1px) } }
@keyframes ct-soldier { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5px) rotate(0deg) } 50% { transform: translateX(10px) rotate(1deg) } 75% { transform: translateX(15px) rotate(0deg) } 100% { transform: translateX(20px) rotate(-1deg) } }
@keyframes ct-fort { 0% { transform: scale(0.98) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes ct-glare { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ct-ripple { 0% { background-position: 0 0 } 100% { background-position: 40px 0 } }

.scn-fighting-at-augustins { background: linear-gradient(180deg, #6a8ab0 0%, #8a6a4a 50%, #4a3a2a 100%), radial-gradient(ellipse at 50% 30%, #d0b080 0%, transparent 70%); }
.scn-fighting-at-augustins .sky-battle { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a7a9a 0%, #d0b080 100%); animation: faa-sky 6s ease-in-out infinite alternate; }
.scn-fighting-at-augustins .slope-ground { position:absolute; bottom:20%; left:0; right:0; height:60%; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: faa-slope 10s ease-in-out infinite; }
.scn-fighting-at-augustins .slope-figures { position:absolute; bottom:40%; left:10%; width:120px; height:40px; background: repeating-linear-gradient(90deg, #3a3a4a 0px, #3a3a4a 8px, transparent 8px, transparent 16px); border-radius: 20px; animation: faa-figures 5s ease-in-out infinite; }
.scn-fighting-at-augustins .spaniard-figure { position:absolute; bottom:45%; left:35%; width:18px; height:42px; background: linear-gradient(180deg, #4a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: faa-span 3s ease-in-out infinite; }
.scn-fighting-at-augustins .enemy-line { position:absolute; bottom:40%; right:10%; width:80px; height:30px; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10px; clip-path: polygon(0% 0%, 100% 10%, 90% 100%, 10% 80%); animation: faa-enemy 7s ease-in-out infinite alternate; }
.scn-fighting-at-augustins .spear-wall { position:absolute; bottom:48%; left:20%; width:4px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 20px 0 0 #6a5a4a, 40px 0 0 #5a4a3a, 60px 0 0 #6a5a4a; animation: faa-spear 4s ease-in-out infinite; }
.scn-fighting-at-augustins .dust-cloud { position:absolute; bottom:35%; left:50%; width:80px; height:30px; background: radial-gradient(ellipse, rgba(120,100,80,0.5) 0%, transparent 70%); filter: blur(6px); animation: faa-dust 8s ease-in-out infinite; }
@keyframes faa-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes faa-slope { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes faa-figures { 0%,100% { opacity: 0.8 } 50% { opacity: 1 } }
@keyframes faa-span { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(12px) rotate(1deg) } 50% { transform: translateX(24px) rotate(-1deg) } 75% { transform: translateX(36px) rotate(2deg) } 100% { transform: translateX(48px) rotate(0) } }
@keyframes faa-enemy { 0% { transform: translateX(0) scaleX(1) } 100% { transform: translateX(-10px) scaleX(0.9) } }
@keyframes faa-spear { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes faa-dust { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-20px) scale(1.2) } 100% { transform: translateX(0) scale(1) } }

.scn-arrival-reinforcements { background: linear-gradient(180deg, #8aa0b0 0%, #b0c0d0 30%, #c8b090 60%, #6a5a4a 100%), radial-gradient(ellipse at 50% 20%, #e0c080 0%, transparent 70%); }
.scn-arrival-reinforcements .sky-arrival { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a8aaa 0%, #d0c090 100%); animation: ar-sky 10s ease-in-out infinite alternate; }
.scn-arrival-reinforcements .horizon-island { position:absolute; bottom:25%; left:40%; right:10%; height:15%; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius: 40% 60% 0 0 / 60% 70% 0 0; box-shadow: inset 0 6px 14px rgba(0,0,0,.3); animation: ar-island 14s ease-in-out infinite; }
.scn-arrival-reinforcements .banner-line { position:absolute; bottom:35%; left:20%; width:60px; height:4px; background: #ffd080; box-shadow: 0 12px 0 #ffd080, 0 24px 0 #ffd080; border-radius: 2px; animation: ar-bannerline 3s ease-in-out infinite alternate; }
.scn-arrival-reinforcements .banner-rais { position:absolute; bottom:40%; left:30%; width:20px; height:30px; background: linear-gradient(180deg, #5a2a2a 0%, #3a1a1a 100%); border-radius: 2px; transform: skewX(-10deg); box-shadow: 30px 0 0 0 #3a5a2a; animation: ar-banner1 5s ease-in-out infinite; }
.scn-arrival-reinforcements .banner-bastard { position:absolute; bottom:40%; left:50%; width:20px; height:30px; background: linear-gradient(180deg, #2a4a5a 0%, #1a2a3a 100%); border-radius: 2px; transform: skewX(5deg); box-shadow: 30px 0 0 0 #4a3a2a; animation: ar-banner2 6s ease-in-out infinite 0.5s; }
.scn-arrival-reinforcements .artillery-piece { position:absolute; bottom:20%; left:15%; width:80px; height:24px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: ar-art 8s ease-in-out infinite; }
.scn-arrival-reinforcements .culverin-crew { position:absolute; bottom:18%; left:20%; width:30px; height:20px; background: radial-gradient(ellipse, #3a3a4a 0%, transparent 70%); animation: ar-crew 4s ease-in-out infinite; }
.scn-arrival-reinforcements .troop-column { position:absolute; bottom:10%; left:50%; width:4px; height:50px; background: #4a4a5a; box-shadow: 10px 0 0 #4a4a5a, 20px 0 0 #3a3a4a, 30px 0 0 #4a4a5a, 40px 0 0 #3a3a4a; border-radius: 2px; animation: ar-troop 12s linear infinite; }
@keyframes ar-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ar-island { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ar-bannerline { 0% { opacity: 0.6 } 100% { opacity: 1 } }
@keyframes ar-banner1 { 0%,100% { transform: skewX(-10deg) scaleY(1) } 50% { transform: skewX(-12deg) scaleY(1.1) } }
@keyframes ar-banner2 { 0%,100% { transform: skewX(5deg) scaleY(1) } 50% { transform: skewX(7deg) scaleY(1.08) } }
@keyframes ar-art { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ar-crew { 0%,100% { opacity: 0.5 } 50% { opacity: 0.8 } }
@keyframes ar-troop { 0% { transform: translateY(0) } 100% { transform: translateY(-20px) } }

.scn-courcelles-oration {
  background:
    linear-gradient(180deg, #c8b28a 0%, #a08a62 40%, #7a6848 100%),
    radial-gradient(ellipse at 50% 0%, #d4c4a8 0%, transparent 70%);
}
.scn-courcelles-oration .wall-back { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b8a482 0%, #9a8260 100%); animation: co-wall 16s ease-in-out infinite alternate; }
.scn-courcelles-oration .dais { position:absolute; bottom:22%; left:15%; right:15%; height:18%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 6px 14px rgba(0,0,0,.3); }
.scn-courcelles-oration .bench { position:absolute; bottom:36%; left:22%; right:22%; height:6%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-courcelles-oration .judge-figure { position:absolute; bottom:32%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: co-judge-bob 7s ease-in-out infinite; }
.scn-courcelles-oration .lectern { position:absolute; bottom:8%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a1a 100%); border-radius: 6% 6% 4% 4%; box-shadow: 2px 0 6px rgba(0,0,0,.3); }
.scn-courcelles-oration .figure-maid { position:absolute; bottom:6%; left:48%; width:16px; height:28px; background: linear-gradient(180deg, #3a2a5a 0%, #1a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: co-maid-shift 5s ease-in-out infinite; }
.scn-courcelles-oration .candle-sconce { position:absolute; top:18%; left:70%; width:10px; height:16px; background: linear-gradient(180deg, #d4b080 0%, #b09060 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 12px 3px #f0c878; animation: co-candle-flicker 2s ease-in-out infinite alternate; }
.scn-courcelles-oration .flame-glow { position:absolute; top:15%; left:70%; width:20px; height:20px; background: radial-gradient(circle, #f0d090 0%, #f0b040 40%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: co-flame-pulse 2s ease-in-out infinite alternate; }
@keyframes co-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes co-judge-bob { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes co-maid-shift { 0%,100% { transform: translateX(0) } 50% { transform: translateX(4px) translateY(-1px) } }
@keyframes co-candle-flicker { 0% { box-shadow: 0 0 8px 2px #f0c878; opacity:.85 } 50% { box-shadow: 0 0 18px 6px #f0d8a0; opacity:1 } 100% { box-shadow: 0 0 10px 3px #f0c878; opacity:.9 } }
@keyframes co-flame-pulse { 0% { transform: scale(1) } 50% { transform: scale(1.15) } 100% { transform: scale(1) } }

.scn-letter-dumas {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 50%, #c0b098 100%),
    radial-gradient(ellipse at 50% 0%, #f8f0e0 0%, transparent 60%);
}
.scn-letter-dumas .wall-study { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e0d8c8 0%, #c8b8a8 100%); }
.scn-letter-dumas .window-light { position:absolute; top:10%; left:30%; width:120px; height:160px; background: linear-gradient(135deg, #f8f4ec 0%, #e0dcd4 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 40px 20px rgba(248,244,236,.2); animation: ld-light 8s ease-in-out infinite alternate; }
.scn-letter-dumas .curtain-left { position:absolute; top:8%; left:26%; width:30px; height:170px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 0 40% 40% 0; filter: blur(2px); animation: ld-curtain 12s ease-in-out infinite alternate; }
.scn-letter-dumas .curtain-right { position:absolute; top:8%; right:26%; width:30px; height:170px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 40% 0 0 40%; filter: blur(2px); animation: ld-curtain 12s ease-in-out infinite alternate-reverse; }
.scn-letter-dumas .desk { position:absolute; bottom:12%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: ld-desk 20s ease-in-out infinite alternate; }
.scn-letter-dumas .letter { position:absolute; bottom:24%; left:38%; width:80px; height:50px; background: linear-gradient(180deg, #f0e8d8 0%, #e0d0c0 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.15); transform: rotate(-3deg); animation: ld-letter 6s ease-in-out infinite; }
.scn-letter-dumas .inkwell { position:absolute; bottom:26%; left:55%; width:14px; height:20px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ld-inkwell 9s ease-in-out infinite alternate; }
.scn-letter-dumas .dust-mote-a { position:absolute; top:20%; left:10%; width:4px; height:4px; background: rgba(255,255,255,.5); border-radius: 50%; filter: blur(1px); animation: ld-dust-a 25s linear infinite; }
.scn-letter-dumas .dust-mote-b { position:absolute; top:30%; right:15%; width:3px; height:3px; background: rgba(255,255,255,.4); border-radius: 50%; filter: blur(1px); animation: ld-dust-b 30s linear infinite; }
@keyframes ld-light { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ld-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(6px) } 100% { transform: translateX(0) } }
@keyframes ld-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ld-letter { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(-1deg) translateY(-2px) } }
@keyframes ld-inkwell { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ld-dust-a { 0% { transform: translate(0, 0) scale(1); opacity:.3 } 50% { transform: translate(20px, -10px) scale(.8); opacity:.5 } 100% { transform: translate(40px, -20px) scale(1.2); opacity:.2 } }
@keyframes ld-dust-b { 0% { transform: translate(0, 0) scale(1); opacity:.2 } 50% { transform: translate(-15px, -8px) scale(1.1); opacity:.4 } 100% { transform: translate(-30px, -16px) scale(.9); opacity:.15 } }

.scn-dumas-diagnosis {
  background:
    linear-gradient(180deg, #f0ece0 0%, #d8d0c0 50%, #c0b8a8 100%),
    radial-gradient(ellipse at 50% 80%, #e8e0d0 0%, transparent 80%);
}
.scn-dumas-diagnosis .wall-exam { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #e0dcd4 0%, #c8c0b8 100%); animation: dd-wall 15s ease-in-out infinite alternate; }
.scn-dumas-diagnosis .bookshelf { position:absolute; top:10%; right:8%; width:80px; height:140px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 6% 6% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.4); overflow:hidden; }
.scn-dumas-diagnosis .bookshelf::after { content:''; position:absolute; top:20%; left:10%; width:60%; height:8%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 2px; box-shadow: 0 12px 0 #7a6a4a, 0 24px 0 #6a5a3a; animation: dd-books 20s linear infinite; }
.scn-dumas-diagnosis .exam-table { position:absolute; bottom:15%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 6px 14px rgba(0,0,0,.3); }
.scn-dumas-diagnosis .doctor-figure { position:absolute; bottom:20%; left:40%; width:30px; 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: dd-doctor 8s ease-in-out infinite alternate; }
.scn-dumas-diagnosis .lamp-arm { position:absolute; top:25%; left:35%; width:60px; height:6px; background: linear-gradient(90deg, #b0a080 0%, #8a7a5a 100%); border-radius: 4px; transform-origin: left center; animation: dd-lamp 12s ease-in-out infinite alternate; }
.scn-dumas-diagnosis .bottle { position:absolute; bottom:22%; left:60%; width:16px; height:24px; background: linear-gradient(180deg, #c0d8e0 0%, #a0b8c0 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.15); animation: dd-bottle 10s ease-in-out infinite alternate; }
.scn-dumas-diagnosis .page-turn { position:absolute; bottom:26%; left:45%; width:8px; height:12px; background: linear-gradient(180deg, #f0e8d8 0%, #e0d0c0 100%); border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,.1); animation: dd-page 5s ease-in-out infinite; }
@keyframes dd-wall { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dd-books { 0% { transform: translateY(0) } 100% { transform: translateY(-12px) } }
@keyframes dd-doctor { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes dd-lamp { 0% { transform: rotate(-5deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-5deg) } }
@keyframes dd-bottle { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-1px) rotate(2deg) } }
@keyframes dd-page { 0%,100% { transform: translateX(0) rotateY(0) } 50% { transform: translateX(2px) rotateY(10deg) } }

.scn-hallucinations-examined {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 40%, #3a3a4e 100%),
    radial-gradient(ellipse at 50% 30%, #4a4a5e 0%, transparent 80%);
}
.scn-hallucinations-examined .wall-dark { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); animation: he-wall 18s ease-in-out infinite alternate; }
.scn-hallucinations-examined .curtain-heavy-left { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 0 40% 40% 0; filter: blur(3px); animation: he-curtain 14s ease-in-out infinite alternate; }
.scn-hallucinations-examined .curtain-heavy-right { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 0 0 40%; filter: blur(3px); animation: he-curtain 14s ease-in-out infinite alternate-reverse; }
.scn-hallucinations-examined .candle { position:absolute; bottom:30%; left:50%; width:8px; height:20px; background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%); border-radius: 20% 20% 10% 10%; transform: translateX(-50%); animation: he-candle-body 4s ease-in-out infinite alternate; }
.scn-hallucinations-examined .candle-halo { position:absolute; bottom:42%; left:50%; width:40px; height:40px; background: radial-gradient(circle, #f0d8a0 0%, #d0b070 30%, transparent 70%); border-radius: 50%; transform: translateX(-50%); filter: blur(6px); animation: he-halo 3s ease-in-out infinite alternate; }
.scn-hallucinations-examined .scribe-hand { position:absolute; bottom:18%; left:40%; width:20px; height:30px; background: linear-gradient(180deg, #c8b098 0%, #a08870 100%); border-radius: 60% 60% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: he-hand 7s ease-in-out infinite; }
.scn-hallucinations-examined .barred-window { position:absolute; top:15%; right:12%; width:60px; height:80px; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); border: 4px solid #5a5a6e; border-radius: 10% 10% 6% 6%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: he-window 20s ease-in-out infinite alternate; }
.scn-hallucinations-examined .barred-window::after { content:''; position:absolute; top:50%; left:0; right:0; height:4px; background: #5a5a6e; }
.scn-hallucinations-examined .shadow-creep { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%); animation: he-shadow 25s ease-in-out infinite alternate; }
@keyframes he-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes he-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes he-candle-body { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes he-halo { 0% { opacity:.7; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:.8; transform: translateX(-50%) scale(1) } }
@keyframes he-hand { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(2deg) } }
@keyframes he-window { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes he-shadow { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }

.scn-battle-cry {
  background: linear-gradient(180deg, #1a1018 0%, #2c1820 40%, #3c2028 100%),
              radial-gradient(ellipse at 30% 60%, rgba(200,100,40,0.3) 0%, transparent 70%);
}
.scn-battle-cry .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #2c1a1a, #4a2a20);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-battle-cry .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #1a0e0a, #2c1814);
  border-radius: 30% 20% 0 0 / 10% 8% 0 0;
}
.scn-battle-cry .brazier {
  position:absolute; bottom:35%; left:25%; width:12%; height:20%;
  background: radial-gradient(circle at 50% 40%, #ff7a30 0%, #c84a1a 40%, #6a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 20px rgba(200,80,20,0.6);
  animation: bc-flicker 2s ease-in-out infinite alternate;
}
.scn-battle-cry .armour-stand {
  position:absolute; bottom:30%; left:60%; width:15%; height:35%;
  background: linear-gradient(180deg, #6a5a4a, #3a2a1a);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: bc-stand 4s ease-in-out infinite;
}
.scn-battle-cry .figure {
  position:absolute; bottom:28%; left:45%; width:10%; height:30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: bc-figure 3s ease-in-out infinite;
}
.scn-battle-cry .light-glow {
  position:absolute; bottom:38%; left:22%; width:20%; height:18%;
  background: radial-gradient(circle, rgba(255,180,80,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: bc-glow 3s ease-in-out infinite alternate;
}
.scn-battle-cry .spark {
  position:absolute; width:2%; height:2%;
  background: #ffcc60;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #ffa030, 0 0 12px 4px rgba(255,160,48,0.3);
  filter: blur(1px);
}
.scn-battle-cry .spark-1 {
  bottom:40%; left:28%;
  animation: bc-spark 1.5s ease-out infinite;
  animation-delay: 0s;
}
.scn-battle-cry .spark-2 {
  bottom:42%; left:22%;
  animation: bc-spark 1.5s ease-out infinite;
  animation-delay: 0.75s;
}
@keyframes bc-flicker { 0% { opacity:0.8; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.08); } 100% { opacity:0.85; transform:scaleY(0.95); } }
@keyframes bc-stand { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-3px) rotate(1deg); } 100% { transform:translateY(0) rotate(-0.5deg); } }
@keyframes bc-figure { 0% { transform:translateX(0) translateY(0) rotate(-2deg); } 50% { transform:translateX(4px) translateY(-2px) rotate(2deg); } 100% { transform:translateX(0) translateY(0) rotate(-1deg); } }
@keyframes bc-glow { 0% { opacity:0.5; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes bc-spark { 0% { opacity:1; transform:translate(0,0) scale(1); } 50% { opacity:0.8; transform:translate(10px,-20px) scale(0.5); } 100% { opacity:0; transform:translate(20px,-40px) scale(0); } }

.scn-saint-loup-attack {
  background: linear-gradient(180deg, #7fb0d0 0%, #a0c8e0 40%, #c0d8e0 100%),
              radial-gradient(ellipse at 50% 100%, #e0d0a0 0%, transparent 70%);
}
.scn-saint-loup-attack .sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #4a8ab0 0%, #7fb0d0 100%);
}
.scn-saint-loup-attack .sun {
  position:absolute; top:8%; left:70%; width:10%; height:12%;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,200,64,0.4);
  animation: sla-sun 12s ease-in-out infinite alternate;
}
.scn-saint-loup-attack .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #5a7a3a, #3a5a2a);
  border-radius: 60% 40% 0 0 / 20% 15% 0 0;
}
.scn-saint-loup-attack .soldier {
  position:absolute; bottom:28%; width:5%; height:25%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: sla-soldier 2s ease-in-out infinite;
}
.scn-saint-loup-attack .soldier-1 { left:20%; animation-delay:0s; }
.scn-saint-loup-attack .soldier-2 { left:35%; animation-delay:0.5s; }
.scn-saint-loup-attack .soldier-3 { left:50%; animation-delay:1s; }
.scn-saint-loup-attack .flag {
  position:absolute; bottom:45%; left:50%; width:3%; height:15%;
  background: linear-gradient(180deg, #a00010, #6a0008);
  border-radius: 0 0 10% 10%;
  transform-origin: bottom center;
  animation: sla-flag 1.5s ease-in-out infinite;
}
.scn-saint-loup-attack .dust {
  position:absolute; bottom:30%; left:15%; right:15%; height:10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,180,120,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: sla-dust 4s ease-in-out infinite alternate;
}
@keyframes sla-sun { 0% { transform:translateX(0) scale(1); } 50% { transform:translateX(-5px) scale(1.05); } 100% { transform:translateX(5px) scale(0.95); } }
@keyframes sla-soldier { 0% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-4px) rotate(3deg); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes sla-flag { 0% { transform:rotate(-10deg); } 50% { transform:rotate(10deg); } 100% { transform:rotate(-8deg); } }
@keyframes sla-dust { 0% { opacity:0.3; transform:translateY(0) scaleY(1); } 50% { opacity:0.6; transform:translateY(-5px) scaleY(1.3); } 100% { opacity:0.2; transform:translateY(2px) scaleY(0.8); } }

.scn-talbot-sally {
  background: linear-gradient(180deg, #6a8a5a 0%, #8aaa6a 30%, #a0c080 100%),
              radial-gradient(ellipse at 80% 20%, #c0d8a0 0%, transparent 60%);
}
.scn-talbot-sally .forest-bg {
  position:absolute; inset:0 30% 0 0;
  background: linear-gradient(90deg, #2a4a2a 0%, #4a6a3a 40%, transparent 80%);
  border-radius: 0 30% 30% 0 / 0 20% 20% 0;
}
.scn-talbot-sally .path {
  position:absolute; bottom:25%; left:0; right:40%; height:8%;
  background: linear-gradient(90deg, #6a5a3a, #8a7a5a, #6a5a3a);
  border-radius: 50%;
  filter: blur(2px);
  animation: ts-path 6s ease-in-out infinite alternate;
}
.scn-talbot-sally .talbot-figure {
  position:absolute; bottom:30%; left:15%; width:8%; height:30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ts-talbot 3s ease-in-out infinite;
}
.scn-talbot-sally .horse-body {
  position:absolute; bottom:25%; left:20%; width:12%; height:18%;
  background: linear-gradient(180deg, #5a4a2a, #3a2a1a);
  border-radius: 40% 30% 20% 20%;
  animation: ts-horse-body 2s ease-in-out infinite;
}
.scn-talbot-sally .horse-legs {
  position:absolute; bottom:20%; left:22%; width:8%; height:12%;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 10% 10% 20% 20%;
  animation: ts-horse-legs 0.8s ease-in-out infinite;
}
.scn-talbot-sally .dust-cloud {
  position:absolute; bottom:22%; left:10%; width:15%; height:10%;
  background: radial-gradient(ellipse, rgba(180,160,100,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: ts-dust 4s ease-in-out infinite;
}
.scn-talbot-sally .sunbeam {
  position:absolute; top:0%; left:40%; width:20%; height:100%;
  background: linear-gradient(180deg, rgba(255,240,180,0.2) 0%, transparent 80%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: ts-sunbeam 8s ease-in-out infinite alternate;
}
@keyframes ts-path { 0% { transform:translateX(-5px); } 50% { transform:translateX(5px); } 100% { transform:translateX(-3px); } }
@keyframes ts-talbot { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-4px) rotate(2deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes ts-horse-body { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-3px) rotate(1deg); } 100% { transform:translateY(0) rotate(-0.5deg); } }
@keyframes ts-horse-legs { 0% { transform:rotate(-10deg); } 50% { transform:rotate(10deg); } 100% { transform:rotate(-8deg); } }
@keyframes ts-dust { 0% { opacity:0.2; transform:scale(1); } 50% { opacity:0.6; transform:scale(1.5); } 100% { opacity:0.1; transform:scale(0.8); } }
@keyframes ts-sunbeam { 0% { opacity:0.3; transform:rotate(-5deg); } 50% { opacity:0.6; transform:rotate(0deg); } 100% { opacity:0.4; transform:rotate(5deg); } }

.scn-saint-loup-captured {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a4a 100%),
              radial-gradient(ellipse at 50% 100%, rgba(200,80,30,0.2) 0%, transparent 70%);
}
.scn-saint-loup-captured .night-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%);
  animation: slc-sky 10s ease-in-out infinite alternate;
}
.scn-saint-loup-captured .moon {
  position:absolute; top:10%; left:75%; width:8%; height:8%;
  background: radial-gradient(circle, #d0d0e0 0%, #8080a0 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200,200,220,0.3);
}
.scn-saint-loup-captured .bastion-ruins {
  position:absolute; bottom:25%; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 10% 10% 0 0;
  clip-path: polygon(0% 100%, 10% 30%, 20% 100%, 40% 20%, 60% 100%, 80% 40%, 90% 100%, 100% 10%, 100% 100%);
  animation: slc-ruins 6s ease-in-out infinite;
}
.scn-saint-loup-captured .church-tower {
  position:absolute; bottom:25%; left:40%; width:6%; height:35%;
  background: linear-gradient(180deg, #4a3a2a, #2a1a12);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 10px 2px rgba(200,80,20,0.3);
}
.scn-saint-loup-captured .fire-glow {
  position:absolute; bottom:30%; left:15%; right:15%; height:25%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,120,40,0.4) 0%, transparent 80%);
  filter: blur(12px);
  animation: slc-fire 3s ease-in-out infinite alternate;
}
.scn-saint-loup-captured .prisoner {
  position:absolute; bottom:20%; width:4%; height:18%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20%;
  animation: slc-prisoner 4s ease-in-out infinite;
}
.scn-saint-loup-captured .prisoner-1 { left:30%; animation-delay:0s; }
.scn-saint-loup-captured .prisoner-2 { left:55%; animation-delay:1s; }
.scn-saint-loup-captured .ember {
  position:absolute; width:1%; height:1%;
  background: radial-gradient(circle, #ff8040, rgba(255,80,0,0.5));
  border-radius: 50%;
  box-shadow: 0 0 4px 2px #ff6040;
  animation: slc-ember 2s ease-out infinite;
}
.scn-saint-loup-captured .ember-1 { bottom:45%; left:20%; animation-delay:0s; }
.scn-saint-loup-captured .ember-2 { bottom:50%; left:45%; animation-delay:1s; }
@keyframes slc-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes slc-ruins { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(2px); } }
@keyframes slc-fire { 0% { opacity:0.4; transform:scaleY(1); } 50% { opacity:0.8; transform:scaleY(1.2); } 100% { opacity:0.5; transform:scaleY(0.9); } }
@keyframes slc-prisoner { 0% { transform:translateX(0) rotate(-2deg); } 50% { transform:translateX(3px) rotate(2deg); } 100% { transform:translateX(0) rotate(-1deg); } }
@keyframes slc-ember { 0% { opacity:1; transform:translateY(0) scale(1); } 50% { opacity:0.7; transform:translateY(-20px) scale(0.5); } 100% { opacity:0; transform:translateY(-40px) scale(0); } }

.scn-la-ferone-examined {
  background: 
    linear-gradient(135deg, #f5e6ca 0%, #d4c4a8 100%),
    radial-gradient(ellipse at 70% 40%, #fff8e7 0%, transparent 60%);
}
.scn-la-ferone-examined .window {
  position: absolute;
  top: 5%;
  left: 15%;
  width: 35%;
  height: 25%;
  background: linear-gradient(180deg, #c7d4e0 0%, #a4b6c5 60%, #889aad 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: inset 0 0 10px #fff, 0 0 20px rgba(255,248,231,0.4);
  animation: lfe-window 8s ease-in-out infinite alternate;
}
.scn-la-ferone-examined .table {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 80%;
  height: 15%;
  background: linear-gradient(180deg, #8b6f4e 0%, #6b4f2e 100%);
  border-radius: 2px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: lfe-table 12s ease-in-out infinite alternate;
}
.scn-la-ferone-examined .judge {
  position: absolute;
  bottom: 20%;
  width: 12%;
  height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-la-ferone-examined .judge-left {
  left: 20%;
  transform: scaleX(-1);
  animation: lfe-figure 3s ease-in-out infinite alternate;
}
.scn-la-ferone-examined .judge-right {
  right: 20%;
  animation: lfe-figure 3s ease-in-out infinite alternate 1.5s;
}
.scn-la-ferone-examined .accused {
  position: absolute;
  bottom: 20%;
  left: 45%;
  width: 10%;
  height: 36%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(0,0,0,0.3);
  animation: lfe-accused 4s ease-in-out infinite;
}
.scn-la-ferone-examined .shadow-table {
  position: absolute;
  bottom: 18%;
  left: 8%;
  width: 84%;
  height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(3px);
  animation: lfe-shadow 10s ease-in-out infinite alternate;
}
.scn-la-ferone-examined .light-cone {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 40%;
  height: 60%;
  background: linear-gradient(180deg, rgba(255,248,231,0.3) 0%, transparent 100%);
  clip-path: polygon(0 100%, 100% 100%, 60% 0, 40% 0);
  animation: lfe-light 6s ease-in-out infinite alternate;
}
@keyframes lfe-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 5px #fff; }
  50% { opacity: 1; box-shadow: inset 0 0 12px #fff, 0 0 25px rgba(255,248,231,0.6); }
  100% { opacity: 0.8; box-shadow: inset 0 0 7px #fff; }
}
@keyframes lfe-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes lfe-figure {
  0% { transform: scaleX(-1) rotate(-2deg) translateY(0); }
  50% { transform: scaleX(-1) rotate(2deg) translateY(-3px); }
  100% { transform: scaleX(-1) rotate(-1deg) translateY(1px); }
}
@keyframes lfe-accused {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(-3deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes lfe-shadow {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(0.8); }
  100% { opacity: 0.4; transform: scaleY(1); }
}
@keyframes lfe-light {
  0% { opacity: 0.4; transform: rotate(0deg); }
  50% { opacity: 0.7; transform: rotate(2deg); }
  100% { opacity: 0.5; transform: rotate(-1deg); }
}

.scn-sentence-imposture {
  background: 
    linear-gradient(180deg, #1a1028 0%, #2a1a3e 50%, #150a1e 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a4e 0%, transparent 70%);
}
.scn-sentence-imposture .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #1a0a10 0%, #0a0000 100%);
  border-top: 2px solid #4a3a2a;
}
.scn-sentence-imposture .wall-left,
.scn-sentence-imposture .wall-right {
  position: absolute;
  bottom: 20%;
  height: 60%;
  width: 15%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
}
.scn-sentence-imposture .wall-left {
  left: 0;
  border-right: 3px solid #4a2a3a;
}
.scn-sentence-imposture .wall-right {
  right: 0;
  border-left: 3px solid #4a2a3a;
}
.scn-sentence-imposture .torch {
  position: absolute;
  bottom: 40%;
  width: 8px;
  height: 40px;
  background: linear-gradient(180deg, #6b4a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-sentence-imposture .torch-left {
  left: 12%;
  animation: si-torch 2s ease-in-out infinite alternate;
}
.scn-sentence-imposture .torch-right {
  right: 12%;
  animation: si-torch 2s ease-in-out infinite alternate-reverse;
}
.scn-sentence-imposture .torch::after {
  content: '';
  position: absolute;
  top: -10px;
  left: -6px;
  width: 20px;
  height: 20px;
  background: radial-gradient(circle, #ff8000 0%, #ff4400 40%, transparent 70%);
  border-radius: 50%;
  animation: si-flame 1s ease-in-out infinite alternate;
}
.scn-sentence-imposture .figure-center {
  position: absolute;
  bottom: 20%;
  left: 38%;
  width: 24%;
  height: 50%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
  animation: si-figure 5s ease-in-out infinite;
}
.scn-sentence-imposture .fool-cap {
  position: absolute;
  bottom: 62%;
  left: 46%;
  width: 8%;
  height: 10%;
  background: linear-gradient(180deg, #8a6a3a 0%, #c8a86a 50%, #8a6a3a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: si-cap 4s ease-in-out infinite;
}
.scn-sentence-imposture .shadow-shadow {
  position: absolute;
  bottom: 13%;
  left: 25%;
  width: 50%;
  height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: si-shadow 6s ease-in-out infinite alternate;
}
@keyframes si-torch {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes si-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.3) translateY(-5px); opacity: 1; }
  100% { transform: scale(0.9) translateY(2px); opacity: 0.9; }
}
@keyframes si-figure {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-2deg); }
  75% { transform: translateY(2px) rotate(1deg); }
}
@keyframes si-cap {
  0% { transform: rotate(-10deg) scaleY(1); }
  50% { transform: rotate(10deg) scaleY(0.9); }
  100% { transform: rotate(-5deg) scaleY(1); }
}
@keyframes si-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(0.8); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

.scn-public-exhibition {
  background: 
    linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 0%, #5a5a6a 0%, transparent 60%);
}
.scn-public-exhibition .sky {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(180deg, #6a6a7a 0%, #3a3a4a 100%);
  animation: pe-sky 15s ease-in-out infinite alternate;
}
.scn-public-exhibition .wall-stone {
  position: absolute;
  bottom: 0;
  left: 5%;
  right: 5%;
  height: 60%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-public-exhibition .bars {
  position: absolute;
  bottom: 10%;
  left: 15%;
  right: 15%;
  height: 35%;
  background: repeating-linear-gradient(
    90deg,
    #4a4a3a 0px, #4a4a3a 4px,
    transparent 4px, transparent 20px
  );
  opacity: 0.4;
  border-radius: 2px;
}
.scn-public-exhibition .bars-back {
  bottom: 12%;
  left: 20%;
  right: 20%;
  height: 30%;
  background: repeating-linear-gradient(
    90deg,
    #2a2a1a 0px, #2a2a1a 3px,
    transparent 3px, transparent 25px
  );
  opacity: 0.2;
  animation: pe-bars-back 8s ease-in-out infinite alternate;
}
.scn-public-exhibition .bars-front {
  animation: pe-bars-front 10s ease-in-out infinite alternate;
}
.scn-public-exhibition .prisoner {
  position: absolute;
  bottom: 18%;
  left: 40%;
  width: 20%;
  height: 30%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 15px rgba(0,0,0,0.7);
  animation: pe-prisoner 4s ease-in-out infinite;
}
.scn-public-exhibition .chain {
  position: absolute;
  bottom: 18%;
  left: 38%;
  width: 24%;
  height: 3px;
  background: repeating-linear-gradient(
    90deg,
    #6a6a5a 0px, #6a6a5a 5px,
    transparent 5px, transparent 8px
  );
  transform-origin: left center;
  animation: pe-chain 3s ease-in-out infinite alternate;
}
.scn-public-exhibition .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 10%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-top: 2px solid #3a3a2a;
}
@keyframes pe-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes pe-bars-back {
  0% { opacity: 0.1; transform: scaleY(1); }
  50% { opacity: 0.3; transform: scaleY(1.05); }
  100% { opacity: 0.15; transform: scaleY(0.95); }
}
@keyframes pe-bars-front {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 0.5; transform: translateY(-2px); }
  100% { opacity: 0.35; transform: translateY(1px); }
}
@keyframes pe-prisoner {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-1deg); }
  75% { transform: translateY(2px) rotate(1deg); }
}
@keyframes pe-chain {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}

.scn-death-charles-vii {
  background: 
    linear-gradient(180deg, #0a0a1e 0%, #1a1a3a 40%, #0a0a1e 100%),
    radial-gradient(ellipse at 50% 20%, #2a2a5a 0%, transparent 70%);
}
.scn-death-charles-vii .vault {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1a1a4a 0%, #0a0a2a 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-death-charles-vii .altar {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 30%;
  height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 0 15px rgba(0,0,0,0.6);
}
.scn-death-charles-vii .casket {
  position: absolute;
  bottom: 30%;
  left: 40%;
  width: 20%;
  height: 12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 6px;
  box-shadow: 0 0 20px rgba(0,0,0,0.7);
  animation: dcv-casket 10s ease-in-out infinite alternate;
}
.scn-death-charles-vii .candle {
  position: absolute;
  bottom: 35%;
  width: 6px;
  height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%);
  border-radius: 2px;
}
.scn-death-charles-vii .candle-left {
  left: 30%;
  animation: dcv-candle 3s ease-in-out infinite alternate;
}
.scn-death-charles-vii .candle-right {
  right: 30%;
  animation: dcv-candle 3s ease-in-out infinite alternate-reverse;
}
.scn-death-charles-vii .candle::after {
  content: '';
  position: absolute;
  top: -8px;
  left: -4px;
  width: 14px;
  height: 14px;
  background: radial-gradient(circle, #ffaa55 0%, #ff6600 30%, transparent 70%);
  border-radius: 50%;
  animation: dcv-flame 2s ease-in-out infinite alternate;
}
.scn-death-charles-vii .drapery {
  position: absolute;
  top: 5%;
  width: 40%;
  height: 15%;
  background: linear-gradient(180deg, #1a0a1a 0%, #2a1a2a 100%);
  border-radius: 4px;
  opacity: 0.8;
}
.scn-death-charles-vii .drapery-left {
  left: 10%;
  transform: skewY(-5deg);
  box-shadow: 0 0 10px rgba(0,0,0,0.4);
  animation: dcv-drapery 8s ease-in-out infinite alternate;
}
.scn-death-charles-vii .drapery-right {
  right: 10%;
  transform: skewY(5deg);
  box-shadow: 0 0 10px rgba(0,0,0,0.4);
  animation: dcv-drapery 8s ease-in-out infinite alternate-reverse;
}
.scn-death-charles-vii .glow {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 30%;
  height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,100,0.15) 0%, transparent 70%);
  animation: dcv-glow 5s ease-in-out infinite alternate;
}
@keyframes dcv-casket {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.8; }
  50% { transform: translateY(-2px) rotate(0.5deg); opacity: 1; }
  100% { transform: translateY(1px) rotate(-0.3deg); opacity: 0.9; }
}
@keyframes dcv-candle {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes dcv-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.9; }
  50% { transform: scale(1.2) translateY(-4px); opacity: 1; }
  100% { transform: scale(0.8) translateY(2px); opacity: 0.8; }
}
@keyframes dcv-drapery {
  0% { transform: skewY(-5deg) translateY(0); }
  50% { transform: skewY(-4deg) translateY(-3px); }
  100% { transform: skewY(-6deg) translateY(2px); }
}
@keyframes dcv-glow {
  0% { opacity: 0.1; }
  50% { opacity: 0.3; }
  100% { opacity: 0.15; }
}

.scn-martin-character {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d9c8a8 30%, #b8a080 100%),
    radial-gradient(ellipse at 70% 40%, #fff8e0 0%, transparent 70%);
}
.scn-martin-character .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #e3d5b8 0%, #c9b694 50%, #dac9a8 100%);
  animation: mc-wall 20s ease-in-out infinite alternate;
}
.scn-martin-character .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%);
  border-radius: 0 0 8px 8px;
}
.scn-martin-character .window {
  position: absolute; top: 18%; left: 62%; width: 90px; height: 120px;
  background: radial-gradient(ellipse at 50% 30%, #fff8e0 0%, #b0c8e0 70%);
  border: 8px solid #6a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,248,224,.6), 0 4px 12px rgba(0,0,0,.3);
  animation: mc-window 6s ease-in-out infinite alternate;
}
.scn-martin-character .chair {
  position: absolute; bottom: 38%; left: 30%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 6px 6px 0 0;
  transform-origin: bottom center;
  animation: mc-chair 8s ease-in-out infinite;
}
.scn-martin-character .figure {
  position: absolute; bottom: 36%; left: 32%; width: 36px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc-figure 4s ease-in-out infinite alternate;
}
.scn-martin-character .book {
  position: absolute; bottom: 38%; left: 36%; width: 28px; height: 20px;
  background: linear-gradient(135deg, #a08060 0%, #806040 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: mc-book 12s ease-in-out infinite;
}
.scn-martin-character .lamp-light {
  position: absolute; top: 25%; left: 70%; width: 8px; height: 8px;
  background: radial-gradient(circle, #fff0c0 0%, #e8d090 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(232,208,144,.4);
  animation: mc-lamp 3s ease-in-out infinite alternate;
}
@keyframes mc-wall {
  0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .92; }
}
@keyframes mc-window {
  0% { box-shadow: inset 0 0 40px rgba(255,248,224,.7); opacity: .9; }
  50% { box-shadow: inset 0 0 60px rgba(255,248,224,.9); opacity: 1; }
  100% { box-shadow: inset 0 0 30px rgba(255,248,224,.6); opacity: .88; }
}
@keyframes mc-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes mc-figure {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes mc-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-6deg) translateY(0); }
}
@keyframes mc-lamp {
  0% { box-shadow: 0 0 30px 10px rgba(232,208,144,.3); opacity: .8; }
  50% { box-shadow: 0 0 60px 25px rgba(232,208,144,.5); opacity: 1; }
  100% { box-shadow: 0 0 40px 15px rgba(232,208,144,.35); opacity: .85; }
}

.scn-figure-appears {
  background:
    linear-gradient(180deg, #8ab0d4 0%, #c0d8e8 40%, #e8f0f8 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 50%);
}
.scn-figure-appears .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6a8eb0 0%, #a0c8e0 100%);
  animation: fa-sky 30s ease-in-out infinite alternate;
}
.scn-figure-appears .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%);
  border-radius: 30% 0 0 0;
}
.scn-figure-appears .shadow {
  position: absolute; bottom: 28%; left: 38%; width: 80px; height: 15px;
  background: rgba(0,0,0,.25);
  border-radius: 50%;
  filter: blur(8px);
  animation: fa-shadow 6s ease-in-out infinite alternate;
}
.scn-figure-appears .figure-appears-fig {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fa-figure 8s ease-in-out infinite;
}
.scn-figure-appears .figure-shadow {
  position: absolute; bottom: 30%; left: 42%; width: 40px; height: 12px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: fa-figshadow 8s ease-in-out infinite;
}
.scn-figure-appears .door {
  position: absolute; bottom: 30%; right: 15%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 3px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: fa-door 12s ease-in-out infinite;
}
.scn-figure-appears .light-shaft {
  position: absolute; top: 5%; left: 35%; width: 120px; height: 100%;
  background: linear-gradient(180deg, rgba(255,248,224,.2) 0%, rgba(255,248,224,0) 100%);
  transform: skewX(-8deg);
  animation: fa-shaft 4s ease-in-out infinite alternate;
}
@keyframes fa-sky {
  0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; }
}
@keyframes fa-shadow {
  0% { transform: scaleX(1); opacity: .5; }
  50% { transform: scaleX(1.4); opacity: .8; }
  100% { transform: scaleX(1); opacity: .5; }
}
@keyframes fa-figure {
  0% { opacity: .6; transform: translateX(0) rotate(0); }
  25% { opacity: .8; transform: translateX(4px) rotate(2deg); }
  50% { opacity: 1; transform: translateX(-2px) rotate(-3deg); }
  75% { opacity: .9; transform: translateX(2px) rotate(1deg); }
  100% { opacity: .7; transform: translateX(-4px) rotate(0); }
}
@keyframes fa-figshadow {
  0% { transform: scaleX(1); opacity: .3; }
  50% { transform: scaleX(1.3); opacity: .6; }
  100% { transform: scaleX(1); opacity: .3; }
}
@keyframes fa-door {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes fa-shaft {
  0% { opacity: .3; }
  50% { opacity: .6; }
  100% { opacity: .4; }
}

.scn-warnings-to-king {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 50%, #8a7a6a 100%),
    radial-gradient(ellipse at 60% 20%, #b09870 0%, transparent 60%);
}
.scn-warnings-to-king .throne-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.4);
  animation: wk-wall 30s ease-in-out infinite alternate;
}
.scn-warnings-to-king .throne-platform {
  position: absolute; bottom: 35%; left: 30%; right: 30%; height: 6px;
  background: linear-gradient(90deg, #8a7a5a 0%, #b09870 50%, #8a7a5a 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(0,0,0,.3);
}
.scn-warnings-to-king .throne {
  position: absolute; bottom: 38%; left: 38%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3018 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: wk-throne 10s ease-in-out infinite;
}
.scn-warnings-to-king .king {
  position: absolute; bottom: 40%; left: 40%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wk-king 5s ease-in-out infinite alternate;
}
.scn-warnings-to-king .messenger {
  position: absolute; bottom: 35%; left: 55%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wk-messenger 7s ease-in-out infinite;
}
.scn-warnings-to-king .scroll {
  position: absolute; bottom: 42%; left: 57%; width: 18px; height: 6px;
  background: linear-gradient(90deg, #c8b090 0%, #e0d0b8 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  animation: wk-scroll 3s ease-in-out infinite alternate;
}
.scn-warnings-to-king .candle {
  position: absolute; bottom: 42%; right: 25%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e8d8c0 0%, #c0a890 100%);
  border-radius: 2px;
}
@keyframes wk-wall {
  0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .92; }
}
@keyframes wk-throne {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes wk-king {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes wk-messenger {
  0% { transform: translateX(0); }
  50% { transform: translateX(6px); }
  100% { transform: translateX(0); }
}
@keyframes wk-scroll {
  0% { transform: rotate(18deg) scaleY(1); }
  50% { transform: rotate(22deg) scaleY(1.1); }
  100% { transform: rotate(20deg) scaleY(1); }
}

.scn-apparition-vanishes {
  background:
    linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 40%, #8a9aaa 100%),
    radial-gradient(ellipse at 50% 30%, #a0b0c0 0%, transparent 70%);
}
.scn-apparition-vanishes .overcast-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, #7a8a9a 100%);
  animation: av-sky 20s ease-in-out infinite alternate;
}
.scn-apparition-vanishes .mist-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%);
  border-radius: 20% 0 0 0;
}
.scn-apparition-vanishes .figure-rising {
  position: absolute; bottom: 28%; left: 45%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: av-figure 8s ease-in-out infinite;
}
.scn-apparition-vanishes .vapor-trail {
  position: absolute; bottom: 40%; left: 42%; width: 60px; height: 20px;
  background: linear-gradient(90deg, rgba(160,180,200,.3) 0%, rgba(160,180,200,.05) 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: av-vapor 6s ease-in-out infinite alternate;
}
.scn-apparition-vanishes .ground-shadow {
  position: absolute; bottom: 26%; left: 44%; width: 50px; height: 8px;
  background: rgba(0,0,0,.2);
  border-radius: 50%;
  filter: blur(6px);
  animation: av-shadow 8s ease-in-out infinite;
}
.scn-apparition-vanishes .glow-orb {
  position: absolute; top: 10%; left: 50%; width: 12px; height: 12px;
  background: radial-gradient(circle, #c0d8e8 0%, #6080a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(96,128,160,.4);
  animation: av-orb 5s ease-in-out infinite alternate;
}
.scn-apparition-vanishes .dispersing-mist {
  position: absolute; top: 20%; left: 30%; width: 50%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(160,180,200,.1) 0%, transparent 100%);
  filter: blur(20px);
  animation: av-mist 12s ease-in-out infinite alternate;
}
@keyframes av-sky {
  0% { opacity: .8; } 50% { opacity: .9; } 100% { opacity: .82; }
}
@keyframes av-figure {
  0% { transform: translateY(0) rotate(0); opacity: .8; }
  25% { transform: translateY(-12px) rotate(5deg); opacity: .5; }
  50% { transform: translateY(-25px) rotate(-3deg); opacity: .2; }
  75% { transform: translateY(-10px) rotate(2deg); opacity: .6; }
  100% { transform: translateY(0) rotate(0); opacity: .8; }
}
@keyframes av-vapor {
  0% { opacity: .2; transform: scaleX(1); }
  50% { opacity: .6; transform: scaleX(1.5); }
  100% { opacity: .1; transform: scaleX(.8); }
}
@keyframes av-shadow {
  0% { transform: scaleX(1); opacity: .2; }
  50% { transform: scaleX(.5); opacity: .1; }
  100% { transform: scaleX(1); opacity: .2; }
}
@keyframes av-orb {
  0% { transform: translateY(0) scale(1); opacity: .3; }
  50% { transform: translateY(-10px) scale(1.3); opacity: .7; }
  100% { transform: translateY(0) scale(1); opacity: .4; }
}
@keyframes av-mist {
  0% { opacity: .1; }
  50% { opacity: .3; }
  100% { opacity: .15; }
}

.scn-patay-aftermath {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 30%, #2a2a5e 60%, #1a1a2a 100%),
              radial-gradient(ellipse at 30% 60%, #2a3a5a 0%, transparent 70%);
}
.scn-patay-aftermath .wall {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 70%;
  background: linear-gradient(0deg, #2a2a3a 0%, #3a3a4a 40%, #4a4a5a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-patay-aftermath .gate {
  position: absolute; bottom: 30%; left: 45%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -4px 12px rgba(0,0,0,.8);
}
.scn-patay-aftermath .figures-front {
  position: absolute; bottom: 25%; left: 20%; width: 30%; height: 25%;
  background: radial-gradient(ellipse 50% 100%, #1a1a2a 50%, transparent 100%);
  border-radius: 40% 40% 0 0;
  animation: pa-fig-front 2s ease-in-out infinite alternate;
}
.scn-patay-aftermath .figures-back {
  position: absolute; bottom: 35%; left: 55%; width: 20%; height: 18%;
  background: radial-gradient(ellipse 50% 100%, #0a0a1a 60%, transparent 100%);
  border-radius: 50% 50% 0 0;
  animation: pa-fig-back 2.5s ease-in-out infinite alternate;
}
.scn-patay-aftermath .lantern-a {
  position: absolute; bottom: 45%; left: 35%; width: 8px; height: 8px;
  background: #ffa060;
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,160,96,.6), 0 0 40px 12px rgba(255,160,96,.3);
  animation: pa-lantern 3s ease-in-out infinite;
}
.scn-patay-aftermath .lantern-b {
  position: absolute; bottom: 50%; left: 60%; width: 6px; height: 6px;
  background: #ffa060;
  border-radius: 50%;
  box-shadow: 0 0 14px 4px rgba(255,160,96,.5), 0 0 28px 8px rgba(255,160,96,.2);
  animation: pa-lantern 3.5s ease-in-out infinite alternate;
}
.scn-patay-aftermath .moon {
  position: absolute; top: 8%; right: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c0d0e0 0%, #a0b0c0 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  box-shadow: 0 0 60px 20px rgba(160,176,192,.4);
  animation: pa-moon 12s ease-in-out infinite alternate;
}
.scn-patay-aftermath .fog {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(100,120,140,.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: pa-fog 8s ease-in-out infinite alternate;
}
@keyframes pa-fig-front {
  0% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-2px) translateX(3px); }
  100% { transform: translateY(0) translateX(-2px); }
}
@keyframes pa-fig-back {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes pa-lantern {
  0% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: .8; transform: scale(1); }
}
@keyframes pa-moon {
  0% { transform: translateX(0) translateY(0); opacity: .9; }
  50% { transform: translateX(-5px) translateY(-3px); opacity: 1; }
  100% { transform: translateX(3px) translateY(2px); opacity: .85; }
}
@keyframes pa-fog {
  0% { opacity: .3; }
  50% { opacity: .5; }
  100% { opacity: .2; }
}

.scn-brittany-herald {
  background: linear-gradient(180deg, #d4c8a0 0%, #c4b890 40%, #a89870 100%),
              radial-gradient(ellipse at 50% 0%, #e8dcc0 0%, transparent 60%);
}
.scn-brittany-herald .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
}
.scn-brittany-herald .wall-back {
  position: absolute; bottom: 20%; left: 10%; right: 10%; top: 5%;
  background: linear-gradient(180deg, #c4b080 0%, #b0a070 40%, #9a8a5a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.15);
}
.scn-brittany-herald .window {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #a0c8e0 0%, #80a0c0 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 30px rgba(160,200,224,.5), 0 0 40px rgba(160,200,224,.3);
  animation: bh-window 10s ease-in-out infinite alternate;
}
.scn-brittany-herald .herald {
  position: absolute; bottom: 20%; left: 40%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 60%, #2a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bh-herald 3s ease-in-out infinite;
}
.scn-brittany-herald .throne {
  position: absolute; bottom: 20%; left: 55%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
}
.scn-brittany-herald .banner {
  position: absolute; top: 10%; left: 55%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #704020 0%, #503010 100%);
  border-radius: 0 0 20% 20%;
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  animation: bh-banner 6s ease-in-out infinite alternate;
}
.scn-brittany-herald .candle {
  position: absolute; bottom: 25%; left: 48%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #ffe0a0 0%, #c08040 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 16px 4px #ffd060, 0 0 32px 8px rgba(255,208,96,.4);
  animation: bh-candle 4s ease-in-out infinite alternate;
}
@keyframes bh-window {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes bh-herald {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes bh-banner {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.05) translateY(-2px); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes bh-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: .9; }
  50% { transform: scaleY(1.1) scaleX(1.05); opacity: 1; }
  100% { transform: scaleY(1) scaleX(1); opacity: .95; }
}

.scn-italian-german-views {
  background: linear-gradient(180deg, #d0c8b0 0%, #b8a890 40%, #a09078 100%),
              radial-gradient(ellipse at 50% 0%, #e8dcc8 0%, transparent 60%);
}
.scn-italian-german-views .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.3);
}
.scn-italian-german-views .book-open {
  position: absolute; bottom: 22%; left: 35%; width: 30%; height: 18%;
  background: linear-gradient(180deg, #c0a870 0%, #a08858 100%);
  border-radius: 2% 2% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: ig-book-open 6s ease-in-out infinite alternate;
}
.scn-italian-german-views .book-stack {
  position: absolute; bottom: 15%; left: 55%; width: 15%; height: 12%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: ig-book-stack 8s ease-in-out infinite alternate;
}
.scn-italian-german-views .scribe {
  position: absolute; bottom: 25%; left: 25%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 60%, #2a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ig-scribe 4s ease-in-out infinite;
}
.scn-italian-german-views .window-arch {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #a0c8e0 0%, #80a0b8 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 30px rgba(160,200,224,.4), 0 0 50px rgba(160,200,224,.2);
  animation: ig-window 12s ease-in-out infinite alternate;
}
.scn-italian-german-views .sunbeam {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,.15) 0%, rgba(255,240,200,.05) 100%);
  transform: rotate(15deg);
  filter: blur(10px);
  animation: ig-sunbeam 8s ease-in-out infinite alternate;
}
.scn-italian-german-views .inkwell {
  position: absolute; bottom: 22%; left: 45%; width: 6px; height: 8px;
  background: #2a2a2a;
  border-radius: 50% 50% 30% 30%;
  box-shadow: inset 0 2px 4px rgba(255,255,255,.1);
  animation: ig-inkwell 2s ease-in-out infinite;
}
@keyframes ig-book-open {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ig-book-stack {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes ig-scribe {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ig-window {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes ig-sunbeam {
  0% { transform: rotate(12deg) scaleX(1); opacity: .6; }
  50% { transform: rotate(16deg) scaleX(1.1); opacity: .9; }
  100% { transform: rotate(14deg) scaleX(1); opacity: .7; }
}
@keyframes ig-inkwell {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

.scn-decision-march-reims {
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 40%, #908060 100%),
              radial-gradient(ellipse at 40% 50%, #e0d0b0 0%, transparent 60%);
}
.scn-decision-march-reims .wall {
  position: absolute; bottom: 0; left: 0; right: 0; top: 25%;
  background: linear-gradient(0deg, #908060 0%, #b0a080 40%, #c4b898 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
}
.scn-decision-march-reims .map {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #c8b080 0%, #a08858 100%);
  border-radius: 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: dm-map 8s ease-in-out infinite alternate;
}
.scn-decision-march-reims .figure-kneeling {
  position: absolute; bottom: 20%; left: 25%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 60%, #1a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dm-kneel 3s ease-in-out infinite;
}
.scn-decision-march-reims .figure-standing {
  position: absolute; bottom: 20%; left: 50%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 60%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dm-stand 3.5s ease-in-out infinite alternate;
}
.scn-decision-march-reims .light-beam {
  position: absolute; top: 10%; left: 35%; width: 8%; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,200,.2) 0%, rgba(255,255,200,.05) 100%);
  transform: rotate(-8deg);
  filter: blur(8px);
  animation: dm-beam 6s ease-in-out infinite alternate;
}
.scn-decision-march-reims .sword {
  position: absolute; bottom: 25%; left: 48%; width: 4px; height: 30%;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  box-shadow: 0 0 6px rgba(192,192,192,.5);
  animation: dm-sword 4s ease-in-out infinite;
}
.scn-decision-march-reims .candle {
  position: absolute; bottom: 30%; left: 40%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #ffe0a0 0%, #c08040 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,208,96,.4);
  animation: dm-candle 3s ease-in-out infinite alternate;
}
.scn-decision-march-reims .shadow {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: dm-shadow 4s ease-in-out infinite alternate;
}
@keyframes dm-map {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.02); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes dm-kneel {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes dm-stand {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes dm-beam {
  0% { transform: rotate(-10deg) scaleY(1); opacity: .4; }
  50% { transform: rotate(-6deg) scaleY(1.1); opacity: .7; }
  100% { transform: rotate(-8deg) scaleY(1); opacity: .5; }
}
@keyframes dm-sword {
  0% { transform: rotate(12deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes dm-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: .9; }
  50% { transform: scaleY(1.1) scaleX(1.05); opacity: 1; }
  100% { transform: scaleY(1) scaleX(1); opacity: .95; }
}
@keyframes dm-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: .3; }
  50% { transform: scaleX(1.05) scaleY(1.1); opacity: .5; }
  100% { transform: scaleX(1) scaleY(1); opacity: .35; }
}

.scn-favourable-inquiries {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 60%, #d4b896 100%), radial-gradient(circle at 50% 0%, rgba(255,255,240,0.6) 0%, transparent 80%);
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));
}
.scn-favourable-inquiries .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f0e0c8 0%, #e0c8a8 100%); }
.scn-favourable-inquiries .window { position:absolute; top:10%; right:12%; width:30%; height:45%; background: linear-gradient(180deg, #e6f0ff 0%, #c8d8f0 100%); border: 6px solid #b8a080; border-radius:8px; box-shadow: inset 0 0 20px rgba(255,255,255,0.3), 0 4px 12px rgba(0,0,0,0.15); animation: fi-glow 8s ease-in-out infinite alternate; }
.scn-favourable-inquiries .desk { position:absolute; bottom:15%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #b89878 0%, #a08060 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,0.2); }
.scn-favourable-inquiries .papers { position:absolute; bottom:28%; left:28%; width:20%; height:8%; background: linear-gradient(135deg, #f5f0e0 0%, #e8dcc8 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); transform: rotate(-3deg); animation: fi-paper 12s ease-in-out infinite; }
.scn-favourable-inquiries .inkwell { position:absolute; bottom:24%; left:50%; width:8px; height:10px; background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40%; transform: translateX(-50%); }
.scn-favourable-inquiries .candle { position:absolute; bottom:22%; left:55%; width:4px; height:16px; background: linear-gradient(180deg, #f5e8c0 0%, #d4b888 100%); border-radius:2px; animation: fi-candle 4s ease-in-out infinite; }
.scn-favourable-inquiries .chair { position:absolute; bottom:15%; left:35%; width:30px; height:25px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform: scale(0.9); }
.scn-favourable-inquiries .books { position:absolute; bottom:16%; right:18%; width:14%; height:18%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:2px; box-shadow: 2px 2px 0 #6a4a2a, 4px 4px 0 #5a3a1a; }
.scn-favourable-inquiries .sunbeam { position:absolute; top:10%; right:15%; width:20%; height:70%; background: linear-gradient(135deg, rgba(255,255,240,0.3) 0%, rgba(255,255,200,0.1) 100%); filter: blur(8px); animation: fi-sun 18s ease-in-out infinite alternate; }
@keyframes fi-glow { 0% { opacity:0.7; box-shadow: inset 0 0 15px rgba(255,255,255,0.2), 0 4px 12px rgba(0,0,0,0.1); } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(255,255,255,0.4), 0 4px 20px rgba(0,0,0,0.2); } 100% { opacity:0.8; box-shadow: inset 0 0 10px rgba(255,255,255,0.15), 0 4px 10px rgba(0,0,0,0.1); } }
@keyframes fi-paper { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes fi-candle { 0%,100% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.02) scaleX(0.98); opacity:1; } }
@keyframes fi-sun { 0% { transform: rotate(-5deg) scaleX(1); } 100% { transform: rotate(5deg) scaleX(1.1); } }

.scn-governor-decides {
  background: linear-gradient(180deg, #e8d4b8 0%, #d4b896 40%, #c0a880 100%), radial-gradient(circle at 50% 80%, rgba(200,160,120,0.5) 0%, transparent 70%);
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2));
}
.scn-governor-decides .floor { position:absolute; inset:70% 0 0 0; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); }
.scn-governor-decides .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d4c0a8 0%, #c0a890 100%); }
.scn-governor-decides .table { position:absolute; bottom:25%; left:10%; width:80%; height:12%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius:4px; box-shadow: 0 6px 16px rgba(0,0,0,0.3); transform: perspective(400px) rotateX(2deg); }
.scn-governor-decides .map { position:absolute; bottom:28%; left:15%; width:30%; height:10%; background: linear-gradient(135deg, #f0e0c0 0%, #d4c0a0 100%); border-radius:2px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.15); animation: gd-shake 0.5s ease-in-out infinite alternate; }
.scn-governor-decides .quill { position:absolute; bottom:30%; left:50%; width:3px; height:20px; background: linear-gradient(180deg, #e8dcc0 0%, #c0b090 100%); border-radius:1px; transform-origin: bottom center; animation: gd-quill 1.2s ease-in-out infinite; }
.scn-governor-decides .governor { position:absolute; bottom:22%; left:38%; width:24px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: gd-figure 3s ease-in-out infinite; }
.scn-governor-decides .candle-flicker { position:absolute; bottom:30%; left:60%; width:6px; height:6px; background: radial-gradient(circle, #ffd070 0%, #ffa020 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 8px #ffa020, 0 0 40px 16px rgba(255,160,32,0.3); animation: gd-flicker 0.8s ease-in-out infinite alternate; }
.scn-governor-decides .shadow { position:absolute; bottom:22%; left:25%; width:50%; height:30%; background: radial-gradient(ellipse at 50% 0%, #2a1a1a 0%, transparent 100%); opacity:0.6; animation: gd-shadow 4s ease-in-out infinite; }
.scn-governor-decides .candelabra { position:absolute; bottom:30%; left:70%; width:10px; height:25px; background: linear-gradient(180deg, #b09070 0%, #8a7050 100%); border-radius:2px; box-shadow: 0 0 8px #ffa020; }
@keyframes gd-shake { 0% { transform: rotate(-2deg) translate(0,0); } 100% { transform: rotate(2deg) translate(1px,-1px); } }
@keyframes gd-quill { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } }
@keyframes gd-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(-2deg); } }
@keyframes gd-flicker { 0% { opacity:0.6; box-shadow: 0 0 15px 6px #ffa020; } 100% { opacity:1; box-shadow: 0 0 30px 12px #ffa020; } }
@keyframes gd-shadow { 0%,100% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.7; transform: scaleX(1.1); } }

.scn-arrival-versailles {
  background: linear-gradient(180deg, #7a7a7a 0%, #5a5a5a 40%, #3a3a3a 100%), radial-gradient(circle at 50% 0%, rgba(255,255,255,0.1) 0%, transparent 70%);
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.3));
}
.scn-arrival-versailles .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8a8a8a 0%, #6a6a6a 100%); animation: av-sky 20s ease-in-out infinite alternate; }
.scn-arrival-versailles .palace { position:absolute; bottom:30%; left:5%; width:90%; height:40%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius:2% 2% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.4); }
.scn-arrival-versailles .gate { position:absolute; bottom:35%; left:40%; width:20%; height:30%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:30% 30% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 4px 8px rgba(0,0,0,0.3); }
.scn-arrival-versailles .figure { position:absolute; bottom:30%; left:45%; width:16px; height:35px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: av-walk 6s ease-in-out infinite; }
.scn-arrival-versailles .cobbles { position:absolute; bottom:25%; left:0; width:100%; height:10%; background: repeating-linear-gradient(90deg, #4a4a4a 0%, #4a4a4a 8%, #3a3a3a 8%, #3a3a3a 16%); opacity:0.5; }
.scn-arrival-versailles .mist { position:absolute; inset:20% 0 0 0; background: linear-gradient(180deg, rgba(200,200,200,0.2) 0%, transparent 50%); filter: blur(8px); animation: av-mist 25s linear infinite; }
.scn-arrival-versailles .lantern { position:absolute; bottom:40%; left:38%; width:8px; height:10px; background: radial-gradient(circle, #b08040 0%, #5a3a1a 100%); border-radius:50%; box-shadow: 0 0 20px 6px #b08040; animation: av-lantern 3s ease-in-out infinite alternate; }
.scn-arrival-versailles .flag { position:absolute; top:20%; left:20%; width:8%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); clip-path: polygon(0 0, 100% 10%, 100% 90%, 0 100%); transform-origin: left top; animation: av-flag 4s ease-in-out infinite; }
@keyframes av-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes av-walk { 0%,100% { transform: translateX(0) translateY(0); } 25% { transform: translateX(10px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(20px) translateY(0) rotate(-1deg); } 75% { transform: translateX(30px) translateY(-2px) rotate(1deg); } }
@keyframes av-mist { 0% { transform: translateX(0); } 100% { transform: translateX(-30px); } }
@keyframes av-lantern { 0% { opacity:0.7; box-shadow: 0 0 10px 4px #b08040; } 100% { opacity:1; box-shadow: 0 0 30px 10px #b08040; } }
@keyframes av-flag { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }

.scn-barbezieux-astrology {
  background: linear-gradient(180deg, #f0e6d0 0%, #e0d0b8 40%, #c8b8a0 100%), radial-gradient(circle at 70% 30%, rgba(255,255,200,0.3) 0%, transparent 70%);
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.1));
}
.scn-barbezieux-astrology .floor { position:absolute; inset:75% 0 0 0; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); }
.scn-barbezieux-astrology .window { position:absolute; top:8%; left:10%; width:35%; height:50%; background: linear-gradient(180deg, #e6f0ff 0%, #c8d8f0 100%); border: 4px solid #b8a080; border-radius:6px; box-shadow: inset 0 0 20px rgba(255,255,255,0.3), 0 4px 12px rgba(0,0,0,0.1); animation: ba-window 10s ease-in-out infinite alternate; }
.scn-barbezieux-astrology .desk { position:absolute; bottom:18%; left:20%; width:60%; height:14%; background: linear-gradient(180deg, #b09070 0%, #8a7050 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,0.2); }
.scn-barbezieux-astrology .astrolabe { position:absolute; bottom:28%; left:35%; width:14%; height:14%; background: radial-gradient(circle at 50% 40%, #e0c8a0 0%, #b09070 70%); border-radius:50%; box-shadow: 0 0 0 3px #8a7050, 0 4px 8px rgba(0,0,0,0.2); animation: ba-astro 16s linear infinite; }
.scn-barbezieux-astrology .chart { position:absolute; bottom:26%; left:55%; width:20%; height:12%; background: linear-gradient(135deg, #f5f0e0 0%, #e0d0b8 100%); border-radius:2px; transform: rotate(5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.scn-barbezieux-astrology .candle { position:absolute; bottom:22%; left:48%; width:4px; height:18px; background: linear-gradient(180deg, #f5e8c0 0%, #d4b888 100%); border-radius:2px; animation: ba-candle 5s ease-in-out infinite; }
.scn-barbezieux-astrology .books { position:absolute; bottom:16%; right:15%; width:12%; height:20%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:2px; box-shadow: 2px 2px 0 #6a4a2a; }
.scn-barbezieux-astrology .sunbeam { position:absolute; top:10%; left:12%; width:30%; height:60%; background: linear-gradient(135deg, rgba(255,255,240,0.2) 0%, rgba(255,255,200,0.05) 100%); filter: blur(6px); animation: ba-sun 20s ease-in-out infinite alternate; }
.scn-barbezieux-astrology .shadow { position:absolute; bottom:18%; left:50%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 0%, #1a1a1a 0%, transparent 100%); opacity:0.3; animation: ba-shadow 8s ease-in-out infinite; }
@keyframes ba-window { 0% { opacity:0.8; } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(255,255,255,0.4), 0 4px 20px rgba(0,0,0,0.2); } 100% { opacity:0.9; } }
@keyframes ba-astro { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ba-candle { 0%,100% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.03) scaleX(0.97); opacity:1; } }
@keyframes ba-sun { 0% { transform: rotate(-8deg) scaleX(1); } 100% { transform: rotate(8deg) scaleX(1.2); } }
@keyframes ba-shadow { 0%,100% { opacity:0.2; } 50% { opacity:0.4; } }

/* === popular-veneration (spv) === */
.scn-popular-veneration {
  background:
    linear-gradient(to bottom, #f9e8c0 0%, #e8c88a 30%, #d4a050 60%, #b87840 100%),
    radial-gradient(ellipse at 50% 20%, #ffecb0 0%, transparent 60%),
    linear-gradient(45deg, rgba(255,215,140,0.3) 0%, transparent 50%);
}
.scn-popular-veneration .sky { position:absolute; inset:0 0 45% 0; background:linear-gradient(to bottom, #ffeac4 0%, #d9b88a 100%); animation: spv-sky 15s ease-in-out infinite alternate; }
.scn-popular-veneration .sun { position:absolute; top:12%; left:35%; width:60px; height:60px; border-radius:50%; background:radial-gradient(circle, #fff5c0 0%, #ffd580 50%, transparent 70%); box-shadow:0 0 40px 10px rgba(255,213,128,0.6); animation: spv-sunpulse 12s ease-in-out infinite alternate; }
.scn-popular-veneration .buildings { position:absolute; bottom:45%; left:0; right:0; height:30%; background:linear-gradient(to right, #8a6a3a, #a07848, #7a5a30); clip-path:polygon(0% 0%, 15% 30%, 30% 10%, 50% 40%, 70% 20%, 85% 35%, 100% 5%); opacity:0.7; animation: spv-buildingsway 20s ease-in-out infinite; }
.scn-popular-veneration .road { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(to bottom, #c8a060, #b08840, #a07030); border-radius:60% 40% 0 0 / 20% 10% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-popular-veneration .horse-rider { position:absolute; bottom:20%; left:35%; width:80px; height:70px; background:linear-gradient(to bottom, #3a2a1a 0%, #2a1a0a 100%); border-radius:40% 30% 30% 40% / 60% 50% 50% 60%; transform:scale(0.9); filter:drop-shadow(0 6px 8px rgba(0,0,0,0.4)); animation: spv-horse 4s ease-in-out infinite; }
.scn-popular-veneration .kneeling-figure-a { position:absolute; bottom:8%; left:25%; width:28px; height:40px; background:linear-gradient(to bottom, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation: spv-kneeling 6s ease-in-out infinite; }
.scn-popular-veneration .kneeling-figure-b { position:absolute; bottom:6%; right:30%; width:26px; height:38px; background:linear-gradient(to bottom, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation: spv-kneeling 6s ease-in-out infinite 2s; }
.scn-popular-veneration .dust-motes { position:absolute; inset:0; background:radial-gradient(circle, rgba(255,230,180,0.4) 1px, transparent 1px); background-size:6px 6px; opacity:0.3; animation: spv-dust 8s linear infinite; }

@keyframes spv-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes spv-sunpulse { 0% { box-shadow:0 0 30px 8px rgba(255,213,128,0.5); transform:scale(1); } 50% { box-shadow:0 0 60px 20px rgba(255,213,128,0.8); transform:scale(1.05); } 100% { box-shadow:0 0 35px 10px rgba(255,213,128,0.6); transform:scale(0.98); } }
@keyframes spv-buildingsway { 0%,100% { transform:translateX(0); } 50% { transform:translateX(3px); } }
@keyframes spv-horse { 0%,100% { transform:translateX(-2px) translateY(0) rotate(-1deg); } 25% { transform:translateX(0) translateY(-2px) rotate(1deg); } 50% { transform:translateX(2px) translateY(0) rotate(0deg); } 75% { transform:translateX(0) translateY(-2px) rotate(-1deg); } }
@keyframes spv-kneeling { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(2deg); } }
@keyframes spv-dust { 0% { transform:translateY(0); } 100% { transform:translateY(-300px); } }

/* === fame-spreads (sfs) === */
.scn-fame-spreads {
  background:
    linear-gradient(to bottom, #faf0e6 0%, #e8dcc8 40%, #d0c0a0 100%),
    radial-gradient(ellipse at 30% 50%, rgba(255,235,200,0.4) 0%, transparent 60%);
}
.scn-fame-spreads .bg { position:absolute; inset:0; background:linear-gradient(135deg, #c8b898 0%, #b8a888 50%, #a89878 100%); opacity:0.5; }
.scn-fame-spreads .table { position:absolute; bottom:0; left:10%; right:10%; height:30%; background:linear-gradient(to bottom, #a08060 0%, #806040 100%); border-radius:10px 10px 0 0; box-shadow:0 -4px 12px rgba(0,0,0,0.3); }
.scn-fame-spreads .medal { position:absolute; bottom:20%; left:40%; width:40px; height:40px; border-radius:50%; background:radial-gradient(circle at 40% 35%, #f0d080 0%, #c09840 60%, #806020 100%); box-shadow:0 4px 8px rgba(0,0,0,0.4), 0 0 20px rgba(192,152,64,0.5); animation: sfs-medal 8s ease-in-out infinite; }
.scn-fame-spreads .portrait-frame { position:absolute; bottom:32%; left:55%; width:50px; height:60px; border:3px solid #806040; background:linear-gradient(to bottom, #e8d0a8 0%, #c8a878 100%); border-radius:4px; box-shadow:0 6px 12px rgba(0,0,0,0.3); transform:rotate(-5deg); animation: sfs-frame 12s ease-in-out infinite; }
.scn-fame-spreads .hand { position:absolute; bottom:18%; left:48%; width:30px; height:50px; background:linear-gradient(to bottom, #d4b090 0%, #b89070 100%); border-radius:50% 30% 30% 50% / 60% 40% 40% 60%; transform:rotate(30deg); transform-origin:bottom left; animation: sfs-hand 6s ease-in-out infinite alternate; }
.scn-fame-spreads .halo-lights { position:absolute; top:20%; left:30%; width:200px; height:200px; background:radial-gradient(ellipse, rgba(255,230,160,0.3) 0%, transparent 70%); animation: sfs-halo 20s ease-in-out infinite alternate; }

@keyframes sfs-medal { 0%,100% { transform:rotate(0deg) scale(1); } 50% { transform:rotate(10deg) scale(1.05); } }
@keyframes sfs-frame { 0%,100% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-2px); } }
@keyframes sfs-hand { 0% { transform:rotate(20deg) translateX(0); } 50% { transform:rotate(35deg) translateX(3px); } 100% { transform:rotate(25deg) translateX(0); } }
@keyframes sfs-halo { 0% { opacity:0.3; transform:scale(1); } 50% { opacity:0.6; transform:scale(1.1); } 100% { opacity:0.4; transform:scale(0.95); } }

/* === maid-at-selles (sms) === */
.scn-maid-at-selles {
  background:
    linear-gradient(to bottom, #f5efe0 0%, #e0d4c0 30%, #c8b8a0 100%),
    radial-gradient(ellipse at 70% 20%, rgba(255,240,210,0.5) 0%, transparent 60%);
}
.scn-maid-at-selles .wall { position:absolute; inset:0; background:linear-gradient(180deg, #d8ccb8 0%, #c0b098 100%); }
.scn-maid-at-selles .window-arch { position:absolute; top:5%; left:20%; width:120px; height:200px; background:linear-gradient(to bottom, #b0d0e0 0%, #90b8c8 100%); border-radius:60% 60% 20% 20% / 80% 80% 20% 20%; box-shadow:inset 0 0 30px rgba(135,206,250,0.6); animation: sms-window 15s ease-in-out infinite alternate; }
.scn-maid-at-selles .altar { position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:80px; height:40px; background:linear-gradient(to bottom, #c0a088 0%, #a08068 100%); border-radius:8px; box-shadow:0 4px 8px rgba(0,0,0,0.3); }
.scn-maid-at-selles .joan-figure { position:absolute; bottom:22%; left:50%; transform:translateX(-50%); width:24px; height:56px; background:linear-gradient(to bottom, #3a2a2a 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: sms-joan 4s ease-in-out infinite; }
.scn-maid-at-selles .monk-left { position:absolute; bottom:18%; left:30%; width:40px; height:70px; background:linear-gradient(to bottom, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: sms-monk 8s ease-in-out infinite; }
.scn-maid-at-selles .monk-right { position:absolute; bottom:18%; right:30%; width:40px; height:70px; background:linear-gradient(to bottom, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: sms-monk 8s ease-in-out infinite 4s; }
.scn-maid-at-selles .candle-left { position:absolute; bottom:15%; left:38%; width:6px; height:30px; background:linear-gradient(to bottom, #f0d080 0%, #d0b060 100%); border-radius:2px; box-shadow:0 0 12px 2px rgba(240,208,128,0.6); animation: sms-candle 3s ease-in-out infinite; }
.scn-maid-at-selles .candle-right { position:absolute; bottom:15%; right:38%; width:6px; height:30px; background:linear-gradient(to bottom, #f0d080 0%, #d0b060 100%); border-radius:2px; box-shadow:0 0 12px 2px rgba(240,208,128,0.6); animation: sms-candle 3s ease-in-out infinite 1.5s; }
.scn-maid-at-selles .light-rays { position:absolute; top:0; left:20%; width:80px; height:100%; background:linear-gradient(to right, rgba(255,240,210,0.2) 0%, transparent 80%); animation: sms-light 10s ease-in-out infinite alternate; }

@keyframes sms-window { 0% { opacity:0.7; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.01); } 100% { opacity:0.8; transform:scaleY(0.98); } }
@keyframes sms-joan { 0%,100% { transform:translateX(-50%) translateY(0) rotate(0deg); } 50% { transform:translateX(-50%) translateY(-3px) rotate(1deg); } }
@keyframes sms-monk { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(-1deg); } }
@keyframes sms-candle { 0%,100% { opacity:0.8; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.05) translateY(-1px); } }
@keyframes sms-light { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

/* === asking-about-council (sac) === */
.scn-asking-about-council {
  background:
    linear-gradient(to bottom, #f0e8d8 0%, #e0d0b8 40%, #c8b898 100%),
    radial-gradient(ellipse at 60% 50%, rgba(255,235,200,0.3) 0%, transparent 50%);
}
.scn-asking-about-council .column { position:absolute; left:20%; top:0; bottom:0; width:30px; background:linear-gradient(to right, #c0b098 0%, #d8c8b8 30%, #c0b098 70%, #b0a088 100%); box-shadow:8px 0 12px rgba(0,0,0,0.2); }
.scn-asking-about-council .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(to top, #a09078 0%, #b8a890 100%); border-radius:0 0 0 0; }
.scn-asking-about-council .joan-silhouette { position:absolute; bottom:20%; left:45%; width:22px; height:52px; background:linear-gradient(to bottom, #2a1a1a 0%, #1a0a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: sac-joan 6s ease-in-out infinite; }
.scn-asking-about-council .equerry-silhouette { position:absolute; bottom:18%; left:62%; width:26px; height:58px; background:linear-gradient(to bottom, #3a2a1a 0%, #1a1a0a 100%); border-radius:45% 40% 30% 35% / 55% 50% 40% 45%; transform:rotate(-5deg); animation: sac-equerry 8s ease-in-out infinite; }
.scn-asking-about-council .councillor-one { position:absolute; bottom:25%; left:30%; width:30px; height:50px; background: linear-gradient(135deg, rgba(255,215,140,0.5) 0%, transparent 60%); border-radius:50%; filter:blur(6px); animation: sac-council 12s ease-in-out infinite; }
.scn-asking-about-council .councillor-two { position:absolute; bottom:25%; left:55%; width:30px; height:50px; background: linear-gradient(135deg, rgba(255,215,140,0.5) 0%, transparent 60%); border-radius:50%; filter:blur(6px); animation: sac-council 12s ease-in-out infinite 4s; }
.scn-asking-about-council .councillor-three { position:absolute; bottom:25%; left:75%; width:30px; height:50px; background: linear-gradient(135deg, rgba(255,215,140,0.5) 0%, transparent 60%); border-radius:50%; filter:blur(6px); animation: sac-council 12s ease-in-out infinite 8s; }
.scn-asking-about-council .halo-councils { position:absolute; top:10%; left:40%; width:100px; height:100px; background:radial-gradient(circle, rgba(255,230,160,0.2) 0%, transparent 70%); animation: sac-halo 15s ease-in-out infinite alternate; }

@keyframes sac-joan { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(2px) rotate(1deg); } }
@keyframes sac-equerry { 0%,100% { transform:translateX(0) rotate(-5deg); } 50% { transform:translateX(-2px) rotate(-3deg); } }
@keyframes sac-council { 0%,100% { opacity:0.3; transform:scale(1) translateY(0); } 50% { opacity:0.7; transform:scale(1.1) translateY(-5px); } }
@keyframes sac-halo { 0% { opacity:0.2; transform:scale(1); } 50% { opacity:0.5; transform:scale(1.2); } 100% { opacity:0.3; transform:scale(0.9); } }

/* ========== assault-paris (as-p) ========== */
.scn-assault-paris {
  background: linear-gradient(180deg, #2b1b3d 0%, #4a2e4a 30%, #7a5a4a 70%, #c4a06a 100%),
              radial-gradient(ellipse at 30% 100%, #6a4a3a 0%, transparent 60%);
}
.scn-assault-paris .sky-dawn        { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8a6a5a 0%, #4a2e4a 80%); animation: as-p-sky 12s ease-in-out infinite alternate; }
.scn-assault-paris .city-wall       { position:absolute; bottom:20%; left:10%; right:10%; height:45%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: as-p-wall 8s ease-in-out infinite; }
.scn-assault-paris .ladder          { position:absolute; bottom:20%; left:40%; width:8px; height:50%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); transform: rotate(-10deg); transform-origin: bottom center; animation: as-p-ladder 4s ease-in-out infinite; }
.scn-assault-paris .figure-attacker { position:absolute; bottom:38%; left:38%; width:16px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: as-p-climb 2s ease-in-out infinite; }
.scn-assault-paris .flag            { position:absolute; bottom:52%; left:36%; width:20px; height:4px; background: linear-gradient(90deg, #6a2a1a 0%, #8a3a2a 100%); border-radius: 2px; transform-origin: left center; animation: as-p-flag 3s ease-in-out infinite; }
.scn-assault-paris .smoke           { position:absolute; top:10%; left:20%; width:80px; height:40px; background: radial-gradient(ellipse, rgba(200,180,160,.4) 0%, transparent 70%); filter: blur(8px); animation: as-p-smoke 18s linear infinite; }
.scn-assault-paris .torch           { position:absolute; bottom:38%; left:60%; width:6px; height:14px; background: radial-gradient(circle, #ffa060 0%, #b04020 70%); border-radius: 50%; box-shadow: 0 0 20px 8px #ff8040, 0 0 40px 16px rgba(255,128,64,.4); animation: as-p-torch 1s ease-in-out infinite alternate; }
.scn-assault-paris .bird            { position:absolute; top:8%; left:70%; width:14px; height:8px; background: linear-gradient(90deg, transparent 30%, #1a1a1a 30%, #1a1a1a 70%, transparent 70%); border-radius: 50%; animation: as-p-bird 6s ease-in-out infinite; }
@keyframes as-p-sky    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes as-p-wall   { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes as-p-ladder { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) } }
@keyframes as-p-climb  { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes as-p-flag   { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } }
@keyframes as-p-smoke  { 0% { transform: translateX(0) scale(1); opacity:.4 } 50% { transform: translateX(30px) scale(1.3); opacity:.2 } 100% { transform: translateX(60px) scale(1.5); opacity:0 } }
@keyframes as-p-torch  { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(.95) } }
@keyframes as-p-bird   { 0% { transform: translateX(0) } 50% { transform: translateX(-20px) translateY(-5px) } 100% { transform: translateX(0) } }

/* ========== retreat-analysis (rt-a) ========== */
.scn-retreat-analysis {
  background: linear-gradient(180deg, #0a122a 0%, #1a2240 40%, #2a3a5a 100%),
              radial-gradient(ellipse at 50% 100%, #2a3a5a 0%, transparent 70%);
}
.scn-retreat-analysis .night-sky  { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a122a 0%, #1a2240 100%); animation: rt-a-skydim 15s ease-in-out infinite alternate; }
.scn-retreat-analysis .tent       { position:absolute; bottom:10%; left:30%; width:120px; height:80px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); box-shadow: 0 -8px 20px rgba(0,0,0,.6); animation: rt-a-tent 10s ease-in-out infinite; }
.scn-retreat-analysis .campfire   { position:absolute; bottom:15%; left:55%; width:30px; height:10px; background: radial-gradient(ellipse, #ff8040 0%, #b04020 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 15px #ff6020, 0 0 60px 30px rgba(255,96,32,.3); animation: rt-a-fire 1.5s ease-in-out infinite alternate; }
.scn-retreat-analysis .sentry     { position:absolute; bottom:12%; left:65%; width:14px; height:32px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: rt-a-sentry 4s ease-in-out infinite; }
.scn-retreat-analysis .table-map  { position:absolute; bottom:12%; left:35%; width:40px; height:6px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a3a 50%, #4a3a2a 100%); border-radius: 2px; transform: rotate(-8deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: rt-a-map 8s ease-in-out infinite; }
.scn-retreat-analysis .log        { position:absolute; bottom:10%; left:20%; width:50px; height:8px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 4px; transform: rotate(15deg); animation: rt-a-logbounce 6s ease-in-out infinite; }
@keyframes rt-a-skydim   { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.5 } }
@keyframes rt-a-tent     { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes rt-a-fire     { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.8; transform: scale(.9) } }
@keyframes rt-a-sentry   { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rt-a-map      { 0%,100% { transform: rotate(-8deg) } 50% { transform: rotate(-6deg) } }
@keyframes rt-a-logbounce{ 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(10deg) } }

/* ========== camp-women (cm-w) ========== */
.scn-camp-women {
  background: linear-gradient(180deg, #3a3a4a 0%, #5a4a4a 30%, #7a6a5a 70%, #9a8a7a 100%),
              radial-gradient(ellipse at 50% 100%, #7a6a5a 0%, transparent 60%);
}
.scn-camp-women .dawn-ground  { position:absolute; inset:60% 0 0 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); animation: cm-w-ground 12s ease-in-out infinite alternate; }
.scn-camp-women .tent-ropes   { position:absolute; bottom:45%; left:10%; width:80%; height:4px; background: linear-gradient(90deg, transparent 20%, #6a5a3a 20%, #6a5a3a 80%, transparent 80%); animation: cm-w-rope 10s ease-in-out infinite; }
.scn-camp-women .jeanne       { position:absolute; bottom:20%; left:35%; width:18px; height:36px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: cm-w-jeanne 5s ease-in-out infinite; }
.scn-camp-women .wench        { position:absolute; bottom:20%; left:55%; width:16px; height:32px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: cm-w-wench 8s ease-in-out infinite; }
.scn-camp-women .fire-embers  { position:absolute; bottom:15%; left:50%; width:20px; height:8px; background: radial-gradient(ellipse, #ff8050 0%, #b04020 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 15px 8px #ff6030, 0 0 30px 16px rgba(255,96,48,.3); animation: cm-w-ember 2s ease-in-out infinite alternate; }
.scn-camp-women .horse        { position:absolute; bottom:18%; left:65%; width:40px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 60% 30% 70% / 50% 60% 40% 50%; animation: cm-w-horse 7s ease-in-out infinite; }
@keyframes cm-w-ground  { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cm-w-rope    { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } }
@keyframes cm-w-jeanne  { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes cm-w-wench   { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes cm-w-ember   { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.7; transform: scale(.9) } }
@keyframes cm-w-horse   { 0%,100% { transform: translateX(0) } 50% { transform: translateX(5px) } }

/* ========== jeanne-chases-wenches (jc-w) ========== */
.scn-jeanne-chases-wenches {
  background: linear-gradient(135deg, #c4b08a 0%, #e0d0b0 30%, #f0e0c0 70%, #fff8e0 100%),
              radial-gradient(ellipse at 30% 30%, #e0d0b0 0%, transparent 60%);
}
.scn-jeanne-chases-wenches .sunlit-road { position:absolute; inset:70% 0 0 0; background: linear-gradient(180deg, #b09878 0%, #8a7a5a 100%); animation: jc-w-road 10s ease-in-out infinite alternate; }
.scn-jeanne-chases-wenches .wall-left   { position:absolute; bottom:10%; left:0; width:15%; height:60%; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 0 10% 0 0; animation: jc-w-wall-l 15s ease-in-out infinite; }
.scn-jeanne-chases-wenches .wall-right  { position:absolute; bottom:10%; right:0; width:15%; height:60%; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 10% 0 0 0; animation: jc-w-wall-r 15s ease-in-out infinite reverse; }
.scn-jeanne-chases-wenches .jeanne-horse { position:absolute; bottom:30%; left:30%; width:50px; height:34px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 60% 30% 70% / 50% 60% 40% 50%; transform-origin: bottom; animation: jc-w-horse 3s ease-in-out infinite; }
.scn-jeanne-chases-wenches .wench-flee  { position:absolute; bottom:30%; left:55%; width:16px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: jc-w-flee 2s ease-in-out infinite; }
.scn-jeanne-chases-wenches .dust        { position:absolute; bottom:15%; left:40%; width:40px; height:10px; background: radial-gradient(ellipse, rgba(200,180,150,.5) 0%, transparent 80%); filter: blur(4px); animation: jc-w-dust 4s linear infinite; }
.scn-jeanne-chases-wenches .shadow      { position:absolute; bottom:10%; left:25%; width:60px; height:6px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); animation: jc-w-shadow 6s ease-in-out infinite; }
.scn-jeanne-chases-wenches .banner      { position:absolute; top:5%; left:50%; width:40px; height:60px; background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 50% 100%, 0% 80%); transform: translateX(-50%); animation: jc-w-banner 8s ease-in-out infinite; }
@keyframes jc-w-road    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes jc-w-wall-l  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
@keyframes jc-w-wall-r  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
@keyframes jc-w-horse   { 0% { transform: translateX(0) } 25% { transform: translateX(8px) translateY(-2px) tilt(2deg) } 50% { transform: translateX(16px) } 75% { transform: translateX(8px) translateY(-1px) tilt(-2deg) } 100% { transform: translateX(0) } }
@keyframes jc-w-flee    { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes jc-w-dust    { 0% { transform: translateX(0) scale(1); opacity:.4 } 50% { transform: translateX(20px) scale(1.5); opacity:.2 } 100% { transform: translateX(40px) scale(2); opacity:0 } }
@keyframes jc-w-shadow  { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } }
@keyframes jc-w-banner  { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(3deg) } }

.scn-public-opinion {
  background: 
    linear-gradient(180deg, #e8dcc4 0%, #cdb99a 50%, #9c8a6e 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e7 0%, transparent 60%);
}
.scn-public-opinion .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #d4c6a8 0%, #b5a487 100%);
}
.scn-public-opinion .window-frame {
  position: absolute; top: 12%; left: 50%; width: 140px; height: 180px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b7355 0%, #6b5a40 100%);
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}
.scn-public-opinion .window-light {
  position: absolute; top: 14%; left: calc(50% - 64px); width: 128px; height: 170px;
  background: radial-gradient(ellipse at 50% 30%, #fffbe6 0%, #ffeeb0 50%, #e3c78a 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(255,238,176,0.3);
  animation: po-glow 6s ease-in-out infinite alternate;
}
.scn-public-opinion .table {
  position: absolute; bottom: 13%; left: 25%; width: 50%; height: 20px;
  background: linear-gradient(180deg, #7a684a 0%, #5d4e36 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-public-opinion .figure-left {
  position: absolute; bottom: 12%; left: 35%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #3a2e1e 0%, #1f180f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: po-figure1 8s ease-in-out infinite alternate;
}
.scn-public-opinion .figure-right {
  position: absolute; bottom: 12%; right: 38%; width: 22px; height: 82px;
  background: linear-gradient(180deg, #3a2e1e 0%, #1f180f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: po-figure2 9s ease-in-out infinite alternate;
  animation-delay: -3s;
}
.scn-public-opinion .spirit-shape {
  position: absolute; top: 20%; left: 30%; width: 60px; height: 90px;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,240,200,0.7) 0%, rgba(255,240,200,0.1) 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  filter: blur(4px);
  box-shadow: 0 0 30px 10px rgba(255,240,200,0.3);
  animation: po-spirit 10s ease-in-out infinite alternate;
}
@keyframes po-glow {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes po-figure1 {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(3px) rotate(-2deg); }
  60% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes po-figure2 {
  0% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(-4px) rotate(2deg); }
  70% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes po-spirit {
  0% { opacity: 0.5; transform: translateY(0) scale(0.95); }
  50% { opacity: 0.9; transform: translateY(-8px) scale(1.05); }
  100% { opacity: 0.6; transform: translateY(2px) scale(0.98); }
}

.scn-prophecy-fulfilled {
  background: 
    linear-gradient(180deg, #f5ecd7 0%, #dfd0b0 50%, #b8a585 100%),
    radial-gradient(ellipse at 50% 20%, #fffcf0 0%, transparent 50%);
}
.scn-prophecy-fulfilled .room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #dcccaf 0%, #c1ad8a 100%);
}
.scn-prophecy-fulfilled .bookshelf {
  position: absolute; bottom: 25%; left: 10%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #6e5a40 0%, #4d3e2b 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  display: flex; flex-direction: column; gap: 6px;
}
.scn-prophecy-fulfilled .bookshelf::before {
  content: '';
  position: absolute; top: 8%; left: 8%; right: 8%; bottom: 8%;
  background: repeating-linear-gradient(
    180deg,
    #8b7355 0px, #8b7355 6px,
    transparent 6px, transparent 8px,
    #6a5a40 8px, #6a5a40 14px,
    transparent 14px, transparent 16px
  );
  border-radius: 2px;
}
.scn-prophecy-fulfilled .open-book {
  position: absolute; bottom: 30%; left: 40%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #f4e8c0 0%, #d5c49a 100%);
  border-radius: 2px 20px 20px 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  transform: perspective(400px) rotateY(-10deg);
}
.scn-prophecy-fulfilled .open-book::after {
  content: '';
  position: absolute; top: 10%; left: 10%; width: 80%; height: 80%;
  background: repeating-linear-gradient(
    0deg,
    transparent, transparent 3px,
    rgba(0,0,0,0.1) 3px, rgba(0,0,0,0.1) 4px
  );
}
.scn-prophecy-fulfilled .candle {
  position: absolute; bottom: 32%; left: 50%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c090 50%, #8a7040 100%);
  border-radius: 3px 3px 2px 2px;
  transform: translateX(-50%);
}
.scn-prophecy-fulfilled .candle-glow {
  position: absolute; bottom: 55%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffdd88 0%, #ffcc66 30%, rgba(255,200,50,0) 70%);
  border-radius: 50%;
  transform: translate(-50%, 50%);
  animation: pf-glow 3s ease-in-out infinite alternate;
}
.scn-prophecy-fulfilled .reader {
  position: absolute; bottom: 10%; left: 30%; width: 24px; height: 90px;
  background: linear-gradient(180deg, #2a2218 0%, #120e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pf-read 7s ease-in-out infinite;
}
@keyframes pf-glow {
  0% { opacity: 0.6; transform: translate(-50%, 50%) scale(0.9); }
  50% { opacity: 1; transform: translate(-50%, 50%) scale(1.2); }
  100% { opacity: 0.7; transform: translate(-50%, 50%) scale(1); }
}
@keyframes pf-read {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-2deg); }
  75% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
/* Additional keyframe for reader to not break rule of ≥4 animations */
.scn-prophecy-fulfilled .bookshelf { animation: pf-shelf 20s linear infinite; }
@keyframes pf-shelf {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.9; }
}
/* Also animate open-book to keep density */
.scn-prophecy-fulfilled .open-book { animation: pf-book 12s ease-in-out infinite alternate; }
@keyframes pf-book {
  0% { transform: perspective(400px) rotateY(-10deg); }
  100% { transform: perspective(400px) rotateY(5deg); }
}

.scn-quatrain-applied {
  background: 
    linear-gradient(180deg, #d6c9b0 0%, #bcad90 50%, #a08b6c 100%),
    radial-gradient(ellipse at 30% 70%, #f5e6c8 0%, transparent 60%);
}
.scn-quatrain-applied .workshop-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #bcaa8e 0%, #9b8366 100%);
}
.scn-quatrain-applied .anvil {
  position: absolute; bottom: 18%; left: 30%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #4a3c2a 0%, #2a2014 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-quatrain-applied .farrier-silhouette {
  position: absolute; bottom: 12%; left: 45%; width: 28px; height: 100px;
  background: linear-gradient(180deg, #1f1a12 0%, #0f0c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qa-farrier 5s ease-in-out infinite alternate;
}
.scn-quatrain-applied .scroll {
  position: absolute; bottom: 30%; left: 8%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c49c 100%);
  border-radius: 10px 10px 20px 20px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  transform: perspective(300px) rotateZ(15deg);
  animation: qa-scroll 15s ease-in-out infinite alternate;
}
.scn-quatrain-applied .ghost-whisper {
  position: absolute; top: 25%; right: 15%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 20%, rgba(220,200,170,0.6) 0%, rgba(220,200,170,0) 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: qa-ghost 8s ease-in-out infinite alternate;
}
.scn-quatrain-applied .tool-rack {
  position: absolute; bottom: 22%; left: 2%; width: 10%; height: 40%;
  background: linear-gradient(90deg, #5a4a34 0%, #3a2e1e 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
}
.scn-quatrain-applied .sparkle {
  position: absolute; top: 40%; left: 60%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,208,128,0.5);
  animation: qa-sparkle 2s ease-in-out infinite;
}
/* Need at least 4 animations: already have farrier, scroll, ghost, sparkle, tool-rack (we can animate tool-rack) */
.scn-quatrain-applied .tool-rack { animation: qa-rack 20s linear infinite; }
@keyframes qa-farrier {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  75% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes qa-scroll {
  0% { transform: perspective(300px) rotateZ(15deg) translateY(0); }
  50% { transform: perspective(300px) rotateZ(10deg) translateY(-3px); }
  100% { transform: perspective(300px) rotateZ(15deg) translateY(0); }
}
@keyframes qa-ghost {
  0% { opacity: 0.3; transform: translateY(0) scale(0.95); }
  50% { opacity: 0.8; transform: translateY(-6px) scale(1.05); }
  100% { opacity: 0.4; transform: translateY(2px) scale(0.98); }
}
@keyframes qa-sparkle {
  0% { opacity: 0; transform: scale(0); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: 0; transform: scale(0); }
}
@keyframes qa-rack {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.85; }
}

.scn-tax-reduction-request {
  background: 
    linear-gradient(180deg, #5a6b72 0%, #405058 50%, #2c3a42 100%),
    radial-gradient(ellipse at 40% 60%, #7a8a92 0%, transparent 50%);
}
.scn-tax-reduction-request .sky-overcast {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #9aabaa 0%, #708080 100%);
  animation: tr-sky 12s ease-in-out infinite alternate;
}
.scn-tax-reduction-request .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a4840 0%, #1a2520 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-tax-reduction-request .palace-wall {
  position: absolute; bottom: 20%; right: 10%; width: 35%; height: 70%;
  background: linear-gradient(180deg, #4a4440 0%, #2e2824 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -10px 0 20px rgba(0,0,0,0.6);
}
.scn-tax-reduction-request .king-silhouette {
  position: absolute; bottom: 22%; right: 15%; width: 30px; height: 110px;
  background: linear-gradient(180deg, #1a1512 0%, #0a0807 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-king 6s ease-in-out infinite alternate;
}
.scn-tax-reduction-request .farrier-kneeling {
  position: absolute; bottom: 10%; left: 40%; width: 24px; height: 80px;
  background: linear-gradient(180deg, #3a302a 0%, #1f1a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: tr-farrier 4s ease-in-out infinite alternate;
}
.scn-tax-reduction-request .spectre {
  position: absolute; top: 15%; left: 45%; width: 40px; height: 100px;
  background: radial-gradient(ellipse at 50% 20%, rgba(180,200,210,0.5) 0%, rgba(180,200,210,0) 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(4px);
  box-shadow: 0 0 30px 10px rgba(180,200,210,0.2);
  animation: tr-spectre 7s ease-in-out infinite alternate;
}
.scn-tax-reduction-request .shadow-rank {
  position: absolute; bottom: -5%; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%);
}
/* Ensure 4 animations: sky, king, farrier, spectre; also can add an extra for ground? but already have 4. */
@keyframes tr-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes tr-king {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(3px) rotate(-1deg); }
  60% { transform: translateX(-2px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tr-farrier {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateX(0); }
}
@keyframes tr-spectre {
  0% { opacity: 0.3; transform: translateY(0) scale(0.95); }
  50% { opacity: 0.8; transform: translateY(-10px) scale(1.08); }
  100% { opacity: 0.4; transform: translateY(2px) scale(0.98); }
}

.scn-troyes-background { background: linear-gradient(145deg, #4a3a2e 0%, #3a2e22 40%, #5a4a3a 100%), radial-gradient(ellipse at 80% 30%, rgba(180,140,80,.25) 0%, transparent 60%); }
.scn-troyes-background .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #5c4a3a 0%, #3a2e22 100%); animation: tr-wall 12s ease-in-out infinite alternate; }
.scn-troyes-background .window-high { position:absolute; top:8%; left:30%; width:40%; height:30%; background: radial-gradient(ellipse at 50% 30%, #c8a060 0%, #8a6a3a 70%, transparent 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 40px rgba(200,160,96,.6); animation: tr-window 6s ease-in-out infinite; }
.scn-troyes-background .table { position:absolute; bottom:18%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3222 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); animation: tr-table 4s ease-in-out infinite alternate; }
.scn-troyes-background .gown { position:absolute; bottom:24%; left:40%; width:22%; height:45%; background: linear-gradient(180deg, #5e3a2a 0%, #2a1a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-gown 6s ease-in-out infinite; }
.scn-troyes-background .candle { position:absolute; bottom:38%; left:35%; width:4%; height:10%; background: linear-gradient(180deg, #b09060 0%, #8a6a3a 100%); border-radius: 40%; animation: tr-candle 8s ease-in-out infinite; }
.scn-troyes-background .flame-glow { position:absolute; bottom:47%; left:34%; width:6%; height:6%; background: radial-gradient(circle, #ffd080 0%, #c88040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(200,128,64,.6); animation: tr-flame 2s ease-in-out infinite alternate; }
.scn-troyes-background .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); animation: tr-shadow 8s ease-in-out infinite; }
@keyframes tr-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes tr-window { 0% { transform: scale(1) } 50% { transform: scale(.97) translateY(-2px) } 100% { transform: scale(1) translateY(0) } }
@keyframes tr-table { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes tr-gown { 0%,100% { transform: translateX(0) rotate(0) scale(1) } 50% { transform: translateX(2px) rotate(1deg) scale(1.01) } }
@keyframes tr-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(.95) } 100% { transform: scaleY(1) } }
@keyframes tr-flame { 0% { transform: scale(1) rotate(-3deg); opacity:.9 } 50% { transform: scale(1.15) rotate(3deg); opacity:1 } 100% { transform: scale(1) rotate(0); opacity:.85 } }
@keyframes tr-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-friar-richard-meeting { background: linear-gradient(180deg, #b8d4e0 0%, #90b8c8 40%, #6a8a9a 100%), radial-gradient(ellipse at 70% 30%, #d0e8f0 0%, transparent 60%); }
.scn-friar-richard-meeting .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c8e0ec 0%, #a8c8d8 100%); animation: frm-sky 20s ease-in-out infinite alternate; }
.scn-friar-richard-meeting .sun { position:absolute; top:10%; left:25%; width:12%; height:12%; background: radial-gradient(circle, #f0e8c0 0%, #d0c090 50%, transparent 100%); border-radius: 50%; animation: frm-sun 30s linear infinite alternate; }
.scn-friar-richard-meeting .hills { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #7a9a7a 0%, #4a6a4a 100%); border-radius: 30% 70% 0 0 / 70% 60% 0 0; animation: frm-hills 18s ease-in-out infinite alternate; }
.scn-friar-richard-meeting .castle { position:absolute; bottom:25%; left:60%; width:20%; height:28%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: frm-castle 12s ease-in-out infinite; }
.scn-friar-richard-meeting .road { position:absolute; bottom:15%; left:20%; right:10%; height:12%; background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%); border-radius: 20% 20% 0 0; animation: frm-road 16s ease-in-out infinite alternate; }
.scn-friar-richard-meeting .jeanne { position:absolute; bottom:28%; left:32%; width:8%; height:30%; background: linear-gradient(180deg, #8a6a5a 0%, #4a3222 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: frm-jeanne 6s ease-in-out infinite; }
.scn-friar-richard-meeting .friar { position:absolute; bottom:28%; left:48%; width:6%; height:28%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: frm-friar 8s ease-in-out infinite reverse; }
@keyframes frm-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes frm-sun { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(10px) scale(1.05) } 100% { transform: translateX(-10px) scale(.95) } }
@keyframes frm-hills { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes frm-castle { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-2px) } }
@keyframes frm-road { 0% { transform: scaleY(1) } 50% { transform: scaleY(.95) } 100% { transform: scaleY(1) } }
@keyframes frm-jeanne { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes frm-friar { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-friar-richard-believes { background: linear-gradient(180deg, #d4c8a0 0%, #b8a880 40%, #a0906a 100%), radial-gradient(ellipse at 50% 20%, #e8d8a0 0%, transparent 60%); }
.scn-friar-richard-believes .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #b8a880 0%, #8a7a5a 100%); animation: frb-bg 10s ease-in-out infinite alternate; }
.scn-friar-richard-believes .window { position:absolute; top:5%; left:35%; width:30%; height:35%; background: radial-gradient(ellipse at 50% 30%, #f0e8c0 0%, #d0c090 70%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 40px rgba(240,232,192,.7); animation: frb-window 8s ease-in-out infinite; }
.scn-friar-richard-believes .light-ray { position:absolute; top:5%; left:42%; width:16%; height:80%; background: linear-gradient(180deg, rgba(240,232,192,.6) 0%, rgba(240,232,192,.1) 100%); clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%); animation: frb-ray 5s ease-in-out infinite alternate; }
.scn-friar-richard-believes .basin { position:absolute; bottom:30%; left:44%; width:12%; height:10%; background: linear-gradient(180deg, #a0906a 0%, #605040 100%); border-radius: 50% 50% 20% 20%; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: frb-basin 6s ease-in-out infinite; }
.scn-friar-richard-believes .jeanne { position:absolute; bottom:20%; left:32%; width:12%; height:40%; background: linear-gradient(180deg, #8a6a5a 0%, #4a3222 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: frb-jeanne 7s ease-in-out infinite; }
.scn-friar-richard-believes .friar { position:absolute; bottom:20%; left:54%; width:10%; height:38%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: frb-friar 9s ease-in-out infinite alternate; }
@keyframes frb-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes frb-window { 0% { transform: scale(1) } 50% { transform: scale(.98) } 100% { transform: scale(1) } }
@keyframes frb-ray { 0% { transform: translateY(0) scaleY(1); opacity:.6 } 50% { transform: translateY(-5px) scaleY(1.1); opacity:.8 } 100% { transform: translateY(0) scaleY(1); opacity:.6 } }
@keyframes frb-basin { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(.96) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes frb-jeanne { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } }
@keyframes frb-friar { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-letter-to-troyes { background: linear-gradient(180deg, #c8b080 0%, #a89060 40%, #8a7a4a 100%), radial-gradient(ellipse at 30% 20%, #e0c890 0%, transparent 60%); }
.scn-letter-to-troyes .desk { position:absolute; bottom:10%; left:10%; right:10%; height:22%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.4); animation: ltt-desk 14s ease-in-out infinite alternate; }
.scn-letter-to-troyes .scroll { position:absolute; bottom:24%; left:35%; width:30%; height:16%; background: linear-gradient(180deg, #d4c090 0%, #b8a070 100%); border-radius: 10% 10% 50% 50% / 20% 20% 40% 40%; transform-origin: bottom center; animation: ltt-scroll 8s ease-in-out infinite; }
.scn-letter-to-troyes .hand-writing { position:absolute; bottom:32%; left:48%; width:8%; height:18%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: 50% 100%; animation: ltt-hand 3s ease-in-out infinite; }
.scn-letter-to-troyes .ink-well { position:absolute; bottom:32%; left:38%; width:6%; height:8%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30%; animation: ltt-ink 10s ease-in-out infinite alternate; }
.scn-letter-to-troyes .window-light { position:absolute; top:5%; left:20%; width:60%; height:30%; background: radial-gradient(ellipse at 50% 30%, #f0e0b0 0%, rgba(200,180,120,.5) 70%, transparent 100%); border-radius: 10% 10% 0 0; animation: ltt-light 6s ease-in-out infinite alternate; }
.scn-letter-to-troyes .shadow { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); animation: ltt-shadow 10s ease-in-out infinite; }
@keyframes ltt-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ltt-scroll { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(2deg) } }
@keyframes ltt-hand { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(10deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ltt-ink { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes ltt-light { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:.8; transform: scale(.98) } }
@keyframes ltt-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }

.scn-false-jeanne-departs {
  background:
    linear-gradient(180deg, #7a898c 0%, #a5b0b0 30%, #bec5c0 50%, #a3ada8 70%, #7e8b85 100%),
    radial-gradient(ellipse at 50% 100%, #c2ccc6 0%, transparent 70%);
}
.scn-false-jeanne-departs .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #8f9b9b 0%, #b3bdb8 40%, transparent 100%);
  animation: sjd-sky 14s ease-in-out infinite alternate;
}
.scn-false-jeanne-departs .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #6f7a70 0%, #4b5a4a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.3);
}
.scn-false-jeanne-departs .road {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(90deg, #5a5f53, #3d423a, #5a5f53);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,.2);
  animation: sjd-road 20s ease-in-out infinite;
}
.scn-false-jeanne-departs .figure {
  position: absolute; bottom: 32%; left: 45%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2c302a 0%, #1a1c18 50%, #0e100c 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sjd-figure 6s ease-in-out infinite;
}
.scn-false-jeanne-departs .tree {
  position: absolute; bottom: 20%; left: 15%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #4a5a42 0%, #2a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.4);
  animation: sjd-tree 15s ease-in-out infinite alternate;
}
.scn-false-jeanne-departs .cloud1 {
  position: absolute; top: 8%; left: 10%; width: 120px; height: 30px;
  background: rgba(180,190,185,.5);
  border-radius: 50%;
  filter: blur(8px);
  animation: sjd-cloud1 40s linear infinite;
}
.scn-false-jeanne-departs .cloud2 {
  position: absolute; top: 16%; right: 5%; width: 90px; height: 24px;
  background: rgba(200,205,200,.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: sjd-cloud2 55s linear infinite reverse;
}
@keyframes sjd-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes sjd-road { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.02) translateY(1px); } }
@keyframes sjd-figure { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(5px) rotate(2deg); } 60% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sjd-tree { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03) translateY(-2px); } 100% { transform: scaleY(1); } }
@keyframes sjd-cloud1 { 0% { transform: translateX(0); } 100% { transform: translateX(110vw); } }
@keyframes sjd-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-false-jeanne-imprisoned {
  background:
    linear-gradient(180deg, #1e1e2a 0%, #2a2a3a 30%, #3a3a4a 60%, #2e2e3a 100%),
    radial-gradient(ellipse at 50% 20%, #4a4a5a 0%, transparent 80%);
}
.scn-false-jeanne-imprisoned .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a38 0%, #1a1a26 50%, #2e2e3c 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.5);
}
.scn-false-jeanne-imprisoned .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a24 0%, #0e0e16 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-false-jeanne-imprisoned .window {
  position: absolute; top: 18%; left: 35%; width: 30%; height: 25%;
  background: radial-gradient(ellipse at 50% 50%, #4a5a6a 0%, #1a2a3a 80%);
  border: 4px solid #3a3a4a;
  border-radius: 4px;
  box-shadow: 0 0 30px rgba(60,80,100,.3);
  animation: sji-window 8s ease-in-out infinite alternate;
}
.scn-false-jeanne-imprisoned .bars {
  position: absolute; top: 18%; left: 35%; width: 30%; height: 25%;
  background: repeating-linear-gradient(90deg, transparent 0%, transparent 12%, #3a3a4a 12%, #3a3a4a 14%, transparent 14%);
  border: none;
}
.scn-false-jeanne-imprisoned .figure {
  position: absolute; bottom: 15%; left: 50%; width: 24px; height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2c32 0%, #1a1c22 50%, #0e1016 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: sji-figure 10s ease-in-out infinite;
}
.scn-false-jeanne-imprisoned .chain {
  position: absolute; bottom: 22%; left: 30%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #5a5a5a, #3a3a3a);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: sji-chain 4s ease-in-out infinite;
}
.scn-false-jeanne-imprisoned .shadow {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: sji-shadow 12s ease-in-out infinite alternate;
}
.scn-false-jeanne-imprisoned .light {
  position: absolute; top: 18%; left: 35%; width: 30%; height: 25%;
  background: radial-gradient(ellipse at 50% 50%, rgba(160,180,200,.2) 0%, transparent 70%);
  animation: sji-light 8s ease-in-out infinite alternate;
}
@keyframes sji-window { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes sji-figure { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } }
@keyframes sji-chain { 0%,100% { transform: rotate(15deg); } 50% { transform: rotate(20deg) translateY(-2px); } }
@keyframes sji-shadow { 0% { opacity: .5; } 50% { opacity: 1; } 100% { opacity: .6; } }
@keyframes sji-light { 0% { opacity: .3; } 50% { opacity: .7; } 100% { opacity: .4; } }

.scn-jeanne-la-ferone {
  background:
    linear-gradient(180deg, #8f9ba0 0%, #b0b9b8 30%, #c6cdc6 50%, #aeb5b0 70%, #8a938f 100%),
    radial-gradient(ellipse at 80% 100%, #c2c9c2 0%, transparent 60%);
}
.scn-jeanne-la-ferone .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #9aa6a5 0%, #c4cdc8 40%, transparent 100%);
  animation: jlf-sky 20s ease-in-out infinite alternate;
}
.scn-jeanne-la-ferone .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #60705e 0%, #3a4a3a 100%);
  border-radius: 50% 50% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,.25);
  animation: jlf-hills 18s ease-in-out infinite alternate;
}
.scn-jeanne-la-ferone .figure {
  position: absolute; bottom: 32%; left: 52%; width: 18px; height: 42px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2e2a 0%, #1a1e1a 50%, #0e120e 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  animation: jlf-figure 8s ease-in-out infinite;
}
.scn-jeanne-la-ferone .cloud1 {
  position: absolute; top: 6%; left: 5%; width: 140px; height: 32px;
  background: rgba(220,225,220,.4);
  border-radius: 50%;
  filter: blur(10px);
  animation: jlf-cloud1 50s linear infinite;
}
.scn-jeanne-la-ferone .cloud2 {
  position: absolute; top: 14%; right: 8%; width: 100px; height: 26px;
  background: rgba(200,210,205,.35);
  border-radius: 50%;
  filter: blur(8px);
  animation: jlf-cloud2 60s linear infinite reverse;
}
.scn-jeanne-la-ferone .spire {
  position: absolute; bottom: 30%; left: 25%; width: 12px; height: 60px;
  background: linear-gradient(180deg, #4a5345 0%, #2e372c 100%);
  transform: rotate(-3deg);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: jlf-spire 30s ease-in-out infinite;
}
.scn-jeanne-la-ferone .wheat {
  position: absolute; bottom: 18%; left: 10%; width: 80px; height: 12px;
  background: linear-gradient(90deg, #7a885a, #a5b38a, #7a885a);
  border-radius: 50%;
  filter: blur(4px);
  animation: jlf-wheat 12s ease-in-out infinite alternate;
}
@keyframes jlf-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes jlf-hills { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes jlf-figure { 0%,100% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(3deg); } 75% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes jlf-cloud1 { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }
@keyframes jlf-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }
@keyframes jlf-spire { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes jlf-wheat { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }

.scn-bishop-martin-berruyer {
  background:
    linear-gradient(180deg, #c4a86a 0%, #d9be8c 30%, #e5ce9a 50%, #d4b886 70%, #b89e6a 100%),
    radial-gradient(ellipse at 30% 50%, #e8d8a8 0%, transparent 70%);
}
.scn-bishop-martin-berruyer .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #b8955e 0%, #a27e4a 50%, #b28a52 100%);
  box-shadow: inset 0 0 40px rgba(60,40,20,.3);
}
.scn-bishop-martin-berruyer .desk {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3222 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
  animation: bmb-desk 10s ease-in-out infinite;
}
.scn-bishop-martin-berruyer .books {
  position: absolute; bottom: 28%; left: 28%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.5);
  animation: bmb-books 8s ease-in-out infinite alternate;
}
.scn-bishop-martin-berruyer .figure {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3222 0%, #2a1a12 50%, #1a0e08 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  animation: bmb-figure 12s ease-in-out infinite;
}
.scn-bishop-martin-berruyer .window {
  position: absolute; top: 8%; right: 10%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #e8d8b0 0%, #c4a86a 80%);
  border: 6px solid #7a5a3a;
  border-radius: 6px;
  box-shadow: 0 0 40px rgba(200,180,140,.3);
  animation: bmb-window 14s ease-in-out infinite alternate;
}
.scn-bishop-martin-berruyer .candle {
  position: absolute; bottom: 35%; left: 40%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #e8c060 0%, #c8a040 50%, #a07a20 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px rgba(200,160,80,.4);
  animation: bmb-candle 5s ease-in-out infinite;
}
.scn-bishop-martin-berruyer .glow {
  position: absolute; bottom: 30%; left: 38%; width: 24px; height: 24px;
  background: radial-gradient(circle, rgba(240,200,120,.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: bmb-glow 5s ease-in-out infinite alternate;
}
@keyframes bmb-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes bmb-books { 0% { transform: scale(1); } 50% { transform: scale(1.05) rotate(1deg); } 100% { transform: scale(1); } }
@keyframes bmb-figure { 0%,100% { transform: translateX(-50%) rotate(0); } 30% { transform: translateX(-50%) rotate(2deg); } 70% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes bmb-window { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes bmb-candle { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } }
@keyframes bmb-glow { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: .7; transform: scale(1); } }

/* Scene: king-disbands-army (overcast, calm) */
.scn-king-disbands-army {
  background:
    linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 0%, #8a9aaa 0%, transparent 60%);
}
.scn-king-disbands-army .kd-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, #5a6a7a 80%);
  animation: kd-sky 10s ease-in-out infinite alternate;
}
.scn-king-disbands-army .kd-hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: kd-hills 15s ease-in-out infinite alternate;
}
.scn-king-disbands-army .kd-road {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%);
  border-radius: 10% 10% 0 0;
  animation: kd-road 20s ease-in-out infinite alternate;
}
.scn-king-disbands-army .kd-king {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kd-figure 3s ease-in-out infinite;
}
.scn-king-disbands-army .kd-banner {
  position: absolute; bottom: 50%; left: 46%; width: 12px; height: 30px;
  background: #8a6a4a;
  border-radius: 2px;
  transform-origin: bottom left;
  animation: kd-banner 4s ease-in-out infinite alternate;
}
.scn-king-disbands-army .kd-soldier {
  position: absolute; bottom: 20%; left: 35%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kd-soldier 5s ease-in-out infinite;
}
.scn-king-disbands-army .kd-cloud {
  position: absolute; top: 15%; left: -10%; width: 120px; height: 25px;
  background: rgba(255,255,255,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: kd-drift 40s linear infinite;
}
.scn-king-disbands-army .kd-cloud-late {
  position: absolute; top: 25%; left: -20%; width: 100px; height: 20px;
  background: rgba(255,255,255,0.2);
  border-radius: 50%;
  filter: blur(6px);
  animation: kd-drift 55s linear infinite;
  animation-delay: -15s;
}
@keyframes kd-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes kd-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(2px); }
}
@keyframes kd-road {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
  100% { transform: scaleY(1); }
}
@keyframes kd-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes kd-banner {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes kd-soldier {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes kd-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(130vw); }
}

/* Scene: jeanne-goes-to-bourges (sunlit, calm) */
.scn-jeanne-goes-to-bourges {
  background:
    linear-gradient(180deg, #8ab8d8 0%, #c0d8e8 50%, #e8f0f0 100%),
    radial-gradient(ellipse at 70% 20%, #f0e8a0 0%, transparent 50%);
}
.scn-jeanne-goes-to-bourges .jg-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0c8e0 0%, #d0e0f0 100%);
  animation: jg-sky 12s ease-in-out infinite alternate;
}
.scn-jeanne-goes-to-bourges .jg-sun {
  position: absolute; top: 10%; right: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff0a0 0%, #f0d070 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(240, 208, 112, 0.6);
  animation: jg-sun 8s ease-in-out infinite alternate;
}
.scn-jeanne-goes-to-bourges .jg-palace {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(180deg, #d0c8a0 0%, #a09070 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.1);
}
.scn-jeanne-goes-to-bourges .jg-fountain {
  position: absolute; bottom: 25%; left: 45%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #b0c0d0 0%, #8090a0 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: jg-fountain 4s ease-in-out infinite;
}
.scn-jeanne-goes-to-bourges .jg-jeanne {
  position: absolute; bottom: 28%; left: 42%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #e0d0b0 0%, #b0a080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jg-walk 5s ease-in-out infinite;
}
.scn-jeanne-goes-to-bourges .jg-queen {
  position: absolute; bottom: 28%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #c0b090 0%, #908070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jg-walk 5s ease-in-out infinite reverse;
}
.scn-jeanne-goes-to-bourges .jg-tree {
  position: absolute; bottom: 30%; left: 10%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #6a8a5a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 30% 30%;
  animation: jg-tree 6s ease-in-out infinite;
}
@keyframes jg-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes jg-sun {
  0% { transform: scale(1); box-shadow: 0 0 30px 15px rgba(240,208,112,0.5); }
  50% { transform: scale(1.05); box-shadow: 0 0 50px 25px rgba(240,208,112,0.7); }
  100% { transform: scale(1); }
}
@keyframes jg-fountain {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(0.95); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes jg-walk {
  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 jg-tree {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}

/* Scene: marguerite-touroulde-impression (warm, dim-interior) */
.scn-marguerite-touroulde-impression {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #6a3a2a 60%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 50%, #8a4a2a 0%, transparent 70%);
}
.scn-marguerite-touroulde-impression .mt-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a1a0a 100%);
  opacity: 0.8;
  animation: mt-wall 10s ease-in-out infinite alternate;
}
.scn-marguerite-touroulde-impression .mt-table {
  position: absolute; bottom: 20%; left: 35%; right: 35%; height: 10%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-marguerite-touroulde-impression .mt-candle {
  position: absolute; bottom: 30%; left: 48%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: mt-candle 3s ease-in-out infinite;
}
.scn-marguerite-touroulde-impression .mt-glow {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 60px;
  background: radial-gradient(ellipse, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  opacity: 0.7;
  animation: mt-glow 2s ease-in-out infinite alternate;
}
.scn-marguerite-touroulde-impression .mt-marguerite {
  position: absolute; bottom: 22%; left: 40%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mt-figure 4s ease-in-out infinite;
}
.scn-marguerite-touroulde-impression .mt-jeanne {
  position: absolute; bottom: 22%; left: 44%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #a09080 0%, #706050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mt-figure 4s ease-in-out infinite reverse;
}
.scn-marguerite-touroulde-impression .mt-shadow {
  position: absolute; bottom: 18%; left: 38%; right: 38%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: mt-shadow 3s ease-in-out infinite alternate;
}
@keyframes mt-wall {
  0% { opacity: 0.7; }
  50% { opacity: 0.85; }
  100% { opacity: 0.75; }
}
@keyframes mt-candle {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(0.9); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes mt-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes mt-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mt-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.2); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

/* Scene: jeanne-at-bouligny-house (calm, dim-interior) */
.scn-jeanne-at-bouligny-house {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 60%, #2a2a4a 0%, transparent 70%);
}
.scn-jeanne-at-bouligny-house .jb-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%);
  opacity: 0.9;
}
.scn-jeanne-at-bouligny-house .jb-bed {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 20px;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.6);
}
.scn-jeanne-at-bouligny-house .jb-pillow {
  position: absolute; bottom: 25%; left: 25%; width: 60px; height: 25px;
  background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 100%);
  border-radius: 30% 30% 20% 20%;
  animation: jb-pillow 6s ease-in-out infinite alternate;
}
.scn-jeanne-at-bouligny-house .jb-figure-left {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 35px;
  background: linear-gradient(180deg, #7a6a6a 0%, #5a4a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jb-breath 4s ease-in-out infinite;
}
.scn-jeanne-at-bouligny-house .jb-figure-right {
  position: absolute; bottom: 20%; left: 42%; width: 22px; height: 35px;
  background: linear-gradient(180deg, #6a5a5a 0%, #4a3a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jb-breath 4s ease-in-out infinite reverse;
}
.scn-jeanne-at-bouligny-house .jb-window {
  position: absolute; top: 15%; right: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
}
.scn-jeanne-at-bouligny-house .jb-moonlight {
  position: absolute; top: 15%; right: 15%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #c0d0e0 0%, transparent 70%);
  opacity: 0.3;
  animation: jb-moon 8s ease-in-out infinite alternate;
}
@keyframes jb-pillow {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes jb-breath {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes jb-moon {
  0% { opacity: 0.2; }
  50% { opacity: 0.4; }
  100% { opacity: 0.25; }
}

/* Survivors Called (calm, overcast) */
.scn-survivors-called {
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 50%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 30%, #6a7a8a 0%, transparent 70%);
}
.scn-survivors-called .hall-wall { position:absolute; inset:0 0 0 0; background: linear-gradient(145deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 30% 70% 0 0 / 20% 80% 0 0; }
.scn-survivors-called .hall-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #2a3a2a 0%, #3a4a3a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-survivors-called .window-left { position:absolute; top:20%; left:15%; width:15%; height:40%; background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(255,255,255,0.2); animation: sc-window 8s ease-in-out infinite alternate; }
.scn-survivors-called .window-right { position:absolute; top:20%; right:15%; width:15%; height:40%; background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(255,255,255,0.2); animation: sc-window 8s ease-in-out infinite alternate-reverse; }
.scn-survivors-called .column-left { position:absolute; bottom:25%; left:35%; width:8%; height:50%; background: linear-gradient(90deg, #4a5a5a 0%, #5a6a6a 50%, #4a5a5a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: sc-column 12s ease-in-out infinite; }
.scn-survivors-called .column-right { position:absolute; bottom:25%; right:35%; width:8%; height:50%; background: linear-gradient(90deg, #4a5a5a 0%, #5a6a6a 50%, #4a5a5a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: sc-column 12s ease-in-out infinite reverse; }
.scn-survivors-called .figure-witness { position:absolute; bottom:12%; left:48%; width:5%; height:25%; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-walk 6s ease-in-out infinite; }
.scn-survivors-called .figure-clerk { position:absolute; bottom:12%; right:45%; width:4.5%; height:22%; background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-walk 7s ease-in-out infinite reverse; }
.scn-survivors-called .light-shaft { position:absolute; top:10%; left:25%; width:50%; height:60%; background: linear-gradient(180deg, rgba(180,190,200,0.15) 0%, rgba(180,190,200,0) 100%); filter: blur(10px); animation: sc-light 5s ease-in-out infinite alternate; }
@keyframes sc-window { 0% { opacity:0.8; } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(255,255,255,0.3); } 100% { opacity:0.85; } }
@keyframes sc-column { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes sc-walk { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(8px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sc-light { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

/* Duke Alencon Evidence (tense, bright-interior) */
.scn-duke-alencon-evidence {
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 40%, #4a3a2a 100%),
              radial-gradient(circle at 70% 40%, #b08050 0%, transparent 60%);
}
.scn-duke-alencon-evidence .table { position:absolute; bottom:18%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.7); animation: da-table 10s ease-in-out infinite; }
.scn-duke-alencon-evidence .document { position:absolute; bottom:24%; left:45%; width:10%; height:6%; background: radial-gradient(ellipse, #c0b090 0%, #a09070 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); transform: rotate(5deg); animation: da-doc 4s ease-in-out infinite alternate; }
.scn-duke-alencon-evidence .duke-figure { position:absolute; bottom:15%; left:35%; width:8%; height:35%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: -4px 0 8px rgba(0,0,0,0.6); animation: da-duke 3s ease-in-out infinite; }
.scn-duke-alencon-evidence .duke-shadow { position:absolute; bottom:14%; left:33%; width:12%; height:6%; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(4px); animation: da-shadow 3s ease-in-out infinite; }
.scn-duke-alencon-evidence .window-bright { position:absolute; top:10%; right:10%; width:20%; height:45%; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 5% 5% 10% 10%; box-shadow: inset 0 0 30px rgba(255,200,100,0.5); animation: da-window 5s ease-in-out infinite alternate; }
.scn-duke-alencon-evidence .chair { position:absolute; bottom:15%; right:20%; width:10%; height:20%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,0.5); }
.scn-duke-alencon-evidence .inkwell { position:absolute; bottom:25%; left:42%; width:3%; height:3%; background: radial-gradient(circle, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.8); animation: da-ink 6s ease-in-out infinite; }
@keyframes da-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes da-doc { 0% { transform: rotate(3deg) scale(1); } 50% { transform: rotate(5deg) scale(1.02); } 100% { transform: rotate(2deg) scale(1); } }
@keyframes da-duke { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes da-shadow { 0% { transform: scale(1); opacity:0.4; } 50% { transform: scale(1.1); opacity:0.6; } 100% { transform: scale(1); opacity:0.4; } }
@keyframes da-window { 0% { opacity:0.9; box-shadow: inset 0 0 20px rgba(255,200,100,0.4); } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,200,100,0.7); } 100% { opacity:0.85; box-shadow: inset 0 0 20px rgba(255,200,100,0.3); } }
@keyframes da-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* Marguerite Toroulde (warm, dim-interior) */
.scn-marguerite-toroulde {
  background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 50%, #3a1a0a 100%),
              radial-gradient(circle at 30% 60%, #8a5a3a 0%, transparent 80%);
}
.scn-marguerite-toroulde .wall-dark { position:absolute; inset:0 0 0 0; background: radial-gradient(ellipse at 60% 50%, #6a4a3a 0%, #3a2a1a 100%); }
.scn-marguerite-toroulde .candle { position:absolute; bottom:35%; left:25%; width:2%; height:8%; background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 80%, #a08060 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 10px 2px rgba(255,200,100,0.6); animation: mt-candle 2s ease-in-out infinite alternate; }
.scn-marguerite-toroulde .candle-glow { position:absolute; bottom:38%; left:22%; width:8%; height:12%; background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, rgba(255,200,100,0) 70%); filter: blur(8px); animation: mt-glow 3s ease-in-out infinite alternate; }
.scn-marguerite-toroulde .woman-profile { position:absolute; bottom:20%; right:25%; width:7%; height:30%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); animation: mt-woman 4s ease-in-out infinite; }
.scn-marguerite-toroulde .woman-dress { position:absolute; bottom:15%; right:22%; width:12%; height:15%; background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-marguerite-toroulde .table-small { position:absolute; bottom:18%; left:20%; width:20%; height:6%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 2px 6px rgba(0,0,0,0.7); }
.scn-marguerite-toroulde .rosary { position:absolute; bottom:30%; left:22%; width:4%; height:8%; background: radial-gradient(circle at 50% 20%, #b08050 0%, #8a6030 100%); border-radius: 50% 50% 20% 20%; animation: mt-rosary 6s ease-in-out infinite; }
@keyframes mt-candle { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.05); opacity:1; } 100% { transform: scaleY(0.95); opacity:0.85; } }
@keyframes mt-glow { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.9); opacity:0.5; } }
@keyframes mt-woman { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mt-rosary { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* Assessors Called (tense, bright-interior) */
.scn-assessors-called {
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 40%, #2a1a0a 100%),
              radial-gradient(circle at 70% 30%, #8a6a4a 0%, transparent 70%);
}
.scn-assessors-called .dais { position:absolute; bottom:15%; left:10%; right:10%; height:10%; background: linear-gradient(0deg, #5a3a1a 0%, #7a5a3a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.6); animation: ac-dais 8s ease-in-out infinite; }
.scn-assessors-called .judge-row { position:absolute; bottom:18%; left:20%; right:20%; height:20%; display: flex; justify-content: space-around; }
.scn-assessors-called .judge-left { position:absolute; bottom:20%; left:22%; width:6%; height:22%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%; box-shadow: 2px 0 6px rgba(0,0,0,0.5); animation: ac-judge 3s ease-in-out infinite; }
.scn-assessors-called .judge-right { position:absolute; bottom:22%; right:22%; width:6%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%; box-shadow: -2px 0 6px rgba(0,0,0,0.5); animation: ac-judge 3.5s ease-in-out infinite reverse; }
.scn-assessors-called .wall-panel { position:absolute; top:5%; left:5%; right:5%; height:50%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 20px, #5a4a3a 20px, #5a4a3a 40px); border-radius: 10% 10% 0 0; opacity:0.8; }
.scn-assessors-called .cross-beam { position:absolute; top:30%; left:0; right:0; height:4%; background: linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 100%); box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ac-beam 10s ease-in-out infinite; }
.scn-assessors-called .light-source { position:absolute; top:5%; left:50%; width:20%; height:30%; background: radial-gradient(circle, #f0e0c0 0%, transparent 70%); filter: blur(10px); animation: ac-light 4s ease-in-out infinite alternate; }
@keyframes ac-dais { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ac-judge { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ac-beam { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ac-light { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.9); } }

/* arrival-maid-promised */
.scn-arrival-maid-promised {
  background: linear-gradient(180deg, #f7d98c 0%, #e8a853 30%, #b86b3a 60%, #5e3a1e 100%),
              radial-gradient(ellipse at 50% 20%, #ffc857 0%, transparent 70%);
}
.scn-arrival-maid-promised .sky-dawn { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #fae6b0 0%, #f7b05e 50%, transparent 100%); animation: amp-sky 12s ease-in-out infinite alternate; }
.scn-arrival-maid-promised .sun-glow { position:absolute; top:15%; left:50%; width:60px; height:60px; transform:translate(-50%,0); background: radial-gradient(circle, #ffea9a 0%, #f7b05e 40%, transparent 70%); border-radius:50%; animation: amp-sun 8s ease-in-out infinite; box-shadow: 0 0 80px 40px #f7b05e80; }
.scn-arrival-maid-promised .horizon { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a6140 0%, #5e3a1e 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; animation: amp-horizon 20s ease-in-out infinite alternate; }
.scn-arrival-maid-promised .horseman { position:absolute; bottom:30%; left:42%; width:30px; height:45px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: amp-horse 4s ease-in-out infinite; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3); }
.scn-arrival-maid-promised .banner { position:absolute; bottom:32%; left:48%; width:8px; height:30px; background: #a0461a; border-radius:2px; transform-origin: bottom; animation: amp-banner 6s ease-in-out infinite; box-shadow: 0 0 10px 2px #a0461a60; }
.scn-arrival-maid-promised .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3520 0%, #2d1f0e 100%); animation: amp-ground 15s linear infinite alternate; }
.scn-arrival-maid-promised .cloud { position:absolute; width:120px; height:40px; background: radial-gradient(ellipse at 50% 50%, rgba(255, 230, 180, 0.6) 0%, transparent 80%); border-radius:50%; filter:blur(8px); }
.scn-arrival-maid-promised .cp1 { top:10%; left:5%; animation: amp-drift 40s linear infinite; }
.scn-arrival-maid-promised .cp2 { top:18%; right:8%; width:80px; height:30px; animation: amp-drift2 55s linear infinite reverse; }

@keyframes amp-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes amp-sun { 0% { transform:translate(-50%,0) scale(1); opacity:0.9; } 50% { transform:translate(-50%,-5px) scale(1.05); opacity:1; } 100% { transform:translate(-50%,0) scale(1); opacity:0.85; } }
@keyframes amp-horizon { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(1px); } }
@keyframes amp-horse { 0% { transform:translateX(0) rotate(-1deg); } 25% { transform:translateX(8px) rotate(1deg); } 50% { transform:translateX(16px) rotate(-1deg); } 75% { transform:translateX(24px) rotate(1deg); } 100% { transform:translateX(32px) rotate(0deg); } }
@keyframes amp-banner { 0% { transform:rotate(-5deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-3deg); } }
@keyframes amp-ground { 0% { background-position:0 0; } 100% { background-position:20px 0; } }
@keyframes amp-drift { 0% { transform:translateX(-40px); } 100% { transform:translateX(120vw); } }
@keyframes amp-drift2 { 0% { transform:translateX(0); } 100% { transform:translateX(-100vw); } }

/* blois-preparations */
.scn-blois-preparations {
  background: linear-gradient(180deg, #b3d4f0 0%, #8cbde6 40%, #6a9ac0 80%, #4a7a9e 100%),
              radial-gradient(ellipse at 50% 100%, #8cbde6 0%, transparent 70%);
}
.scn-blois-preparations .sky-calm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d2e6ff 0%, #a6c8e8 50%, transparent 100%); animation: blo-sky 15s ease-in-out infinite alternate; }
.scn-blois-preparations .castle-wall { position:absolute; bottom:30%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: blo-wall 12s ease-in-out infinite; }
.scn-blois-preparations .tower-left { position:absolute; bottom:30%; left:15%; width:10%; height:55%; background: linear-gradient(180deg, #a08a6a 0%, #705a3a 100%); border-radius: 20% 20% 0 0; box-shadow: -5px 0 15px rgba(0,0,0,0.2); animation: blo-tower 8s ease-in-out infinite alternate; }
.scn-blois-preparations .tower-right { position:absolute; bottom:30%; right:15%; width:10%; height:50%; background: linear-gradient(180deg, #a08a6a 0%, #705a3a 100%); border-radius: 20% 20% 0 0; box-shadow: 5px 0 15px rgba(0,0,0,0.2); animation: blo-tower 8s ease-in-out infinite alternate-reverse; }
.scn-blois-preparations .flag-left { position:absolute; bottom:78%; left:17%; width:4px; height:20px; background: #5a4a2a; transform-origin: bottom; animation: blo-flag 5s ease-in-out infinite; }
.scn-blois-preparations .flag-right { position:absolute; bottom:73%; right:17%; width:4px; height:18px; background: #5a4a2a; transform-origin: bottom; animation: blo-flag 5s ease-in-out infinite 1.5s; }
.scn-blois-preparations .soldiers { position:absolute; bottom:30%; left:30%; right:30%; height:20%; background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 8px, transparent 8px, transparent 16px); mask-image: linear-gradient(to bottom, transparent 0%, #000 40%, #000 100%); animation: blo-soldiers 20s linear infinite; }
.scn-blois-preparations .ground-calm { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%); border-radius: 40% 0 0 0 / 60% 0 0 0; animation: blo-ground 10s ease-in-out infinite alternate; }

@keyframes blo-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes blo-wall { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes blo-tower { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(1); } }
@keyframes blo-flag { 0% { transform:rotate(-10deg); } 50% { transform:rotate(10deg); } 100% { transform:rotate(-8deg); } }
@keyframes blo-soldiers { 0% { transform:translateX(0); } 100% { transform:translateX(-16px); } }
@keyframes blo-ground { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }

/* letter-to-english */
.scn-letter-to-english {
  background: linear-gradient(180deg, #eeddcc 0%, #d8c0a0 40%, #b89878 80%, #a08060 100%),
              radial-gradient(ellipse at 30% 20%, #ffe8d0 0%, transparent 60%);
}
.scn-letter-to-english .room-wall { position:absolute; inset:0; background: linear-gradient(135deg, #c8b098 0%, #a8886a 100%); animation: lte-wall 20s ease-in-out infinite alternate; }
.scn-letter-to-english .window-bright { position:absolute; top:15%; left:60%; width:25%; height:35%; background: linear-gradient(180deg, #ffeac0 0%, #ffd890 100%); border-radius: 5% 5% 15% 15%; box-shadow: inset 0 0 30px #ffd89080, 0 0 60px #ffd89060; animation: lte-window 10s ease-in-out infinite; }
.scn-letter-to-english .table-wood { position:absolute; bottom:20%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 -4px 12px rgba(0,0,0,0.4); animation: lte-table 8s ease-in-out infinite alternate; }
.scn-letter-to-english .paper { position:absolute; bottom:28%; left:30%; width:20%; height:15%; background: linear-gradient(180deg, #f5f0e0 0%, #e0d0b0 100%); border-radius: 3%; transform:rotate(2deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.2); animation: lte-paper 6s ease-in-out infinite; }
.scn-letter-to-english .candle-glow { position:absolute; bottom:32%; left:55%; width:30px; height:50px; background: radial-gradient(ellipse at 50% 80%, #ffd080 0%, #c08040 70%, transparent 100%); border-radius: 50%; filter:blur(3px); box-shadow: 0 0 40px 20px #ffd08060; animation: lte-candle 4s ease-in-out infinite; }
.scn-letter-to-english .figure-writing { position:absolute; bottom:22%; left:25%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 25% 25%; transform-origin: bottom; animation: lte-write 2s ease-in-out infinite; }
.scn-letter-to-english .figure-standing { position:absolute; bottom:22%; left:65%; width:22px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 40% 40% 25% 25% / 70% 70% 20% 20%; animation: lte-stand 5s ease-in-out infinite; }

@keyframes lte-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes lte-window { 0%,100% { box-shadow: inset 0 0 20px #ffd89080, 0 0 40px #ffd89060; } 50% { box-shadow: inset 0 0 40px #ffeac0, 0 0 80px #ffeac080; } }
@keyframes lte-table { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes lte-paper { 0% { transform:rotate(2deg) scale(1); } 50% { transform:rotate(4deg) scale(1.02); } 100% { transform:rotate(1deg) scale(1); } }
@keyframes lte-candle { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.85; transform:scale(1); } }
@keyframes lte-write { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(3px) rotate(-2deg); } 50% { transform:translateX(6px) rotate(0deg); } 75% { transform:translateX(9px) rotate(2deg); } 100% { transform:translateX(12px) rotate(0deg); } }
@keyframes lte-stand { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }

/* letter-text */
.scn-letter-text {
  background: linear-gradient(180deg, #c8b898 0%, #a89070 50%, #8a7050 100%),
              radial-gradient(ellipse at 50% 40%, #e0d0b0 0%, transparent 80%);
}
.scn-letter-text .desk-surface { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a0a 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 4px 12px rgba(0,0,0,0.5); animation: ltx-desk 15s ease-in-out infinite alternate; }
.scn-letter-text .scroll { position:absolute; bottom:30%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a0 100%); border-radius: 5%; transform:rotate(-2deg); box-shadow: 3px 3px 10px rgba(0,0,0,0.3); overflow:hidden; animation: ltx-scroll 10s ease-in-out infinite; }
.scn-letter-text .inkwell { position:absolute; bottom:45%; left:65%; width:20px; height:25px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%); border-radius: 50% 50% 30% 30%; box-shadow: inset 0 -4px 6px #00000060; animation: ltx-ink 6s ease-in-out infinite; }
.scn-letter-text .quill { position:absolute; bottom:50%; left:55%; width:4px; height:35px; background: linear-gradient(180deg, #d8c8a0 0%, #a08860 100%); transform-origin: bottom; border-radius: 2px 2px 1px 1px; rotate:-15deg; animation: ltx-quill 3s ease-in-out infinite; box-shadow: 0 0 6px rgba(0,0,0,0.2); }
.scn-letter-text .candle-text { position:absolute; bottom:40%; left:75%; width:25px; height:40px; background: radial-gradient(ellipse at 50% 90%, #ffd080 0%, #c08040 60%, transparent 100%); border-radius: 5% 5% 20% 20%; filter:blur(2px); box-shadow: 0 0 30px 15px #ffd08060; animation: ltx-candle 5s ease-in-out infinite; }
.scn-letter-text .wax-seal { position:absolute; bottom:35%; left:70%; width:20px; height:20px; background: radial-gradient(circle, #c8553d 0%, #a0461a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: ltx-seal 8s ease-in-out infinite; }
.scn-letter-text .hand-pointing { position:absolute; bottom:28%; left:45%; width:15px; height:30px; background: linear-gradient(180deg, #b89878 0%, #8a7050 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom; animation: ltx-hand 4s ease-in-out infinite; }

@keyframes ltx-desk { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ltx-scroll { 0% { transform:rotate(-2deg) scale(1); } 50% { transform:rotate(-1deg) scale(1.02); } 100% { transform:rotate(-3deg) scale(1); } }
@keyframes ltx-ink { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes ltx-quill { 0% { transform:rotate(-15deg) translateY(0); } 50% { transform:rotate(-10deg) translateY(-3px); } 100% { transform:rotate(-15deg) translateY(0); } }
@keyframes ltx-candle { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.08); } 100% { opacity:0.75; transform:scale(1); } }
@keyframes ltx-seal { 0% { transform:scale(1); } 50% { transform:scale(1.05); } 100% { transform:scale(1); } }
@keyframes ltx-hand { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(5px) rotate(5deg); } 50% { transform:translateX(10px) rotate(0deg); } 75% { transform:translateX(15px) rotate(-5deg); } 100% { transform:translateX(20px) rotate(0deg); } }

/* Scene: jeanne-simple - dark, dim interior */
.scn-jeanne-simple {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #0e0e1a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-jeanne-simple .backdrop { position:absolute; inset:0; background: linear-gradient(180deg, #12121a 0%, #0a0a10 100%); animation: js-backdrop 60s linear infinite; }
.scn-jeanne-simple .wall     { position:absolute; inset: 15% 10% 20% 10%; background: linear-gradient(135deg, #2a2822 0%, #1e1c18 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-jeanne-simple .window   { position:absolute; top:20%; left:25%; width:30%; height:28%; background: radial-gradient(ellipse at 50% 50%, #3a4a5a 0%, #1a1a2a 100%); border: 6px solid #1a1814; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.8); animation: js-window 12s ease-in-out infinite alternate; }
.scn-jeanne-simple .figure   { position:absolute; bottom:22%; left:30%; width:16%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: js-figure 6s ease-in-out infinite; }
.scn-jeanne-simple .table    { position:absolute; bottom:18%; left:26%; width:35%; height:6%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 2px; box-shadow: 0 -4px 10px rgba(0,0,0,.5); }
.scn-jeanne-simple .candle   { position:absolute; bottom:24%; left:38%; width:4%; height:6%; background: linear-gradient(180deg, #8a7050 0%, #4a3a2a 100%); border-radius: 2px 2px 4px 4px; animation: js-candle 3s ease-in-out infinite; }
.scn-jeanne-simple .glow     { position:absolute; bottom:24%; left:38%; width:12%; height:12%; background: radial-gradient(circle, #d4a060 0%, rgba(212,160,96,.3) 50%, transparent 70%); border-radius:50%; mix-blend-mode: screen; animation: js-glow 3s ease-in-out infinite alternate; }
@keyframes js-backdrop { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes js-window   { 0% { opacity:0.6; filter:brightness(0.8) } 50% { opacity:0.9; filter:brightness(1.1) } 100% { opacity:0.5; filter:brightness(0.9) } }
@keyframes js-figure   { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes js-candle   { 0% { transform: scaleY(1); opacity:0.8 } 50% { transform: scaleY(1.08); opacity:1 } 100% { transform: scaleY(0.95); opacity:0.85 } }
@keyframes js-glow     { 0% { transform: scale(0.9); opacity:0.6 } 50% { transform: scale(1.1); opacity:0.9 } 100% { transform: scale(1.0); opacity:0.7 } }

/* Scene: captains-testify - warm, bright interior */
.scn-captains-testify {
  background: linear-gradient(180deg, #c8b8a0 0%, #a89078 50%, #88705a 100%),
              radial-gradient(ellipse at 60% 40%, #d4c4a8 0%, transparent 70%);
}
.scn-captains-testify .room-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a6a52 0%, #5a4a32 100%); border-radius: 0 0 4px 4px; }
.scn-captains-testify .room-wall  { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, #c8b8a0 0%, #a89078 100%); }
.scn-captains-testify .council-table { position:absolute; bottom:25%; left:10%; width:80%; height:15%; background: linear-gradient(180deg, #a08068 0%, #705a40 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.3); }
.scn-captains-testify .map-scroll { position:absolute; bottom:28%; left:20%; width:30%; height:10%; background: linear-gradient(135deg, #d4c4a8 0%, #b8a080 100%); border-radius: 2px; transform: rotate(-3deg); animation: capt-map 20s ease-in-out infinite; }
.scn-captains-testify .cannon     { position:absolute; bottom:20%; right:15%; width:12%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20%; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-captains-testify .captain    { position:absolute; bottom:28%; width:14%; height:35%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-captains-testify .captain.left  { left:15%; animation: capt-figure 4s ease-in-out infinite; }
.scn-captains-testify .captain.right { right:15%; animation: capt-figure 5s ease-in-out infinite reverse; }
.scn-captains-testify .lantern    { position:absolute; top:10%; left:45%; width:10%; height:12%; background: radial-gradient(ellipse at 50% 50%, #f0d080 0%, #c8a060 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(240,208,128,.3); animation: capt-lantern 6s ease-in-out infinite alternate; }
@keyframes capt-map   { 0% { transform: rotate(-3deg) scaleX(1) } 50% { transform: rotate(2deg) scaleX(1.02) } 100% { transform: rotate(-3deg) scaleX(1) } }
@keyframes capt-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(1px) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(0) } }
@keyframes capt-lantern { 0% { opacity:0.8; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.85; transform: scale(1.0) } }

/* Scene: merlin-prophecy - calm, dim interior */
.scn-merlin-prophecy {
  background: linear-gradient(180deg, #1a2030 0%, #252a38 50%, #0e121a 100%),
              radial-gradient(ellipse at 30% 60%, #2a3040 0%, transparent 60%);
}
.scn-merlin-prophecy .study-wall   { position:absolute; inset:0; background: linear-gradient(90deg, #1a1e2a 0%, #0e1018 100%); }
.scn-merlin-prophecy .desk         { position:absolute; bottom:20%; left:15%; width:70%; height:12%; background: linear-gradient(180deg, #3a3028 0%, #1e1812 100%); border-radius: 2px; box-shadow: 0 -2px 8px rgba(0,0,0,.5); }
.scn-merlin-prophecy .book         { position:absolute; bottom:28%; left:30%; width:20%; height:8%; background: linear-gradient(135deg, #605040 0%, #3a2a1a 100%); border-radius: 1px; transform: rotate(-2deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: merlin-book 10s ease-in-out infinite; }
.scn-merlin-prophecy .monk-hand    { position:absolute; bottom:26%; left:48%; width:6%; height:10%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20%; transform: rotate(10deg); transform-origin: bottom center; animation: merlin-hand 8s ease-in-out infinite; }
.scn-merlin-prophecy .candle-stick { position:absolute; bottom:30%; left:20%; width:3%; height:8%; background: linear-gradient(180deg, #8a7050 0%, #4a3a2a 100%); border-radius: 2px; }
.scn-merlin-prophecy .window-arch  { position:absolute; top:12%; right:10%; width:30%; height:35%; background: radial-gradient(ellipse at 50% 50%, #2a3a4a 0%, #1a1a2a 100%); border: 4px solid #1a1814; border-radius: 50% 50% 4px 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: merlin-window 15s ease-in-out infinite alternate; }
.scn-merlin-prophecy .moonlight    { position:absolute; top:10%; right:12%; width:24%; height:30%; background: radial-gradient(ellipse at 50% 50%, rgba(200,220,255,.15) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: merlin-moon 20s ease-in-out infinite; }
@keyframes merlin-book { 0% { transform: rotate(-2deg) scaleX(1) } 50% { transform: rotate(1deg) scaleX(1.03) } 100% { transform: rotate(-2deg) scaleX(1) } }
@keyframes merlin-hand { 0% { transform: rotate(8deg) translateY(0) } 25% { transform: rotate(12deg) translateY(-2px) } 50% { transform: rotate(10deg) translateY(0) } 75% { transform: rotate(6deg) translateY(-1px) } 100% { transform: rotate(8deg) translateY(0) } }
@keyframes merlin-window { 0% { opacity:0.5; filter:brightness(0.9) } 50% { opacity:0.8; filter:brightness(1.1) } 100% { opacity:0.4; filter:brightness(0.8) } }
@keyframes merlin-moon { 0% { opacity:0.3; transform: scale(0.9) } 50% { opacity:0.5; transform: scale(1.1) } 100% { opacity:0.2; transform: scale(0.95) } }

/* Scene: sentence-nullified - warm, bright interior */
.scn-sentence-nullified {
  background: linear-gradient(180deg, #e8d4c0 0%, #c8b098 50%, #a08068 100%),
              radial-gradient(ellipse at 50% 30%, #f0e0c8 0%, transparent 60%);
}
.scn-sentence-nullified .church-wall  { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #d4c4b0 0%, #b8a890 100%); }
.scn-sentence-nullified .altar        { position:absolute; bottom:15%; left:35%; width:30%; height:15%; background: linear-gradient(180deg, #8a7058 0%, #5a4a32 100%); border-radius: 6px 6px 2px 2px; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-sentence-nullified .scroll       { position:absolute; bottom:22%; left:40%; width:20%; height:10%; background: linear-gradient(135deg, #f0e0c8 0%, #d4c0a8 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: null-scroll 8s ease-in-out infinite; }
.scn-sentence-nullified .figure-priest { position:absolute; bottom:18%; left:30%; width:15%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: null-priest 5s ease-in-out infinite; }
.scn-sentence-nullified .light-ray    { position:absolute; top:0; left:25%; width:50%; height:70%; background: linear-gradient(180deg, rgba(255,240,200,.4) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: null-ray 12s ease-in-out infinite alternate; }
.scn-sentence-nullified .window-light { position:absolute; top:5%; left:15%; width:70%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(255,240,210,.3) 0%, transparent 80%); animation: null-winlight 15s ease-in-out infinite; }
.scn-sentence-nullified .halo         { position:absolute; top:5%; left:45%; width:10%; height:10%; background: radial-gradient(circle, rgba(255,215,140,.5) 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: null-halo 6s ease-in-out infinite; }
@keyframes null-scroll { 0% { transform: rotate(-2deg) scaleY(1) } 50% { transform: rotate(1deg) scaleY(1.05) } 100% { transform: rotate(-2deg) scaleY(1) } }
@keyframes null-priest { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(0) } }
@keyframes null-ray    { 0% { opacity:0.5; transform: scaleX(1) } 50% { opacity:0.8; transform: scaleX(1.05) } 100% { opacity:0.6; transform: scaleX(1) } }
@keyframes null-winlight { 0% { opacity:0.4; filter:brightness(0.9) } 50% { opacity:0.7; filter:brightness(1.1) } 100% { opacity:0.3; filter:brightness(0.95) } }
@keyframes null-halo   { 0% { transform: scale(0.8); opacity:0.4 } 50% { transform: scale(1.2); opacity:0.7 } 100% { transform: scale(0.9); opacity:0.5 } }

/* Scene: coronation-ceremony (cn) */
.scn-coronation-ceremony {
  background: linear-gradient(180deg, #3a2a1a 0%, #6a4a2a 40%, #8a6a3a 100%), radial-gradient(ellipse at 50% 30%, #8a6a3a 0%, transparent 70%);
}
.scn-coronation-ceremony .arch {
  position: absolute; top: 0; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  transform: scaleY(1.1); animation: cn-arch 20s ease-in-out infinite alternate;
}
.scn-coronation-ceremony .altar {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: cn-altar 8s ease-in-out infinite;
}
.scn-coronation-ceremony .ampulla {
  position: absolute; bottom: 45%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 40%, #c0d8ff 0%, #7090c0 70%);
  border-radius: 40% 40% 30% 30%; box-shadow: 0 0 20px 8px #aac0e0, 0 0 40px 16px rgba(170,192,224,.5);
  animation: cn-ampulla 4s ease-in-out infinite alternate;
}
.scn-coronation-ceremony .glow {
  position: absolute; bottom: 40%; left: 40%; right: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,230,180,.6) 0%, transparent 60%);
  filter: blur(8px); animation: cn-glow 6s ease-in-out infinite alternate;
}
.scn-coronation-ceremony .figure-kneel {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cn-kneel 5s ease-in-out infinite;
}
.scn-coronation-ceremony .figure-stand {
  position: absolute; bottom: 20%; right: 35%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cn-stand 7s ease-in-out infinite alternate;
}
.scn-coronation-ceremony .pillar-left {
  position: absolute; top: 10%; left: 8%; width: 12px; height: 70%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a0a 100%);
  border-radius: 8px; box-shadow: inset -4px 0 6px rgba(0,0,0,.4);
  animation: cn-pillar 15s linear infinite alternate;
}
.scn-coronation-ceremony .pillar-right {
  position: absolute; top: 10%; right: 8%; width: 12px; height: 70%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a0a 100%);
  border-radius: 8px; box-shadow: inset 4px 0 6px rgba(0,0,0,.4);
  animation: cn-pillar 15s linear infinite alternate-reverse;
}
@keyframes cn-arch { 0% { transform: scaleY(1.1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-2px); } 100% { transform: scaleY(1.1) translateY(0); } }
@keyframes cn-altar { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes cn-ampulla { 0% { opacity:.9; box-shadow: 0 0 15px 6px #aac0e0, 0 0 30px 12px rgba(170,192,224,.3); } 50% { opacity:1; box-shadow: 0 0 25px 10px #c0d8ff, 0 0 50px 20px rgba(192,216,255,.5); } 100% { opacity:.85; box-shadow: 0 0 18px 8px #aac0e0, 0 0 36px 14px rgba(170,192,224,.4); } }
@keyframes cn-glow { 0% { opacity:.6; transform: scaleY(1); } 50% { opacity:.9; transform: scaleY(1.1); } 100% { opacity:.7; transform: scaleY(1); } }
@keyframes cn-kneel { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes cn-stand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cn-pillar { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }

/* Scene: after-coronation (ac) */
.scn-after-coronation {
  background: linear-gradient(180deg, #6a8ab0 0%, #9ac0e0 40%, #d0e8f0 100%), radial-gradient(ellipse at 50% 100%, #d0e8f0 0%, transparent 60%);
}
.scn-after-coronation .sky-sun {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #f0d8a0 0%, #b0d0e8 100%);
  animation: ac-sky 12s ease-in-out infinite alternate;
}
.scn-after-coronation .land-back {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a8a5a 0%, #3a5a2a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: ac-land 18s ease-in-out infinite alternate;
}
.scn-after-coronation .banner {
  position: absolute; bottom: 35%; left: 20%; width: 15px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  transform-origin: bottom center; animation: ac-banner 3s ease-in-out infinite;
}
.scn-after-coronation .figure-marshal {
  position: absolute; bottom: 22%; left: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ac-marshal 6s ease-in-out infinite alternate;
}
.scn-after-coronation .figure-herald {
  position: absolute; bottom: 22%; right: 30%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ac-herald 5s ease-in-out infinite;
}
.scn-after-coronation .crown {
  position: absolute; top: 10%; left: 50%; width: 30px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d0a040 0%, #b08020 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: 0 0 20px 6px #e0b050, 0 0 40px 12px rgba(224,176,80,.4);
  animation: ac-crown 4s ease-in-out infinite alternate;
}
.scn-after-coronation .light-ray {
  position: absolute; top: 0; left: 35%; right: 35%; height: 50%;
  background: linear-gradient(180deg, rgba(255,230,180,.4) 0%, transparent 80%);
  filter: blur(6px); animation: ac-light 8s ease-in-out infinite alternate;
}
@keyframes ac-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes ac-land { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes ac-banner { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes ac-marshal { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ac-herald { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(2px) translateY(-1px); } 50% { transform: translateX(0) translateY(0); } 75% { transform: translateX(-2px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ac-crown { 0% { opacity:.8; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.05); } 100% { opacity:.9; transform: translateX(-50%) scale(1); } }
@keyframes ac-light { 0% { opacity:.3; transform: scaleY(1); } 50% { opacity:.7; transform: scaleY(1.2); } 100% { opacity:.4; transform: scaleY(1); } }

/* Scene: jacques-darc (jd) */
.scn-jacques-darc {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a5a3a 40%, #8a7a5a 100%), radial-gradient(ellipse at 50% 70%, #8a7a5a 0%, transparent 70%);
}
.scn-jacques-darc .room-wall {
  position: absolute; top: 0; left: 0; right: 0; height: 100%;
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4a2a 100%);
  animation: jd-wall 20s ease-in-out infinite alternate;
}
.scn-jacques-darc .window-lite {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c0d8e0 0%, #90b0c0 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(192,216,224,.6);
  animation: jd-window 10s ease-in-out infinite alternate;
}
.scn-jacques-darc .table-desk {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: jd-table 8s ease-in-out infinite;
}
.scn-jacques-darc .paper-scroll {
  position: absolute; bottom: 32%; left: 30%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #d0c8a0 0%, #b0a080 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform-origin: center left; animation: jd-scroll 6s ease-in-out infinite;
}
.scn-jacques-darc .figure-jacques {
  position: absolute; bottom: 18%; left: 40%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jd-figure 7s ease-in-out infinite alternate;
}
.scn-jacques-darc .candle {
  position: absolute; bottom: 45%; left: 50%; width: 8px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e0c080 0%, #a08030 100%);
  border-radius: 4px; box-shadow: 0 0 16px 4px #f0d090, 0 0 32px 8px rgba(240,208,144,.4);
  animation: jd-candle 3s ease-in-out infinite alternate;
}
.scn-jacques-darc .inkwell {
  position: absolute; bottom: 28%; left: 55%; width: 12px; height: 14px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: jd-ink 12s linear infinite;
}
@keyframes jd-wall { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes jd-window { 0% { opacity:.7; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.05); } 100% { opacity:.8; transform: translateX(-50%) scale(1); } }
@keyframes jd-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes jd-scroll { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.02); } 100% { transform: rotate(-1deg) scaleX(1); } }
@keyframes jd-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes jd-candle { 0% { opacity:.8; transform: translateX(-50%) scaleY(1); } 50% { opacity:1; transform: translateX(-50%) scaleY(1.1); } 100% { opacity:.9; transform: translateX(-50%) scaleY(1); } }
@keyframes jd-ink { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-1px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* Scene: maid-relics (mr) */
.scn-maid-relics {
  background: linear-gradient(180deg, #2a3a4a 0%, #3a4a5a 40%, #4a5a6a 100%), radial-gradient(ellipse at 50% 60%, #4a5a6a 0%, transparent 70%);
}
.scn-maid-relics .shelf-niche {
  position: absolute; top: 20%; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 4% 4%; box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: mr-niche 15s ease-in-out infinite alternate;
}
.scn-maid-relics .reliquary {
  position: absolute; top: 28%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6), inset 0 2px 6px rgba(255,255,255,.2);
  animation: mr-reliquary 8s ease-in-out infinite;
}
.scn-maid-relics .ring {
  position: absolute; top: 35%; left: 50%; width: 16px; height: 16px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c0a060 0%, #a08040 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px #c0a060, 0 0 40px 12px rgba(192,160,96,.4);
  animation: mr-ring 4s ease-in-out infinite alternate;
}
.scn-maid-relics .halo-glow {
  position: absolute; top: 25%; left: 30%; right: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,230,180,.3) 0%, transparent 70%);
  filter: blur(10px); animation: mr-halo 6s ease-in-out infinite alternate;
}
.scn-maid-relics .nun-figure {
  position: absolute; bottom: 20%; left: 20%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mr-nun 7s ease-in-out infinite;
}
.scn-maid-relics .candle-pair {
  position: absolute; bottom: 40%; left: 30%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e0c080 0%, #a08030 100%);
  border-radius: 3px; box-shadow: 0 0 12px 3px #f0d090, 0 0 24px 6px rgba(240,208,144,.3);
  animation: mr-candle 3s ease-in-out infinite alternate;
}
.scn-maid-relics .prayer-hands {
  position: absolute; bottom: 25%; right: 25%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: mr-hands 5s ease-in-out infinite alternate;
}
@keyframes mr-niche { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes mr-reliquary { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.03); } }
@keyframes mr-ring { 0% { opacity:.8; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.05); } 100% { opacity:.9; transform: translateX(-50%) scale(1); } }
@keyframes mr-halo { 0% { opacity:.4; transform: scale(1); } 50% { opacity:.7; transform: scale(1.1); } 100% { opacity:.5; transform: scale(1); } }
@keyframes mr-nun { 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 mr-candle { 0% { opacity:.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:.9; transform: scaleY(1); } }
@keyframes mr-hands { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }

.scn-voice-prophesies {
  background: linear-gradient(135deg, #1a1628 0%, #2a2038 40%, #1e1a2c 100%), radial-gradient(ellipse at 20% 60%, #3c2e4e 0%, transparent 70%);
}
.scn-voice-prophesies .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2038 0%, #1e1a2c 100%); animation: vp-wall-pulse 12s ease-in-out infinite alternate; }
.scn-voice-prophesies .table { position:absolute; bottom:12%; left:25%; right:25%; height:5%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-voice-prophesies .chair { position:absolute; bottom:10%; left:38%; width:18%; height:22%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%; transform: rotate(2deg); animation: vp-chair-creak 8s ease-in-out infinite; }
.scn-voice-prophesies .figure-listener { position:absolute; bottom:18%; left:40%; width:12%; height:40%; background: linear-gradient(180deg, #1a1220 0%, #0e0a16 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: vp-listener-breathe 6s ease-in-out infinite; }
.scn-voice-prophesies .shadow-voice { position:absolute; bottom:25%; right:15%; width:20%; height:50%; background: radial-gradient(ellipse 80% 60% at 50% 0%, rgba(30,20,50,.6) 0%, transparent 100%); filter: blur(8px); animation: vp-voice-shift 10s ease-in-out infinite alternate; }
.scn-voice-prophesies .candle-glow { position:absolute; bottom:22%; left:28%; width:2%; height:6%; background: radial-gradient(circle, #ffce80 0%, #c08040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px #c08040, 0 0 80px 40px rgba(192,128,64,.3); animation: vp-candle-flicker 2s ease-in-out infinite; }
.scn-voice-prophesies .candle-flame { position:absolute; bottom:28%; left:28.5%; width:1%; height:3%; background: linear-gradient(180deg, #ffd060 0%, #ff8020 50%, #c04000 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; animation: vp-flame-dance 1s ease-in-out infinite; }
.scn-voice-prophesies .pane { position:absolute; top:10%; left:60%; width:20%; height:30%; background: linear-gradient(135deg, rgba(200,180,220,.15) 0%, rgba(100,80,120,.05) 100%); border-radius: 4px; border: 1px solid rgba(100,80,120,.3); box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: vp-pane-fade 20s ease-in-out infinite alternate; }
@keyframes vp-wall-pulse { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes vp-chair-creak { 0%,100% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } }
@keyframes vp-listener-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(0.99) } }
@keyframes vp-voice-shift { 0% { opacity:.6; transform: translateX(0) translateY(0) } 50% { opacity:.8; transform: translateX(8px) translateY(-5px) } 100% { opacity:.5; transform: translateX(-4px) translateY(3px) } }
@keyframes vp-candle-flicker { 0%,100% { box-shadow: 0 0 30px 15px #c08040, 0 0 60px 30px rgba(192,128,64,.2); opacity:.9 } 50% { box-shadow: 0 0 50px 25px #d09050, 0 0 100px 50px rgba(208,144,80,.4); opacity:1 } }
@keyframes vp-flame-dance { 0% { transform: scaleY(1) rotate(-2deg) } 25% { transform: scaleY(1.1) rotate(1deg) } 50% { transform: scaleY(.95) rotate(-1deg) } 75% { transform: scaleY(1.05) rotate(2deg) } 100% { transform: scaleY(1) rotate(0) } }
@keyframes vp-pane-fade { 0% { opacity:.2 } 50% { opacity:.4 } 100% { opacity:.15 } }

.scn-minister-dismisses {
  background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 40%, #b8b0a0 100%), radial-gradient(ellipse at 70% 30%, #f0e8d8 0%, transparent 60%);
}
.scn-minister-dismisses .room-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a09080 0%, #807060 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-minister-dismisses .desk { position:absolute; bottom:22%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-minister-dismisses .minister { position:absolute; bottom:28%; left:32%; width:14%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(3deg); animation: md-minister-gesture 5s ease-in-out infinite; }
.scn-minister-dismisses .madman { position:absolute; bottom:25%; right:30%; width:16%; height:48%; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 40% 40%; transform: rotate(-5deg); animation: md-madman-shake 3s ease-in-out infinite; }
.scn-minister-dismisses .window-light { position:absolute; top:10%; right:10%; width:25%; height:40%; background: linear-gradient(135deg, #fff8e8 0%, #f0e8d0 60%, transparent 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,200,.3); animation: md-window-bright 9s ease-in-out infinite alternate; }
.scn-minister-dismisses .shadow-bar { position:absolute; top:22%; right:20%; width:1%; height:25%; background: rgba(0,0,0,.2); transform: rotate(10deg); box-shadow: 0 0 8px rgba(0,0,0,.1); animation: md-shadow-sway 12s ease-in-out infinite; }
.scn-minister-dismisses .paper { position:absolute; bottom:28%; left:25%; width:8%; height:6%; background: linear-gradient(180deg, #f0e8d0 0%, #c0b8a0 100%); border-radius: 2px; transform: rotate(12deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: md-paper-float 7s ease-in-out infinite; }
@keyframes md-minister-gesture { 0%,100% { transform: rotate(3deg) translateX(0) } 50% { transform: rotate(1deg) translateX(5px) } }
@keyframes md-madman-shake { 0% { transform: rotate(-5deg) } 25% { transform: rotate(-7deg) } 50% { transform: rotate(-3deg) } 75% { transform: rotate(-8deg) } 100% { transform: rotate(-5deg) } }
@keyframes md-window-bright { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes md-shadow-sway { 0%,100% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-3px) } }
@keyframes md-paper-float { 0% { transform: rotate(12deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-4px) } 100% { transform: rotate(15deg) translateY(0) } }

.scn-archangel-raphael {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 80%, #3a3a5e 0%, transparent 60%);
}
.scn-archangel-raphael .arch-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); animation: ar-bg-fade 15s ease-in-out infinite alternate; }
.scn-archangel-raphael .door-arch { position:absolute; bottom:10%; left:30%; right:30%; height:70%; background: radial-gradient(ellipse at 50% 0%, transparent 60%, #2a2a4e 61%, #1a1a2e 100%); border-radius: 50% 50% 20% 20% / 80% 80% 10% 10%; box-shadow: inset 0 30px 40px rgba(0,0,0,.5); }
.scn-archangel-raphael .figure-angel { position:absolute; bottom:18%; left:45%; width:10%; height:45%; background: linear-gradient(180deg, #c8a060 0%, #a08040 50%, #604020 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform: scale(1.1); box-shadow: 0 0 30px 10px rgba(200,160,96,.3); animation: ar-angel-glide 10s ease-in-out infinite; }
.scn-archangel-raphael .halo-light { position:absolute; top:15%; left:48%; width:8%; height:8%; background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px #d09050, 0 0 80px 40px rgba(208,144,80,.3); animation: ar-halo-pulse 4s ease-in-out infinite alternate; }
.scn-archangel-raphael .floor-tile { position:absolute; bottom:8%; left:20%; right:20%; height:2%; background: repeating-linear-gradient(90deg, #3a3a4a 0px, #2a2a3a 10px, transparent 10px); opacity:.3; animation: ar-tile-drift 20s linear infinite; }
.scn-archangel-raphael .shadow-stranger { position:absolute; bottom:20%; left:20%; width:15%; height:55%; background: radial-gradient(ellipse 100% 40% at 50% 100%, rgba(0,0,0,.6) 0%, transparent 100%); filter: blur(6px); animation: ar-stranger-slide 14s ease-in-out infinite alternate; }
.scn-archangel-raphael .confessional-curtain { position:absolute; bottom:15%; left:15%; width:3%; height:60%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 2px; box-shadow: 0 0 10px rgba(0,0,0,.4); animation: ar-curtain-sway 6s ease-in-out infinite; }
@keyframes ar-bg-fade { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ar-angel-glide { 0% { transform: scale(1.1) translateY(0) } 50% { transform: scale(1.12) translateY(-8px) } 100% { transform: scale(1.1) translateY(0) } }
@keyframes ar-halo-pulse { 0% { box-shadow: 0 0 30px 15px #d09050, 0 0 60px 30px rgba(208,144,80,.2); opacity:.85 } 50% { box-shadow: 0 0 50px 25px #ffd080, 0 0 100px 50px rgba(255,208,128,.4); opacity:1 } 100% { box-shadow: 0 0 35px 18px #d09050, 0 0 70px 35px rgba(208,144,80,.25); opacity:.9 } }
@keyframes ar-tile-drift { 0% { background-position: 0 0 } 100% { background-position: 100px 0 } }
@keyframes ar-stranger-slide { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(10px) scaleX(.95) } 100% { transform: translateX(-5px) scaleX(1.02) } }
@keyframes ar-curtain-sway { 0%,100% { transform: rotate(0) translateX(0) } 50% { transform: rotate(4deg) translateX(2px) } }

.scn-charenton-treatment {
  background: linear-gradient(180deg, #f0ece0 0%, #e0d8c8 40%, #c8c0b0 100%), radial-gradient(ellipse at 80% 20%, #f8f4ec 0%, transparent 60%);
}
.scn-charenton-treatment .asylum-wall { position:absolute; inset:0; background: linear-gradient(180deg, #e0d8c8 0%, #c8c0b0 100%); animation: ct-wall-bright 20s ease-in-out infinite alternate; }
.scn-charenton-treatment .bed { position:absolute; bottom:15%; left:15%; right:45%; height:12%; background: linear-gradient(180deg, #a09080 0%, #807060 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-charenton-treatment .patient { position:absolute; bottom:18%; left:20%; width:16%; height:30%; background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(-2deg); animation: ct-patient-lie 7s ease-in-out infinite; }
.scn-charenton-treatment .doctor { position:absolute; bottom:22%; right:20%; width:14%; height:42%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(2deg); animation: ct-doctor-bend 9s ease-in-out infinite; }
.scn-charenton-treatment .window-bright { position:absolute; top:12%; right:10%; width:20%; height:35%; background: linear-gradient(135deg, #fff8f0 0%, #f0e8d8 60%, transparent 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,240,.5); animation: ct-window-glow 8s ease-in-out infinite alternate; }
.scn-charenton-treatment .chair-small { position:absolute; bottom:20%; left:55%; width:10%; height:18%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; transform: rotate(1deg); }
.scn-charenton-treatment .book { position:absolute; bottom:28%; right:30%; width:6%; height:4%; background: linear-gradient(180deg, #b0a090 0%, #807060 100%); border-radius: 2px; transform: rotate(-8deg); box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: ct-book-lift 12s ease-in-out infinite; }
.scn-charenton-treatment .rug { position:absolute; bottom:8%; left:8%; right:8%; height:3%; background: repeating-linear-gradient(90deg, #8a7a6a 0px, #6a5a4a 15px, #5a4a3a 15px, #7a6a5a 30px); border-radius: 4px; opacity:.6; animation: ct-rug-slight 25s ease-in-out infinite alternate; }
@keyframes ct-wall-bright { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes ct-patient-lie { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } }
@keyframes ct-doctor-bend { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(0) translateY(-3px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes ct-window-glow { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ct-book-lift { 0%,100% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-3px) } }
@keyframes ct-rug-slight { 0% { background-position: 0 0 } 100% { background-position: 30px 0 } }

/* ===== hysteria-diagnosis (calm, bright-interior) ===== */
.scn-hysteria-diagnosis {
  background:
    linear-gradient(180deg, #f0eade 0%, #d9ccb5 40%, #bfaa8f 100%),
    radial-gradient(ellipse at 70% 30%, rgba(255,240,210,0.6) 0%, transparent 60%);
}
.scn-hysteria-diagnosis .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc8 0%, #cbb8a0 100%); }
.scn-hysteria-diagnosis .window-frame {
  position:absolute; top:10%; left:5%; width:35%; height:50%;
  background: linear-gradient(180deg, #d4bfa5 0%, #b89f80 100%);
  border: 6px solid #8a7a64; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
}
.scn-hysteria-diagnosis .light-shaft {
  position:absolute; top:10%; left:8%; width:25%; height:60%;
  background: linear-gradient(180deg, rgba(255,245,220,0.35) 0%, rgba(255,245,220,0.1) 100%);
  transform: skewX(-8deg); filter: blur(4px);
  animation: hd-shaft 8s ease-in-out infinite alternate;
}
.scn-hysteria-diagnosis .exam-couch {
  position:absolute; bottom:12%; left:15%; width:45%; height:18%;
  background: linear-gradient(180deg, #b09a7a 0%, #8a7355 100%);
  border-radius: 20px 20px 8px 8px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}
.scn-hysteria-diagnosis .patient {
  position:absolute; bottom:20%; left:22%; width:10%; height:14%;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a888 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hd-breathe 6s ease-in-out infinite;
}
.scn-hysteria-diagnosis .doctor {
  position:absolute; bottom:20%; right:22%; width:12%; height:20%;
  background: linear-gradient(180deg, #d4c4a0 0%, #b4a080 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform: scaleX(-1); animation: hd-breathe 6s ease-in-out infinite;
  box-shadow: -4px 0 8px rgba(0,0,0,0.1);
}
.scn-hysteria-diagnosis .table-lamp {
  position:absolute; bottom:30%; right:12%; width:8%; height:12%;
  background: radial-gradient(circle at 50% 30%, #ffe090 0%, #c8a050 70%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(200,160,80,0.3);
  animation: hd-lamp-glow 4s ease-in-out infinite alternate;
}
.scn-hysteria-diagnosis .papers {
  position:absolute; bottom:14%; left:38%; width:8%; height:6%;
  background: linear-gradient(180deg, #f5f0e5 0%, #e0d5c5 100%);
  border-radius: 2px; transform: rotate(2deg);
  box-shadow: 1px 1px 3px rgba(0,0,0,0.1);
  animation: hd-paper 10s ease-in-out infinite;
}
@keyframes hd-shaft { 0%{ opacity:0.7; transform:skewX(-8deg) scaleY(1); } 50%{ opacity:1; transform:skewX(-6deg) scaleY(1.05); } 100%{ opacity:0.8; transform:skewX(-10deg) scaleY(0.95); } }
@keyframes hd-breathe { 0%{ transform:translateY(0); } 50%{ transform:translateY(-2px); } 100%{ transform:translateY(0); } }
@keyframes hd-lamp-glow { 0%{ box-shadow:0 0 20px 4px rgba(200,160,80,0.3); } 50%{ box-shadow:0 0 40px 12px rgba(200,160,80,0.5); } 100%{ box-shadow:0 0 25px 6px rgba(200,160,80,0.35); } }
@keyframes hd-paper { 0%{ transform:rotate(2deg) translateX(0); } 50%{ transform:rotate(4deg) translateX(2px); } 100%{ transform:rotate(0deg) translateX(-1px); } }

/* ===== sudden-visions (tense, dim-interior) ===== */
.scn-sudden-visions {
  background:
    linear-gradient(180deg, #1e1a2e 0%, #2c2545 40%, #161223 100%),
    radial-gradient(ellipse at 40% 60%, rgba(120,100,180,0.2) 0%, transparent 70%);
}
.scn-sudden-visions .dark-chamber { position:absolute; inset:0; background: linear-gradient(180deg, #14101f 0%, #1e1a30 100%); }
.scn-sudden-visions .shadow-shape {
  position:absolute; bottom:10%; left:20%; width:60%; height:50%;
  background: linear-gradient(180deg, rgba(20,15,30,0.9) 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  filter: blur(8px); animation: sv-shadow-pulse 4s ease-in-out infinite alternate;
}
.scn-sudden-visions .vision-glow {
  position:absolute; top:15%; left:35%; width:30%; height:25%;
  background: radial-gradient(circle, rgba(200,180,255,0.5) 0%, rgba(200,180,255,0.1) 60%, transparent 100%);
  border-radius: 50%; filter: blur(12px);
  animation: sv-glow-flash 5s ease-in-out infinite;
}
.scn-sudden-visions .figure-kneeling {
  position:absolute; bottom:15%; left:45%; width:8%; height:18%;
  background: linear-gradient(180deg, #2a2438 0%, #161223 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center; animation: sv-tremble 0.5s ease-in-out infinite;
}
.scn-sudden-visions .aureola {
  position:absolute; top:14%; left:43%; width:12%; height:12%;
  background: radial-gradient(circle, rgba(220,200,255,0.4) 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: sv-aureola 3s ease-in-out infinite alternate;
}
.scn-sudden-visions .float-specks {
  position:absolute; top:20%; left:10%; width:6px; height:6px;
  background: rgba(200,180,255,0.6); border-radius: 50%;
  box-shadow: 0 0 8px rgba(200,180,255,0.4);
  animation: sv-float 7s ease-in-out infinite;
}
.scn-sudden-visions .float-specks-2 {
  position:absolute; top:40%; left:80%; width:4px; height:4px;
  background: rgba(200,180,255,0.5); border-radius: 50%;
  box-shadow: 0 0 6px rgba(200,180,255,0.3);
  animation: sv-float 9s ease-in-out infinite reverse;
}
@keyframes sv-shadow-pulse { 0%{ opacity:0.6; } 50%{ opacity:1; } 100%{ opacity:0.5; } }
@keyframes sv-glow-flash { 0%{ opacity:0.2; transform:scale(0.8); } 50%{ opacity:0.8; transform:scale(1.2); } 100%{ opacity:0.3; transform:scale(0.9); } }
@keyframes sv-tremble { 0%{ transform:translate(0,0) rotate(0deg); } 25%{ transform:translate(1px, -1px) rotate(1deg); } 50%{ transform:translate(-1px, 0) rotate(-1deg); } 75%{ transform:translate(0, 1px) rotate(0deg); } 100%{ transform:translate(1px, 1px) rotate(1deg); } }
@keyframes sv-aureola { 0%{ transform:scale(0.9); opacity:0.6; } 50%{ transform:scale(1.3); opacity:1; } 100%{ transform:scale(1); opacity:0.7; } }
@keyframes sv-float { 0%{ transform:translateY(0) scale(1); } 50%{ transform:translateY(-40px) scale(1.3); opacity:0.8; } 100%{ transform:translateY(0) scale(1); } }

/* ===== imperative-voice (tense, sunlit) ===== */
.scn-imperative-voice {
  background:
    linear-gradient(180deg, #ffedc0 0%, #f5dba0 30%, #dbba70 60%, #b09050 100%),
    radial-gradient(ellipse at 80% 20%, rgba(255,210,120,0.7) 0%, transparent 60%);
}
.scn-imperative-voice .sunlit-floor { position:absolute; inset:0; background: linear-gradient(180deg, #fce4b0 0%, #e8c888 100%); }
.scn-imperative-voice .window-arch {
  position:absolute; top:5%; left:10%; width:40%; height:70%;
  background: linear-gradient(180deg, #f0d8a0 0%, #d0b070 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.15);
  border: 4px solid #a08050;
}
.scn-imperative-voice .sunbeam {
  position:absolute; top:5%; left:15%; width:20%; height:70%;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, rgba(255,240,200,0.05) 100%);
  filter: blur(4px); transform: skewX(-10deg);
  animation: iv-beam 6s ease-in-out infinite alternate;
}
.scn-imperative-voice .figure-standing {
  position:absolute; bottom:15%; left:50%; width:10%; height:30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform: translateX(-50%);
  animation: iv-stand 3s ease-in-out infinite;
}
.scn-imperative-voice .flag {
  position:absolute; bottom:40%; left:55%; width:6%; height:12%;
  background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%);
  border-radius: 2px; transform-origin: bottom center;
  animation: iv-flag 2s ease-in-out infinite alternate;
}
.scn-imperative-voice .dust-motes {
  position:absolute; top:20%; left:25%; width:4px; height:4px;
  background: rgba(255,230,180,0.7); border-radius: 50%;
  box-shadow: 0 0 6px rgba(255,230,180,0.4);
  animation: iv-dust 12s linear infinite;
}
.scn-imperative-voice .dust-motes-2 {
  position:absolute; top:35%; left:40%; width:3px; height:3px;
  background: rgba(255,230,180,0.6); border-radius: 50%;
  box-shadow: 0 0 4px rgba(255,230,180,0.3);
  animation: iv-dust 15s linear infinite reverse;
}
.scn-imperative-voice .burst-effect {
  position:absolute; top:30%; left:52%; width:15%; height:15%;
  background: radial-gradient(circle, rgba(255,210,80,0.3) 0%, transparent 80%);
  border-radius: 50%; filter: blur(5px);
  animation: iv-burst 4s ease-in-out infinite;
}
@keyframes iv-beam { 0%{ opacity:0.6; transform:skewX(-10deg) scaleY(1); } 50%{ opacity:1; transform:skewX(-8deg) scaleY(1.1); } 100%{ opacity:0.7; transform:skewX(-12deg) scaleY(0.9); } }
@keyframes iv-stand { 0%{ transform:translateX(-50%) translateY(0); } 50%{ transform:translateX(-50%) translateY(-3px); } 100%{ transform:translateX(-50%) translateY(0); } }
@keyframes iv-flag { 0%{ transform:rotate(-5deg); } 50%{ transform:rotate(5deg); } 100%{ transform:rotate(-3deg); } }
@keyframes iv-dust { 0%{ transform:translate(0,0) scale(1); opacity:0; } 20%{ opacity:1; } 80%{ opacity:1; } 100%{ transform:translate(-40px,-60px) scale(1.5); opacity:0; } }
@keyframes iv-burst { 0%{ transform:scale(0.8); opacity:0.5; } 50%{ transform:scale(1.5); opacity:1; } 100%{ transform:scale(0.9); opacity:0.6; } }

/* ===== embracing-saints (warm, bright-interior) ===== */
.scn-embracing-saints {
  background:
    linear-gradient(180deg, #f5d8a0 0%, #e0b880 40%, #c09060 100%),
    radial-gradient(ellipse at 50% 60%, rgba(255,200,120,0.5) 0%, transparent 70%);
}
.scn-embracing-saints .golden-wall { position:absolute; inset:0; background: linear-gradient(180deg, #edc888 0%, #d4a870 100%); }
.scn-embracing-saints .halo-left {
  position:absolute; top:18%; left:30%; width:20%; height:20%;
  background: radial-gradient(circle, rgba(255,220,120,0.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(4px);
  animation: es-halo 6s ease-in-out infinite alternate;
}
.scn-embracing-saints .halo-right {
  position:absolute; top:18%; right:30%; width:20%; height:20%;
  background: radial-gradient(circle, rgba(255,220,120,0.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(4px);
  animation: es-halo 6s ease-in-out infinite alternate-reverse;
}
.scn-embracing-saints .profile-front {
  position:absolute; bottom:15%; left:38%; width:12%; height:22%;
  background: linear-gradient(180deg, #d4a878 0%, #b08050 100%);
  border-radius: 50% 45% 30% 35% / 60% 55% 30% 40%;
  transform: rotate(5deg); animation: es-embrace 4s ease-in-out infinite;
}
.scn-embracing-saints .profile-back {
  position:absolute; bottom:15%; right:38%; width:12%; height:22%;
  background: linear-gradient(180deg, #c89868 0%, #a07040 100%);
  border-radius: 45% 50% 35% 30% / 55% 60% 40% 30%;
  transform: rotate(-5deg); animation: es-embrace 4s ease-in-out infinite reverse;
}
.scn-embracing-saints .embrace-arms {
  position:absolute; bottom:30%; left:44%; width:30%; height:10%;
  background: linear-gradient(180deg, #c09060 0%, #a07040 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  filter: blur(1px);
  animation: es-arms 4s ease-in-out infinite alternate;
}
.scn-embracing-saints .warm-glow {
  position:absolute; bottom:20%; left:35%; width:30%; height:40%;
  background: radial-gradient(ellipse, rgba(255,180,80,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: es-warm 5s ease-in-out infinite alternate;
}
.scn-embracing-saints .sparkle-small {
  position:absolute; top:30%; left:28%; width:4px; height:4px;
  background: rgba(255,220,150,0.7); border-radius: 50%;
  box-shadow: 0 0 6px rgba(255,220,150,0.4);
  animation: es-sparkle 3s ease-in-out infinite;
}
.scn-embracing-saints .sparkle-small-2 {
  position:absolute; top:35%; right:28%; width:3px; height:3px;
  background: rgba(255,220,150,0.6); border-radius: 50%;
  box-shadow: 0 0 4px rgba(255,220,150,0.3);
  animation: es-sparkle 3.5s ease-in-out infinite delay-0.5s;
}
@keyframes es-halo { 0%{ opacity:0.4; transform:scale(0.9); } 50%{ opacity:0.8; transform:scale(1.2); } 100%{ opacity:0.5; transform:scale(1); } }
@keyframes es-embrace { 0%{ transform:rotate(5deg) translateY(0); } 50%{ transform:rotate(8deg) translateY(-2px); } 100%{ transform:rotate(3deg) translateY(1px); } }
@keyframes es-arms { 0%{ transform:scaleX(0.95) translateY(0); opacity:0.8; } 50%{ transform:scaleX(1.05) translateY(-2px); opacity:1; } 100%{ transform:scaleX(0.95) translateY(0); opacity:0.8; } }
@keyframes es-warm { 0%{ opacity:0.6; filter:blur(6px); } 50%{ opacity:1; filter:blur(10px); } 100%{ opacity:0.7; filter:blur(8px); } }
@keyframes es-sparkle { 0%{ transform:scale(1) translate(0,0); opacity:0.5; } 50%{ transform:scale(1.3) translate(5px,-12px); opacity:1; } 100%{ transform:scale(1) translate(0,0); opacity:0.5; } }

.scn-biblical-reflection {
  background: linear-gradient(180deg, #b8d4e6 0%, #e8c88a 50%, #d4a85a 100%), radial-gradient(ellipse at 50% 100%, #f0d080 0%, transparent 60%);
}
.scn-biblical-reflection .sky {
  position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #a0c4e0 0%, #b8d4e6 30%, transparent 100%); animation: bi-sky 12s ease-in-out infinite alternate;
}
.scn-biblical-reflection .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%; background: linear-gradient(135deg, #7a8a5a 0%, #5a6a3a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: bi-hills 18s ease-in-out infinite alternate;
}
.scn-biblical-reflection .giant {
  position: absolute; bottom: 28%; right: 10%; width: 70px; height: 120px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,0.5); transform-origin: bottom center; animation: bi-giant 6s ease-in-out infinite;
}
.scn-biblical-reflection .david {
  position: absolute; bottom: 30%; left: 20%; width: 16px; height: 30px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bi-david 4s ease-in-out infinite;
}
.scn-biblical-reflection .sling {
  position: absolute; bottom: 40%; left: 22%; width: 12px; height: 4px; background: #8a6a4a; border-radius: 20px; transform: rotate(-30deg); box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: bi-sling 2s ease-in-out infinite;
}
.scn-biblical-reflection .tent {
  position: absolute; bottom: 25%; right: 60%; width: 80px; height: 60px; background: linear-gradient(135deg, #c8a060 0%, #a08040 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); opacity: 0.8; animation: bi-tent 9s ease-in-out infinite alternate;
}
.scn-biblical-reflection .sun-glow {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 60px; background: radial-gradient(circle, #ffe080 0%, #f0c040 50%, transparent 70%); transform: translateX(-50%); border-radius: 50%; box-shadow: 0 0 40px 20px #f0c040; animation: bi-sunglow 8s ease-in-out infinite alternate;
}
@keyframes bi-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes bi-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bi-giant { 0%,100% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.02) translateX(-3px); } }
@keyframes bi-david { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(1deg); } 100% { transform: translateX(16px) rotate(0); } }
@keyframes bi-sling { 0%,100% { transform: rotate(-30deg); } 50% { transform: rotate(-20deg); } }
@keyframes bi-tent { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes bi-sunglow { 0% { transform: translateX(-50%) scale(0.9); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.1); opacity: 1; } 100% { transform: translateX(-50%) scale(1); opacity: 0.9; } }

.scn-letter-to-burgundy {
  background: linear-gradient(180deg, #c8a060 0%, #b89050 40%, #a07040 100%), radial-gradient(ellipse at 50% 30%, #e8c880 0%, transparent 70%);
}
.scn-letter-to-burgundy .wall {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(135deg, #b89860 0%, #a08050 100%); box-shadow: inset 0 8px 30px rgba(0,0,0,0.2); animation: lb-wall 12s ease-in-out infinite alternate;
}
.scn-letter-to-burgundy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,0.3);
}
.scn-letter-to-burgundy .desk {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.4); animation: lb-desk 9s ease-in-out infinite alternate;
}
.scn-letter-to-burgundy .figure {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lb-figure 5s ease-in-out infinite;
}
.scn-letter-to-burgundy .candle {
  position: absolute; bottom: 30%; left: 52%; width: 8px; height: 40px; background: linear-gradient(180deg, #f0e0c0 0%, #c8a060 60%, #8a6a3a 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 20px 8px #f0c060; animation: lb-candle 3s ease-in-out infinite alternate;
}
.scn-letter-to-burgundy .parchment {
  position: absolute; bottom: 20%; left: 46%; width: 40px; height: 30px; background: linear-gradient(135deg, #f0e0c0 0%, #d8c090 100%); border-radius: 2px; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: lb-parchment 8s ease-in-out infinite;
}
.scn-letter-to-burgundy .quill {
  position: absolute; bottom: 22%; left: 52%; width: 2px; height: 30px; background: linear-gradient(180deg, #e8d0b0 0%, #a08050 100%); transform: rotate(-15deg); transform-origin: bottom center; animation: lb-quill 4s ease-in-out infinite;
}
@keyframes lb-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lb-desk { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes lb-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lb-candle { 0% { box-shadow: 0 0 15px 5px #f0c060; opacity: 0.9; } 50% { box-shadow: 0 0 30px 12px #ffd080; opacity: 1; } 100% { box-shadow: 0 0 20px 8px #f0c060; opacity: 0.95; } }
@keyframes lb-parchment { 0%,100% { transform: rotate(5deg); } 50% { transform: rotate(3deg); } }
@keyframes lb-quill { 0%,100% { transform: rotate(-15deg); } 50% { transform: rotate(-20deg); } }

.scn-burgundy-embassy {
  background: linear-gradient(135deg, #d8c090 0%, #c8a870 40%, #b09060 100%), radial-gradient(ellipse at 50% 20%, #f0d8a0 0%, transparent 60%);
}
.scn-burgundy-embassy .bg-wall {
  position: absolute; inset: 0 0 25% 0; background: linear-gradient(135deg, #c8a870 0%, #a08050 100%); box-shadow: inset 0 8px 30px rgba(0,0,0,0.15); animation: be-wall 12s ease-in-out infinite alternate;
}
.scn-burgundy-embassy .window {
  position: absolute; top: 15%; left: 50%; width: 80px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #e0d8c0 0%, #c8b8a0 100%); border: 6px solid #8a6a3a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); animation: be-window 15s ease-in-out infinite alternate;
}
.scn-burgundy-embassy .table {
  position: absolute; bottom: 20%; left: 50%; width: 140px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-burgundy-embassy .ambassador-left {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: be-ambassador-left 5s ease-in-out infinite;
}
.scn-burgundy-embassy .ambassador-right {
  position: absolute; bottom: 28%; right: 30%; width: 30px; height: 70px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: be-ambassador-right 5s ease-in-out infinite 0.5s;
}
.scn-burgundy-embassy .document {
  position: absolute; bottom: 22%; left: 46%; width: 50px; height: 35px; background: linear-gradient(135deg, #f0e0c0 0%, #d8c090 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: be-document 8s ease-in-out infinite;
}
.scn-burgundy-embassy .chandelier {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 40px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #d8b080 0%, #b08050 100%); border-radius: 50% 50% 30% 30% / 100% 100% 60% 60%; box-shadow: 0 0 30px 10px #f0c060; animation: be-chandelier 4s ease-in-out infinite alternate;
}
@keyframes be-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes be-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes be-ambassador-left { 0%,100% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-3px) rotate(1deg); } }
@keyframes be-ambassador-right { 0%,100% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(3px) rotate(-1deg); } }
@keyframes be-document { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(0deg); } }
@keyframes be-chandelier { 0% { box-shadow: 0 0 20px 6px #f0c060; transform: translateX(-50%) scaleY(1); } 50% { box-shadow: 0 0 40px 14px #ffd080; transform: translateX(-50%) scaleY(1.03); } 100% { box-shadow: 0 0 25px 8px #f0c060; transform: translateX(-50%) scaleY(1); } }

.scn-king-departs-reims {
  background: linear-gradient(180deg, #b8d4e6 0%, #e8c88a 50%, #d4a85a 100%), radial-gradient(ellipse at 50% 100%, #f0d080 0%, transparent 70%);
}
.scn-king-departs-reims .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #a0c4e0 0%, #b8d4e6 40%, transparent 100%); animation: kr-sky 12s ease-in-out infinite alternate;
}
.scn-king-departs-reims .city-wall {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%; background: linear-gradient(135deg, #a08a6a 0%, #7a6a4a 100%); border-radius: 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-king-departs-reims .gate {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 70px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: kr-gate 9s ease-in-out infinite alternate;
}
.scn-king-departs-reims .king-horse {
  position: absolute; bottom: 22%; left: 35%; width: 70px; height: 60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; transform-origin: bottom center; animation: kr-horse 4s ease-in-out infinite;
}
.scn-king-departs-reims .banner {
  position: absolute; bottom: 35%; left: 38%; width: 3px; height: 40px; background: #5a3a2a; transform-origin: bottom center; animation: kr-banner 3s ease-in-out infinite;
}
.scn-king-departs-reims .banner::after {
  content: ''; position: absolute; top: 0; left: 2px; width: 20px; height: 14px; background: #a0461a; /* terracotta, not red */ border-radius: 0 2px 2px 0; animation: kr-banner-flag 3s ease-in-out infinite;
}
.scn-king-departs-reims .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #7a8a5a 0%, #5a6a3a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-king-departs-reims .sun {
  position: absolute; top: 10%; left: 60%; width: 50px; height: 50px; background: radial-gradient(circle, #ffe080 0%, #f0c040 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 20px #f0c040; animation: kr-sun 8s ease-in-out infinite alternate;
}
@keyframes kr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes kr-gate { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes kr-horse { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes kr-banner { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes kr-banner-flag { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-10deg); } }
@keyframes kr-sun { 0% { transform: scale(0.9); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.9; } }

/* farrier-michel-apparition – dusk, tense */
.scn-farrier-michel-apparition {
  background: 
    linear-gradient(180deg, #2b1b3d 0%, #4a2e4c 30%, #6b4a3a 60%, #7a5b3a 80%, #5a3b2a 100%),
    radial-gradient(ellipse at 50% 60%, #7a5b3a 0%, transparent 70%);
}
.scn-farrier-michel-apparition .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1b1225 0%, #2b1b3d 40%, #4a2e4c 100%);
  animation: fm1-sky 14s ease-in-out infinite alternate;
}
.scn-farrier-michel-apparition .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a3b2a 0%, #3a2515 60%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: fm1-field 20s ease-in-out infinite;
}
.scn-farrier-michel-apparition .tree {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 200px;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 100%);
  border-radius: 10% 10% 5% 5% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  box-shadow: 0 0 15px rgba(0,0,0,0.5);
  animation: fm1-tree 12s ease-in-out infinite alternate;
}
.scn-farrier-michel-apparition .farrier {
  position: absolute; bottom: 15%; left: 18%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fm1-farrier 4s ease-in-out infinite;
}
.scn-farrier-michel-apparition .spectre {
  position: absolute; bottom: 25%; left: 48%; width: 30px; height: 70px;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,200,255,0.6) 0%, rgba(200,200,255,0.1) 70%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(4px);
  box-shadow: 0 0 30px 10px rgba(200,200,255,0.3);
  animation: fm1-spectre 6s ease-in-out infinite alternate;
}
.scn-farrier-michel-apparition .orb {
  position: absolute; bottom: 50%; left: 42%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8d0ff 0%, #a0b0ff 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(160,176,255,0.6), 0 0 40px 15px rgba(160,176,255,0.3);
  animation: fm1-orb 8s ease-in-out infinite alternate;
}
.scn-farrier-michel-apparition .shadow {
  position: absolute; bottom: 12%; left: 15%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  border-radius: 50%;
  opacity: 0.7;
  animation: fm1-shadow 4s ease-in-out infinite alternate;
}
@keyframes fm1-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes fm1-field { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fm1-tree { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(0.98) translateY(-1px) } 100% { transform: scaleX(1) translateY(0) } }
@keyframes fm1-farrier { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(9px) rotate(1deg) } 100% { transform: translateX(12px) rotate(0deg) } }
@keyframes fm1-spectre { 0% { opacity:0.3; filter: blur(6px); } 50% { opacity:0.8; filter: blur(3px); } 100% { opacity:0.4; filter: blur(5px); } }
@keyframes fm1-orb { 0% { transform: translate(0,0); opacity:0.6; } 50% { transform: translate(4px,-6px); opacity:1; } 100% { transform: translate(-2px,2px); opacity:0.7; } }
@keyframes fm1-shadow { 0% { transform: scaleX(1); opacity:0.5; } 100% { transform: scaleX(1.2); opacity:0.8; } }

/* spectre-commands – firelit, tense */
.scn-spectre-commands {
  background: 
    linear-gradient(180deg, #1a0e0a 0%, #2a1608 30%, #4a2a10 60%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 80%, #7a3a10 0%, transparent 60%);
}
.scn-spectre-commands .wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-spectre-commands .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-spectre-commands .fireplace {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%); width: 120px; height: 80px;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 5% 5% / 50% 50% 20% 20%;
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
}
.scn-spectre-commands .spectre {
  position: absolute; bottom: 28%; left: 60%; width: 35px; height: 80px;
  background: radial-gradient(ellipse at 50% 20%, rgba(255,180,100,0.7) 0%, rgba(255,150,50,0.2) 60%, transparent 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%;
  filter: blur(3px);
  box-shadow: 0 0 40px 10px rgba(255,150,50,0.4);
  animation: sc2-spectre 5s ease-in-out infinite alternate;
}
.scn-spectre-commands .kneeler {
  position: absolute; bottom: 15%; left: 32%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sc2-kneeler 4s ease-in-out infinite;
}
.scn-spectre-commands .flame1 {
  position: absolute; bottom: 33%; left: 48%; width: 10px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #ff9020 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px);
  box-shadow: 0 0 15px 5px #ff9020;
  animation: sc2-flame1 1.5s ease-in-out infinite alternate;
}
.scn-spectre-commands .flame2 {
  position: absolute; bottom: 35%; left: 52%; width: 8px; height: 16px;
  background: radial-gradient(circle, #ffc060 0%, #ff7010 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px);
  box-shadow: 0 0 12px 4px #ff7010;
  animation: sc2-flame2 1.8s ease-in-out infinite alternate;
}
@keyframes sc2-spectre { 0% { opacity:0.6; filter: blur(4px); } 50% { opacity:1; filter: blur(2px); } 100% { opacity:0.7; filter: blur(3px); } }
@keyframes sc2-kneeler { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sc2-flame1 { 0% { transform: scaleY(1) translateY(0); opacity:0.8; } 50% { transform: scaleY(1.3) translateY(-3px); opacity:1; } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.6; } }
@keyframes sc2-flame2 { 0% { transform: scaleY(1) translateY(0); opacity:0.7; } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.8) translateY(1px); opacity:0.5; } }

/* farrier-fear – dark, tense */
.scn-farrier-fear {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0a0a14 100%),
    radial-gradient(ellipse at 50% 120%, #1a1a2e 0%, transparent 70%);
}
.scn-farrier-fear .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a30 50%, #0a0a1a 100%);
  animation: ff3-sky 18s ease-in-out infinite alternate;
}
.scn-farrier-fear .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 60% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-farrier-fear .tree {
  position: absolute; bottom: 10%; left: 25%; width: 60px; height: 250px;
  background: linear-gradient(180deg, #121212 0%, #1a1a1a 100%);
  border-radius: 10% 10% 5% 5% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px rgba(0,0,0,0.7);
  animation: ff3-tree 15s ease-in-out infinite alternate;
}
.scn-farrier-fear .farrier {
  position: absolute; bottom: 10%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: ff3-farrier 5s ease-in-out infinite;
}
.scn-farrier-fear .moon {
  position: absolute; top: 15%; left: 70%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c8d0e0 0%, #a0b0c0 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(160,176,192,0.3);
  animation: ff3-moon 30s linear infinite;
}
.scn-farrier-fear .glow {
  position: absolute; bottom: 30%; left: 38%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,220,255,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ff3-glow 8s ease-in-out infinite alternate;
}
@keyframes ff3-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ff3-tree { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.97) } 100% { transform: scaleX(1) } }
@keyframes ff3-farrier { 0% { transform: rotate(-12deg) translateY(0) } 25% { transform: rotate(-8deg) translateY(-2px) } 50% { transform: rotate(-12deg) translateY(0) } 75% { transform: rotate(-9deg) translateY(-1px) } 100% { transform: rotate(-12deg) translateY(0) } }
@keyframes ff3-moon { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }
@keyframes ff3-glow { 0% { opacity:0.2; transform: scale(1) } 50% { opacity:0.5; transform: scale(1.2) } 100% { opacity:0.3; transform: scale(0.9) } }

/* governor-consulted – bright-interior, calm */
.scn-governor-consulted {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d4c8b0 40%, #b8a890 100%),
    radial-gradient(ellipse at 50% 80%, #d4c8b0 0%, transparent 70%);
}
.scn-governor-consulted .wall {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #d8c8b8 0%, #b8a890 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.1);
}
.scn-governor-consulted .window {
  position: absolute; top: 10%; left: 60%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%);
  border: 6px solid #8a7a6a;
  border-radius: 5% 5% 5% 5% / 10% 10% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(255,255,200,0.3);
  animation: gc4-window 12s ease-in-out infinite alternate;
}
.scn-governor-consulted .desk {
  position: absolute; bottom: 10%; left: 20%; width: 140px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 5% 5% 10% 10% / 20% 20% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-governor-consulted .governor {
  position: absolute; bottom: 25%; left: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gc4-governor 6s ease-in-out infinite;
}
.scn-governor-consulted .farrier {
  position: absolute; bottom: 15%; left: 55%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: gc4-farrier 5s ease-in-out infinite;
}
.scn-governor-consulted .chair {
  position: absolute; bottom: 5%; left: 22%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: gc4-chair 8s ease-in-out infinite alternate;
}
@keyframes gc4-window { 0% { opacity:0.9; box-shadow: 0 0 20px 5px rgba(255,255,200,0.2); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(255,255,200,0.4); } 100% { opacity:0.95; box-shadow: 0 0 25px 8px rgba(255,255,200,0.3); } }
@keyframes gc4-governor { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gc4-farrier { 0% { transform: rotate(-6deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-1px); } 50% { transform: rotate(-5deg) translateY(0); } 75% { transform: rotate(-4deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes gc4-chair { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }

.scn-maid-return-wish { background: linear-gradient(180deg, #0e0e2e 0%, #1a1a4e 40%, #2a225a 100%), radial-gradient(ellipse at 50% 100%, #3a2a5a 0%, transparent 70%); }
.scn-maid-return-wish .bg-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1a4e 0%, transparent 100%); animation: mrw-sky 12s ease-in-out infinite alternate; }
.scn-maid-return-wish .bg-ridge { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 6px 18px rgba(0,0,0,.6); animation: mrw-ridge 20s ease-in-out infinite alternate; }
.scn-maid-return-wish .bg-trees { position:absolute; bottom:25%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%); clip-path: polygon(0% 100%, 5% 30%, 12% 50%, 18% 10%, 25% 45%, 32% 20%, 40% 55%, 48% 15%, 55% 60%, 62% 25%, 70% 50%, 78% 10%, 85% 40%, 92% 20%, 100% 50%, 100% 100%); animation: mrw-trees 24s ease-in-out infinite alternate; }
.scn-maid-return-wish .soldier { position:absolute; bottom:20%; width:14px; height:36px; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: mrw-march 6s ease-in-out infinite; }
.scn-maid-return-wish .soldier-a { left:15%; animation-delay:0s; }
.scn-maid-return-wish .soldier-b { left:30%; animation-delay:0.3s; }
.scn-maid-return-wish .soldier-c { left:45%; animation-delay:0.6s; }
.scn-maid-return-wish .figure { position:absolute; bottom:18%; right:20%; width:16px; height:40px; background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mrw-figure 4s ease-in-out infinite; }
.scn-maid-return-wish .lamp { position:absolute; bottom:28%; right:19%; width:6px; height:6px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius:50%; box-shadow: 0 0 12px 3px rgba(255,208,128,.6), 0 0 24px 6px rgba(255,208,128,.3); animation: mrw-lamp 2s ease-in-out infinite alternate; }
.scn-maid-return-wish .dust { position:absolute; bottom:15%; width:4px; height:4px; background: rgba(255,255,200,.15); border-radius:50%; filter: blur(1px); }
.scn-maid-return-wish .dust-a { left:10%; animation: mrw-dust 8s linear infinite; }
.scn-maid-return-wish .dust-b { left:60%; animation: mrw-dust 10s linear infinite 2s; }
@keyframes mrw-sky { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes mrw-ridge { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mrw-trees { 0% { transform: translateX(0) } 50% { transform: translateX(-4px) } 100% { transform: translateX(2px) } }
@keyframes mrw-march { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes mrw-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(-3px) translateY(-2px) rotate(2deg) } }
@keyframes mrw-lamp { 0% { opacity:.7; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(1) } }
@keyframes mrw-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.3 } 50% { transform: translateY(-20px) translateX(10px) scale(1.5); opacity:.6 } 100% { transform: translateY(-40px) translateX(-5px) scale(0); opacity:0 } }

.scn-maid-consents { background: linear-gradient(180deg, #0a0a2e 0%, #161646 40%, #1e1e5a 100%), radial-gradient(ellipse at 50% 0%, #2a2a6e 0%, transparent 70%); }
.scn-maid-consents .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a2e 0%, #161646 50%, #1a1a4e 100%); animation: mc-night 15s ease-in-out infinite alternate; }
.scn-maid-consents .bg-moon { position:absolute; top:8%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #d0d0f0 0%, #a0a0d0 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(160,160,220,.3); animation: mc-moon 12s ease-in-out infinite alternate; }
.scn-maid-consents .tree { position:absolute; bottom:10%; width:20px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%; animation: mc-tree 18s ease-in-out infinite alternate; }
.scn-maid-consents .tree-l { left:10%; height:160px; }
.scn-maid-consents .tree-r { right:10%; height:140px; animation-delay:-6s; }
.scn-maid-consents .figure { position:absolute; bottom:20%; width:16px; height:44px; background: linear-gradient(180deg, #1a1a3a 0%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-fig 8s ease-in-out infinite; }
.scn-maid-consents .fig-a { left:38%; }
.scn-maid-consents .fig-b { right:38%; animation-delay:-2s; }
.scn-maid-consents .glow { position:absolute; bottom:30%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, rgba(200,200,240,.15) 0%, transparent 100%); border-radius:50%; animation: mc-glow 6s ease-in-out infinite alternate; }
.scn-maid-consents .drape { position:absolute; top:0; width:30%; height:100%; background: linear-gradient(180deg, rgba(10,10,30,.8) 0%, transparent 50%, rgba(10,10,30,.6) 100%); animation: mc-drape 20s ease-in-out infinite alternate; }
.scn-maid-consents .drape-l { left:0; }
.scn-maid-consents .drape-r { right:0; animation-delay:-10s; }
@keyframes mc-night { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes mc-moon { 0% { transform: translate(0, 0) scale(1); opacity:.8 } 50% { transform: translate(-5px, 3px) scale(1.05); opacity:1 } 100% { transform: translate(2px, -2px) scale(.98); opacity:.85 } }
@keyframes mc-tree { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-.5deg) } }
@keyframes mc-fig { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(2px) translateY(-2px) rotate(1deg) } }
@keyframes mc-glow { 0% { opacity:.3; transform: translateX(-50%) scale(1) } 50% { opacity:.6; transform: translateX(-50%) scale(1.2) } 100% { opacity:.4; transform: translateX(-50%) scale(.9) } }
@keyframes mc-drape { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-checy-arrival { background: linear-gradient(180deg, #ff9966 0%, #ffcc88 30%, #ddaa77 60%, #774433 100%), radial-gradient(ellipse at 50% 0%, #ffeebb 0%, transparent 70%); }
.scn-checy-arrival .bg-dawn { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffaa77 0%, #ffddaa 50%, transparent 100%); animation: ca-dawn 18s ease-in-out infinite alternate; }
.scn-checy-arrival .bg-mist { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(255,220,180,.3) 0%, transparent 100%); filter: blur(12px); animation: ca-mist 25s ease-in-out infinite alternate; }
.scn-checy-arrival .river { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5577aa 0%, #336688 50%, #1a4466 100%); animation: ca-river 20s ease-in-out infinite alternate; }
.scn-checy-arrival .barge { position:absolute; bottom:10%; width:60px; height:18px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: ca-barge 24s ease-in-out infinite; }
.scn-checy-arrival .barge-1 { left:8%; animation-delay:0s; }
.scn-checy-arrival .barge-2 { left:50%; width:50px; height:14px; animation-delay:-8s; }
.scn-checy-arrival .sail { position:absolute; bottom:28%; left:12%; width:10px; height:22px; background: linear-gradient(180deg, #f0e8d0 0%, #d0c8a0 100%); border-radius: 10% 30% 30% 10% / 40% 30% 30% 40%; transform-origin: bottom center; animation: ca-sail 10s ease-in-out infinite alternate; }
.scn-checy-arrival .cargo { position:absolute; bottom:13%; left:14%; width:30px; height:12px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 10%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ca-cargo 6s ease-in-out infinite; }
.scn-checy-arrival .figure { position:absolute; bottom:16%; left:30%; width:12px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-fig 4s ease-in-out infinite; }
.scn-checy-arrival .ripple { position:absolute; bottom:5%; width:30px; height:4px; background: rgba(255,255,255,.15); border-radius:50%; filter: blur(2px); }
.scn-checy-arrival .ripple-a { left:20%; animation: ca-ripple 8s ease-in-out infinite; }
.scn-checy-arrival .ripple-b { left:60%; animation: ca-ripple 10s ease-in-out infinite 2s; }
@keyframes ca-dawn { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ca-mist { 0% { opacity:.2; transform: translateX(0) } 50% { opacity:.5; transform: translateX(10px) } 100% { opacity:.3; transform: translateX(-5px) } }
@keyframes ca-river { 0% { background: linear-gradient(180deg, #5577aa 0%, #336688 50%, #1a4466 100%); } 50% { background: linear-gradient(180deg, #6688bb 0%, #4477aa 50%, #225577 100%); } 100% { background: linear-gradient(180deg, #5577aa 0%, #336688 50%, #1a4466 100%); } }
@keyframes ca-barge { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(15px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(30px) translateY(0) rotate(-1deg) } 75% { transform: translateX(45px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(60px) translateY(0) rotate(0) } }
@keyframes ca-sail { 0% { transform: translateY(0) rotate(-2deg); opacity:.8 } 50% { transform: translateY(-4px) rotate(3deg); opacity:1 } 100% { transform: translateY(-1px) rotate(-1deg); opacity:.9 } }
@keyframes ca-cargo { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ca-fig { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg) } }
@keyframes ca-ripple { 0% { transform: scale(1); opacity:.3 } 50% { transform: scale(2); opacity:.6 } 100% { transform: scale(3); opacity:0 } }

.scn-checy-crowds { background: linear-gradient(180deg, #88bbff 0%, #ffdd99 30%, #ffcc77 60%, #aa7744 100%), radial-gradient(ellipse at 50% 0%, #ccddff 0%, transparent 60%); }
.scn-checy-crowds .bg-sun { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #99ccff 0%, #ffeebb 100%); animation: cc-sun 8s ease-in-out infinite alternate; }
.scn-checy-crowds .bg-wall { position:absolute; bottom:20%; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #ccaa88 0%, #aa8866 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: cc-wall 20s ease-in-out infinite alternate; }
.scn-checy-crowds .gate { position:absolute; bottom:20%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: cc-gate 12s ease-in-out infinite; }
.scn-checy-crowds .crowd { position:absolute; bottom:20%; width:8px; height:28px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: cc-crowd 5s ease-in-out infinite; }
.scn-checy-crowds .crowd-1 { left:20%; animation-delay:0s; }
.scn-checy-crowds .crowd-2 { left:30%; animation-delay:0.4s; }
.scn-checy-crowds .crowd-3 { left:40%; animation-delay:0.8s; }
.scn-checy-crowds .figure { position:absolute; bottom:28%; left:48%; width:14px; height:36px; background: linear-gradient(180deg, #8a6a4a 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cc-fig 4s ease-in-out infinite; }
.scn-checy-crowds .maid { left:52%; width:12px; height:34px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); animation-delay:-1.5s; }
.scn-checy-crowds .banner { position:absolute; bottom:35%; left:50%; width:2px; height:24px; background: #4a3a2a; transform:translateX(-50%); box-shadow: 0 0 0 0; animation: cc-banner 3s ease-in-out infinite; }
.scn-checy-crowds .banner::before { content:''; position:absolute; top:-6px; left:-6px; width:14px; height:10px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 0 50% 50% 0 / 0 60% 60% 0; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: cc-banner-fabric 3s ease-in-out infinite; }
.scn-checy-crowds .dust { position:absolute; bottom:15%; left:30%; width:6px; height:6px; background: rgba(200,180,150,.2); border-radius:50%; filter: blur(2px); animation: cc-dust 6s ease-in-out infinite; }
@keyframes cc-sun { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes cc-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cc-gate { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-1px) } }
@keyframes cc-crowd { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes cc-fig { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(2px) translateY(-2px) rotate(1deg) } }
@keyframes cc-banner { 0%,100% { transform: translateX(-50%) rotate(-3deg) } 50% { transform: translateX(-50%) rotate(3deg) } }
@keyframes cc-banner-fabric { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } }
@keyframes cc-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.2 } 50% { transform: translateY(-15px) translateX(8px) scale(1.5); opacity:.5 } 100% { transform: translateY(-30px) translateX(-4px) scale(0); opacity:0 } }

/* Scene 1: jeanne-takes-baths */
.scn-jeanne-takes-baths {
  background:
    linear-gradient(180deg, #e8d8c0 0%, #d4c0a0 40%, #c0a888 100%),
    radial-gradient(ellipse at 50% 80%, #ffeedd 0%, transparent 50%);
}
.scn-jeanne-takes-baths .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #b8a080 0%, #a08870 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-jeanne-takes-baths .tub {
  position:absolute; bottom:25%; left:25%; width:50%; height:30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% / 30%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4), 0 8px 16px rgba(0,0,0,0.3);
}
.scn-jeanne-takes-baths .water {
  position:absolute; bottom:28%; left:28%; width:44%; height:10%;
  background: linear-gradient(180deg, #7ab8c8 0%, #4a8a9a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: jtb-water 6s ease-in-out infinite alternate;
}
.scn-jeanne-takes-baths .steam-a {
  position:absolute; bottom:45%; left:30%; width:40%; height:20%;
  background: radial-gradient(ellipse, rgba(255,255,255,0.5) 0%, transparent 70%);
  filter: blur(12px);
  animation: jtb-steam 8s ease-in-out infinite alternate;
}
.scn-jeanne-takes-baths .steam-b {
  position:absolute; bottom:50%; right:20%; width:30%; height:15%;
  background: radial-gradient(ellipse, rgba(255,255,240,0.4) 0%, transparent 60%);
  filter: blur(10px);
  animation: jtb-steam 10s ease-in-out infinite alternate-reverse;
}
.scn-jeanne-takes-baths .figure {
  position:absolute; bottom:28%; left:38%; width:14%; height:25%;
  background: radial-gradient(ellipse at 50% 30%, #e8d0b8 0%, #b89878 50%, #7a5a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: jtb-figure 4s ease-in-out infinite;
  box-shadow: inset 0 -10px 15px rgba(0,0,0,0.3);
}
.scn-jeanne-takes-baths .matron {
  position:absolute; bottom:30%; left:58%; width:12%; height:28%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: jtb-matron 6s ease-in-out infinite;
}
@keyframes jtb-water { 0% { transform: scaleY(1) translateY(0); opacity:0.9 } 50% { transform: scaleY(1.02) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.98) translateY(1px); opacity:0.85 } }
@keyframes jtb-steam { 0% { transform: translateY(0) scaleX(1); opacity:0.6 } 50% { transform: translateY(-10px) scaleX(1.1); opacity:0.8 } 100% { transform: translateY(-5px) scaleX(0.95); opacity:0.5 } }
@keyframes jtb-figure { 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 jtb-matron { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(0deg); } }

/* Scene 2: bath-etiquette */
.scn-bath-etiquette {
  background:
    linear-gradient(180deg, #d4c4a8 0%, #c0a888 40%, #a08c70 100%),
    radial-gradient(circle at 50% 90%, #ffe8d0 0%, transparent 60%);
}
.scn-bath-etiquette .chamber {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #c8b498 0%, #b09878 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
}
.scn-bath-etiquette .canopy {
  position:absolute; top:5%; left:15%; width:70%; height:25%;
  background: linear-gradient(180deg, #8a4a2a 0%, #5a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 30% 30%;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.4);
}
.scn-bath-etiquette .tub {
  position:absolute; bottom:25%; left:20%; width:60%; height:28%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 40% / 30%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5), 0 6px 12px rgba(0,0,0,0.3);
}
.scn-bath-etiquette .water {
  position:absolute; bottom:30%; left:25%; width:50%; height:8%;
  background: linear-gradient(180deg, #6ab0c0 0%, #3a8090 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  animation: be-water 5s ease-in-out infinite alternate;
}
.scn-bath-etiquette .steam {
  position:absolute; bottom:50%; left:28%; width:44%; height:20%;
  background: radial-gradient(ellipse, rgba(255,255,240,0.5) 0%, transparent 60%);
  filter: blur(15px);
  animation: be-steam 9s ease-in-out infinite alternate;
}
.scn-bath-etiquette .gilt-edge {
  position:absolute; bottom:40%; left:22%; width:56%; height:4px;
  background: linear-gradient(90deg, #b09040 0%, #d0b060 50%, #b09040 100%);
  box-shadow: 0 0 10px rgba(200,160,80,0.6);
  animation: be-gilt 4s ease-in-out infinite;
}
.scn-bath-etiquette .servant {
  position:absolute; bottom:30%; left:15%; width:10%; height:26%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: be-servant 6s ease-in-out infinite;
}
.scn-bath-etiquette .servant-b {
  position:absolute; bottom:30%; right:15%; width:10%; height:26%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: be-servant 6s ease-in-out infinite reverse;
  animation-delay: -2s;
}
@keyframes be-water { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.03) translateY(-2px); } 100% { transform: scaleY(0.97) translateY(1px); } }
@keyframes be-steam { 0% { transform: translateY(0) scaleX(1); opacity:0.6 } 50% { transform: translateY(-12px) scaleX(1.1); opacity:0.8 } 100% { transform: translateY(-6px) scaleX(0.9); opacity:0.5 } }
@keyframes be-gilt { 0% { opacity:0.7; box-shadow:0 0 8px rgba(200,160,80,0.4); } 50% { opacity:1; box-shadow:0 0 16px rgba(200,160,80,0.8); } 100% { opacity:0.8; box-shadow:0 0 10px rgba(200,160,80,0.5); } }
@keyframes be-servant { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }

/* Scene 3: jeanne-bath-virginity */
.scn-jeanne-bath-virginity {
  background:
    linear-gradient(180deg, #b8a898 0%, #a09080 40%, #8a7868 100%),
    radial-gradient(ellipse at 70% 60%, #e8d8c8 0%, transparent 50%);
}
.scn-jeanne-bath-virginity .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #9a8a78 0%, #7a6a58 100%);
  border-radius: 0 0 10% 10% / 0 0 5% 5%;
}
.scn-jeanne-bath-virginity .window {
  position:absolute; top:10%; right:10%; width:20%; height:30%;
  background: radial-gradient(ellipse, #c0d8e8 0%, #80a0b8 70%);
  border: 4px solid #5a4a3a;
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 0 20px rgba(180,200,220,0.5);
  animation: jbv-window 12s ease-in-out infinite alternate;
}
.scn-jeanne-bath-virginity .river {
  position:absolute; top:25%; right:12%; width:16%; height:10%;
  background: linear-gradient(180deg, #6a9aaa 0%, #3a6a7a 100%);
  border-radius: 50%;
  animation: jbv-river 6s ease-in-out infinite alternate;
}
.scn-jeanne-bath-virginity .tub {
  position:absolute; bottom:25%; left:20%; width:60%; height:30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% / 30%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4), 0 8px 16px rgba(0,0,0,0.3);
}
.scn-jeanne-bath-virginity .water {
  position:absolute; bottom:30%; left:25%; width:50%; height:10%;
  background: linear-gradient(180deg, #8cc8d8 0%, #5090a0 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: jbv-water 5s ease-in-out infinite alternate;
}
.scn-jeanne-bath-virginity .steam {
  position:absolute; bottom:45%; left:28%; width:44%; height:20%;
  background: radial-gradient(ellipse, rgba(255,255,240,0.4) 0%, transparent 60%);
  filter: blur(12px);
  animation: jbv-steam 8s ease-in-out infinite alternate;
}
.scn-jeanne-bath-virginity .figure {
  position:absolute; bottom:28%; left:42%; width:12%; height:24%;
  background: radial-gradient(ellipse at 50% 30%, #e8d0b8 0%, #b89878 50%, #7a5a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: jbv-figure 4s ease-in-out infinite;
  box-shadow: inset 0 -10px 15px rgba(0,0,0,0.3);
}
@keyframes jbv-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes jbv-river { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-3px) scaleY(1.05); } 100% { transform: translateX(2px) scaleY(0.95); } }
@keyframes jbv-water { 0% { transform: scaleY(1) translateY(0); opacity:0.9 } 50% { transform: scaleY(1.02) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.98) translateY(1px); opacity:0.85 } }
@keyframes jbv-steam { 0% { transform: translateY(0) scaleX(1); opacity:0.5 } 50% { transform: translateY(-10px) scaleX(1.1); opacity:0.7 } 100% { transform: translateY(-5px) scaleX(0.95); opacity:0.4 } }
@keyframes jbv-figure { 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); } }

/* Scene 4: jeanne-simple-life */
.scn-jeanne-simple-life {
  background:
    linear-gradient(180deg, #2a2420 0%, #1a1410 50%, #0e0a08 100%),
    radial-gradient(circle at 60% 40%, #4a3a28 0%, transparent 70%);
}
.scn-jeanne-simple-life .wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #3a3028 0%, #2a2018 100%);
  border-radius: 0 0 15% 15% / 0 0 8% 8%;
}
.scn-jeanne-simple-life .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
}
.scn-jeanne-simple-life .bed {
  position:absolute; bottom:20%; left:20%; width:60%; height:20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% / 20%;
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.5);
}
.scn-jeanne-simple-life .candle {
  position:absolute; top:45%; left:30%; width:4%; height:12%;
  background: linear-gradient(180deg, #d0b060 0%, #8a7020 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 0 20px 5px rgba(200,160,60,0.6);
  animation: jsl-candle 3s ease-in-out infinite alternate;
}
.scn-jeanne-simple-life .glow {
  position:absolute; top:35%; left:28%; width:8%; height:10%;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  animation: jsl-glow 3s ease-in-out infinite alternate;
}
.scn-jeanne-simple-life .figure {
  position:absolute; bottom:22%; left:45%; width:10%; height:28%;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: jsl-figure 5s ease-in-out infinite;
}
.scn-jeanne-simple-life .cross {
  position:absolute; top:15%; left:50%; width:2%; height:12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  transform: translateX(-50%);
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
}
.scn-jeanne-simple-life .cross::before {
  content:''; position:absolute; top:25%; left:-150%; width:400%; height:30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
}
.scn-jeanne-simple-life .figure.knelt {
  bottom:22%;
  animation: jsl-kneel 5s ease-in-out infinite;
}
@keyframes jsl-candle { 0% { transform: scaleY(1); opacity:0.8; box-shadow:0 0 15px 3px rgba(200,160,60,0.4); } 50% { transform: scaleY(1.02); opacity:1; box-shadow:0 0 25px 8px rgba(200,160,60,0.7); } 100% { transform: scaleY(0.98); opacity:0.9; box-shadow:0 0 20px 5px rgba(200,160,60,0.5); } }
@keyframes jsl-glow { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(0.9); } }
@keyframes jsl-figure { 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 jsl-kneel { 0% { transform: translateY(0) rotate(0deg) scaleY(1); } 50% { transform: translateY(-2px) rotate(2deg) scaleY(1.02); } 100% { transform: translateY(0) rotate(0deg) scaleY(1); } }

/* pension-bertolini-arrival */
.scn-pension-bertolini-arrival {
  background: linear-gradient(180deg, #f2e8d0 0%, #d9c8a8 40%, #b8a080 100%),
              radial-gradient(ellipse at 20% 30%, #e8dcc0 0%, transparent 60%);
}
.scn-pension-bertolini-arrival .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f0e4c8, #d4ba94);
  animation: ba-room 20s ease-in-out infinite alternate;
}
.scn-pension-bertolini-arrival .window-frame {
  position: absolute; top: 15%; left: 55%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #8a7a5a, #6b5d3e);
  border: 6px solid #5c4f33;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: ba-frame 8s ease-in-out infinite alternate;
}
.scn-pension-bertolini-arrival .window-view {
  position: absolute; top: 17%; left: 57%; width: 26%; height: 40%;
  background: linear-gradient(180deg, #aac8e0 0%, #7aa3c0 60%, #5a8aa8 100%);
  border-radius: 2px;
  animation: ba-view 12s ease-in-out infinite alternate;
}
.scn-pension-bertolini-arrival .chair {
  position: absolute; bottom: 20%; left: 20%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #6b4a2a, #4a2a10);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-2deg);
  animation: ba-chair 14s ease-in-out infinite alternate;
}
.scn-pension-bertolini-arrival .figure-emerson {
  position: absolute; bottom: 18%; left: 30%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 60%, #1a2a3a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(1deg);
  animation: ba-fig-e 6s ease-in-out infinite;
}
.scn-pension-bertolini-arrival .figure-lucy {
  position: absolute; bottom: 20%; left: 42%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #d4b890 0%, #b89a70 60%, #9a7a50 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ba-fig-l 5s ease-in-out infinite alternate;
}
.scn-pension-bertolini-arrival .carpet {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 40%, #3a1a0a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  opacity: 0.6;
  animation: ba-carpet 15s ease-in-out infinite alternate;
}
@keyframes ba-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ba-frame { 0% { box-shadow:inset 0 0 20px rgba(0,0,0,0.3) } 50% { box-shadow:inset 0 0 30px rgba(0,0,0,0.4) } 100% { box-shadow:inset 0 0 20px rgba(0,0,0,0.3) } }
@keyframes ba-view { 0% { filter:brightness(1) } 50% { filter:brightness(1.1) } 100% { filter:brightness(0.95) } }
@keyframes ba-chair { 0% { transform:rotate(-2deg) translateY(0) } 50% { transform:rotate(-1deg) translateY(-2px) } 100% { transform:rotate(-2deg) translateY(0) } }
@keyframes ba-fig-e { 0% { transform:translateX(0) rotate(1deg) } 25% { transform:translateX(3px) rotate(0deg) } 50% { transform:translateX(0) rotate(-1deg) } 75% { transform:translateX(-3px) rotate(0deg) } 100% { transform:translateX(0) rotate(1deg) } }
@keyframes ba-fig-l { 0% { transform:rotate(0deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(0deg) } }
@keyframes ba-carpet { 0% { opacity:0.6 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

/* pension-bertolini-evening */
.scn-pension-bertolini-evening {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2010 30%, #4a2a10 60%, #3a2010 100%),
              radial-gradient(ellipse at 50% 80%, #5a3a20 0%, transparent 60%);
}
.scn-pension-bertolini-evening .dining-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #5a3a20, #3a2010);
  animation: be-wall 18s ease-in-out infinite alternate;
}
.scn-pension-bertolini-evening .table {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 15%;
  background: linear-gradient(180deg, #6a4a2a, #4a2a10);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: be-table 12s ease-in-out infinite alternate;
}
.scn-pension-bertolini-evening .candle {
  position: absolute; bottom: 28%; left: 48%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #f0d080 0%, #c08040 60%, #604020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #f0a030, 0 0 40px 16px rgba(240,160,48,0.4);
  animation: be-candle 3s ease-in-out infinite alternate;
}
.scn-pension-bertolini-evening .wine-glass {
  position: absolute; bottom: 20%; left: 40%; width: 3%; height: 8%;
  background: linear-gradient(180deg, rgba(200,160,120,0.4) 0%, rgba(200,160,120,0.2) 60%, transparent 100%);
  border: 1px solid rgba(200,160,120,0.5);
  border-radius: 0 0 20% 20%;
  transform: rotate(-5deg);
  animation: be-glass 8s ease-in-out infinite;
}
.scn-pension-bertolini-evening .figure-signora {
  position: absolute; bottom: 16%; left: 30%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: be-signora 7s ease-in-out infinite alternate;
}
.scn-pension-bertolini-evening .figure-lucy-evening {
  position: absolute; bottom: 18%; left: 46%; width: 9%; height: 32%;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 60%, #806040 100%);
  border-radius: 35% 35% 30% 30% / 55% 55% 35% 35%;
  animation: be-lucy 6s ease-in-out infinite alternate;
}
.scn-pension-bertolini-evening .figure-clergyman {
  position: absolute; bottom: 17%; left: 56%; width: 10%; height: 36%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 60%, #1a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: be-clergy 9s ease-in-out infinite;
}
@keyframes be-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes be-table { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes be-candle { 0% { box-shadow:0 0 20px 8px #f0a030; opacity:0.95 } 50% { box-shadow:0 0 30px 12px #f0a030, 0 0 50px 20px rgba(240,160,48,0.3); opacity:1 } 100% { box-shadow:0 0 18px 6px #e09020; opacity:0.9 } }
@keyframes be-glass { 0% { transform:rotate(-5deg) translateY(0) } 33% { transform:rotate(-4deg) translateY(-1px) } 66% { transform:rotate(-6deg) translateY(1px) } 100% { transform:rotate(-5deg) translateY(0) } }
@keyframes be-signora { 0% { transform:rotate(0deg) } 50% { transform:rotate(1deg) } 100% { transform:rotate(0deg) } }
@keyframes be-lucy { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes be-clergy { 0% { transform:rotate(0deg) translateX(0) } 33% { transform:rotate(1deg) translateX(2px) } 66% { transform:rotate(-1deg) translateX(-2px) } 100% { transform:rotate(0deg) translateX(0) } }

/* item-violet-bouquet */
.scn-item-violet-bouquet {
  background: linear-gradient(180deg, #e8ddd0 0%, #d4c4b0 40%, #c0a890 100%),
              radial-gradient(circle at 30% 50%, #f0e8e0 0%, transparent 50%);
}
.scn-item-violet-bouquet .table-cloth {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 60%;
  background: linear-gradient(180deg, #faf5ee 0%, #efe0d0 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.1);
  animation: vb-cloth 15s ease-in-out infinite alternate;
}
.scn-item-violet-bouquet .bouquet-stem {
  position: absolute; bottom: 35%; left: 48%; width: 1.5%; height: 30%;
  background: linear-gradient(180deg, #4a7a3a, #2a5a1a);
  border-radius: 20%;
  transform: rotate(-10deg);
  animation: vb-stem 8s ease-in-out infinite alternate;
}
.scn-item-violet-bouquet .bouquet-leaves {
  position: absolute; bottom: 40%; left: 45%; width: 12%; height: 8%;
  background: radial-gradient(ellipse at 30% 50%, #5a8a4a, #3a6a2a);
  border-radius: 50% 20% 50% 20%;
  transform: rotate(20deg);
  animation: vb-leaves 12s ease-in-out infinite alternate;
}
.scn-item-violet-bouquet .violet-1 {
  position: absolute; bottom: 55%; left: 46%; width: 4%; height: 4%;
  background: radial-gradient(circle, #6a3a8a 0%, #4a1a6a 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(100,50,150,0.3);
  animation: vb-violet-a 5s ease-in-out infinite alternate;
}
.scn-item-violet-bouquet .violet-2 {
  position: absolute; bottom: 57%; left: 50%; width: 3.5%; height: 3.5%;
  background: radial-gradient(circle, #7a4a9a 0%, #5a2a7a 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(100,50,150,0.2);
  animation: vb-violet-b 6s ease-in-out infinite reverse;
}
.scn-item-violet-bouquet .violet-3 {
  position: absolute; bottom: 52%; left: 52%; width: 3%; height: 3%;
  background: radial-gradient(circle, #5a2a7a 0%, #3a0a5a 70%);
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(80,30,120,0.3);
  animation: vb-violet-c 7s ease-in-out infinite alternate;
}
.scn-item-violet-bouquet .window-light {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, transparent 60%);
  animation: vb-light 10s ease-in-out infinite alternate;
}
@keyframes vb-cloth { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes vb-stem { 0% { transform:rotate(-10deg) } 50% { transform:rotate(-8deg) } 100% { transform:rotate(-12deg) } }
@keyframes vb-leaves { 0% { transform:rotate(20deg) scale(1) } 50% { transform:rotate(22deg) scale(1.02) } 100% { transform:rotate(18deg) scale(0.98) } }
@keyframes vb-violet-a { 0% { transform:scale(1) } 50% { transform:scale(1.1) } 100% { transform:scale(0.95) } }
@keyframes vb-violet-b { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes vb-violet-c { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes vb-light { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.2 } }

/* pension-bertolini-morning */
.scn-pension-bertolini-morning {
  background: linear-gradient(135deg, #1a1a2a 0%, #2a2a3e 40%, #3a3a4e 70%, #2a2a3e 100%),
              radial-gradient(ellipse at 60% 40%, #e8d8a0 0%, transparent 50%);
}
.scn-pension-bertolini-morning .room-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2a, #2a2a3e);
  animation: bm-room 14s ease-in-out infinite alternate;
}
.scn-pension-bertolini-morning .window-frame-morning {
  position: absolute; top: 20%; left: 50%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #6a5a3a, #4a3a1a);
  border: 8px solid #3a2a10;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: bm-frame 10s ease-in-out infinite;
}
.scn-pension-bertolini-morning .view-sky {
  position: absolute; top: 22%; left: 52%; width: 36%; height: 20%;
  background: linear-gradient(180deg, #80bce0 0%, #a0d0f0 60%, #c0e0ff 100%);
  animation: bm-sky 8s ease-in-out infinite alternate;
}
.scn-pension-bertolini-morning .view-river {
  position: absolute; top: 42%; left: 52%; width: 36%; height: 12%;
  background: linear-gradient(180deg, #6090b0 0%, #4070a0 60%, #206090 100%);
  border-radius: 0 0 10% 10%;
  animation: bm-river 12s ease-in-out infinite alternate;
}
.scn-pension-bertolini-morning .view-bridge {
  position: absolute; top: 45%; left: 55%; width: 30%; height: 6%;
  background: linear-gradient(135deg, #4a3a2a, #2a1a0a);
  border-radius: 20% 20% 0 0;
  animation: bm-bridge 20s ease-in-out infinite alternate;
}
.scn-pension-bertolini-morning .view-hills {
  position: absolute; top: 36%; left: 52%; width: 36%; height: 10%;
  background: linear-gradient(135deg, #5a6a4a 0%, #3a5a2a 60%, #2a4a1a 100%);
  border-radius: 40% 40% 0 0;
  animation: bm-hills 16s ease-in-out infinite alternate;
}
.scn-pension-bertolini-morning .figure-lucy-morning {
  position: absolute; bottom: 15%; left: 35%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 60%, #806040 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: -4px 0 10px rgba(0,0,0,0.3);
  transform: rotate(2deg);
  animation: bm-lucy 5s ease-in-out infinite alternate;
}
.scn-pension-bertolini-morning .curtain {
  position: absolute; top: 20%; left: 49%; width: 5%; height: 50%;
  background: linear-gradient(180deg, #8a6a4a, #6a4a2a);
  border-radius: 30% 0 0 30%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.4);
  animation: bm-curtain 9s ease-in-out infinite alternate;
}
@keyframes bm-room { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes bm-frame { 0% { box-shadow:inset 0 0 30px rgba(0,0,0,0.5) } 50% { box-shadow:inset 0 0 20px rgba(0,0,0,0.3) } 100% { box-shadow:inset 0 0 30px rgba(0,0,0,0.5) } }
@keyframes bm-sky { 0% { filter:brightness(1) } 50% { filter:brightness(1.2) } 100% { filter:brightness(0.9) } }
@keyframes bm-river { 0% { opacity:0.8; filter:brightness(1) } 50% { opacity:1; filter:brightness(1.1) } 100% { opacity:0.85; filter:brightness(0.95) } }
@keyframes bm-bridge { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.02) } 100% { transform:scaleX(0.98) } }
@keyframes bm-hills { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes bm-lucy { 0% { transform:rotate(2deg) translateY(0) } 50% { transform:rotate(2deg) translateY(-3px) } 100% { transform:rotate(2deg) translateY(0) } }
@keyframes bm-curtain { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.1) } 100% { transform:scaleX(0.9) } }

/* english-array - tense, sunlit camp */
.scn-english-array {
  background: linear-gradient(180deg, #b0c8e0 0%, #87a8c0 30%, #6a8aa0 70%, #4a6a7a 100%),
              radial-gradient(ellipse at 60% 20%, #f0e0a0 0%, transparent 60%);
}
.scn-english-array .sky-sun {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #d4e8f0 0%, #b0c8e0 100%);
  animation: e1-sky 8s ease-in-out infinite alternate;
}
.scn-english-array .tent {
  position: absolute; bottom: 30%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #f0f4f0 0%, #d0d8d0 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 6px 6px 12px rgba(0,0,0,.3);
  transform-origin: bottom center;
}
.scn-english-array .tent-left { left: 22%; animation: e1-tent-sway 5s ease-in-out infinite alternate; }
.scn-english-array .tent-right { right: 22%; animation: e1-tent-sway 4s ease-in-out infinite alternate-reverse; }
.scn-english-array .men-at-arms {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #e8ece8 0%, #b8c4b8 100%);
  border-radius: 40% 40% 0 0;
  transform: translateX(-50%);
  animation: e1-men 12s ease-in-out infinite;
}
.scn-english-array .standard {
  position: absolute; bottom: 40%; left: 50%; width: 18px; height: 80px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  animation: e1-flag 6s ease-in-out infinite alternate;
}
.scn-english-array .distaff {
  position: absolute; bottom: 50%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d0c8a0 0%, #b0a880 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: e1-distaff 8s ease-in-out infinite;
}
.scn-english-array .sun-burst {
  position: absolute; top: 12%; left: 55%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe080 0%, #ffd060 30%, transparent 80%);
  border-radius: 50%;
  filter: blur(8px);
  animation: e1-sun 4s ease-in-out infinite alternate;
}
.scn-english-array .dust {
  position: absolute; bottom: 20%; width: 40px; height: 20px;
  background: rgba(180,180,160,.3);
  border-radius: 50%;
  filter: blur(10px);
}
.scn-english-array .dust-a { left: 10%; animation: e1-drift-a 12s linear infinite; }
.scn-english-array .dust-b { right: 15%; animation: e1-drift-b 18s linear infinite; }

@keyframes e1-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes e1-tent-sway { 0% { transform: scaleX(1) rotate(0deg) } 100% { transform: scaleX(1.03) rotate(1.5deg) } }
@keyframes e1-men { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.98) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes e1-flag { 0% { transform: translateX(-50%) rotate(-4deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes e1-distaff { 0% { transform: translate(-50%, -50%) rotate(0deg) } 50% { transform: translate(-50%, -50%) rotate(180deg) } 100% { transform: translate(-50%, -50%) rotate(360deg) } }
@keyframes e1-sun { 0% { opacity: .6; transform: scale(.8) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .7; transform: scale(.9) } }
@keyframes e1-drift-a { 0% { transform: translateX(0) translateY(0); opacity: .3 } 50% { transform: translateX(60px) translateY(-15px); opacity: .6 } 100% { transform: translateX(120px) translateY(0); opacity: .2 } }
@keyframes e1-drift-b { 0% { transform: translateX(0) translateY(0); opacity: .2 } 50% { transform: translateX(-40px) translateY(-10px); opacity: .5 } 100% { transform: translateX(-80px) translateY(0); opacity: .3 } }

/* montepilloy-skirmish - tense, sunlit battlefield */
.scn-montepilloy-skirmish {
  background: linear-gradient(180deg, #7a8a9a 0%, #4a5a6a 30%, #2a3a4a 70%, #1a2a3a 100%),
              radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 70%);
}
.scn-montepilloy-skirmish .horizon-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a8c0d0 0%, #7a8a9a 100%);
  animation: mps-sky 14s ease-in-out infinite alternate;
}
.scn-montepilloy-skirmish .van-guard {
  position: absolute; bottom: 40%; left: 5%; width: 25%; height: 30px;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 20% 20% 0 0;
  animation: mps-march 6s ease-in-out infinite;
}
.scn-montepilloy-skirmish .archers {
  position: absolute; bottom: 37%; left: 15%; width: 20%; height: 25px;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 30% 30% 0 0;
  animation: mps-march 8s ease-in-out infinite alternate;
}
.scn-montepilloy-skirmish .main-body {
  position: absolute; bottom: 34%; left: 35%; width: 30%; height: 40px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 10% 10% 0 0;
  animation: mps-advance 10s ease-in-out infinite;
}
.scn-montepilloy-skirmish .rear-guard {
  position: absolute; bottom: 38%; right: 10%; width: 20%; height: 28px;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 20% 20% 0 0;
  animation: mps-hold 7s ease-in-out infinite alternate-reverse;
}
.scn-montepilloy-skirmish .skirmish-left {
  position: absolute; bottom: 30%; left: 8%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%);
  border-radius: 50%;
  animation: mps-dash 3s ease-in-out infinite;
}
.scn-montepilloy-skirmish .skirmish-right {
  position: absolute; bottom: 30%; right: 8%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%);
  border-radius: 50%;
  animation: mps-dash 3.5s ease-in-out infinite reverse;
}
.scn-montepilloy-skirmish .dust-front {
  position: absolute; bottom: 25%; left: 30%; width: 120px; height: 30px;
  background: rgba(120,100,80,.2);
  border-radius: 60%;
  filter: blur(12px);
  animation: mps-dust 5s ease-in-out infinite alternate;
}

@keyframes mps-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes mps-march { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(8px) scaleY(0.95) } 100% { transform: translateX(-8px) scaleY(1) } }
@keyframes mps-advance { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mps-hold { 0% { transform: scale(1) } 50% { transform: scale(0.97) } 100% { transform: scale(1) } }
@keyframes mps-dash { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(30px) rotate(10deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mps-dust { 0% { opacity: .3; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(1.2) } 100% { opacity: .2; transform: scaleX(.8) } }

/* christine-poem - warm, bright interior */
.scn-christine-poem {
  background: linear-gradient(180deg, #d8c8a0 0%, #b8a880 40%, #9a8a68 100%),
              radial-gradient(ellipse at 50% 0%, #e8d8b0 0%, transparent 70%);
}
.scn-christine-poem .wall-panel {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d0c0a0 0%, #b8a880 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,.1);
  animation: cp-wall 12s ease-in-out infinite alternate;
}
.scn-christine-poem .window-light {
  position: absolute; top: 12%; left: 60%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #ffeca0 0%, #f0d880 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 30% 30%;
  box-shadow: 0 0 40px 20px rgba(240,216,128,.4);
  animation: cp-window 6s ease-in-out infinite alternate;
}
.scn-christine-poem .desk-wood {
  position: absolute; bottom: 15%; left: 20%; width: 45%; height: 10%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: cp-desk 9s ease-in-out infinite;
}
.scn-christine-poem .book-open {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #c8b090 0%, #a88868 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: cp-book 8s ease-in-out infinite;
}
.scn-christine-poem .book-closed {
  position: absolute; bottom: 26%; left: 22%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%);
  border-radius: 2%;
  box-shadow: 2px 2px 4px rgba(0,0,0,.2);
  animation: cp-book 10s ease-in-out infinite alternate;
}
.scn-christine-poem .figure-scribe {
  position: absolute; bottom: 18%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-scribe 4s ease-in-out infinite alternate;
}
.scn-christine-poem .quill {
  position: absolute; bottom: 22%; left: 38%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #c8b0a0 0%, #a08070 100%);
  border-radius: 2px;
  animation: cp-quill 3s ease-in-out infinite;
}
.scn-christine-poem .inkwell {
  position: absolute; bottom: 20%; left: 42%; width: 10px; height: 12px;
  background: radial-gradient(circle, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50%;
  animation: cp-ink 5s ease-in-out infinite;
}
.scn-christine-poem .candle-glow {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #ffb060 40%, transparent 80%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(4px);
  animation: cp-candle 3s ease-in-out infinite alternate;
}

@keyframes cp-wall { 0% { box-shadow: inset 0 4px 12px rgba(0,0,0,.1) } 50% { box-shadow: inset 0 4px 20px rgba(0,0,0,.05) } 100% { box-shadow: inset 0 4px 8px rgba(0,0,0,.15) } }
@keyframes cp-window { 0% { opacity: .8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: .7; transform: scaleY(.95) } }
@keyframes cp-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cp-book { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes cp-scribe { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(-2px) translateY(0) rotate(-1deg) } }
@keyframes cp-quill { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(10deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes cp-ink { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes cp-candle { 0% { opacity: .7; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.2) } 100% { opacity: .8; transform: scaleY(.9) } }

/* rhymers-prophets - calm, bright interior */
.scn-rhymers-prophets {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 40%, #a89880 100%),
              radial-gradient(ellipse at 50% 30%, #f0e4d0 0%, transparent 60%);
}
.scn-rhymers-prophets .room-bg {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #e0d0b8 0%, #c0b098 100%);
  animation: rp-room 15s ease-in-out infinite alternate;
}
.scn-rhymers-prophets .window-arch {
  position: absolute; top: 8%; left: 55%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #d0c8b0 0%, #b8b098 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 20px rgba(255,255,200,.3);
  animation: rp-window 8s ease-in-out infinite alternate;
}
.scn-rhymers-prophets .poet-figure {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #8a7050 0%, #5a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rp-poet 6s ease-in-out infinite;
}
.scn-rhymers-prophets .parchment {
  position: absolute; bottom: 22%; left: 45%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
  animation: rp-parchment 10s ease-in-out infinite;
}
.scn-rhymers-prophets .lyre {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 40px;
  background: radial-gradient(ellipse, #c8a860 0%, #a88848 100%);
  border-radius: 40% 40% 10% 10%;
  animation: rp-lyre 7s ease-in-out infinite alternate;
}
.scn-rhymers-prophets .laurel-leaf {
  position: absolute; bottom: 30%; left: 35%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(30deg);
  animation: rp-leaf 5s ease-in-out infinite;
}
.scn-rhymers-prophets .light-beam {
  position: absolute; top: 5%; left: 55%; width: 80px; height: 60%;
  background: linear-gradient(180deg, rgba(255,245,200,.2) 0%, transparent 100%);
  filter: blur(20px);
  animation: rp-beam 10s ease-in-out infinite alternate;
}
.scn-rhymers-prophets .book-stack {
  position: absolute; bottom: 18%; right: 20%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #b8a080 0%, #988060 100%);
  border-radius: 4%;
  box-shadow: 4px 4px 6px rgba(0,0,0,.15);
  animation: rp-stack 12s ease-in-out infinite;
}

@keyframes rp-room { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes rp-window { 0% { transform: scaleY(1); box-shadow: inset 0 0 20px rgba(255,255,200,.3) } 50% { transform: scaleY(1.03); box-shadow: inset 0 0 30px rgba(255,255,200,.5) } 100% { transform: scaleY(.97); box-shadow: inset 0 0 15px rgba(255,255,200,.2) } }
@keyframes rp-poet { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes rp-parchment { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(-1deg) scaleY(.98) } }
@keyframes rp-lyre { 0% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(5deg) } }
@keyframes rp-leaf { 0% { transform: rotate(30deg) translateY(0) } 50% { transform: rotate(35deg) translateY(-3px) } 100% { transform: rotate(25deg) translateY(0) } }
@keyframes rp-beam { 0% { opacity: .3; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(1.1) } 100% { opacity: .2; transform: scaleX(.9) } }
@keyframes rp-stack { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-fear-of-treason {
  background: linear-gradient(180deg, #1a1528 0%, #2a1e30 40%, #1e141e 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a3a 0%, transparent 70%);
}
.scn-fear-of-treason .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e30 0%, #1a1528 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.5);
}
.scn-fear-of-treason .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e141e 0%, #0e0a0e 100%);
}
.scn-fear-of-treason .table {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 14px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: ft-table-breathe 8s ease-in-out infinite;
}
.scn-fear-of-treason .candle-glow {
  position: absolute; bottom: 40%; left: 52%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #ffaa55 0%, #d08030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px #b06820, 0 0 80px 20px rgba(176,104,32,0.3);
  animation: ft-candle-glow 2.5s ease-in-out infinite alternate;
}
.scn-fear-of-treason .figure-citizen {
  position: absolute; bottom: 18%; left: 30%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1528 0%, #0a0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ft-figure-stand 6s ease-in-out infinite;
}
.scn-fear-of-treason .figure-conspirator {
  position: absolute; bottom: 18%; left: 52%;
  width: 22px; height: 46px;
  background: linear-gradient(180deg, #1a1528 0%, #0a0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ft-figure-lean 7s ease-in-out infinite;
}
.scn-fear-of-treason .shadow-long {
  position: absolute; bottom: 0; left: 28%; width: 80px; height: 20px;
  background: rgba(0,0,0,0.35);
  border-radius: 50%;
  filter: blur(6px);
  animation: ft-shadow-waver 10s ease-in-out infinite;
}
.scn-fear-of-treason .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 20% 40%, rgba(255,200,100,0.05) 0%, transparent 50%);
  animation: ft-dust 12s linear infinite;
}
@keyframes ft-table-breathe {
  0%, 100% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes ft-candle-glow {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes ft-figure-stand {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-3px) rotate(-2deg); }
  60% { transform: translateX(2px) rotate(2deg); }
}
@keyframes ft-figure-lean {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(3deg); }
  75% { transform: translateX(-2px) translateY(1px) rotate(-2deg); }
}
@keyframes ft-shadow-waver {
  0%, 100% { transform: scaleX(1) translateX(0); opacity: 0.3; }
  50% { transform: scaleX(1.2) translateX(5px); opacity: 0.5; }
}
@keyframes ft-dust {
  0% { background-position: 0 0; }
  100% { background-position: 100px 50px; }
}

.scn-arrival-second-convoy {
  background: linear-gradient(180deg, #ffbb66 0%, #ff8833 30%, #aa5511 70%, #553311 100%),
              radial-gradient(ellipse at 50% 80%, #ffaa44 0%, transparent 60%);
}
.scn-arrival-second-convoy .sky-dawn {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffcc88 0%, #ff9933 50%, #aa4411 100%);
  animation: ac-sky 30s linear infinite alternate;
}
.scn-arrival-second-convoy .sun-glow {
  position: absolute; top: 12%; left: 60%;
  width: 70px; height: 70px;
  background: radial-gradient(circle, #ffeebb 0%, #ffaa33 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #ff8811, 0 0 160px 60px rgba(255,136,17,0.3);
  animation: ac-sun-pulse 8s ease-in-out infinite;
}
.scn-arrival-second-convoy .horizon-hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #553311 0%, #332211 100%);
  border-radius: 30% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: ac-hills 20s ease-in-out infinite alternate;
}
.scn-arrival-second-convoy .road {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #664422 0%, #553311 100%);
  border-radius: 20% / 50%;
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  transform: perspective(400px) rotateX(10deg);
}
.scn-arrival-second-convoy .soldiers-silhouettes {
  position: absolute; bottom: 8%; left: 25%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac-march 4s ease-in-out infinite;
}
.scn-arrival-second-convoy .soldiers-silhouettes::before {
  content: '';
  position: absolute; bottom: 0; left: -30px; width: 30px; height: 55px;
  background: inherit;
  border-radius: inherit;
  animation: ac-march 4.3s ease-in-out infinite 0.5s;
}
.scn-arrival-second-convoy .banner-flutter {
  position: absolute; bottom: 10%; left: 35%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #a84a2a 0%, #703020 100%);
  border-radius: 0 4px 4px 0;
  transform-origin: bottom left;
  animation: ac-banner 3s ease-in-out infinite;
}
.scn-arrival-second-convoy .clouds-soft {
  position: absolute; top: 8%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(255,200,150,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: ac-clouds 45s linear infinite;
}
@keyframes ac-sky {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}
@keyframes ac-sun-pulse {
  0%, 100% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.08); opacity: 1; }
}
@keyframes ac-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes ac-march {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(3deg); }
  75% { transform: translateX(-4px) translateY(1px) rotate(-2deg); }
}
@keyframes ac-banner {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(10deg); }
  75% { transform: rotate(-10deg); }
}
@keyframes ac-clouds {
  0% { transform: translateX(-20px); }
  100% { transform: translateX(100vw); }
}

.scn-fastolf-rumor {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 50%, #0a0505 100%),
              radial-gradient(ellipse at 50% 60%, #3a1a1a 0%, transparent 70%);
}
.scn-fastolf-rumor .room-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0e0e 0%, #0a0505 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.8);
}
.scn-fastolf-rumor .map-table {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 12px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-fastolf-rumor .map-detail {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 2px;
  background: #8a6a3a;
  border-radius: 1px;
  box-shadow: 0 6px 0 #7a5a2a, 0 12px 0 #6a4a1a;
  animation: fr-map-unfold 6s ease-in-out infinite;
}
.scn-fastolf-rumor .candle-flame {
  position: absolute; bottom: 38%; left: 48%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, #ffbb66 0%, #cc7722 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #aa5511, 0 0 60px 20px rgba(170,85,17,0.4);
  animation: fr-candle 2s ease-in-out infinite alternate;
}
.scn-fastolf-rumor .hand-pointing {
  position: absolute; bottom: 16%; left: 40%;
  width: 16px; height: 40px;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fr-hand-point 5s ease-in-out infinite;
}
.scn-fastolf-rumor .figure-bastard {
  position: absolute; bottom: 12%; left: 55%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a0e0e 0%, #0a0505 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: fr-figure-bast 8s ease-in-out infinite;
}
.scn-fastolf-rumor .shadow-cast {
  position: absolute; bottom: 0; left: 20%; width: 100px; height: 30px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(8px);
  animation: fr-shadow 12s ease-in-out infinite;
}
@keyframes fr-map-unfold {
  0%, 100% { clip-path: inset(0 50% 0 50%); }
  50% { clip-path: inset(0 0 0 0); }
}
@keyframes fr-candle {
  0% { transform: scale(0.9); opacity: 0.6; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.7; }
}
@keyframes fr-hand-point {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(8px) rotate(8deg); }
  70% { transform: translateX(-4px) rotate(-5deg); }
}
@keyframes fr-figure-bast {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-4px) rotate(-3deg); }
  75% { transform: translateX(6px) rotate(2deg); }
}
@keyframes fr-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.3); opacity: 0.7; }
  100% { transform: scaleX(0.9); opacity: 0.3; }
}

.scn-maid-slept-awakened {
  background: linear-gradient(180deg, #1a1822 0%, #2a2230 40%, #1e1822 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a3e 0%, transparent 70%);
}
.scn-maid-slept-awakened .chamber-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2230 0%, #1a1822 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.5);
}
.scn-maid-slept-awakened .bed-frame {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  transform: rotate(-2deg);
}
.scn-maid-slept-awakened .figure-joan {
  position: absolute; bottom: 22%; left: 38%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms-joan-breathe 4s ease-in-out infinite;
}
.scn-maid-slept-awakened .couch-figure {
  position: absolute; bottom: 18%; right: 20%;
  width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms-couch-fig 8s ease-in-out infinite;
}
.scn-maid-slept-awakened .door-creak {
  position: absolute; top: 20%; right: 10%;
  width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 2px;
  transform-origin: right center;
  animation: ms-door 12s ease-in-out infinite;
}
.scn-maid-slept-awakened .candle-dim {
  position: absolute; bottom: 40%; left: 20%;
  width: 16px; height: 16px;
  background: radial-gradient(circle, #886644 0%, #553322 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #553322, 0 0 40px 12px rgba(85,51,34,0.3);
  animation: ms-candle 3.5s ease-in-out infinite alternate;
}
.scn-maid-slept-awakened .pillow-mist {
  position: absolute; top: 15%; left: 35%; width: 30px; height: 10px;
  background: rgba(200,180,200,0.1);
  border-radius: 50%;
  filter: blur(6px);
  animation: ms-mist 20s linear infinite;
}
@keyframes ms-joan-breathe {
  0%, 100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
}
@keyframes ms-couch-fig {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(3deg); }
  75% { transform: rotate(-2deg); }
}
@keyframes ms-door {
  0%, 100% { transform: scaleX(1); }
  15% { transform: scaleX(0.9); }
  20% { transform: scaleX(1); }
  80% { transform: scaleX(1); }
  95% { transform: scaleX(0.95); }
}
@keyframes ms-candle {
  0% { transform: scale(0.95); opacity: 0.6; }
  50% { transform: scale(1.05); opacity: 0.9; }
  100% { transform: scale(0.98); opacity: 0.7; }
}
@keyframes ms-mist {
  0% { transform: translateX(0); opacity: 0.2; }
  50% { transform: translateX(40px); opacity: 0.5; }
  100% { transform: translateX(80px); opacity: 0.2; }
}

/* portraits-seized */
.scn-portraits-seized {
  background: 
    linear-gradient(180deg, #1e1a2a 0%, #2a2030 30%, #151015 100%),
    radial-gradient(ellipse at 50% 30%, #3b2b3b 0%, transparent 70%);
}
.scn-portraits-seized .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1c1828 0%, #121018 100%);
  animation: ps-wall 12s ease-in-out infinite alternate;
}
.scn-portraits-seized .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #0b0a10 0%, #1a1428 100%);
  border-radius: 30% 20% 0 0 / 10% 8% 0 0;
  box-shadow: inset 0 8px 20px #00000055;
  animation: ps-floor 8s ease-in-out infinite alternate;
}
.scn-portraits-seized .frame-left {
  position: absolute; bottom: 40%; left: 15%; width: 18%; height: 28%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border: 3px solid #4a3020;
  border-radius: 6% 6% 3% 3%;
  box-shadow: 0 6px 14px #00000066;
  transform-origin: bottom center;
  animation: ps-frame-l 5s ease-in-out infinite alternate;
}
.scn-portraits-seized .frame-right {
  position: absolute; bottom: 38%; right: 20%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%);
  border: 3px solid #3a2a1a;
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 14px #00000066;
  transform-origin: bottom right;
  animation: ps-frame-r 6s ease-in-out infinite alternate;
}
.scn-portraits-seized .officer-left {
  position: absolute; bottom: 8%; left: 10%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ps-officer 4s ease-in-out infinite;
}
.scn-portraits-seized .officer-right {
  position: absolute; bottom: 10%; right: 12%; width: 14%; height: 36%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ps-officer-r 4.5s ease-in-out infinite;
}
.scn-portraits-seized .seal {
  position: absolute; top: 22%; left: 28%; width: 10%; height: 8%;
  background: radial-gradient(circle, #b04020 0%, #702020 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px #b0402066;
  animation: ps-seal 3s ease-in-out infinite;
}
@keyframes ps-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ps-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(.98) } 100% { transform: scaleY(1) } }
@keyframes ps-frame-l { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes ps-frame-r { 0% { transform: rotate(0deg) } 50% { transform: rotate(-4deg) } 100% { transform: rotate(2deg) } }
@keyframes ps-officer { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ps-officer-r { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-5px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ps-seal { 0% { box-shadow: 0 0 20px 4px #b0402066; opacity: .6 } 50% { box-shadow: 0 0 35px 8px #b04020aa; opacity: 1 } 100% { box-shadow: 0 0 20px 4px #b0402066; opacity: .7 } }

/* maintenon-rumor */
.scn-maintenon-rumor {
  background: 
    linear-gradient(180deg, #2a1e2e 0%, #1a122a 60%, #0e0a1e 100%),
    radial-gradient(ellipse at 30% 20%, #3a2a4a 0%, transparent 80%);
}
.scn-maintenon-rumor .room { position: absolute; inset: 0; background: linear-gradient(180deg, #1c1422 0%, #0e0a1a 100%); animation: mr-room 14s ease-in-out infinite alternate; }
.scn-maintenon-rumor .window { position: absolute; top: 12%; right: 18%; width: 28%; height: 34%; background: linear-gradient(180deg, #4a6a8a 0%, #2a3a5a 100%); border-radius: 4% 4% 8% 8%; box-shadow: inset 0 0 30px #1a2a4a66; animation: mr-window 6s ease-in-out infinite alternate; }
.scn-maintenon-rumor .curtain-a { position: absolute; top: 10%; right: 16%; width: 6%; height: 40%; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 20% 20% 0 0; transform-origin: top center; animation: mr-curtain 7s ease-in-out infinite; }
.scn-maintenon-rumor .curtain-b { position: absolute; top: 10%; right: 42%; width: 6%; height: 40%; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 20% 20% 0 0; transform-origin: top center; animation: mr-curtain 8s ease-in-out infinite reverse; }
.scn-maintenon-rumor .figure-madame { position: absolute; bottom: 16%; left: 15%; width: 14%; height: 38%; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-figure 5s ease-in-out infinite; }
.scn-maintenon-rumor .figure-marie { position: absolute; bottom: 14%; left: 38%; width: 12%; height: 40%; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-figure 5.5s ease-in-out infinite reverse; }
.scn-maintenon-rumor .whisper-a { position: absolute; top: 36%; left: 20%; width: 8%; height: 4%; background: radial-gradient(ellipse, #e0c0d0 0%, transparent 100%); filter: blur(6px); opacity: .6; animation: mr-whisper 3s ease-in-out infinite; }
.scn-maintenon-rumor .whisper-b { position: absolute; top: 34%; left: 30%; width: 10%; height: 5%; background: radial-gradient(ellipse, #e0c0d0 0%, transparent 100%); filter: blur(8px); opacity: .4; animation: mr-whisper 3.5s ease-in-out infinite reverse; }
@keyframes mr-room { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes mr-window { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes mr-curtain { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(8deg) translateX(6px) } 100% { transform: rotate(-5deg) translateX(-3px) } }
@keyframes mr-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mr-whisper { 0% { opacity: 0; transform: scale(.5) } 50% { opacity: .7; transform: scale(1.1) } 100% { opacity: 0; transform: scale(.5) } }

/* farrier-death */
.scn-farrier-death {
  background: 
    linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 60%, #3a4a3a 100%),
    radial-gradient(ellipse at 60% 100%, #8a9a8a 0%, transparent 70%);
}
.scn-farrier-death .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #8a9a8a 0%, #b0b8a0 40%, #8a9a8a 100%); animation: fd-sky 20s ease-in-out infinite alternate; }
.scn-farrier-death .field { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius: 20% 30% 0 0 / 10% 15% 0 0; box-shadow: inset 0 8px 20px #2a3a2a66; animation: fd-field 15s ease-in-out infinite; }
.scn-farrier-death .tree { position: absolute; bottom: 38%; left: 20%; width: 12%; height: 40%; background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%); border-radius: 60% 40% 20% 20% / 80% 70% 30% 30%; transform-origin: bottom center; animation: fd-tree 8s ease-in-out infinite; }
.scn-farrier-death .farmhouse { position: absolute; bottom: 30%; right: 18%; width: 22%; height: 28%; background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 6px 12px #2a3a2a66; animation: fd-house 12s ease-in-out infinite alternate; }
.scn-farrier-death .grave { position: absolute; bottom: 14%; left: 45%; width: 10%; height: 8%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 40% 40% 20% 20%; box-shadow: inset 0 2px 4px #1a2a1a66; animation: fd-grave 9s ease-in-out infinite; }
.scn-farrier-death .cloud-slow { position: absolute; top: 14%; left: 10%; width: 40%; height: 16%; background: linear-gradient(180deg, #b0b8a066 0%, #a0a89033 100%); filter: blur(14px); border-radius: 50%; animation: fd-cloud 50s linear infinite; }
@keyframes fd-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes fd-field { 0% { transform: scaleY(1) } 50% { transform: scaleY(.98) } 100% { transform: scaleY(1) } }
@keyframes fd-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes fd-house { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes fd-grave { 0% { transform: scale(.95); opacity: .7 } 50% { transform: scale(1); opacity: 1 } 100% { transform: scale(.95); opacity: .7 } }
@keyframes fd-cloud { 0% { transform: translateX(-10%) } 100% { transform: translateX(110%) } }

/* martin-portrait */
.scn-martin-portrait {
  background: 
    linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 60%, #b0a890 100%),
    radial-gradient(ellipse at 40% 30%, #fff8e0 0%, transparent 70%);
}
.scn-martin-portrait .backdrop { position: absolute; inset: 0; background: linear-gradient(180deg, #e8dcc8 0%, #c8bca8 100%); animation: mp-backdrop 12s ease-in-out infinite alternate; }
.scn-martin-portrait .oval-frame { position: absolute; top: 10%; left: 30%; width: 40%; height: 60%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 45% 45%; box-shadow: 0 8px 20px #2a1a1a55; animation: mp-oval 9s ease-in-out infinite; }
.scn-martin-portrait .head-profile { position: absolute; top: 16%; left: 38%; width: 24%; height: 32%; background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: center; animation: mp-head 6s ease-in-out infinite; }
.scn-martin-portrait .collar { position: absolute; top: 44%; left: 40%; width: 20%; height: 4%; background: linear-gradient(180deg, #f0f0e0 0%, #d0d0c0 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 2px 6px #6a5a4a55; animation: mp-collar 8s ease-in-out infinite alternate; }
.scn-martin-portrait .cravat { position: absolute; top: 46%; left: 42%; width: 16%; height: 8%; background: linear-gradient(180deg, #f0f0f0 0%, #d0d0d0 100%); border-radius: 40% 40% 60% 60%; filter: drop-shadow(0 2px 4px #6a5a4a55); animation: mp-cravat 7s ease-in-out infinite; }
.scn-martin-portrait .eye { position: absolute; top: 30%; left: 46%; width: 4%; height: 6%; background: radial-gradient(circle, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50%; box-shadow: 0 0 4px #2a1a0a55; animation: mp-eye 4s ease-in-out infinite; }
.scn-martin-portrait .cheek-shadow { position: absolute; top: 36%; left: 43%; width: 12%; height: 14%; background: radial-gradient(ellipse, #6a5a4a33 0%, transparent 100%); filter: blur(4px); animation: mp-cheek 10s ease-in-out infinite alternate; }
@keyframes mp-backdrop { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .95 } }
@keyframes mp-oval { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(0.5deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes mp-head { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mp-collar { 0% { transform: scaleX(1) } 50% { transform: scaleX(.98) } 100% { transform: scaleX(1) } }
@keyframes mp-cravat { 0% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes mp-eye { 0% { transform: scaleY(1) } 30% { transform: scaleY(.2) } 40% { transform: scaleY(1) } 100% { transform: scaleY(1) } }
@keyframes mp-cheek { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .3 } }

.scn-jeanne-venerated-as-saint { background: linear-gradient(180deg, #3e2a1a 0%, #2a1a0e 40%, #1a0e05 100%), radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 70%); }
.scn-jeanne-venerated-as-saint .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 12px 30px rgba(0,0,0,.6); }
.scn-jeanne-venerated-as-saint .bg-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e05 100%); border-radius: 30% 30% 0 0; }
.scn-jeanne-venerated-as-saint .candle { position:absolute; bottom:40%; width:6px; height:20px; background: linear-gradient(180deg, #f0d0a0 0%, #d0b090 100%); border-radius: 2px; box-shadow: 0 0 12px 2px #f0d0a0, 0 0 24px 6px rgba(240,208,160,.4); animation: jvs-candle 2s ease-in-out infinite alternate; }
.scn-jeanne-venerated-as-saint .c1 { left:36%; }
.scn-jeanne-venerated-as-saint .c2 { right:36%; animation-delay: 0.5s; }
.scn-jeanne-venerated-as-saint .halo { position:absolute; bottom:58%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, rgba(255,215,140,.5) 0%, transparent 70%); border-radius:50%; animation: jvs-halo 4s ease-in-out infinite alternate, jvs-halo-rotate 12s linear infinite; }
.scn-jeanne-venerated-as-saint .figure-jeanne { position:absolute; bottom:35%; left:50%; width:40px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,.5); animation: jvs-figure 6s ease-in-out infinite; }
.scn-jeanne-venerated-as-saint .figure-poor { position:absolute; bottom:32%; left:40%; width:30px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jvs-poor 8s ease-in-out infinite; }
.scn-jeanne-venerated-as-saint .alms-bag { position:absolute; bottom:30%; left:48%; width:14px; height:10px; background: #6a4a2a; border-radius: 30% 30% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: jvs-bag 5s ease-in-out infinite; }
.scn-jeanne-venerated-as-saint .dust-mote { position:absolute; top:20%; left:20%; width:4px; height:4px; background: rgba(255,220,180,.3); border-radius:50%; filter: blur(2px); animation: jvs-dust 15s linear infinite, jvs-dust-drift 10s ease-in-out infinite; }
@keyframes jvs-candle { 0% { opacity:.7; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1.1) scaleX(0.95); } 100% { opacity:.8; transform: scaleY(1); } }
@keyframes jvs-halo { 0% { opacity:.4; transform: translateX(-50%) scale(1); } 50% { opacity:.8; transform: translateX(-50%) scale(1.1); } 100% { opacity:.5; transform: translateX(-50%) scale(0.95); } }
@keyframes jvs-halo-rotate { 0% { background: radial-gradient(circle, rgba(255,215,140,.5) 0%, transparent 70%); } 33% { background: radial-gradient(circle, rgba(255,230,180,.5) 0%, transparent 70%); } 66% { background: radial-gradient(circle, rgba(240,200,120,.5) 0%, transparent 70%); } 100% { background: radial-gradient(circle, rgba(255,215,140,.5) 0%, transparent 70%); } }
@keyframes jvs-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-48%) translateY(-2px) rotate(2deg); } 75% { transform: translateX(-52%) translateY(-1px) rotate(-2deg); } }
@keyframes jvs-poor { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(3deg); } }
@keyframes jvs-bag { 0%,100% { transform: translateY(0); opacity:.7; } 50% { transform: translateY(-3px) scaleX(1.1); opacity:1; } }
@keyframes jvs-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity:0; } 50% { opacity:1; } 100% { transform: translateY(-40px) translateX(20px) scale(0.5); opacity:0; } }
@keyframes jvs-dust-drift { 0% { left:20%; } 100% { left:80%; } }

.scn-english-sack-saint-denys { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 20%, #3a3a5e 0%, transparent 60%); }
.scn-english-sack-saint-denys .bg-arch { position:absolute; inset:0 10% 30% 10%; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); border-radius: 50% 50% 20% 20%; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-english-sack-saint-denys .bg-pillar { position:absolute; bottom:0; width:8%; height:70%; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%); border-radius: 4% 4% 0 0; box-shadow: 4px 0 8px rgba(0,0,0,.3); }
.scn-english-sack-saint-denys .left { left:5%; }
.scn-english-sack-saint-denys .right { right:5%; }
.scn-english-sack-saint-denys .altar { position:absolute; bottom:30%; left:50%; width:120px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,.7); }
.scn-english-sack-saint-denys .armor-rack { position:absolute; bottom:34%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius: 10% 10% 20% 20%; transform: skewX(-5deg); animation: ess-armor 3s ease-in-out infinite alternate; }
.scn-english-sack-saint-denys .torch { position:absolute; bottom:40%; width:8px; height:30px; background: linear-gradient(180deg, #8a6a2a 0%, #4a3a1a 100%); border-radius: 2px; box-shadow: 0 0 20px 4px #b08030; animation: ess-torch 1.5s ease-in-out infinite alternate; }
.scn-english-sack-saint-denys .t1 { left:20%; }
.scn-english-sack-saint-denys .t2 { right:20%; animation-delay: 0.7s; }
.scn-english-sack-saint-denys .soldier { position:absolute; bottom:25%; width:25px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ess-soldier 5s ease-in-out infinite; }
.scn-english-sack-saint-denys .s1 { left:25%; animation-delay: 0s; }
.scn-english-sack-saint-denys .s2 { right:25%; animation-delay: 1s; }
.scn-english-sack-saint-denys .dust-storm { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent, rgba(200,200,220,.05) 10%, transparent 20%); animation: ess-dust 20s linear infinite; }
@keyframes ess-armor { 0% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(0deg) translateY(-3px); } 100% { transform: skewX(-5deg) translateY(0); } }
@keyframes ess-torch { 0% { opacity:.7; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1.15) scaleX(0.9); box-shadow: 0 0 25px 6px #b08030; } 100% { opacity:.8; transform: scaleY(1); } }
@keyframes ess-soldier { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(3deg); } 75% { transform: translateY(2px) rotate(-2deg); } }
@keyframes ess-dust { 0% { background-position: 0 0; } 100% { background-position: 200% 0; } }

.scn-english-sack-saint-denys-2 { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 70% 50%, #3a3a5e 0%, transparent 60%); }
.scn-english-sack-saint-denys-2 .bg-nave { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); border-radius: 0 0 30% 30%; }
.scn-english-sack-saint-denys-2 .bg-choir { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-english-sack-saint-denys-2 .monk { position:absolute; bottom:30%; width:30px; height:65px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: es2-monk 10s ease-in-out infinite; }
.scn-english-sack-saint-denys-2 .m1 { left:25%; }
.scn-english-sack-saint-denys-2 .m2 { right:25%; animation-delay: 4s; }
.scn-english-sack-saint-denys-2 .armor-pile { position:absolute; bottom:25%; left:50%; width:50px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,.7); animation: es2-armor 5s ease-in-out infinite alternate; }
.scn-english-sack-saint-denys-2 .smoke-layer { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, rgba(100,100,120,.2) 0%, transparent 70%); animation: es2-smoke 30s ease-in-out infinite alternate; }
.scn-english-sack-saint-denys-2 .fog { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(200,200,220,.08) 0%, transparent 100%); filter: blur(8px); animation: es2-fog 20s ease-in-out infinite; }
.scn-english-sack-saint-denys-2 .footstep { position:absolute; bottom:20%; left:10%; width:10px; height:6px; background: rgba(255,255,255,.1); border-radius:50%; filter: blur(2px); animation: es2-foot 8s ease-in-out infinite; }
@keyframes es2-monk { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes es2-armor { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-48%) scale(1.05); } 100% { transform: translateX(-50%) scale(0.95); } }
@keyframes es2-smoke { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.5; transform: scale(1.1); } 100% { opacity:.2; transform: scale(0.9); } }
@keyframes es2-fog { 0% { transform: translateX(0); } 50% { transform: translateX(20px); } 100% { transform: translateX(-20px); } }
@keyframes es2-foot { 0% { transform: translateX(0) scale(1); opacity:0; } 20% { opacity:1; } 80% { opacity:1; } 100% { transform: translateX(60px) scale(0.6); opacity:0; } }

.scn-duke-of-alencon-requests-maid { background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #1a0e05 100%), radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, transparent 70%); }
.scn-duke-of-alencon-requests-maid .bg-throne { position:absolute; inset:10% 5% 30% 5%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 12px 30px rgba(0,0,0,.6); }
.scn-duke-of-alencon-requests-maid .bg-carpet { position:absolute; bottom:20%; left:5%; right:5%; height:25%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-duke-of-alencon-requests-maid .king-figure { position:absolute; bottom:35%; left:55%; width:35px; height:75px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dar-king 6s ease-in-out infinite; }
.scn-duke-of-alencon-requests-maid .maid-figure { position:absolute; bottom:35%; left:38%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dar-maid 8s ease-in-out infinite; }
.scn-duke-of-alencon-requests-maid .duke-figure { position:absolute; bottom:30%; left:45%; width:32px; height:65px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e05 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dar-duke 7s ease-in-out infinite; }
.scn-duke-of-alencon-requests-maid .candle { position:absolute; bottom:55%; left:18%; width:6px; height:22px; background: linear-gradient(180deg, #f0d0a0 0%, #d0b090 100%); border-radius: 2px; box-shadow: 0 0 15px 3px #f0d0a0; animation: dar-candle 2.5s ease-in-out infinite alternate; }
.scn-duke-of-alencon-requests-maid .tapestry { position:absolute; top:10%; left:8%; width:50px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: inset 0 0 12px rgba(0,0,0,.4); animation: dar-tapestry 20s ease-in-out infinite; }
.scn-duke-of-alencon-requests-maid .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, #0a0500 100%); animation: dar-shadow 5s ease-in-out infinite alternate; }
@keyframes dar-king { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 75% { transform: translateY(1px) rotate(-1deg); } }
@keyframes dar-maid { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes dar-duke { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(3deg); } 70% { transform: translateY(1px) rotate(-2deg); } }
@keyframes dar-candle { 0% { opacity:.7; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1.15) scaleX(0.9); } 100% { opacity:.8; transform: scaleY(1); } }
@keyframes dar-tapestry { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes dar-shadow { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.5; } }

/* gien-departure – calm, sunlit */
.scn-gien-departure {
  background:
    linear-gradient(180deg, #4a8bc2 0%, #87ceeb 40%, #f0d080 100%),
    radial-gradient(ellipse at 50% 80%, #f5d060 0%, transparent 70%);
}
.scn-gien-departure .sky-sun {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffd27a 0%, #f5b040 60%, #d08030 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  animation: gd-skyglow 8s ease-in-out infinite alternate;
}
.scn-gien-departure .hills-rolling {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a7a3a 0%, #1a4a1a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: gd-hills 20s ease-in-out infinite alternate;
}
.scn-gien-departure .road-path {
  position: absolute; bottom: 22%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #b0a070 0%, #807050 100%);
  border-radius: 10% 10% 20% 20%;
  clip-path: polygon(0% 20%, 100% 0%, 100% 100%, 0% 100%);
  animation: gd-road 15s linear infinite;
}
.scn-gien-departure .castle-wall {
  position: absolute; bottom: 30%; left: 60%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 4px 4px 12px rgba(0,0,0,.4);
}
.scn-gien-departure .king-figure {
  position: absolute; bottom: 20%; left: 30%; 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: gd-walk 6s ease-in-out infinite;
}
.scn-gien-departure .gaitor-boot {
  position: absolute; bottom: 19%; left: 25%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(30deg);
  animation: gd-boot 4s ease-in-out infinite alternate;
}
@keyframes gd-skyglow {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.9; transform: scaleY(0.95); }
}
@keyframes gd-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(2px); }
}
@keyframes gd-road {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(5px) scaleX(1.02); }
  100% { transform: translateX(-5px) scaleX(0.98); }
}
@keyframes gd-walk {
  0%, 100% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(1deg); }
  50% { transform: translateX(16px) rotate(-1deg); }
  75% { transform: translateX(24px) rotate(2deg); }
}
@keyframes gd-boot {
  0% { transform: rotate(25deg) translateY(0); }
  100% { transform: rotate(35deg) translateY(-3px); }
}

/* letter-tournai – calm, bright-interior */
.scn-letter-tournai {
  background:
    linear-gradient(180deg, #d8c8a0 0%, #b8a880 50%, #988870 100%),
    radial-gradient(ellipse at 50% 30%, #f8e8c0 0%, transparent 70%);
}
.scn-letter-tournai .wall-interior {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c0b090 0%, #a09080 100%);
  opacity: 0.7;
}
.scn-letter-tournai .window-light {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 35%;
  background: linear-gradient(135deg, #f0e8d0 0%, #e0d0b0 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(255,240,200,0.4);
  animation: lt-window 12s ease-in-out infinite alternate;
}
.scn-letter-tournai .desk-table {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a301a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 10px rgba(0,0,0,.3);
}
.scn-letter-tournai .letter-paper {
  position: absolute; bottom: 30%; left: 35%; width: 40%; height: 28%;
  background: linear-gradient(135deg, #f8f0e0 0%, #e8dcc0 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.2);
  transform: rotate(-2deg);
  animation: lt-paper 8s ease-in-out infinite;
}
.scn-letter-tournai .quill-feather {
  position: absolute; bottom: 38%; left: 60%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: lt-quill 4s ease-in-out infinite;
}
.scn-letter-tournai .hand-scribe {
  position: absolute; bottom: 28%; left: 28%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #d0a080 0%, #a08060 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lt-hand 5s ease-in-out infinite;
}
.scn-letter-tournai .inkwell-drop {
  position: absolute; bottom: 32%; left: 50%; width: 10px; height: 14px;
  background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: lt-ink 3s ease-in-out infinite alternate;
}
@keyframes lt-window {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes lt-paper {
  0%, 100% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.02); }
}
@keyframes lt-quill {
  0%, 100% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(25deg) translateY(-8px); }
}
@keyframes lt-hand {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes lt-ink {
  0% { transform: scaleY(1); opacity: 0.9; }
  100% { transform: scaleY(0.8); opacity: 0.5; }
}

/* letter-burgundy – warm, bright-interior */
.scn-letter-burgundy {
  background:
    linear-gradient(180deg, #d08040 0%, #c07030 40%, #a05820 100%),
    radial-gradient(ellipse at 30% 60%, #e09050 0%, transparent 60%);
}
.scn-letter-burgundy .wall-warm {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #b08040 0%, #906030 100%);
  opacity: 0.8;
}
.scn-letter-burgundy .window-gold {
  position: absolute; top: 10%; right: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #f0c060 0%, #d0a050 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -4px 4px 20px rgba(200,100,30,0.6);
  animation: lb-window 7s ease-in-out infinite alternate;
}
.scn-letter-burgundy .desk-wood {
  position: absolute; bottom: 18%; left: 5%; right: 5%; height: 22%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 6px;
  box-shadow: 0 -2px 8px rgba(0,0,0,.5);
}
.scn-letter-burgundy .parchment-roll {
  position: absolute; bottom: 30%; left: 30%; width: 45%; height: 25%;
  background: linear-gradient(135deg, #f0d8a0 0%, #d0b880 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 8px rgba(0,0,0,.3);
  transform: rotate(-1deg);
  animation: lb-parchment 10s ease-in-out infinite;
}
.scn-letter-burgundy .quill-stroke {
  position: absolute; bottom: 36%; left: 55%; width: 6px; height: 35px;
  background: linear-gradient(180deg, #d0b0a0 0%, #a08070 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: lb-quill 3s ease-in-out infinite;
}
.scn-letter-burgundy .wax-seal {
  position: absolute; bottom: 28%; left: 45%; width: 16px; height: 16px;
  background: radial-gradient(circle, #a03020 0%, #702018 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(200,50,20,0.5);
  animation: lb-seal 6s ease-in-out infinite alternate;
}
.scn-letter-burgundy .hand-write {
  position: absolute; bottom: 26%; left: 22%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #c08050 0%, #a06040 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lb-hand 4s ease-in-out infinite;
}
@keyframes lb-window {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.05); }
  100% { opacity: 0.9; transform: scaleX(0.95); }
}
@keyframes lb-parchment {
  0%, 100% { transform: rotate(-1deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.01); }
}
@keyframes lb-quill {
  0%, 100% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-6px); }
}
@keyframes lb-seal {
  0% { transform: scale(1); opacity: 0.8; }
  100% { transform: scale(1.2); opacity: 1; }
}
@keyframes lb-hand {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(5px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-5px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}

/* auxerre-negotiations – tense, sunlit */
.scn-auxerre-negotiations {
  background:
    linear-gradient(180deg, #b0c0d0 0%, #e0e8f0 50%, #f0e0a0 100%),
    radial-gradient(ellipse at 60% 20%, #f5d070 0%, transparent 60%);
}
.scn-auxerre-negotiations .ground-dust {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b0a080 0%, #807060 100%);
  border-radius: 20% 20% 0 0;
  animation: an-dust 5s ease-in-out infinite alternate;
}
.scn-auxerre-negotiations .sky-glare {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e0e8f0 0%, #f0e0b0 100%);
  opacity: 0.3;
  animation: an-glare 8s ease-in-out infinite alternate;
}
.scn-auxerre-negotiations .sun-bright {
  position: absolute; top: 10%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #f0d060 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: an-sun 10s ease-in-out infinite alternate;
}
.scn-auxerre-negotiations .dust-clouds {
  position: absolute; bottom: 25%; left: 10%; width: 80%; height: 15%;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,180,140,0.6) 0%, transparent 70%),
              radial-gradient(ellipse at 70% 50%, rgba(200,180,140,0.4) 0%, transparent 60%);
  filter: blur(10px);
  animation: an-dustcloud 4s ease-in-out infinite alternate;
}
.scn-auxerre-negotiations .soldier-march-1 {
  position: absolute; bottom: 15%; left: 10%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: an-soldier 6s linear infinite;
}
.scn-auxerre-negotiations .soldier-march-2 {
  position: absolute; bottom: 15%; left: 25%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: an-soldier 6s linear infinite 2s;
}
.scn-auxerre-negotiations .banner-stripe {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #705030 0%, #504020 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 50% 80%, 0% 100%);
  animation: an-banner 3s ease-in-out infinite alternate;
}
.scn-auxerre-negotiations .spear-point {
  position: absolute; bottom: 45%; left: 42%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #808080 0%, #404040 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: an-spear 2s ease-in-out infinite alternate;
}
@keyframes an-dust {
  0% { transform: translateY(0); }
  100% { transform: translateY(-4px); }
}
@keyframes an-glare {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}
@keyframes an-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 an-dustcloud {
  0% { transform: translateX(0) scale(1); opacity: 0.6; }
  50% { transform: translateX(10px) scale(1.1); opacity: 0.8; }
  100% { transform: translateX(-5px) scale(0.9); opacity: 0.5; }
}
@keyframes an-soldier {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(15px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(30px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(45px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(60px) translateY(0) rotate(-2deg); }
}
@keyframes an-banner {
  0% { transform: rotate(-5deg) scaleX(0.9); }
  100% { transform: rotate(5deg) scaleX(1.1); }
}
@keyframes an-spear {
  0% { transform: rotate(5deg) translateY(0); }
  100% { transform: rotate(15deg) translateY(-2px); }
}

/* gerson-treatise: calm, bright-interior study */
.scn-gerson-treatise {
  background: 
    linear-gradient(180deg, #f4e9d0 0%, #c9b99a 40%, #a0896c 100%),
    radial-gradient(ellipse at 30% 40%, #e3d6b8 0%, transparent 70%);
}
.scn-gerson-treatise .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8dcc4 0%, #d8c8aa 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.05);
}
.scn-gerson-treatise .window-frame {
  position: absolute; top: 10%; left: 60%; width: 25%; height: 50%;
  background: linear-gradient(135deg, #b8a88a 0%, #8a7a5e 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 0 6px #6e5e42, inset 0 0 0 12px #9a8a6e, 0 4px 8px rgba(0,0,0,0.2);
  animation: gt-window 20s ease-in-out infinite alternate;
}
.scn-gerson-treatise .desk {
  position: absolute; bottom: 10%; left: 10%; width: 55%; height: 28%;
  background: linear-gradient(180deg, #7a6a52 0%, #5a4a34 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-gerson-treatise .book {
  position: absolute; bottom: 28%; height: 8%;
  background: linear-gradient(135deg, #a08050 0%, #705030 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: gt-book 12s ease-in-out infinite;
}
.scn-gerson-treatise .book-1 {
  left: 18%; width: 18%;
  transform: rotate(-2deg);
}
.scn-gerson-treatise .book-2 {
  left: 40%; width: 22%;
  transform: rotate(3deg);
  animation-delay: -4s;
}
.scn-gerson-treatise .candle {
  position: absolute; bottom: 35%; left: 70%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b888 100%);
  border-radius: 2px 2px 10% 10%;
  transform: rotate(-1deg);
}
.scn-gerson-treatise .flame {
  position: absolute; bottom: 51%; left: 70.5%; width: 2.5%; height: 5%;
  background: radial-gradient(circle, #fbe68a 0%, #e8b830 40%, #b87210 80%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 16px 6px #f0c040, 0 0 32px 12px rgba(240,192,64,0.4);
  animation: gt-flame 3.5s ease-in-out infinite alternate;
}
.scn-gerson-treatise .figure {
  position: absolute; bottom: 12%; left: 20%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #3a2e24 0%, #1e1610 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gt-figure 8s ease-in-out infinite;
}
@keyframes gt-window {
  0% { opacity: 0.9; box-shadow: inset 0 0 0 6px #6e5e42, inset 0 0 0 12px #9a8a6e; }
  50% { opacity: 1; box-shadow: inset 0 0 0 8px #7a6a4e, inset 0 0 0 14px #a09070; }
  100% { opacity: 0.85; box-shadow: inset 0 0 0 6px #6e5e42, inset 0 0 0 12px #9a8a6e; }
}
@keyframes gt-book {
  0%, 100% { transform: rotate(-1deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-1px); }
  50% { transform: rotate(-2deg) translateY(1px); }
  75% { transform: rotate(2deg) translateY(-1px); }
}
@keyframes gt-flame {
  0% { transform: scaleY(1) rotate(-2deg); opacity: 0.8; }
  30% { transform: scaleY(1.15) rotate(2deg); opacity: 1; }
  60% { transform: scaleY(0.9) rotate(-1deg); opacity: 0.9; }
  100% { transform: scaleY(1.05) rotate(0deg); opacity: 0.85; }
}
@keyframes gt-figure {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-2px) rotate(1deg); }
  66% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* financial-strain: tense, bright-interior counting room */
.scn-financial-strain {
  background: 
    linear-gradient(180deg, #c4a66a 0%, #8a7040 40%, #5a4828 100%),
    radial-gradient(ellipse at 50% 60%, #b89858 0%, transparent 70%);
}
.scn-financial-strain .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #4a3a22 0%, #6a5a3a 100%);
}
.scn-financial-strain .wall-back {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #b09860 0%, #987a48 100%);
}
.scn-financial-strain .table {
  position: absolute; bottom: 18%; left: 15%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-financial-strain .coin-pile {
  position: absolute; bottom: 25%; width: 12%; height: 10%;
  background: radial-gradient(ellipse at 50% 40%, #f0d060 0%, #d0a030 60%, #a07010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: fs-coin 2s ease-in-out infinite alternate;
}
.scn-financial-strain .left {
  left: 22%;
}
.scn-financial-strain .right {
  left: 50%;
  animation-delay: -1s;
}
.scn-financial-strain .figure-exchequer {
  position: absolute; bottom: 22%; left: 30%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #2a1e12 0%, #0e0a06 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: fs-figure 4s ease-in-out infinite;
}
.scn-financial-strain .shadow-sharp {
  position: absolute; bottom: 18%; left: 25%; width: 40%; height: 4%;
  background: rgba(0,0,0,0.3);
  filter: blur(2px);
  transform: skewX(-30deg);
  animation: fs-shadow 5s ease-in-out infinite alternate;
}
.scn-financial-strain .lamp {
  position: absolute; top: 12%; left: 45%; width: 8%; height: 12%;
  background: radial-gradient(circle, #f8e088 0%, #e0a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #e0a040, 0 0 80px 40px rgba(224,160,64,0.3);
  animation: fs-lamp 3s ease-in-out infinite alternate;
}
@keyframes fs-coin {
  0% { transform: scale(1) translateY(0); }
  100% { transform: scale(1.05) translateY(-3px); }
}
@keyframes fs-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes fs-shadow {
  0% { opacity: 0.2; transform: skewX(-30deg) scaleX(1); }
  100% { opacity: 0.5; transform: skewX(-35deg) scaleX(1.1); }
}
@keyframes fs-lamp {
  0% { opacity: 0.85; box-shadow: 0 0 30px 15px #e0a040; }
  50% { opacity: 1; box-shadow: 0 0 50px 25px #f8c060; }
  100% { opacity: 0.9; box-shadow: 0 0 35px 18px #e0a040; }
}

/* decision-loire-campaign: tense, war tent */
.scn-decision-loire-campaign {
  background:
    linear-gradient(180deg, #4a3e2e 0%, #2a2018 50%, #1a1410 100%),
    radial-gradient(ellipse at 30% 20%, #806040 0%, transparent 60%);
}
.scn-decision-loire-campaign .tent-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #6a5a3a 0%, #3a2e1e 100%);
  clip-path: polygon(0 0, 100% 0, 100% 20%, 0 20%);
}
.scn-decision-loire-campaign .map-table {
  position: absolute; bottom: 10%; left: 10%; width: 70%; height: 25%;
  background: linear-gradient(180deg, #706050 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-decision-loire-campaign .map {
  position: absolute; bottom: 18%; left: 15%; width: 55%; height: 14%;
  background: linear-gradient(135deg, #d4c090 0%, #b09868 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: dlc-map 15s ease-in-out infinite alternate;
}
.scn-decision-loire-campaign .candle-bracket {
  position: absolute; bottom: 35%; right: 15%; width: 3%; height: 15%;
  background: linear-gradient(180deg, #5a4a32 0%, #2a1e12 100%);
  border-radius: 2px;
}
.scn-decision-loire-campaign .candle-flame {
  position: absolute; bottom: 48%; right: 15.5%; width: 2.5%; height: 5%;
  background: radial-gradient(circle, #f8d878 0%, #e8a830 40%, #b06810 80%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px #e8a830, 0 0 40px 16px rgba(232,168,48,0.4);
  animation: dlc-flame 2.5s ease-in-out infinite alternate;
}
.scn-decision-loire-campaign .figure-commander {
  position: absolute; bottom: 8%; left: 25%; width: 14%; height: 34%;
  background: linear-gradient(180deg, #1e1610 0%, #0a0604 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dlc-commander 6s ease-in-out infinite;
}
.scn-decision-loire-campaign .figure-knight {
  position: absolute; bottom: 10%; left: 50%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #2a1e14 0%, #120e0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  animation: dlc-knight 8s ease-in-out infinite alternate;
}
.scn-decision-loire-campaign .flag {
  position: absolute; top: 5%; left: 60%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #c05040 0%, #803020 100%);
  border-radius: 0 0 20% 20% / 0 0 50% 50%;
  transform-origin: top center;
  animation: dlc-flag 4s ease-in-out infinite alternate;
}
@keyframes dlc-map {
  0% { transform: rotate(-1deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(-1deg) scale(1); }
}
@keyframes dlc-flame {
  0% { transform: scaleY(1) rotate(-3deg); opacity: 0.8; }
  30% { transform: scaleY(1.2) rotate(2deg); opacity: 1; }
  70% { transform: scaleY(0.9) rotate(-2deg); opacity: 0.85; }
  100% { transform: scaleY(1.1) rotate(0deg); opacity: 0.9; }
}
@keyframes dlc-commander {
  0% { transform: translateY(0) rotate(-1deg); }
  33% { transform: translateY(-4px) rotate(2deg); }
  66% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes dlc-knight {
  0% { transform: translateY(0) rotate(0); }
  100% { transform: translateY(-5px) rotate(3deg); }
}
@keyframes dlc-flag {
  0% { transform: rotate(-5deg) scale(1); }
  100% { transform: rotate(5deg) scale(1.1); }
}

/* maid-urges-coronation: warm, throne room */
.scn-maid-urges-coronation {
  background:
    linear-gradient(180deg, #e8d8b0 0%, #c8b080 40%, #a08050 100%),
    radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-maid-urges-coronation .throne-room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d8c8a0 0%, #b09868 100%);
  clip-path: polygon(0 0, 100% 0, 100% 60%, 0 60%);
}
.scn-maid-urges-coronation .throne {
  position: absolute; bottom: 10%; left: 40%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #b09060 0%, #806040 100%);
  border-radius: 20% 20% 8% 8% / 30% 30% 10% 10%;
  box-shadow: 0 12px 24px rgba(0,0,0,0.3);
}
.scn-maid-urges-coronation .figure-king {
  position: absolute; bottom: 15%; left: 42%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a1e14 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc-king 10s ease-in-out infinite;
}
.scn-maid-urges-coronation .figure-maid {
  position: absolute; bottom: 12%; left: 25%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #3a2e24 0%, #1e1610 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mc-maid 7s ease-in-out infinite alternate;
}
.scn-maid-urges-coronation .stained-glass {
  position: absolute; top: 8%; left: 30%; width: 35%; height: 35%;
  background: linear-gradient(135deg, #b06040 0%, #907050 30%, #7090a0 60%, #c08060 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2), 0 0 30px 10px rgba(192,128,96,0.3);
  animation: mc-glass 25s ease-in-out infinite alternate;
}
.scn-maid-urges-coronation .light-beam {
  position: absolute; top: 20%; left: 35%; width: 20%; height: 40%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  transform: rotate(5deg);
  filter: blur(6px);
  animation: mc-beam 15s ease-in-out infinite alternate;
}
.scn-maid-urges-coronation .crown {
  position: absolute; bottom: 42%; left: 42%; width: 6%; height: 4%;
  background: radial-gradient(ellipse, #f0d060 0%, #d0a030 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 30% 30%;
  box-shadow: 0 0 16px 4px #f0d060, 0 0 32px 8px rgba(240,208,96,0.4);
  animation: mc-crown 6s ease-in-out infinite alternate;
}
@keyframes mc-king {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes mc-maid {
  0% { transform: translateY(0) rotate(0); }
  100% { transform: translateY(-6px) rotate(4deg); }
}
@keyframes mc-glass {
  0% { opacity: 0.7; box-shadow: inset 0 0 10px rgba(0,0,0,0.1); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(0,0,0,0.3), 0 0 20px 8px rgba(192,128,96,0.5); }
  100% { opacity: 0.8; box-shadow: inset 0 0 15px rgba(0,0,0,0.2); }
}
@keyframes mc-beam {
  0% { opacity: 0.1; transform: rotate(3deg) scaleX(1); }
  100% { opacity: 0.4; transform: rotate(8deg) scaleX(1.2); }
}
@keyframes mc-crown {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  100% { transform: translateY(-4px) scale(1.05); opacity: 1; }
}

/* english-retreat */
.scn-english-retreat {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 30%, #F0E68C 70%), radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 70%);
}
.scn-english-retreat .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 50%, #FFF8DC 100%); animation: er-sky 20s ease-in-out infinite alternate; }
.scn-english-retreat .sun { position:absolute; top:6%; left:70%; width:80px; height:80px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 40%, transparent 70%); border-radius:50%; filter: blur(8px); animation: er-sun 30s ease-in-out infinite; }
.scn-english-retreat .distant-city { position:absolute; bottom:45%; left:20%; width:30%; height:50px; background: linear-gradient(180deg, #A0522D 0%, #8B4513 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; clip-path: polygon(0% 100%, 10% 20%, 20% 100%, 30% 10%, 40% 100%, 50% 30%, 60% 100%, 70% 15%, 80% 100%, 100% 100%); animation: er-city 40s linear infinite; }
.scn-english-retreat .fields { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #6B8E23 0%, #556B2F 50%, #2E8B57 100%); border-radius: 20% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: er-fields 15s ease-in-out infinite alternate; }
.scn-english-retreat .road { position:absolute; bottom:28%; left:45%; width:10%; height:15%; background: #C4A882; clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%); transform: perspective(200px) rotateX(60deg); animation: er-road 12s ease-in-out infinite; }
.scn-english-retreat .figure-left { position:absolute; bottom:35%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #2F4F4F 0%, #1A1A1A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: er-figure 5s ease-in-out infinite; }
.scn-english-retreat .figure-right { position:absolute; bottom:35%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #2F4F4F 0%, #1A1A1A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: er-figure 5s ease-in-out infinite 2.5s; }
.scn-english-retreat .foreground-grass { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #228B22 0%, #006400 100%); border-radius: 40% 60% 0 0; filter: blur(2px); animation: er-grass 8s ease-in-out infinite alternate; }
@keyframes er-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes er-sun { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(-5px,5px) scale(1.02); } 100% { transform: translate(5px,-3px) scale(0.98); } }
@keyframes er-city { 0% { transform: translateX(0); } 100% { transform: translateX(20px); } }
@keyframes er-fields { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes er-road { 0% { transform: perspective(200px) rotateX(60deg) translateX(0); } 50% { transform: perspective(200px) rotateX(60deg) translateX(3px); } 100% { transform: perspective(200px) rotateX(60deg) translateX(0); } }
@keyframes er-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes er-grass { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }

/* english-depart */
.scn-english-depart {
  background: linear-gradient(180deg, #8B4513 0%, #A0522D 30%, #D2691E 60%), radial-gradient(ellipse at 50% 80%, #FFD700 0%, transparent 60%);
}
.scn-english-depart .wall-back { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #6B4226 0%, #8B5A2B 50%, #6B4226 100%); box-shadow: inset 0 0 30px rgba(0,0,0,0.5); animation: ed-wall 10s ease-in-out infinite; }
.scn-english-depart .window { position:absolute; top:30%; left:35%; width:120px; height:80px; background: #87CEEB; border: 8px solid #5C4033; border-radius: 4px; box-shadow: inset 0 0 20px #FFF8DC; animation: ed-window 15s ease-in-out infinite alternate; }
.scn-english-depart .light-beam { position:absolute; top:30%; left:35%; width:120px; height:50%; background: linear-gradient(180deg, rgba(255,255,224,0.6) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: ed-light 12s ease-in-out infinite alternate; }
.scn-english-depart .prisoner-1 { position:absolute; bottom:25%; left:20%; width:24px; height:50px; background: linear-gradient(180deg, #1A1A1A 0%, #2F2F2F 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ed-prisoner 5s ease-in-out infinite; }
.scn-english-depart .prisoner-2 { position:absolute; bottom:25%; left:40%; width:24px; height:50px; background: linear-gradient(180deg, #1A1A1A 0%, #2F2F2F 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ed-prisoner 5s ease-in-out infinite 2.5s; }
.scn-english-depart .barrel { position:absolute; bottom:22%; left:60%; width:40px; height:45px; background: linear-gradient(180deg, #8B4513 0%, #5C4033 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: ed-barrel 8s ease-in-out infinite; }
.scn-english-depart .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #5C4033 0%, #3E2723 100%); border-radius: 30% 30% 0 0; animation: ed-floor 6s ease-in-out infinite alternate; }
@keyframes ed-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ed-window { 0% { background: #87CEEB; } 50% { background: #B0E0E6; } 100% { background: #87CEEB; } }
@keyframes ed-light { 0% { opacity:0.6; transform: skewX(0deg); } 50% { opacity:0.9; transform: skewX(3deg); } 100% { opacity:0.5; transform: skewX(-2deg); } }
@keyframes ed-prisoner { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(16px) translateY(0) rotate(0); } }
@keyframes ed-barrel { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ed-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

/* maid-at-tours */
.scn-maid-at-tours {
  background: linear-gradient(180deg, #FFF8DC 0%, #FAEBD7 40%, #F5DEB3 80%), radial-gradient(ellipse at 50% 20%, #FFD700 0%, transparent 60%);
}
.scn-maid-at-tours .room-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #DEB887 0%, #C4A882 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.2); animation: mt-wall 14s ease-in-out infinite alternate; }
.scn-maid-at-tours .window-arch { position:absolute; top:20%; left:45%; width:100px; height:120px; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 70%); border-radius: 50% 50% 0 0 / 50% 50% 0 0; border: 6px solid #8B4513; box-shadow: inset 0 0 30px #FFF8DC; animation: mt-window 10s ease-in-out infinite; }
.scn-maid-at-tours .table { position:absolute; bottom:30%; left:30%; width:40%; height:20px; background: linear-gradient(90deg, #8B4513 0%, #A0522D 100%); border-radius: 4px; box-shadow: 0 6px 10px rgba(0,0,0,0.4); animation: mt-table 8s ease-in-out infinite alternate; }
.scn-maid-at-tours .figure-maid { position:absolute; bottom:30%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #4682B4 0%, #315C8A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mt-figure 6s ease-in-out infinite; }
.scn-maid-at-tours .figure-scribe { position:absolute; bottom:30%; left:55%; width:28px; height:55px; background: linear-gradient(180deg, #6B4226 0%, #4A2E1B 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mt-figure 6s ease-in-out infinite 3s; }
.scn-maid-at-tours .chair { position:absolute; bottom:30%; left:52%; width:25px; height:30px; background: linear-gradient(180deg, #5C4033 0%, #3E2723 100%); border-radius: 10% 10% 0 0; animation: mt-chair 12s ease-in-out infinite; }
.scn-maid-at-tours .book { position:absolute; bottom:35%; left:36%; width:40px; height:8px; background: #FFF8DC; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: mt-book 15s ease-in-out infinite alternate; }
.scn-maid-at-tours .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(90deg, #C4A882 0px, #DEB887 20px, #C4A882 40px); animation: mt-floor 10s linear infinite; }
@keyframes mt-wall { 0% { background-position: 0% 0%; } 50% { background-position: 5% 0%; } 100% { background-position: 0% 0%; } }
@keyframes mt-window { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes mt-table { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes mt-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(6px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(12px) translateY(0) rotate(-1deg); } 75% { transform: translateX(18px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(24px) translateY(0) rotate(0); } }
@keyframes mt-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes mt-book { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes mt-floor { 0% { background-position: 0% 0%; } 100% { background-position: 40px 0%; } }

/* gelu-treatise */
.scn-gelu-treatise {
  background: linear-gradient(180deg, #FAEBD7 0%, #FFF5EE 30%, #F5F5DC 60%), radial-gradient(ellipse at 60% 10%, #FFD700 0%, transparent 50%);
}
.scn-gelu-treatise .study-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #DEB887 0%, #C4A882 100%); box-shadow: inset 0 0 50px rgba(0,0,0,0.15); animation: gt-wall 18s ease-in-out infinite alternate; }
.scn-gelu-treatise .desk { position:absolute; bottom:30%; left:20%; width:60%; height:25%; background: linear-gradient(180deg, #8B4513 0%, #6B4226 100%); border-radius: 4px 4px 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.4); animation: gt-desk 12s ease-in-out infinite alternate; }
.scn-gelu-treatise .book-open { position:absolute; bottom:38%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #FFF8DC 0%, #F5DEB3 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: gt-book 20s ease-in-out infinite; }
.scn-gelu-treatise .figure-scholar { position:absolute; bottom:30%; left:30%; width:35px; height:70px; background: linear-gradient(180deg, #2F4F4F 0%, #1A1A1A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gt-scholar 7s ease-in-out infinite; }
.scn-gelu-treatise .candle { position:absolute; bottom:35%; left:55%; width:10px; height:20px; background: linear-gradient(180deg, #FFD700 0%, #DAA520 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 20px 6px #FFD700, 0 0 40px 12px rgba(255,215,0,0.4); animation: gt-candle 4s ease-in-out infinite alternate; }
.scn-gelu-treatise .window-light { position:absolute; top:10%; left:10%; width:80%; height:80%; background: radial-gradient(ellipse at 50% 0%, rgba(255,255,224,0.5) 0%, transparent 70%); animation: gt-light 25s ease-in-out infinite; }
.scn-gelu-treatise .shelf { position:absolute; top:15%; left:10%; width:80%; height:8%; background: linear-gradient(90deg, #5C4033 0%, #8B5A2B 50%, #5C4033 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: gt-shelf 20s linear infinite; }
.scn-gelu-treatise .scroll { position:absolute; bottom:32%; left:20%; width:15%; height:6%; background: #E8D5B7; border-radius: 20px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: gt-scroll 15s ease-in-out infinite alternate; }
@keyframes gt-wall { 0% { background-position: 0% 0%; } 50% { background-position: 10% 0%; } 100% { background-position: 0% 0%; } }
@keyframes gt-desk { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gt-book { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes gt-scholar { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-3px) rotate(2deg); } 50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 75% { transform: translateX(15px) translateY(-3px) rotate(1deg); } 100% { transform: translateX(20px) translateY(0) rotate(0); } }
@keyframes gt-candle { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.05); opacity:1; } 100% { transform: scaleY(0.95); opacity:0.8; } }
@keyframes gt-light { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.3; } }
@keyframes gt-shelf { 0% { transform: translateX(0); } 100% { transform: translateX(15px); } }
@keyframes gt-scroll { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }

.scn-jeanne-tells-of-interrogation {
  background: linear-gradient(180deg, #1a121a 0%, #2a1e2a 30%, #1a1418 100%),
              radial-gradient(ellipse at 60% 40%, #3a2a2a 0%, transparent 60%);
}
.scn-jeanne-tells-of-interrogation .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a1e2a 0%, #3a2a2a 50%, #2a1e2a 100%);
  animation: jtio-wall 6s ease-in-out infinite alternate;
}
.scn-jeanne-tells-of-interrogation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1418 0%, #2a1e2a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: jtio-floor 4s ease-in-out infinite alternate;
}
.scn-jeanne-tells-of-interrogation .table {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1e2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: jtio-table 5s ease-in-out infinite;
}
.scn-jeanne-tells-of-interrogation .candle {
  position: absolute; bottom: 26%; left: 45%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 2px 2px;
  animation: jtio-candle 2s ease-in-out infinite;
}
.scn-jeanne-tells-of-interrogation .flame {
  position: absolute; bottom: 44%; left: 45.5%; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffc060 0%, #ff8020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(255,192,96,.6), 0 0 32px 12px rgba(255,128,32,.3);
  animation: jtio-flame 0.8s ease-in-out infinite alternate;
}
.scn-jeanne-tells-of-interrogation .figure {
  position: absolute; bottom: 22%; left: 38%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a121a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: jtio-figure 3s ease-in-out infinite;
}
.scn-jeanne-tells-of-interrogation .shadow {
  position: absolute; bottom: 0; left: 30%; width: 50%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 70%);
  animation: jtio-shadow 5s ease-in-out infinite alternate;
}
@keyframes jtio-wall { 0% { opacity: .8; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.02); } 100% { opacity: .85; transform: scaleX(.98); } }
@keyframes jtio-floor { 0% { opacity: .9; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-2px); } 100% { opacity: .95; transform: translateY(1px); } }
@keyframes jtio-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes jtio-candle { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } }
@keyframes jtio-flame { 0% { opacity: .7; transform: scaleY(1) rotate(-2deg); } 25% { opacity: 1; transform: scaleY(1.2) rotate(1deg); } 75% { opacity: .8; transform: scaleY(1.1) rotate(-1deg); } 100% { opacity: .9; transform: scaleY(1) rotate(0deg); } }
@keyframes jtio-figure { 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(0deg); } }
@keyframes jtio-shadow { 0% { opacity: .3; transform: scaleX(1); } 50% { opacity: .5; transform: scaleX(1.1); } 100% { opacity: .4; transform: scaleX(.9); } }

.scn-jeanne-marguerite-conversation {
  background: linear-gradient(180deg, #2a1e2a 0%, #3a2e3a 40%, #2a1e2a 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a4a 0%, transparent 60%);
}
.scn-jeanne-marguerite-conversation .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #3a2e3a 0%, #4a3e4a 50%, #3a2e3a 100%);
  animation: jmc-wall 10s ease-in-out infinite alternate;
}
.scn-jeanne-marguerite-conversation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #1a121a 0%, #2a1e2a 100%);
  border-radius: 15% 15% 0 0 / 8% 8% 0 0;
  animation: jmc-floor 8s ease-in-out infinite alternate;
}
.scn-jeanne-marguerite-conversation .window {
  position: absolute; top: 15%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a4e6a 0%, #3a3e5a 100%);
  border: 4px solid #2a1e2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: jmc-window 12s ease-in-out infinite;
}
.scn-jeanne-marguerite-conversation .candle {
  position: absolute; bottom: 25%; left: 50%; width: 6px; height: 16px;
  margin-left: -3px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 3px;
  animation: jmc-candle 3s ease-in-out infinite;
}
.scn-jeanne-marguerite-conversation .figure-left {
  position: absolute; bottom: 20%; left: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jmc-figure-left 6s ease-in-out infinite;
}
.scn-jeanne-marguerite-conversation .figure-right {
  position: absolute; bottom: 20%; right: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jmc-figure-right 6s ease-in-out infinite reverse;
}
@keyframes jmc-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .95; } }
@keyframes jmc-floor { 0% { opacity: .9; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-1px); } 100% { opacity: .95; transform: translateY(0); } }
@keyframes jmc-window { 0%,100% { opacity: .7; } 50% { opacity: .9; } }
@keyframes jmc-candle { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } }
@keyframes jmc-figure-left { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes jmc-figure-right { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-jeanne-horror-of-gaming {
  background: linear-gradient(180deg, #1a1218 0%, #2a1e28 50%, #1a1218 100%),
              radial-gradient(ellipse at 50% 70%, #3a2a34 0%, transparent 60%);
}
.scn-jeanne-horror-of-gaming .table {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 6%;
  background: linear-gradient(180deg, #3a2a34 0%, #2a1e28 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 16px rgba(0,0,0,.5);
  animation: jhg-table 7s ease-in-out infinite alternate;
}
.scn-jeanne-horror-of-gaming .dice {
  position: absolute; bottom: 24%; width: 12px; height: 12px;
  background: linear-gradient(135deg, #5a4a4a 0%, #3a2a2a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-jeanne-horror-of-gaming .dice.left {
  left: 35%;
  animation: jhg-dice-left 4s ease-in-out infinite;
}
.scn-jeanne-horror-of-gaming .dice.right {
  left: 55%;
  animation: jhg-dice-right 4.5s ease-in-out infinite;
}
.scn-jeanne-horror-of-gaming .dicebox {
  position: absolute; bottom: 22%; left: 42%; width: 16%; height: 10%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1e1e 100%);
  border-radius: 6px;
  border: 2px solid #1a1218;
  animation: jhg-dicebox 5s ease-in-out infinite;
}
.scn-jeanne-horror-of-gaming .candle {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 14px;
  margin-left: -3px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 3px;
  animation: jhg-candle 2s ease-in-out infinite;
}
.scn-jeanne-horror-of-gaming .flame {
  position: absolute; bottom: 42%; left: 50%; width: 5px; height: 8px;
  margin-left: -2.5px;
  background: radial-gradient(circle, #ffc060 0%, #ff8020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,192,96,.5), 0 0 24px 8px rgba(255,128,32,.2);
  animation: jhg-flame 0.9s ease-in-out infinite alternate;
}
.scn-jeanne-horror-of-gaming .shadow {
  position: absolute; bottom: 0; left: 15%; width: 70%; height: 15%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 70%);
  animation: jhg-shadow 6s ease-in-out infinite alternate;
}
@keyframes jhg-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes jhg-dice-left { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(3px,-2px) rotate(15deg); } 50% { transform: translate(6px,0) rotate(30deg); } 75% { transform: translate(3px,2px) rotate(15deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes jhg-dice-right { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-2px,-3px) rotate(-10deg); } 50% { transform: translate(-5px,0) rotate(-20deg); } 75% { transform: translate(-2px,2px) rotate(-10deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes jhg-dicebox { 0%,100% { opacity: .8; transform: scale(.95); } 50% { opacity: 1; transform: scale(1); } }
@keyframes jhg-candle { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } }
@keyframes jhg-flame { 0% { opacity: .7; transform: scaleY(1) rotate(-2deg); } 25% { opacity: 1; transform: scaleY(1.2) rotate(1deg); } 75% { opacity: .8; transform: scaleY(1.1) rotate(-1deg); } 100% { opacity: .9; transform: scaleY(1) rotate(0deg); } }
@keyframes jhg-shadow { 0% { opacity: .3; transform: scaleX(1); } 50% { opacity: .5; transform: scaleX(1.1); } 100% { opacity: .4; transform: scaleX(.9); } }

.scn-marguerite-judges-jeanne-2 {
  background: linear-gradient(180deg, #1a121a 0%, #2a1e2a 50%, #1a121a 100%),
              radial-gradient(ellipse at 50% 50%, #3a2a3a 0%, transparent 60%);
}
.scn-marguerite-judges-jeanne-2 .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #2a1e2a 0%, #3a2e3a 50%, #2a1e2a 100%);
  animation: mjj-wall 9s ease-in-out infinite alternate;
}
.scn-marguerite-judges-jeanne-2 .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #1a121a 0%, #2a1e2a 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
  animation: mjj-floor 7s ease-in-out infinite alternate;
}
.scn-marguerite-judges-jeanne-2 .chair {
  position: absolute; bottom: 20%; left: 40%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1e2a 100%);
  border-radius: 20% 20% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: mjj-chair 8s ease-in-out infinite;
}
.scn-marguerite-judges-jeanne-2 .figure {
  position: absolute; bottom: 25%; left: 42%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mjj-figure 5s ease-in-out infinite;
}
.scn-marguerite-judges-jeanne-2 .book {
  position: absolute; bottom: 28%; left: 46%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: mjj-book 4s ease-in-out infinite;
}
.scn-marguerite-judges-jeanne-2 .candle {
  position: absolute; bottom: 32%; left: 52%; width: 5px; height: 12px;
  margin-left: -2.5px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  animation: mjj-candle 2.5s ease-in-out infinite;
}
.scn-marguerite-judges-jeanne-2 .flame {
  position: absolute; bottom: 43%; left: 52%; width: 4px; height: 7px;
  margin-left: -2px;
  background: radial-gradient(circle, #ffc060 0%, #ff8020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(255,192,96,.5), 0 0 20px 6px rgba(255,128,32,.2);
  animation: mjj-flame 0.7s ease-in-out infinite alternate;
}
.scn-marguerite-judges-jeanne-2 .shadow {
  position: absolute; bottom: 0; left: 35%; width: 40%; height: 18%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 70%);
  animation: mjj-shadow 6s ease-in-out infinite alternate;
}
@keyframes mjj-wall { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes mjj-floor { 0% { opacity: .9; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-1px); } 100% { opacity: .95; transform: translateY(1px); } }
@keyframes mjj-chair { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes mjj-figure { 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(0deg); } }
@keyframes mjj-book { 0%,100% { opacity: .8; } 50% { opacity: 1; } }
@keyframes mjj-candle { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } }
@keyframes mjj-flame { 0% { opacity: .7; transform: scaleY(1) rotate(-2deg); } 25% { opacity: 1; transform: scaleY(1.2) rotate(1deg); } 75% { opacity: .8; transform: scaleY(1.1) rotate(-1deg); } 100% { opacity: .9; transform: scaleY(1) rotate(0deg); } }
@keyframes mjj-shadow { 0% { opacity: .3; transform: scaleX(1); } 50% { opacity: .5; transform: scaleX(1.1); } 100% { opacity: .4; transform: scaleX(.9); } }

/* jeanne-breaks-sword – tense sunlit */
.scn-jeanne-breaks-sword {
  background:
    linear-gradient(180deg, #f7e5c0 0%, #d4b07a 30%, #c2955e 60%, #8a6e3a 100%),
    radial-gradient(ellipse at 50% 20%, #ffeac0 0%, transparent 60%);
}
.scn-jeanne-breaks-sword .sun {
  position: absolute; top: 8%; left: 65%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff5d0 0%, #fce1a0 50%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,225,160,0.6);
  animation: jbs-sun 8s ease-in-out infinite alternate;
}
.scn-jeanne-breaks-sword .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #dce8f0 0%, #b8c8d8 60%, transparent 100%);
  animation: jbs-sky 12s ease-in-out infinite alternate;
}
.scn-jeanne-breaks-sword .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a8a3e 0%, #3a5a1a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
  animation: jbs-ground 14s ease-in-out infinite alternate;
}
.scn-jeanne-breaks-sword .figure-jeanne {
  position: absolute; bottom: 30%; left: 30%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jbs-fig-jeanne 2s ease-in-out infinite;
}
.scn-jeanne-breaks-sword .figure-wanton {
  position: absolute; bottom: 22%; left: 52%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jbs-fig-wanton 1.4s ease-in-out infinite;
}
.scn-jeanne-breaks-sword .sword-fragment {
  position: absolute; bottom: 48%; left: 38%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #c0c0d0 0%, #707080 100%);
  border-radius: 2px;
  transform-origin: 50% 100%;
  animation: jbs-sword-frag 1.6s ease-in-out infinite;
}
.scn-jeanne-breaks-sword .impact-burst {
  position: absolute; bottom: 45%; left: 40%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffe070 0%, #ffb020 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 16px 8px rgba(255,176,32,0.6);
  animation: jbs-burst 0.8s ease-in-out infinite;
}
@keyframes jbs-sun { 0% { transform: scale(0.9); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.85; } }
@keyframes jbs-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes jbs-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes jbs-fig-jeanne { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes jbs-fig-wanton { 0% { transform: translateX(0) translateY(0) scaleY(0.95); } 25% { transform: translateX(1px) translateY(-1px) scaleY(1); } 50% { transform: translateX(0) translateY(0) scaleY(0.95); } 75% { transform: translateX(-1px) translateY(-1px) scaleY(1); } 100% { transform: translateX(0) translateY(0) scaleY(0.95); } }
@keyframes jbs-sword-frag { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-6px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes jbs-burst { 0% { opacity: 0.3; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.6); } }

/* item-saint-catherines-sword – calm dim interior */
.scn-item-saint-catherines-sword {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #1a1010 40%, #0a0808 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a2a 0%, transparent 70%);
}
.scn-item-saint-catherines-sword .bg-wall {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, #1a1010 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.8);
  animation: scs-wall 20s ease-in-out infinite alternate;
}
.scn-item-saint-catherines-sword .altar {
  position: absolute; bottom: 10%; left: 50%; width: 120px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: scs-altar 9s ease-in-out infinite;
}
.scn-item-saint-catherines-sword .sword-blade {
  position: absolute; bottom: 25%; left: 48%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #b0a0b0 0%, #706070 100%);
  border-radius: 3px 3px 1px 1px;
  transform: rotate(-15deg);
  transform-origin: 50% 100%;
  animation: scs-blade 6s ease-in-out infinite alternate;
}
.scn-item-saint-catherines-sword .sword-hilt {
  position: absolute; bottom: 28%; left: 48%; width: 12px; height: 8px;
  background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  transform-origin: 50% 100%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: scs-hilt 6s ease-in-out infinite alternate;
}
.scn-item-saint-catherines-sword .candle {
  position: absolute; bottom: 12%; left: 35%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a080 100%);
  border-radius: 2px;
  animation: scs-candle 4s ease-in-out infinite;
}
.scn-item-saint-catherines-sword .candle-glow {
  position: absolute; bottom: 16%; left: 35%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,220,150,0.8) 0%, rgba(255,200,100,0.3) 60%, transparent 100%);
  border-radius: 50%;
  transform: translate(-50%, 50%);
  animation: scs-candleglow 3s ease-in-out infinite alternate;
}
.scn-item-saint-catherines-sword .cloth {
  position: absolute; bottom: 10%; left: 44%; width: 20px; height: 6px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  animation: scs-cloth 8s ease-in-out infinite alternate;
}
@keyframes scs-wall { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes scs-altar { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes scs-blade { 0% { transform: rotate(-18deg) scaleY(0.95); } 50% { transform: rotate(-12deg) scaleY(1); } 100% { transform: rotate(-18deg) scaleY(0.95); } }
@keyframes scs-hilt { 0% { transform: rotate(-18deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(1px); } 100% { transform: rotate(-18deg) translateY(0); } }
@keyframes scs-candle { 0% { transform: translateY(0) scaleY(0.9); } 50% { transform: translateY(-2px) scaleY(1); } 100% { transform: translateY(0) scaleY(0.9); } }
@keyframes scs-candleglow { 0% { opacity: 0.7; transform: translate(-50%, 50%) scale(1); } 50% { opacity: 1; transform: translate(-50%, 50%) scale(1.3); } 100% { opacity: 0.8; transform: translate(-50%, 50%) scale(1); } }
@keyframes scs-cloth { 0% { transform: rotate(3deg) translateX(0); } 50% { transform: rotate(7deg) translateX(2px); } 100% { transform: rotate(3deg) translateX(0); } }

/* king-appoints-commanders – calm dim interior */
.scn-king-appoints-commanders {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #12121a 40%, #0a0a10 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 70%);
}
.scn-king-appoints-commanders .bg-column {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, #3a3a4a 0px, #3a3a4a 12px, #2a2a3a 12px, #2a2a3a 24px);
  background-size: 100% 24px;
  animation: kac-column 30s linear infinite;
}
.scn-king-appoints-commanders .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 0 0 10% 10%;
}
.scn-king-appoints-commanders .throne {
  position: absolute; bottom: 20%; left: 25%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: kac-throne 6s ease-in-out infinite;
}
.scn-king-appoints-commanders .figure-king {
  position: absolute; bottom: 22%; left: 27%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kac-king 4s ease-in-out infinite;
}
.scn-king-appoints-commanders .figure-kneeling {
  position: absolute; bottom: 14%; left: 48%; width: 20px; height: 34px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kac-kneel 3s ease-in-out infinite alternate;
}
.scn-king-appoints-commanders .staff {
  position: absolute; bottom: 32%; left: 38%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  transform-origin: 50% 100%;
  animation: kac-staff 7s ease-in-out infinite alternate;
}
.scn-king-appoints-commanders .light-beam {
  position: absolute; top: 5%; left: 30%; width: 60px; height: 70%;
  background: linear-gradient(180deg, rgba(220,200,180,0.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: kac-beam 10s ease-in-out infinite alternate;
}
@keyframes kac-column { 0% { background-position: 0 0; } 100% { background-position: 0 24px; } }
@keyframes kac-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes kac-king { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kac-kneel { 0% { transform: translateY(0) scaleY(0.95); } 50% { transform: translateY(-2px) scaleY(1); } 100% { transform: translateY(0) scaleY(0.95); } }
@keyframes kac-staff { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes kac-beam { 0% { opacity: 0.3; filter: blur(8px); } 50% { opacity: 0.6; filter: blur(6px); } 100% { opacity: 0.4; filter: blur(10px); } }

/* jeanne-offers-armour-detail – calm dim interior */
.scn-jeanne-offers-armour-detail {
  background:
    linear-gradient(180deg, #1a1015 0%, #12100e 50%, #0a0808 100%),
    radial-gradient(ellipse at 50% 30%, #2a1a1a 0%, transparent 80%);
}
.scn-jeanne-offers-armour-detail .chapel-wall {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 20%, #2a1a1a 0%, #0a0808 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.9);
  animation: jad-wall 15s ease-in-out infinite alternate;
}
.scn-jeanne-offers-armour-detail .altar-base {
  position: absolute; bottom: 10%; left: 50%; width: 100px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1010 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-jeanne-offers-armour-detail .statue {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: jad-statue 5s ease-in-out infinite alternate;
}
.scn-jeanne-offers-armour-detail .helmet {
  position: absolute; bottom: 14%; left: 35%; width: 16px; height: 14px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(15deg);
  animation: jad-helmet 7s ease-in-out infinite alternate;
}
.scn-jeanne-offers-armour-detail .breastplate {
  position: absolute; bottom: 14%; left: 55%; width: 20px; height: 18px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-10deg);
  animation: jad-breast 7s ease-in-out infinite alternate;
}
.scn-jeanne-offers-armour-detail .candle-glow {
  position: absolute; bottom: 8%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(240,200,120,0.6) 0%, rgba(240,180,80,0.2) 60%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: jad-candle 4s ease-in-out infinite alternate;
}
.scn-jeanne-offers-armour-detail .light-rays {
  position: absolute; top: 5%; left: 35%; width: 50px; height: 50%;
  background: linear-gradient(180deg, rgba(220,200,170,0.1) 0%, transparent 100%);
  filter: blur(10px);
  animation: jad-rays 12s ease-in-out infinite alternate;
}
@keyframes jad-wall { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes jad-statue { 0% { transform: translateX(-50%) translateY(0) scaleY(0.98); } 50% { transform: translateX(-50%) translateY(-2px) scaleY(1); } 100% { transform: translateX(-50%) translateY(0) scaleY(0.98); } }
@keyframes jad-helmet { 0% { transform: rotate(12deg) translateX(0); } 50% { transform: rotate(18deg) translateX(2px); } 100% { transform: rotate(12deg) translateX(0); } }
@keyframes jad-breast { 0% { transform: rotate(-12deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(-2px); } 100% { transform: rotate(-12deg) translateX(0); } }
@keyframes jad-candle { 0% { opacity: 0.5; transform: translateX(-50%) scale(1); } 50% { opacity: 0.8; transform: translateX(-50%) scale(1.3); } 100% { opacity: 0.6; transform: translateX(-50%) scale(1); } }
@keyframes jad-rays { 0% { opacity: 0.2; filter: blur(10px); } 50% { opacity: 0.4; filter: blur(7px); } 100% { opacity: 0.3; filter: blur(12px); } }

/* maid-exhortations – warm interior, bright from window */
.scn-maid-exhortations {
  background: linear-gradient(180deg, #d4b28c 0%, #c09a6a 40%, #8a6a3e 100%),
              radial-gradient(ellipse at 30% 60%, #e8d0b0 0%, transparent 60%);
}
.scn-maid-exhortations .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #b89a7a 0%, #8a6a4e 100%); }
.scn-maid-exhortations .window { position:absolute; top:10%; right:12%; width:80px; height:120px; background: linear-gradient(135deg, #ffe8c0 0%, #d4b080 100%); border-radius:4px; box-shadow: 0 0 40px 16px rgba(255,232,192,0.5); animation: me-window 8s ease-in-out infinite alternate; }
.scn-maid-exhortations .pulpit { position:absolute; bottom:25%; left:35%; width:60px; height:90px; background: linear-gradient(90deg, #6a4a2a 0%, #5a3a1a 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-maid-exhortations .figure { position:absolute; bottom:32%; left:38%; width:20px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: me-figure 5s ease-in-out infinite; }
.scn-maid-exhortations .halo { position:absolute; bottom:38%; left:40%; width:40px; height:60px; background: radial-gradient(circle, rgba(255,232,192,0.4) 0%, transparent 70%); filter: blur(8px); animation: me-halo 3s ease-in-out infinite alternate; }
.scn-maid-exhortations .shadow { position:absolute; bottom:20%; left:30%; width:100px; height:16px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: me-shadow 5s ease-in-out infinite; }
.scn-maid-exhortations .banner { position:absolute; bottom:40%; left:50%; width:12px; height:80px; background: #a0461a; border-radius:2px; transform-origin: bottom center; animation: me-banner 4s ease-in-out infinite; }
@keyframes me-window { 0% { opacity:0.7; box-shadow:0 0 30px 10px rgba(255,232,192,0.4); } 50% { opacity:1; box-shadow:0 0 60px 24px rgba(255,232,192,0.7); } 100% { opacity:0.8; box-shadow:0 0 40px 16px rgba(255,232,192,0.5); } }
@keyframes me-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes me-halo { 0% { opacity:0.3; transform: scale(0.95); } 50% { opacity:0.6; transform: scale(1.05); } 100% { opacity:0.4; transform: scale(0.98); } }
@keyframes me-shadow { 0% { transform: scaleX(1); opacity:0.6; } 50% { transform: scaleX(1.2); opacity:0.4; } 100% { transform: scaleX(1); opacity:0.6; } }
@keyframes me-banner { 0% { transform: rotate(-3deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }

/* blois-monks – calm church interior, bright */
.scn-blois-monks {
  background: linear-gradient(180deg, #a89878 0%, #7a6a5a 40%, #5a4a3a 100%),
              radial-gradient(ellipse at 50% 30%, #c8b898 0%, transparent 60%);
}
.scn-blois-monks .bg-church { position:absolute; inset:0; background: linear-gradient(135deg, #8a7a6a 0%, #5a4a3a 100%); }
.scn-blois-monks .cross { position:absolute; top:8%; left:50%; transform:translateX(-50%); width:10px; height:80px; background: #8a6a4a; border-radius:2px; }
.scn-blois-monks .cross::after { content:''; position:absolute; top:20px; left:-18px; width:46px; height:10px; background: #8a6a4a; border-radius:2px; }
.scn-blois-monks .candle { position:absolute; top:30%; left:30%; width:6px; height:40px; background: #d4b08a; border-radius:2px; box-shadow:0 0 20px 6px #ffe8c0; animation: bm-candle 3s ease-in-out infinite alternate; }
.scn-blois-monks .standard { position:absolute; bottom:40%; left:25%; width:8px; height:120px; background: #6a5a4a; transform-origin: bottom center; animation: bm-standard 8s ease-in-out infinite alternate; }
.scn-blois-monks .standard::after { content:''; position:absolute; top:-10px; left:-20px; width:48px; height:30px; background: linear-gradient(180deg, #b87878 0%, #8a5a5a 100%); border-radius:4px; }
.scn-blois-monks .monk-a { position:absolute; bottom:22%; left:20%; width:16px; height:48px; background: #3a2a1a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bm-monk 12s ease-in-out infinite; }
.scn-blois-monks .monk-b { position:absolute; bottom:20%; left:35%; width:16px; height:50px; background: #4a3a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bm-monk 14s ease-in-out infinite 2s; }
.scn-blois-monks .monk-c { position:absolute; bottom:18%; left:50%; width:16px; height:52px; background: #2a1a0a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bm-monk 10s ease-in-out infinite 4s; }
@keyframes bm-candle { 0% { box-shadow:0 0 15px 4px #ffe8c0; opacity:0.9; } 50% { box-shadow:0 0 30px 12px #ffe8c0; opacity:1; } 100% { box-shadow:0 0 20px 6px #ffe8c0; opacity:0.85; } }
@keyframes bm-standard { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes bm-monk { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* blois-mockery – tense, bright interior, sharp shadows */
.scn-blois-mockery {
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 40%, #2a2a3a 100%),
              radial-gradient(ellipse at 60% 40%, #c8553d 0%, transparent 70%);
}
.scn-blois-mockery .bg-hall { position:absolute; inset:0; background: linear-gradient(135deg, #4a4a5a 0%, #1a1a2a 100%); }
.scn-blois-mockery .torch { position:absolute; top:10%; left:15%; width:8px; height:60px; background: #8a6a3a; border-radius:2px; box-shadow:0 0 30px 12px #c8553d; animation: bmo-torch 0.8s ease-in-out infinite alternate; }
.scn-blois-mockery .figure-maid { position:absolute; bottom:30%; left:30%; width:22px; height:56px; background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bmo-figure 4s ease-in-out infinite; }
.scn-blois-mockery .banner-mock { position:absolute; bottom:38%; left:36%; width:10px; height:100px; background: #702243; transform-origin: bottom center; animation: bmo-banner 2s ease-in-out infinite; }
.scn-blois-mockery .banner-mock::after { content:''; position:absolute; top:-10px; left:-18px; width:46px; height:28px; background: #702243; border-radius:4px; }
.scn-blois-mockery .mocker-1 { position:absolute; bottom:22%; left:55%; width:16px; height:44px; background: #2a2a3a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bmo-mocker 2.5s ease-in-out infinite; }
.scn-blois-mockery .mocker-2 { position:absolute; bottom:20%; left:65%; width:14px; height:40px; background: #3a3a4a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bmo-mocker 3s ease-in-out infinite 0.5s; }
.scn-blois-mockery .mocker-3 { position:absolute; bottom:18%; left:45%; width:18px; height:48px; background: #1a1a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bmo-mocker 2s ease-in-out infinite 1s; }
.scn-blois-mockery .shadow-mock { position:absolute; bottom:15%; left:20%; width:80%; height:10px; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.5) 30%, rgba(0,0,0,0.5) 70%, transparent 100%); filter: blur(6px); animation: bmo-shadow 4s ease-in-out infinite alternate; }
@keyframes bmo-torch { 0% { box-shadow:0 0 20px 8px #c8553d; opacity:0.8; } 50% { box-shadow:0 0 40px 16px #c8553d; opacity:1; } 100% { box-shadow:0 0 25px 10px #c8553d; opacity:0.9; } }
@keyframes bmo-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bmo-banner { 0% { transform: rotate(-5deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(-3deg); } 75% { transform: rotate(4deg); } 100% { transform: rotate(-4deg); } }
@keyframes bmo-mocker { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(1px) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bmo-shadow { 0% { transform: scaleX(1); opacity:0.6; } 50% { transform: scaleX(1.2); opacity:0.3; } 100% { transform: scaleX(1); opacity:0.6; } }

/* blois-departure – calm dawn, wide horizon */
.scn-blois-departure {
  background: linear-gradient(180deg, #f2d8b0 0%, #e0b88a 30%, #b88a6a 60%, #7a6a5a 100%),
              radial-gradient(ellipse at 50% 10%, #ffe8c0 0%, transparent 60%);
}
.scn-blois-departure .sky-dawn { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #e8c8a8 0%, #d4a080 60%, #b88a6a 100%); }
.scn-blois-departure .sun-glow { position:absolute; top:8%; left:50%; transform:translateX(-50%); width:100px; height:100px; background: radial-gradient(circle, #ffe8c0 0%, #e8b88a 40%, transparent 70%); filter: blur(12px); animation: bd-sun 20s ease-in-out infinite alternate; }
.scn-blois-departure .road-left { position:absolute; bottom:30%; left:0; width:50%; height:20%; background: linear-gradient(90deg, #8a7a5a 0%, #6a5a3a 100%); clip-path: polygon(0% 0%, 100% 20%, 100% 80%, 0% 100%); animation: bd-road 15s linear infinite; }
.scn-blois-departure .road-right { position:absolute; bottom:30%; right:0; width:50%; height:20%; background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 100%); clip-path: polygon(0% 20%, 100% 0%, 100% 100%, 0% 80%); animation: bd-road 15s linear infinite reverse; }
.scn-blois-departure .figures { position:absolute; bottom:32%; left:40%; width:60px; height:20px; background: #4a3a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px); animation: bd-figures 10s ease-in-out infinite; }
.scn-blois-departure .trees { position:absolute; bottom:38%; right:10%; width:30px; height:60px; background: #3a5a3a; border-radius:60% 60% 0 0 / 80% 80% 0 0; filter: blur(3px); animation: bd-trees 12s ease-in-out infinite alternate; }
.scn-blois-departure .cloud-1 { position:absolute; top:15%; left:5%; width:100px; height:20px; background: rgba(255,232,192,0.4); border-radius:50%; filter: blur(10px); animation: bd-cloud 40s linear infinite; }
.scn-blois-departure .cloud-2 { position:absolute; top:22%; right:10%; width:80px; height:16px; background: rgba(255,220,180,0.3); border-radius:50%; filter: blur(8px); animation: bd-cloud 50s linear infinite reverse; }
@keyframes bd-sun { 0% { transform:translateX(-50%) scale(0.95); opacity:0.7; } 50% { transform:translateX(-50%) scale(1.05); opacity:1; } 100% { transform:translateX(-50%) scale(0.98); opacity:0.8; } }
@keyframes bd-road { 0% { background-position:0 0; } 100% { background-position:100% 0; } }
@keyframes bd-figures { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(3px) scaleY(0.95); } 50% { transform: translateX(5px) scaleY(1); } 75% { transform: translateX(8px) scaleY(0.98); } 100% { transform: translateX(10px) scaleY(1); } }
@keyframes bd-trees { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(0.95); } }
@keyframes bd-cloud { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }

/* paris-fortifications (tense, sunlit) */
.scn-paris-fortifications {
  background: linear-gradient(180deg, #6ab0d0 0%, #c4a050 40%, #d4b060 100%),
              radial-gradient(ellipse at 50% 0%, #ffe088 0%, transparent 60%);
}
.scn-paris-fortifications .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #8accff 0%, #b0d0e0 100%);
  animation: pf-sky 8s ease-in-out infinite alternate;
}
.scn-paris-fortifications .sun {
  position: absolute; top: 10%; left: 60%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe8b0 0%, #d4a040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(212,160,64,.5), 0 0 60px 20px rgba(255,232,176,.3);
  animation: pf-sun 6s ease-in-out infinite alternate;
}
.scn-paris-fortifications .wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a06650 0%, #704440 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.4);
  animation: pf-wall 12s ease-in-out infinite alternate;
}
.scn-paris-fortifications .tower {
  position: absolute; bottom: 30%; left: 20%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #b07860 0%, #7a4a3a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: -2px 0 6px rgba(0,0,0,.3);
}
.scn-paris-fortifications .worker {
  position: absolute; bottom: 28%; left: 30%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pf-walk 4s ease-in-out infinite;
}
.scn-paris-fortifications .banner {
  position: absolute; bottom: 32%; left: 45%; width: 6px; height: 32px;
  background: linear-gradient(180deg, #4a2020 0%, #2a1010 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 4px rgba(0,0,0,.2);
  animation: pf-banner 3s ease-in-out infinite;
}
.scn-paris-fortifications .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-paris-fortifications .cloud {
  position: absolute; top: 12%; left: 10%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: pf-cloud 30s linear infinite;
}
@keyframes pf-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes pf-sun { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 10px rgba(212,160,64,.5) } 50% { transform: translateY(-3px) scale(1.05); box-shadow: 0 0 40px 14px rgba(212,160,64,.6) } 100% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 10px rgba(212,160,64,.5) } }
@keyframes pf-wall { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes pf-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes pf-banner { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes pf-cloud { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

/* paris-sentiment (tense, dim-interior) */
.scn-paris-sentiment {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1e1e2e 100%),
              radial-gradient(ellipse at 40% 60%, #3a2a2a 0%, transparent 70%);
}
.scn-paris-sentiment .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  z-index: 0;
}
.scn-paris-sentiment .wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(90deg, #3a3a4e 0%, #2a2a3e 30%, #3a3a4e 100%);
  border-radius: 10% 10% 0 0 / 8% 8% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-paris-sentiment .window {
  position: absolute; top: 20%; left: 30%; width: 60px; height: 80px;
  background: radial-gradient(ellipse, #6a5a3a 0%, #2a2a3e 80%);
  border-radius: 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: ps-window 8s ease-in-out infinite alternate;
}
.scn-paris-sentiment .candle {
  position: absolute; bottom: 35%; left: 50%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #a08040 0%, #604020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,160,80,.6), 0 0 40px 12px rgba(200,160,80,.3);
  animation: ps-candle 3s ease-in-out infinite alternate;
}
.scn-paris-sentiment .figure1 {
  position: absolute; bottom: 20%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-figure1 6s ease-in-out infinite;
}
.scn-paris-sentiment .figure2 {
  position: absolute; bottom: 20%; left: 40%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-figure2 7s ease-in-out infinite reverse;
}
.scn-paris-sentiment .sword {
  position: absolute; bottom: 30%; left: 35%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(15deg);
  box-shadow: 0 0 6px rgba(0,0,0,.3);
  animation: ps-sword 4s ease-in-out infinite alternate;
}
.scn-paris-sentiment .banner {
  position: absolute; top: 10%; right: 20%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #4a2020 0%, #2a1010 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 4px rgba(0,0,0,.3);
  animation: ps-banner 5s ease-in-out infinite;
}
@keyframes ps-window { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .5 } }
@keyframes ps-candle { 0% { box-shadow: 0 0 15px 4px rgba(200,160,80,.5), 0 0 30px 8px rgba(200,160,80,.2); height: 28px } 50% { box-shadow: 0 0 25px 8px rgba(200,160,80,.7), 0 0 50px 16px rgba(200,160,80,.4); height: 32px } 100% { box-shadow: 0 0 15px 4px rgba(200,160,80,.5), 0 0 30px 8px rgba(200,160,80,.2); height: 28px } }
@keyframes ps-figure1 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ps-figure2 { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-3px) rotate(3deg) } 66% { transform: translateX(3px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ps-sword { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(15deg) } }
@keyframes ps-banner { 0%,100% { transform: rotate(-8deg) scaleY(1) } 50% { transform: rotate(8deg) scaleY(1.1) } }

/* paris-burgundian-turn (tense, dim-interior) */
.scn-paris-burgundian-turn {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1e1e2e 100%),
              radial-gradient(ellipse at 60% 70%, #2a1a0a 0%, transparent 60%);
}
.scn-paris-burgundian-turn .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
}
.scn-paris-burgundian-turn .pillar {
  position: absolute; bottom: 10%; left: 25%; width: 8%; height: 70%;
  background: linear-gradient(90deg, #4a3a3a 0%, #3a2a2a 50%, #4a3a3a 100%);
  border-radius: 6%;
  box-shadow: 2px 0 8px rgba(0,0,0,.4);
}
.scn-paris-burgundian-turn .table {
  position: absolute; bottom: 15%; left: 30%; width: 30%; height: 5%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
}
.scn-paris-burgundian-turn .figure {
  position: absolute; bottom: 22%; left: 45%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pb-figure 5s ease-in-out infinite;
}
.scn-paris-burgundian-turn .banner {
  position: absolute; top: 10%; right: 20%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0e0e 100%);
  border-radius: 10%;
  box-shadow: 0 0 6px rgba(0,0,0,.3);
  animation: pb-banner 3s ease-in-out infinite;
}
.scn-paris-burgundian-turn .shadow {
  position: absolute; bottom: 10%; right: 30%; width: 60px; height: 80px;
  background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%);
  border-radius: 20%;
  filter: blur(5px);
  animation: pb-shadow 7s ease-in-out infinite alternate;
}
.scn-paris-burgundian-turn .beam {
  position: absolute; top: 5%; left: 10%; width: 4px; height: 60px;
  background: linear-gradient(180deg, rgba(200,160,80,.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: pb-beam 4s ease-in-out infinite alternate;
}
@keyframes pb-figure { 0% { transform: rotate(0) } 25% { transform: rotate(4deg) } 50% { transform: rotate(0) } 75% { transform: rotate(-4deg) } 100% { transform: rotate(0) } }
@keyframes pb-banner { 0%,100% { transform: rotate(-10deg) scaleY(1) } 50% { transform: rotate(10deg) scaleY(1.15) } }
@keyframes pb-shadow { 0% { opacity: .4; transform: scale(1) } 50% { opacity: .6; transform: scale(1.05) } 100% { opacity: .4; transform: scale(1) } }
@keyframes pb-beam { 0% { opacity: .2 } 50% { opacity: .5 } 100% { opacity: .2 } }

/* paris-prepared (tense, dawn) */
.scn-paris-prepared {
  background: linear-gradient(180deg, #2a3a5a 0%, #6a8aaa 30%, #b09060 70%, #c0a070 100%),
              radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 60%);
}
.scn-paris-prepared .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a6a8a 0%, #8a9aaa 100%);
  animation: pp-sky 12s ease-in-out infinite alternate;
}
.scn-paris-prepared .sun-horizon {
  position: absolute; bottom: 40%; left: 50%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, #ffd080 0%, #d4a060 60%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 40px 15px rgba(212,160,96,.5), 0 0 80px 30px rgba(255,208,128,.3);
  animation: pp-sun 8s ease-in-out infinite alternate;
}
.scn-paris-prepared .city-wall {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #706050 0%, #504030 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.5);
}
.scn-paris-prepared .towers {
  position: absolute; bottom: 25%; left: 10%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #806050 0%, #504030 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -2px 0 6px rgba(0,0,0,.3);
}
.scn-paris-prepared .soldiers {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 20px;
  background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%);
  border-radius: 10%;
  filter: blur(2px);
  animation: pp-soldiers 6s linear infinite;
}
.scn-paris-prepared .banners {
  position: absolute; bottom: 22%; left: 40%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0e0e 100%);
  border-radius: 10%;
  box-shadow: 0 0 4px rgba(0,0,0,.3);
  animation: pp-banners 4s ease-in-out infinite;
}
.scn-paris-prepared .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
}
.scn-paris-prepared .cloud {
  position: absolute; top: 12%; left: 15%; width: 100px; height: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: pp-cloud 45s linear infinite;
}
@keyframes pp-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes pp-sun { 0% { transform: translateX(-50%) translateY(0) scale(1); box-shadow: 0 0 40px 15px rgba(212,160,96,.5) } 50% { transform: translateX(-50%) translateY(-2px) scale(1.03); box-shadow: 0 0 50px 20px rgba(212,160,96,.6) } 100% { transform: translateX(-50%) translateY(0) scale(1); box-shadow: 0 0 40px 15px rgba(212,160,96,.5) } }
@keyframes pp-soldiers { 0% { transform: translateX(-60px) } 100% { transform: translateX(120vw) } }
@keyframes pp-banners { 0%,100% { transform: rotate(-6deg) scaleY(1) } 50% { transform: rotate(6deg) scaleY(1.1) } }
@keyframes pp-cloud { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

/* ===== tree-of-vauru ===== */
.scn-tree-of-vauru {
  background: linear-gradient(180deg, #4a5055 0%, #3a3f44 40%, #2a2f34 100%),
              radial-gradient(ellipse at 50% 0%, #5a6065 0%, transparent 60%);
}
.scn-tree-of-vauru .sky-overcast {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a6065 0%, #3a3f44 100%);
  animation: tv-sky 20s ease-in-out infinite alternate;
}
.scn-tree-of-vauru .ground-murky {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1f1a 0%, #0a0f0a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
}
.scn-tree-of-vauru .tree-trunk {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #2a2a20 0%, #3a3a2a 50%, #2a2a20 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -2px 0 8px rgba(0,0,0,.5);
  animation: tv-trunk 24s ease-in-out infinite;
}
.scn-tree-of-vauru .tree-branch {
  position: absolute; bottom: 60%; left: 45%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #2a2a20 0%, #3a3a2a 50%, transparent 100%);
  border-radius: 4px;
  transform: rotate(15deg);
  transform-origin: left center;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: tv-branch 18s ease-in-out infinite alternate;
}
.scn-tree-of-vauru .hanging-body-a {
  position: absolute; bottom: 50%; left: 48%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #2a2f2a 0%, #1a1f1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: top center;
  animation: tv-sway 4s ease-in-out infinite;
}
.scn-tree-of-vauru .hanging-body-b {
  position: absolute; bottom: 48%; left: 52%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #2a2f2a 0%, #1a1f1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: top center;
  animation: tv-sway 6s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-tree-of-vauru .figure-bastard {
  position: absolute; bottom: 30%; left: 56%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #2a2a20 0%, #1a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tv-walk 12s ease-in-out infinite;
}
.scn-tree-of-vauru .rope-coil {
  position: absolute; bottom: 52%; left: 49%; width: 10px; height: 2px;
  background: #5a5a4a;
  border-radius: 2px;
  animation: tv-rope 4s ease-in-out infinite;
  filter: blur(1px);
}
@keyframes tv-sky { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .75 } }
@keyframes tv-trunk { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) scaleY(1.02) } }
@keyframes tv-branch { 0% { transform: rotate(15deg) } 50% { transform: rotate(18deg) } 100% { transform: rotate(14deg) } }
@keyframes tv-sway { 0% { transform: rotate(0deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(-3deg) } 75% { transform: rotate(4deg) } 100% { transform: rotate(0deg) } }
@keyframes tv-walk { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(6px) rotate(2deg) } 60% { transform: translateX(12px) rotate(-1deg) } 100% { transform: translateX(18px) rotate(0deg) } }
@keyframes tv-rope { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }

/* ===== maid-foreboding ===== */
.scn-maid-foreboding {
  background: linear-gradient(180deg, #f5e6c0 0%, #e8d4a0 40%, #d4be80 100%),
              radial-gradient(ellipse at 70% 30%, #ffeab0 0%, transparent 50%);
}
.scn-maid-foreboding .sky-sunlit {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0dfb0 0%, #e8d0a0 100%);
  animation: mf-sky 25s ease-in-out infinite alternate;
}
.scn-maid-foreboding .sun-disk {
  position: absolute; top: 8%; right: 22%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8e0 0%, #ffe080 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,200,100,.6);
  animation: mf-sun 10s ease-in-out infinite;
}
.scn-maid-foreboding .horizon-hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a09070 0%, #807050 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,.3);
  animation: mf-hills 15s ease-in-out infinite alternate;
}
.scn-maid-foreboding .maid-profile {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -2px 0 4px rgba(0,0,0,.3);
  animation: mf-figure 8s ease-in-out infinite;
}
.scn-maid-foreboding .maid-halo {
  position: absolute; bottom: 63%; left: 28%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,220,150,.4) 0%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255,200,100,.3);
  animation: mf-halo 6s ease-in-out infinite alternate;
}
.scn-maid-foreboding .ground-path {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #b0a080 0%, #908060 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  filter: blur(2px);
}
.scn-maid-foreboding .light-rays {
  position: absolute; top: 5%; left: 50%; width: 100%; height: 100%;
  background: repeating-linear-gradient(45deg, transparent 0%, rgba(255,235,180,.05) 2%, transparent 4%);
  animation: mf-rays 12s linear infinite;
}
@keyframes mf-sky { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes mf-sun { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) } }
@keyframes mf-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mf-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(4px) rotate(1deg) } 60% { transform: translateX(8px) rotate(-1deg) } 100% { transform: translateX(12px) rotate(0deg) } }
@keyframes mf-halo { 0% { opacity: .6; transform: scale(1) } 50% { opacity: .9; transform: scale(1.1) } 100% { opacity: .7; transform: scale(.95) } }
@keyframes mf-rays { 0% { background-position: 0 0 } 100% { background-position: 100px 100px } }

/* ===== bedford-challenge ===== */
.scn-bedford-challenge {
  background: linear-gradient(135deg, #c8a870 0%, #b89860 40%, #a88850 100%),
              radial-gradient(ellipse at 30% 50%, #d8b880 0%, transparent 70%);
}
.scn-bedford-challenge .wall-stone {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #a09070 0%, #807050 100%);
  border-bottom: 4px solid #5a4a3a;
  animation: bc-wall 20s ease-in-out infinite alternate;
}
.scn-bedford-challenge .floor-wood {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-bedford-challenge .table-oak {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  animation: bc-table 15s ease-in-out infinite;
}
.scn-bedford-challenge .figure-bedford {
  position: absolute; bottom: 28%; left: 35%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-figure 8s ease-in-out infinite;
}
.scn-bedford-challenge .candle-flame {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 100%, #ffc060 0%, #ff8020 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 16px 6px rgba(255,128,32,.5);
  animation: bc-flame 2s ease-in-out infinite alternate;
}
.scn-bedford-challenge .map-parchment {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 20px;
  background: linear-gradient(135deg, #d4c8a0 0%, #c0b080 100%);
  border: 1px solid #a09070;
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: bc-map 20s ease-in-out infinite;
}
.scn-bedford-challenge .goblet-silver {
  position: absolute; bottom: 18%; left: 58%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #a8a8b0 0%, #808090 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: bc-goblet 6s ease-in-out infinite alternate;
}
@keyframes bc-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes bc-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes bc-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bc-flame { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.2) translateY(-2px) } 100% { transform: scaleY(.9) translateY(1px) } }
@keyframes bc-map { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(-6deg) } }
@keyframes bc-goblet { 0% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }

/* ===== english-propaganda ===== */
.scn-english-propaganda {
  background: linear-gradient(135deg, #8a7a60 0%, #6a5a40 40%, #4a3a20 100%),
              radial-gradient(ellipse at 60% 40%, #9a8a70 0%, transparent 60%);
}
.scn-english-propaganda .wall-panel {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #6a5a40 0%, #4a3a20 100%);
  border-bottom: 6px solid #2a1a0a;
  box-shadow: inset 0 0 30px rgba(0,0,0,.4);
  animation: ep-wall 30s ease-in-out infinite alternate;
}
.scn-english-propaganda .desk-dark {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
}
.scn-english-propaganda .figure-scribe {
  position: absolute; bottom: 30%; left: 25%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ep-scribe 12s ease-in-out infinite;
}
.scn-english-propaganda .candle-sconce {
  position: absolute; bottom: 32%; right: 30%; width: 6px; height: 10px;
  background: radial-gradient(circle at 50% 100%, #ffd060 0%, #ff8020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 12px 4px rgba(255,128,32,.4);
  animation: ep-candle 3s ease-in-out infinite alternate;
}
.scn-english-propaganda .quill-feather {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 4px;
  background: linear-gradient(90deg, #a09070 0%, #807060 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  transform-origin: left center;
  animation: ep-quill 4s ease-in-out infinite;
}
.scn-english-propaganda .inkwell-glass {
  position: absolute; bottom: 22%; left: 38%; width: 8px; height: 10px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 0 0 6px 6px;
  box-shadow: inset 0 2px 4px rgba(255,255,255,.1);
}
.scn-english-propaganda .paper-scroll {
  position: absolute; bottom: 24%; left: 40%; width: 30px; height: 18px;
  background: linear-gradient(135deg, #d4c8a0 0%, #c0b080 100%);
  border: 1px solid #a09070;
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: ep-paper 8s ease-in-out infinite;
}
.scn-english-propaganda .shadow-bars {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0%, rgba(0,0,0,.15) 4%, transparent 8%);
  animation: ep-shadows 5s linear infinite;
}
@keyframes ep-wall { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ep-scribe { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(2px) rotate(1deg) } 60% { transform: translateX(-1px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ep-candle { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.3) translateY(-2px) } 100% { transform: scaleY(.8) translateY(1px) } }
@keyframes ep-quill { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-25deg) } 100% { transform: rotate(-32deg) } }
@keyframes ep-paper { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(-12deg) } }
@keyframes ep-shadows { 0% { background-position: 0 0 } 100% { background-position: 20px 0 } }

/* Scene: storming-augustins – tense dusk assault */
.scn-storming-augustins {
  background:
    linear-gradient(180deg, #3a1a2a 0%, #6a3a2a 30%, #b07040 60%, #c08050 70%, #5a3a2a 80%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 30%, #d09060 0%, #3a1a2a 70%);
}
.scn-storming-augustins .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #4a2a3a 100%);
  animation: sta-sky 10s ease-in-out infinite alternate;
}
.scn-storming-augustins .sunset {
  position: absolute; bottom: 45%; left: 50%;
  width: 80px; height: 80px; transform: translateX(-50%);
  background: radial-gradient(circle, #e0a060 0%, transparent 70%);
  filter: blur(8px);
  opacity: 0.6;
  animation: sta-sunset 6s ease-in-out infinite;
}
.scn-storming-augustins .palisade {
  position: absolute; bottom: 22%; left: 5%; width: 40%; height: 35%;
  background: repeating-linear-gradient(90deg,
    #3a2a1a 0px, #3a2a1a 8px,
    transparent 8px, transparent 10px);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
  animation: sta-palisade 12s ease-in-out infinite alternate;
}
.scn-storming-augustins .breach {
  position: absolute; bottom: 22%; left: 30%; width: 12%; height: 40%;
  background: #1a0a0a;
  clip-path: polygon(0 0, 100% 15%, 90% 100%, 10% 100%);
  animation: sta-breach 8s ease-in-out infinite alternate;
}
.scn-storming-augustins .banner {
  position: absolute; bottom: 50%; left: 40%;
  width: 12px; height: 40px;
  background: #702243; /* mulberry instead of crimson */
  clip-path: polygon(0 0, 100% 10%, 100% 90%, 0 100%);
  transform-origin: bottom center;
  animation: sta-banner 3s ease-in-out infinite;
}
.scn-storming-augustins .figure-maid {
  position: absolute; bottom: 20%; left: 38%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sta-figure-maid 4s ease-in-out infinite;
}
.scn-storming-augustins .figure-knight {
  position: absolute; bottom: 20%; left: 44%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sta-figure-knight 4s ease-in-out infinite 0.5s;
}
.scn-storming-augustins .dust {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 10%;
  background: repeating-linear-gradient(90deg,
    rgba(180,140,100,0.2) 0px, transparent 20px);
  filter: blur(4px);
  animation: sta-dust 6s linear infinite;
}
@keyframes sta-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes sta-sunset {
  0% { transform: translateX(-50%) scale(0.9); opacity: 0.4; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 0.7; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.5; }
}
@keyframes sta-palisade {
  0% { transform: skewY(0deg); }
  50% { transform: skewY(-2deg); }
  100% { transform: skewY(1deg); }
}
@keyframes sta-breach {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes sta-banner {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.05); }
  100% { transform: rotate(-3deg) scaleY(0.95); }
}
@keyframes sta-figure-maid {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(5px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(15px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0); }
}
@keyframes sta-figure-knight {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(-1deg); }
  50% { transform: translateX(8px) translateY(0) rotate(1deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0); }
}
@keyframes sta-dust {
  0% { background-position: 0 0; }
  100% { background-position: -200px 0; }
}

/* Scene: after-augustins – tense night with firelight */
.scn-after-augustins {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #0a0a1a 100%),
    radial-gradient(ellipse at 30% 60%, #3a1a0a 0%, transparent 60%);
}
.scn-after-augustins .night-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%);
  animation: afa-sky 15s ease-in-out infinite alternate;
}
.scn-after-augustins .bulwark {
  position: absolute; bottom: 18%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.8);
  animation: afa-bulwark 20s ease-in-out infinite alternate;
}
.scn-after-augustins .fire {
  position: absolute; bottom: 30%; left: 15%;
  width: 30px; height: 50px;
  background: radial-gradient(circle at 50% 100%, #e08040 0%, #ffa060 30%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(2px);
  animation: afa-fire 2s ease-in-out infinite alternate;
}
.scn-after-augustins .firelight {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 50%;
  background: radial-gradient(ellipse at 15% 70%, rgba(200,120,40,0.3) 0%, transparent 60%);
  animation: afa-firelight 3s ease-in-out infinite alternate;
}
.scn-after-augustins .soldier1 {
  position: absolute; bottom: 15%; left: 40%;
  width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: afa-soldier 5s ease-in-out infinite;
}
.scn-after-augustins .soldier2 {
  position: absolute; bottom: 15%; left: 48%;
  width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: afa-soldier 5s ease-in-out infinite 1s;
}
.scn-after-augustins .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: afa-ground 12s ease-in-out infinite alternate;
}
@keyframes afa-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes afa-bulwark {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(2px); }
}
@keyframes afa-fire {
  0% { transform: scale(0.8) rotate(-5deg); opacity: 0.7; }
  50% { transform: scale(1.1) rotate(5deg); opacity: 1; }
  100% { transform: scale(0.9) rotate(-2deg); opacity: 0.8; }
}
@keyframes afa-firelight {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes afa-soldier {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(6px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(9px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(12px) translateY(0) rotate(0); }
}
@keyframes afa-ground {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

/* Scene: council-disagreement – tense dim interior */
.scn-council-disagreement {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a1a0a 30%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 80%);
}
.scn-council-disagreement .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.7);
  animation: cod-wall 15s ease-in-out infinite alternate;
}
.scn-council-disagreement .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%);
  animation: cod-floor 20s ease-in-out infinite alternate;
}
.scn-council-disagreement .table {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.6);
  animation: cod-table 12s ease-in-out infinite alternate;
}
.scn-council-disagreement .candle {
  position: absolute; bottom: 50%; left: 50%;
  width: 4px; height: 20px; transform: translateX(-50%);
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 4px #d0a050;
  animation: cod-candle 3s ease-in-out infinite alternate;
}
.scn-council-disagreement .figure-left {
  position: absolute; bottom: 30%; left: 30%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cod-figure-left 6s ease-in-out infinite;
}
.scn-council-disagreement .figure-right {
  position: absolute; bottom: 30%; right: 30%;
  width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cod-figure-right 6s ease-in-out infinite 1s;
}
.scn-council-disagreement .window-arch {
  position: absolute; top: 10%; left: 40%; right: 40%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
  border: 2px solid #2a1a0a;
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
  animation: cod-window 18s ease-in-out infinite alternate;
}
@keyframes cod-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes cod-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(0); }
}
@keyframes cod-table {
  0% { box-shadow: 0 -2px 4px rgba(0,0,0,0.5); }
  50% { box-shadow: 0 -8px 16px rgba(0,0,0,0.8); }
  100% { box-shadow: 0 -4px 6px rgba(0,0,0,0.6); }
}
@keyframes cod-candle {
  0% { transform: translateX(-50%) rotate(-2deg); opacity: 0.8; }
  50% { transform: translateX(-50%) rotate(2deg); opacity: 1; }
  100% { transform: translateX(-50%) rotate(-1deg); opacity: 0.9; }
}
@keyframes cod-figure-left {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes cod-figure-right {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes cod-window {
  0% { background: radial-gradient(ellipse at 50% 100%, #1a1a3a 0%, transparent 70%); }
  50% { background: radial-gradient(ellipse at 50% 100%, #2a2a4a 0%, transparent 70%); }
  100% { background: radial-gradient(ellipse at 50% 100%, #1a1a3a 0%, transparent 70%); }
}

/* Scene: saturday-morning – tense dawn, church interior */
.scn-saturday-morning {
  background:
    linear-gradient(180deg, #3a3a5a 0%, #6a6a8a 30%, #8a8aaa 60%, #c0c0d0 100%),
    radial-gradient(ellipse at 50% 0%, #d0d0e0 0%, transparent 70%);
}
.scn-saturday-morning .dawn-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a4a6a 0%, #8a8aaa 100%);
  animation: sam-sky 12s ease-in-out infinite alternate;
}
.scn-saturday-morning .church-wall {
  position: absolute; bottom: 0; left: 0; right: 0; top: 20%;
  background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 30%, #2a2a3a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.4);
  animation: sam-wall 18s ease-in-out infinite alternate;
}
.scn-saturday-morning .altar {
  position: absolute; bottom: 30%; left: 40%; right: 40%; height: 25%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: sam-altar 10s ease-in-out infinite alternate;
}
.scn-saturday-morning .priest {
  position: absolute; bottom: 30%; left: 38%;
  width: 16px; height: 45px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sam-priest 4s ease-in-out infinite;
}
.scn-saturday-morning .jeanne-kneeling {
  position: absolute; bottom: 20%; left: 44%;
  width: 18px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sam-jeanne 4s ease-in-out infinite 0.5s;
}
.scn-saturday-morning .magistrate1 {
  position: absolute; bottom: 18%; left: 10%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sam-magistrate 6s ease-in-out infinite;
}
.scn-saturday-morning .magistrate2 {
  position: absolute; bottom: 18%; right: 10%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sam-magistrate 6s ease-in-out infinite 2s;
}
.scn-saturday-morning .step {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 5%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: sam-step 20s ease-in-out infinite alternate;
}
@keyframes sam-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes sam-wall {
  0% { box-shadow: inset 0 0 40px rgba(0,0,0,0.3); }
  50% { box-shadow: inset 0 0 80px rgba(0,0,0,0.5); }
  100% { box-shadow: inset 0 0 50px rgba(0,0,0,0.4); }
}
@keyframes sam-altar {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(0.98); }
}
@keyframes sam-priest {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes sam-jeanne {
  0% { transform: translateY(0) skewX(-2deg); }
  50% { transform: translateY(-3px) skewX(2deg); }
  100% { transform: translateY(0) skewX(-1deg); }
}
@keyframes sam-magistrate {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(5px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes sam-step {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

.scn-holy-women-with-army {
  background: linear-gradient(180deg, #2a2216 0%, #1e1810 50%, #14100a 100%),
              radial-gradient(ellipse at 50% 20%, #4a3a28 0%, transparent 70%);
}
.scn-holy-women-with-army .bgwall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3d2f1e 0%, #231a10 100%);
}
.scn-holy-women-with-army .bgfloor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #331e12 0%, #1a0f08 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,.6);
}
.scn-holy-women-with-army .lantern {
  position: absolute; bottom: 35%; left: 20%; width: 14px; height: 20px;
  background: radial-gradient(circle, #e8b050 0%, #a07030 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 12px #b08040, 0 0 60px 20px rgba(176,128,64,.4);
  animation: hwa1-glow 4s ease-in-out infinite alternate;
}
.scn-holy-women-with-army .banner {
  position: absolute; bottom: 40%; left: 55%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #7a5c3a 0%, #4a3018 100%);
  border-radius: 4px 4px 0 0;
  transform-origin: bottom center;
  animation: hwa1-sway 6s ease-in-out infinite;
}
.scn-holy-women-with-army .cross {
  position: absolute; bottom: 30%; left: 65%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #5a4020, #302010);
  border-radius: 2px;
}
.scn-holy-women-with-army .cross::after {
  content: ""; position: absolute; top: 15px; left: -12px; width: 28px; height: 4px;
  background: inherit; border-radius: 2px;
}
.scn-holy-women-with-army .figure {
  position: absolute; bottom: 28%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-holy-women-with-army .figure-a { left: 30%; animation: hwa1-figure-a 5s ease-in-out infinite; }
.scn-holy-women-with-army .figure-b { left: 42%; animation: hwa1-figure-b 5s ease-in-out infinite 0.5s; }
.scn-holy-women-with-army .glowlight {
  position: absolute; inset: 30% 20% 20% 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,160,80,0.15) 0%, transparent 70%);
  pointer-events: none;
  animation: hwa1-ambient 12s ease-in-out infinite alternate;
}
@keyframes hwa1-glow { 0% { opacity: 0.6; box-shadow: 0 0 20px 8px #b08040, 0 0 40px 16px rgba(176,128,64,.3); } 50% { opacity: 1; box-shadow: 0 0 40px 16px #e0b060, 0 0 80px 32px rgba(224,176,96,.5); } 100% { opacity: 0.7; box-shadow: 0 0 25px 10px #b08040, 0 0 50px 20px rgba(176,128,64,.35); } }
@keyframes hwa1-sway { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes hwa1-figure-a { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(3px) translateY(-2px) rotate(1deg); } }
@keyframes hwa1-figure-b { 0%,100% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } }
@keyframes hwa1-ambient { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

.scn-visions-of-the-beguines {
  background: linear-gradient(180deg, #1a1420 0%, #2a1e30 40%, #0e0a14 100%),
              radial-gradient(ellipse at 60% 30%, #3a2848 0%, transparent 70%);
}
.scn-visions-of-the-beguines .bgdark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0a14 0%, #1a1420 100%);
  opacity: 0.6;
}
.scn-visions-of-the-beguines .vision {
  position: absolute; border-radius: 50%;
  filter: blur(8px);
  opacity: 0.7;
}
.scn-visions-of-the-beguines .vision-michael {
  top: 12%; left: 20%; width: 80px; height: 120px;
  background: radial-gradient(circle at 50% 30%, #d0c0e0 0%, #8060a0 60%, transparent 100%);
  animation: vob2-appear 8s ease-in-out infinite alternate;
}
.scn-visions-of-the-beguines .vision-catherine {
  top: 20%; right: 18%; width: 60px; height: 90px;
  background: radial-gradient(circle at 50% 40%, #e0d0b0 0%, #b09060 60%, transparent 100%);
  animation: vob2-appear 8s ease-in-out infinite alternate 2s;
}
.scn-visions-of-the-beguines .vision-god {
  top: 8%; left: 38%; width: 100px; height: 140px;
  background: radial-gradient(circle at 50% 30%, #f0e8d0 0%, #c8a880 50%, transparent 80%);
  animation: vob2-god 10s ease-in-out infinite alternate;
}
.scn-visions-of-the-beguines .crown {
  position: absolute; width: 30px; height: 18px;
  background: #d4b060;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 0 12px 4px rgba(212,176,96,0.5);
  animation: vob2-float 6s ease-in-out infinite alternate;
}
.scn-visions-of-the-beguines .crown-1 { top: 18%; left: 28%; animation-delay: 0s; }
.scn-visions-of-the-beguines .crown-2 { top: 14%; right: 30%; animation-delay: 1.5s; }
.scn-visions-of-the-beguines .corona {
  position: absolute; top: 5%; left: 30%; width: 120px; height: 160px;
  background: radial-gradient(circle, rgba(255,240,200,0.08) 0%, transparent 70%);
  filter: blur(12px);
  animation: vob2-corona 12s ease-in-out infinite;
}
.scn-visions-of-the-beguines .kneeling-figure {
  position: absolute; bottom: 18%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1e2a 0%, #0e0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vob2-kneel 4s ease-in-out infinite;
}
@keyframes vob2-appear { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.9); } }
@keyframes vob2-god { 0% { opacity: 0.2; transform: scale(0.9) translateX(0); } 50% { opacity: 1; transform: scale(1.2) translateX(10px); } 100% { opacity: 0.3; transform: scale(1) translateX(-5px); } }
@keyframes vob2-float { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-8px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes vob2-corona { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(0.9); } }
@keyframes vob2-kneel { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } }

.scn-pasquerel-and-richard {
  background: linear-gradient(180deg, #1e1a12 0%, #2a2218 50%, #140e08 100%),
              radial-gradient(ellipse at 50% 40%, #3a2e1e 0%, transparent 70%);
}
.scn-pasquerel-and-richard .bgwall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
}
.scn-pasquerel-and-richard .bgfloor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1e140e 0%, #0e0a06 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
}
.scn-pasquerel-and-richard .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #4a301e 0%, #2a1a0e 100%);
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-pasquerel-and-richard .book {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 20px;
  background: #6a5030;
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.3);
  transform: rotate(-5deg);
}
.scn-pasquerel-and-richard .candle {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #d0b080 0%, #8a6a3a 100%);
  border-radius: 3px 3px 1px 1px;
}
.scn-pasquerel-and-richard .candle::after {
  content: ""; position: absolute; top: -8px; left: -2px; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px #d09030, 0 0 32px 12px rgba(208,144,48,.3);
  animation: pr3-flame 2s ease-in-out infinite alternate;
}
.scn-pasquerel-and-richard .friar {
  position: absolute; bottom: 18%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a2018 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-pasquerel-and-richard .friar-left { left: 30%; animation: pr3-bob-left 6s ease-in-out infinite; }
.scn-pasquerel-and-richard .friar-right { right: 30%; animation: pr3-bob-right 6s ease-in-out infinite 1.5s; }
.scn-pasquerel-and-richard .shadows {
  position: absolute; inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 30%, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: pr3-shadow-pulse 10s ease-in-out infinite alternate;
}
@keyframes pr3-flame { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.3) translateY(-3px); } 100% { opacity: 0.9; transform: scaleY(0.9); } }
@keyframes pr3-bob-left { 0%,100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } }
@keyframes pr3-bob-right { 0%,100% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes pr3-shadow-pulse { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.4; } }

.scn-richard-designs {
  background: linear-gradient(180deg, #1e1a14 0%, #2a221a 50%, #14100a 100%),
              radial-gradient(ellipse at 30% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-richard-designs .bgwall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a221a 0%, #1a140e 100%);
}
.scn-richard-designs .bgfloor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e140e 0%, #0e0a06 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
}
.scn-richard-designs .desk {
  position: absolute; bottom: 22%; left: 18%; right: 18%; height: 12%;
  background: linear-gradient(180deg, #4a301e 0%, #2a1a0e 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-richard-designs .parchment {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 30px;
  background: #b8a078;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  transform: rotate(-2deg);
}
.scn-richard-designs .inkwell {
  position: absolute; bottom: 26%; left: 52%; width: 10px; height: 12px;
  background: #1c1410;
  border-radius: 50% 50% 20% 20%;
  box-shadow: inset 0 -3px 6px rgba(0,0,0,.6);
}
.scn-richard-designs .quill {
  position: absolute; bottom: 28%; left: 48%; width: 2px; height: 24px;
  background: #a08860;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: rd4-scribble 3s ease-in-out infinite;
}
.scn-richard-designs .friar-figure {
  position: absolute; bottom: 18%; left: 38%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a2018 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rd4-bend 5s ease-in-out infinite;
}
.scn-richard-designs .halo {
  position: absolute; bottom: 48%; left: 38%; width: 30px; height: 30px;
  border: 2px solid rgba(220,200,160,0.3);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(220,200,160,0.2);
  filter: blur(2px);
  animation: rd4-glow 7s ease-in-out infinite alternate;
}
@keyframes rd4-scribble { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(25deg) translateX(2px); } 100% { transform: rotate(10deg) translateX(-1px); } }
@keyframes rd4-bend { 0%,100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes rd4-glow { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.7; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(1); } }

.scn-item-baedeker-guidebook {
  background: linear-gradient(180deg, #fef9e4 0%, #f6e9cb 40%, #e6d5a8 100%);
  background-blend-mode: overlay;
}
.scn-item-baedeker-guidebook .book-cover {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 75%; 
  background: linear-gradient(135deg, #9c3b1a 0%, #702a12 50%, #4a1a09 100%);
  border-radius: 4px; box-shadow: 0 12px 24px rgba(0,0,0,0.3);
  transform: rotate(-2deg); animation: bgk-cover 8s ease-in-out infinite;
}
.scn-item-baedeker-guidebook .book-page {
  position: absolute; bottom: 12%; left: 14%; width: 72%; height: 58%;
  background: linear-gradient(135deg, #fcf3db 0%, #f5e6c3 50%, #efdba8 100%);
  border-radius: 2px; transform: rotate(-2deg) skewX(-2deg);
  animation: bgk-page-turn 12s ease-in-out infinite;
}
.scn-item-baedeker-guidebook .map-line {
  position: absolute; height: 1px; background: #a07050;
  opacity: 0.4; border-radius: 50%;
}
.scn-item-baedeker-guidebook .line-a {
  bottom: 35%; left: 25%; width: 40%;
  transform: rotate(25deg); animation: bgk-map-a 4s ease-in-out infinite;
}
.scn-item-baedeker-guidebook .line-b {
  bottom: 30%; left: 20%; width: 50%;
  transform: rotate(-10deg); animation: bgk-map-b 5s ease-in-out infinite;
}
.scn-item-baedeker-guidebook .finger {
  position: absolute; bottom: 33%; left: 44%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #f4c9a0 0%, #d9a87a 50%, #b88060 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: 50% 15%; animation: bgk-finger 3s ease-in-out infinite;
}
.scn-item-baedeker-guidebook .light-ray {
  position: absolute; top: 0; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, #fff4d6 0%, transparent 70%);
  opacity: 0.3; animation: bgk-light 10s ease-in-out infinite;
}
.scn-item-baedeker-guidebook .dust {
  position: absolute; width: 4px; height: 4px; background: #fbe8c0;
  border-radius: 50%; filter: blur(1px);
}
.scn-item-baedeker-guidebook .motes {
  position: absolute; top: 30%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(circle at 20% 30%, rgba(255,240,200,0.3) 0%, transparent 80%);
  animation: bgk-dust 20s linear infinite;
}
@keyframes bgk-cover { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-4px); } }
@keyframes bgk-page-turn { 0%,100% { transform: rotate(-2deg) skewX(-2deg); } 50% { transform: rotate(1deg) skewX(1deg); } }
@keyframes bgk-map-a { 0%,100% { opacity:0.3; } 50% { opacity:0.6; } }
@keyframes bgk-map-b { 0%,100% { opacity:0.4; } 50% { opacity:0.7; } }
@keyframes bgk-finger { 0%,100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(-5deg) translateY(-2px); } 70% { transform: rotate(3deg) translateY(1px); } }
@keyframes bgk-light { 0%,100% { opacity:0.2; } 50% { opacity:0.5; } }
@keyframes bgk-dust { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-10px) scale(1.5); opacity:0.4; } 100% { transform: translateY(0) scale(1); } }

.scn-santa-croce-church {
  background: linear-gradient(180deg, #1e1e2a 0%, #2a2a3a 30%, #3a3a4e 70%, #2e2e3e 100%);
  background-blend-mode: multiply;
}
.scn-santa-croce-church .column {
  position: absolute; bottom: 0; top: 0; width: 8%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px #1a1a2a;
}
.scn-santa-croce-church .left { left: 15%; }
.scn-santa-croce-church .right { right: 15%; }
.scn-santa-croce-church .arch {
  position: absolute; top: 10%; left: 10%; right: 10%; height: 50%;
  border: 12px solid #4a4a5a; border-bottom: none;
  border-radius: 50% 50% 0 0; box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: scc-arch 20s ease-in-out infinite;
}
.scn-santa-croce-church .tomb-base {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 25%;
  background: linear-gradient(135deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-santa-croce-church .tomb-figure {
  position: absolute; bottom: 38%; left: 38%; width: 24%; height: 15%;
  background: radial-gradient(ellipse at 50% 30%, #6a6a7a 0%, #4a4a5a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  animation: scc-figure 15s ease-in-out infinite;
}
.scn-santa-croce-church .light-shaft {
  position: absolute; top: 0; left: 40%; width: 20%; height: 70%;
  background: linear-gradient(180deg, rgba(240,230,200,0.15) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  animation: scc-light 12s ease-in-out infinite;
}
.scn-santa-croce-church .candle-glow {
  position: absolute; bottom: 28%; left: 25%; width: 10px; height: 10px;
  background: radial-gradient(circle, #f0c060 0%, #c08030 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 20px 8px rgba(240,192,96,0.5);
  animation: scc-candle 3s ease-in-out infinite;
}
.scn-santa-croce-church .dust-mote {
  position: absolute; top: 40%; left: 20%; width: 4px; height: 4px;
  background: rgba(200,180,150,0.4); border-radius: 50%; filter: blur(1px);
  animation: scc-dust 30s linear infinite;
}
@keyframes scc-arch { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } }
@keyframes scc-figure { 0%,100% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(2px) scale(1.02); opacity:0.8; } }
@keyframes scc-light { 0%,100% { opacity:0.3; } 50% { opacity:0.6; } }
@keyframes scc-candle { 0%,100% { box-shadow: 0 0 20px 8px rgba(240,192,96,0.5); } 30% { box-shadow: 0 0 30px 12px rgba(255,210,120,0.7); } 70% { box-shadow: 0 0 15px 5px rgba(220,160,80,0.4); } }
@keyframes scc-dust { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(20px,-30px) scale(1.3); opacity:0.3; } 50% { transform: translate(40px,10px) scale(0.7); opacity:0.6; } 75% { transform: translate(10px,40px) scale(1.1); opacity:0.2; } 100% { transform: translate(0,0) scale(1); } }

.scn-item-rose-window {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e2a 100%);
}
.scn-item-rose-window .window-arch {
  position: absolute; top: 5%; left: 15%; width: 70%; height: 75%;
  border: 18px solid #3a3a4a; border-radius: 50% 50% 0 0; background: #0a0a1a;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-item-rose-window .glass-petal {
  position: absolute; width: 20%; height: 20%;
  border-radius: 50%; filter: blur(2px);
}
.scn-item-rose-window .petal-red {
  top: 20%; left: 30%; background: radial-gradient(circle, #a0461a 0%, #5e1a1d 80%);
  animation: rsw-red 8s ease-in-out infinite;
}
.scn-item-rose-window .petal-blue {
  top: 25%; left: 50%; background: radial-gradient(circle, #2a5a8a 0%, #1a3a6a 80%);
  animation: rsw-blue 10s ease-in-out infinite;
}
.scn-item-rose-window .petal-gold {
  top: 30%; left: 40%; background: radial-gradient(circle, #c8a060 0%, #8a6a30 80%);
  animation: rsw-gold 6s ease-in-out infinite;
}
.scn-item-rose-window .light-beam {
  position: absolute; top: 0; height: 100%; width: 8%;
  background: linear-gradient(180deg, rgba(255,200,100,0.4) 0%, transparent 80%);
  transform: skewX(-20deg);
}
.scn-item-rose-window .beam-1 {
  left: 28%; animation: rsw-beam1 5s ease-in-out infinite;
}
.scn-item-rose-window .beam-2 {
  left: 48%; animation: rsw-beam2 7s ease-in-out infinite reverse;
}
.scn-item-rose-window .floor-pattern {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 15%;
  background: repeating-linear-gradient(45deg, #4a2a2a 0px, #4a2a2a 10px, #6a3a3a 10px, #6a3a3a 20px);
  opacity: 0.3; animation: rsw-floor 20s linear infinite;
}
.scn-item-rose-window .hand-reaching {
  position: absolute; bottom: 35%; left: 40%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #f4c9a0 0%, #d9a87a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: 50% 100%; animation: rsw-hand 4s ease-in-out infinite;
}
@keyframes rsw-red { 0%,100% { transform: scale(1) rotate(0deg); opacity:0.7; } 50% { transform: scale(1.2) rotate(10deg); opacity:1; } }
@keyframes rsw-blue { 0%,100% { transform: scale(1) rotate(0deg); opacity:0.6; } 50% { transform: scale(1.1) rotate(-8deg); opacity:0.9; } }
@keyframes rsw-gold { 0%,100% { transform: scale(1) rotate(0deg); opacity:0.8; } 50% { transform: scale(0.9) rotate(15deg); opacity:0.6; } }
@keyframes rsw-beam1 { 0%,100% { opacity:0.2; } 50% { opacity:0.5; } }
@keyframes rsw-beam2 { 0%,100% { opacity:0.3; } 50% { opacity:0.7; } }
@keyframes rsw-floor { 0% { background-position: 0 0; } 100% { background-position: 100px 0; } }
@keyframes rsw-hand { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-10px) rotate(-5deg); } 70% { transform: translateY(5px) rotate(3deg); } }

.scn-piazza-signoria-scene {
  background: linear-gradient(180deg, #f0d8a0 0%, #e0c080 40%, #d0a870 100%);
  position: relative; overflow: hidden;
}
.scn-piazza-signoria-scene .sky-harsh {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #fff4d6 0%, #f0d8a0 100%);
  animation: pzs-sky 6s ease-in-out infinite;
}
.scn-piazza-signoria-scene .sun-orb {
  position: absolute; top: 5%; left: 10%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #f0d080 60%, transparent 80%);
  border-radius: 50%; filter: blur(4px); animation: pzs-sun 8s ease-in-out infinite;
}
.scn-piazza-signoria-scene .stall {
  position: absolute; bottom: 0; width: 35%; height: 55%;
}
.scn-piazza-signoria-scene .canopy {
  left: 10%; background: linear-gradient(135deg, #c8553d 0%, #a0461a 50%, #702a12 100%);
  border-radius: 60% 20% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.3);
  animation: pzs-canopy 12s ease-in-out infinite;
}
.scn-piazza-signoria-scene .goods {
  left: 12%; bottom: 12%; width: 30%; height: 25%;
  background: repeating-linear-gradient(90deg, #d0a870 0px, #d0a870 8px, #c09060 8px, #c09060 16px);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-piazza-signoria-scene .vendor-body {
  position: absolute; bottom: 20%; left: 30%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  animation: pzs-vendor 3s ease-in-out infinite;
}
.scn-piazza-signoria-scene .vendor-arm {
  position: absolute; bottom: 45%; left: 28%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 40% 40%; transform-origin: 50% 0%;
  animation: pzs-arm 2s ease-in-out infinite;
}
.scn-piazza-signoria-scene .figure-lucy {
  position: absolute; bottom: 10%; left: 52%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #d0b8a0 0%, #b09880 50%, #8a7060 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: pzs-lucy 5s ease-in-out infinite;
}
.scn-piazza-signoria-scene .figure-charlotte {
  position: absolute; bottom: 12%; left: 60%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: pzs-charlotte 6s ease-in-out infinite;
}
.scn-piazza-signoria-scene .shadow-hard {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.4));
  clip-path: polygon(0% 80%, 20% 20%, 40% 50%, 60% 10%, 80% 30%, 100% 70%, 100% 100%, 0% 100%);
  animation: pzs-shadow 8s ease-in-out infinite;
}
@keyframes pzs-sky { 0%,100% { opacity:1; } 50% { opacity:0.8; } }
@keyframes pzs-sun { 0%,100% { transform: translateX(0); } 50% { transform: translateX(10px); } }
@keyframes pzs-canopy { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-2deg) scaleY(1.05); } }
@keyframes pzs-vendor { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 70% { transform: translateY(2px) rotate(-1deg); } }
@keyframes pzs-arm { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(20deg); } 60% { transform: rotate(-10deg); } }
@keyframes pzs-lucy { 0%,100% { transform: translateX(0); } 30% { transform: translateX(8px); } 70% { transform: translateX(-4px); } }
@keyframes pzs-charlotte { 0%,100% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(12px) rotate(2deg); } 80% { transform: translateX(-6px) rotate(-1deg); } }
@keyframes pzs-shadow { 0%,100% { opacity:0.3; } 50% { opacity:0.6; } }

/* pope-embarrassed */
.scn-pope-embarrassed {
  background: 
    linear-gradient(135deg, #2a1a1a 0%, #3a2a2a 40%, #1a0e0e 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a3a 0%, transparent 80%);
}
.scn-pope-embarrassed .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); opacity:0.6; animation: pe-bg 8s ease-in-out infinite alternate; }
.scn-pope-embarrassed .window { position:absolute; top:10%; right:8%; width:40px; height:60px; background: radial-gradient(circle at 50% 50%, #c08040 0%, #5a3010 80%); border-radius:4px; box-shadow: 0 0 20px 4px #8a5020; animation: pe-window 6s ease-in-out infinite; }
.scn-pope-embarrassed .throne { position:absolute; bottom:18%; left:30%; width:70px; height:90px; background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:10% 10% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.6); transform: rotate(-2deg); animation: pe-throne 12s ease-in-out infinite alternate; }
.scn-pope-embarrassed .figure { position:absolute; bottom:22%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #4a2a2a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pe-figure 4s ease-in-out infinite; }
.scn-pope-embarrassed .standin { position:absolute; bottom:20%; left:55%; width:25px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius:45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: pe-standin 6s ease-in-out infinite; }
.scn-pope-embarrassed .candle { position:absolute; bottom:30%; left:50%; width:8px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #c08040 100%); border-radius:50% 50% 4px 4px; box-shadow: 0 0 12px 3px #ffc060, 0 0 24px 6px rgba(255,192,96,0.4); animation: pe-candle 3s ease-in-out infinite alternate; }
.scn-pope-embarrassed .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 40%, transparent 0%, rgba(0,0,0,0.6) 100%); animation: pe-shadow 10s ease-in-out infinite alternate; }
@keyframes pe-bg { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes pe-window { 0% { box-shadow: 0 0 10px 2px #8a5020; opacity:0.7 } 50% { box-shadow: 0 0 30px 6px #a06030; opacity:1 } 100% { box-shadow: 0 0 15px 3px #8a5020; opacity:0.8 } }
@keyframes pe-throne { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes pe-figure { 0%,100% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-4px) rotate(1deg) } }
@keyframes pe-standin { 0%,100% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(3px) scaleY(1.02) } }
@keyframes pe-candle { 0% { transform: scaleY(1) translateY(0); opacity:0.9 } 50% { transform: scaleY(1.15) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.95) translateY(1px); opacity:0.85 } }
@keyframes pe-shadow { 0%,100% { opacity:0.4 } 50% { opacity:0.7 } }

/* mother-isabelle-petition */
.scn-mother-isabelle-petition {
  background: 
    linear-gradient(180deg, #a0b0b0 0%, #c0c8c8 50%, #d8dcdc 100%),
    radial-gradient(ellipse at 50% 30%, #e0e4e4 0%, transparent 80%);
}
.scn-mother-isabelle-petition .bg { position:absolute; inset:0; background: linear-gradient(180deg, #b0b8b8 0%, #a0a8a8 100%); opacity:0.5; animation: mi-bg 15s ease-in-out infinite alternate; }
.scn-mother-isabelle-petition .window { position:absolute; top:5%; left:60%; width:80px; height:100px; background: linear-gradient(135deg, #c8d0d0 0%, #e0e8e8 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.1); animation: mi-window 20s ease-in-out infinite; }
.scn-mother-isabelle-petition .figure { position:absolute; bottom:12%; left:35%; width:35px; height:70px; background: linear-gradient(180deg, #7a8080 0%, #606868 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mi-figure 6s ease-in-out infinite; }
.scn-mother-isabelle-petition .table { position:absolute; bottom:8%; left:30%; width:120px; height:20px; background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%); border-radius:6px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform: rotate(-1deg); animation: mi-table 10s ease-in-out infinite alternate; }
.scn-mother-isabelle-petition .paper { position:absolute; bottom:15%; left:38%; width:40px; height:25px; background: linear-gradient(135deg, #f0e8d0 0%, #d8d0b0 100%); border-radius:2px; transform: rotate(3deg); animation: mi-paper 8s ease-in-out infinite; }
.scn-mother-isabelle-petition .chair { position:absolute; bottom:8%; left:20%; width:50px; height:35px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:6px 6px 2px 2px; transform: rotate(2deg); animation: mi-chair 12s ease-in-out infinite alternate; }
.scn-mother-isabelle-petition .cross { position:absolute; top:8%; right:15%; width:20px; height:40px; background: linear-gradient(180deg, #b0a8a0 0%, #908880 100%); border-radius:2px; transform: rotate(5deg); animation: mi-cross 25s ease-in-out infinite; }
@keyframes mi-bg { 0%,100% { opacity:0.4 } 50% { opacity:0.7 } }
@keyframes mi-window { 0%,100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.1); opacity:0.8 } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.2); opacity:1 } }
@keyframes mi-figure { 0%,100% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-5px) rotate(-1deg) } }
@keyframes mi-table { 0%,100% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-1px) } }
@keyframes mi-paper { 0%,100% { transform: rotate(3deg) scale(1) } 50% { transform: rotate(1deg) scale(1.05) } }
@keyframes mi-chair { 0%,100% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } }
@keyframes mi-cross { 0%,100% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } }

/* commissioners-appointed */
.scn-commissioners-appointed {
  background: 
    linear-gradient(180deg, #f0e8e0 0%, #e0d8d0 40%, #c8c0b8 100%),
    radial-gradient(ellipse at 50% 50%, #fff8f0 0%, transparent 70%);
}
.scn-commissioners-appointed .bg { position:absolute; inset:0; background: linear-gradient(90deg, #d0c8c0 0%, #e0d8d0 50%, #c8c0b8 100%); opacity:0.4; animation: ca-bg 12s ease-in-out infinite alternate; }
.scn-commissioners-appointed .table { position:absolute; bottom:10%; left:15%; width:70%; height:18px; background: linear-gradient(180deg, #b8a890 0%, #9a8870 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,0.25); transform: rotate(-0.5deg); animation: ca-table 15s ease-in-out infinite alternate; }
.scn-commissioners-appointed .document { position:absolute; bottom:18%; left:40%; width:80px; height:30px; background: linear-gradient(135deg, #f8f0e0 0%, #e8dcc8 100%); border-radius:2px; transform: rotate(2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.15); animation: ca-document 10s ease-in-out infinite; }
.scn-commissioners-appointed .figure1 { position:absolute; bottom:16%; left:25%; width:35px; height:65px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-figure1 5s ease-in-out infinite; }
.scn-commissioners-appointed .figure2 { position:absolute; bottom:14%; left:55%; width:30px; height:60px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: ca-figure2 7s ease-in-out infinite; animation-delay: 2s; }
.scn-commissioners-appointed .chair { position:absolute; bottom:6%; left:50%; width:40px; height:30px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:6px 6px 2px 2px; transform: rotate(1deg); animation: ca-chair 18s ease-in-out infinite alternate; }
.scn-commissioners-appointed .rays { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(ellipse at 60% 0%, rgba(255,255,240,0.3) 0%, transparent 60%); animation: ca-rays 8s ease-in-out infinite; }
@keyframes ca-bg { 0%,100% { opacity:0.3 } 50% { opacity:0.6 } }
@keyframes ca-table { 0%,100% { transform: rotate(-0.5deg) translateY(0) } 50% { transform: rotate(0.3deg) translateY(-1px) } }
@keyframes ca-document { 0%,100% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(0deg) scale(1.03) } }
@keyframes ca-figure1 { 0%,100% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes ca-figure2 { 0%,100% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-4px) rotate(1deg) } }
@keyframes ca-chair { 0%,100% { transform: rotate(1deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-3px) } }
@keyframes ca-rays { 0%,100% { opacity:0.2 } 50% { opacity:0.5 } }

/* blame-cauchon-estivet */
.scn-blame-cauchon-estivet {
  background: 
    linear-gradient(135deg, #1a1a2e 0%, #2a2a3e 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 60%, #3a3a5a 0%, transparent 70%);
}
.scn-blame-cauchon-estivet .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); opacity:0.5; animation: bc-bg 10s ease-in-out infinite alternate; }
.scn-blame-cauchon-estivet .figure { position:absolute; bottom:12%; left:20%; width:35px; height:65px; background: linear-gradient(180deg, #3a2a3a 0%, #1a0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bc-figure 4s ease-in-out infinite; }
.scn-blame-cauchon-estivet .figure2 { position:absolute; bottom:10%; left:55%; width:30px; height:55px; background: linear-gradient(180deg, #2a1a2a 0%, #0e0a0e 100%); border-radius:45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: bc-figure2 6s ease-in-out infinite; animation-delay: 1.5s; }
.scn-blame-cauchon-estivet .scroll { position:absolute; bottom:20%; left:40%; width:60px; height:20px; background: linear-gradient(135deg, #c8b8a8 0%, #a89888 100%); border-radius:2px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: bc-scroll 8s ease-in-out infinite; }
.scn-blame-cauchon-estivet .candle { position:absolute; bottom:28%; left:50%; width:6px; height:18px; background: linear-gradient(180deg, #ffd080 0%, #b08030 100%); border-radius:50% 50% 2px 2px; box-shadow: 0 0 16px 4px #ffc060, 0 0 32px 8px rgba(255,192,96,0.3); animation: bc-candle 3s ease-in-out infinite alternate; }
.scn-blame-cauchon-estivet .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, transparent 0%, rgba(0,0,0,0.7) 100%); animation: bc-shadow 12s ease-in-out infinite alternate; }
.scn-blame-cauchon-estivet .symbol { position:absolute; top:5%; right:10%; width:20px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 4px 4px; transform: rotate(10deg); animation: bc-symbol 20s ease-in-out infinite; }
@keyframes bc-bg { 0%,100% { opacity:0.4 } 50% { opacity:0.7 } }
@keyframes bc-figure { 0%,100% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(0) rotate(-3deg) } 75% { transform: translateX(-5px) rotate(1deg) } }
@keyframes bc-figure2 { 0%,100% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-4px) rotate(2deg) } }
@keyframes bc-scroll { 0%,100% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(-2deg) scaleY(1.05) } }
@keyframes bc-candle { 0% { transform: scaleY(1) translateY(0); opacity:0.85 } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.8 } }
@keyframes bc-shadow { 0%,100% { opacity:0.5 } 50% { opacity:0.8 } }
@keyframes bc-symbol { 0%,100% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-5px) } }

/* item-cameo-brooch */
.scn-item-cameo-brooch {
  background: linear-gradient(180deg, #f2e8d0 0%, #d9c9a0 30%, #b8a47a 100%), radial-gradient(ellipse at 60% 50%, #fff8e0 0%, transparent 60%);
}
.scn-item-cameo-brooch .wall-back {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(135deg, #e8dcc0 0%, #d0c0a0 100%);
  animation: cb-wall 8s ease-in-out infinite alternate;
}
.scn-item-cameo-brooch .shelf {
  position:absolute; bottom:30%; left:10%; width:80%; height:6px;
  background: linear-gradient(90deg, #a09070 0%, #c8b898 50%, #a09070 100%);
  border-radius: 2px; box-shadow: 0 3px 6px rgba(0,0,0,.15);
  animation: cb-shelf 6s ease-in-out infinite;
}
.scn-item-cameo-brooch .brooch-cameo {
  position:absolute; bottom:36%; left:40%; width:40px; height:50px;
  background: radial-gradient(circle at 50% 40%, #f8f0e8 0%, #d0c0a8 30%, #b0a088 70%, #8a7a68 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.2), inset 0 -2px 6px rgba(0,0,0,.1);
  animation: cb-brooch 4s ease-in-out infinite alternate;
}
.scn-item-cameo-brooch .hand {
  position:absolute; bottom:24%; left:44%; width:20px; height:30px;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8b090 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: 50% 100%;
  animation: cb-hand 5s ease-in-out infinite;
}
.scn-item-cameo-brooch .light-spot {
  position:absolute; top:12%; left:30%; width:100px; height:80px;
  background: radial-gradient(circle, rgba(255,248,220,.6) 0%, rgba(255,248,220,.1) 70%, transparent 100%);
  filter: blur(10px);
  animation: cb-light 10s ease-in-out infinite alternate;
}
.scn-item-cameo-brooch .shadow-glass {
  position:absolute; bottom:28%; left:35%; width:50px; height:60px;
  background: linear-gradient(135deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.15) 100%);
  border-radius: 10% / 20%;
  animation: cb-shadow 6s ease-in-out infinite;
}
.scn-item-cameo-brooch .dust-mote {
  position:absolute; top:20%; left:60%; width:4px; height:4px;
  background: rgba(255,255,200,.5); border-radius:50%;
  filter: blur(1px);
  animation: cb-dust 15s linear infinite;
}
.scn-item-cameo-brooch .dust-mote2 {
  position:absolute; top:40%; left:20%; width:3px; height:3px;
  background: rgba(255,255,200,.4); border-radius:50%;
  filter: blur(1px);
  animation: cb-dust 18s linear infinite reverse;
}
@keyframes cb-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cb-shelf { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes cb-brooch { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.02); opacity:1 } 100% { transform: scale(.98); opacity:.85 } }
@keyframes cb-hand { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes cb-light { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.1) } 100% { opacity:.5; transform: scale(.95) } }
@keyframes cb-shadow { 0%,100% { opacity:.3 } 50% { opacity:.1 } }
@keyframes cb-dust { 0% { transform: translate(0,0); opacity:0 } 10% { opacity:.8 } 90% { opacity:.6 } 100% { transform: translate(30px,-20px); opacity:0 } }

/* pension-bertolini-lunch */
.scn-pension-bertolini-lunch {
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 40%, #b8a890 100%), radial-gradient(ellipse at 50% 80%, #c8b098 0%, transparent 70%);
}
.scn-pension-bertolini-lunch .floor {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: repeating-linear-gradient(90deg, #a09080 0px, #b0a090 2px, #a09080 4px, #c0b0a0 8px);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.15);
  animation: pb-floor 12s ease-in-out infinite alternate;
}
.scn-pension-bertolini-lunch .window-left {
  position:absolute; top:10%; left:10%; width:35%; height:60%;
  background: linear-gradient(135deg, #c8d8e8 0%, #a0b8d0 100%);
  border: 4px solid #8a7a6a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,.3), 0 4px 8px rgba(0,0,0,.2);
  animation: pb-window 9s ease-in-out infinite;
}
.scn-pension-bertolini-lunch .table-fore {
  position:absolute; bottom:18%; left:20%; width:60%; height:12%;
  background: linear-gradient(180deg, #b08060 0%, #8a6040 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
  animation: pb-table 7s ease-in-out infinite;
}
.scn-pension-bertolini-lunch .figure-guest {
  position:absolute; bottom:22%; left:30%; width:22px; height:60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pb-guest 5s ease-in-out infinite;
}
.scn-pension-bertolini-lunch .figure-emerson {
  position:absolute; bottom:22%; left:58%; width:24px; height:64px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pb-emerson 6s ease-in-out infinite alternate;
}
.scn-pension-bertolini-lunch .shadow-sharp {
  position:absolute; bottom:10%; left:25%; width:50%; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,.1) 0%, rgba(0,0,0,.25) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: pb-shadow 4s ease-in-out infinite;
}
.scn-pension-bertolini-lunch .napkin {
  position:absolute; bottom:24%; left:40%; width:14px; height:14px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d8c8b0 100%);
  border-radius: 20% 40% 20% 40%;
  transform: rotate(15deg);
  animation: pb-napkin 8s ease-in-out infinite;
}
.scn-pension-bertolini-lunch .cutlery {
  position:absolute; bottom:23%; left:48%; width:3px; height:20px;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 5px 0 0 #a09080, -5px 0 0 #a09080;
  animation: pb-cutlery 10s ease-in-out infinite;
}
@keyframes pb-floor { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pb-window { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:.9; transform: scaleY(1.02) } 100% { opacity:.75; transform: scaleY(.98) } }
@keyframes pb-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes pb-guest { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pb-emerson { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pb-shadow { 0%,100% { opacity:.4 } 50% { opacity:.7 } }
@keyframes pb-napkin { 0% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(20deg) scale(1.05) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes pb-cutlery { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* siege-orleans-desperate */
.scn-siege-orleans-desperate {
  background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 30%, #2a3a3a 70%, #1a2a2a 100%), radial-gradient(ellipse at 30% 50%, #4a5a5a 0%, transparent 70%);
}
.scn-siege-orleans-desperate .sky-overcast {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 40%, #3a4a4a 100%);
  animation: so1-sky 14s ease-in-out infinite alternate;
}
.scn-siege-orleans-desperate .bastion-wall {
  position:absolute; bottom:20%; left:15%; width:70%; height:40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4), 0 -4px 10px rgba(0,0,0,.3);
  animation: so1-wall 20s ease-in-out infinite;
}
.scn-siege-orleans-desperate .flag-siege {
  position:absolute; top:12%; left:40%; width:20px; height:30px;
  background: linear-gradient(180deg, #a07858 0%, #804838 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  transform-origin: left top;
  animation: so1-flag 6s ease-in-out infinite;
}
.scn-siege-orleans-desperate .soldier-silhouette {
  position:absolute; bottom:18%; left:45%; width:24px; 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: so1-soldier 4s ease-in-out infinite alternate;
}
.scn-siege-orleans-desperate .spear {
  position:absolute; bottom:30%; left:47%; width:2px; height:60px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 0 0 2px 2px;
  transform: rotate(-10deg);
  animation: so1-spear 5s ease-in-out infinite;
}
.scn-siege-orleans-desperate .mud-slope {
  position:absolute; bottom:0; left:0; right:0; height:22%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 30% 0 0 / 100% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: so1-mud 18s ease-in-out infinite;
}
.scn-siege-orleans-desperate .rain-drop {
  position:absolute; top:20%; left:20%; width:3px; height:10px;
  background: rgba(180,200,200,.3); border-radius: 50% 50% 0 0;
  animation: so1-rain 0.8s linear infinite;
}
.scn-siege-orleans-desperate .rain-drop2 {
  position:absolute; top:40%; left:60%; width:2px; height:8px;
  background: rgba(180,200,200,.25); border-radius: 50% 50% 0 0;
  animation: so1-rain 0.6s linear infinite 0.3s;
}
@keyframes so1-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes so1-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes so1-flag { 0% { transform: rotate(0) scaleY(1) } 25% { transform: rotate(5deg) scaleY(1.05) } 50% { transform: rotate(-3deg) scaleY(.95) } 75% { transform: rotate(4deg) scaleY(1.02) } 100% { transform: rotate(0) scaleY(1) } }
@keyframes so1-soldier { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes so1-spear { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } }
@keyframes so1-mud { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes so1-rain { 0% { transform: translateY(-10px); opacity:0 } 20% { opacity:1 } 80% { opacity:.6 } 100% { transform: translateY(30px); opacity:0 } }

/* siege-orleans-citizens */
.scn-siege-orleans-citizens {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #3a2a2a 60%, #2a1a1a 100%), radial-gradient(ellipse at 50% 90%, #5a3a1a 0%, transparent 70%);
}
.scn-siege-orleans-citizens .wall-interior {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  animation: so2-wall 15s ease-in-out infinite alternate;
}
.scn-siege-orleans-citizens .torch-glow {
  position:absolute; bottom:40%; left:30%; width:120px; height:120px;
  background: radial-gradient(circle, rgba(200,140,60,.5) 0%, rgba(200,140,60,.1) 50%, transparent 70%);
  filter: blur(10px);
  animation: so2-torch 5s ease-in-out infinite alternate;
}
.scn-siege-orleans-citizens .citizen-left {
  position:absolute; bottom:20%; left:25%; width:20px; height:60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: so2-citizen 8s ease-in-out infinite;
}
.scn-siege-orleans-citizens .citizen-right {
  position:absolute; bottom:22%; left:55%; width:22px; height:64px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: so2-citizen 9s ease-in-out infinite 1s;
}
.scn-siege-orleans-citizens .barricade {
  position:absolute; bottom:15%; left:10%; width:80%; height:25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.5);
  animation: so2-barricade 12s ease-in-out infinite;
}
.scn-siege-orleans-citizens .shadow-pool {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%);
  animation: so2-shadow 6s ease-in-out infinite alternate;
}
.scn-siege-orleans-citizens .ember {
  position:absolute; bottom:30%; left:45%; width:3px; height:3px;
  background: #d08040; border-radius:50%;
  box-shadow: 0 0 6px #d08040;
  animation: so2-ember 3s ease-in-out infinite;
}
.scn-siege-orleans-citizens .ember2 {
  position:absolute; bottom:35%; left:55%; width:2px; height:2px;
  background: #e0a060; border-radius:50%;
  box-shadow: 0 0 4px #e0a060;
  animation: so2-ember 4s ease-in-out infinite 1.5s;
}
@keyframes so2-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes so2-torch { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.6; transform: scale(.9) } }
@keyframes so2-citizen { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes so2-barricade { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes so2-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes so2-ember { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(-8px) scale(1.5); opacity:.5 } 100% { transform: translateY(0) scale(1); opacity:1 } }

.scn-council-decides-campaign { background: linear-gradient(180deg, #1a1410 0%, #2c2018 30%, #3a2a20 60%, #2a1e18 100%), radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, transparent 70%); }
.scn-council-decides-campaign .wall-dark { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #2c2018 0%, #1a1410 100%); border-bottom: 4px solid #4a3020; animation: cdc-wall 20s ease-in-out infinite alternate; }
.scn-council-decides-campaign .table-long { position:absolute; bottom:20%; left:10%; right:10%; height:22%; background: linear-gradient(180deg, #4a3525 0%, #2c1e12 100%); border-radius: 4px; box-shadow: 0 6px 20px rgba(0,0,0,.8); transform-origin: top center; animation: cdc-table 8s ease-in-out infinite; }
.scn-council-decides-campaign .candle-flame { position:absolute; bottom:54%; left:50%; width:12px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #ffd060 0%, #c08030 60%, #603010 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px rgba(192,128,48,.6), 0 0 60px 20px rgba(192,128,48,.3); animation: cdc-candle 3s ease-in-out infinite alternate; }
.scn-council-decides-campaign .figure-left { position:absolute; bottom:18%; left:22%; width:28px; height:48px; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cdc-figL 6s ease-in-out infinite; }
.scn-council-decides-campaign .figure-right { position:absolute; bottom:18%; right:22%; width:30px; height:50px; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cdc-figR 8s ease-in-out infinite; }
.scn-council-decides-campaign .shadow-pool { position:absolute; bottom:10%; left:0; right:0; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 80%); animation: cdc-shadow 12s ease-in-out infinite alternate; }
@keyframes cdc-wall { 0% { opacity:.85; } 50% { opacity:.95; } 100% { opacity:.8; } }
@keyframes cdc-table { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(1.02) translateY(-1px); } }
@keyframes cdc-candle { 0% { box-shadow:0 0 20px 5px rgba(192,128,48,.4),0 0 40px 10px rgba(192,128,48,.2); opacity:.9; height:18px; } 50% { box-shadow:0 0 35px 12px rgba(255,208,96,.7),0 0 70px 25px rgba(255,208,96,.4); opacity:1; height:22px; } 100% { box-shadow:0 0 25px 6px rgba(192,128,48,.5),0 0 50px 15px rgba(192,128,48,.25); opacity:.85; height:19px; } }
@keyframes cdc-figL { 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 cdc-figR { 0% { transform:translateX(0) rotate(0deg); } 33% { transform:translateX(2px) rotate(1deg); } 66% { transform:translateX(-2px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes cdc-shadow { 0% { opacity:.5; } 50% { opacity:.7; } 100% { opacity:.4; } }

.scn-siege-of-saint-pierre { background: linear-gradient(180deg, #87CEEB 0%, #B0E0FF 30%, #FFE4B5 60%, #FFD700 100%), radial-gradient(ellipse at 50% 20%, #FFF8DC 0%, transparent 60%); }
.scn-siege-of-saint-pierre .sky-bright { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6CB4EE 0%, transparent 100%); animation: ssp-sky 15s ease-in-out infinite alternate; }
.scn-siege-of-saint-pierre .sun-disk { position:absolute; top:12%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,215,0,.5); animation: ssp-sun 6s ease-in-out infinite; }
.scn-siege-of-saint-pierre .castle-wall { position:absolute; bottom:20%; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #8B7355 0%, #6B5B3A 50%, #4A3A2A 100%); border-radius:4px; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); animation: ssp-wall 12s ease-in-out infinite alternate; }
.scn-siege-of-saint-pierre .tower-left { position:absolute; bottom:20%; left:10%; width:30px; height:70%; background: linear-gradient(180deg, #8B7355 0%, #5A4A30 100%); border-radius:4px 4px 0 0; transform:translateX(-50%); box-shadow: 0 -4px 12px rgba(0,0,0,.3); animation: ssp-tower 10s ease-in-out infinite; }
.scn-siege-of-saint-pierre .tower-right { position:absolute; bottom:20%; right:10%; width:30px; height:65%; background: linear-gradient(180deg, #8B7355 0%, #5A4A30 100%); border-radius:4px 4px 0 0; transform:translateX(50%); box-shadow: 0 -4px 12px rgba(0,0,0,.3); animation: ssp-tower 10s ease-in-out infinite reverse; }
.scn-siege-of-saint-pierre .soldier-front { position:absolute; bottom:20%; left:35%; width:22px; height:40px; background: linear-gradient(180deg, #3A2A1A 0%, #1A0E05 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ssp-soldF 5s ease-in-out infinite; }
.scn-siege-of-saint-pierre .soldier-back { position:absolute; bottom:22%; left:58%; width:20px; height:38px; background: linear-gradient(180deg, #3A2A1A 0%, #1A0E05 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; opacity:.7; animation: ssp-soldB 7s ease-in-out infinite; }
.scn-siege-of-saint-pierre .flag-pole { position:absolute; bottom:40%; left:48%; width:3px; height:50px; background: #4A3A2A; transform-origin: bottom center; animation: ssp-pole 4s ease-in-out infinite; }
.scn-siege-of-saint-pierre .banner { position:absolute; bottom:75%; left:48%; width:20px; height:14px; background: linear-gradient(180deg, #A0522D 0%, #703B1E 100%); border-radius: 0 50% 50% 0; transform-origin: left center; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: ssp-flag 3s ease-in-out infinite alternate; }
@keyframes ssp-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes ssp-sun { 0%,100% { transform:scale(1); } 50% { transform:scale(1.05); } }
@keyframes ssp-wall { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes ssp-tower { 0% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(1.03); } 100% { transform:translateX(-50%) scaleY(1); } }
/* .scn-siege-of-saint-pierre .tower-right already uses same keyframe reverse */
@keyframes ssp-soldF { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(2px) rotate(-1deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-2px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ssp-soldB { 0% { transform:translateX(0); } 33% { transform:translateX(3px); } 66% { transform:translateX(-2px); } 100% { transform:translateX(0); } }
@keyframes ssp-pole { 0% { transform:rotate(0deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-1deg); } }
@keyframes ssp-flag { 0% { transform:scaleX(1); } 100% { transform:scaleX(1.2); } }

.scn-aulon-finds-jeanne { background: linear-gradient(180deg, #87CEEB 0%, #B0E0FF 30%, #7EC8E3 60%, #6BB3C0 100%), radial-gradient(ellipse at 50% 80%, #5A9E8F 0%, transparent 60%); }
.scn-aulon-finds-jeanne .sky-wide { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #B0E0FF 0%, #87CEEB 100%); animation: afj-sky 20s ease-in-out infinite alternate; }
.scn-aulon-finds-jeanne .moat-water { position:absolute; bottom:25%; left:0; right:0; height:28%; background: linear-gradient(180deg, #5A9E8F 0%, #3A6B5E 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: afj-water 12s ease-in-out infinite; }
.scn-aulon-finds-jeanne .wall-stone { position:absolute; bottom:25%; left:15%; right:15%; height:30%; background: linear-gradient(180deg, #8B7355 0%, #5A4A30 100%); border-radius:4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); animation: afj-wall 15s ease-in-out infinite alternate; }
.scn-aulon-finds-jeanne .jeanne-silhouette { position:absolute; bottom:22%; left:40%; width:16px; height:32px; background: linear-gradient(180deg, #1A0E05 0%, #0A0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: afj-jeanne 5s ease-in-out infinite; }
.scn-aulon-finds-jeanne .horse-figure { position:absolute; bottom:20%; left:58%; width:40px; height:34px; background: linear-gradient(180deg, #3A2A1A 0%, #1A0E05 100%); border-radius: 40% 50% 30% 20%; transform-origin: bottom center; animation: afj-horse 4s ease-in-out infinite; }
.scn-aulon-finds-jeanne .aulon-rider { position:absolute; bottom:38%; left:58%; width:18px; height:28px; background: linear-gradient(180deg, #2A1A0A 0%, #0A0502 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; transform:translateX(-50%); animation: afj-rider 3s ease-in-out infinite; }
.scn-aulon-finds-jeanne .ground-ridge { position:absolute; bottom:10%; left:0; right:0; height:15%; background: linear-gradient(180deg, #4A6B3A 0%, #2A4A1A 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; animation: afj-ground 18s ease-in-out infinite alternate; }
@keyframes afj-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes afj-water { 0% { transform:translateY(0); opacity:.85; } 50% { transform:translateY(-2px); opacity:.95; } 100% { transform:translateY(0); opacity:.85; } }
@keyframes afj-wall { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes afj-jeanne { 0%,100% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(1px) rotate(-1deg); } 50% { transform:translateX(0) rotate(1deg); } 75% { transform:translateX(-1px) rotate(0deg); } }
@keyframes afj-horse { 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 afj-rider { 0% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(2deg); } 100% { transform:translateX(-50%) rotate(-2deg); } }
@keyframes afj-ground { 0% { transform:translateY(0) scaleX(1); } 50% { transform:translateY(-1px) scaleX(1.02); } 100% { transform:translateY(0) scaleX(1); } }

.scn-jeanne-at-saint-pierre { background: linear-gradient(180deg, #87CEEB 0%, #B0E0FF 20%, #FFFACD 40%, #FFD700 60%, #FF8C00 80%, #8B4500 100%), radial-gradient(ellipse at 50% 30%, #FFF8DC 0%, transparent 70%); }
.scn-jeanne-at-saint-pierre .sky-glare { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #FFFACD 0%, #87CEEB 100%); animation: jsp-sky 14s ease-in-out infinite alternate; }
.scn-jeanne-at-saint-pierre .sun-burst { position:absolute; top:5%; left:50%; width:70px; height:70px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 40%, transparent 100%); transform:translateX(-50%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,215,0,.6); animation: jsp-sun 8s ease-in-out infinite; }
.scn-jeanne-at-saint-pierre .wall-rampart { position:absolute; bottom:15%; left:0; right:0; height:50%; background: linear-gradient(180deg, #8B7355 0%, #6B5B3A 60%, #4A3A2A 100%); border-radius: 4px; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); animation: jsp-wall 20s ease-in-out infinite alternate; }
.scn-jeanne-at-saint-pierre .jeanne-standing { position:absolute; bottom:30%; left:45%; width:20px; height:42px; background: linear-gradient(180deg, #1A0E05 0%, #0A0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jsp-jeanne 5s ease-in-out infinite; }
.scn-jeanne-at-saint-pierre .sallet-helmet { position:absolute; bottom:66%; left:45%; width:14px; height:10px; background: radial-gradient(circle, #6B5B3A 0%, #3A2A1A 100%); border-radius: 50% 50% 30% 30%; transform:translateX(-2px); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: jsp-helmet 4s ease-in-out infinite alternate; }
.scn-jeanne-at-saint-pierre .soldier-left { position:absolute; bottom:28%; left:28%; width:18px; height:38px; background: linear-gradient(180deg, #2A1A0A 0%, #0A0502 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jsp-soldL 6s ease-in-out infinite; }
.scn-jeanne-at-saint-pierre .soldier-right { position:absolute; bottom:30%; right:28%; width:18px; height:40px; background: linear-gradient(180deg, #2A1A0A 0%, #0A0502 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jsp-soldR 7s ease-in-out infinite; }
.scn-jeanne-at-saint-pierre .dust-clouds { position:absolute; bottom:10%; left:10%; right:10%; height:15%; background: radial-gradient(ellipse at 30% 50%, rgba(220,200,180,.3) 0%, transparent 80%), radial-gradient(ellipse at 70% 50%, rgba(220,200,180,.2) 0%, transparent 70%); filter: blur(6px); animation: jsp-dust 12s ease-in-out infinite alternate; }
@keyframes jsp-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes jsp-sun { 0% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(1.05); } 100% { transform:translateX(-50%) scale(1); } }
@keyframes jsp-wall { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes jsp-jeanne { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(1px) rotate(-1deg); } 50% { transform:translateX(0) rotate(1deg); } 75% { transform:translateX(-1px) rotate(0deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes jsp-helmet { 0% { transform:translateX(-2px) rotate(0deg); } 100% { transform:translateX(-2px) rotate(5deg); } }
@keyframes jsp-soldL { 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 jsp-soldR { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-2px) rotate(1deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(2px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes jsp-dust { 0% { opacity:.3; transform:translateY(0) scaleX(1); } 50% { opacity:.5; transform:translateY(-2px) scaleX(1.05); } 100% { opacity:.3; transform:translateY(0) scaleX(1); } }

.scn-material-reality {
  background: linear-gradient(180deg, #1e1a2e 0%, #2a2030 50%, #3a2a3a 100%),
              radial-gradient(ellipse at 60% 40%, #3a2a3a 0%, transparent 70%);
}
.scn-material-reality .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a2030 0%, #1e1a2e 100%); }
.scn-material-reality .wall-left { position:absolute; left:0; top:0; width:45%; height:100%; background: linear-gradient(180deg, #2e2434 0%, #221a26 100%); box-shadow: inset -8px 0 15px rgba(0,0,0,0.5); animation: mr-wall-left 12s ease-in-out infinite; }
.scn-material-reality .wall-right { position:absolute; right:0; top:0; width:40%; height:100%; background: linear-gradient(180deg, #2a2030 0%, #1e1a2e 100%); box-shadow: inset 8px 0 15px rgba(0,0,0,0.5); }
.scn-material-reality .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a3a 0%, #1e1420 100%); border-radius: 60% 60% 0 0 / 40% 40% 0 0; }
.scn-material-reality .figure { position:absolute; left:35%; bottom:12%; width:22px; height:45px; background: linear-gradient(180deg, #0c0a12 0%, #1a1420 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mr-figure 4s ease-in-out infinite, mr-shiver 0.8s ease-in-out infinite; }
.scn-material-reality .lamp { position:absolute; left:55%; bottom:45%; width:10px; height:20px; background: radial-gradient(circle at 50% 30%, #c8a050 0%, #a07830 60%, #604020 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 30px 8px rgba(200,160,80,0.5), 0 0 60px 20px rgba(200,160,80,0.2); animation: mr-lamp-flicker 2s ease-in-out infinite; }
.scn-material-reality .shadow { position:absolute; left:25%; bottom:0%; width:80px; height:40px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%); filter: blur(6px); animation: mr-shadow-sway 5s ease-in-out infinite; }
.scn-material-reality .door { position:absolute; right:10%; bottom:0%; width:50px; height:80px; background: linear-gradient(180deg, #1a1a22 0%, #0e0e14 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,0.6); }
@keyframes mr-wall-left {
  0%, 100% { opacity: 0.9; }
  50% { opacity: 0.7; }
}
@keyframes mr-figure {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(1px) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes mr-shiver {
  0%, 100% { transform: scaleX(1); }
  25% { transform: scaleX(0.97); }
  75% { transform: scaleX(1.03); }
}
@keyframes mr-lamp-flicker {
  0% { opacity: 0.85; transform: scale(1); }
  20% { opacity: 1; transform: scale(1.05); }
  40% { opacity: 0.9; transform: scale(0.98); }
  60% { opacity: 1; transform: scale(1.02); }
  80% { opacity: 0.8; transform: scale(0.95); }
  100% { opacity: 0.85; transform: scale(1); }
}
@keyframes mr-shadow-sway {
  0%, 100% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(8px) scaleX(0.9); }
}

/* -------------------- angel-at-chinon -------------------- */
.scn-angel-at-chinon {
  background: linear-gradient(180deg, #fef5e0 0%, #fce8c0 40%, #f2d4a0 100%),
              radial-gradient(ellipse at 50% 10%, #fff8e0 0%, transparent 70%);
}
.scn-angel-at-chinon .hall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #fef0c8 0%, #ecd8a0 100%); }
.scn-angel-at-chinon .throne { position:absolute; left:30%; bottom:10%; width:80px; height:50px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 6px 15px rgba(0,0,0,0.2); }
.scn-angel-at-chinon .king { position:absolute; left:30%; bottom:16%; width:20px; height:50px; background: linear-gradient(180deg, #2a2040 0%, #1a1030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ac-king-breathe 6s ease-in-out infinite; }
.scn-angel-at-chinon .angel { position:absolute; right:25%; bottom:20%; width:20px; height:55px; background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; box-shadow: 0 0 15px 5px rgba(255,255,200,0.3); animation: ac-angel-hover 8s ease-in-out infinite; }
.scn-angel-at-chinon .halo { position:absolute; right:25%; top:14%; width:28px; height:28px; background: radial-gradient(circle, rgba(255,230,150,0.9) 0%, rgba(255,200,100,0.3) 60%, transparent 80%); border-radius: 50%; filter: blur(3px); animation: ac-halo-pulse 4s ease-in-out infinite; }
.scn-angel-at-chinon .candle { position:absolute; left:55%; bottom:15%; width:6px; height:20px; background: linear-gradient(180deg, #f0d080 0%, #c0a050 100%); border-radius: 20% 20% 10% 10%; animation: ac-candle-flicker 3s ease-in-out infinite; }
.scn-angel-at-chinon .pillar-left { position:absolute; left:8%; bottom:0; width:20px; height:100%; background: linear-gradient(180deg, #e8d8b8 0%, #c0b090 100%); box-shadow: inset -4px 0 8px rgba(0,0,0,0.1); }
.scn-angel-at-chinon .pillar-right { position:absolute; right:8%; bottom:0; width:20px; height:100%; background: linear-gradient(180deg, #e8d8b8 0%, #c0b090 100%); box-shadow: inset 4px 0 8px rgba(0,0,0,0.1); }
@keyframes ac-king-breathe {
  0%, 100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.01); }
}
@keyframes ac-angel-hover {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(1deg); }
  60% { transform: translateY(-2px) rotate(-1deg); }
  80% { transform: translateY(-1px) rotate(0deg); }
}
@keyframes ac-halo-pulse {
  0%, 100% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
}
@keyframes ac-candle-flicker {
  0% { opacity: 0.9; transform: scaleY(1); }
  25% { opacity: 1; transform: scaleY(1.05); }
  50% { opacity: 0.85; transform: scaleY(0.95); }
  75% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.9; transform: scaleY(1); }
}

/* -------------------- angel-departure -------------------- */
.scn-angel-departure {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2038 50%, #1c1428 100%),
              radial-gradient(ellipse at 30% 50%, #3a2a4a 0%, transparent 60%);
}
.scn-angel-departure .chamber-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1e1a2e 0%, #2a2038 100%); }
.scn-angel-departure .wall { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #2e2434 0%, #1a1420 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.5); }
.scn-angel-departure .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a3a 0%, #1a1220 100%); border-radius: 60% 60% 0 0 / 30% 30% 0 0; }
.scn-angel-departure .figure { position:absolute; left:40%; bottom:12%; width:20px; height:45px; background: linear-gradient(180deg, #0c0a12 0%, #181420 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ad-figure-reach 5s ease-in-out infinite; }
.scn-angel-departure .angel-ascending { position:absolute; left:50%; bottom:40%; width:18px; height:50px; background: linear-gradient(180deg, #8888b0 0%, #606090 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 0 20px 8px rgba(100,100,180,0.5); animation: ad-angel-ascend 10s ease-in-out infinite; }
.scn-angel-departure .lightbeam { position:absolute; left:45%; top:0; width:40px; height:100%; background: linear-gradient(180deg, rgba(200,200,240,0.3) 0%, rgba(100,100,180,0.1) 60%, transparent 100%); filter: blur(8px); animation: ad-lightbeam 12s ease-in-out infinite; }
.scn-angel-departure .shadow-wall { position:absolute; left:35%; bottom:0; width:70px; height:90px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 80%); filter: blur(12px); }
@keyframes ad-figure-reach {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(3deg) scaleY(1.02); }
  50% { transform: translateY(1px) rotate(-2deg); }
  75% { transform: translateY(-3px) rotate(2deg) scaleY(1.03); }
}
@keyframes ad-angel-ascend {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  25% { transform: translateY(-15px) scale(0.95); opacity: 0.6; }
  50% { transform: translateY(-30px) scale(0.9); opacity: 0.4; }
  75% { transform: translateY(-45px) scale(0.85); opacity: 0.2; }
  100% { transform: translateY(-60px) scale(0.8); opacity: 0; }
}
@keyframes ad-lightbeam {
  0%, 100% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.1); }
}

/* -------------------- dominance-over-visions -------------------- */
.scn-dominance-over-visions {
  background: linear-gradient(180deg, #e8f0f8 0%, #c0d0e0 40%, #a8b8d0 100%),
              radial-gradient(ellipse at 50% 20%, #f0f8ff 0%, transparent 70%);
}
.scn-dominance-over-visions .cell-bg { position:absolute; inset:0; background: linear-gradient(180deg, #dce4ec 0%, #c8d4e0 100%); }
.scn-dominance-over-visions .wall { position:absolute; left:0; right:0; bottom:0; height:55%; background: linear-gradient(180deg, #b0c0d0 0%, #8898a8 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.1); }
.scn-dominance-over-visions .window { position:absolute; left:65%; bottom:35%; width:28px; height:40px; background: linear-gradient(180deg, #f0f8ff 0%, #d0e0f0 100%); border: 3px solid #8898a8; border-radius: 10% 10% 5% 5%; box-shadow: 0 0 20px 10px rgba(200,220,240,0.6); animation: do-window-glow 6s ease-in-out infinite; }
.scn-dominance-over-visions .figure-leap { position:absolute; left:50%; bottom:20%; width:20px; height:40px; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: center; animation: do-figure-leap 7s ease-in-out infinite; }
.scn-dominance-over-visions .chain { position:absolute; left:50%; bottom:30%; width:4px; height:50px; background: linear-gradient(180deg, #8898a8 0%, #607080 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(0,0,0,0.2); }
.scn-dominance-over-visions .bed { position:absolute; left:15%; bottom:5%; width:60px; height:25px; background: linear-gradient(180deg, #c0b8a0 0%, #a09880 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.1); }
.scn-dominance-over-visions .shadow-ground { position:absolute; left:25%; bottom:0%; width:120px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 80%); filter: blur(15px); animation: do-shadow-shift 7s ease-in-out infinite; }
@keyframes do-window-glow {
  0%, 100% { box-shadow: 0 0 15px 5px rgba(200,220,240,0.4); }
  50% { box-shadow: 0 0 25px 12px rgba(200,220,240,0.8); }
}
@keyframes do-figure-leap {
  0% { transform: translateY(0) rotate(0deg); opacity: 1; }
  20% { transform: translateY(-20px) rotate(-15deg); opacity: 0.9; }
  40% { transform: translateY(-35px) rotate(-30deg); opacity: 0.8; }
  60% { transform: translateY(-45px) rotate(-45deg); opacity: 0.7; }
  80% { transform: translateY(-50px) rotate(-60deg); opacity: 0.5; }
  100% { transform: translateY(-55px) rotate(-75deg); opacity: 0; }
}
@keyframes do-shadow-shift {
  0%, 100% { transform: translateX(0); opacity: 0.4; }
  20% { transform: translateX(-10px); opacity: 0.6; }
  40% { transform: translateX(-20px); opacity: 0.5; }
  60% { transform: translateX(-30px); opacity: 0.3; }
  80% { transform: translateX(-40px); opacity: 0.2; }
  100% { transform: translateX(0); opacity: 0.4; }
}

/* english-fear */
.scn-english-fear { background: linear-gradient(180deg, #1a0e0a 0%, #2e1a12 50%, #3d261c 100%), radial-gradient(ellipse at 50% 100%, #2a1810 0%, transparent 80%); }
.scn-english-fear .wall-bg   { position:absolute; inset:0 0 30% 0; background: linear-gradient(0deg, #3a2218 0%, #2a1610 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,0.7); animation: ef-wall 12s ease-in-out infinite alternate; }
.scn-english-fear .floor     { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-top: 3px solid #4a2a1a; }
.scn-english-fear .table     { position:absolute; bottom:18%; left:40%; width:60px; height:40px; transform: skewY(-2deg); background: linear-gradient(135deg, #4a3220 0%, #2e1e10 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
.scn-english-fear .candle    { position:absolute; bottom:28%; left:48%; width:8px; height:28px; background: linear-gradient(180deg, #e8c88a 0%, #b0803a 100%); border-radius: 2px 2px 0 0; transform: rotate(-1deg); }
.scn-english-fear .candle-glow { position:absolute; bottom:38%; left:46%; width:20px; height:20px; background: radial-gradient(circle, #ffc060 0%, rgba(255,192,96,0.15) 70%); border-radius: 50%; filter: blur(8px); animation: ef-glow 2.5s ease-in-out infinite alternate; }
.scn-english-fear .herald    { position:absolute; bottom:8%; left:35%; width:22px; height:50px; background: linear-gradient(180deg, #1e1a16 0%, #0e0a08 100%); border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%; transform-origin: bottom center; animation: ef-figure 6s ease-in-out infinite; }
.scn-english-fear .letter    { position:absolute; bottom:30%; left:38%; width:16px; height:22px; background: #d4b884; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: ef-letter 4s ease-in-out infinite; }
.scn-english-fear .shadow-herald { position:absolute; bottom:0; left:30%; width:40px; height:12px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px); transform: rotate(-10deg); animation: ef-shadow 6s ease-in-out infinite; }
@keyframes ef-wall  { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ef-glow  { 0% { transform: scale(0.9); opacity:0.6 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(1); opacity:0.8 } }
@keyframes ef-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(-6px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes ef-letter { 0% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-2px) rotate(-3deg) } 50% { transform: translateY(1px) rotate(4deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ef-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-4px) scaleX(0.9) } 100% { transform: translateX(0) scaleX(1) } }

/* herald-return */
.scn-herald-return { background: linear-gradient(180deg, #0a0a2e 0%, #14143a 50%, #1a1a44 100%), radial-gradient(ellipse at 50% 0%, #2a2a5a 0%, transparent 70%); }
.scn-herald-return .night-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #0f0f30 0%, #1a1a3e 100%); animation: hr-sky 20s ease-in-out infinite alternate; }
.scn-herald-return .hills    { position:absolute; bottom:30%; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.5); animation: hr-hills 25s ease-in-out infinite alternate; }
.scn-herald-return .moon     { position:absolute; top:10%; right:20%; width:40px; height:40px; background: radial-gradient(circle at 30% 30%, #c8d8f0 0%, #8090b0 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(128,144,176,0.3); animation: hr-moon 8s ease-in-out infinite alternate; }
.scn-herald-return .stars    { position:absolute; top:5%; left:10%; width:2px; height:2px; background: #fff; border-radius: 50%; box-shadow: 12px 15px 0 #fff, 40px 30px 0 #fff, 70px 10px 0 rgba(255,255,255,0.5); animation: hr-stars 15s linear infinite; }
.scn-herald-return .cloud-drift { position:absolute; top:15%; left:-20%; width:60px; height:12px; background: rgba(255,255,255,0.08); border-radius: 50%; filter: blur(4px); animation: hr-cloud 45s linear infinite; }
.scn-herald-return .figure-walk { position:absolute; bottom:24%; left:15%; width:18px; height:42px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: hr-walk 3.5s ease-in-out infinite; }
.scn-herald-return .staff    { position:absolute; bottom:25%; left:17%; width:2px; height:30px; background: #2a2a3e; border-radius: 1px; transform: rotate(8deg); animation: hr-staff 3.5s ease-in-out infinite; }
.scn-herald-return .lantern-sway { position:absolute; bottom:28%; left:14%; width:6px; height:8px; background: radial-gradient(circle, #f0d080 0%, #b08040 70%); border-radius: 30%; box-shadow: 0 0 12px 4px rgba(240,208,128,0.5); animation: hr-lantern 2s ease-in-out infinite alternate; }
@keyframes hr-sky    { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes hr-hills  { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes hr-moon   { 0% { transform: scale(0.95); opacity:0.8 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(1); opacity:0.9 } }
@keyframes hr-stars  { 0% { opacity:0.3 } 50% { opacity:0.8 } 100% { opacity:0.3 } }
@keyframes hr-cloud  { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }
@keyframes hr-walk   { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-2deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes hr-staff  { 0%,100% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-2px) } }
@keyframes hr-lantern{ 0% { transform: rotate(-5deg) scale(0.9) } 50% { transform: rotate(5deg) scale(1.1) } 100% { transform: rotate(-3deg) scale(1) } }

/* peace-offer-rejected */
.scn-peace-offer-rejected { background: linear-gradient(180deg, #2a1a0e 0%, #4a2e1a 50%, #6a3e22 100%), radial-gradient(ellipse at 50% 100%, #3a2212 0%, transparent 80%); }
.scn-peace-offer-rejected .bridge-gate { position:absolute; bottom:20%; left:30%; width:120px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,0.5); animation: por-gate 15s ease-in-out infinite alternate; }
.scn-peace-offer-rejected .night-warm { position:absolute; inset:0; background: radial-gradient(ellipse at 80% 40%, #c06030 0%, transparent 60%), linear-gradient(180deg, #1a0e06 0%, transparent 50%); animation: por-night 20s ease-in-out infinite alternate; }
.scn-peace-offer-rejected .torch    { position:absolute; bottom:25%; left:35%; width:10px; height:30px; background: linear-gradient(180deg, #e8a040 0%, #a06020 100%); border-radius: 2px; transform: rotate(3deg); }
.scn-peace-offer-rejected .torch-glow { position:absolute; bottom:30%; left:32%; width:40px; height:40px; background: radial-gradient(circle, #ff8040 0%, rgba(255,128,64,0.2) 60%); border-radius: 50%; filter: blur(12px); animation: por-glow 1.8s ease-in-out infinite alternate; }
.scn-peace-offer-rejected .figure-step { position:absolute; bottom:18%; left:20%; width:20px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%; transform-origin: bottom center; animation: por-step 4s ease-in-out infinite; }
.scn-peace-offer-rejected .shadow-gate { position:absolute; bottom:10%; left:25%; width:80px; height:20px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(6px); animation: por-shadow 15s ease-in-out infinite alternate; }
.scn-peace-offer-rejected .ground   { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-top: 2px solid #5a3a1a; }
@keyframes por-gate  { 0% { transform: scaleX(0.95) translateY(0) } 50% { transform: scaleX(1) translateY(-3px) } 100% { transform: scaleX(0.97) translateY(0) } }
@keyframes por-night { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes por-glow  { 0% { transform: scale(0.9); opacity:0.5 } 50% { transform: scale(1.3); opacity:1 } 100% { transform: scale(1.1); opacity:0.7 } }
@keyframes por-step  { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(10px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(20px) translateY(0) rotate(-2deg) } 75% { transform: translateX(30px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(40px) translateY(0) rotate(0) } }
@keyframes por-shadow{ 0% { transform: scaleX(0.9) translateX(0) } 50% { transform: scaleX(1.1) translateX(5px) } 100% { transform: scaleX(0.95) translateX(-2px) } }

/* bastard-goes-to-blois */
.scn-bastard-goes-to-blois { background: linear-gradient(180deg, #0e1a12 0%, #1a2a1e 50%, #2a3a2a 100%), radial-gradient(ellipse at 30% 50%, #1a2a1e 0%, transparent 70%); }
.scn-bastard-goes-to-blois .tent-wall  { position:absolute; inset:0; background: linear-gradient(135deg, #1a2a1e 0%, #0e1a12 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.6); animation: bgb-wall 18s ease-in-out infinite alternate; }
.scn-bastard-goes-to-blois .tent-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a2a1e 0%, #0a120e 100%); border-top: 2px solid #2a3a2a; }
.scn-bastard-goes-to-blois .map-table  { position:absolute; bottom:15%; left:30%; width:80px; height:30px; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 100%); transform: perspective(200px) rotateX(10deg); border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.5); }
.scn-bastard-goes-to-blois .map-roll   { position:absolute; bottom:22%; left:35%; width:30px; height:18px; background: #c8b08a; border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%; transform: rotate(-5deg); animation: bgb-map 6s ease-in-out infinite; }
.scn-bastard-goes-to-blois .candle-pair { position:absolute; bottom:28%; left:45%; width:30px; height:20px; background: radial-gradient(ellipse, #e8c080 0%, #b08040 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 8px rgba(232,192,128,0.3); animation: bgb-candle 3s ease-in-out infinite alternate; }
.scn-bastard-goes-to-blois .bastard-figure { position:absolute; bottom:6%; left:25%; width:22px; height:52px; background: linear-gradient(180deg, #2a1e14 0%, #1a0e06 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: bgb-bastard 8s ease-in-out infinite; }
.scn-bastard-goes-to-blois .escort-figure { position:absolute; bottom:6%; left:40%; width:20px; height:48px; background: linear-gradient(180deg, #1e1a16 0%, #0e0a08 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: bgb-escort 9s ease-in-out infinite; }
.scn-bastard-goes-to-blois .shadow-cast { position:absolute; bottom:0; left:22%; width:40px; height:10px; background: rgba(0,0,0,0.25); border-radius: 50%; filter: blur(4px); animation: bgb-shadow 8s ease-in-out infinite; }
@keyframes bgb-wall  { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes bgb-map   { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes bgb-candle{ 0% { transform: scale(0.95); opacity:0.7 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(1); opacity:0.8 } }
@keyframes bgb-bastard{ 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(-4px) translateY(-3px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes bgb-escort { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 50% { transform: translateX(3px) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes bgb-shadow{ 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(0.9) translateX(-3px) } 100% { transform: scaleX(1) translateX(0) } }

.scn-meung-beaugency { background: linear-gradient(180deg, #fce8c4 0%, #f5d09a 30%, #c8a87a 60%, #a08064 100%), radial-gradient(ellipse at 50% 0%, #ffdbb0 0%, transparent 60%); }
.scn-meung-beaugency .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #f9e7c0 0%, #edd6aa 50%, #d4b888 100%); animation: mb-sky 15s ease-in-out infinite alternate; }
.scn-meung-beaugency .river { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #84b0c4 0%, #4a7a94 40%, #2a5a74 100%); border-radius:0 0 40% 40% / 0 0 20% 20%; box-shadow: inset 0 8px 20px rgba(0,20,30,.4); animation: mb-river 12s ease-in-out infinite alternate; }
.scn-meung-beaugency .far-bank { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a20 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.3); }
.scn-meung-beaugency .town-silhouette { position:absolute; bottom:40%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 5% 5% 0 0; clip-path: polygon(0% 100%, 0% 40%, 10% 30%, 10% 10%, 22% 5%, 22% 25%, 30% 20%, 30% 40%, 35% 35%, 35% 50%, 45% 45%, 45% 30%, 52% 25%, 52% 45%, 60% 40%, 60% 20%, 70% 15%, 70% 35%, 80% 30%, 80% 50%, 90% 45%, 90% 25%, 100% 20%, 100% 100%); }
.scn-meung-beaugency .foreground-bank { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a5a2a 0%, #2a3a1a 40%, #1a2a0a 100%); border-radius: 60% 40% 0 0 / 40% 60% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,.5); }
.scn-meung-beaugency .banner { position:absolute; bottom:50%; left:60%; width:8px; height:45px; background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%); transform-origin: bottom center; animation: mb-banner 3s ease-in-out infinite; }
.scn-meung-beaugency .banner::after { content:''; position:absolute; top:0; left:8px; width:30px; height:20px; background: linear-gradient(135deg, #c8a040 0%, #a08030 50%, #7a6020 100%); border-radius: 0 50% 20% 0; transform-origin: left center; animation: mb-flag 1.5s ease-in-out infinite alternate; }
.scn-meung-beaugency .knight { position:absolute; bottom:20%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mb-knight 6s ease-in-out infinite; }
@keyframes mb-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mb-river { 0% { background-position: 0% 0% } 50% { background-position: 10% 5% } 100% { background-position: 5% 2% } }
@keyframes mb-banner { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } }
@keyframes mb-flag { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.2) rotate(10deg) } }
@keyframes mb-knight { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(10px) rotate(-2deg) } 50% { transform: translateX(20px) rotate(1deg) } 75% { transform: translateX(10px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-constable-arrives { background: linear-gradient(180deg, #fce4b8 0%, #f0cc90 30%, #c8a86a 60%, #9a7a4a 100%), radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 60%); }
.scn-constable-arrives .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffe8c0 0%, #e8c890 50%, #c8a870 100%); animation: ca-sky 20s ease-in-out infinite alternate; }
.scn-constable-arrives .horizon { position:absolute; bottom:45%; left:0; right:0; height:15%; background: linear-gradient(180deg, #b09870 0%, #8a7a5a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-constable-arrives .road { position:absolute; bottom:25%; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 40%, #4a3a1a 100%); clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%); }
.scn-constable-arrives .horseman { position:absolute; bottom:30%; left:40%; width:30px; height:45px; background: linear-gradient(180deg, #5a4a30 0%, #3a2a10 50%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ca-horseman 8s ease-in-out infinite; }
.scn-constable-arrives .dust-cloud { position:absolute; bottom:28%; left:55%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(200,180,140,.6) 0%, rgba(200,180,140,.2) 60%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: ca-dust 3s ease-in-out infinite; }
.scn-constable-arrives .tree { position:absolute; bottom:30%; right:15%; width:12px; height:50px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a20 100%); border-radius:20% 20% 0 0; transform-origin: bottom center; }
.scn-constable-arrives .tree::after { content:''; position:absolute; top:-15px; left:-15px; width:35px; height:30px; background: radial-gradient(ellipse, #4a7a2a 0%, #2a5a1a 60%, #1a3a0a 100%); border-radius:50%; animation: ca-tree 6s ease-in-out infinite alternate; }
.scn-constable-arrives .grass { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 50%, #1a3a1a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; }
@keyframes ca-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ca-horseman { 0% { transform: translateX(-20px) rotate(0) } 25% { transform: translateX(-10px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-10px) rotate(2deg) } 100% { transform: translateX(-20px) rotate(0) } }
@keyframes ca-dust { 0% { transform: translateY(0) scale(1); opacity:.7 } 50% { transform: translateY(-10px) scale(1.5); opacity:.4 } 100% { transform: translateY(0) scale(1); opacity:.7 } }
@keyframes ca-tree { 0%,100% { transform: rotate(0) } 50% { transform: rotate(-5deg) } }

.scn-siege-beaugency { background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 30%, #8a7050 60%, #5a4a30 100%), radial-gradient(ellipse at 50% 0%, #f0d8b0 0%, transparent 60%); }
.scn-siege-beaugency .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f2dbb8 0%, #d4b890 50%, #b09870 100%); animation: sb-sky 18s ease-in-out infinite alternate; }
.scn-siege-beaugency .wall { position:absolute; bottom:30%; left:50%; width:60%; height:40%; background: linear-gradient(90deg, #7a6a4a 0%, #5a4a2a 30%, #7a6a4a 70%, #5a4a2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); clip-path: polygon(0% 100%, 0% 20%, 10% 10%, 10% 80%, 20% 70%, 20% 5%, 30% 0%, 30% 50%, 40% 40%, 40% 0%, 50% 5%, 50% 60%, 60% 50%, 60% 10%, 70% 20%, 70% 70%, 80% 60%, 80% 15%, 90% 25%, 90% 80%, 100% 70%, 100% 100%); }
.scn-siege-beaugency .battering-ram { position:absolute; bottom:35%; left:15%; width:80px; height:12px; background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 100%); border-radius: 30%; transform-origin: left center; animation: sb-ram 4s ease-in-out infinite; }
.scn-siege-beaugency .battering-ram::after { content:''; position:absolute; top:-4px; right:-8px; width:12px; height:20px; background: #4a3020; border-radius: 20% 20% 0 0; transform: rotate(15deg); }
.scn-siege-beaugency .pent-house { position:absolute; bottom:38%; left:8%; width:40px; height:20px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a20 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: skewX(-5deg); }
.scn-siege-beaugency .soldier-group { position:absolute; bottom:25%; left:20%; width:50px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform: scale(0.9); }
.scn-siege-beaugency .ladder { position:absolute; bottom:30%; left:60%; width:6px; height:60px; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); transform: rotate(15deg); transform-origin: bottom center; animation: sb-ladder 5s ease-in-out infinite; }
.scn-siege-beaugency .cannon { position:absolute; bottom:20%; left:70%; width:50px; height:16px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 40% 10% 10% 40%; transform: rotate(-10deg); animation: sb-cannon 6s ease-in-out infinite; }
.scn-siege-beaugency .cannon::after { content:''; position:absolute; left:8px; top:2px; width:10px; height:10px; background: #8a6a30; border-radius: 50%; box-shadow: 0 0 20px #8a6a30; animation: sb-smoke 2s ease-in-out infinite; }
@keyframes sb-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sb-ram { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) rotate(2deg) } }
@keyframes sb-ladder { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(18deg) } }
@keyframes sb-cannon { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) translateY(2px) } }
@keyframes sb-smoke { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(3); opacity:.3 } 100% { transform: scale(1); opacity:.8 } }

.scn-beaugency-surrender { background: linear-gradient(180deg, #6a7a8a 0%, #8a9aaa 20%, #aabcce 40%, #c8d8e0 60%, #e8f0f0 80%, #f0ece0 100%), radial-gradient(ellipse at 50% 0%, #f4d8a4 0%, transparent 60%); }
.scn-beaugency-surrender .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a5a6a 0%, #7a8a9a 30%, #b8c8d0 50%, #e0e0d8 70%, #f0e8d0 100%); animation: bs-dawn 25s ease-in-out infinite alternate; }
.scn-beaugency-surrender .distant-army { position:absolute; bottom:50%; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 30% 70% 0 0 / 40% 50% 0 0; clip-path: polygon(0% 100%, 5% 20%, 10% 50%, 15% 10%, 20% 30%, 25% 15%, 30% 25%, 35% 5%, 40% 20%, 45% 30%, 50% 10%, 55% 25%, 60% 15%, 65% 35%, 70% 20%, 75% 10%, 80% 30%, 85% 15%, 90% 25%, 95% 10%, 100% 50%, 100% 100%); animation: bs-army 30s linear infinite alternate; }
.scn-beaugency-surrender .town-wall { position:absolute; bottom:20%; left:10%; width:80%; height:50%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 40%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
.scn-beaugency-surrender .gate { position:absolute; bottom:20%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-beaugency-surrender .garrison-column { position:absolute; bottom:18%; left:15%; width:50px; height:25px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; animation: bs-garrison 12s ease-in-out infinite; }
.scn-beaugency-surrender .herald { position:absolute; bottom:20%; left:45%; width:12px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; animation: bs-herald 8s ease-in-out infinite; }
.scn-beaugency-surrender .herald::after { content:''; position:absolute; top:-5px; left:-2px; width:16px; height:10px; background: linear-gradient(135deg, #c8a860 0%, #a08040 50%, #7a5a20 100%); border-radius: 20% 30% 10% 10%; transform: rotate(-15deg); animation: bs-flag 3s ease-in-out infinite alternate; }
@keyframes bs-dawn { 0% { background-position: 0% 0% } 50% { background-position: 10% 5% } 100% { background-position: 0% 0% } }
@keyframes bs-army { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes bs-garrison { 0%,100% { transform: translateX(0) } 50% { transform: translateX(10px) } }
@keyframes bs-herald { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-5px) rotate(-3deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-5px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bs-flag { 0% { transform: scaleX(1) rotate(-15deg) } 100% { transform: scaleX(1.3) rotate(-5deg) } }

/* crowd-at-bouchers */
.scn-crowd-at-bouchers {
  background:
    linear-gradient(180deg, #6ba3d4 0%, #b8d4e8 40%, #e8c99b 70%, #c28a4a 100%),
    radial-gradient(ellipse at 70% 20%, #f0d080 0%, transparent 50%);
}
.scn-crowd-at-bouchers .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #7bb3e0 0%, #cce0f0 60%, transparent 100%);
  animation: cab-sky 10s ease-in-out infinite alternate;
}
.scn-crowd-at-bouchers .sun {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe68a 0%, #ffd060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,214,96,0.6);
  animation: cab-sun 8s ease-in-out infinite alternate;
}
.scn-crowd-at-bouchers .house {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #8b5e3c 0%, #5a3a1e 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: cab-house 6s ease-in-out infinite;
}
.scn-crowd-at-bouchers .door {
  position: absolute; bottom: 30%; left: 36%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #4a2e1a 0%, #2e1a0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-crowd-at-bouchers .crowd {
  position: absolute; bottom: 30%; width: 100px; height: 60px;
  display: flex; flex-wrap: wrap; gap: 2px;
  filter: blur(1px);
}
.scn-crowd-at-bouchers .crowd-a {
  left: 10%;
  background: radial-gradient(ellipse at bottom, #3a2a1a 0%, #1a0e05 100%);
  animation: cab-crowd-sway 4s ease-in-out infinite alternate;
}
.scn-crowd-at-bouchers .crowd-b {
  right: 10%;
  background: radial-gradient(ellipse at bottom, #4a3a2a 0%, #2a1a0a 100%);
  animation: cab-crowd-sway 5s ease-in-out infinite alternate-reverse;
}
.scn-crowd-at-bouchers .banner {
  position: absolute; bottom: 38%; left: 32%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: cab-banner-wave 3s ease-in-out infinite;
}
@keyframes cab-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cab-sun {
  0% { transform: scale(0.95); box-shadow: 0 0 30px 15px rgba(255,214,96,0.5); }
  50% { transform: scale(1.05); box-shadow: 0 0 50px 25px rgba(255,214,96,0.8); }
  100% { transform: scale(0.98); box-shadow: 0 0 35px 18px rgba(255,214,96,0.6); }
}
@keyframes cab-house {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes cab-crowd-sway {
  0% { transform: translateX(0); }
  50% { transform: translateX(4px); }
  100% { transform: translateX(-2px); }
}
@keyframes cab-banner-wave {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}

/* second-peace-offer */
.scn-second-peace-offer {
  background:
    linear-gradient(180deg, #6ba3d4 0%, #9fc5e0 30%, #d4b88a 60%, #8b6e3e 100%),
    radial-gradient(ellipse at 60% 15%, #f0d080 0%, transparent 60%);
}
.scn-second-peace-offer .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8cc0e8 0%, #d4e0f0 70%, transparent 100%);
  animation: spo-sky 12s ease-in-out infinite alternate;
}
.scn-second-peace-offer .sun {
  position: absolute; top: 8%; left: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe68a 0%, #ffd060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,208,96,0.5);
  animation: spo-sun 9s ease-in-out infinite alternate;
}
.scn-second-peace-offer .horizon {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8b7040 0%, #5a4a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  animation: spo-horizon 20s ease-in-out infinite alternate;
}
.scn-second-peace-offer .bastion {
  position: absolute; bottom: 35%; right: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-second-peace-offer .tent {
  position: absolute; bottom: 35%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a30 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(1px);
}
.scn-second-peace-offer .tent-1 {
  left: 30%;
  animation: spo-tent 6s ease-in-out infinite alternate;
}
.scn-second-peace-offer .tent-2 {
  left: 42%;
  animation: spo-tent 7s ease-in-out infinite alternate-reverse;
  animation-delay: -2s;
}
.scn-second-peace-offer .rider {
  position: absolute; bottom: 30%; left: 15%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: spo-rider 8s ease-in-out infinite;
}
.scn-second-peace-offer .flag {
  position: absolute; bottom: 40%; right: 12%; width: 8px; height: 20px;
  background: #b84a2a;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: spo-flag 3s ease-in-out infinite;
}
@keyframes spo-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.95; }
  100% { opacity: 0.8; }
}
@keyframes spo-sun {
  0% { transform: scale(0.95); }
  50% { transform: scale(1.08); }
  100% { transform: scale(0.98); }
}
@keyframes spo-horizon {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(2px); }
}
@keyframes spo-tent {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes spo-rider {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(24px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes spo-flag {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-8deg); }
}

/* reconnoiter-bastions */
.scn-reconnoiter-bastions {
  background:
    linear-gradient(180deg, #5a8ab5 0%, #8cb8d4 30%, #b8c8a0 55%, #7a8a5a 100%),
    radial-gradient(ellipse at 50% 20%, #e0d4a0 0%, transparent 50%);
}
.scn-reconnoiter-bastions .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7ab0d8 0%, #c8e0f0 70%, transparent 100%);
  animation: reco-sky 15s ease-in-out infinite alternate;
}
.scn-reconnoiter-bastions .sun {
  position: absolute; top: 12%; right: 20%; width: 45px; height: 45px;
  background: radial-gradient(circle, #ffe68a 0%, #f0c060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(240,192,96,0.5);
  animation: reco-sun 10s ease-in-out infinite alternate;
}
.scn-reconnoiter-bastions .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: reco-hills 20s ease-in-out infinite alternate;
}
.scn-reconnoiter-bastions .bastion {
  position: absolute; bottom: 35%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 15% 15% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-reconnoiter-bastions .bastion-a {
  left: 20%;
  animation: reco-bastion 8s ease-in-out infinite alternate;
}
.scn-reconnoiter-bastions .bastion-b {
  right: 25%;
  animation: reco-bastion 10s ease-in-out infinite alternate-reverse;
  animation-delay: -3s;
}
.scn-reconnoiter-bastions .rider {
  position: absolute; bottom: 30%; left: 40%; width: 35px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: reco-rider 12s ease-in-out infinite;
}
.scn-reconnoiter-bastions .followers {
  position: absolute; bottom: 30%; right: 30%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at bottom, #2a1a0a 0%, transparent 100%);
  filter: blur(2px);
  animation: reco-followers 14s ease-in-out infinite alternate;
}
@keyframes reco-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes reco-sun {
  0% { transform: scale(0.95); }
  50% { transform: scale(1.05); }
  100% { transform: scale(0.98); }
}
@keyframes reco-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(2px); }
}
@keyframes reco-bastion {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes reco-rider {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(6px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(12px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(18px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(24px) translateY(0) rotate(0deg); }
}
@keyframes reco-followers {
  0% { transform: translateX(0); }
  50% { transform: translateX(8px); }
  100% { transform: translateX(-4px); }
}

/* faith-vs-reality */
.scn-faith-vs-reality {
  background:
    linear-gradient(180deg, #e8e0d0 0%, #d8c8b0 40%, #c0a880 100%),
    radial-gradient(ellipse at 50% 30%, #f0e8d0 0%, transparent 70%);
}
.scn-faith-vs-reality .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e0d8c8 0%, #c8b8a0 100%);
}
.scn-faith-vs-reality .window {
  position: absolute; top: 15%; left: 50%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at center, #e0f0ff 0%, #a0c0e0 100%);
  border: 4px solid #8a7a6a;
  border-radius: 8px;
  transform: translateX(-50%);
  box-shadow: inset 0 0 20px rgba(200,230,255,0.6);
  animation: fvr-window 6s ease-in-out infinite alternate;
}
.scn-faith-vs-reality .light-beam {
  position: absolute; top: 20%; left: 42%; width: 60px; height: 80px;
  background: linear-gradient(180deg, rgba(255,250,230,0.5) 0%, transparent 100%);
  filter: blur(6px);
  transform: rotate(10deg);
  animation: fvr-light 8s ease-in-out infinite alternate;
}
.scn-faith-vs-reality .table {
  position: absolute; bottom: 25%; left: 30%; width: 100px; height: 20px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-faith-vs-reality .chair {
  position: absolute; bottom: 22%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-faith-vs-reality .chair-a {
  left: 25%;
  animation: fvr-chair 7s ease-in-out infinite alternate;
}
.scn-faith-vs-reality .chair-b {
  right: 25%;
  animation: fvr-chair 8s ease-in-out infinite alternate-reverse;
}
.scn-faith-vs-reality .figure {
  position: absolute; bottom: 24%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
}
.scn-faith-vs-reality .figure-a {
  left: 28%;
  animation: fvr-figure-a 9s ease-in-out infinite;
}
.scn-faith-vs-reality .figure-b {
  right: 28%;
  animation: fvr-figure-b 10s ease-in-out infinite;
}
@keyframes fvr-window {
  0% { opacity: 0.8; box-shadow: inset 0 0 10px rgba(200,230,255,0.4); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(200,230,255,0.8); }
  100% { opacity: 0.9; box-shadow: inset 0 0 15px rgba(200,230,255,0.5); }
}
@keyframes fvr-light {
  0% { transform: rotate(8deg) scaleX(0.95); opacity: 0.4; }
  50% { transform: rotate(12deg) scaleX(1.05); opacity: 0.7; }
  100% { transform: rotate(10deg) scaleX(0.98); opacity: 0.5; }
}
@keyframes fvr-chair {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fvr-figure-a {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(0deg); }
  50% { transform: translateX(0) translateY(0) rotate(1deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes fvr-figure-b {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  25% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(2px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

.scn-martyr-legends { background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 40%, #4a2a1a 100%), radial-gradient(ellipse at 50% 0%, #6a3a1a 0%, transparent 60%); }
.scn-martyr-legends .stake { position:absolute; bottom:30%; left:50%; width:12px; height:100px; margin-left:-6px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px 4px 2px 2px; }
.scn-martyr-legends .fire-1 { position:absolute; bottom:25%; left:50%; width:30px; height:50px; margin-left:-15px; background: radial-gradient(ellipse at 50% 100%, #e25822 0%, #b33c00 40%, transparent 70%); animation: ml-fire1 0.6s ease-in-out infinite alternate; }
.scn-martyr-legends .fire-2 { position:absolute; bottom:20%; left:50%; width:20px; height:60px; margin-left:-10px; background: radial-gradient(ellipse at 50% 100%, #ffbf00 0%, #e25822 50%, transparent 80%); animation: ml-fire2 0.8s ease-in-out infinite alternate; animation-delay:0.3s; }
.scn-martyr-legends .dove { position:absolute; bottom:45%; left:50%; width:24px; height:24px; margin-left:-12px; background: radial-gradient(circle at 50% 40%, #f0e8e0 0%, #c8b8a8 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ml-dove 7s ease-in-out infinite; }
.scn-martyr-legends .heart { position:absolute; bottom:28%; left:50%; width:16px; height:14px; margin-left:-8px; background: radial-gradient(circle at 50% 50%, #c8553d 0%, #a0461a 60%, transparent 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; transform: rotate(-45deg); animation: ml-heart 4s ease-in-out infinite; }
.scn-martyr-legends .halo { position:absolute; bottom:35%; left:50%; width:40px; height:40px; margin-left:-20px; background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 70%); border-radius:50%; animation: ml-halo 5s ease-in-out infinite; }
@keyframes ml-fire1 { 0% { transform: scaleY(1) translateY(0); opacity:0.8; } 50% { transform: scaleY(1.2) translateY(-4px); opacity:1; } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.7; } }
@keyframes ml-fire2 { 0% { transform: scaleX(1) scaleY(1); opacity:0.6; } 50% { transform: scaleX(1.1) scaleY(1.3); opacity:1; } 100% { transform: scaleX(0.9) scaleY(0.8); opacity:0.5; } }
@keyframes ml-dove { 0% { transform: translateY(0) rotate(-5deg); opacity:0; } 20% { opacity:0.6; } 50% { transform: translateY(-30px) rotate(5deg); opacity:1; } 100% { transform: translateY(-60px) rotate(-3deg); opacity:0; } }
@keyframes ml-heart { 0% { transform: rotate(-45deg) scale(1); opacity:0.7; } 50% { transform: rotate(-45deg) scale(1.3); opacity:1; } 100% { transform: rotate(-45deg) scale(0.9); opacity:0.6; } }
@keyframes ml-halo { 0% { transform: scale(1); opacity:0.4; } 50% { transform: scale(1.5); opacity:0.8; } 100% { transform: scale(1); opacity:0.4; } }

.scn-bad-ends { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #2a1a1a 100%), radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%); }
.scn-bad-ends .cell-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border:4px solid #2a2a3a; } /* could use box-shadow */
.scn-bad-ends .bars-left { position:absolute; top:0; bottom:0; left:10%; width:4px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); box-shadow: 8px 0 0 #4a4a5a, 16px 0 0 #2a2a3a; animation: be-bars 5s ease-in-out infinite alternate; }
.scn-bad-ends .bars-right { position:absolute; top:0; bottom:0; right:10%; width:4px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); box-shadow: -8px 0 0 #4a4a5a, -16px 0 0 #2a2a3a; animation: be-bars 5s ease-in-out infinite alternate-reverse; }
.scn-bad-ends .chain { position:absolute; top:30%; left:50%; width:80px; height:8px; margin-left:-40px; background: repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 6px, #4a3a2a 6px, #4a3a2a 12px); border-radius:4px; animation: be-chain 6s ease-in-out infinite; }
.scn-bad-ends .noose { position:absolute; top:20%; left:50%; width:20px; height:40px; margin-left:-10px; background: radial-gradient(circle at 50% 0%, #6a5a4a 0%, transparent 100%); border: 2px solid #5a4a3a; border-radius: 50% 50% 0 0; animation: be-noose 8s ease-in-out infinite; }
.scn-bad-ends .figure { position:absolute; bottom:10%; left:50%; width:30px; height:70px; margin-left:-15px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: be-figure 12s ease-in-out infinite; }
@keyframes be-bars { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.5; } }
@keyframes be-chain { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(5px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes be-noose { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.1); } 100% { transform: translateY(0) scaleY(0.95); } }
@keyframes be-figure { 0% { transform: translateY(0) rotate(0deg); opacity:0.5; } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); opacity:0.8; } 75% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); opacity:0.5; } }

.scn-false-jeanne-sarmaize { background: linear-gradient(180deg, #7aadff 0%, #c8d8ff 50%, #fff4d9 100%), radial-gradient(ellipse at 50% 100%, #f0e0c0 0%, transparent 70%); }
.scn-false-jeanne-sarmaize .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7aadff 0%, transparent 100%); animation: fj-sky 15s ease-in-out infinite alternate; }
.scn-false-jeanne-sarmaize .cottage-wall { position:absolute; bottom:30%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #c8a878 0%, #a88858 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.2); }
.scn-false-jeanne-sarmaize .thatch-roof { position:absolute; bottom:65%; left:17%; right:17%; height:10%; background: repeating-linear-gradient(90deg, #b89860 0px, #b89860 8px, #a08050 8px, #a08050 16px); border-radius: 20% 20% 0 0; }
.scn-false-jeanne-sarmaize .figure-one { position:absolute; bottom:25%; left:35%; width:18px; height:40px; margin-left:-9px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fj-figure1 3s ease-in-out infinite; }
.scn-false-jeanne-sarmaize .figure-two { position:absolute; bottom:25%; right:35%; width:18px; height:40px; margin-right:-9px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fj-figure2 3.5s ease-in-out infinite; animation-delay:0.2s; }
.scn-false-jeanne-sarmaize .shadow-ground { position:absolute; bottom:20%; left:25%; right:25%; height:10px; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 30%, rgba(0,0,0,0.3) 70%, transparent 100%); border-radius:50%; animation: fj-shadow 4s ease-in-out infinite; }
@keyframes fj-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes fj-figure1 { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes fj-figure2 { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes fj-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(0.8); opacity:0.8; } 100% { transform: scaleX(1.1); opacity:0.3; } }

.scn-tennis-game { background: linear-gradient(180deg, #70c0ff 0%, #a0d8ff 40%, #90d090 70%, #60a060 100%), radial-gradient(ellipse at 50% 0%, #fff 0%, transparent 50%); }
.scn-tennis-game .grass { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #80c080 0%, #60a060 100%); border-radius: 20% 20% 0 0; }
.scn-tennis-game .net { position:absolute; bottom:30%; left:45%; right:45%; height:20%; background: repeating-linear-gradient(0deg, #fff 0px, #fff 2px, transparent 2px, transparent 6px); border: 2px solid #fff; border-radius: 4px; animation: tg-net 10s ease-in-out infinite; }
.scn-tennis-game .ball { position:absolute; bottom:45%; left:50%; width:14px; height:14px; margin-left:-7px; background: radial-gradient(circle at 40% 40%, #ffcc00 0%, #e6a800 100%); border-radius:50%; animation: tg-ball 2s ease-in-out infinite; }
.scn-tennis-game .player-1 { position:absolute; bottom:25%; left:25%; width:16px; height:50px; margin-left:-8px; background: linear-gradient(180deg, #3060c0 0%, #2040a0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tg-player1 1.5s ease-in-out infinite; }
.scn-tennis-game .player-2 { position:absolute; bottom:25%; right:25%; width:16px; height:50px; margin-right:-8px; background: linear-gradient(180deg, #c04030 0%, #a03020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tg-player2 1.8s ease-in-out infinite; animation-delay:0.4s; }
.scn-tennis-game .sun { position:absolute; top:8%; right:12%; width:40px; height:40px; background: radial-gradient(circle, #ffe680 0%, #ffcc00 40%, transparent 70%); border-radius:50%; animation: tg-sun 20s linear infinite; }
@keyframes tg-net { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes tg-ball { 0% { transform: translate(0, 0) scale(1); } 25% { transform: translate(40px, -20px) scale(1.2); } 50% { transform: translate(0, 0) scale(0.8); } 75% { transform: translate(-40px, -20px) scale(1.1); } 100% { transform: translate(0, 0) scale(1); } }
@keyframes tg-player1 { 0% { transform: translateY(0) rotate(-5deg); } 30% { transform: translateY(-8px) rotate(10deg); } 60% { transform: translateY(-4px) rotate(-3deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes tg-player2 { 0% { transform: translateY(0) rotate(5deg); } 30% { transform: translateY(-6px) rotate(-10deg); } 60% { transform: translateY(-2px) rotate(4deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes tg-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-10px) scale(0.95); } 100% { transform: translateX(0) scale(1); } }

.scn-berruyer-memorandum {
  background: linear-gradient(180deg, #f5e6c8 0%, #c8b896 50%, #a0907a 100%),
              radial-gradient(ellipse at 70% 30%, #ffffff 0%, transparent 60%);
}
.scn-berruyer-memorandum .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #e8dcc8 0%, #b8aa92 100%);
  animation: ber-room 8s ease-in-out infinite alternate;
}
.scn-berruyer-memorandum .window-light {
  position: absolute; top: 5%; left: 60%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 30% 20%, #fffde6 0%, transparent 70%);
  filter: blur(12px);
  animation: ber-light 6s ease-in-out infinite alternate;
}
.scn-berruyer-memorandum .kneeling-figure {
  position: absolute; bottom: 12%; left: 28%; width: 30px; height: 70px;
  background: radial-gradient(ellipse 50% 40% at 50% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ber-figure 5s ease-in-out infinite;
}
.scn-berruyer-memorandum .book {
  position: absolute; bottom: 10%; left: 36%; width: 24px; height: 18px;
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-10deg);
  animation: ber-book 4s ease-in-out infinite alternate;
}
.scn-berruyer-memorandum .halo-glow {
  position: absolute; top: 8%; left: 32%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffedb0 0%, #e0c080 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #e0c080;
  animation: ber-halo 7s ease-in-out infinite alternate;
}
.scn-berruyer-memorandum .chair {
  position: absolute; bottom: 10%; left: 55%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ber-chair 10s ease-in-out infinite;
}
.scn-berruyer-memorandum .dust-a, .dust-b {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #fff9e0 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ber-dust 18s linear infinite;
}
.scn-berruyer-memorandum .dust-a { top: 20%; left: 40%; animation-delay: 0s; }
.scn-berruyer-memorandum .dust-b { top: 30%; left: 60%; animation-delay: -6s; width: 8px; height: 8px; }
@keyframes ber-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ber-light { 0% { transform: scale(1); opacity:0.7 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(0.95); opacity:0.6 } }
@keyframes ber-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 ber-book { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-12deg) translateY(0) } }
@keyframes ber-halo { 0% { transform: scale(0.9); opacity:0.6 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:0.7 } }
@keyframes ber-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ber-dust { 0% { transform: translateY(0) translateX(0); opacity:0.4 } 25% { transform: translateY(-20px) translateX(10px); opacity:0.8 } 50% { transform: translateY(-40px) translateX(-5px); opacity:0.3 } 75% { transform: translateY(-60px) translateX(15px); opacity:0.6 } 100% { transform: translateY(-80px) translateX(0); opacity:0 } }

.scn-demon-possession {
  background: linear-gradient(180deg, #0c0015 0%, #1a0a2e 30%, #0a001e 70%, #000010 100%),
              radial-gradient(ellipse at 50% 80%, #2a1a3e 0%, transparent 70%);
}
.scn-demon-possession .cell-dark {
  position: absolute; inset: 0;
  background: linear-gradient(45deg, #0a0015 0%, #150a20 100%);
  animation: dem-dark 15s ease-in-out infinite alternate;
}
.scn-demon-possession .torch-glow {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 120px;
  background: radial-gradient(ellipse at 50% 100%, #ff6a30 0%, #d04010 30%, transparent 70%);
  filter: blur(8px);
  animation: dem-torch 4s ease-in-out infinite alternate;
}
.scn-demon-possession .possessed-figure {
  position: absolute; bottom: 15%; left: 30%; width: 60px; height: 90px;
  background: radial-gradient(ellipse 40% 50% at 50% 30%, #2a1a3e 0%, #0a0015 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg) scale(0.9);
  animation: dem-possessed 3s ease-in-out infinite;
}
.scn-demon-possession .chain-left {
  position: absolute; top: 20%; left: 20%; width: 8px; height: 130px;
  background: linear-gradient(180deg, #8a8a8a 0%, #4a4a4a 50%, #2a2a2a 100%);
  border-radius: 4px;
  transform-origin: top center;
  animation: dem-chain 2s ease-in-out infinite alternate;
}
.scn-demon-possession .chain-right {
  position: absolute; top: 20%; right: 20%; width: 8px; height: 130px;
  background: linear-gradient(180deg, #8a8a8a 0%, #4a4a4a 50%, #2a2a2a 100%);
  border-radius: 4px;
  transform-origin: top center;
  animation: dem-chain 2.5s ease-in-out infinite alternate-reverse;
}
.scn-demon-possession .exorcist-hand {
  position: absolute; top: 10%; left: 55%; width: 40px; height: 50px;
  background: radial-gradient(ellipse 50% 60% at 30% 40%, #c8a080 0%, #8a6040 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: dem-hand 1.5s ease-in-out infinite alternate;
}
.scn-demon-possession .shadow-wisp {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(30,10,50,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: dem-wisp 5s ease-in-out infinite alternate;
}
.scn-demon-possession .blood-stains {
  position: absolute; bottom: 10%; left: 25%; width: 70px; height: 30px;
  background: radial-gradient(circle at 30% 40%, #5e1a1d 0%, transparent 60%),
              radial-gradient(circle at 70% 60%, #702243 0%, transparent 50%);
  filter: blur(2px);
  animation: dem-blood 8s ease-in-out infinite alternate;
}
@keyframes dem-dark { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes dem-torch { 0% { transform: translateX(-50%) scale(0.9); opacity:0.7 } 50% { transform: translateX(-50%) scale(1.1); opacity:1 } 100% { transform: translateX(-50%) scale(0.95); opacity:0.6 } }
@keyframes dem-possessed { 0% { transform: rotate(15deg) scale(0.9) translateY(0) } 25% { transform: rotate(20deg) scale(0.92) translateY(-3px) } 50% { transform: rotate(10deg) scale(0.88) translateY(0) } 75% { transform: rotate(18deg) scale(0.9) translateY(-1px) } 100% { transform: rotate(15deg) scale(0.9) translateY(0) } }
@keyframes dem-chain { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes dem-hand { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-5px) } 100% { transform: rotate(-25deg) translateY(0) } }
@keyframes dem-wisp { 0% { transform: translateX(0) scale(1); opacity:0.3 } 50% { transform: translateX(10px) scale(1.2); opacity:0.7 } 100% { transform: translateX(-10px) scale(0.9); opacity:0.2 } }
@keyframes dem-blood { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.3 } }

.scn-queen-hears {
  background: linear-gradient(180deg, #fdf4e3 0%, #e8d8bf 40%, #c8b89a 100%),
              radial-gradient(ellipse at 60% 30%, #fffae8 0%, transparent 70%);
}
.scn-queen-hears .chamber-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f0e6d0 0%, #d4c4a8 100%);
  animation: que-bg 12s ease-in-out infinite alternate;
}
.scn-queen-hears .throne {
  position: absolute; bottom: 8%; left: 15%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #b8966a 0%, #7a5a3a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 15% 15%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: que-throne 15s ease-in-out infinite alternate;
}
.scn-queen-hears .queen-silhouette {
  position: absolute; bottom: 12%; left: 20%; width: 35px; height: 80px;
  background: radial-gradient(ellipse 50% 40% at 50% 30%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: que-queen 6s ease-in-out infinite alternate;
}
.scn-queen-hears .prophetess {
  position: absolute; bottom: 12%; left: 55%; width: 30px; height: 70px;
  background: radial-gradient(ellipse 50% 40% at 50% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(5deg);
  animation: que-prophet 7s ease-in-out infinite;
}
.scn-queen-hears .curtain-left {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(90deg, #8a7a5a 0%, #c8b896 40%, transparent 100%);
  transform-origin: left center;
  animation: que-curtain 9s ease-in-out infinite alternate;
}
.scn-queen-hears .curtain-right {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(270deg, #8a7a5a 0%, #c8b896 40%, transparent 100%);
  transform-origin: right center;
  animation: que-curtain 9s ease-in-out infinite alternate-reverse;
}
.scn-queen-hears .window-ray {
  position: absolute; top: 5%; left: 40%; width: 60%; height: 50%;
  background: radial-gradient(ellipse at 30% 20%, #fffbe8 0%, transparent 70%);
  filter: blur(15px);
  animation: que-ray 11s ease-in-out infinite alternate;
}
@keyframes que-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes que-throne { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes que-queen { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes que-prophet { 0% { transform: translateX(-50%) rotate(5deg) translateY(0) } 25% { transform: translateX(-48%) rotate(3deg) translateY(-2px) } 50% { transform: translateX(-52%) rotate(6deg) translateY(0) } 75% { transform: translateX(-50%) rotate(4deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(5deg) translateY(0) } }
@keyframes que-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(0.98) } }
@keyframes que-ray { 0% { transform: scale(0.95); opacity:0.6 } 50% { transform: scale(1.05); opacity:0.9 } 100% { transform: scale(1); opacity:0.7 } }

.scn-officers-visit {
  background: linear-gradient(180deg, #1f1208 0%, #2b1b0e 30%, #0f0a05 100%),
              radial-gradient(ellipse at 50% 70%, #2a1a10 0%, transparent 60%);
}
.scn-officers-visit .room-dim {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1e140a 0%, #0f0a05 100%);
  animation: off-room 18s ease-in-out infinite alternate;
}
.scn-officers-visit .door-frame {
  position: absolute; top: 10%; right: 8%; width: 80px; height: 150px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  transform: perspective(600px) rotateY(10deg);
  animation: off-door 12s ease-in-out infinite alternate;
}
.scn-officers-visit .officer-left {
  position: absolute; bottom: 15%; left: 20%; width: 30px; height: 80px;
  background: radial-gradient(ellipse 50% 40% at 50% 30%, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: off-officer 4s ease-in-out infinite alternate;
}
.scn-officers-visit .officer-right {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 80px;
  background: radial-gradient(ellipse 50% 40% at 50% 30%, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: off-officer 4.5s ease-in-out infinite alternate-reverse;
}
.scn-officers-visit .lantern-light {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 25px;
  background: radial-gradient(circle, #ffb040 0%, #d08020 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 6px #d08020, 0 0 60px 12px rgba(208,128,32,0.3);
  animation: off-lantern 3s ease-in-out infinite alternate;
}
.scn-officers-visit .shadow-on-wall {
  position: absolute; top: 20%; left: 30%; width: 100px; height: 120px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(10px);
  animation: off-shadow 7s ease-in-out infinite alternate;
}
.scn-officers-visit .floor-board {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e08 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  border-radius: 20% 20% 0 0;
  animation: off-floor 20s ease-in-out infinite alternate;
}
@keyframes off-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes off-door { 0% { transform: perspective(600px) rotateY(10deg) } 50% { transform: perspective(600px) rotateY(5deg) } 100% { transform: perspective(600px) rotateY(12deg) } }
@keyframes off-officer { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes off-lantern { 0% { transform: scale(0.9); opacity:0.6 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:0.7 } }
@keyframes off-shadow { 0% { transform: scaleX(1) translateX(0); opacity:0.4 } 50% { transform: scaleX(1.1) translateX(5px); opacity:0.7 } 100% { transform: scaleX(0.9) translateX(-5px); opacity:0.3 } }
@keyframes off-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* scene fasting-and-visions */
.scn-fasting-and-visions {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #4a3a2a 100%), 
              radial-gradient(ellipse at 50% 60%, #5a4a2a66 0%, transparent 60%);
}
.scn-fasting-and-visions .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%);
  border-radius: 0 0 20% 20%;
  animation: fv-wall 12s ease-in-out infinite alternate;
}
.scn-fasting-and-visions .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-fasting-and-visions .figure-kneel {
  position: absolute; bottom: 20%; left: 45%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fv-figure 3s ease-in-out infinite;
}
.scn-fasting-and-visions .candle-flame {
  position: absolute; bottom: 38%; left: 38%; width: 8px; height: 14px;
  background: radial-gradient(circle at 50% 30%, #ffb050 0%, #c06030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c06030, 0 0 40px 12px rgba(192,96,48,0.4);
  animation: fv-flame 1.5s ease-in-out infinite alternate;
}
.scn-fasting-and-visions .candle-base {
  position: absolute; bottom: 38%; left: 38%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 2px;
  transform: translateY(-18px);
}
.scn-fasting-and-visions .shadow-flicker {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: fv-shadow 2s ease-in-out infinite alternate;
}
.scn-fasting-and-visions .window-cross {
  position: absolute; top: 15%; right: 12%; width: 30px; height: 40px;
  border: 2px solid #5a4a3a66;
  border-radius: 4px;
  background: radial-gradient(ellipse at 50% 50%, #3a2a1a33 0%, transparent 70%);
  box-shadow: 0 0 30px 5px rgba(90,74,58,0.3);
  animation: fv-window 10s ease-in-out infinite alternate;
}
.scn-fasting-and-visions .vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 60%, #1a1210 100%);
  pointer-events: none;
}
@keyframes fv-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes fv-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(0.5deg); }
  50% { transform: translateY(0) rotate(-0.5deg); }
  75% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fv-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.9; box-shadow: 0 0 20px 6px #c06030; }
  50% { transform: scaleY(1.2) scaleX(0.8); opacity: 1; box-shadow: 0 0 30px 10px #d07040; }
  100% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.85; box-shadow: 0 0 18px 4px #b05030; }
}
@keyframes fv-shadow {
  0% { transform: scale(1) rotate(0deg); }
  100% { transform: scale(1.05) rotate(2deg); }
}
@keyframes fv-window {
  0% { opacity: 0.3; }
  100% { opacity: 0.6; }
}

/* scene voice-direction */
.scn-voice-direction {
  background: linear-gradient(180deg, #1a2028 0%, #2a3038 40%, #3a4048 100%),
              radial-gradient(ellipse at 70% 50%, #4a5a6a33 0%, transparent 60%);
}
.scn-voice-direction .bg-room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a3038 0%, #1a2028 50%, #252a30 100%);
  border-radius: 0 0 10% 10%;
}
.scn-voice-direction .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4048 0%, #1a2028 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-voice-direction .figure-profile {
  position: absolute; bottom: 18%; left: 25%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 20% 40% 40% 20% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: vd-figure 8s ease-in-out infinite alternate;
}
.scn-voice-direction .light-beam {
  position: absolute; top: 10%; right: 20%; width: 120px; height: 200px;
  background: linear-gradient(135deg, rgba(200,180,140,0.3) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: vd-beam 10s ease-in-out infinite alternate;
}
.scn-voice-direction .light-glow {
  position: absolute; top: 5%; right: 25%; width: 80px; height: 80px;
  background: radial-gradient(circle, #c8b48c66 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(200,180,140,0.2);
  animation: vd-glow 8s ease-in-out infinite alternate;
}
.scn-voice-direction .shadow-right {
  position: absolute; bottom: 18%; left: 10%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(3px);
  animation: vd-shadow 6s ease-in-out infinite alternate;
}
.scn-voice-direction .cross-glow {
  position: absolute; top: 8%; right: 30%; width: 4px; height: 4px;
  background: #e0d0b0;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #e0d0b0, 0 0 24px 8px rgba(224,208,176,0.4);
  animation: vd-cross 4s ease-in-out infinite alternate;
}
.scn-voice-direction .particle-1,
.scn-voice-direction .particle-2 {
  position: absolute; width: 3px; height: 3px;
  background: #e0d0b0aa;
  border-radius: 50%;
  filter: blur(1px);
  animation: vd-particle linear infinite;
}
.scn-voice-direction .particle-1 { top: 30%; right: 40%; animation-duration: 12s; animation-delay: 0s; }
.scn-voice-direction .particle-2 { top: 20%; right: 50%; animation-duration: 15s; animation-delay: -5s; }

@keyframes vd-figure {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes vd-beam {
  0% { opacity: 0.4; transform: scale(0.95); }
  50% { opacity: 0.7; transform: scale(1); }
  100% { opacity: 0.5; transform: scale(0.98); }
}
@keyframes vd-glow {
  0% { opacity: 0.3; transform: scale(1); }
  100% { opacity: 0.8; transform: scale(1.2); }
}
@keyframes vd-shadow {
  0% { transform: translateX(0) scale(1); }
  100% { transform: translateX(5px) scale(1.1); }
}
@keyframes vd-cross {
  0% { opacity: 0.5; box-shadow: 0 0 12px 4px #e0d0b0; }
  100% { opacity: 1; box-shadow: 0 0 20px 8px #e0d0b0; }
}
@keyframes vd-particle {
  0% { transform: translate(0, 0); opacity: 0; }
  20% { opacity: 1; }
  100% { transform: translate(-100px, 100px); opacity: 0; }
}

/* scene right-side-hallucination */
.scn-right-side-hallucination {
  background: linear-gradient(180deg, #1a1212 0%, #2a1a1a 40%, #3a2a2a 100%),
              radial-gradient(ellipse at 70% 40%, #5a2a2a44 0%, transparent 70%);
}
.scn-right-side-hallucination .bg-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1212 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.8);
}
.scn-right-side-hallucination .floor-uneven {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-right-side-hallucination .figure-turned {
  position: absolute; bottom: 25%; left: 35%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #0a0808 0%, #1a1210 100%);
  border-radius: 40% 20% 20% 40% / 60% 30% 30% 60%;
  transform: rotate(10deg);
  animation: rh-figure 2.5s ease-in-out infinite alternate;
}
.scn-right-side-hallucination .light-origin {
  position: absolute; top: 15%; right: 20%; width: 20px; height: 20px;
  background: radial-gradient(circle, #e0c8a0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #e0c8a0, 0 0 80px 30px rgba(224,200,160,0.3);
  animation: rh-origin 3s ease-in-out infinite alternate;
}
.scn-right-side-hallucination .light-ray {
  position: absolute; top: 25%; right: 25%; width: 100px; height: 150px;
  background: linear-gradient(135deg, rgba(224,200,160,0.15) 0%, transparent 70%);
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
  transform-origin: top right;
  animation: rh-ray 2s ease-in-out infinite alternate;
}
.scn-right-side-hallucination .shadow-distort {
  position: absolute; bottom: 20%; left: 20%; width: 70px; height: 90px;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.7) 0%, transparent 70%);
  filter: blur(5px);
  animation: rh-shadow 3s ease-in-out infinite alternate;
}
.scn-right-side-hallucination .wall-crack {
  position: absolute; top: 10%; left: 10%; width: 2px; height: 40px;
  background: #2a1a1a;
  box-shadow: 0 0 4px #1a1212;
  transform: rotate(-15deg);
  animation: rh-crack 6s ease-in-out infinite alternate;
}

@keyframes rh-figure {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-3px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes rh-origin {
  0% { opacity: 0.6; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.1); }
}
@keyframes rh-ray {
  0% { opacity: 0.2; transform: rotate(0deg) scale(0.95); }
  100% { opacity: 0.6; transform: rotate(5deg) scale(1); }
}
@keyframes rh-shadow {
  0% { transform: translateX(0) scale(1); }
  100% { transform: translateX(8px) scale(1.15); }
}
@keyframes rh-crack {
  0% { opacity: 0.3; transform: rotate(-15deg); }
  100% { opacity: 0.8; transform: rotate(-10deg); }
}

/* scene charcot-theory */
.scn-charcot-theory {
  background: linear-gradient(180deg, #e8e4d8 0%, #d0ccc0 40%, #b8b4a8 100%),
              radial-gradient(ellipse at 50% 40%, #ffffff33 0%, transparent 70%);
}
.scn-charcot-theory .bg-clinic {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0ece0 0%, #e0dcd0 100%);
  box-shadow: inset 0 0 40px #c8c4b8;
}
.scn-charcot-theory .floor-checker {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(45deg, #d0ccc0 0px, #d0ccc0 20px, #c0bcb0 20px, #c0bcb0 40px);
  opacity: 0.4;
}
.scn-charcot-theory .figure-patient {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #c8c4b8 0%, #a8a498 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 3px 0 0 #b0aca0;
  animation: ct-patient 10s ease-in-out infinite alternate;
}
.scn-charcot-theory .doctor-silhouette {
  position: absolute; bottom: 20%; right: 25%; width: 45px; height: 75px;
  background: linear-gradient(180deg, #2a2820 0%, #1a1810 100%);
  border-radius: 20% 30% 30% 20% / 60% 50% 50% 60%;
  animation: ct-doctor 12s ease-in-out infinite alternate;
}
.scn-charcot-theory .light-bright {
  position: absolute; top: 5%; left: 50%; width: 120px; height: 200px;
  background: linear-gradient(135deg, #ffffff33 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 60% 100%, 40% 100%);
  animation: ct-light 15s ease-in-out infinite alternate;
}
.scn-charcot-theory .shadow-left {
  position: absolute; bottom: 18%; left: 15%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, #a09c9033 0%, transparent 70%);
  filter: blur(4px);
  animation: ct-shadow 8s ease-in-out infinite alternate;
}
.scn-charcot-theory .chart-board {
  position: absolute; top: 12%; left: 10%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c8c4b8 0%, #b0aca0 100%);
  border: 1px solid #a09c90;
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.1);
}
.scn-charcot-theory .curtain {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(135deg, #d0ccc0 0%, #c0bcb0 50%, #a8a498 100%);
  border-left: 1px solid #b8b4a8;
  animation: ct-curtain 20s ease-in-out infinite alternate;
}

@keyframes ct-patient {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ct-doctor {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes ct-light {
  0% { opacity: 0.6; transform: scale(0.98); }
  100% { opacity: 1; transform: scale(1.02); }
}
@keyframes ct-shadow {
  0% { transform: scale(1) translateX(0); opacity: 0.3; }
  100% { transform: scale(1.05) translateX(5px); opacity: 0.5; }
}
@keyframes ct-curtain {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(0.95); }
}

/* Scene: after-saint-loup */
.scn-after-saint-loup {
  background: linear-gradient(180deg, #0b1026 0%, #151e3a 30%, #1a2640 60%, #0d1a30 100%),
              radial-gradient(ellipse at 50% 100%, #2b3a5a 0%, transparent 70%);
}
.scn-after-saint-loup .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #1a2640 0%, transparent 100%); animation: asp-sky 8s ease-in-out infinite alternate; }
.scn-after-saint-loup .star-field { position: absolute; inset: 0 0 60% 0; background: radial-gradient(1px 1px at 20% 15%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 40% 8%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 60% 22%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 80% 12%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 10% 30%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 70% 35%, #fff 0%, transparent 100%); animation: asp-stars 4s ease-in-out infinite alternate; }
.scn-after-saint-loup .moon { position: absolute; top: 12%; left: 70%; width: 40px; height: 40px; background: radial-gradient(circle, #e8e4ff 0%, #b8c0e0 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,210,255,0.3); animation: asp-moon 12s ease-in-out infinite alternate; }
.scn-after-saint-loup .tent { position: absolute; bottom: 30%; left: 30%; width: 100px; height: 60px; background: linear-gradient(180deg, #3a2e1a 0%, #2a2010 100%); border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%; clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); box-shadow: 0 6px 12px rgba(0,0,0,0.6); animation: asp-tent 6s ease-in-out infinite; }
.scn-after-saint-loup .fire { position: absolute; bottom: 27%; left: 55%; width: 14px; height: 20px; background: radial-gradient(circle at 50% 80%, #ffa040 0%, #ff6020 50%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px #ff8020, 0 0 40px 15px rgba(255,128,32,0.3); animation: asp-fire 0.8s ease-in-out infinite alternate; }
.scn-after-saint-loup .figure-kneel { position: absolute; bottom: 24%; left: 38%; width: 16px; height: 30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: asp-kneel 5s ease-in-out infinite; }
.scn-after-saint-loup .figure-stand { position: absolute; bottom: 26%; left: 50%; width: 14px; height: 36px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: asp-stand 4s ease-in-out infinite; }
@keyframes asp-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes asp-stars { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes asp-moon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes asp-tent { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01) translateY(-2px); } }
@keyframes asp-fire { 0% { transform: scaleY(1) translateY(0); opacity: 0.9; } 50% { transform: scaleY(1.15) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.9) translateY(1px); opacity: 0.8; } }
@keyframes asp-kneel { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes asp-stand { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }

/* Scene: ascension-instructions */
.scn-ascension-instructions {
  background: linear-gradient(180deg, #0d1128 0%, #1a2240 40%, #2c3560 70%, #151e3a 100%),
              radial-gradient(ellipse at 50% 100%, #3a4a6a 0%, transparent 70%);
}
.scn-ascension-instructions .night-sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #1a2240 0%, transparent 100%); animation: as-night 10s ease-in-out infinite alternate; }
.scn-ascension-instructions .moon-glow { position: absolute; top: 10%; left: 75%; width: 50px; height: 50px; background: radial-gradient(circle, #d4d8f0 0%, #a0a8d0 40%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(180,190,220,0.4); animation: as-moon 14s ease-in-out infinite alternate; }
.scn-ascension-instructions .town-wall { position: absolute; bottom: 25%; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: as-wall 8s ease-in-out infinite; }
.scn-ascension-instructions .orator { position: absolute; bottom: 35%; left: 50%; width: 20px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: as-orator 5s ease-in-out infinite; }
.scn-ascension-instructions .crowd-1 { position: absolute; bottom: 28%; left: 20%; width: 12px; height: 28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: as-crowd 6s ease-in-out infinite; }
.scn-ascension-instructions .crowd-2 { position: absolute; bottom: 30%; left: 35%; width: 12px; height: 30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: as-crowd 6s ease-in-out infinite 0.5s; }
.scn-ascension-instructions .crowd-3 { position: absolute; bottom: 29%; left: 60%; width: 12px; height: 28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: as-crowd 6s ease-in-out infinite 1s; }
.scn-ascension-instructions .steeple { position: absolute; bottom: 45%; left: 15%; width: 6px; height: 50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); clip-path: polygon(25% 0%, 75% 0%, 100% 100%, 0% 100%); animation: as-steeple 12s ease-in-out infinite; }
@keyframes as-night { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes as-moon { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes as-wall { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes as-orator { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes as-crowd { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes as-steeple { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }

/* Scene: council-war-plan */
.scn-council-war-plan {
  background: linear-gradient(135deg, #2a1a10 0%, #3a2a1a 30%, #4a3a2a 60%, #2a1a10 100%),
              radial-gradient(circle at 50% 30%, #5a4a3a 0%, transparent 60%);
}
.scn-council-war-plan .ceiling { position: absolute; top: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1a1008 0%, #3a2a1a 100%); animation: cw-ceiling 8s ease-in-out infinite alternate; }
.scn-council-war-plan .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); }
.scn-council-war-plan .table { position: absolute; bottom: 20%; left: 20%; right: 20%; height: 12%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: cw-table 10s ease-in-out infinite; }
.scn-council-war-plan .map { position: absolute; bottom: 22%; left: 30%; width: 40%; height: 8%; background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 5%; transform-origin: center; animation: cw-map 12s ease-in-out infinite; }
.scn-council-war-plan .candle-left { position: absolute; bottom: 30%; left: 28%; width: 4px; height: 18px; background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 12px 6px #ffa040; animation: cw-candle 0.5s ease-in-out infinite alternate; }
.scn-council-war-plan .candle-right { position: absolute; bottom: 30%; right: 28%; width: 4px; height: 18px; background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 12px 6px #ffa040; animation: cw-candle 0.5s ease-in-out infinite alternate 0.1s; }
.scn-council-war-plan .figure-commander { position: absolute; bottom: 25%; left: 45%; width: 20px; height: 34px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cw-commander 6s ease-in-out infinite; }
.scn-council-war-plan .figure-officer { position: absolute; bottom: 25%; right: 40%; width: 18px; height: 32px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cw-officer 7s ease-in-out infinite; }
.scn-council-war-plan .shadow { position: absolute; bottom: 20%; left: 0; right: 0; height: 20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 100%); animation: cw-shadow 5s ease-in-out infinite alternate; }
@keyframes cw-ceiling { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cw-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cw-map { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(0.5deg) scale(1.01); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes cw-candle { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(0.9); opacity: 0.8; } }
@keyframes cw-commander { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes cw-officer { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes cw-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* Scene: final-peace-offer */
.scn-final-peace-offer {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 60%, #f5deb3 100%),
              radial-gradient(ellipse at 70% 20%, #fff8dc 0%, transparent 70%);
}
.scn-final-peace-offer .sky-bright { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); animation: fp-sky 12s ease-in-out infinite alternate; }
.scn-final-peace-offer .sun { position: absolute; top: 10%; right: 25%; width: 60px; height: 60px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 40%, transparent 100%); border-radius: 50%; box-shadow: 0 0 50px 20px rgba(255,215,0,0.5); animation: fp-sun 10s ease-in-out infinite alternate; }
.scn-final-peace-offer .sunrays { position: absolute; top: 15%; right: 25%; width: 80px; height: 80px; background: repeating-linear-gradient(45deg, transparent 0px, transparent 10px, rgba(255,255,255,0.2) 10px, rgba(255,255,255,0.2) 20px); transform: translate(-10px, -10px); border-radius: 50%; animation: fp-rays 8s linear infinite; }
.scn-final-peace-offer .scroll { position: absolute; bottom: 20%; left: 30%; width: 140px; height: 60px; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%; transform-origin: left center; box-shadow: 0 8px 16px rgba(0,0,0,0.3); animation: fp-scroll 6s ease-in-out infinite; }
.scn-final-peace-offer .figure-jeanne { position: absolute; bottom: 22%; left: 20%; width: 22px; height: 44px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fp-jeanne 5s ease-in-out infinite; }
.scn-final-peace-offer .figure-scribe { position: absolute; bottom: 20%; left: 55%; width: 20px; height: 38px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fp-scribe 7s ease-in-out infinite; }
.scn-final-peace-offer .quill { position: absolute; bottom: 30%; left: 60%; width: 2px; height: 20px; background: linear-gradient(180deg, #8a6a4a 0%, #d2b48c 100%); transform-origin: bottom center; border-radius: 10% 10% 0 0; animation: fp-quill 3s ease-in-out infinite; }
@keyframes fp-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes fp-sun { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.03) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes fp-rays { 0% { transform: translate(-10px, -10px) rotate(0deg); } 100% { transform: translate(-10px, -10px) rotate(360deg); } }
@keyframes fp-scroll { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.02) scaleY(1.01); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes fp-jeanne { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fp-scribe { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fp-quill { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.1); } 100% { transform: rotate(0deg) scaleY(1); } }

/* Scene: cauchon-annates */
.scn-cauchon-annates { background: linear-gradient(135deg, #4a2e1a 0%, #6b4a2a 50%, #3d2714 100%), radial-gradient(ellipse at 30% 20%, rgba(180,130,70,0.3) 0%, transparent 60%); }
.scn-cauchon-annates .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius:0 0 8% 8%; }
.scn-cauchon-annates .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,0.6); }
.scn-cauchon-annates .desk { position:absolute; bottom:20%; left:30%; width:35%; height:15%; background: linear-gradient(180deg, #7a5a32 0%, #4a2e14 100%); border-radius: 2% 2% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-cauchon-annates .book { position:absolute; bottom:28%; left:38%; width:12%; height:10%; background: linear-gradient(135deg, #b89060 0%, #8a6a3a 100%); border-radius: 4% 10% 4% 10%; transform: rotate(-3deg); animation: ca-book 8s ease-in-out infinite; }
@keyframes ca-book { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
.scn-cauchon-annates .candle { position:absolute; bottom:30%; left:45%; width:3%; height:12%; background: linear-gradient(180deg, #f0d090 0%, #c8a050 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 16px 4px rgba(240,200,120,0.6); animation: ca-candle 3s ease-in-out infinite alternate; }
@keyframes ca-candle { 0% { box-shadow: 0 0 12px 3px rgba(240,200,120,0.5); height:11%; } 50% { box-shadow: 0 0 20px 8px rgba(240,200,120,0.8); height:13%; } 100% { box-shadow: 0 0 14px 4px rgba(240,200,120,0.6); height:12%; } }
.scn-cauchon-annates .window { position:absolute; top:10%; right:15%; width:20%; height:30%; background: linear-gradient(180deg, #a0b8d0 0%, #7088a0 100%); border: 6px solid #3a2a14; border-radius: 4px; box-shadow: inset 0 0 40px rgba(255,255,200,0.3), 0 0 30px rgba(160,184,208,0.3); animation: ca-window 12s ease-in-out infinite alternate; }
@keyframes ca-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
.scn-cauchon-annates .figure { position:absolute; bottom:18%; left:35%; width:10%; height:25%; background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-figure 6s ease-in-out infinite; }
@keyframes ca-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
.scn-cauchon-annates .cross { position:absolute; top:8%; left:15%; width:8%; height:16%; background: linear-gradient(180deg, #8a6a3a 0%, #4a2e14 100%); clip-path: polygon(40% 0, 60% 0, 60% 30%, 100% 30%, 100% 50%, 60% 50%, 60% 100%, 40% 100%, 40% 50%, 0 50%, 0 30%, 40% 30%); animation: ca-cross 20s linear infinite; }
@keyframes ca-cross { 0% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }

/* Scene: french-conquest-economy */
.scn-french-conquest-economy { background: linear-gradient(180deg, #2a1e12 0%, #3d2b1a 50%, #1f150c 100%), radial-gradient(ellipse at 60% 40%, rgba(150,120,70,0.2) 0%, transparent 70%); }
.scn-french-conquest-economy .vault-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #4a3824 0%, #2a1e12 100%); border-radius: 0 0 30% 30%; }
.scn-french-conquest-economy .table { position:absolute; bottom:20%; left:20%; width:60%; height:18%; background: linear-gradient(180deg, #6a5030 0%, #3d2b14 100%); border-radius: 4% 4% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.7); }
.scn-french-conquest-economy .coinpile { position:absolute; bottom:28%; left:40%; width:15%; height:8%; background: radial-gradient(ellipse at 50% 30%, #d4b060 0%, #a08030 70%); border-radius: 50%; box-shadow: 0 4px 8px #7a6018; animation: fc-coin 10s ease-in-out infinite; }
@keyframes fc-coin { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(1) rotate(0deg); } }
.scn-french-conquest-economy .scroll { position:absolute; bottom:30%; left:28%; width:25%; height:10%; background: linear-gradient(135deg, #e0d0a0 0%, #b8a070 100%); border-radius: 4% 20% 4% 20%; transform: rotate(-10deg); box-shadow: 2px 2px 4px rgba(0,0,0,0.3); animation: fc-scroll 15s ease-in-out infinite; }
@keyframes fc-scroll { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(4px); } 100% { transform: rotate(-10deg) translateX(0); } }
.scn-french-conquest-economy .quill { position:absolute; bottom:34%; left:45%; width:2%; height:16%; background: linear-gradient(180deg, #d0c0a0 0%, #f0e0c0 50%, #a08060 100%); border-radius: 50% 50% 10% 10%; transform-origin: bottom center; animation: fc-quill 4s ease-in-out infinite; }
@keyframes fc-quill { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(6deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
.scn-french-conquest-economy .inkpot { position:absolute; bottom:26%; left:42%; width:6%; height:8%; background: radial-gradient(circle, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.6); }
.scn-french-conquest-economy .seal { position:absolute; bottom:26%; right:30%; width:5%; height:5%; background: radial-gradient(circle, #702243 0%, #4a1628 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(112,34,67,0.5); animation: fc-seal 6s ease-in-out infinite alternate; }
@keyframes fc-seal { 0% { box-shadow: 0 0 6px 1px rgba(112,34,67,0.4); } 50% { box-shadow: 0 0 14px 4px rgba(112,34,67,0.7); } 100% { box-shadow: 0 0 8px 2px rgba(112,34,67,0.5); } }
.scn-french-conquest-economy .hand { position:absolute; bottom:36%; left:34%; width:8%; height:12%; background: linear-gradient(180deg, #c8a878 0%, #a08050 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: rotate(15deg); animation: fc-hand 4s ease-in-out infinite; }
@keyframes fc-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }

/* Scene: rouen-reconquest */
.scn-rouen-reconquest { background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 30%, #2a3a4a 100%), radial-gradient(ellipse at 50% 30%, rgba(150,170,190,0.2) 0%, transparent 70%); }
.scn-rouen-reconquest .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 60%, #3a4a5a 100%); animation: rr-sky 20s ease-in-out infinite alternate; }
@keyframes rr-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
.scn-rouen-reconquest .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%); border-radius: 10% 10% 0 0; }
.scn-rouen-reconquest .fort-distant { position:absolute; bottom:30%; left:25%; width:20%; height:25%; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); animation: rr-fort 25s ease-in-out infinite; }
@keyframes rr-fort { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(0.95) translateY(-4px); } 100% { transform: scale(1) translateY(0); } }
.scn-rouen-reconquest .soldier1 { position:absolute; bottom:28%; left:45%; width:6%; height:14%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rr-soldier 6s ease-in-out infinite; }
@keyframes rr-soldier { 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); } }
.scn-rouen-reconquest .soldier2 { position:absolute; bottom:28%; left:52%; width:6%; height:14%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rr-soldier 6s ease-in-out infinite 0.5s; }
.scn-rouen-reconquest .banner { position:absolute; bottom:35%; left:48%; width:4%; height:15%; background: linear-gradient(180deg, #7a8a5a 0%, #4a5a3a 100%); border-radius: 2px; transform-origin: bottom center; animation: rr-banner 4s ease-in-out infinite; }
@keyframes rr-banner { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(4deg) scaleY(1.05); } 50% { transform: rotate(0deg) scaleY(1); } 75% { transform: rotate(-4deg) scaleY(1.05); } 100% { transform: rotate(0deg) scaleY(1); } }
.scn-rouen-reconquest .spear { position:absolute; bottom:30%; left:55%; width:2%; height:20%; background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%); border-radius: 2px; transform: rotate(15deg); animation: rr-spear 8s ease-in-out infinite; }
@keyframes rr-spear { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(12deg) translateX(4px); } 100% { transform: rotate(15deg) translateX(0); } }

/* Scene: aquitaine-reconquest */
.scn-aquitaine-reconquest { background: linear-gradient(180deg, #8a7a5a 0%, #6b5a3a 30%, #4a3a2a 100%), radial-gradient(ellipse at 60% 40%, rgba(200,170,100,0.2) 0%, transparent 70%); }
.scn-aquitaine-reconquest .sky-warm { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8a7a5a 0%, #6b5a3a 60%, #4a3a2a 100%); animation: ar-sky 30s ease-in-out infinite alternate; }
@keyframes ar-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
.scn-aquitaine-reconquest .hill { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; }
.scn-aquitaine-reconquest .fortress { position:absolute; bottom:30%; left:35%; width:30%; height:30%; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 4px 12px rgba(0,0,0,0.6); }
.scn-aquitaine-reconquest .gate { position:absolute; bottom:28%; left:45%; width:10%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
.scn-aquitaine-reconquest .figure-dunois { position:absolute; bottom:22%; left:25%; width:12%; height:22%; background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ar-figure 8s ease-in-out infinite; }
@keyframes ar-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
.scn-aquitaine-reconquest .banner-warm { position:absolute; bottom:38%; left:30%; width:6%; height:14%; background: linear-gradient(180deg, #b8a060 0%, #8a7028 100%); border-radius: 2px; transform-origin: bottom center; animation: ar-banner 5s ease-in-out infinite; }
@keyframes ar-banner { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(5deg) scaleY(1.08); } 50% { transform: rotate(0deg) scaleY(1); } 75% { transform: rotate(-5deg) scaleY(1.08); } 100% { transform: rotate(0deg) scaleY(1); } }
.scn-aquitaine-reconquest .lantern-warm { position:absolute; bottom:10%; left:55%; width:5%; height:8%; background: radial-gradient(circle, #e0c080 0%, #b89050 70%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(200,160,80,0.6); animation: ar-lantern 4s ease-in-out infinite alternate; }
@keyframes ar-lantern { 0% { box-shadow: 0 0 16px 4px rgba(200,160,80,0.5); } 50% { box-shadow: 0 0 28px 10px rgba(200,160,80,0.8); } 100% { box-shadow: 0 0 18px 5px rgba(200,160,80,0.6); } }

.scn-bishop-senlis { background: linear-gradient(180deg, #7fa5c4 0%, #c4a87a 50%, #d9c08c 100%), radial-gradient(ellipse at 50% 0%, #ffffff30 0%, transparent 60%); }
.scn-bishop-senlis .wall { position:absolute; inset:0; background: linear-gradient(135deg, #3a3a2a 0%, #5a4a3a 50%, #2a2a1a 100%); }
.scn-bishop-senlis .window { position:absolute; top:15%; left:55%; width:80px; height:100px; border:6px solid #6a5a4a; background: linear-gradient(135deg, #ffe0a0 0%, #ffcc80 100%); border-radius:10% 10% 4% 4%; box-shadow: inset 0 0 20px #ffddaa; }
.scn-bishop-senlis .rays { position:absolute; top:15%; left:55%; width:400px; height:200px; background: linear-gradient(135deg, #ffdd9940 0%, transparent 50%, #ffcc6640 100%); transform-origin: 0 0; animation: bs-rays 6s ease-in-out infinite alternate; }
.scn-bishop-senlis .figure { position:absolute; bottom:30%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin:bottom center; animation: bs-figure 3s ease-in-out infinite; }
.scn-bishop-senlis .chest { position:absolute; bottom:22%; left:45%; width:60px; height:30px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 6px 10px #00000066; transform-origin:center bottom; animation: bs-chest 8s ease-in-out infinite; }
.scn-bishop-senlis .shadow { position:absolute; bottom:20%; left:25%; width:80px; height:15px; background: radial-gradient(ellipse, #00000033 0%, transparent 70%); animation: bs-shadow 6s ease-in-out infinite alternate; }
@keyframes bs-rays { 0% { transform: rotate(-5deg) scaleX(0.9); opacity:0.6 } 50% { transform: rotate(3deg) scaleX(1.1); opacity:0.9 } 100% { transform: rotate(-2deg) scaleX(1); opacity:0.7 } }
@keyframes bs-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bs-chest { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } }
@keyframes bs-shadow { 0% { transform: scaleX(1); opacity:0.3 } 50% { transform: scaleX(1.2); opacity:0.5 } 100% { transform: scaleX(0.9); opacity:0.4 } }

.scn-saint-denys-arrival { background: linear-gradient(180deg, #87ceeb 0%, #f0d9a0 60%, #c9a86c 100%), radial-gradient(ellipse at 70% 100%, #e0c07040 0%, transparent 60%); }
.scn-saint-denys-arrival .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #7ab8d4 0%, #b8d8e8 50%, transparent 100%); animation: sda-sky 15s ease-in-out infinite alternate; }
.scn-saint-denys-arrival .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a8a5a 0%, #3a5a2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 30px #2a3a1a66; animation: sda-hills 20s ease-in-out infinite alternate; }
.scn-saint-denys-arrival .road { position:absolute; bottom:20%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%); border-radius: 10% 10% 0 0; }
.scn-saint-denys-arrival .tower-a { position:absolute; bottom:35%; left:20%; width:40px; height:100px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 10px #2a2a1a66; }
.scn-saint-denys-arrival .tower-b { position:absolute; bottom:35%; right:25%; width:35px; height:90px; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a1a 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 10px #2a2a1a66; }
.scn-saint-denys-arrival .figures { position:absolute; bottom:20%; left:30%; width:40%; height:15%; background: repeating-linear-gradient(90deg, #2a2a1a66 0px, transparent 4px, #2a2a1a66 8px); animation: sda-march 25s linear infinite; }
.scn-saint-denys-arrival .banner { position:absolute; bottom:40%; left:35%; width:16px; height:40px; background: #b86a3a; border-radius: 0 50% 50% 0; transform-origin: top left; animation: sda-banner 5s ease-in-out infinite alternate; }
@keyframes sda-sky { 0% { opacity:0.7; transform: scaleY(1) } 50% { opacity:0.9; transform: scaleY(1.05) } 100% { opacity:0.8; transform: scaleY(0.95) } }
@keyframes sda-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes sda-march { 0% { background-position: 0 0 } 100% { background-position: -100px 0 } }
@keyframes sda-banner { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(5deg) scaleX(1.1) } 100% { transform: rotate(-5deg) scaleX(0.9) } }

.scn-skirmishing-before-paris { background: linear-gradient(180deg, #c8b88a 0%, #e8d8a0 40%, #b8a070 100%), radial-gradient(ellipse at 30% 40%, #ffe0a030 0%, transparent 60%); }
.scn-skirmishing-before-paris .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d8c898 0%, #e8d8b0 50%, transparent 100%); animation: sbp-sky 10s ease-in-out infinite alternate; }
.scn-skirmishing-before-paris .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px #3a2a1a66; }
.scn-skirmishing-before-paris .windmill-base { position:absolute; bottom:30%; left:35%; width:40px; height:80px; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a1a 100%); border-radius: 10% 10% 5% 5%; }
.scn-skirmishing-before-paris .windmill-sails { position:absolute; bottom:55%; left:37%; width:80px; height:80px; background: radial-gradient(circle, #9a8a6a 0%, transparent 70%); transform-origin: 50% 100%; animation: sbp-sails 4s linear infinite; }
.scn-skirmishing-before-paris .figure-left { position:absolute; bottom:32%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sbp-fight-l 1.5s ease-in-out infinite; }
.scn-skirmishing-before-paris .figure-right { position:absolute; bottom:32%; right:30%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sbp-fight-r 1.5s ease-in-out infinite 0.75s; }
.scn-skirmishing-before-paris .dust { position:absolute; bottom:25%; left:20%; width:60%; height:20%; background: radial-gradient(ellipse at 30% 100%, #c8b88880 0%, transparent 60%); animation: sbp-dust 8s ease-in-out infinite; }
@keyframes sbp-sky { 0% { opacity:0.8; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.02) } 100% { opacity:0.9; transform: scaleX(0.98) } }
@keyframes sbp-sails { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes sbp-fight-l { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(12px) rotate(5deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-12px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sbp-fight-r { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-12px) rotate(-5deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(12px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sbp-dust { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.7; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(0.9) } }

.scn-truce-politics { background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 40%, #8a7a6a 100%), radial-gradient(ellipse at 50% 60%, #ffe0a020 0%, transparent 70%); }
.scn-truce-politics .wall { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #5a4a3a 100%); }
.scn-truce-politics .window { position:absolute; top:15%; right:20%; width:60px; height:80px; border:4px solid #6a5a4a; background: linear-gradient(135deg, #ffe0a0 0%, #ffcc80 100%); border-radius:8% 8% 4% 4%; box-shadow: inset 0 0 15px #ffddaa; }
.scn-truce-politics .lightbeam { position:absolute; top:15%; right:20%; width:250px; height:200px; background: linear-gradient(135deg, #ffdd9920 0%, transparent 50%, #ffcc6620 100%); transform-origin: 0 0; animation: tp-beam 8s ease-in-out infinite alternate; }
.scn-truce-politics .table { position:absolute; bottom:30%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 8px 20px #00000066; }
.scn-truce-politics .candle { position:absolute; bottom:45%; left:45%; width:8px; height:40px; background: linear-gradient(180deg, #e8c888 0%, #a08050 100%); border-radius: 20% 20% 10% 10%; }
.scn-truce-politics .candle::after { content:''; position:absolute; top:-12px; left:0; width:100%; height:12px; background: radial-gradient(circle, #ffd080 0%, #ff8840 100%); border-radius:50%; animation: tp-flame 2s ease-in-out infinite alternate; }
.scn-truce-politics .document { position:absolute; bottom:38%; left:35%; width:80px; height:50px; background: linear-gradient(135deg, #e8d8b0 0%, #c8b888 100%); border-radius:4%; box-shadow: 0 2px 6px #00000033; animation: tp-doc 12s ease-in-out infinite; }
.scn-truce-politics .figure-sitting { position:absolute; bottom:30%; left:25%; width:45px; height:70px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin:bottom center; animation: tp-sit 4s ease-in-out infinite; }
.scn-truce-politics .figure-standing { position:absolute; bottom:35%; right:18%; width:35px; height:80px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 48% 48% 38% 38% / 58% 58% 42% 42%; transform-origin:bottom center; animation: tp-stand 6s ease-in-out infinite; }
@keyframes tp-beam { 0% { transform: rotate(-8deg) scaleX(0.8); opacity:0.4 } 50% { transform: rotate(2deg) scaleX(1.1); opacity:0.8 } 100% { transform: rotate(-4deg) scaleX(0.9); opacity:0.6 } }
@keyframes tp-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.9 } 50% { transform: scaleY(1.3) translateY(-4px); opacity:1 } 100% { transform: scaleY(0.9) translateY(2px); opacity:0.8 } }
@keyframes tp-doc { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }
@keyframes tp-sit { 0% { transform: translateX(0) rotate(0deg) } 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 tp-stand { 0% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-2px) rotate(2deg) } 66% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* Scene: ignorance-of-theology (calm, bright-interior) */
.scn-ignorance-of-theology {
  background:
    linear-gradient(180deg, #f5ebe0 0%, #e3d5c4 50%, #d4c5b2 100%),
    radial-gradient(ellipse at 50% 30%, #fff8f0 0%, transparent 60%);
}
.scn-ignorance-of-theology .room-wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(90deg, #cbb99f 0%, #dac7b0 30%, #cfbda6 70%, #bea990 100%);
  border-radius:0 0 20% 20%/0 0 8% 8%; box-shadow: inset 0 8px 20px rgba(120,90,60,0.2);
  animation: it1-wall 20s ease-in-out infinite;
}
.scn-ignorance-of-theology .window-frame {
  position:absolute; top:5%; left:55%; width:30%; height:50%;
  background: radial-gradient(circle at 50% 50%, #ffffff 0%, #dce8f0 60%, #b0c4d8 100%);
  border:8px solid #8b7a64; border-radius:4% 4% 0 0; box-shadow: inset 0 0 30px rgba(255,255,200,0.6);
  animation: it1-window 12s ease-in-out infinite alternate;
}
.scn-ignorance-of-theology .desk {
  position:absolute; bottom:20%; left:30%; width:45%; height:12%;
  background: linear-gradient(180deg, #a08464 0%, #7a654a 100%);
  border-radius:2% 2% 8% 8%; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: it1-desk 8s ease-in-out infinite;
}
.scn-ignorance-of-theology .book-stack {
  position:absolute; bottom:28%; left:40%; width:16%; height:10%;
  background: linear-gradient(180deg, #6b4d32 0%, #4d351e 50%, #3a2714 100%);
  border-radius:4% 4% 0 0; box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: it1-books 10s ease-in-out infinite alternate;
}
.scn-ignorance-of-theology .scholar-silhouette {
  position:absolute; bottom:19%; left:35%; width:12%; height:28%;
  background: radial-gradient(ellipse 70% 60% at 50% 40%, #3a3026 0%, #241e18 100%);
  border-radius:50% 50% 40% 40%/60% 60% 40% 40%;
  transform-origin: bottom center; box-shadow: 0 0 20px rgba(0,0,0,0.3);
  animation: it1-scholar 6s ease-in-out infinite;
}
.scn-ignorance-of-theology .lamp-glow {
  position:absolute; bottom:28%; left:38%; width:6%; height:8%;
  background: radial-gradient(circle, #fff4d0 0%, #f0d88a 40%, transparent 70%);
  border-radius:50%; box-shadow: 0 0 40px 12px rgba(240,216,138,0.8);
  animation: it1-lamp 4s ease-in-out infinite alternate;
}
.scn-ignorance-of-theology .dust-mote {
  position:absolute; width:1.5%; height:1.5%; background: rgba(255,255,240,0.6); border-radius:50%;
  filter: blur(1px);
}
.scn-ignorance-of-theology .mote-a {
  top:15%; left:20%; animation: it1-mote-a 30s linear infinite;
}
.scn-ignorance-of-theology .mote-b {
  top:35%; left:70%; animation: it1-mote-b 40s linear infinite;
}
@keyframes it1-wall {
  0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.92 }
}
@keyframes it1-window {
  0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) }
}
@keyframes it1-desk {
  0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) }
}
@keyframes it1-books {
  0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) }
}
@keyframes it1-scholar {
  0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(-1px) rotate(-0.5deg) } 100% { transform: translateY(0) rotate(0deg) }
}
@keyframes it1-lamp {
  0% { opacity:0.8; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.85; transform: scale(0.98) }
}
@keyframes it1-mote-a {
  0% { transform: translate(0,0) } 25% { transform: translate(20px, -10px) } 50% { transform: translate(40px, 5px) } 75% { transform: translate(60px, -8px) } 100% { transform: translate(80px, 0) }
}
@keyframes it1-mote-b {
  0% { transform: translate(0,0) } 33% { transform: translate(-15px, 8px) } 66% { transform: translate(-30px, -5px) } 100% { transform: translate(-45px, 0) }
}

/* Scene: raphael-reveals (tense, dark) */
.scn-raphael-reveals {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #14142e 40%, #1a1a3e 70%, #0e0e24 100%),
    radial-gradient(ellipse at 50% 80%, #1a1a3e 0%, transparent 70%);
}
.scn-raphael-reveals .night-garden {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #0f1526 0%, #1a2430 50%, #0d1a1a 100%);
  border-radius:0 0 50% 50%/0 0 20% 20%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
  animation: rr2-garden 12s ease-in-out infinite alternate;
}
.scn-raphael-reveals .angel-form {
  position:absolute; top:5%; left:50%; width:30%; height:60%;
  transform:translateX(-50%);
  background: radial-gradient(ellipse 60% 80% at 50% 50%, rgba(255,240,200,0.4) 0%, rgba(200,180,140,0.1) 60%, transparent 80%);
  border-radius:40% 40% 20% 20%/60% 60% 30% 30%;
  box-shadow: 0 0 60px 20px rgba(255,240,200,0.3);
  animation: rr2-angel 8s ease-in-out infinite;
}
.scn-raphael-reveals .angel-halo {
  position:absolute; top:2%; left:46%; width:8%; height:8%;
  background: radial-gradient(circle, #ffefc0 0%, transparent 70%);
  border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,239,192,0.8);
  animation: rr2-halo 4s ease-in-out infinite alternate;
}
.scn-raphael-reveals .angel-hand {
  position:absolute; top:20%; left:40%; width:10%; height:25%;
  background: linear-gradient(180deg, rgba(255,230,200,0.5) 0%, transparent 100%);
  border-radius:40% 40% 30% 30%/20% 20% 40% 40%;
  transform:rotate(-20deg); transform-origin: top center;
  box-shadow: 0 0 20px rgba(255,230,200,0.4);
  animation: rr2-hand 6s ease-in-out infinite;
}
.scn-raphael-reveals .martin-figure {
  position:absolute; bottom:5%; left:35%; width:12%; height:30%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%);
  border-radius:50% 50% 30% 30%/60% 60% 40% 40%;
  box-shadow: inset 0 0 10px rgba(80,80,140,0.3);
  animation: rr2-martin 10s ease-in-out infinite alternate;
}
.scn-raphael-reveals .ground-flash {
  position:absolute; bottom:0%; left:30%; width:40%; height:8%;
  background: linear-gradient(90deg, transparent 0%, rgba(100,150,255,0.15) 30%, rgba(100,150,255,0.3) 50%, rgba(100,150,255,0.15) 70%, transparent 100%);
  border-radius:50%; filter: blur(6px);
  animation: rr2-flash 3s ease-in-out infinite;
}
@keyframes rr2-garden {
  0% { opacity:0.8 } 50% { opacity:1; box-shadow: inset 0 30px 60px rgba(0,0,0,0.9) } 100% { opacity:0.75 }
}
@keyframes rr2-angel {
  0% { transform: translateX(-50%) scale(1) } 30% { transform: translateX(-50%) scale(1.02) translateY(-5px) } 60% { transform: translateX(-50%) scale(0.98) translateY(3px) } 100% { transform: translateX(-50%) scale(1) }
}
@keyframes rr2-halo {
  0% { transform: scale(0.9); opacity:0.7 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.95); opacity:0.8 }
}
@keyframes rr2-hand {
  0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-22deg) }
}
@keyframes rr2-martin {
  0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) }
}
@keyframes rr2-flash {
  0% { opacity:0 } 20% { opacity:1 } 50% { opacity:0.5 } 80% { opacity:1 } 100% { opacity:0 }
}

/* Scene: louis-xviii-interview (tense, bright-interior) */
.scn-louis-xviii-interview {
  background:
    linear-gradient(180deg, #f0e4d0 0%, #dcc8b0 35%, #c4aa8a 70%, #a68360 100%),
    radial-gradient(ellipse at 50% 20%, #fff8f0 0%, transparent 70%);
}
.scn-louis-xviii-interview .palace-panel {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(90deg, #bba786 0%, #d6c3a2 30%, #cbb898 60%, #b09878 100%);
  border-radius:0 0 10% 10%; box-shadow: inset 0 10px 30px rgba(100,70,40,0.3);
  animation: lx3-panel 15s ease-in-out infinite alternate;
}
.scn-louis-xviii-interview .tall-window {
  position:absolute; top:2%; right:10%; width:25%; height:70%;
  background: linear-gradient(180deg, #ffffff 0%, #dae8f0 50%, #b0c8d8 100%);
  border:8px solid #7a664a; border-radius:4% 4% 0 0; 
  box-shadow: inset 0 0 40px rgba(255,255,200,0.5), 0 0 30px rgba(200,180,140,0.3);
  animation: lx3-window 10s ease-in-out infinite alternate;
}
.scn-louis-xviii-interview .royal-desk {
  position:absolute; bottom:20%; left:20%; width:50%; height:10%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3e26 100%);
  border-radius:4% 4% 0 0; box-shadow: 0 6px 16px rgba(0,0,0,0.4);
  animation: lx3-desk 8s ease-in-out infinite;
}
.scn-louis-xviii-interview .king-silhouette {
  position:absolute; bottom:16%; left:28%; width:14%; height:35%;
  background: radial-gradient(ellipse 70% 60% at 50% 40%, #2a221c 0%, #1a1410 100%);
  border-radius:50% 50% 40% 40%/60% 60% 40% 40%;
  box-shadow: 0 0 30px rgba(0,0,0,0.4);
  animation: lx3-king 6s ease-in-out infinite;
}
.scn-louis-xviii-interview .martin-silhouette {
  position:absolute; bottom:18%; left:45%; width:12%; height:30%;
  background: radial-gradient(ellipse 70% 60% at 50% 40%, #1e1a14 0%, #0e0c08 100%);
  border-radius:50% 50% 40% 40%/60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
  animation: lx3-martin 7s ease-in-out infinite alternate;
}
.scn-louis-xviii-interview .candle-flame {
  position:absolute; bottom:30%; left:40%; width:3%; height:6%;
  background: radial-gradient(circle, #fff8e0 0%, #f0d080 40%, #c08040 70%, transparent 100%);
  border-radius:50% 50% 40% 40%/60% 60% 40% 40%;
  box-shadow: 0 0 30px 6px rgba(192,128,64,0.8);
  animation: lx3-candle 3s ease-in-out infinite alternate;
}
.scn-louis-xviii-interview .candlestick {
  position:absolute; bottom:26%; left:39.5%; width:4%; height:6%;
  background: linear-gradient(180deg, #b89870 0%, #8a6e50 100%);
  border-radius:10% 10% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: lx3-stick 8s ease-in-out infinite;
}
.scn-louis-xviii-interview .floor-shadow {
  position:absolute; bottom:0%; left:20%; width:60%; height:8%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: lx3-shadow 12s ease-in-out infinite alternate;
}
@keyframes lx3-panel {
  0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) }
}
@keyframes lx3-window {
  0% { transform: scaleX(1) } 30% { transform: scaleX(1.02) } 60% { transform: scaleX(0.98) } 100% { transform: scaleX(1) }
}
@keyframes lx3-desk {
  0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) }
}
@keyframes lx3-king {
  0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-1px) rotate(1deg) } 60% { transform: translateY(1px) rotate(-0.5deg) } 100% { transform: translateY(0) rotate(0deg) }
}
@keyframes lx3-martin {
  0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) }
}
@keyframes lx3-candle {
  0% { transform: scaleY(0.9) translateY(0) } 30% { transform: scaleY(1.1) translateY(-2px) } 60% { transform: scaleY(0.95) translateY(1px) } 100% { transform: scaleY(1) translateY(0) }
}
@keyframes lx3-stick {
  0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) }
}
@keyframes lx3-shadow {
  0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 }
}

/* Scene: king-moved (tense, bright-interior) */
.scn-king-moved {
  background:
    linear-gradient(180deg, #f4e8d4 0%, #dcc0a0 40%, #c4a07a 70%, #a87850 100%),
    radial-gradient(ellipse at 50% 20%, #fff5e0 0%, transparent 60%);
}
.scn-king-moved .same-panel {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(90deg, #bba786 0%, #d6c3a2 30%, #cbb898 60%, #b09878 100%);
  border-radius:0 0 10% 10%; box-shadow: inset 0 10px 30px rgba(100,70,40,0.3);
  animation: km4-panel 18s ease-in-out infinite alternate;
}
.scn-king-moved .window-cast {
  position:absolute; top:2%; right:10%; width:25%; height:70%;
  background: linear-gradient(180deg, #ffffff 0%, #dae8f0 50%, #b0c8d8 100%);
  border:8px solid #7a664a; border-radius:4% 4% 0 0; 
  box-shadow: inset 0 0 40px rgba(255,255,200,0.5), 0 0 30px rgba(200,180,140,0.3);
  animation: km4-window 12s ease-in-out infinite alternate;
}
.scn-king-moved .king-tears {
  position:absolute; bottom:16%; left:28%; width:14%; height:35%;
  background: radial-gradient(ellipse 70% 60% at 50% 40%, #2a221c 0%, #1a1410 100%);
  border-radius:50% 50% 40% 40%/60% 60% 40% 40%;
  box-shadow: 0 0 30px rgba(0,0,0,0.4);
  animation: km4-king 8s ease-in-out infinite;
}
.scn-king-moved .raised-hand {
  position:absolute; bottom:40%; left:40%; width:6%; height:10%;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  border-radius:50% 50% 30% 30%/60% 60% 30% 30%;
  transform:rotate(-30deg); transform-origin: bottom center;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: km4-hand 6s ease-in-out infinite alternate;
}
.scn-king-moved .eye-ward {
  position:absolute; top:28%; left:30%; width:3%; height:3%;
  background: radial-gradient(circle, rgba(255,240,220,0.8) 0%, transparent 80%);
  border-radius:50%; box-shadow: 0 0 15px 5px rgba(255,240,220,0.6);
  animation: km4-eye 4s ease-in-out infinite alternate;
}
@keyframes km4-panel {
  0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.92 }
}
@keyframes km4-window {
  0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) }
}
@keyframes km4-king {
  0% { transform: translateY(0) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(1px) rotate(-0.5deg) } 100% { transform: translateY(0) }
}
@keyframes km4-hand {
  0% { transform: rotate(-30deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(-35deg) }
}
@keyframes km4-eye {
  0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 }
}

.scn-chalons-surrender {
  background: linear-gradient(180deg, #f9d9a5 0%, #e6a86b 40%, #b87744 100%), radial-gradient(ellipse at 60% 30%, #f0c878 0%, transparent 50%);
}
.scn-chalons-surrender .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffe7b0 0%, #f9d27a 60%, #d8a055 100%);
  animation: cs-sky 8s ease-in-out infinite alternate;
}
.scn-chalons-surrender .city-wall {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #b87c5a 0%, #8a5a3a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 6px 14px rgba(0,0,0,0.3);
  animation: cs-wall 12s ease-in-out infinite;
}
.scn-chalons-surrender .gate {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 60% 80% at 50% 100%, #3a2a1a 0%, #1a100a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
  animation: cs-gate 6s ease-in-out infinite;
}
.scn-chalons-surrender .bishop {
  position: absolute; bottom: 25%; left: 36%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #6a3a2a 0%, #3a1a12 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-bishop 4s ease-in-out infinite;
}
.scn-chalons-surrender .king {
  position: absolute; bottom: 25%; left: 55%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #5a2a1a 0%, #2a1008 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: cs-king 2.5s ease-in-out infinite;
}
.scn-chalons-surrender .keys {
  position: absolute; bottom: 30%; left: 43%; width: 12px; height: 6px;
  background: radial-gradient(circle, #d4a040 0%, #b07a20 100%);
  border-radius: 20%;
  box-shadow: 0 0 8px 2px rgba(212,160,64,0.6);
  animation: cs-keys 2s ease-in-out infinite;
}
.scn-chalons-surrender .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #7a6a40 0%, #4a3a20 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  animation: cs-ground 10s ease-in-out infinite alternate;
}
@keyframes cs-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cs-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes cs-gate { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.98); } 100% { transform: translateX(-50%) scaleY(1.01); } }
@keyframes cs-bishop { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cs-king { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-1px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(1px) rotate(0); } }
@keyframes cs-keys { 0% { transform: translate(0,0) rotate(0); } 50% { transform: translate(3px,-1px) rotate(15deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes cs-ground { 0% { opacity: 0.8; } 100% { opacity: 1; } }

.scn-reims-diplomacy {
  background: linear-gradient(90deg, #d4c8b8 0%, #e0d2c0 30%, #b0a090 100%), radial-gradient(ellipse at 70% 40%, #f0e6d8 0%, transparent 60%);
}
.scn-reims-diplomacy .walls {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d8c8b0 0%, #a89878 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
  animation: rd-walls 10s ease-in-out infinite alternate;
}
.scn-reims-diplomacy .window {
  position: absolute; top: 12%; left: 65%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #ffe8c0 0%, #d4b080 60%, transparent 100%);
  border: 4px solid #7a6a5a;
  border-radius: 10%;
  box-shadow: 0 0 30px 8px rgba(255,232,192,0.6);
  animation: rd-window 4s ease-in-out infinite alternate;
}
.scn-reims-diplomacy .table {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4428 100%);
  border-radius: 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: rd-table 6s ease-in-out infinite;
}
.scn-reims-diplomacy .letter {
  position: absolute; bottom: 33%; left: 42%; width: 18%; height: 6%;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: rd-letter 2s ease-in-out infinite alternate;
}
.scn-reims-diplomacy .scribe {
  position: absolute; bottom: 34%; left: 35%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a3028 0%, #1a1010 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: rd-scribe 3s ease-in-out infinite;
}
.scn-reims-diplomacy .lord {
  position: absolute; bottom: 34%; left: 58%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rd-lord 3.5s ease-in-out infinite;
}
.scn-reims-diplomacy .shadow {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 4%;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.3), transparent);
  filter: blur(4px);
  animation: rd-shadow 5s ease-in-out infinite alternate;
}
@keyframes rd-walls { 0% { opacity: 0.85; } 100% { opacity: 1; } }
@keyframes rd-window { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.9; transform: scale(0.98); } }
@keyframes rd-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes rd-letter { 0% { transform: rotate(-2deg); } 100% { transform: rotate(2deg); } }
@keyframes rd-scribe { 0% { transform: rotate(0); } 50% { transform: rotate(3deg) translateX(1px); } 100% { transform: rotate(0); } }
@keyframes rd-lord { 0% { transform: translateX(0); } 30% { transform: translateX(2px) rotate(-1deg); } 60% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0); } }
@keyframes rd-shadow { 0% { opacity: 0.3; width: 20%; } 100% { opacity: 0.6; width: 25%; } }

.scn-entry-reims {
  background: linear-gradient(180deg, #0f1428 0%, #1a1f3a 40%, #2a2a4a 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-entry-reims .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0c0e1c 0%, #181e36 60%, #1a2038 100%);
  animation: er-sky 15s ease-in-out infinite alternate;
}
.scn-entry-reims .gate {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 70% 90% at 50% 100%, #4a3a28 0%, #1a1008 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: er-gate 8s ease-in-out infinite;
}
.scn-entry-reims .drawbridge {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 30px;
  transform: translateX(-50%) rotate(-5deg);
  transform-origin: left center;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a12 100%);
  border-radius: 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: er-bridge 6s ease-in-out infinite alternate;
}
.scn-entry-reims .portcullis {
  position: absolute; bottom: 28%; left: 50%; width: 80px; height: 70px;
  transform: translateX(-50%);
  background: repeating-linear-gradient(0deg, #1a1008 0px, #1a1008 4px, transparent 4px, transparent 12px);
  border-radius: 5%;
  animation: er-portcullis 10s ease-in-out infinite;
}
.scn-entry-reims .wall {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: er-wall 12s ease-in-out infinite alternate;
}
.scn-entry-reims .torch-left {
  position: absolute; bottom: 38%; left: 30%; width: 8px; height: 14px;
  background: radial-gradient(circle, #ffb840 0%, #d08020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(255,184,64,0.7), 0 0 60px 24px rgba(255,184,64,0.3);
  animation: er-torch 2s ease-in-out infinite alternate;
}
.scn-entry-reims .torch-right {
  position: absolute; bottom: 38%; right: 30%; width: 8px; height: 14px;
  background: radial-gradient(circle, #ffb840 0%, #d08020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(255,184,64,0.7), 0 0 60px 24px rgba(255,184,64,0.3);
  animation: er-torch 2s ease-in-out infinite alternate;
  animation-delay: 0.5s;
}
.scn-entry-reims .king {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: er-king 4s ease-in-out infinite;
}
@keyframes er-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes er-gate { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.97); } 100% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes er-bridge { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(-3deg); } 100% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes er-portcullis { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes er-wall { 0% { transform: translateY(0); } 100% { transform: translateY(-2px); } }
@keyframes er-torch { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.9); } }
@keyframes er-king { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(0); } 100% { transform: translateX(0) rotate(0); } }

.scn-coronation-preparations {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #3a2818 100%), radial-gradient(ellipse at 50% 60%, #4a3a28 0%, transparent 70%);
}
.scn-coronation-preparations .sacristy-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1e14 0%, #1a1008 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.6);
  animation: cp-bg 12s ease-in-out infinite alternate;
}
.scn-coronation-preparations .altar {
  position: absolute; bottom: 25%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #4a3820 0%, #2a1a0c 100%);
  border-radius: 5%;
  box-shadow: 0 6px 14px rgba(0,0,0,0.5);
  animation: cp-altar 8s ease-in-out infinite;
}
.scn-coronation-preparations .crown {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 50% 100% at 50% 20%, #c8a860 0%, #8a6a20 100%);
  border-radius: 10% 10% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(200,168,96,0.5), 0 0 40px 12px rgba(200,168,96,0.2);
  animation: cp-crown 6s ease-in-out infinite alternate;
}
.scn-coronation-preparations .robe {
  position: absolute; bottom: 22%; left: 40%; width: 30%; height: 10%;
  background: linear-gradient(90deg, #5e1a1d 0%, #3a1012 100%);
  border-radius: 20% 20% 50% 50% / 30% 30% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(94,26,29,0.3);
  animation: cp-robe 10s ease-in-out infinite;
}
.scn-coronation-preparations .scepter {
  position: absolute; bottom: 28%; left: 60%; width: 6px; height: 40px;
  transform-origin: bottom center;
  background: linear-gradient(180deg, #b09040 0%, #6a5010 100%);
  border-radius: 10%;
  box-shadow: 0 0 8px 2px rgba(176,144,64,0.4);
  animation: cp-scepter 4s ease-in-out infinite alternate;
}
.scn-coronation-preparations .candle-left {
  position: absolute; bottom: 26%; left: 30%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0d8a0 0%, #d0a868 60%, #6a4a20 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(240,216,160,0.5);
  animation: cp-candle 3s ease-in-out infinite alternate;
}
.scn-coronation-preparations .candle-right {
  position: absolute; bottom: 26%; right: 30%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0d8a0 0%, #d0a868 60%, #6a4a20 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(240,216,160,0.5);
  animation: cp-candle 3s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-coronation-preparations .glow {
  position: absolute; bottom: 30%; left: 25%; right: 25%; height: 20%;
  background: radial-gradient(ellipse at 50% 30%, rgba(240,216,160,0.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: cp-glow 5s ease-in-out infinite alternate;
}
@keyframes cp-bg { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes cp-altar { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cp-crown { 0% { transform: translateX(-50%) rotate(-2deg) scale(1); } 50% { transform: translateX(-50%) rotate(1deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-1deg) scale(0.98); } }
@keyframes cp-robe { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cp-scepter { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes cp-candle { 0% { opacity: 0.7; transform: scaleY(0.95); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.8; transform: scaleY(1); } }
@keyframes cp-glow { 0% { opacity: 0.5; transform: scale(0.95); } 100% { opacity: 0.8; transform: scale(1.05); } }

.scn-jargeau-siege {
  background: linear-gradient(180deg, #6a9ec8 0%, #b0c8d8 40%, #e8e0c0 70%, #c8b888 100%),
              radial-gradient(ellipse at 30% 80%, #d8c888 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-jargeau-siege .sky-bg { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7aaed8 0%, #c0d8e8 100%); animation: si-siege-sky 12s ease-in-out infinite alternate; }
.scn-jargeau-siege .town-walls { position:absolute; bottom:30%; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #b0a090 0%, #7a7060 50%, #5a5040 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,.5); animation: si-siege-walls 18s ease-in-out infinite alternate; }
.scn-jargeau-siege .tower { position:absolute; bottom:35%; left:40%; width:40px; height:60px; background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: si-siege-tower 9s ease-in-out infinite; }
.scn-jargeau-siege .tents { position:absolute; bottom:28%; left:15%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 100%, #d8c8a0 0%, #b8a880 60%, transparent 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: si-siege-tents 15s ease-in-out infinite alternate; }
.scn-jargeau-siege .siege-engine { position:absolute; bottom:25%; left:60%; width:50px; height:45px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 20% 80% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,.7); animation: si-siege-engine 7s ease-in-out infinite; }
.scn-jargeau-siege .dust-devil { position:absolute; bottom:20%; left:25%; width:30px; height:35px; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,140,.6) 0%, rgba(200,180,140,.2) 50%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: si-siege-dust 6s ease-in-out infinite; }
.scn-jargeau-siege .hard-shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); animation: si-siege-shadow 20s ease-in-out infinite alternate; }
@keyframes si-siege-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes si-siege-walls { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(1px) scaleX(.98) } }
@keyframes si-siege-tower { 0%,100% { transform: translateY(0) rotate(-.5deg) } 50% { transform: translateY(-3px) rotate(.5deg) } }
@keyframes si-siege-tents { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(1.05) translateY(-1px) } 100% { transform: scaleX(.95) translateY(2px) } }
@keyframes si-siege-engine { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes si-siege-dust { 0% { transform: translate(0,0) scale(1); opacity:.6 } 50% { transform: translate(15px,-8px) scale(1.4); opacity:.4 } 100% { transform: translate(25px,-2px) scale(.8); opacity:.5 } }
@keyframes si-siege-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-jargeau-assault {
  background: linear-gradient(180deg, #8ab0d0 0%, #c0d0d8 40%, #d8c8a0 70%, #a09070 100%),
              radial-gradient(ellipse at 20% 60%, #e0d0b0 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-jargeau-assault .wall-stone { position:absolute; bottom:25%; left:10%; right:10%; height:50%; background: linear-gradient(90deg, #9a8a7a 0%, #b0a090 30%, #7a6a5a 70%, #5a4a3a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 -6px 15px rgba(0,0,0,.6); animation: si-assault-wall 14s ease-in-out infinite alternate; }
.scn-jargeau-assault .breach-dark { position:absolute; bottom:30%; left:40%; width:40px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #3a2a1a 60%, transparent 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.9); animation: si-assault-breach 8s ease-in-out infinite; }
.scn-jargeau-assault .cannon-smoke { position:absolute; bottom:35%; left:25%; width:50px; height:40px; background: radial-gradient(ellipse, rgba(220,210,200,.6) 0%, rgba(200,190,180,.3) 50%, transparent 100%); filter: blur(6px); border-radius: 50%; animation: si-assault-smoke 5s ease-in-out infinite; }
.scn-jargeau-assault .scaling-ladder { position:absolute; bottom:25%; left:45%; width:8px; height:70px; background: linear-gradient(180deg, #8a6a4a 0%, #5a4a2a 100%); border-radius: 4px; transform-origin: bottom center; box-shadow: 2px 0 4px rgba(0,0,0,.5); animation: si-assault-ladder 4s ease-in-out infinite; }
.scn-jargeau-assault .attacker { position:absolute; bottom:28%; left:42%; width:16px; height:30px; background: linear-gradient(180deg, #4a6a8a 0%, #2a3a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-assault-attacker 3s ease-in-out infinite; }
.scn-jargeau-assault .rubble { position:absolute; bottom:22%; left:35%; width:30px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 30% 20% 40%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.5); animation: si-assault-rubble 6s ease-in-out infinite; }
.scn-jargeau-assault .banner-advance { position:absolute; bottom:40%; left:35%; width:12px; height:16px; background: #c8553d; border-radius: 0 40% 40% 0; box-shadow: 2px 2px 4px rgba(0,0,0,.4); animation: si-assault-banner 3s ease-in-out infinite; }
@keyframes si-assault-wall { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(1px) scaleY(.99) } }
@keyframes si-assault-breach { 0%,100% { opacity:.8; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.1) } }
@keyframes si-assault-smoke { 0% { transform: translate(0,0) scale(1); opacity:.5 } 50% { transform: translate(20px,-10px) scale(1.5); opacity:.3 } 100% { transform: translate(-5px,-5px) scale(.8); opacity:.6 } }
@keyframes si-assault-ladder { 0% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.02) } 100% { transform: rotate(-2deg) scaleY(.98) } }
@keyframes si-assault-attacker { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-3px) rotate(1deg) } 60% { transform: translateY(2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes si-assault-rubble { 0% { transform: translate(0,0) rotate(0) } 50% { transform: translate(3px,-2px) rotate(5deg) } 100% { transform: translate(-2px,1px) rotate(-3deg) } }
@keyframes si-assault-banner { 0%,100% { transform: skewX(0) } 50% { transform: skewX(-10deg) } }

.scn-jargeau-taken {
  background: linear-gradient(180deg, #7aaed8 0%, #b0c8d8 40%, #c8b888 70%, #8a7a5a 100%),
              radial-gradient(ellipse at 50% 20%, #e0d8c0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-jargeau-taken .bridge-arch { position:absolute; bottom:20%; left:5%; right:5%; height:45%; background: linear-gradient(180deg, #b0a090 0%, #7a6a5a 60%, #4a3a2a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: si-taken-bridge 20s ease-in-out infinite alternate; }
.scn-jargeau-taken .river-water { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%); box-shadow: inset 0 4px 10px rgba(0,0,0,.3); animation: si-taken-water 8s ease-in-out infinite alternate; }
.scn-jargeau-taken .pursuer-horse { position:absolute; bottom:28%; left:30%; width:40px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: si-taken-pursuer 4s ease-in-out infinite; }
.scn-jargeau-taken .fleeing-figure { position:absolute; bottom:28%; left:55%; width:16px; height:36px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: si-taken-flee 3.5s ease-in-out infinite; }
.scn-jargeau-taken .capture-scuffle { position:absolute; bottom:25%; left:45%; width:24px; height:20px; background: radial-gradient(ellipse, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.6); animation: si-taken-capture 5s ease-in-out infinite; }
.scn-jargeau-taken .dust-rise { position:absolute; bottom:22%; left:35%; width:35px; height:40px; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,150,.5) 0%, transparent 100%); filter: blur(5px); border-radius: 50%; animation: si-taken-dust 6s ease-in-out infinite; }
.scn-jargeau-taken .sky-flare { position:absolute; top:10%; left:20%; width:100px; height:50px; background: radial-gradient(ellipse, rgba(255,240,200,.3) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: si-taken-flare 15s ease-in-out infinite alternate; }
@keyframes si-taken-bridge { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes si-taken-water { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(-10px) } }
@keyframes si-taken-pursuer { 0% { transform: translateX(0) scaleX(1) } 25% { transform: translateX(15px) scaleX(.95) } 50% { transform: translateX(30px) scaleX(1) } 75% { transform: translateX(15px) scaleX(1.05) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes si-taken-flee { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(-10px) rotate(2deg) } 60% { transform: translateX(-20px) rotate(-1deg) } 100% { transform: translateX(-30px) rotate(0) } }
@keyframes si-taken-capture { 0%,100% { transform: rotate(0) scale(1) } 50% { transform: rotate(5deg) scale(1.1) } }
@keyframes si-taken-dust { 0% { transform: translate(0,0) scale(1); opacity:.5 } 50% { transform: translate(10px,-8px) scale(1.3); opacity:.3 } 100% { transform: translate(-5px,-3px) scale(.9); opacity:.6 } }
@keyframes si-taken-flare { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.5; transform: scale(1.2) } 100% { opacity:.3; transform: scale(.9) } }

.scn-orleans-livery {
  background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 40%, #c0b8a8 100%),
              radial-gradient(ellipse at 50% 0%, #f0e8d8 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-orleans-livery .sunbeam { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(240,230,200,.3) 0%, rgba(240,230,200,.1) 50%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: si-livery-beam 14s ease-in-out infinite alternate; }
.scn-orleans-livery .work-table { position:absolute; bottom:10%; left:5%; right:5%; height:35%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.4); animation: si-livery-table 20s ease-in-out infinite alternate; }
.scn-orleans-livery .nettle-cloth { position:absolute; bottom:15%; left:25%; width:50%; height:40%; background: linear-gradient(135deg, #3a6a3a 0%, #5a8a4a 30%, #4a7a3a 70%, #2a5a2a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.3), inset 0 2px 6px rgba(0,0,0,.2); animation: si-livery-cloth 12s ease-in-out infinite; }
.scn-orleans-livery .needle-thread { position:absolute; bottom:25%; left:35%; width:20px; height:4px; background: linear-gradient(90deg, #c0c0c0 0%, #e0e0e0 100%); border-radius: 2px; transform-origin: left center; box-shadow: 0 0 2px rgba(0,0,0,.3); animation: si-livery-needle 5s ease-in-out infinite; }
.scn-orleans-livery .dye-pot { position:absolute; bottom:12%; left:15%; width:30px; height:30px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 40% 40% 15% 15%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.6), 0 2px 6px rgba(0,0,0,.3); animation: si-livery-pot 8s ease-in-out infinite; }
.scn-orleans-livery .pollen-float { position:absolute; top:20%; left:20%; width:10px; height:10px; background: radial-gradient(ellipse, rgba(240,220,160,.6) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: si-livery-pollen 18s linear infinite; }
.scn-orleans-livery .soft-shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.25) 100%); animation: si-livery-shadow 25s ease-in-out infinite alternate; }
@keyframes si-livery-beam { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.05) } 100% { opacity:.4; transform: scaleX(.95) } }
@keyframes si-livery-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes si-livery-cloth { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(.98) rotate(-1deg) } }
@keyframes si-livery-needle { 0% { transform: translate(0,0) rotate(10deg) } 50% { transform: translate(5px,2px) rotate(-5deg) } 100% { transform: translate(-3px,-1px) rotate(15deg) } }
@keyframes si-livery-pot { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes si-livery-pollen { 0% { transform: translate(0,0) scale(1); opacity:.6 } 50% { transform: translate(30px,-15px) scale(1.5); opacity:.3 } 100% { transform: translate(60px,-30px) scale(.8); opacity:.5 } }
@keyframes si-livery-shadow { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.3 } }

/* Scenes */

.scn-aftermath-tourelles {
  background: linear-gradient(180deg, #0d1b2a 0%, #1b2838 40%, #2c3e50 70%, #1f2a3a 100%),
              radial-gradient(ellipse at 50% 90%, #2c3e50 0%, transparent 60%);
  animation: at-bg-pulse 20s ease-in-out infinite alternate;
}
.scn-aftermath-tourelles .night-sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #0a1628 0%, #152238 40%, transparent 100%);
  animation: at-sky 30s ease-in-out infinite;
}
.scn-aftermath-tourelles .river {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #1a2a3a 0%, #1a2a3a 50%, #0d1a28 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: at-river 12s ease-in-out infinite alternate;
}
.scn-aftermath-tourelles .bridge {
  position:absolute; bottom:32%; left:15%; width:70%; height:15%;
  background: linear-gradient(180deg, #2c3e50 0%, #1b2838 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: at-bridge 20s ease-in-out infinite;
}
.scn-aftermath-tourelles .fortress {
  position:absolute; bottom:30%; left:65%; width:25%; height:20%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1b2838 100%);
  clip-path: polygon(0% 20%, 100% 20%, 100% 100%, 0% 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: at-fortress 15s ease-in-out infinite;
}
.scn-aftermath-tourelles .figure-mourning {
  position:absolute; bottom:36%; left:25%; width:24px; height:40px;
  background: linear-gradient(180deg, #0a1220 0%, #050a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: at-figure 4s ease-in-out infinite;
}
.scn-aftermath-tourelles .lantern-row {
  position:absolute; bottom:44%; left:20%; width:60%; height:4px;
  background: radial-gradient(circle at 10% 50%, #e0a050 0%, transparent 15%),
              radial-gradient(circle at 30% 50%, #e0a050 0%, transparent 15%),
              radial-gradient(circle at 50% 50%, #e0a050 0%, transparent 15%),
              radial-gradient(circle at 70% 50%, #e0a050 0%, transparent 15%),
              radial-gradient(circle at 90% 50%, #e0a050 0%, transparent 15%);
  animation: at-lantern 6s ease-in-out infinite;
}
.scn-aftermath-tourelles .star {
  position:absolute; width:3px; height:3px;
  background: #d0d8f0; border-radius: 50%;
  box-shadow: 0 0 6px #a0b8e0;
  animation: at-star 3s ease-in-out infinite;
}
.scn-aftermath-tourelles .star-1 { top:8%; left:12%; animation-delay:0s; }
.scn-aftermath-tourelles .star-2 { top:14%; left:80%; animation-delay:1.5s; }
.scn-aftermath-tourelles .mist {
  position:absolute; bottom:30%; left:0; right:0; height:20%;
  background: linear-gradient(90deg, transparent 0%, rgba(200,210,240,0.05) 50%, transparent 100%);
  filter: blur(8px);
  animation: at-mist 25s linear infinite;
}

@keyframes at-bg-pulse { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes at-sky { 0% { opacity:0.8; transform:translateY(0) } 50% { opacity:1; transform:translateY(-2px) } 100% { opacity:0.85; transform:translateY(1px) } }
@keyframes at-river { 0% { transform:scaleY(1) translateY(0) } 50% { transform:scaleY(1.02) translateY(-1px) } 100% { transform:scaleY(0.98) translateY(2px) } }
@keyframes at-bridge { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) rotate(0.3deg) } 100% { transform:translateY(1px) } }
@keyframes at-fortress { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) scale(1.005) } 100% { transform:translateY(0) } }
@keyframes at-figure { 0% { transform:translateX(0) rotate(-2deg) } 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 at-lantern { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes at-star { 0% { opacity:0.6; transform:scale(0.8) } 50% { opacity:1; transform:scale(1.2) } 100% { opacity:0.7; transform:scale(0.9) } }
@keyframes at-mist { 0% { transform:translateX(-20%) } 100% { transform:translateX(100vw) } }

/* Entry by Bridge */
.scn-entry-by-bridge {
  background: linear-gradient(180deg, #1a0f0a 0%, #2a1a10 30%, #4a2a15 60%, #2a1a10 100%),
              radial-gradient(ellipse at 50% 100%, #6a3a1a 0%, transparent 70%);
  animation: eb-bg-pulse 15s ease-in-out infinite alternate;
}
.scn-entry-by-bridge .night-sky-eb {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #1a0f0a 0%, #3a1a0a 100%);
  animation: eb-sky 30s ease-in-out infinite;
}
.scn-entry-by-bridge .bridge-arch {
  position:absolute; bottom:35%; left:10%; width:80%; height:25%;
  background: linear-gradient(180deg, #4a2a15 0%, #3a1a0a 100%);
  border-radius: 50% / 100% 100% 0 0;
  box-shadow: 0 -8px 16px rgba(0,0,0,0.7);
  animation: eb-arch 20s ease-in-out infinite;
}
.scn-entry-by-bridge .torch-light {
  position:absolute; bottom:42%; left:50%; width:100px; height:100px;
  background: radial-gradient(circle, rgba(255,200,80,0.4) 0%, rgba(255,150,30,0.2) 40%, transparent 70%);
  transform: translateX(-50%);
  animation: eb-torch 3s ease-in-out infinite alternate;
}
.scn-entry-by-bridge .procession-people {
  position:absolute; bottom:30%; left:15%; width:70%; height:15%;
  background: linear-gradient(180deg, rgba(50,30,15,0.9) 0%, rgba(30,15,5,0.9) 100%);
  clip-path: polygon(0% 30%, 10% 20%, 20% 30%, 35% 10%, 50% 30%, 70% 15%, 85% 30%, 100% 10%, 100% 100%, 0% 100%);
  animation: eb-people 8s ease-in-out infinite;
}
.scn-entry-by-bridge .banner {
  position:absolute; bottom:38%; left:48%; width:12px; height:30px;
  background: linear-gradient(180deg, #7a4020 0%, #5a2a10 100%);
  border-radius: 10% 10% 20% 20%;
  transform-origin: bottom left;
  animation: eb-banner 4s ease-in-out infinite;
}
.scn-entry-by-bridge .torch-flame-1,
.scn-entry-by-bridge .torch-flame-2 {
  position:absolute; bottom:48%; width:8px; height:20px;
  border-radius: 50% 50% 20% 20%;
  background: linear-gradient(180deg, #ffa040 0%, #ff6020 60%, transparent 100%);
  filter: blur(2px);
  animation: eb-flame 1.5s ease-in-out infinite alternate;
}
.scn-entry-by-bridge .torch-flame-1 { left:42%; animation-delay:0s; }
.scn-entry-by-bridge .torch-flame-2 { left:55%; animation-delay:0.75s; }
.scn-entry-by-bridge .ground-eb {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 70% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
  animation: eb-ground 15s ease-in-out infinite alternate;
}

@keyframes eb-bg-pulse { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes eb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes eb-arch { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) rotate(0.2deg) } 100% { transform:translateY(1px) } }
@keyframes eb-torch { 0% { transform:translateX(-50%) scale(0.9); opacity:0.8 } 100% { transform:translateX(-50%) scale(1.1); opacity:1 } }
@keyframes eb-people { 0% { transform:translateX(0) } 50% { transform:translateX(5px) } 100% { transform:translateX(-3px) } }
@keyframes eb-banner { 0% { transform:rotate(-10deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(-10deg) } }
@keyframes eb-flame { 0% { height:15px; opacity:0.8; transform:translateY(0) } 100% { height:25px; opacity:1; transform:translateY(-3px) } }
@keyframes eb-ground { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(0.98) } }

/* Wound Dressed */
.scn-wound-dressed {
  background: linear-gradient(135deg, #1a1210 0%, #2a1a12 30%, #3a2218 60%, #2a1a12 100%),
              radial-gradient(circle at 60% 50%, #4a2a1a 0%, transparent 50%);
  animation: wd-bg-pulse 18s ease-in-out infinite alternate;
}
.scn-wound-dressed .wall-bg {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0a08 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.7);
  animation: wd-wall 25s ease-in-out infinite;
}
.scn-wound-dressed .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0805 100%);
  border-radius: 20% 80% 0 0 / 10% 30% 0 0;
  animation: wd-floor 12s ease-in-out infinite alternate;
}
.scn-wound-dressed .bed {
  position:absolute; bottom:20%; left:35%; width:30%; height:30%;
  background: linear-gradient(180deg, #3a2218 0%, #2a1210 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8), 0 4px 8px rgba(0,0,0,0.5);
  animation: wd-bed 20s ease-in-out infinite;
}
.scn-wound-dressed .figure-wounded {
  position:absolute; bottom:28%; left:48%; width:30px; height:45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  transform-origin: left bottom;
  animation: wd-figure 6s ease-in-out infinite;
}
.scn-wound-dressed .surgeon-hand {
  position:absolute; bottom:32%; left:52%; width:14px; height:20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: right top;
  animation: wd-hand 4s ease-in-out infinite alternate;
}
.scn-wound-dressed .candle {
  position:absolute; bottom:35%; left:20%; width:8px; height:24px;
  background: linear-gradient(0deg, #5a3a1a 0%, #8a5a2a 60%, transparent 100%);
  border-radius: 30% 30% 0 0;
  animation: wd-candle 5s ease-in-out infinite;
}
.scn-wound-dressed .candle-glow {
  position:absolute; bottom:38%; left:16%; width:40px; height:40px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, rgba(255,150,50,0.1) 50%, transparent 80%);
  animation: wd-glow 4s ease-in-out infinite alternate;
}
.scn-wound-dressed .shelf {
  position:absolute; bottom:50%; left:10%; width:80%; height:4px;
  background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 2px;
  animation: wd-shelf 30s ease-in-out infinite;
}

@keyframes wd-bg-pulse { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes wd-wall { 0% { background-position:0% 0% } 50% { background-position:50% 0% } 100% { background-position:100% 0% } }
@keyframes wd-floor { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.01) } 100% { transform:scaleY(0.99) } }
@keyframes wd-bed { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes wd-figure { 0% { transform:rotate(8deg) } 50% { transform:rotate(12deg) translateY(-1px) } 100% { transform:rotate(8deg) } }
@keyframes wd-hand { 0% { transform:rotate(0deg) } 100% { transform:rotate(-10deg) } }
@keyframes wd-candle { 0% { transform:scaleY(0.9); opacity:0.8 } 50% { transform:scaleY(1.1); opacity:1 } 100% { transform:scaleY(0.95); opacity:0.9 } }
@keyframes wd-glow { 0% { opacity:0.6; transform:scale(0.9) } 100% { opacity:1; transform:scale(1.1) } }
@keyframes wd-shelf { 0% { box-shadow: 0 0 4px #2a1a0a } 50% { box-shadow: 0 0 8px #4a2a1a } 100% { box-shadow: 0 0 4px #2a1a0a } }

/* Sunday Standoff */
.scn-sunday-standoff {
  background: linear-gradient(180deg, #87CEEB 0%, #b0d8f0 30%, #e0f0ff 60%, #c0d8e8 100%),
              radial-gradient(ellipse at 50% 100%, #d0e0f0 0%, transparent 70%);
  animation: ss-bg-pulse 20s ease-in-out infinite alternate;
}
.scn-sunday-standoff .sky-ss {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #7bb8d8 0%, #c0e0f0 100%);
  animation: ss-sky 30s ease-in-out infinite;
}
.scn-sunday-standoff .field {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #6a9a4a 0%, #4a7a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.1);
  animation: ss-field 15s ease-in-out infinite alternate;
}
.scn-sunday-standoff .church-spire {
  position:absolute; bottom:55%; left:50%; width:30px; height:60px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  clip-path: polygon(25% 0%, 75% 0%, 100% 100%, 0% 100%);
  transform: translateX(-50%);
  animation: ss-spire 25s ease-in-out infinite;
}
.scn-sunday-standoff .soldiers {
  position:absolute; bottom:35%; left:20%; width:60%; height:20%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  clip-path: polygon(0% 30%, 10% 20%, 20% 30%, 30% 10%, 40% 30%, 50% 20%, 60% 30%, 70% 10%, 80% 30%, 90% 20%, 100% 30%, 100% 100%, 0% 100%);
  animation: ss-soldiers 10s ease-in-out infinite;
}
.scn-sunday-standoff .jeanne-figure {
  position:absolute; bottom:30%; left:45%; width:20px; height:40px;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ss-jeanne 5s ease-in-out infinite;
}
.scn-sunday-standoff .sunlight-rays {
  position:absolute; top:0; left:30%; width:40%; height:60%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  clip-path: polygon(50% 0%, 40% 100%, 60% 100%);
  animation: ss-rays 8s ease-in-out infinite alternate;
}
.scn-sunday-standoff .grass-blade {
  position:absolute; bottom:40%; left:35%; width:2px; height:15px;
  background: linear-gradient(180deg, #6a9a4a 0%, #4a7a2a 100%);
  border-radius: 50%;
  transform-origin: bottom center;
  animation: ss-grass 3s ease-in-out infinite;
}

@keyframes ss-bg-pulse { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ss-sky { 0% { opacity:0.8; transform:translateY(0) } 50% { opacity:1; transform:translateY(-2px) } 100% { opacity:0.85; transform:translateY(1px) } }
@keyframes ss-field { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(0.98) } }
@keyframes ss-spire { 0% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-50%) scaleY(1.02) } 100% { transform:translateX(-50%) scaleY(0.98) } }
@keyframes ss-soldiers { 0% { transform:translateX(0) } 50% { transform:translateX(3px) } 100% { transform:translateX(-3px) } }
@keyframes ss-jeanne { 0% { transform:translateX(-50%) rotate(-2deg) } 50% { transform:translateX(-50%) rotate(2deg) } 100% { transform:translateX(-50%) rotate(-2deg) } }
@keyframes ss-rays { 0% { opacity:0.5; transform:scaleY(0.8) } 100% { opacity:1; transform:scaleY(1) } }
@keyframes ss-grass { 0% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(-5deg) } }

/* bishop-le-mans-speech */
.scn-bishop-le-mans-speech {
  background: 
    linear-gradient(180deg, #f5d0a0 0%, #c89050 40%, #a07030 100%),
    radial-gradient(ellipse at 50% 80%, #e0b070 0%, transparent 60%);
}
.scn-bishop-le-mans-speech .window-arch {
  position: absolute; top: 8%; left: 15%; width: 70%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, transparent 100%);
  border-radius: 50% / 30% 30% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.4);
  animation: bls-arch 8s ease-in-out infinite;
}
.scn-bishop-le-mans-speech .glass-a {
  position: absolute; top: 10%; left: 20%; width: 25%; height: 42%;
  background: linear-gradient(180deg, #d8a060 0%, #b07030 100%);
  border-radius: 10% 10% 0 0;
  opacity: 0.6; filter: blur(3px);
  animation: bls-glow 5s ease-in-out infinite alternate;
}
.scn-bishop-le-mans-speech .glass-b {
  position: absolute; top: 10%; right: 20%; width: 25%; height: 42%;
  background: linear-gradient(180deg, #c08040 0%, #905020 100%);
  border-radius: 10% 10% 0 0;
  opacity: 0.5; filter: blur(4px);
  animation: bls-glow 5s ease-in-out infinite alternate-reverse;
}
.scn-bishop-le-mans-speech .pulpit {
  position: absolute; bottom: 20%; left: 42%; width: 16%; height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-bishop-le-mans-speech .bishop {
  position: absolute; bottom: 32%; left: 44%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bls-bishop 6s ease-in-out infinite;
}
.scn-bishop-le-mans-speech .candle-glow {
  position: absolute; bottom: 26%; left: 48%; width: 3%; height: 5%;
  background: radial-gradient(circle, #ffd080 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffc060, 0 0 80px 40px rgba(255,192,96,0.3);
  animation: bls-candle 2s ease-in-out infinite alternate;
}
.scn-bishop-le-mans-speech .congregation {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
  animation: bls-sway 10s linear infinite;
}
@keyframes bls-arch { 0% { opacity: 0.7; } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.8; } }
@keyframes bls-glow { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes bls-bishop { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-0.5deg) translateY(0); } }
@keyframes bls-candle { 0% { box-shadow: 0 0 30px 15px #ffc060; } 50% { box-shadow: 0 0 50px 25px #ffd080; } 100% { box-shadow: 0 0 35px 18px #ffc060; } }
@keyframes bls-sway { 0% { transform: translateX(-2px); } 50% { transform: translateX(2px); } 100% { transform: translateX(-2px); } }

/* king-desires-revision */
.scn-king-desires-revision {
  background: 
    linear-gradient(180deg, #8a7050 0%, #5a4030 40%, #2a1a10 100%),
    radial-gradient(ellipse at 50% 30%, #c09060 0%, transparent 60%);
}
.scn-king-desires-revision .pillar-left {
  position: absolute; top: 0; left: 5%; width: 8%; height: 100%;
  background: linear-gradient(90deg, #6a5040 0%, #4a3020 50%, #3a2010 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-king-desires-revision .pillar-right {
  position: absolute; top: 0; right: 5%; width: 8%; height: 100%;
  background: linear-gradient(-90deg, #6a5040 0%, #4a3020 50%, #3a2010 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-king-desires-revision .throne {
  position: absolute; bottom: 20%; left: 38%; width: 24%; height: 40%;
  background: linear-gradient(180deg, #7a6040 0%, #4a3020 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);
}
.scn-king-desires-revision .king {
  position: absolute; bottom: 30%; left: 42%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: kdr-king 4s ease-in-out infinite;
}
.scn-king-desires-revision .scroll {
  position: absolute; bottom: 38%; left: 36%; width: 5%; height: 12%;
  background: linear-gradient(90deg, #c0a080 0%, #a08060 100%);
  border-radius: 0 0 30% 30%;
  transform: rotate(10deg);
  animation: kdr-scroll 6s linear infinite;
}
.scn-king-desires-revision .shadow-stripe {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 10%;
  background: rgba(0,0,0,0.3);
  transform: skewX(-20deg);
  animation: kdr-stripe 8s ease-in-out infinite alternate;
}
.scn-king-desires-revision .crown {
  position: absolute; top: 15%; left: 45%; width: 10%; height: 10%;
  background: linear-gradient(180deg, #d0b080 0%, #a08040 100%);
  clip-path: polygon(20% 100%, 0 0, 50% 20%, 100% 0, 80% 100%);
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.5));
  animation: kdr-crown 3s ease-in-out infinite alternate;
}
@keyframes kdr-king { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes kdr-scroll { 0% { transform: rotate(8deg) scaleY(1); } 50% { transform: rotate(12deg) scaleY(1.05); } 100% { transform: rotate(8deg) scaleY(1); } }
@keyframes kdr-stripe { 0% { opacity: 0.4; transform: skewX(-25deg) translateX(0); } 50% { opacity: 0.8; transform: skewX(-15deg) translateX(10px); } 100% { opacity: 0.3; transform: skewX(-25deg) translateX(-5px); } }
@keyframes kdr-crown { 0% { filter: drop-shadow(0 4px 8px rgba(0,0,0,0.5)) brightness(1); } 100% { filter: drop-shadow(0 4px 8px rgba(0,0,0,0.5)) brightness(1.2); } }

/* preliminary-inquiry */
.scn-preliminary-inquiry {
  background: 
    linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 40%, #2a3a3a 100%),
    radial-gradient(ellipse at 20% 50%, #8a9a9a 0%, transparent 60%);
}
.scn-preliminary-inquiry .window-narrow {
  position: absolute; top: 5%; left: 15%; width: 15%; height: 70%;
  background: linear-gradient(180deg, #8a9a9a 0%, #4a5a5a 100%);
  border: 4px solid #3a4a4a;
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: pri-window 12s ease-in-out infinite alternate;
}
.scn-preliminary-inquiry .desk {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4);
}
.scn-preliminary-inquiry .inquisitor {
  position: absolute; bottom: 30%; left: 30%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pri-figure 5s ease-in-out infinite;
}
.scn-preliminary-inquiry .paper-stack {
  position: absolute; bottom: 32%; left: 45%; width: 12%; height: 8%;
  background: linear-gradient(90deg, #b0a090 0%, #908070 100%);
  border-radius: 2% 2% 6% 6%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: pri-paper 8s linear infinite;
}
.scn-preliminary-inquiry .candle {
  position: absolute; bottom: 48%; left: 32%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #e0c080 0%, #a08050 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 10px 5px rgba(255,200,100,0.3);
}
.scn-preliminary-inquiry .candle-halo {
  position: absolute; bottom: 42%; left: 29%; width: 8%; height: 12%;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  opacity: 0.6;
  animation: pri-halo 3s ease-in-out infinite alternate;
}
.scn-preliminary-inquiry .cloud-pass {
  position: absolute; top: 8%; left: 60%; width: 30%; height: 10%;
  background: linear-gradient(180deg, rgba(180,200,200,0.4) 0%, transparent 100%);
  filter: blur(10px);
  border-radius: 50%;
  animation: pri-cloud 40s linear infinite reverse;
}
@keyframes pri-window { 0% { opacity: 0.5; } 50% { opacity: 0.8; transform: scaleY(1.02); } 100% { opacity: 0.6; } }
@keyframes pri-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-0.5deg); } }
@keyframes pri-paper { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes pri-halo { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(0.95); } }
@keyframes pri-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

/* legate-inquiry */
.scn-legate-inquiry {
  background: 
    linear-gradient(180deg, #b09070 0%, #8a7050 30%, #5a4030 100%),
    radial-gradient(ellipse at 50% 20%, #d0b090 0%, transparent 70%);
}
.scn-legate-inquiry .floor-tiles {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%;
  background: 
    linear-gradient(90deg, #6a5040 25%, transparent 25%, transparent 50%, #6a5040 50%, #6a5040 75%, transparent 75%);
  background-size: 8% 100%;
  opacity: 0.6;
  animation: liq-tiles 20s linear infinite;
}
.scn-legate-inquiry .banner {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #702243 0%, #4a122a 100%);
  border-radius: 2% 2% 8% 8% / 4% 4% 12% 12%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: liq-banner 7s ease-in-out infinite alternate;
}
.scn-legate-inquiry .legate {
  position: absolute; bottom: 20%; left: 15%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #c8553d 0%, #8a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: liq-legate 6s ease-in-out infinite;
}
.scn-legate-inquiry .inquisitor-other {
  position: absolute; bottom: 20%; right: 15%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #b87878 0%, #7a4848 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: liq-inquisitor 6s ease-in-out infinite reverse;
}
.scn-legate-inquiry .lectern {
  position: absolute; bottom: 15%; left: 42%; width: 16%; height: 25%;
  background: linear-gradient(180deg, #5a4030 0%, #2a1a10 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 16px rgba(0,0,0,0.5);
}
.scn-legate-inquiry .shadow-left {
  position: absolute; bottom: 15%; left: 5%; width: 20%; height: 30%;
  background: rgba(0,0,0,0.2);
  transform: skewX(-10deg);
  animation: liq-shadow 10s ease-in-out infinite alternate;
}
.scn-legate-inquiry .shadow-right {
  position: absolute; bottom: 15%; right: 5%; width: 20%; height: 30%;
  background: rgba(0,0,0,0.2);
  transform: skewX(10deg);
  animation: liq-shadow 10s ease-in-out infinite alternate-reverse;
}
.scn-legate-inquiry .halo-light {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 15%;
  background: radial-gradient(circle, #ffe0a0 0%, transparent 70%);
  opacity: 0.5;
  animation: liq-halo 4s ease-in-out infinite alternate;
}
@keyframes liq-tiles { 0% { background-position-x: 0; } 100% { background-position-x: 8%; } }
@keyframes liq-banner { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-3px); } 100% { transform: scaleX(0.98) translateY(0); } }
@keyframes liq-legate { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg); } }
@keyframes liq-inquisitor { 0% { transform: rotate(2deg); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(1deg); } }
@keyframes liq-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }
@keyframes liq-halo { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.95); } }

.scn-troyes-opened { background: linear-gradient(180deg, #f5c88a 0%, #e8a56a 30%, #d48950 60%, #a0683a 100%), radial-gradient(ellipse at 50% 0%, #ffdbb5 0%, transparent 60%); }

.scn-troyes-opened .sky-dawn { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffdbb5 0%, #f5c88a 40%, #e8a56a 70%, transparent 100%); animation: to-sky 14s ease-in-out infinite alternate; }
.scn-troyes-opened .sun-haze { position:absolute; top:10%; left:35%; width:120px; height:80px; background: radial-gradient(circle, rgba(255,230,180,.8) 0%, rgba(255,200,140,.3) 40%, transparent 70%); border-radius:50%; filter: blur(12px); animation: to-haze 10s ease-in-out infinite alternate; }
.scn-troyes-opened .city-wall { position:absolute; bottom:28%; left:5%; right:5%; height:35%; background: linear-gradient(180deg, #b8885a 0%, #9a7040 50%, #7a5830 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: to-wall 20s ease-in-out infinite alternate; }
.scn-troyes-opened .gate-arch { position:absolute; bottom:28%; left:38%; right:38%; height:30%; background: radial-gradient(ellipse at 50% 100%, #5a3a20 0%, #3a2a10 60%, #2a1a08 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-troyes-opened .gate-open { position:absolute; bottom:28%; left:44%; right:44%; height:28%; background: linear-gradient(180deg, #ffdbb5 0%, #f5c88a 50%, #d48950 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: 0 0 30px 10px rgba(255,219,181,.7); animation: to-glow 6s ease-in-out infinite alternate; }
.scn-troyes-opened .figure-maid { position:absolute; bottom:26%; left:46%; width:16px; height:32px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a20 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: to-walk 5s ease-in-out infinite; }
.scn-troyes-opened .figure-bailie { position:absolute; bottom:26%; left:42%; width:18px; height:34px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: to-stumble 6s ease-in-out infinite; }
.scn-troyes-opened .flag-banner { position:absolute; bottom:42%; left:47%; width:4px; height:40px; background: #5a3a20; transform-origin: bottom center; animation: to-pole 8s ease-in-out infinite; }
.scn-troyes-opened .flag-banner::after { content:''; position:absolute; top:-8px; left:2px; width:24px; height:16px; background: linear-gradient(135deg, #b87878 0%, #8a5050 40%, #5e1a1d 100%); border-radius: 0 40% 30% 0; transform-origin: left center; animation: to-flag-wave 3s ease-in-out infinite; }
.scn-troyes-opened .mist-bank { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(245,200,138,.5) 0%, rgba(232,165,106,.2) 60%, transparent 100%); filter: blur(10px); animation: to-mist 25s ease-in-out infinite alternate; }

@keyframes to-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes to-haze { 0% { transform: scale(1) translateX(0); opacity:.6 } 50% { transform: scale(1.05) translateX(10px); opacity:.9 } 100% { transform: scale(.98) translateX(-5px); opacity:.7 } }
@keyframes to-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes to-glow { 0% { box-shadow: 0 0 20px 6px rgba(255,219,181,.5); opacity:.85 } 50% { box-shadow: 0 0 40px 14px rgba(255,230,200,.9); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(255,219,181,.6); opacity:.9 } }
@keyframes to-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes to-stumble { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-3px) rotate(-2deg) translateY(0) } 60% { transform: translateX(0) rotate(1deg) translateY(-1px) } 80% { transform: translateX(-2px) rotate(-1deg) translateY(0) } }
@keyframes to-pole { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes to-flag-wave { 0% { transform: rotate(-5deg) } 30% { transform: rotate(8deg) } 60% { transform: rotate(-3deg) } 100% { transform: rotate(6deg) } }
@keyframes to-mist { 0% { transform: translateY(0) scale(1); opacity:.4 } 50% { transform: translateY(-5px) scale(1.05); opacity:.7 } 100% { transform: translateY(2px) scale(.95); opacity:.5 } }

.scn-maid-defends-prisoners { background: linear-gradient(180deg, #e8c070 0%, #d4a550 30%, #b88838 60%, #8a6830 100%), radial-gradient(ellipse at 50% 0%, #ffecb5 0%, transparent 60%); }

.scn-maid-defends-prisoners .sunlit-ground { position:absolute; inset:40% 0 0 0; background: linear-gradient(180deg, #c8a048 0%, #a88030 50%, #886028 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: md-ground 15s ease-in-out infinite alternate; }
.scn-maid-defends-prisoners .figure-maid-center { position:absolute; bottom:35%; left:42%; width:22px; height:44px; background: linear-gradient(180deg, #8a6840 0%, #5a3a20 50%, #3a2010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: md-stand 4s ease-in-out infinite; }
.scn-maid-defends-prisoners .banner-staff { position:absolute; bottom:50%; left:43.5%; width:4px; height:55px; background: #4a3020; transform-origin: bottom center; animation: md-staff 6s ease-in-out infinite; }
.scn-maid-defends-prisoners .banner-staff::after { content:''; position:absolute; top:-10px; left:2px; width:28px; height:20px; background: linear-gradient(135deg, #b87878 0%, #a06060 40%, #7a4040 100%); border-radius: 0 50% 30% 0; box-shadow: 0 2px 8px rgba(0,0,0,.3); transform-origin: left center; animation: md-banner 3s ease-in-out infinite; }
.scn-maid-defends-prisoners .prisoner-left { position:absolute; bottom:28%; left:30%; width:16px; height:28px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: md-kneel 5s ease-in-out infinite; }
.scn-maid-defends-prisoners .prisoner-right { position:absolute; bottom:28%; left:52%; width:16px; height:28px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: md-kneel 5s ease-in-out infinite 0.5s; }
.scn-maid-defends-prisoners .burgundian { position:absolute; bottom:32%; right:22%; width:20px; height:40px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 50%, #1a0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: md-loom 7s ease-in-out infinite; }
.scn-maid-defends-prisoners .shadow-stripe { position:absolute; bottom:30%; left:25%; right:25%; height:40%; background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.25) 50%, transparent 100%); border-radius: 20% 20% 0 0; filter: blur(8px); animation: md-shadow 12s ease-in-out infinite alternate; }
.scn-maid-defends-prisoners .dust-swirl { position:absolute; bottom:38%; left:45%; width:30px; height:20px; background: radial-gradient(circle, rgba(200,160,72,.3) 0%, transparent 70%); border-radius:50%; filter: blur(6px); animation: md-dust 8s ease-in-out infinite; }

@keyframes md-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(.99) } }
@keyframes md-stand { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) translateY(-2px) } 75% { transform: translateX(-2px) rotate(0) translateY(0) } }
@keyframes md-staff { 0%,100% { transform: rotate(-1deg) } 50% { transform: rotate(2deg) } }
@keyframes md-banner { 0% { transform: rotate(-8deg) scaleX(1) } 30% { transform: rotate(10deg) scaleX(1.02) } 60% { transform: rotate(-4deg) scaleX(.98) } 100% { transform: rotate(6deg) scaleX(1.01) } }
@keyframes md-kneel { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(-1deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-2px) rotate(0) } }
@keyframes md-loom { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(3px) scale(1.02) } }
@keyframes md-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.4 } }
@keyframes md-dust { 0% { transform: translate(0,0) scale(1); opacity:.3 } 50% { transform: translate(8px,-5px) scale(1.2); opacity:.6 } 100% { transform: translate(-4px,2px) scale(.9); opacity:.2 } }

.scn-king-enters-troyes { background: linear-gradient(180deg, #ffdbb5 0%, #f0c080 30%, #d4a050 60%, #b08040 100%), radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 60%); }

.scn-king-enters-troyes .golden-street { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8a058 0%, #a08040 50%, #886830 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-king-enters-troyes .king-figure { position:absolute; bottom:32%; left:44%; width:24px; height:46px; background: linear-gradient(180deg, #c08050 0%, #8a6030 50%, #5a3a18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 15px 5px rgba(255,215,140,.4); transform-origin: bottom center; animation: ke-ride 4s ease-in-out infinite; }
.scn-king-enters-troyes .maid-rider { position:absolute; bottom:33%; left:36%; width:18px; height:40px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a20 50%, #3a2010 100%); border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%; transform-origin: bottom center; animation: ke-ride 4s ease-in-out infinite -0.3s; }
.scn-king-enters-troyes .banner-hold { position:absolute; bottom:45%; left:37%; width:4px; height:45px; background: #5a3a20; transform-origin: bottom center; animation: ke-staff 5s ease-in-out infinite; }
.scn-king-enters-troyes .banner-hold::after { content:''; position:absolute; top:-8px; left:2px; width:26px; height:18px; background: linear-gradient(135deg, #c8553d 0%, #a0461a 50%, #7a3010 100%); border-radius: 0 50% 30% 0; box-shadow: 0 2px 10px rgba(0,0,0,.3); transform-origin: left center; animation: ke-banner 3s ease-in-out infinite; }
.scn-king-enters-troyes .duke-alencon { position:absolute; bottom:32%; right:28%; width:20px; height:42px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 50%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ke-ride 4s ease-in-out infinite -0.6s; }
.scn-king-enters-troyes .crowd-left { position:absolute; bottom:22%; left:2%; right:50%; height:20%; background: linear-gradient(180deg, rgba(90,60,30,.6) 0%, rgba(70,50,20,.4) 60%, transparent 100%); border-radius: 30% 50% 0 0; filter: blur(4px); animation: ke-crowd 9s ease-in-out infinite alternate; }
.scn-king-enters-troyes .crowd-right { position:absolute; bottom:22%; left:52%; right:2%; height:22%; background: linear-gradient(180deg, rgba(90,60,30,.5) 0%, rgba(70,50,20,.3) 60%, transparent 100%); border-radius: 50% 30% 0 0; filter: blur(4px); animation: ke-crowd 9s ease-in-out infinite alternate 1s; }
.scn-king-enters-troyes .petal-drift { position:absolute; top:20%; left:20%; width:8px; height:8px; background: radial-gradient(circle, #ffd0a0 0%, #f0b080 60%, transparent 100%); border-radius: 50% 0 50% 0; filter: blur(1px); animation: ke-petal 12s ease-in-out infinite; }
.scn-king-enters-troyes .sunburst-rays { position:absolute; top:-5%; left:30%; right:30%; bottom:40%; background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,.6) 0%, rgba(255,220,160,.2) 40%, transparent 70%); border-radius: 50%; filter: blur(15px); animation: ke-rays 8s ease-in-out infinite alternate; }

@keyframes ke-ride { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(0) } }
@keyframes ke-staff { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes ke-banner { 0% { transform: rotate(-6deg) scaleX(1) } 30% { transform: rotate(12deg) scaleX(1.03) } 60% { transform: rotate(-3deg) scaleX(.97) } 100% { transform: rotate(8deg) scaleX(1.01) } }
@keyframes ke-crowd { 0% { opacity:.5; transform: translateY(0) } 50% { opacity:.8; transform: translateY(-3px) } 100% { opacity:.6; transform: translateY(1px) } }
@keyframes ke-petal { 0% { transform: translate(0,0) rotate(0); opacity:.4 } 25% { transform: translate(15px,20px) rotate(90deg); opacity:.7 } 50% { transform: translate(30px,40px) rotate(180deg); opacity:.3 } 75% { transform: translate(45px,60px) rotate(270deg); opacity:.6 } 100% { transform: translate(60px,80px) rotate(360deg); opacity:.2 } }
@keyframes ke-rays { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.5; transform: scale(.95) } }

.scn-chalons-reims-surrender { background: linear-gradient(180deg, #ffdbb5 0%, #e8b878 30%, #c89850 60%, #a07830 100%), radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 60%); }

.scn-chalons-reims-surrender .sky-ceremony { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #fff0d0 0%, #ffdbb5 30%, #e8b878 70%, transparent 100%); animation: cr-sky 16s ease-in-out infinite alternate; }
.scn-chalons-reims-surrender .cathedral-spire { position:absolute; bottom:25%; left:40%; right:40%; height:55%; background: linear-gradient(180deg, #b89860 0%, #9a7848 40%, #7a5830 100%); clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,.2), inset 10px 0 20px rgba(255,235,200,.15); animation: cr-spire 20s ease-in-out infinite alternate; }
.scn-chalons-reims-surrender .cathedral-body { position:absolute; bottom:25%; left:30%; right:30%; height:35%; background: linear-gradient(180deg, #b89860 0%, #9a7848 40%, #7a5830 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-chalons-reims-surrender .herald-montjoie { position:absolute; bottom:28%; left:26%; width:16px; height:34px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-herald 5s ease-in-out infinite; }
.scn-chalons-reims-surrender .herald-montjoie::before { content:''; position:absolute; top:-4px; left:4px; width:8px; height:20px; background: linear-gradient(180deg, #4a3020 0%, #2a1a08 100%); border-radius: 0 40% 40% 0; transform-origin: bottom left; animation: cr-trumpet 3s ease-in-out infinite; }
.scn-chalons-reims-surrender .figure-king { position:absolute; bottom:28%; left:44%; width:22px; height:42px; background: linear-gradient(180deg, #c08050 0%, #8a6030 50%, #5a3a18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 12px 4px rgba(255,215,140,.3); transform-origin: bottom center; animation: cr-king 6s ease-in-out infinite; }
.scn-chalons-reims-surrender .crowd-far { position:absolute; bottom:22%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, rgba(90,60,30,.4) 0%, rgba(70,50,20,.2) 60%, transparent 100%); border-radius: 40% 40% 0 0; filter: blur(6px); animation: cr-crowd 12s ease-in-out infinite alternate; }
.scn-chalons-reims-surrender .banner-line { position:absolute; bottom:35%; left:35%; right:35%; height:4px; background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, #c8553d 8px, #c8553d 20px, #a0461a 20px, #a0461a 28px); filter: blur(1px); animation: cr-banners 8s ease-in-out infinite; }
.scn-chalons-reims-surrender .dove-flight { position:absolute; top:18%; left:55%; width:12px; height:10px; background: radial-gradient(ellipse at 60% 40%, #f0e8d0 0%, #d0c0a0 60%, transparent 100%); border-radius: 50% 50% 0 0; transform: rotate(-20deg); animation: cr-dove 14s ease-in-out infinite; }

@keyframes cr-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cr-spire { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cr-herald { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) translateY(-1px) } 75% { transform: translateX(-2px) rotate(0) } }
@keyframes cr-trumpet { 0% { transform: rotate(-10deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-5deg) } }
@keyframes cr-king { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 80% { transform: translateY(-1px) rotate(0) } }
@keyframes cr-crowd { 0% { opacity:.4; transform: translateY(0) } 50% { opacity:.7; transform: translateY(-2px) } 100% { opacity:.5; transform: translateY(1px) } }
@keyframes cr-banners { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-5px) scaleX(1.02) } 100% { transform: translateX(3px) scaleX(.98) } }
@keyframes cr-dove { 0% { transform: translate(0,0) rotate(-20deg) scale(1); opacity:.6 } 25% { transform: translate(10px,-12px) rotate(-15deg) scale(1.1); opacity:.9 } 50% { transform: translate(20px,-8px) rotate(-25deg) scale(.95); opacity:.7 } 75% { transform: translate(30px,-18px) rotate(-10deg) scale(1.05); opacity:.8 } 100% { transform: translate(40px,-14px) rotate(-20deg) scale(1); opacity:.5 } }

/* ===== troyes-negotiations ===== */
.scn-troyes-negotiations {
  background:
    linear-gradient(180deg, #b8d4e0 0%, #e8d4a8 40%, #d4b878 100%),
    radial-gradient(ellipse at 70% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-troyes-negotiations .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #7a9bb5 0%, #b0c8d8 100%);
  animation: tn-sky 8s ease-in-out infinite alternate;
}
.scn-troyes-negotiations .sun {
  position: absolute; top: 12%; right: 25%; width: 70px; height: 70px;
  background: radial-gradient(circle, #ffe8b0 0%, #e0c070 50%, transparent 80%);
  box-shadow: 0 0 40px 20px rgba(255,232,176,.4);
  animation: tn-sun 6s ease-in-out infinite alternate;
}
.scn-troyes-negotiations .city-wall {
  position: absolute; bottom: 25%; left: 60%; width: 35%; height: 30%;
  background: linear-gradient(180deg, #a08060 0%, #705840 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.3);
  animation: tn-wall 10s ease-in-out infinite alternate;
}
.scn-troyes-negotiations .road {
  position: absolute; bottom: 20%; left: 0; right: 30%; height: 8%;
  background: linear-gradient(180deg, #c8a870 0%, #a08050 100%);
  border-radius: 10% 50% 0 0 / 20% 40% 0 0;
  animation: tn-road 4s ease-in-out infinite alternate;
}
.scn-troyes-negotiations .army {
  position: absolute; bottom: 28%; left: 5%; width: 40%; height: 12%;
  background: linear-gradient(90deg, transparent 0%, rgba(60,50,40,.5) 30%, rgba(40,35,30,.7) 100%);
  border-radius: 30% 10% 40% 20%;
  filter: blur(2px);
  animation: tn-army 12s ease-in-out infinite alternate;
}
.scn-troyes-negotiations .banner-a,
.scn-troyes-negotiations .banner-b {
  position: absolute; bottom: 32%; width: 8px; height: 16px;
  background: #a0461a;
  transform-origin: bottom center;
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(160,70,26,.5);
  animation: tn-banner 3s ease-in-out infinite alternate;
}
.scn-troyes-negotiations .banner-a { left: 12%; animation-delay: 0s; }
.scn-troyes-negotiations .banner-b { left: 18%; animation-delay: 0.5s; }
.scn-troyes-negotiations .friar {
  position: absolute; bottom: 18%; left: 35%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: tn-friar 4s ease-in-out infinite;
}
.scn-troyes-negotiations .letter {
  position: absolute; bottom: 15%; left: 44%; width: 20px; height: 12px;
  background: #e8d4a8;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: tn-letter 5s ease-in-out infinite;
}
@keyframes tn-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes tn-sun { 0% { transform: scale(1); box-shadow: 0 0 30px 10px rgba(255,232,176,.3); } 50% { transform: scale(1.1); box-shadow: 0 0 60px 30px rgba(255,232,176,.6); } 100% { transform: scale(1.05); box-shadow: 0 0 40px 15px rgba(255,232,176,.45); } }
@keyframes tn-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes tn-road { 0% { transform: skewX(0deg); } 50% { transform: skewX(-2deg) translateX(3px); } 100% { transform: skewX(0deg); } }
@keyframes tn-army { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.02); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes tn-banner { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes tn-friar { 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 tn-letter { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* ===== troyes-siege-hunger ===== */
.scn-troyes-siege-hunger {
  background:
    linear-gradient(180deg, #d0c0a0 0%, #a08868 50%, #605040 100%),
    radial-gradient(ellipse at 60% 20%, #e8d4b0 0%, transparent 70%);
}
.scn-troyes-siege-hunger .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b0a090 0%, #c0b0a0 100%);
  animation: tsh-sky 10s ease-in-out infinite alternate;
}
.scn-troyes-siege-hunger .sun-harsh {
  position: absolute; top: 10%; left: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe8b0 0%, #d0a060 60%, transparent 80%);
  box-shadow: 0 0 50px 20px rgba(255,232,176,.2);
  animation: tsh-sun 7s ease-in-out infinite alternate;
}
.scn-troyes-siege-hunger .rampart {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #806048 0%, #504030 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.4);
  animation: tsh-rampart 4s ease-in-out infinite;
}
.scn-troyes-siege-hunger .catapult {
  position: absolute; bottom: 42%; left: 70%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 30% 10% 10%;
  transform-origin: bottom left;
  animation: tsh-catapult 6s ease-in-out infinite;
}
.scn-troyes-siege-hunger .stone {
  position: absolute; bottom: 50%; left: 72%; width: 10px; height: 10px;
  background: #706050;
  border-radius: 50%;
  animation: tsh-stone 3s ease-in-out infinite;
}
.scn-troyes-siege-hunger .figure-starved {
  position: absolute; bottom: 28%; left: 15%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: tsh-figure 8s ease-in-out infinite;
}
.scn-troyes-siege-hunger .basket {
  position: absolute; bottom: 25%; left: 22%; width: 16px; height: 10px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20%;
  animation: tsh-basket 5s ease-in-out infinite alternate;
}
.scn-troyes-siege-hunger .dust {
  position: absolute; bottom: 40%; left: 0; right: 60%; height: 10%;
  background: radial-gradient(ellipse, rgba(180,160,140,.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: tsh-dust 15s linear infinite;
}
@keyframes tsh-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes tsh-sun { 0% { transform: scale(.95); } 50% { transform: scale(1.05); } 100% { transform: scale(.98); } }
@keyframes tsh-rampart { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes tsh-catapult { 0% { transform: rotate(0deg); } 30% { transform: rotate(-15deg); } 60% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes tsh-stone { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(15px, -20px) scale(.8); } 100% { transform: translate(30px,0) scale(1); } }
@keyframes tsh-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-3deg) scaleY(1.02); } 50% { transform: translateX(6px) rotate(2deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tsh-basket { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tsh-dust { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* ===== troyes-surrender ===== */
.scn-troyes-surrender {
  background:
    linear-gradient(180deg, #c0b0a0 0%, #a09070 50%, #705848 100%),
    radial-gradient(ellipse at 80% 20%, #e8d4b0 0%, transparent 60%);
}
.scn-troyes-surrender .sky-battle {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #9a8a7a 0%, #b0a090 100%);
  animation: tsu-sky 6s ease-in-out infinite alternate;
}
.scn-troyes-surrender .sun-glow {
  position: absolute; top: 8%; right: 10%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe8b0 0%, #d0a060 50%, transparent 80%);
  box-shadow: 0 0 30px 15px rgba(255,232,176,.3);
  animation: tsu-sun 5s ease-in-out infinite alternate;
}
.scn-troyes-surrender .wall-moat {
  position: absolute; bottom: 20%; left: 50%; width: 45%; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
  animation: tsu-wall 8s ease-in-out infinite;
}
.scn-troyes-surrender .horse {
  position: absolute; bottom: 15%; left: 15%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 30% 20% 10% / 50% 40% 30% 20%;
  animation: tsu-horse 3s ease-in-out infinite;
}
.scn-troyes-surrender .maid-lance {
  position: absolute; bottom: 25%; left: 30%; width: 6px; height: 40px;
  background: #c0a080;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: tsu-lance 2s ease-in-out infinite;
}
.scn-troyes-surrender .knight-a,
.scn-troyes-surrender .knight-b {
  position: absolute; bottom: 18%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: tsu-knight 4s ease-in-out infinite alternate;
}
.scn-troyes-surrender .knight-a { left: 5%; animation-delay: 0s; }
.scn-troyes-surrender .knight-b { left: 38%; animation-delay: 0.5s; }
.scn-troyes-surrender .craftsman {
  position: absolute; bottom: 10%; left: 20%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  animation: tsu-craft 5s ease-in-out infinite;
}
.scn-troyes-surrender .ladder {
  position: absolute; bottom: 0; left: 52%; width: 4px; height: 60px;
  background: #5a4a3a;
  border-radius: 2px;
  transform: rotate(-10deg);
  transform-origin: bottom;
  animation: tsu-ladder 7s ease-in-out infinite;
}
@keyframes tsu-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes tsu-sun { 0% { transform: scale(1); } 50% { transform: scale(1.08); box-shadow: 0 0 40px 20px rgba(255,232,176,.4); } 100% { transform: scale(1.02); } }
@keyframes tsu-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tsu-horse { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(-2deg); } 60% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tsu-lance { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes tsu-knight { 0% { transform: translateX(0); } 50% { transform: translateX(8px); } 100% { transform: translateX(0); } }
@keyframes tsu-craft { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tsu-ladder { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }

/* ===== friar-richard-preaches ===== */
.scn-friar-richard-preaches {
  background:
    linear-gradient(180deg, #e0d0b8 0%, #c8b098 40%, #a88870 100%),
    radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 70%);
}
.scn-friar-richard-preaches .sky-warm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d0c0a8 0%, #e0d0b8 100%);
  animation: fr-sky 12s ease-in-out infinite alternate;
}
.scn-friar-richard-preaches .sun-warm {
  position: absolute; top: 5%; left: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffe8b0 0%, #e8c880 50%, transparent 80%);
  box-shadow: 0 0 60px 30px rgba(255,232,176,.3);
  animation: fr-sun 8s ease-in-out infinite alternate;
}
.scn-friar-richard-preaches .church {
  position: absolute; bottom: 30%; left: 55%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.3);
  animation: fr-church 10s ease-in-out infinite;
}
.scn-friar-richard-preaches .dais {
  position: absolute; bottom: 18%; left: 30%; width: 25%; height: 12%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  border-radius: 10% 10% 0 0;
  animation: fr-dais 6s ease-in-out infinite alternate;
}
.scn-friar-richard-preaches .crowd-front,
.scn-friar-richard-preaches .crowd-mid {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%;
  background: radial-gradient(ellipse, rgba(60,50,30,.6) 0%, transparent 100%);
  filter: blur(4px);
  animation: fr-crowd 18s ease-in-out infinite;
}
.scn-friar-richard-preaches .crowd-front { opacity: .7; animation-delay: 0s; }
.scn-friar-richard-preaches .crowd-mid { opacity: .4; animation-delay: 2s; }
.scn-friar-richard-preaches .friar-figure {
  position: absolute; bottom: 22%; left: 40%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: fr-friar 4s ease-in-out infinite;
}
.scn-friar-richard-preaches .maid-figure {
  position: absolute; bottom: 22%; left: 52%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: fr-maid 4s ease-in-out infinite alternate;
}
.scn-friar-richard-preaches .halo {
  position: absolute; bottom: 40%; left: 48%; width: 20px; height: 20px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,232,176,.6) 0%, transparent 70%);
  box-shadow: 0 0 20px 10px rgba(255,232,176,.2);
  animation: fr-halo 6s ease-in-out infinite alternate;
}
@keyframes fr-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes fr-sun { 0% { transform: scale(1); } 50% { transform: scale(1.12); box-shadow: 0 0 80px 40px rgba(255,232,176,.5); } 100% { transform: scale(1.03); } }
@keyframes fr-church { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes fr-dais { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes fr-crowd { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05) translateX(5px); } 100% { transform: scaleX(1); } }
@keyframes fr-friar { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fr-maid { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fr-halo { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .8; transform: scale(1.2); } 100% { opacity: .5; transform: scale(1); } }

/* defiance-of-saint - tense dark */
.scn-defiance-of-saint { background: linear-gradient(180deg, #0f0a2a 0%, #1a123a 40%, #2a1e4a 100%), radial-gradient(ellipse at 50% 60%, #1a1040 0%, transparent 70%); }
.scn-defiance-of-saint .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0b0720 0%, #1a123a 50%, #2a1e4a 100%); animation: def-bg 12s ease-in-out infinite alternate; }
.scn-defiance-of-saint .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #1e1630 0%, #2a2040 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-defiance-of-saint .wall-left { position:absolute; top:0; bottom:20%; left:0; width:18%; background: linear-gradient(90deg, #0e0922 0%, #1a123a 100%); box-shadow: 2px 0 6px rgba(0,0,0,.5); }
.scn-defiance-of-saint .wall-right { position:absolute; top:0; bottom:20%; right:0; width:18%; background: linear-gradient(90deg, #1a123a 0%, #0e0922 100%); box-shadow: -2px 0 6px rgba(0,0,0,.5); }
.scn-defiance-of-saint .altar { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:40px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-defiance-of-saint .light-spot { position:absolute; bottom:26%; left:50%; transform:translateX(-50%); width:80px; height:60px; background: radial-gradient(ellipse, #f0a050 0%, #c07020 40%, transparent 80%); box-shadow: 0 0 40px 20px #c06020, 0 0 80px 30px rgba(192,96,32,.4); animation: def-light 1.2s ease-in-out infinite alternate; }
.scn-defiance-of-saint .saint-left { position:absolute; bottom:22%; left:30%; width:24px; height:70px; background: linear-gradient(180deg, #d0c8c0 0%, #a09890 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 8px rgba(200,180,160,.3); animation: def-saint 2s ease-in-out infinite alternate; }
.scn-defiance-of-saint .saint-right { position:absolute; bottom:22%; right:30%; width:24px; height:70px; background: linear-gradient(180deg, #d0c8c0 0%, #a09890 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 8px rgba(200,180,160,.3); animation: def-saint 2s ease-in-out infinite alternate; animation-delay: 0.3s; }
.scn-defiance-of-saint .figure-kneeling { position:absolute; bottom:22%; left:50%; transform:translateX(-50%); width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: def-kneel 3s ease-in-out infinite; }
@keyframes def-bg { 0%{opacity:.8} 50%{opacity:.95} 100%{opacity:.75} }
@keyframes def-light { 0%{box-shadow:0 0 30px 15px #c06020,0 0 60px 20px rgba(192,96,32,.3); opacity:.85} 50%{box-shadow:0 0 50px 25px #f08030,0 0 100px 40px rgba(240,128,48,.5); opacity:1} 100%{box-shadow:0 0 35px 18px #c06020,0 0 70px 25px rgba(192,96,32,.35); opacity:.9} }
@keyframes def-saint { 0%{opacity:.6;transform:translateY(0) scale(1)} 50%{opacity:.9;transform:translateY(-2px) scale(1.02)} 100%{opacity:.7;transform:translateY(1px) scale(1)} }
@keyframes def-kneel { 0%{transform:translateX(-50%) rotate(-1deg)} 25%{transform:translateX(-50%) translateY(-1px) rotate(1deg)} 50%{transform:translateX(-50%) rotate(-1deg)} 75%{transform:translateX(-50%) translateY(1px) rotate(1deg)} 100%{transform:translateX(-50%) rotate(0)} }

/* active-mystic - calm bright interior */
.scn-active-mystic { background: linear-gradient(180deg, #f5f0e0 0%, #e8dfc8 50%, #d4c8a8 100%), radial-gradient(ellipse at 60% 30%, #fff8ee 0%, transparent 70%); }
.scn-active-mystic .bg { position:absolute; inset:0; background: linear-gradient(135deg, #f5f0e0 0%, #e0d4b8 100%); animation: act-bg 20s ease-in-out infinite alternate; }
.scn-active-mystic .window { position:absolute; top:8%; left:55%; width:120px; height:160px; background: linear-gradient(180deg, #b8d4e8 0%, #a0c0d8 100%); border: 4px solid #c8b890; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,.3); }
.scn-active-mystic .sunbeam { position:absolute; top:10%; left:58%; width:8px; height:200px; background: linear-gradient(180deg, rgba(255,255,200,.6) 0%, rgba(255,255,200,.1) 100%); transform: rotate(15deg); transform-origin: top left; filter: blur(4px); animation: act-sunbeam 25s ease-in-out infinite alternate; }
.scn-active-mystic .chair { position:absolute; bottom:18%; left:40%; width:70px; height:80px; background: linear-gradient(90deg, #8a7a6a 0%, #a09080 100%); border-radius: 10% 10% 30% 30%; box-shadow: 2px 4px 10px rgba(0,0,0,.2); }
.scn-active-mystic .figure-sitting { position:absolute; bottom:20%; left:42%; width:30px; height:70px; background: linear-gradient(180deg, #d0b080 0%, #a08060 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: act-figure 6s ease-in-out infinite; }
.scn-active-mystic .halo { position:absolute; bottom:40%; left:42%; width:50px; height:50px; background: radial-gradient(circle, #ffe8a0 0%, #e0c080 40%, transparent 80%); box-shadow: 0 0 30px 10px rgba(255,232,160,.5); animation: act-halo 4s ease-in-out infinite alternate; }
.scn-active-mystic .book { position:absolute; bottom:22%; left:36%; width:16px; height:22px; background: linear-gradient(135deg, #c8a080 0%, #a08060 100%); border-radius: 2px; transform: rotate(5deg); animation: act-book 8s ease-in-out infinite; }
@keyframes act-bg { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes act-sunbeam { 0%{transform:rotate(10deg) scaleX(1);opacity:.6} 50%{transform:rotate(20deg) scaleX(1.2);opacity:1} 100%{transform:rotate(15deg) scaleX(1);opacity:.8} }
@keyframes act-figure { 0%{transform:translateX(0) rotate(-1deg)} 33%{transform:translateX(2px) rotate(1deg)} 66%{transform:translateX(-1px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes act-halo { 0%{box-shadow:0 0 20px 6px rgba(255,232,160,.4);opacity:.7} 50%{box-shadow:0 0 40px 15px rgba(255,232,160,.7);opacity:1} 100%{box-shadow:0 0 25px 8px rgba(255,232,160,.5);opacity:.8} }
@keyframes act-book { 0%{transform:rotate(3deg) translateY(0)} 50%{transform:rotate(7deg) translateY(-2px)} 100%{transform:rotate(3deg) translateY(0)} }

/* hysterical-element - calm bright interior */
.scn-hysterical-element { background: linear-gradient(180deg, #f0ebe0 0%, #d8d0c0 50%, #c0b8a0 100%), radial-gradient(ellipse at 40% 50%, #f8f4ec 0%, transparent 70%); }
.scn-hysterical-element .bg { position:absolute; inset:0; background: linear-gradient(135deg, #f0ebe0 0%, #d8d0c0 100%); animation: hys-bg 18s ease-in-out infinite alternate; }
.scn-hysterical-element .couch { position:absolute; bottom:15%; left:20%; right:20%; height:40%; background: linear-gradient(135deg, #b0a898 0%, #908878 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 -8px 12px rgba(0,0,0,.2); }
.scn-hysterical-element .pillow { position:absolute; bottom:30%; left:38%; width:40px; height:20px; background: linear-gradient(135deg, #d0c8b8 0%, #b8b0a0 100%); border-radius: 40% 40% 30% 30%; transform: rotate(-10deg); animation: hys-pillow 7s ease-in-out infinite; }
.scn-hysterical-element .figure-reclining { position:absolute; bottom:22%; left:42%; width:50px; height:90px; background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(-5deg); transform-origin: bottom center; animation: hys-figure 9s ease-in-out infinite; }
.scn-hysterical-element .curtain-left { position:absolute; top:0; bottom:15%; left:0; width:20%; background: linear-gradient(90deg, #b0a898 0%, #c8c0b0 100%); border-radius: 0 20% 20% 0; box-shadow: 2px 0 8px rgba(0,0,0,.2); animation: hys-curtain 12s ease-in-out infinite alternate; }
.scn-hysterical-element .curtain-right { position:absolute; top:0; bottom:15%; right:0; width:20%; background: linear-gradient(90deg, #c8c0b0 0%, #b0a898 100%); border-radius: 20% 0 0 20%; box-shadow: -2px 0 8px rgba(0,0,0,.2); animation: hys-curtain 12s ease-in-out infinite alternate-reverse; }
.scn-hysterical-element .window-light { position:absolute; top:5%; left:30%; right:30%; height:45%; background: linear-gradient(180deg, #e0e8f0 0%, #c0c8d0 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,.4); animation: hys-light 22s ease-in-out infinite alternate; }
@keyframes hys-bg { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes hys-pillow { 0%{transform:rotate(-8deg) scale(1)} 33%{transform:rotate(-12deg) scale(1.05)} 66%{transform:rotate(-6deg) scale(1)} 100%{transform:rotate(-8deg) scale(1)} }
@keyframes hys-figure { 0%{transform:rotate(-3deg) translateY(0)} 25%{transform:rotate(-5deg) translateY(-2px)} 50%{transform:rotate(-4deg) translateY(1px)} 75%{transform:rotate(-6deg) translateY(-1px)} 100%{transform:rotate(-3deg) translateY(0)} }
@keyframes hys-curtain { 0%{transform:scaleX(1)} 50%{transform:scaleX(1.05)} 100%{transform:scaleX(1)} }
@keyframes hys-light { 0%{opacity:.6} 50%{opacity:.9} 100%{opacity:.7} }

/* healthy-intellect - calm bright interior */
.scn-healthy-intellect { background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b0 50%, #b8b098 100%), radial-gradient(ellipse at 70% 40%, #f0ece0 0%, transparent 70%); }
.scn-healthy-intellect .bg { position:absolute; inset:0; background: linear-gradient(135deg, #e8e0d0 0%, #d0c8b0 100%); animation: hea-bg 16s ease-in-out infinite alternate; }
.scn-healthy-intellect .desk { position:absolute; bottom:18%; left:35%; right:10%; height:25%; background: linear-gradient(180deg, #a09078 0%, #807060 100%); border-radius: 4% 4% 10% 10%; box-shadow: 0 -4px 8px rgba(0,0,0,.2); }
.scn-healthy-intellect .chair { position:absolute; bottom:18%; left:40%; width:40px; height:60px; background: linear-gradient(180deg, #908068 0%, #786858 100%); border-radius: 10% 10% 30% 30%; box-shadow: 2px 2px 6px rgba(0,0,0,.2); }
.scn-healthy-intellect .bookshelf { position:absolute; top:10%; right:10%; width:60px; height:70%; background: linear-gradient(180deg, #a09078 0%, #807060 100%); border-radius: 4px; box-shadow: -2px 2px 8px rgba(0,0,0,.2); }
.scn-healthy-intellect .figure-standing { position:absolute; bottom:22%; left:50%; width:28px; height:80px; background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hea-figure 4s ease-in-out infinite; }
.scn-healthy-intellect .book-open { position:absolute; bottom:20%; left:30%; width:30px; height:15px; background: linear-gradient(135deg, #d0c0a0 0%, #b8a888 100%); border-radius: 2px 2px 15px 15px; transform: rotate(-10deg); animation: hea-book 9s ease-in-out infinite; }
.scn-healthy-intellect .lamp { position:absolute; bottom:30%; left:25%; width:16px; height:30px; background: linear-gradient(180deg, #c8b890 0%, #a09070 100%); border-radius: 30% 30% 10% 10%; }
.scn-healthy-intellect .lamp-glow { position:absolute; bottom:26%; left:26%; width:40px; height:40px; background: radial-gradient(circle, #f0e0c0 0%, #e0c080 40%, transparent 80%); box-shadow: 0 0 20px 8px rgba(240,224,192,.5); animation: hea-glow 2.5s ease-in-out infinite alternate; }
@keyframes hea-bg { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes hea-figure { 0%{transform:translateY(0) rotate(-1deg)} 33%{transform:translateY(-1px) rotate(1deg)} 66%{transform:translateY(1px) rotate(-1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes hea-book { 0%{transform:rotate(-8deg) scale(1)} 50%{transform:rotate(-12deg) scale(1.02)} 100%{transform:rotate(-8deg) scale(1)} }
@keyframes hea-glow { 0%{box-shadow:0 0 15px 4px rgba(240,224,192,.4);opacity:.8} 50%{box-shadow:0 0 30px 12px rgba(240,224,192,.7);opacity:1} 100%{box-shadow:0 0 18px 6px rgba(240,224,192,.5);opacity:.9} }

/* letter-ecclesiastical-question */
.scn-letter-ecclesiastical-question {
  background:
    linear-gradient(180deg, #6a4a2a 0%, #4a3020 50%, #2a1a10 100%),
    radial-gradient(ellipse at 70% 80%, #8a6a4a 0%, transparent 60%);
}
.scn-letter-ecclesiastical-question .back-wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: ecq-wall 12s ease-in-out infinite alternate;
}
.scn-letter-ecclesiastical-question .window {
  position:absolute; top:8%; left:25%; width:50%; height:40%;
  background: radial-gradient(ellipse at 50% 30%, #d0b080 0%, transparent 60%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 60px rgba(200,170,120,.4), 0 0 80px rgba(200,170,120,.2);
  animation: ecq-window 8s ease-in-out infinite alternate;
}
.scn-letter-ecclesiastical-question .desk {
  position:absolute; bottom:18%; left:20%; right:20%; height:12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: ecq-desk 6s ease-in-out infinite;
}
.scn-letter-ecclesiastical-question .letter {
  position:absolute; bottom:24%; left:42%; width:16%; height:12%;
  background: linear-gradient(135deg, #f5e0c0 0%, #d4b890 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3), inset 0 0 10px rgba(200,170,120,.5);
  transform-origin: center bottom;
  animation: ecq-letter 4s ease-in-out infinite;
}
.scn-letter-ecclesiastical-question .candle {
  position:absolute; bottom:28%; left:55%; width:4%; height:15%;
  background: linear-gradient(180deg, #a08050 0%, #705030 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.4);
}
.scn-letter-ecclesiastical-question .candle::after {
  content:''; position:absolute; top:-10%; left:60%; width:8px; height:12px;
  background: radial-gradient(circle, #ffd060 0%, #c08020 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px #d09030, 0 0 40px 20px rgba(200,120,30,.4);
  animation: ecq-flame 1.5s ease-in-out infinite alternate;
}
.scn-letter-ecclesiastical-question .figure {
  position:absolute; bottom:18%; left:30%; width:10%; height:40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -4px 0 10px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: ecq-figure 7s ease-in-out infinite;
}
.scn-letter-ecclesiastical-question .cross {
  position:absolute; top:15%; left:60%; width:6%; height:25%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 10%;
  box-shadow: 0 0 10px rgba(0,0,0,.3);
  transform-origin: center center;
  animation: ecq-cross 10s ease-in-out infinite alternate;
}
@keyframes ecq-wall { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.8} }
@keyframes ecq-window { 0%{opacity:.7;transform:scale(1)} 50%{opacity:1;transform:scale(1.05)} 100%{opacity:.8;transform:scale(.98)} }
@keyframes ecq-desk { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes ecq-letter { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-3px) rotate(1deg)} }
@keyframes ecq-flame { 0%{transform:scale(1) translate(0,0)} 50%{transform:scale(1.2) translate(-1px,-2px)} 100%{transform:scale(.9) translate(1px,-1px)} }
@keyframes ecq-figure { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(1deg)} }
@keyframes ecq-cross { 0%{transform:rotate(0)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-1deg)} }

/* crusade-hope */
.scn-crusade-hope {
  background:
    linear-gradient(180deg, #b8d8e8 0%, #8ab0c8 40%, #4a6a82 100%),
    radial-gradient(ellipse at 50% 40%, #c0e0f0 0%, transparent 70%);
}
.scn-crusade-hope .sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #d0e8f0 0%, #8ab0c8 60%, #5a7a92 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  animation: crh-sky 15s ease-in-out infinite alternate;
}
.scn-crusade-hope .window-arch {
  position:absolute; top:5%; left:15%; width:70%; height:50%;
  background: radial-gradient(ellipse at 50% 20%, #f0e8d0 0%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  box-shadow: inset 0 0 80px rgba(240,232,200,.3);
  animation: crh-window 10s ease-in-out infinite;
}
.scn-crusade-hope .figure {
  position:absolute; bottom:20%; left:45%; width:14%; height:50%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px rgba(200,180,120,.4), 0 0 60px rgba(200,180,120,.2);
  transform-origin: bottom center;
  animation: crh-figure 6s ease-in-out infinite;
}
.scn-crusade-hope .banner {
  position:absolute; bottom:30%; left:55%; width:10%; height:35%;
  background: linear-gradient(180deg, #a07040 0%, #704020 100%);
  border-radius: 10%;
  box-shadow: 2px 0 10px rgba(0,0,0,.4);
  transform-origin: bottom center;
  animation: crh-banner 8s ease-in-out infinite;
}
.scn-crusade-hope .banner::after {
  content:''; position:absolute; top:0; left:50%; width:80%; height:20%;
  background: linear-gradient(90deg, #c06040 0%, #e08060 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 12px rgba(192,96,64,.6);
}
.scn-crusade-hope .light-beam {
  position:absolute; top:0; left:40%; width:20%; height:100%;
  background: linear-gradient(180deg, rgba(255,240,200,.15) 0%, rgba(255,240,200,.05) 100%);
  transform: skewX(-10deg);
  animation: crh-beam 5s ease-in-out infinite alternate;
}
.scn-crusade-hope .glow {
  position:absolute; bottom:30%; left:45%; width:20%; height:30%;
  background: radial-gradient(circle, rgba(240,220,160,.4) 0%, transparent 70%);
  animation: crh-glow 4s ease-in-out infinite alternate;
}
.scn-crusade-hope .letter {
  position:absolute; bottom:18%; left:35%; width:12%; height:8%;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  transform-origin: center center;
  animation: crh-letter 7s ease-in-out infinite;
}
@keyframes crh-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes crh-window { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.03)} 100%{transform:scaleY(.98)} }
@keyframes crh-figure { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-3px) rotate(1deg)} }
@keyframes crh-banner { 0%{transform:rotate(0)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-2deg)} }
@keyframes crh-beam { 0%{opacity:.3;transform:skewX(-10deg) translateX(-5px)} 50%{opacity:.5;transform:skewX(-8deg) translateX(0)} 100%{opacity:.4;transform:skewX(-12deg) translateX(5px)} }
@keyframes crh-glow { 0%{opacity:.5;transform:scale(1)} 50%{opacity:.8;transform:scale(1.2)} 100%{opacity:.6;transform:scale(.95)} }
@keyframes crh-letter { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(1deg)} }

/* letter-style-debate */
.scn-letter-style-debate {
  background:
    linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #1a1008 100%),
    radial-gradient(ellipse at 60% 40%, #8a7050 0%, transparent 60%);
}
.scn-letter-style-debate .back-wall {
  position:absolute; inset:0 0 10% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: lsd-wall 14s ease-in-out infinite alternate;
}
.scn-letter-style-debate .table {
  position:absolute; bottom:15%; left:20%; right:20%; height:14%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
  border-radius: 6px;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: lsd-table 10s ease-in-out infinite;
}
.scn-letter-style-debate .letter {
  position:absolute; bottom:22%; left:43%; width:14%; height:10%;
  background: linear-gradient(135deg, #f0dcc0 0%, #d0b890 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform-origin: center center;
  animation: lsd-letter 6s ease-in-out infinite;
}
.scn-letter-style-debate .figure-left {
  position:absolute; bottom:14%; left:28%; width:12%; height:45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 4px 0 10px rgba(0,0,0,.5);
  transform-origin: bottom right;
  animation: lsd-figure-l 8s ease-in-out infinite;
}
.scn-letter-style-debate .figure-right {
  position:absolute; bottom:14%; left:58%; width:12%; height:45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -4px 0 10px rgba(0,0,0,.5);
  transform-origin: bottom left;
  animation: lsd-figure-r 9s ease-in-out infinite;
}
.scn-letter-style-debate .book {
  position:absolute; bottom:20%; left:50%; width:8%; height:10%;
  background: linear-gradient(135deg, #7a5030 0%, #5a3018 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform: rotate(-5deg);
  animation: lsd-book 12s ease-in-out infinite alternate;
}
.scn-letter-style-debate .window {
  position:absolute; top:8%; left:35%; width:30%; height:35%;
  background: radial-gradient(ellipse at 50% 30%, #c0b090 0%, transparent 60%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  box-shadow: inset 0 0 40px rgba(200,180,150,.3);
  animation: lsd-window 11s ease-in-out infinite;
}
@keyframes lsd-wall { 0%{opacity:.85} 50%{opacity:1} 100%{opacity:.9} }
@keyframes lsd-table { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes lsd-letter { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(1deg)} }
@keyframes lsd-figure-l { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(2deg)} }
@keyframes lsd-figure-r { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(-2deg)} }
@keyframes lsd-book { 0%{transform:rotate(-5deg)} 50%{transform:rotate(0deg)} 100%{transform:rotate(-3deg)} }
@keyframes lsd-window { 0%{opacity:.7;transform:scale(1)} 50%{opacity:.9;transform:scale(1.02)} 100%{opacity:.8;transform:scale(.98)} }

/* maid-company */
.scn-maid-company {
  background:
    linear-gradient(180deg, #6a5a42 0%, #4a3a22 50%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 80%, #8a704a 0%, transparent 60%);
}
.scn-maid-company .backdrop {
  position:absolute; inset:0 0 15% 0;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2a12 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: mco-backdrop 16s ease-in-out infinite alternate;
}
.scn-maid-company .window {
  position:absolute; top:6%; left:20%; width:60%; height:40%;
  background: radial-gradient(ellipse at 50% 30%, #d0b890 0%, transparent 60%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  box-shadow: inset 0 0 50px rgba(200,180,140,.3);
  animation: mco-window 9s ease-in-out infinite;
}
.scn-maid-company .figure-maid {
  position:absolute; bottom:18%; left:40%; width:14%; height:50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: mco-maid 7s ease-in-out infinite;
}
.scn-maid-company .purse {
  position:absolute; bottom:20%; left:35%; width:8%; height:10%;
  background: linear-gradient(135deg, #8a6a3a 0%, #6a4a1a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 60% 60%;
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
  transform-origin: center top;
  animation: mco-purse 5s ease-in-out infinite;
}
.scn-maid-company .figure-squire {
  position:absolute; bottom:18%; left:55%; width:10%; height:45%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 35% 35% 30% 30% / 55% 55% 40% 40%;
  box-shadow: -2px 0 8px rgba(0,0,0,.4);
  transform-origin: bottom center;
  animation: mco-squire 10s ease-in-out infinite;
}
.scn-maid-company .figure-valet {
  position:absolute; bottom:18%; left:28%; width:8%; height:42%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 35% 35% 30% 30% / 55% 55% 40% 40%;
  box-shadow: 2px 0 8px rgba(0,0,0,.4);
  transform-origin: bottom center;
  animation: mco-valet 8s ease-in-out infinite;
}
.scn-maid-company .lamp {
  position:absolute; bottom:25%; left:60%; width:5%; height:12%;
  background: linear-gradient(180deg, #9a7a4a 0%, #6a5020 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.3);
}
.scn-maid-company .lamp::after {
  content:''; position:absolute; top:-8%; left:30%; width:6px; height:8px;
  background: radial-gradient(circle, #ffd060 0%, #c08020 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 16px 8px #d09030, 0 0 30px 15px rgba(200,120,30,.4);
  animation: mco-lamp 2s ease-in-out infinite alternate;
}
@keyframes mco-backdrop { 0%{opacity:.85} 50%{opacity:1} 100%{opacity:.9} }
@keyframes mco-window { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.03)} 100%{transform:scaleY(.98)} }
@keyframes mco-maid { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-3px) rotate(1deg)} }
@keyframes mco-purse { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(5deg)} }
@keyframes mco-squire { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(-1deg)} }
@keyframes mco-valet { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(1deg)} }
@keyframes mco-lamp { 0%{transform:scale(1) translate(0,0)} 50%{transform:scale(1.3) translate(-1px,-2px)} 100%{transform:scale(.9) translate(1px,-1px)} }

/* entry-orleans: night entry, warm torchlight */
.scn-entry-orleans {
  background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 40%, #4a2a1a 100%), radial-gradient(ellipse at 50% 100%, #8a4a2a 0%, transparent 60%);
}
.scn-entry-orleans .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #1a0a2a 0%, #3a1a2a 60%, transparent); animation: eo-sky 15s ease-in-out infinite alternate; }
.scn-entry-orleans .moon { position:absolute; top:12%; left:60%; width:30px; height:30px; background: radial-gradient(circle, #f0e0c0 0%, #d0b080 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(240,224,192,.3); animation: eo-moon 20s ease-in-out infinite alternate; }
.scn-entry-orleans .cloud-a { position:absolute; top:18%; left:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(200,180,160,.4) 0%, rgba(200,180,160,.1) 100%); border-radius:50%; filter: blur(6px); animation: eo-drift 40s linear infinite; }
.scn-entry-orleans .cloud-b { position:absolute; top:22%; right:15%; width:60px; height:14px; background: linear-gradient(180deg, rgba(200,180,160,.3) 0%, rgba(200,180,160,.05) 100%); border-radius:50%; filter: blur(4px); animation: eo-drift 50s linear infinite reverse; }
.scn-entry-orleans .city-wall { position:absolute; bottom:25%; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.7); animation: eo-wall 30s ease-in-out infinite alternate; }
.scn-entry-orleans .gate { position:absolute; bottom:25%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #1a0a0a 0%, #000 100%); border-radius: 30% 30% 5% 5% / 50% 50% 5% 5%; box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 0 20px rgba(160,80,40,.3); animation: eo-gate 12s ease-in-out infinite alternate; }
.scn-entry-orleans .horse { position:absolute; bottom:22%; left:48%; width:50px; height:40px; background: linear-gradient(180deg, #e0e0e0 0%, #b0b0b0 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eo-horse 6s ease-in-out infinite; }
.scn-entry-orleans .rider { position:absolute; bottom:28%; left:49%; width:20px; height:30px; background: linear-gradient(180deg, #c0a080 0%, #806050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eo-rider 6s ease-in-out infinite; }
.scn-entry-orleans .standard { position:absolute; bottom:27%; left:52%; width:4px; height:40px; background: #403020; transform-origin: bottom center; animation: eo-standard 8s ease-in-out infinite alternate; }
.scn-entry-orleans .torch-glow { position:absolute; bottom:30%; left:50%; width:12px; height:12px; background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(255,208,128,.5); animation: eo-torch 2s ease-in-out infinite alternate; }
@keyframes eo-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes eo-moon { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(0) } }
@keyframes eo-drift { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }
@keyframes eo-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes eo-gate { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 0 20px rgba(160,80,40,.3) } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,.9), 0 0 30px rgba(200,100,50,.5) } 100% { box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 0 20px rgba(160,80,40,.3) } }
@keyframes eo-horse { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes eo-rider { 0% { transform: translateY(0) rotate(-.5deg) } 50% { transform: translateY(-3px) rotate(.5deg) } 100% { transform: translateY(0) rotate(-.5deg) } }
@keyframes eo-standard { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes eo-torch { 0% { opacity:.7; box-shadow: 0 0 30px 10px rgba(255,208,128,.4) } 50% { opacity:1; box-shadow: 0 0 60px 20px rgba(255,208,128,.6) } 100% { opacity:.8; box-shadow: 0 0 35px 12px rgba(255,208,128,.5) } }

/* lodging-jacques-boucher: dim interior, calm */
.scn-lodging-jacques-boucher {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 0%, #5a3a1a 0%, transparent 70%);
}
.scn-lodging-jacques-boucher .wall-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 100%); box-shadow: inset -5px 0 15px rgba(0,0,0,.4); animation: jb-wall 20s ease-in-out infinite alternate; }
.scn-lodging-jacques-boucher .wall-right { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(270deg, #2a1a0a 0%, #3a2a1a 100%); box-shadow: inset 5px 0 15px rgba(0,0,0,.4); animation: jb-wall 20s ease-in-out infinite alternate-reverse; }
.scn-lodging-jacques-boucher .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-top: 2px solid rgba(0,0,0,.2); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-lodging-jacques-boucher .window { position:absolute; top:20%; left:35%; width:20%; height:35%; background: linear-gradient(180deg, #1a1a2a 20%, #2a2a4a 80%); border: 2px solid #3a2a1a; border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 0 10px rgba(100,80,60,.3); animation: jb-window 12s ease-in-out infinite alternate; }
.scn-lodging-jacques-boucher .table { position:absolute; bottom:22%; left:35%; width:25%; height:10%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 2px; box-shadow: 0 4px 10px rgba(0,0,0,.5); transform: perspective(200px) rotateX(10deg); animation: jb-table 30s ease-in-out infinite alternate; }
.scn-lodging-jacques-boucher .figure-sitting { position:absolute; bottom:22%; left:42%; width:20px; height:35px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jb-figure 8s ease-in-out infinite; }
.scn-lodging-jacques-boucher .candle { position:absolute; bottom:28%; left:48%; width:4px; height:12px; background: linear-gradient(180deg, #c0a060 0%, #806040 100%); border-radius: 2px; transform-origin: bottom center; animation: jb-candle 3s ease-in-out infinite; }
.scn-lodging-jacques-boucher .candle-glow { position:absolute; bottom:27%; left:47%; width:30px; height:30px; background: radial-gradient(circle, #ffd080 0%, #c08040 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 25px rgba(255,208,128,.3); animation: jb-glow 3s ease-in-out infinite alternate; }
.scn-lodging-jacques-boucher .book { position:absolute; bottom:24%; left:40%; width:16px; height:10px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: jb-book 20s ease-in-out infinite; }
@keyframes jb-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes jb-window { 0% { opacity:.6; box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 0 10px rgba(100,80,60,.3) } 50% { opacity:.9; box-shadow: inset 0 0 30px rgba(0,0,0,.7), 0 0 15px rgba(100,80,60,.5) } 100% { opacity:.7; box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 0 10px rgba(100,80,60,.3) } }
@keyframes jb-table { 0% { transform: perspective(200px) rotateX(10deg) } 50% { transform: perspective(200px) rotateX(8deg) scale(1.01) } 100% { transform: perspective(200px) rotateX(10deg) } }
@keyframes jb-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes jb-candle { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(0) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes jb-glow { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes jb-book { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(-5deg) } }

/* popular-revolt: tense sunlit crowd */
.scn-popular-revolt {
  background: linear-gradient(180deg, #e8e0c0 0%, #c8c0a0 40%, #a09880 100%), radial-gradient(ellipse at 50% 30%, #f0e8d0 0%, transparent 60%);
}
.scn-popular-revolt .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f0e8d0 0%, #d8d0b0 60%, transparent); animation: pr-sky 10s ease-in-out infinite alternate; }
.scn-popular-revolt .sun { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #fff0c0 0%, #e0c080 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(224,192,128,.5); animation: pr-sun 12s ease-in-out infinite alternate; }
.scn-popular-revolt .dust-particles { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(circle at 30% 40%, rgba(200,180,140,.15) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(200,180,140,.1) 0%, transparent 40%); filter: blur(2px); animation: pr-dust 8s ease-in-out infinite alternate; }
.scn-popular-revolt .crowd-left { position:absolute; bottom:30%; left:5%; width:40%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; mask-image: linear-gradient(to top, black 60%, transparent); animation: pr-crowd 4s ease-in-out infinite alternate; }
.scn-popular-revolt .crowd-right { position:absolute; bottom:30%; right:5%; width:40%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; mask-image: linear-gradient(to top, black 60%, transparent); animation: pr-crowd 4s ease-in-out infinite alternate-reverse; }
.scn-popular-revolt .maid-figure { position:absolute; bottom:28%; left:50%; width:30px; height:50px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: pr-maid 3s ease-in-out infinite; }
.scn-popular-revolt .banner { position:absolute; bottom:35%; left:52%; width:5px; height:60px; background: #4a3a2a; transform-origin: bottom center; animation: pr-banner 2s ease-in-out infinite alternate; }
.scn-popular-revolt .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
@keyframes pr-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pr-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes pr-dust { 0% { opacity:.3; transform: translateY(0) } 50% { opacity:.6; transform: translateY(-5px) } 100% { opacity:.4; transform: translateY(0) } }
@keyframes pr-crowd { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes pr-maid { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pr-banner { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-10deg) } }

/* attack-saint-pouair: tense sunlit cavalry clash */
.scn-attack-saint-pouair {
  background: linear-gradient(180deg, #e8e0c8 0%, #c8c0a8 40%, #a09880 100%), radial-gradient(ellipse at 50% 30%, #f0e8d0 0%, transparent 60%);
}
.scn-attack-saint-pouair .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0e8d0 0%, #d8d0b0 60%, transparent); animation: sp-sky 12s ease-in-out infinite alternate; }
.scn-attack-saint-pouair .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: sp-ground 8s ease-in-out infinite alternate; }
.scn-attack-saint-pouair .maid-horse { position:absolute; bottom:28%; left:45%; width:70px; height:45px; background: linear-gradient(180deg, #e8e8e0 0%, #c0c0b8 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: sp-horse 3s ease-in-out infinite; }
.scn-attack-saint-pouair .english-soldiers-left { position:absolute; bottom:30%; left:5%; width:35%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; mask-image: linear-gradient(to top, black 70%, transparent); animation: sp-soldiers 4s ease-in-out infinite alternate; }
.scn-attack-saint-pouair .english-soldiers-right { position:absolute; bottom:30%; right:5%; width:35%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; mask-image: linear-gradient(to top, black 70%, transparent); animation: sp-soldiers 4s ease-in-out infinite alternate-reverse; }
.scn-attack-saint-pouair .banner-english { position:absolute; bottom:35%; right:18%; width:5px; height:50px; background: #4a3a2a; transform-origin: bottom center; animation: sp-banner 2s ease-in-out infinite alternate; }
.scn-attack-saint-pouair .lances { position:absolute; bottom:30%; left:20%; width:6px; height:60px; background: #6a5a3a; transform-origin: bottom center; animation: sp-lances 4s ease-in-out infinite alternate; }
.scn-attack-saint-pouair .dust-clouds { position:absolute; bottom:20%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 30% 50%, rgba(180,160,120,.2) 0%, transparent 50%), radial-gradient(ellipse at 70% 50%, rgba(180,160,120,.15) 0%, transparent 40%); filter: blur(3px); animation: sp-dust 6s ease-in-out infinite alternate; }
@keyframes sp-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes sp-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sp-horse { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-5px) rotate(2deg) scale(1.02) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes sp-soldiers { 0% { transform: translateY(0) } 50% { transform: translateY(-6px) } 100% { transform: translateY(0) } }
@keyframes sp-banner { 0% { transform: rotate(-8deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-8deg) } }
@keyframes sp-lances { 0% { transform: rotate(-12deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(-12deg) } }
@keyframes sp-dust { 0% { opacity:.3; transform: translateY(0) } 50% { opacity:.6; transform: translateY(-8px) } 100% { opacity:.4; transform: translateY(0) } }

/* cluny-equestrian */
.scn-cluny-equestrian {
  background: linear-gradient(180deg, #fdf5e6 0%, #d4a574 50%, #b87333 100%), radial-gradient(ellipse at 50% 30%, rgba(255,255,240,0.6) 0%, transparent 70%);
}
.scn-cluny-equestrian .ce-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fdf5e6 0%, #e0c9a6 100%);
  animation: ce-pulse 12s ease-in-out infinite alternate;
}
.scn-cluny-equestrian .ce-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c4a882 0%, #8b7355 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}
.scn-cluny-equestrian .ce-pedestal {
  position: absolute; bottom: 32%; left: 50%; width: 80px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ce-wobble 3s ease-in-out infinite;
}
.scn-cluny-equestrian .ce-horsebody {
  position: absolute; bottom: 46%; left: 50%; width: 60px; height: 35px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 40% 50%, #cd853f 0%, #8b4513 100%);
  border-radius: 50% 50% 30% 30% / 60% 50% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: ce-wobble 3s ease-in-out infinite 0.2s;
}
.scn-cluny-equestrian .ce-horsehead {
  position: absolute; bottom: 62%; left: 48%; width: 30px; height: 25px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #cd853f 0%, #8b4513 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  animation: ce-wobble 3s ease-in-out infinite 0.4s;
}
.scn-cluny-equestrian .ce-rider {
  position: absolute; bottom: 68%; left: 50%; width: 16px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #695a4a 0%, #3b2b1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ce-wobble 3s ease-in-out infinite 0.6s;
}
.scn-cluny-equestrian .ce-shadow {
  position: absolute; bottom: 26%; left: 50%; width: 70px; height: 10px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: ce-shadow-stretch 3s ease-in-out infinite;
}
@keyframes ce-pulse {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ce-wobble {
  0% { transform: translateX(-50%) rotate(-1deg); }
  25% { transform: translateX(-50%) rotate(2deg); }
  50% { transform: translateX(-50%) rotate(-1.5deg); }
  75% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes ce-shadow-stretch {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.2); }
  100% { transform: translateX(-50%) scaleX(1); }
}

/* wooden-statuette */
.scn-wooden-statuette {
  background: linear-gradient(180deg, #faf0e6 0%, #d2b48c 50%, #a0522d 100%), radial-gradient(ellipse at 50% 60%, rgba(255,248,230,0.7) 0%, transparent 70%);
}
.scn-wooden-statuette .ws-shelf {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 8px;
  background: linear-gradient(180deg, #8b5a2b 0%, #6b4226 100%);
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-wooden-statuette .ws-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d4b896 100%);
}
.scn-wooden-statuette .ws-base {
  position: absolute; bottom: 36%; left: 50%; width: 40px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a0522d 0%, #6b4226 100%);
  border-radius: 10% 10% 5% 5%;
  animation: ws-shiver 4s ease-in-out infinite;
}
.scn-wooden-statuette .ws-body {
  position: absolute; bottom: 50%; left: 50%; width: 28px; height: 45px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #cd853f 0%, #8b4513 70%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.2);
  animation: ws-shiver 4s ease-in-out infinite 0.2s;
}
.scn-wooden-statuette .ws-head {
  position: absolute; bottom: 70%; left: 50%; width: 22px; height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #deb887 0%, #a0522d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ws-shiver 4s ease-in-out infinite 0.4s;
}
.scn-wooden-statuette .ws-shadow {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 10px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  animation: ws-shadow-pulse 4s ease-in-out infinite;
}
.scn-wooden-statuette .ws-label {
  position: absolute; bottom: 44%; left: 55%; width: 12px; height: 6px;
  background: #d2b48c;
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: ws-float 6s ease-in-out infinite alternate;
}
@keyframes ws-shiver {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-50%) translateY(-1px) rotate(0.5deg); }
  60% { transform: translateX(-50%) translateY(1px) rotate(-0.5deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes ws-shadow-pulse {
  0% { opacity: 0.6; transform: translateX(-50%) scaleX(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleX(1.1); }
  100% { opacity: 0.6; transform: translateX(-50%) scaleX(1); }
}
@keyframes ws-float {
  0% { transform: rotate(-5deg) translateY(0); }
  100% { transform: rotate(-3deg) translateY(-2px); }
}

/* forged-miniatures */
.scn-forged-miniatures {
  background: linear-gradient(180deg, #d4c4a8 0%, #a08868 50%, #6b5b3e 100%), radial-gradient(ellipse at 60% 40%, rgba(255,240,220,0.6) 0%, transparent 70%);
}
.scn-forged-miniatures .fm-desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #7a6240 0%, #4a3a20 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-forged-miniatures .fm-light {
  position: absolute; top: 10%; left: 40%; width: 100px; height: 120px;
  background: radial-gradient(ellipse, rgba(255,220,150,0.3) 0%, transparent 70%);
  animation: fm-flicker 0.5s ease-in-out infinite alternate;
}
.scn-forged-miniatures .fm-paper {
  position: absolute; bottom: 30%; left: 35%; width: 70px; height: 50px;
  background: linear-gradient(135deg, #f5deb3 0%, #d2b48c 100%);
  border-radius: 4%;
  transform: rotate(2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: fm-tremble 0.3s ease-in-out infinite alternate;
}
.scn-forged-miniatures .fm-brush {
  position: absolute; bottom: 40%; left: 55%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0a 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: fm-paint 1.2s ease-in-out infinite;
}
.scn-forged-miniatures .fm-hand {
  position: absolute; bottom: 35%; left: 52%; width: 24px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #e0c0a0 0%, #b08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: fm-hand-jerk 0.8s ease-in-out infinite;
}
.scn-forged-miniatures .fm-magnifier {
  position: absolute; bottom: 45%; left: 30%; width: 24px; height: 24px;
  border: 3px solid #5c4a2e;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,220,240,0.4) 0%, transparent 70%);
  animation: fm-zoom 2s ease-in-out infinite alternate;
}
.scn-forged-miniatures .fm-shadow {
  position: absolute; bottom: 12%; left: 30%; width: 80px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
}
@keyframes fm-flicker {
  0% { opacity: 0.7; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.05); }
}
@keyframes fm-tremble {
  0% { transform: rotate(2deg) translate(0,0); }
  50% { transform: rotate(1.5deg) translate(1px,-1px); }
  100% { transform: rotate(2.5deg) translate(-1px,1px); }
}
@keyframes fm-paint {
  0% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(25deg) translateY(-4px); }
  100% { transform: rotate(30deg) translateY(0); }
}
@keyframes fm-hand-jerk {
  0% { transform: rotate(5deg) translate(0,0); }
  30% { transform: rotate(8deg) translate(2px,-2px); }
  70% { transform: rotate(3deg) translate(-1px,1px); }
  100% { transform: rotate(5deg) translate(0,0); }
}
@keyframes fm-zoom {
  0% { transform: scale(1); opacity: 0.5; }
  100% { transform: scale(1.3); opacity: 0.9; }
}

/* illuminator-fancy */
.scn-illuminator-fancy {
  background: linear-gradient(180deg, #fdf5e6 0%, #e6d3b8 50%, #c4a882 100%), radial-gradient(ellipse at 40% 20%, rgba(255,250,230,0.7) 0%, transparent 70%);
}
.scn-illuminator-fancy .if-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e6d6 0%, #d4c4a8 100%);
  animation: if-breath 8s ease-in-out infinite alternate;
}
.scn-illuminator-fancy .if-window {
  position: absolute; top: 8%; right: 8%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #add8e6 0%, #87ceeb 40%, #b0e0e6 100%);
  border: 6px solid #8b7355;
  border-radius: 4% 4% 10% 10%;
  box-shadow: inset 0 0 20px rgba(135,206,235,0.3);
  animation: if-clouds 15s linear infinite;
}
.scn-illuminator-fancy .if-easel {
  position: absolute; bottom: 15%; left: 50%; width: 6px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0a 100%);
  border-radius: 10%;
}
.scn-illuminator-fancy .if-canvas {
  position: absolute; bottom: 40%; left: 50%; width: 60px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f5deb3 0%, #e8dcc8 100%);
  border: 2px solid #8b7355;
  border-radius: 2%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: if-glow 4s ease-in-out infinite alternate;
}
.scn-illuminator-fancy .if-figure {
  position: absolute; bottom: 48%; left: 50%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #b0c4de 0%, #778899 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: if-float 3s ease-in-out infinite alternate;
}
.scn-illuminator-fancy .if-chair {
  position: absolute; bottom: 10%; left: 30%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #6b4226 0%, #4a2a10 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%;
}
.scn-illuminator-fancy .if-cat {
  position: absolute; bottom: 12%; left: 60%; width: 18px; height: 14px;
  background: radial-gradient(ellipse at 40% 60%, #d2b48c 0%, #a08060 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: if-stretch 5s ease-in-out infinite alternate;
}
@keyframes if-breath {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes if-clouds {
  0% { background-position: 0 0; }
  100% { background-position: 30px 0; }
}
@keyframes if-glow {
  0% { box-shadow: 0 4px 10px rgba(0,0,0,0.2); }
  100% { box-shadow: 0 0 20px rgba(255,215,0,0.3); }
}
@keyframes if-float {
  0% { transform: translateX(-50%) translateY(0); }
  100% { transform: translateX(-50%) translateY(-3px); }
}
@keyframes if-stretch {
  0% { transform: scaleX(1) scaleY(1); }
  100% { transform: scaleX(1.1) scaleY(0.9); }
}

/* notaries-summoned – overcast calm */
.scn-notaries-summoned {
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%), radial-gradient(ellipse at 50% 0%, #6a7a8a 0%, transparent 70%);
}
.scn-notaries-summoned .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #5a6a7a, #4a5a6a);
}
.scn-notaries-summoned .window-overcast {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at center, #8a9a9a 0%, #6a7a8a 100%);
  border-radius: 5%; box-shadow: inset 0 0 60px rgba(0,0,0,0.2);
  animation: ns-window 10s ease-in-out infinite alternate;
}
.scn-notaries-summoned .table {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 12%;
  background: linear-gradient(180deg, #6a5a4a, #4a3a2a);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: ns-table 20s ease-in-out infinite;
}
.scn-notaries-summoned .documents {
  position: absolute; bottom: 16%; left: 40%; width: 12%; height: 5%;
  background: linear-gradient(180deg, #c0b098, #a09078);
  border-radius: 2px; transform: rotate(-2deg);
  animation: ns-doc 8s ease-in-out infinite alternate;
}
.scn-notaries-summoned .empty-chair {
  position: absolute; bottom: 15%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ns-chair 15s ease-in-out infinite alternate;
}
.scn-notaries-summoned .empty-chair.left  { left: 10%; }
.scn-notaries-summoned .empty-chair.right { right: 10%; animation-delay: -5s; }
.scn-notaries-summoned .seal {
  position: absolute; bottom: 12%; left: 46%; width: 8%; height: 8%;
  background: radial-gradient(circle, #c0a060, #8a7040);
  border-radius: 50%; box-shadow: 0 0 10px 2px #c0a060;
  animation: ns-seal 5s ease-in-out infinite alternate;
}
.scn-notaries-summoned .shadow-atmosphere {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,0.25));
  animation: ns-shadow 12s ease-in-out infinite alternate;
}
@keyframes ns-window { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes ns-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ns-doc { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes ns-chair { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes ns-seal { 0% { box-shadow: 0 0 10px 2px #c0a060; } 50% { box-shadow: 0 0 20px 6px #e0c080; } 100% { box-shadow: 0 0 10px 2px #c0a060; } }
@keyframes ns-shadow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

/* domremy-inquiries – warm sunlit */
.scn-domremy-inquiries {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%), radial-gradient(ellipse at 50% 30%, #ffd700 0%, transparent 60%);
}
.scn-domremy-inquiries .sky-warm {
  position: absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #aed8ff, #d4e8ff);
  animation: di-sky 20s ease-in-out infinite alternate;
}
.scn-domremy-inquiries .sun {
  position: absolute; top: 5%; left: 45%; width: 10%; height: 10%;
  background: radial-gradient(circle, #fff8d0, #ffd700);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,215,0,0.4);
  animation: di-sun 4s ease-in-out infinite alternate;
}
.scn-domremy-inquiries .tree {
  position: absolute; bottom: 30%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #3a6a2a 0%, #1a3a0a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: di-tree 10s ease-in-out infinite alternate;
}
.scn-domremy-inquiries .tree.left  { left: 10%; }
.scn-domremy-inquiries .tree.right { right: 10%; animation-delay: -5s; }
.scn-domremy-inquiries .figure-mengette,
.scn-domremy-inquiries .figure-hauviette {
  position: absolute; bottom: 20%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #c8a878, #8a6840);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: di-figure 6s ease-in-out infinite alternate;
}
.scn-domremy-inquiries .figure-mengette { left: 35%; }
.scn-domremy-inquiries .figure-hauviette { right: 35%; animation-delay: -3s; }
.scn-domremy-inquiries .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a8a3a, #3a6a1a);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: di-grass 8s ease-in-out infinite alternate;
}
.scn-domremy-inquiries .flowers {
  position: absolute; bottom: 12%; left: 30%; width: 30%; height: 4%;
  background: radial-gradient(circle, #ff6699 5px, transparent 5px);
  background-size: 20px 20px;
  animation: di-flowers 5s ease-in-out infinite alternate;
}
@keyframes di-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes di-sun { 0% { transform: scale(1); box-shadow:0 0 50px 15px rgba(255,215,0,0.3); } 50% { transform: scale(1.08); box-shadow:0 0 80px 30px rgba(255,215,0,0.5); } 100% { transform: scale(1); box-shadow:0 0 50px 15px rgba(255,215,0,0.3); } }
@keyframes di-tree { 0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes di-figure { 0% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes di-grass { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes di-flowers { 0% { opacity:0.7; transform: translateY(0); } 50% { opacity:1; transform: translateY(-2px); } 100% { opacity:0.7; transform: translateY(0); } }

/* witnesses-rouen – bright interior calm */
.scn-witnesses-rouen {
  background: linear-gradient(180deg, #e8dcc8 0%, #c0b098 100%), radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 70%);
}
.scn-witnesses-rouen .floor-stone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a09070, #7a6a50);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-witnesses-rouen .backwall {
  position: absolute; top: 0; left: 0; right: 0; height: 75%;
  background: linear-gradient(180deg, #d4c8b0, #b0a088);
}
.scn-witnesses-rouen .window {
  position: absolute; bottom: 50%; width: 12%; height: 30%;
  background: radial-gradient(ellipse at center, #ffffff, #c8d8e8);
  border: 3px solid #8a7a60; border-radius: 4px;
  box-shadow: 0 0 40px 10px rgba(255,255,255,0.3);
  animation: wr-window 8s ease-in-out infinite alternate;
}
.scn-witnesses-rouen .window.left  { left: 15%; }
.scn-witnesses-rouen .window.right { right: 15%; animation-delay: -4s; }
.scn-witnesses-rouen .lightbeam {
  position: absolute; top: 10%; left: 22%; width: 15%; height: 50%;
  background: linear-gradient(180deg, rgba(255,255,255,0.25), transparent);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: wr-lightbeam 12s ease-in-out infinite alternate;
}
.scn-witnesses-rouen .witness-poulengy,
.scn-witnesses-rouen .witness-metz {
  position: absolute; bottom: 15%; width: 6%; height: 22%;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wr-stand 8s ease-in-out infinite alternate;
}
.scn-witnesses-rouen .witness-poulengy { left: 30%; }
.scn-witnesses-rouen .witness-metz    { right: 30%; animation-delay: -4s; }
.scn-witnesses-rouen .lectern {
  position: absolute; bottom: 18%; left: 45%; width: 10%; height: 15%;
  background: linear-gradient(180deg, #6a5a4a, #4a3a2a);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: wr-lectern 18s ease-in-out infinite alternate;
}
@keyframes wr-window { 0% { opacity:0.8; box-shadow: 0 0 30px 5px rgba(255,255,255,0.2); } 50% { opacity:1; box-shadow: 0 0 60px 15px rgba(255,255,255,0.4); } 100% { opacity:0.85; box-shadow: 0 0 40px 8px rgba(255,255,255,0.25); } }
@keyframes wr-lightbeam { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(5px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes wr-stand { 0% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes wr-lectern { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* jean-luillier-testimony – tense bright interior */
.scn-jean-luillier-testimony {
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%), radial-gradient(ellipse at 50% 20%, #ffd4a0 0%, transparent 50%);
}
.scn-jean-luillier-testimony .bg-darkwall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a3a3a, #2a1a1a);
}
.scn-jean-luillier-testimony .harsh-light {
  position: absolute; top: 0; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at center, #fff8e0, #ffd4a0 50%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 70% 100%, 30% 100%);
  animation: jl-light 2s ease-in-out infinite alternate;
}
.scn-jean-luillier-testimony .figure-luillier {
  position: absolute; bottom: 15%; left: 35%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jl-figure 0.5s ease-in-out infinite alternate;
}
.scn-jean-luillier-testimony .table {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-jean-luillier-testimony .judges-desk {
  position: absolute; bottom: 40%; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a, #1a0a0a);
  border-radius: 6px; box-shadow: 0 8px 16px rgba(0,0,0,0.8);
}
.scn-jean-luillier-testimony .shadow {
  position: absolute; bottom: 10%; right: 10%; width: 25%; height: 40%;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.6), transparent);
  filter: blur(8px);
  animation: jl-shadow 3s ease-in-out infinite alternate;
}
.scn-jean-luillier-testimony .seal {
  position: absolute; bottom: 35%; left: 15%; width: 6%; height: 6%;
  background: radial-gradient(circle, #702243, #5e1a1d);
  border-radius: 50%; box-shadow: 0 0 12px 3px #702243;
  animation: jl-seal 1s ease-in-out infinite alternate;
}
@keyframes jl-light { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.7; transform: scaleY(1); } }
@keyframes jl-figure { 0% { transform: translateX(0) translateY(0) rotate(-0.5deg); } 25% { transform: translateX(1px) translateY(-1px) rotate(0.5deg); } 50% { transform: translateX(2px) translateY(0) rotate(-0.5deg); } 75% { transform: translateX(1px) translateY(-1px) rotate(0.5deg); } 100% { transform: translateX(0) translateY(0) rotate(-0.5deg); } }
@keyframes jl-shadow { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes jl-seal { 0% { box-shadow: 0 0 8px 2px #702243; } 50% { box-shadow: 0 0 20px 8px #a03a5a; } 100% { box-shadow: 0 0 8px 2px #702243; } }

.scn-approach-orleans {
  background:
    linear-gradient(180deg, #2a1f3a 0%, #d47a3a 45%, #e8a050 60%, #6a3a1a 100%),
    radial-gradient(ellipse at 50% 60%, #e8a050 0%, transparent 60%);
}
.scn-approach-orleans .sky-dusk {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #4a2a4a 0%, #d47a3a 100%);
  animation: oa-sky 14s ease-in-out infinite alternate;
}
.scn-approach-orleans .sun {
  position:absolute; top:30%; left:20%; width:40px; height:40px;
  background: radial-gradient(circle, #ffc860 0%, #e88030 70%);
  border-radius:50%; box-shadow: 0 0 50px 20px #e88030, 0 0 80px 40px rgba(232,128,48,.4);
  animation: oa-sun 8s ease-in-out infinite alternate;
}
.scn-approach-orleans .hills {
  position:absolute; bottom:35%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #3a5a3a 0%, #2a3a2a 100%);
  border-radius: 30% 70% 0 0 / 100% 60% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
  animation: oa-hills 20s ease-in-out infinite alternate;
}
.scn-approach-orleans .river {
  position:absolute; bottom:20%; left:0; right:0; height:20%;
  background: linear-gradient(0deg, #1a3a5a 0%, #2a4a6a 40%, #6a7a6a 100%);
  box-shadow: inset 0 6px 18px rgba(0,0,0,.4);
  animation: oa-river 6s ease-in-out infinite alternate;
}
.scn-approach-orleans .tower-left {
  position:absolute; bottom:28%; left:15%; width:22px; height:60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: -2px 0 6px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: oa-tower 7s ease-in-out infinite;
}
.scn-approach-orleans .tower-right {
  position:absolute; bottom:28%; right:20%; width:24px; height:65px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 0 6px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: oa-tower 7s ease-in-out infinite reverse;
}
.scn-approach-orleans .belfry {
  position:absolute; bottom:30%; left:50%; width:18px; height:70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: 0 0 8px rgba(0,0,0,.5);
  animation: oa-belfry 9s ease-in-out infinite;
}
.scn-approach-orleans .figure-ov {
  position:absolute; bottom:30%; left:38%; width:14px; height:28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oa-figure 5s ease-in-out infinite alternate;
}
@keyframes oa-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes oa-sun { 0% { transform: scale(1) translateY(0); opacity:0.9 } 50% { transform: scale(1.08) translateY(-3px); opacity:1 } 100% { transform: scale(1) translateY(0); opacity:0.85 } }
@keyframes oa-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes oa-river { 0% { background-position: 0 0 } 50% { background-position: 5px 2px } 100% { background-position: 0 0 } }
@keyframes oa-tower { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0deg) } }
@keyframes oa-belfry { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } 100% { transform: translateX(-50%) } }
@keyframes oa-figure { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }

.scn-reproach-bastard {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #4a2a3a 40%, #8a4a2a 80%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 100%, #8a4a2a 0%, transparent 60%);
}
.scn-reproach-bastard .sky-tense {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4a 0%, #6a3a2a 100%);
  animation: rb-sky 10s ease-in-out infinite alternate;
}
.scn-reproach-bastard .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-reproach-bastard .figure-jeanne {
  position:absolute; bottom:22%; left:35%; width:16px; height:30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rb-jeanne 4s ease-in-out infinite alternate;
}
.scn-reproach-bastard .figure-bastard {
  position:absolute; bottom:20%; right:30%; width:20px; height:36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rb-bastard 5s ease-in-out infinite alternate;
}
.scn-reproach-bastard .torch-left {
  position:absolute; bottom:30%; left:20%; width:6px; height:6px;
  background: radial-gradient(circle, #ffa040 0%, #a04020 70%);
  border-radius:50%; box-shadow: 0 0 20px 6px #ffa040, 0 0 40px 12px rgba(255,160,64,.5);
  animation: rb-torch 1.5s ease-in-out infinite alternate;
}
.scn-reproach-bastard .torch-right {
  position:absolute; bottom:30%; right:20%; width:6px; height:6px;
  background: radial-gradient(circle, #ffa040 0%, #a04020 70%);
  border-radius:50%; box-shadow: 0 0 20px 6px #ffa040, 0 0 40px 12px rgba(255,160,64,.5);
  animation: rb-torch 2.3s ease-in-out infinite alternate;
}
@keyframes rb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes rb-jeanne { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(-3px) rotate(3deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes rb-bastard { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes rb-torch { 0% { transform: scale(1) translateY(0); opacity:0.9 } 50% { transform: scale(1.2) translateY(-2px); opacity:1 } 100% { transform: scale(0.9) translateY(0); opacity:0.8 } }

.scn-bastard-leaves {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #4a2a3a 40%, #8a4a2a 80%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 100%, #8a4a2a 0%, transparent 60%);
}
.scn-bastard-leaves .sky-tense {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4a 0%, #6a3a2a 100%);
  animation: bl-sky 12s ease-in-out infinite alternate;
}
.scn-bastard-leaves .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-bastard-leaves .figure-jeanne-watching {
  position:absolute; bottom:22%; left:25%; width:14px; height:26px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bl-jeanne 6s ease-in-out infinite alternate;
}
.scn-bastard-leaves .figure-bastard-leaving {
  position:absolute; bottom:20%; right:30%; width:20px; height:36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bl-bastard 4s ease-in-out infinite alternate;
}
.scn-bastard-leaves .torch-single {
  position:absolute; bottom:30%; left:40%; width:6px; height:6px;
  background: radial-gradient(circle, #ffa040 0%, #a04020 70%);
  border-radius:50%; box-shadow: 0 0 20px 6px #ffa040, 0 0 40px 12px rgba(255,160,64,.5);
  animation: bl-torch 1.8s ease-in-out infinite alternate;
}
.scn-bastard-leaves .wind-dust {
  position:absolute; bottom:30%; left:0; right:0; height:4px;
  background: linear-gradient(90deg, transparent 0%, rgba(180,120,60,.2) 50%, transparent 100%);
  filter: blur(2px);
  animation: bl-wind 8s linear infinite;
}
@keyframes bl-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes bl-jeanne { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(-4deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bl-bastard { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(6px) rotate(-2deg) } 100% { transform: translateX(12px) rotate(0deg) } }
@keyframes bl-torch { 0% { transform: scale(1) translateY(0); opacity:0.9 } 50% { transform: scale(1.15) translateY(-1px); opacity:1 } 100% { transform: scale(0.95) translateY(0); opacity:0.8 } }
@keyframes bl-wind { 0% { transform: translateX(-100%) } 100% { transform: translateX(100%) } }

.scn-wind-change {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a2a3a 50%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 100%, #2a3a4a 0%, transparent 60%);
}
.scn-wind-change .night-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a2a3a 100%);
  animation: wc-sky 20s ease-in-out infinite alternate;
}
.scn-wind-change .moon {
  position:absolute; top:15%; right:25%; width:30px; height:30px;
  background: radial-gradient(circle, #c0d0e0 0%, #8090a0 70%);
  border-radius:50%; box-shadow: 0 0 40px 15px #a0b0c0, 0 0 80px 30px rgba(160,176,192,.3);
  animation: wc-moon 15s ease-in-out infinite alternate;
}
.scn-wind-change .river-night {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(0deg, #0a0a1a 0%, #1a2a3a 60%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: wc-river 8s ease-in-out infinite alternate;
}
.scn-wind-change .barge-1 {
  position:absolute; bottom:15%; left:10%; width:50px; height:14px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.6);
  animation: wc-drift 25s linear infinite;
}
.scn-wind-change .barge-2 {
  position:absolute; bottom:18%; right:5%; width:40px; height:12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.6);
  animation: wc-drift 30s linear infinite reverse;
}
.scn-wind-change .sail-1 {
  position:absolute; bottom:22%; left:18%; width:30px; height:36px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  border-radius: 10% 10% 0% 0%;
  transform-origin: bottom center;
  animation: wc-sail 6s ease-in-out infinite alternate;
}
.scn-wind-change .sail-2 {
  position:absolute; bottom:20%; right:15%; width:24px; height:28px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  border-radius: 10% 10% 0% 0%;
  transform-origin: bottom center;
  animation: wc-sail 7s ease-in-out infinite alternate reverse;
}
.scn-wind-change .wind-ripple {
  position:absolute; bottom:30%; left:-10%; width:120%; height:6px;
  background: repeating-linear-gradient(90deg, rgba(200,220,240,.2) 0px, transparent 10px, rgba(200,220,240,.1) 20px);
  filter: blur(3px);
  animation: wc-wind 10s linear infinite;
}
@keyframes wc-sky { 0% { opacity:0.7 } 50% { opacity:0.85 } 100% { opacity:0.6 } }
@keyframes wc-moon { 0% { transform: scale(1) translateY(0); opacity:0.8 } 50% { transform: scale(1.05) translateY(-2px); opacity:1 } 100% { transform: scale(1) translateY(0); opacity:0.75 } }
@keyframes wc-river { 0% { background-position: 0 0; opacity:0.8 } 50% { background-position: 4px 2px; opacity:1 } 100% { background-position: 0 0; opacity:0.7 } }
@keyframes wc-drift { 0% { transform: translateX(-20px) } 100% { transform: translateX(120vw) } }
@keyframes wc-sail { 0% { transform: rotate(-3deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.05) } 100% { transform: rotate(-3deg) scaleY(1) } }
@keyframes wc-wind { 0% { transform: translateX(0) } 100% { transform: translateX(100px) } }

.scn-king-deems-harmless {
  background: linear-gradient(180deg, #fff8e7 0%, #f5d6a0 50%, #e8b870 100%), radial-gradient(ellipse at 50% 100%, #e8b870 0%, transparent 70%);
}
.scn-king-deems-harmless .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #faebd7 0%, #f5deb3 100%); z-index: 0;
}
.scn-king-deems-harmless .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: #d2b48c; border-radius: 30% 30% 0 0 / 100% 100% 0 0; z-index: 1;
}
.scn-king-deems-harmless .throne {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 100px; background: linear-gradient(180deg, #b8860b 0%, #8b4513 100%); border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); z-index: 2;
}
.scn-king-deems-harmless .king {
  position: absolute; bottom: 25%; left: 45%; width: 40px; height: 60px; background: linear-gradient(180deg, #4a2c1a 0%, #2c1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; z-index: 3; animation: kdh-king 5s ease-in-out infinite;
}
.scn-king-deems-harmless .poor-man {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 50px; background: linear-gradient(180deg, #5c4033 0%, #3b2b1f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: kdh-poor 4s ease-in-out infinite;
}
.scn-king-deems-harmless .window {
  position: absolute; top: 15%; right: 20%; width: 60px; height: 80px; background: #87ceeb; border: 4px solid #8b4513; border-radius: 5px; z-index: 4; box-shadow: inset 0 0 20px #fff;
}
.scn-king-deems-harmless .light-beam {
  position: absolute; top: 15%; left: 30%; right: 70%; height: 100%; background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 100%); z-index: 5; animation: kdh-beam 10s ease-in-out infinite alternate;
}
@keyframes kdh-king { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes kdh-poor { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes kdh-beam { 0% { opacity: 0.6; transform: translateX(0); } 50% { opacity: 1; transform: translateX(-10px); } 100% { opacity: 0.8; transform: translateX(0); } }

.scn-second-version {
  background: linear-gradient(180deg, #1a1a3e 0%, #0d0d1a 50%, #000 100%), radial-gradient(ellipse at 50% 30%, #2a2a5e 0%, transparent 70%);
}
.scn-second-version .bg {
  position: absolute; inset: 0; background: #0d0d1a; z-index: 0;
}
.scn-second-version .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: #1a1a2e; z-index: 1;
}
.scn-second-version .throne {
  position: absolute; bottom: 15%; left: 35%; width: 60px; height: 90px; background: #2c2c3e; border-radius: 10px; box-shadow: 0 0 20px rgba(0,0,0,0.8); z-index: 2;
}
.scn-second-version .king-shadow {
  position: absolute; bottom: 20%; left: 38%; width: 30px; height: 50px; background: #000; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; z-index: 3; animation: sv-king 8s ease-in-out infinite;
}
.scn-second-version .prophet {
  position: absolute; bottom: 15%; left: 60%; width: 30px; height: 60px; background: #000; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sv-prophet 2s ease-in-out infinite alternate;
}
.scn-second-version .torch {
  position: absolute; bottom: 30%; left: 20%; width: 8px; height: 30px; background: linear-gradient(180deg, #ff8c00 0%, #8b4500 100%); border-radius: 5px; z-index: 4;
}
.scn-second-version .torch-glow {
  position: absolute; bottom: 27%; left: 19%; width: 20px; height: 20px; background: radial-gradient(circle, #ffd700 0%, rgba(255,215,0,0) 70%); border-radius: 50%; z-index: 5; animation: sv-glow 0.5s linear infinite alternate;
}
@keyframes sv-king { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes sv-prophet { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(-3px) rotate(2deg); } }
@keyframes sv-glow { 0% { opacity: 1; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.2); } 100% { opacity: 1; transform: scale(1); } }

.scn-martin-death {
  background: linear-gradient(180deg, #b0b0b0 0%, #808080 50%, #606060 100%), radial-gradient(ellipse at 50% 0%, #c0c0c0 0%, transparent 70%);
}
.scn-martin-death .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #a0a0a0 0%, #707070 100%); z-index: 0;
}
.scn-martin-death .window {
  position: absolute; top: 10%; left: 10%; width: 100px; height: 80px; background: #d3d3d3; border: 4px solid #555; z-index: 1; animation: md-window 20s ease-in-out infinite alternate;
}
.scn-martin-death .figure-kneeling {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 70px; background: #000; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: md-figure 10s ease-in-out infinite;
}
.scn-martin-death .altar {
  position: absolute; bottom: 22%; left: 30%; width: 80px; height: 30px; background: #555; border-radius: 5px; z-index: 2;
}
.scn-martin-death .candle {
  position: absolute; bottom: 30%; left: 35%; width: 6px; height: 20px; background: linear-gradient(180deg, #ffd700 0%, #8b4500 100%); border-radius: 3px; z-index: 3; animation: md-candle 3s ease-in-out infinite alternate;
}
.scn-martin-death .picture-frame {
  position: absolute; top: 15%; right: 10%; width: 30px; height: 40px; background: #8b4513; border: 2px solid black; z-index: 1; animation: md-frame 15s ease-in-out infinite;
}
.scn-martin-death .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 120px; height: 20px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(5px); z-index: 1; animation: md-shadow 12s ease-in-out infinite alternate;
}
@keyframes md-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes md-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes md-candle { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: 0.9; transform: scaleY(0.95); } }
@keyframes md-frame { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes md-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.2); } 100% { opacity: 0.3; transform: scaleX(1); } }

.scn-lost-portrait {
  background: linear-gradient(180deg, #fff5d6 0%, #f0d090 50%, #d4a050 100%), radial-gradient(ellipse at 50% 100%, #d4a050 0%, transparent 70%);
}
.scn-lost-portrait .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #ffe4b5 0%, #f5deb3 100%); z-index: 0;
}
.scn-lost-portrait .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%; background: linear-gradient(180deg, #8b4513 0%, #5c2e00 100%); border-radius: 5px; z-index: 1;
}
.scn-lost-portrait .clerk {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 80px; background: linear-gradient(180deg, #4a2c1a 0%, #2c1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: lp-clerk 6s ease-in-out infinite;
}
.scn-lost-portrait .register {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 10px; background: #f5f5dc; border: 1px solid #8b4513; border-radius: 2px; z-index: 2; transform: rotate(-5deg); animation: lp-register 12s ease-in-out infinite alternate;
}
.scn-lost-portrait .pen {
  position: absolute; bottom: 32%; left: 45%; width: 2px; height: 15px; background: #000; border-radius: 50%; z-index: 3; transform-origin: bottom; animation: lp-pen 2s ease-in-out infinite;
}
.scn-lost-portrait .portrait {
  position: absolute; top: 30%; right: 20%; width: 20px; height: 25px; background: #daa520; border: 2px solid #8b4513; z-index: 1; animation: lp-portrait 20s ease-in-out infinite alternate;
}
.scn-lost-portrait .window-light {
  position: absolute; top: 10%; left: 10%; right: 80%; bottom: 70%; background: linear-gradient(135deg, rgba(255,255,200,0.4) 0%, transparent 100%); z-index: 4; animation: lp-light 15s ease-in-out infinite alternate;
}
@keyframes lp-clerk { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lp-register { 0% { opacity: 1; transform: rotate(-5deg); } 50% { opacity: 0.95; } 100% { opacity: 1; transform: rotate(5deg); } }
@keyframes lp-pen { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(30deg) translateY(-2px); } 100% { transform: rotate(-30deg) translateY(0); } }
@keyframes lp-portrait { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes lp-light { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

/* priest-informed */
.scn-priest-informed { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #3a2a2a 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%); }
.scn-priest-informed .bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-priest-informed .wall-left { position:absolute; left:0; top:0; width:30%; height:100%; background: linear-gradient(90deg, #1a1a2e 0%, transparent 100%); }
.scn-priest-informed .wall-right { position:absolute; right:0; top:0; width:30%; height:100%; background: linear-gradient(270deg, #1a1a2e 0%, transparent 100%); }
.scn-priest-informed .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 20% 20% 0 0; }
.scn-priest-informed .crucifix { position:absolute; bottom:35%; left:20%; width:12px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; box-shadow: 0 0 8px rgba(100,80,50,.3); }
.scn-priest-informed .kneeling-figure { position:absolute; bottom:18%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: pi-kneel 4s ease-in-out infinite alternate; }
.scn-priest-informed .priest-figure { position:absolute; bottom:22%; right:30%; width:22px; height:50px; background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: pi-priest 6s ease-in-out infinite; }
.scn-priest-informed .candle { position:absolute; bottom:28%; left:20%; width:4px; height:12px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 2px; }
.scn-priest-informed .light { position:absolute; bottom:30%; left:20%; width:20px; height:20px; background: radial-gradient(circle, #f0c060 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: pi-glow 2s ease-in-out infinite alternate; }
@keyframes pi-kneel { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes pi-priest { 0%,100% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-3px); } }
@keyframes pi-glow { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }

/* bishop-examines */
.scn-bishop-examines { background: linear-gradient(135deg, #f5f0e0 0%, #d4c8a8 40%, #b8a080 100%), radial-gradient(ellipse at 70% 30%, #e8dcc0 0%, transparent 70%); }
.scn-bishop-examines .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc0 0%, #d0c0a0 100%); }
.scn-bishop-examines .window { position:absolute; left:5%; top:10%; width:30%; height:50%; background: linear-gradient(180deg, #c8e0ff 0%, #a0c8f0 100%); border: 4px solid #8a6a4a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,.3); }
.scn-bishop-examines .light-beam { position:absolute; left:5%; top:10%; width:40%; height:80%; background: linear-gradient(135deg, rgba(255,255,200,.3) 0%, transparent 100%); transform: skewY(-10deg); filter: blur(8px); animation: be-beam 12s ease-in-out infinite; }
.scn-bishop-examines .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #b09878 0%, #907858 100%); border-radius: 10% 10% 0 0; }
.scn-bishop-examines .bishop-chair { position:absolute; bottom:18%; left:35%; width:40px; height:50px; background: linear-gradient(180deg, #6a4a2a 0%, #4a3a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-bishop-examines .bishop { position:absolute; bottom:20%; left:35%; width:24px; height:60px; background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: be-bishop 3s ease-in-out infinite alternate; }
.scn-bishop-examines .martin { position:absolute; bottom:15%; right:15%; width:18px; height:50px; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-3deg); animation: be-martin 4s ease-in-out infinite; }
.scn-bishop-examines .shadow { position:absolute; bottom:10%; left:30%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); animation: be-shadow 6s ease-in-out infinite alternate; }
@keyframes be-beam { 0% { opacity: 0.6; transform: skewY(-10deg) translateX(0); } 50% { opacity: 1; transform: skewY(-5deg) translateX(10px); } 100% { opacity: 0.7; transform: skewY(-12deg) translateX(0); } }
@keyframes be-bishop { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(7deg) translateY(0); } }
@keyframes be-martin { 0%,100% { transform: rotate(-3deg) scaleX(1); } 50% { transform: rotate(1deg) scaleX(0.98) translateY(-2px); } }
@keyframes be-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.2); } 100% { opacity: 0.6; transform: scaleX(0.9); } }

/* prefect-involved */
.scn-prefect-involved { background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 50%, #c0a880 100%), radial-gradient(ellipse at 20% 30%, #fff8e0 0%, transparent 70%); }
.scn-prefect-involved .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc0 0%, #d0c0a0 100%); }
.scn-prefect-involved .desk { position:absolute; bottom:10%; left:10%; right:30%; height:30%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3a1a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-prefect-involved .prefect { position:absolute; bottom:15%; left:15%; width:22px; height:55px; background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(2deg); animation: pi2-prefect 5s ease-in-out infinite alternate; }
.scn-prefect-involved .martin { position:absolute; bottom:12%; right:15%; width:18px; height:50px; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: pi2-martin 4s ease-in-out infinite; }
.scn-prefect-involved .window { position:absolute; right:5%; top:10%; width:20%; height:40%; background: linear-gradient(180deg, #c8e0ff 0%, #a0c8f0 100%); border: 3px solid #8a6a4a; border-radius: 4px; box-shadow: inset 0 0 15px rgba(255,255,200,.3); }
.scn-prefect-involved .papers { position:absolute; bottom:20%; left:18%; width:30px; height:4px; background: #f0e8c8; border-radius: 1px; transform: rotate(-10deg); animation: pi2-paper 8s ease-in-out infinite alternate; }
.scn-prefect-involved .inkwell { position:absolute; bottom:22%; left:22%; width:6px; height:10px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50%; }
.scn-prefect-involved .shadow { position:absolute; bottom:5%; left:10%; right:30%; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); animation: pi2-shadow 7s ease-in-out infinite alternate; }
@keyframes pi2-prefect { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-4px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes pi2-martin { 0%,100% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(2deg) scale(0.98); } }
@keyframes pi2-paper { 0% { transform: rotate(-10deg) translateY(0); opacity: 0.8; } 50% { transform: rotate(-5deg) translateY(2px); opacity: 1; } 100% { transform: rotate(-15deg) translateY(0); opacity: 0.9; } }
@keyframes pi2-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

/* paris-hotel */
.scn-paris-hotel { background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 40%, #b8b0a0 100%), radial-gradient(ellipse at 80% 20%, #f0e8d8 0%, transparent 70%); }
.scn-paris-hotel .wall { position:absolute; inset:0; background: linear-gradient(180deg, #d8d0c0 0%, #c0b8a8 100%); }
.scn-paris-hotel .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #a09888 0%, #908878 100%); border-radius: 5% 5% 0 0; }
.scn-paris-hotel .window { position:absolute; left:5%; top:10%; width:25%; height:45%; background: linear-gradient(180deg, #b8d0e8 0%, #90b8d8 100%); border: 3px solid #7a6a5a; border-radius: 4px; box-shadow: inset 0 0 15px rgba(255,255,255,.3); }
.scn-paris-hotel .bed { position:absolute; bottom:12%; left:30%; width:35%; height:25%; background: linear-gradient(180deg, #c8b098 0%, #a08870 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: ph-bed 10s ease-in-out infinite alternate; }
.scn-paris-hotel .mattin-figure { position:absolute; bottom:18%; left:35%; width:20px; height:35px; background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: ph-martin 4s ease-in-out infinite; }
.scn-paris-hotel .andre-figure { position:absolute; bottom:13%; left:55%; width:22px; height:45px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: ph-andre 6s ease-in-out infinite; }
.scn-paris-hotel .lamp { position:absolute; bottom:35%; right:15%; width:8px; height:15px; background: linear-gradient(180deg, #e8d8c0 0%, #c0b098 100%); border-radius: 4px; box-shadow: 0 0 10px rgba(255,200,150,.4); animation: ph-lamp 3s ease-in-out infinite alternate; }
.scn-paris-hotel .apparition-glow { position:absolute; top:10%; left:35%; width:40px; height:60px; background: radial-gradient(circle, rgba(220,220,255,.4) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: ph-apparition 8s ease-in-out infinite alternate; }
@keyframes ph-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ph-martin { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } }
@keyframes ph-andre { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ph-lamp { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes ph-apparition { 0% { opacity: 0.2; transform: scale(0.8); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.9); } }

/* citizens-urge-attack */
.scn-citizens-urge-attack {
  background: linear-gradient(180deg, #1a1a3e 0%, #4a2a1a 30%, #c07040 60%, #e0a050 100%),
              radial-gradient(ellipse at 50% 0%, #e0a050 0%, transparent 70%);
}
.scn-citizens-urge-attack .sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a3e 0%, transparent 40%);
  animation: cia-sky 15s ease-in-out infinite alternate;
}
.scn-citizens-urge-attack .sun {
  position: absolute; top: 8%; left: 65%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff0c0 0%, #e0a050 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 80px 40px #e0a050, 0 0 120px 60px rgba(224,160,80,.3);
  animation: cia-sun 6s ease-in-out infinite alternate;
}
.scn-citizens-urge-attack .cloud-a { position: absolute; top: 12%; left: 10%; width: 90px; height: 20px; background: linear-gradient(180deg, rgba(255,255,255,.4), rgba(255,255,255,.05)); border-radius: 50%; filter: blur(5px); animation: cia-cloud-a 40s linear infinite; }
.scn-citizens-urge-attack .cloud-b { position: absolute; top: 18%; right: 5%; width: 70px; height: 14px; background: linear-gradient(180deg, rgba(255,255,255,.35), rgba(255,255,255,0)); border-radius: 50%; filter: blur(4px); animation: cia-cloud-b 55s linear infinite reverse; }
.scn-citizens-urge-attack .wall {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.6);
  animation: cia-wall 10s ease-in-out infinite;
}
.scn-citizens-urge-attack .gate {
  position: absolute; bottom: 20%; left: 43%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.7), 0 4px 8px rgba(0,0,0,.5);
  animation: cia-gate 8s ease-in-out infinite alternate;
}
.scn-citizens-urge-attack .crowd {
  position: absolute; bottom: 0; left: 25%; width: 50%; height: 22%;
  background: radial-gradient(ellipse 70% 40% at 20% 100%, #1a1a2a 0%, transparent 60%),
              radial-gradient(ellipse 60% 40% at 50% 100%, #1a1a2a 0%, transparent 55%),
              radial-gradient(ellipse 80% 40% at 80% 100%, #1a1a2a 0%, transparent 50%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cia-crowd 4s ease-in-out infinite alternate;
}
.scn-citizens-urge-attack .banner {
  position: absolute; bottom: 55%; left: 48%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #a0461a 0%, #702243 100%);
  border-radius: 2px; box-shadow: 0 8px 16px rgba(0,0,0,.4);
  animation: cia-banner 5s ease-in-out infinite;
}
.scn-citizens-urge-attack .dust {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, rgba(200,160,120,.08) 0%, transparent 100%);
  filter: blur(10px); animation: cia-dust 12s ease-in-out infinite alternate;
}
@keyframes cia-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes cia-sun { 0% { transform: scale(1); box-shadow: 0 0 60px 30px #e0a050 } 50% { transform: scale(1.05); box-shadow: 0 0 90px 45px #f0c060 } 100% { transform: scale(.98); box-shadow: 0 0 70px 35px #d09040 } }
@keyframes cia-cloud-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes cia-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(-110vw) } }
@keyframes cia-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes cia-gate { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(.97) } }
@keyframes cia-crowd { 0% { transform: translateX(-2px) scale(1) } 50% { transform: translateX(2px) scale(1.01) } 100% { transform: translateX(-1px) scale(1) } }
@keyframes cia-banner { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes cia-dust { 0% { transform: translateX(-5px) opacity(.6) } 50% { transform: translateX(8px) opacity(.8) } 100% { transform: translateX(-3px) opacity(.5) } }

/* crossing-to-le-portereau */
.scn-crossing-to-le-portereau {
  background: linear-gradient(180deg, #1a2a4a 0%, #3a4a6a 40%, #c08050 80%, #e0b070 100%),
              radial-gradient(ellipse at 50% 0%, #e0b070 0%, transparent 70%);
}
.scn-crossing-to-le-portereau .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #1a2a4a 0%, transparent 100%);
  animation: clp-sky 14s ease-in-out infinite alternate;
}
.scn-crossing-to-le-portereau .sun {
  position: absolute; top: 6%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe0a0 0%, #e0a050 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 30px #e0a050, 0 0 100px 50px rgba(224,160,80,.3);
  animation: clp-sun 8s ease-in-out infinite alternate;
}
.scn-crossing-to-le-portereau .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a4a6a 0%, #1a2a3a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,10,20,.6);
  animation: clp-water 12s ease-in-out infinite alternate;
}
.scn-crossing-to-le-portereau .mist {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(200,220,240,.15) 0%, transparent 100%);
  filter: blur(12px); animation: clp-mist 20s linear infinite alternate;
}
.scn-crossing-to-le-portereau .boat {
  position: absolute; bottom: 35%; left: 35%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: clp-boat 7s ease-in-out infinite;
}
.scn-crossing-to-le-portereau .sail {
  position: absolute; bottom: 48%; left: 38%; width: 24px; height: 40px;
  background: linear-gradient(135deg, #e8d8c0 0%, #c0a880 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  box-shadow: 2px 2px 4px rgba(0,0,0,.3);
  animation: clp-sail 6s ease-in-out infinite;
}
.scn-crossing-to-le-portereau .figure {
  position: absolute; bottom: 40%; left: 40%; width: 12px; height: 24px;
  background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: clp-figure 4s ease-in-out infinite;
}
.scn-crossing-to-le-portereau .oar {
  position: absolute; bottom: 38%; left: 30%; width: 4px; height: 36px;
  background: #5a3a2a; border-radius: 2px;
  transform-origin: 50% 100%; animation: clp-oar 3s ease-in-out infinite;
}
@keyframes clp-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes clp-sun { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.04) translateY(-3px) } 100% { transform: scale(.97) translateY(0) } }
@keyframes clp-water { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(2px) } }
@keyframes clp-mist { 0% { opacity: .6; transform: translateX(0) } 50% { opacity: .8; transform: translateX(20px) } 100% { opacity: .5; transform: translateX(-10px) } }
@keyframes clp-boat { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes clp-sail { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(3deg) scaleX(1.02) } 100% { transform: rotate(-4deg) scaleX(1) } }
@keyframes clp-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-3deg) } 50% { transform: translateX(6px) rotate(0) } 75% { transform: translateX(9px) rotate(3deg) } 100% { transform: translateX(12px) rotate(0) } }
@keyframes clp-oar { 0% { transform: rotate(-20deg) } 25% { transform: rotate(10deg) } 50% { transform: rotate(-25deg) } 75% { transform: rotate(5deg) } 100% { transform: rotate(-15deg) } }

/* assault-tourelles */
.scn-assault-tourelles {
  background: linear-gradient(180deg, #5a8ab0 0%, #8ab8d8 30%, #c8d8d0 60%, #e8d8b0 100%),
              radial-gradient(ellipse at 50% 0%, #fff0c0 0%, transparent 60%);
}
.scn-assault-tourelles .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #5a8ab0 0%, transparent 100%); animation: ast-sky 10s ease-in-out infinite alternate; }
.scn-assault-tourelles .sun { position: absolute; top: 10%; right: 15%; width: 70px; height: 70px; background: radial-gradient(circle, #fff0c0 0%, #f0c060 50%, transparent 65%); border-radius: 50%; box-shadow: 0 0 100px 40px #f0c060, 0 0 160px 80px rgba(240,192,96,.3); animation: ast-sun 7s ease-in-out infinite alternate; }
.scn-assault-tourelles .earthwork { position: absolute; bottom: 20%; left: 15%; width: 70%; height: 30%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: ast-earth 12s ease-in-out infinite; }
.scn-assault-tourelles .ladder { position: absolute; bottom: 28%; left: 38%; width: 6px; height: 50px; background: #5a3a2a; border-radius: 2px; transform-origin: bottom center; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: ast-ladder 5s ease-in-out infinite; }
.scn-assault-tourelles .soldier { position: absolute; bottom: 35%; left: 37%; width: 14px; height: 24px; background: #1a1a2a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ast-soldier 4s ease-in-out infinite; }
.scn-assault-tourelles .banner { position: absolute; bottom: 48%; left: 22%; width: 10px; height: 40px; background: linear-gradient(180deg, #a0461a 0%, #702243 100%); border-radius: 1px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: ast-banner 6s ease-in-out infinite; }
.scn-assault-tourelles .dust-a { position: absolute; bottom: 10%; left: 20%; width: 120px; height: 40px; background: linear-gradient(180deg, rgba(200,180,140,.15) 0%, transparent 100%); filter: blur(15px); animation: ast-dust-a 30s linear infinite; }
.scn-assault-tourelles .dust-b { position: absolute; bottom: 15%; right: 10%; width: 80px; height: 30px; background: linear-gradient(180deg, rgba(200,180,140,.1) 0%, transparent 100%); filter: blur(12px); animation: ast-dust-b 40s linear infinite reverse; }
@keyframes ast-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes ast-sun { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.06) rotate(5deg) } 100% { transform: scale(.95) rotate(-3deg) } }
@keyframes ast-earth { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes ast-ladder { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-12deg) translateY(0) } }
@keyframes ast-soldier { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-6px) rotate(5deg) } 50% { transform: translateY(-10px) rotate(0) } 75% { transform: translateY(-4px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ast-banner { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(-4deg) translateY(0) } }
@keyframes ast-dust-a { 0% { transform: translateX(-20px) opacity(.6) } 50% { transform: translateX(30px) opacity(.9) } 100% { transform: translateX(-10px) opacity(.5) } }
@keyframes ast-dust-b { 0% { transform: translateX(0) opacity(.5) } 50% { transform: translateX(-40px) opacity(.8) } 100% { transform: translateX(10px) opacity(.4) } }

/* maid-wounded */
.scn-maid-wounded {
  background: linear-gradient(180deg, #c08050 0%, #e0b070 30%, #f0d0a0 60%, #e8e0d0 100%),
              radial-gradient(ellipse at 50% 0%, #fff0c0 0%, transparent 60%);
}
.scn-maid-wounded .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #c08050 0%, transparent 100%); animation: mwd-sky 10s ease-in-out infinite alternate; }
.scn-maid-wounded .sun { position: absolute; top: 5%; left: 25%; width: 80px; height: 80px; background: radial-gradient(circle, #fff0c0 0%, #f0c060 50%, transparent 65%); border-radius: 50%; box-shadow: 0 0 120px 40px #f0c060, 0 0 200px 100px rgba(240,192,96,.2); animation: mwd-sun 8s ease-in-out infinite alternate; }
.scn-maid-wounded .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); animation: mwd-ground 15s ease-in-out infinite; }
.scn-maid-wounded .banner { position: absolute; bottom: 40%; left: 25%; width: 14px; height: 60px; background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%); border-radius: 2px; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: mwd-banner 6s ease-in-out infinite; }
.scn-maid-wounded .figure { position: absolute; bottom: 30%; left: 45%; width: 20px; height: 36px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mwd-figure 5s ease-in-out infinite; }
.scn-maid-wounded .arrow { position: absolute; bottom: 55%; left: 40%; width: 4px; height: 50px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 2px; transform-origin: 50% 100%; transform: rotate(20deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: mwd-arrow 3s ease-in-out infinite; }
.scn-maid-wounded .crowd { position: absolute; bottom: 0; left: 15%; width: 70%; height: 25%; background: radial-gradient(ellipse 60% 40% at 30% 100%, #1a1a2a 0%, transparent 50%), radial-gradient(ellipse 70% 40% at 60% 100%, #1a1a2a 0%, transparent 55%), radial-gradient(ellipse 50% 40% at 85% 100%, #1a1a2a 0%, transparent 45%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mwd-crowd 4s ease-in-out infinite alternate; }
.scn-maid-wounded .cross { position: absolute; bottom: 45%; left: 55%; width: 8px; height: 40px; background: linear-gradient(90deg, transparent 35%, #702243 35%, #702243 65%, transparent 65%), linear-gradient(180deg, transparent 35%, #702243 35%, #702243 65%, transparent 65%); border-radius: 1px; box-shadow: 0 0 12px 4px rgba(112,34,67,.5); animation: mwd-cross 7s ease-in-out infinite; }
@keyframes mwd-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes mwd-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(.96) } }
@keyframes mwd-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes mwd-banner { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(4deg) translateY(-4px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes mwd-figure { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-8deg) translateY(-3px) } 50% { transform: rotate(-15deg) translateY(-6px) } 75% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes mwd-arrow { 0% { transform: rotate(20deg) translateX(0) } 25% { transform: rotate(22deg) translateX(2px) } 50% { transform: rotate(18deg) translateX(0) } 75% { transform: rotate(21deg) translateX(-2px) } 100% { transform: rotate(20deg) translateX(0) } }
@keyframes mwd-crowd { 0% { transform: translateX(-3px) scale(1) } 50% { transform: translateX(3px) scale(1.01) } 100% { transform: translateX(-2px) scale(1) } }
@keyframes mwd-cross { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.03) rotate(2deg) } 100% { transform: scale(.98) rotate(-1deg) } }

/* engelide-prophecy */
.scn-engelide-prophecy {
  background:
    linear-gradient(180deg, #fff8e7 0%, #d4e0f0 50%, #b0c4de 100%),
    radial-gradient(ellipse at 70% 20%, #fff0c0 0%, transparent 60%);
  overflow: hidden;
}
.scn-engelide-prophecy .window { position:absolute; inset:5% 10% 60% 10%; background: linear-gradient(135deg, #e0f0ff 0%, #b0d0f0 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,200,0.5); animation: en1-window 8s ease-in-out infinite alternate; }
.scn-engelide-prophecy .virgin { position:absolute; bottom:20%; left:30%; width:40px; height:70px; background: linear-gradient(90deg, #f0e0d0 0%, #c0a8a0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: en1-virgin 6s ease-in-out infinite; }
.scn-engelide-prophecy .lily { position:absolute; bottom:45%; left:38%; width:10px; height:25px; background: linear-gradient(180deg, #fff 0%, #e0e0e0 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom; animation: en1-lily 5s ease-in-out infinite; }
.scn-engelide-prophecy .fountain { position:absolute; bottom:10%; left:60%; width:50px; height:60px; background: radial-gradient(ellipse at 50% 30%, #e0f0ff 0%, #b0d0f0 50%, transparent 70%); border-radius: 50% 50% 0 0; animation: en1-fountain 4s ease-in-out infinite; }
.scn-engelide-prophecy .scarlet-mark { position:absolute; bottom:50%; left:33%; width:4px; height:4px; background: #c8553d; border-radius:50%; box-shadow: 0 0 6px 2px #c8553d; animation: en1-scarlet 2s ease-in-out infinite alternate; }
.scn-engelide-prophecy .light-beam { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(90deg, transparent, rgba(255,255,200,0.3), transparent); animation: en1-light 10s ease-in-out infinite alternate; }
@keyframes en1-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes en1-virgin { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes en1-lily { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes en1-fountain { 0% { opacity:0.6; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1); } 100% { opacity:0.6; transform: scaleY(0.9); } }
@keyframes en1-scarlet { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes en1-light { 0% { transform: translateX(-30px); } 50% { transform: translateX(0); } 100% { transform: translateX(30px); } }

/* compiegne-visit */
.scn-compiegne-visit {
  background:
    linear-gradient(180deg, #fde68a 0%, #fcd34d 40%, #f59e0b 100%),
    radial-gradient(ellipse at 50% 0%, #fff8c0 0%, transparent 60%);
  overflow: hidden;
}
.scn-compiegne-visit .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #fef08a 0%, #fde68a 100%); animation: co1-sky 12s ease-in-out infinite alternate; }
.scn-compiegne-visit .castle { position:absolute; bottom:30%; left:10%; width:60%; height:40%; background: linear-gradient(180deg, #9ca3af 0%, #6b7280 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3); animation: co1-castle 20s ease-in-out infinite; }
.scn-compiegne-visit .rider { position:absolute; bottom:38%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #1f2937 0%, #111827 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: co1-rider 4s ease-in-out infinite; }
.scn-compiegne-visit .banner { position:absolute; bottom:50%; left:44%; width:6px; height:30px; background: #c8553d; border-radius:2px; transform-origin: bottom; animation: co1-banner 3s ease-in-out infinite; }
.scn-compiegne-visit .soldier-left { position:absolute; bottom:35%; left:15%; width:15px; height:35px; background: linear-gradient(180deg, #374151 0%, #1f2937 100%); border-radius: 30% 30% 20% 20%; animation: co1-soldier 6s ease-in-out infinite; }
.scn-compiegne-visit .soldier-right { position:absolute; bottom:35%; right:15%; width:15px; height:35px; background: linear-gradient(180deg, #374151 0%, #1f2937 100%); border-radius: 30% 30% 20% 20%; animation: co1-soldier 6s ease-in-out infinite 3s; }
.scn-compiegne-visit .dust { position:absolute; bottom:30%; left:0; right:0; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.2) 0%, transparent 70%); animation: co1-dust 8s linear infinite; }
@keyframes co1-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes co1-castle { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes co1-rider { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes co1-banner { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes co1-soldier { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(0); } }
@keyframes co1-dust { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-10px) scale(1.2); opacity:0.8; } 100% { transform: translateY(-20px) scale(1.5); opacity:0; } }

/* armagnac-letter */
.scn-armagnac-letter {
  background:
    linear-gradient(180deg, #e5e7eb 0%, #d1d5db 50%, #9ca3af 100%),
    radial-gradient(ellipse at 50% 100%, #fef3c7 0%, transparent 60%);
  overflow: hidden;
}
.scn-armagnac-letter .desk { position:absolute; bottom:0; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #8b5e3c 0%, #6b4226 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -5px 15px rgba(0,0,0,0.3); }
.scn-armagnac-letter .scroll { position:absolute; bottom:30%; left:25%; width:50%; height:20%; background: linear-gradient(90deg, #fef3c7 0%, #fde68a 100%); border-radius: 5px; transform-origin: left; animation: ar1-scroll 15s ease-in-out infinite alternate; }
.scn-armagnac-letter .quill { position:absolute; bottom:45%; left:35%; width:4px; height:30px; background: #475569; border-radius: 0 0 2px 2px; transform-origin: bottom; animation: ar1-quill 5s ease-in-out infinite; }
.scn-armagnac-letter .inkwell { position:absolute; bottom:20%; left:20%; width:20px; height:15px; background: #1e293b; border-radius: 50% 50% 10% 10%; box-shadow: inset 0 -3px 3px rgba(255,255,255,0.2); animation: ar1-ink 8s ease-in-out infinite; }
.scn-armagnac-letter .pope-crown1 { position:absolute; bottom:60%; left:20%; width:20px; height:25px; background: #facc15; border-radius: 50% 50% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: ar1-crown 10s ease-in-out infinite 0s; }
.scn-armagnac-letter .pope-crown2 { position:absolute; bottom:60%; left:45%; width:20px; height:25px; background: #facc15; border-radius: 50% 50% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: ar1-crown 10s ease-in-out infinite 3.33s; }
.scn-armagnac-letter .pope-crown3 { position:absolute; bottom:60%; right:20%; width:20px; height:25px; background: #facc15; border-radius: 50% 50% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: ar1-crown 10s ease-in-out infinite 6.66s; }
.scn-armagnac-letter .window { position:absolute; top:5%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #bfdbfe 0%, #93c5fd 100%); border-radius: 10px; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); animation: ar1-window 6s ease-in-out infinite alternate; }
@keyframes ar1-scroll { 0% { transform: scaleX(0.8); } 50% { transform: scaleX(1); } 100% { transform: scaleX(0.8); } }
@keyframes ar1-quill { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes ar1-ink { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ar1-crown { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes ar1-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:1; } }

/* maid-reply-armagnac */
.scn-maid-reply-armagnac {
  background:
    linear-gradient(180deg, #fef3c7 0%, #fde68a 50%, #fcd34d 100%),
    radial-gradient(ellipse at 80% 20%, #fff8c0 0%, transparent 50%);
  overflow: hidden;
}
.scn-maid-reply-armagnac .maid { position:absolute; bottom:20%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #374151 0%, #1f2937 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: mr1-maid 4s ease-in-out infinite; }
.scn-maid-reply-armagnac .desk { position:absolute; bottom:0; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #8b5e3c 0%, #6b4226 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -5px 15px rgba(0,0,0,0.3); }
.scn-maid-reply-armagnac .letter { position:absolute; bottom:30%; left:40%; width:30%; height:15%; background: linear-gradient(90deg, #fef3c7 0%, #fde68a 100%); border-radius: 3px; animation: mr1-letter 6s ease-in-out infinite alternate; }
.scn-maid-reply-armagnac .cross { position:absolute; bottom:45%; left:52%; width:8px; height:8px; background: #c8553d; clip-path: polygon(30% 0%, 70% 0%, 70% 30%, 100% 30%, 100% 70%, 70% 70%, 70% 100%, 30% 100%, 30% 70%, 0% 70%, 0% 30%, 30% 30%); animation: mr1-cross 3s ease-in-out infinite; }
.scn-maid-reply-armagnac .inkwell { position:absolute; bottom:20%; left:25%; width:20px; height:15px; background: #1e293b; border-radius: 50% 50% 10% 10%; box-shadow: inset 0 -3px 3px rgba(255,255,255,0.2); }
.scn-maid-reply-armagnac .light-beam { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(90deg, transparent, rgba(255,255,200,0.2), transparent); animation: mr1-light 8s ease-in-out infinite alternate; }
.scn-maid-reply-armagnac .shadow { position:absolute; bottom:0; left:30%; width:50px; height:10px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px); animation: mr1-shadow 4s ease-in-out infinite; }
@keyframes mr1-maid { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mr1-letter { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes mr1-cross { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes mr1-light { 0% { transform: translateX(-20px); } 50% { transform: translateX(0); } 100% { transform: translateX(20px); } }
@keyframes mr1-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.3); } 100% { transform: scaleX(1); } }

.scn-english-army-advances {
  background: linear-gradient(180deg, #1565C0 0%, #42A5F5 40%, #FFD54F 100%), radial-gradient(ellipse at 50% 50%, transparent 60%, rgba(0,0,0,0.3) 100%);
}
.scn-english-army-advances .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #1a237e 0%, #42A5F5 100%); animation: ea-sky 12s ease-in-out infinite alternate; }
.scn-english-army-advances .sun { position:absolute; top:15%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #FFF9C4 0%, #FFD54F 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,213,79,0.6); animation: ea-sun 8s ease-in-out infinite alternate; }
.scn-english-army-advances .horizon { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #8D6E63 0%, #4E342E 100%); border-radius:40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: ea-horizon 18s ease-in-out infinite alternate; }
.scn-english-army-advances .soldier-1 { position:absolute; bottom:38%; left:20%; width:14px; height:30px; background: linear-gradient(180deg, #4E342E 0%, #3E2723 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ea-march 4s ease-in-out infinite; }
.scn-english-army-advances .soldier-2 { position:absolute; bottom:38%; left:35%; width:14px; height:30px; background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ea-march 4s ease-in-out infinite 0.5s; }
.scn-english-army-advances .soldier-3 { position:absolute; bottom:38%; left:50%; width:14px; height:30px; background: linear-gradient(180deg, #6D4C41 0%, #3E2723 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ea-march 4s ease-in-out infinite 1s; }
.scn-english-army-advances .banner { position:absolute; bottom:42%; left:45%; width:8px; height:20px; background: #c8553d; border-radius:0 0 10% 10%; transform-origin:bottom center; animation: ea-banner 3s ease-in-out infinite alternate; }
.scn-english-army-advances .dust { position:absolute; bottom:35%; left:10%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(255,239,213,0.6) 0%, transparent 100%); filter:blur(5px); animation: ea-dust 15s linear infinite; }
@keyframes ea-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ea-sun { 0% { transform:scale(0.95) } 50% { transform:scale(1.05) } 100% { transform:scale(0.95) } }
@keyframes ea-horizon { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes ea-march { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(5px) translateY(-1px) rotate(2deg) } 50% { transform:translateX(10px) translateY(0) rotate(-2deg) } 75% { transform:translateX(15px) translateY(-1px) rotate(2deg) } 100% { transform:translateX(20px) translateY(0) rotate(0deg) } }
@keyframes ea-banner { 0% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(-5deg) } }
@keyframes ea-dust { 0% { transform:translateX(0) scale(1); opacity:0.5 } 50% { transform:translateX(30px) scale(1.2); opacity:0.8 } 100% { transform:translateX(60px) scale(1); opacity:0.5 } }

.scn-war-party {
  background: linear-gradient(180deg, #1565C0 0%, #42A5F5 40%, #FFD54F 100%), radial-gradient(ellipse at 50% 50%, transparent 60%, rgba(0,0,0,0.2) 100%);
}
.scn-war-party .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a237e 0%, #42A5F5 100%); animation: wp-sky 12s ease-in-out infinite alternate; }
.scn-war-party .sun { position:absolute; top:20%; left:80%; width:35px; height:35px; background: radial-gradient(circle, #FFF9C4 0%, #FFD54F 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 50px 15px rgba(255,213,79,0.6); animation: wp-sun 8s ease-in-out infinite alternate; }
.scn-war-party .ground { position:absolute; bottom:30%; left:0; right:0; height:15%; background: linear-gradient(180deg, #8D6E63 0%, #4E342E 100%); border-radius:30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: wp-ground 15s ease-in-out infinite alternate; }
.scn-war-party .figure-1 { position:absolute; bottom:25%; left:20%; width:16px; height:32px; background: linear-gradient(180deg, #4E342E 0%, #3E2723 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: wp-bob 4s ease-in-out infinite; }
.scn-war-party .figure-2 { position:absolute; bottom:25%; left:40%; width:16px; height:32px; background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: wp-bob 4s ease-in-out infinite 0.5s; }
.scn-war-party .figure-3 { position:absolute; bottom:25%; left:60%; width:16px; height:32px; background: linear-gradient(180deg, #6D4C41 0%, #3E2723 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: wp-bob 4s ease-in-out infinite 1s; }
.scn-war-party .banner { position:absolute; bottom:40%; left:35%; width:8px; height:25px; background: #c8553d; border-radius:0 0 10% 10%; transform-origin:bottom center; animation: wp-banner 3s ease-in-out infinite alternate; }
.scn-war-party .weapon-1 { position:absolute; bottom:28%; left:15%; width:4px; height:25px; background: #6D4C41; border-radius:20% 20% 0 0; transform-origin:bottom center; animation: wp-weapon 2s ease-in-out infinite; }
.scn-war-party .weapon-2 { position:absolute; bottom:28%; left:55%; width:4px; height:25px; background: #6D4C41; border-radius:20% 20% 0 0; transform-origin:bottom center; animation: wp-weapon 2s ease-in-out infinite 1s; }
@keyframes wp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes wp-sun { 0% { transform:scale(0.95) } 50% { transform:scale(1.05) } 100% { transform:scale(0.95) } }
@keyframes wp-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes wp-bob { 0% { transform:translateY(0) rotate(-2deg) } 25% { transform:translateY(-2px) rotate(2deg) } 50% { transform:translateY(0) rotate(-1deg) } 75% { transform:translateY(-2px) rotate(1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes wp-banner { 0% { transform:rotate(-8deg) } 50% { transform:rotate(8deg) } 100% { transform:rotate(-8deg) } }
@keyframes wp-weapon { 0% { transform:rotate(-10deg) } 50% { transform:rotate(10deg) } 100% { transform:rotate(-10deg) } }

.scn-march-to-crepy {
  background: linear-gradient(180deg, #1565C0 0%, #42A5F5 40%, #FFD54F 100%), radial-gradient(ellipse at 50% 80%, transparent 50%, rgba(0,0,0,0.2) 100%);
}
.scn-march-to-crepy .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #1a237e 0%, #42A5F5 100%); animation: mc-sky 12s ease-in-out infinite alternate; }
.scn-march-to-crepy .sun { position:absolute; top:15%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #FFF9C4 0%, #FFD54F 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 70px 20px rgba(255,213,79,0.6); animation: mc-sun 8s ease-in-out infinite alternate; }
.scn-march-to-crepy .road { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #9E9E9E 0%, #616161 100%); clip-path:polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); animation: mc-road 20s linear infinite; }
.scn-march-to-crepy .soldier-1 { position:absolute; bottom:35%; left:10%; width:12px; height:25px; background: linear-gradient(180deg, #4E342E 0%, #3E2723 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mc-march 4s ease-in-out infinite; }
.scn-march-to-crepy .soldier-2 { position:absolute; bottom:35%; left:25%; width:12px; height:25px; background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mc-march 4s ease-in-out infinite 0.5s; }
.scn-march-to-crepy .soldier-3 { position:absolute; bottom:35%; left:40%; width:12px; height:25px; background: linear-gradient(180deg, #6D4C41 0%, #3E2723 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mc-march 4s ease-in-out infinite 1s; }
.scn-march-to-crepy .cart { position:absolute; bottom:30%; left:55%; width:30px; height:20px; background: #6D4C41; border-radius:10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: mc-cart 6s ease-in-out infinite; }
.scn-march-to-crepy .dust { position:absolute; bottom:30%; left:15%; width:50px; height:15px; background: radial-gradient(ellipse, rgba(255,239,213,0.6) 0%, transparent 100%); filter:blur(4px); animation: mc-dust 12s linear infinite; }
.scn-march-to-crepy .city { position:absolute; bottom:30%; right:10%; width:60px; height:40px; background: #4E342E; clip-path:polygon(0% 100%, 0% 60%, 20% 30%, 40% 60%, 60% 10%, 80% 50%, 100% 60%, 100% 100%); opacity:0.6; animation: mc-city 15s ease-in-out infinite alternate; }
@keyframes mc-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes mc-sun { 0% { transform:scale(0.95) } 50% { transform:scale(1.05) } 100% { transform:scale(0.95) } }
@keyframes mc-road { 0% { transform:translateX(0) } 50% { transform:translateX(-10px) } 100% { transform:translateX(0) } }
@keyframes mc-march { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(5px) translateY(-1px) rotate(2deg) } 50% { transform:translateX(10px) translateY(0) rotate(-1deg) } 75% { transform:translateX(15px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(20px) translateY(0) rotate(0deg) } }
@keyframes mc-cart { 0% { transform:translateX(0) rotate(-1deg) } 50% { transform:translateX(5px) rotate(1deg) } 100% { transform:translateX(0) rotate(-1deg) } }
@keyframes mc-dust { 0% { transform:translateX(0) scale(1); opacity:0.4 } 50% { transform:translateX(20px) scale(1.3); opacity:0.8 } 100% { transform:translateX(40px) scale(1); opacity:0.4 } }
@keyframes mc-city { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }

.scn-peasants-lament {
  background: linear-gradient(180deg, #F5F5DC 0%, #FFE4B5 30%, #CD853F 100%), radial-gradient(ellipse at 50% 20%, transparent 50%, rgba(0,0,0,0.3) 100%);
}
.scn-peasants-lament .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #FFE0B2 0%, #FFCC80 100%); animation: pl-sky 15s ease-in-out infinite alternate; }
.scn-peasants-lament .sun { position:absolute; top:25%; left:30%; width:50px; height:50px; background: radial-gradient(circle, #FFFFFF 0%, #FFD700 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,215,0,0.4); animation: pl-sun 10s ease-in-out infinite alternate; }
.scn-peasants-lament .ground { position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, #8D6E63 0%, #4E342E 100%); border-radius:50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); animation: pl-ground 12s ease-in-out infinite alternate; }
.scn-peasants-lament .figure-1 { position:absolute; bottom:18%; left:25%; width:18px; height:30px; background: #3E2723; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pl-bend 6s ease-in-out infinite; }
.scn-peasants-lament .figure-2 { position:absolute; bottom:18%; left:45%; width:18px; height:30px; background: #4E342E; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pl-kneel 8s ease-in-out infinite; }
.scn-peasants-lament .figure-3 { position:absolute; bottom:18%; left:65%; width:18px; height:35px; background: #5D4037; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pl-raise 5s ease-in-out infinite; }
.scn-peasants-lament .cross { position:absolute; bottom:20%; left:50%; width:6px; height:40px; background: #6D4C41; transform:translateX(-50%); border-radius:0 0 10% 10%; animation: pl-cross 4s ease-in-out infinite; }
.scn-peasants-lament .shadow { position:absolute; bottom:18%; left:20%; width:60px; height:8px; background: rgba(0,0,0,0.5); filter:blur(3px); border-radius:50%; animation: pl-shadow 10s ease-in-out infinite; }
@keyframes pl-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pl-sun { 0% { transform:scale(0.95) } 50% { transform:scale(1.05) } 100% { transform:scale(0.95) } }
@keyframes pl-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes pl-bend { 0% { transform:translateY(0) rotate(0deg) } 25% { transform:translateY(-3px) rotate(-10deg) } 50% { transform:translateY(0) rotate(0deg) } 75% { transform:translateY(-3px) rotate(10deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes pl-kneel { 0% { transform:translateY(0) scaleY(1) } 25% { transform:translateY(-2px) scaleY(0.9) } 50% { transform:translateY(0) scaleY(1) } 75% { transform:translateY(-2px) scaleY(0.9) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes pl-raise { 0% { transform:translateY(0) rotate(-2deg) } 25% { transform:translateY(-4px) rotate(2deg) } 50% { transform:translateY(0) rotate(-2deg) } 75% { transform:translateY(-4px) rotate(2deg) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes pl-cross { 0% { transform:translateX(-50%) rotate(-2deg) } 50% { transform:translateX(-50%) rotate(2deg) } 100% { transform:translateX(-50%) rotate(-2deg) } }
@keyframes pl-shadow { 0% { transform:scaleX(1) opacity:0.5 } 50% { transform:scaleX(1.1) opacity:0.7 } 100% { transform:scaleX(1) opacity:0.5 } }

.scn-votive-painting { background: linear-gradient(180deg, #f0e8d0 0%, #c8b890 50%, #a08860 100%), radial-gradient(ellipse at 30% 20%, rgba(255,245,200,0.8) 0%, transparent 50%); }
.scn-votive-painting .frame { position:absolute; left:20%; top:10%; width:60%; height:70%; border:12px solid #6b4a2e; border-radius:8px; box-shadow: 0 12px 30px rgba(0,0,0,0.6), inset 0 0 0 4px #4a3018; background: transparent; }
.scn-votive-painting .panel { position:absolute; left:21%; top:11%; width:58%; height:68%; background: linear-gradient(180deg, #d4c8a0 0%, #b8a080 100%); border-radius:4px; }
.scn-votive-painting .figure-left { position:absolute; left:23%; bottom:25%; width:12%; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vp-figure 6s ease-in-out infinite; }
.scn-votive-painting .figure-center { position:absolute; left:44%; bottom:25%; width:14%; 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: vp-figure 8s ease-in-out infinite 1s; }
.scn-votive-painting .figure-center::before { content:''; position:absolute; top:10%; left:25%; width:50%; height:20%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 50%; }
.scn-votive-painting .figure-right { position:absolute; right:23%; bottom:25%; width:12%; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vp-figure 7s ease-in-out infinite 0.5s; }
.scn-votive-painting .halo { position:absolute; right:21%; bottom:58%; width:16%; height:16%; border:3px solid #d4b060; border-radius:50%; background: radial-gradient(circle, rgba(212,176,96,0.3) 0%, transparent 70%); box-shadow: 0 0 16px rgba(212,176,96,0.5); animation: vp-glow 2s ease-in-out infinite alternate; }
.scn-votive-painting .missing-head { position:absolute; left:23%; top:30%; width:12%; height:14%; background: radial-gradient(ellipse at 50% 50%, #1a0a00 0%, #3a2a1a 80%, transparent 100%); border-radius: 50%; opacity:0.9; animation: vp-flicker 0.5s step-end infinite; }
.scn-votive-painting .candle { position:absolute; left:15%; bottom:15%; width:4%; height:10%; background: linear-gradient(180deg, #f0d080 0%, #c8a040 50%, #6a4010 100%); border-radius: 4px 4px 2px 2px; animation: vp-candle 3s ease-in-out infinite; }
.scn-votive-painting .candle::after { content:''; position:absolute; top:-8%; left:-50%; width:200%; height:30%; background: radial-gradient(circle, #ffd060 0%, transparent 70%); border-radius:50%; animation: vp-flame 1.5s ease-in-out infinite alternate; }
@keyframes vp-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes vp-glow { 0% { opacity:0.7; box-shadow: 0 0 12px rgba(212,176,96,0.3); } 50% { opacity:1; box-shadow: 0 0 24px rgba(212,176,96,0.6); } 100% { opacity:0.8; box-shadow: 0 0 16px rgba(212,176,96,0.4); } }
@keyframes vp-flicker { 0% { opacity:0.9; } 20% { opacity:0.4; } 40% { opacity:0.9; } 60% { opacity:0.2; } 80% { opacity:0.8; } 100% { opacity:0.9; } }
@keyframes vp-candle { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.02); opacity:1; } 100% { transform: scaleY(1); opacity:0.9; } }
@keyframes vp-flame { 0% { transform: scaleY(0.8) translateY(0); } 100% { transform: scaleY(1.2) translateY(-2px); } }

.scn-idolatrous-painting { background: linear-gradient(180deg, #e8dcc0 0%, #c0b090 50%, #988068 100%), radial-gradient(ellipse at 70% 30%, rgba(255,240,180,0.7) 0%, transparent 50%); }
.scn-idolatrous-painting .frame { position:absolute; left:15%; top:8%; width:70%; height:75%; border:10px solid #5a3a1a; border-radius:6px; box-shadow: 0 10px 25px rgba(0,0,0,0.5), inset 0 0 0 3px #3a2010; background: transparent; }
.scn-idolatrous-painting .panel { position:absolute; left:16%; top:9%; width:68%; height:73%; background: linear-gradient(180deg, #c8b890 0%, #a89070 100%); border-radius:3px; }
.scn-idolatrous-painting .figure-mary { position:absolute; left:30%; bottom:20%; width:15%; height:40%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ip-figure 7s ease-in-out infinite; }
.scn-idolatrous-painting .figure-joan { position:absolute; right:30%; bottom:20%; width:15%; height:40%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ip-figure 7s ease-in-out infinite 1s; }
.scn-idolatrous-painting .halo-mary { position:absolute; left:28%; bottom:57%; width:19%; height:19%; border:3px solid #d4b060; border-radius:50%; background: radial-gradient(circle, rgba(212,176,96,0.2) 0%, transparent 70%); box-shadow: 0 0 20px rgba(212,176,96,0.6); animation: ip-halo 3s ease-in-out infinite; }
.scn-idolatrous-painting .halo-joan { position:absolute; right:28%; bottom:57%; width:19%; height:19%; border:3px solid #e8c060; border-radius:50%; background: radial-gradient(circle, rgba(232,192,96,0.2) 0%, transparent 70%); box-shadow: 0 0 20px rgba(232,192,96,0.6); animation: ip-halo 3s ease-in-out infinite 1.5s; }
.scn-idolatrous-painting .crown { position:absolute; right:31%; bottom:62%; width:10%; height:6%; background: linear-gradient(135deg, #d4a040 0%, #b08020 50%, #d4a040 100%); clip-path: polygon(0% 100%, 10% 0%, 25% 100%, 40% 0%, 55% 100%, 70% 0%, 85% 100%, 100% 0%, 100% 100%); animation: ip-crown 5s ease-in-out infinite; }
.scn-idolatrous-painting .sword { position:absolute; right:20%; bottom:45%; width:2%; height:25%; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 0 0 2px 2px; transform-origin: bottom center; animation: ip-sword 4s ease-in-out infinite; }
.scn-idolatrous-painting .sword::after { content:''; position:absolute; top:0; left:50%; width:200%; height:10%; background: #d0d0d0; border-radius: 50%; transform: translateX(-50%); }
@keyframes ip-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ip-halo { 0% { opacity:0.7; box-shadow: 0 0 15px rgba(212,176,96,0.4); } 50% { opacity:1; box-shadow: 0 0 30px rgba(212,176,96,0.8); } 100% { opacity:0.8; box-shadow: 0 0 20px rgba(212,176,96,0.5); } }
@keyframes ip-crown { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ip-sword { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }

.scn-inscription-decoded { background: linear-gradient(180deg, #ece4d0 0%, #d4c8a8 50%, #b8a888 100%), radial-gradient(ellipse at 50% 60%, rgba(255,250,220,0.6) 0%, transparent 50%); }
.scn-inscription-decoded .desk { position:absolute; left:10%; bottom:10%; width:80%; height:20%; background: linear-gradient(180deg, #a08050 0%, #705030 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); }
.scn-inscription-decoded .book-left { position:absolute; left:30%; bottom:12%; width:18%; height:14%; background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%); border-radius: 0 4px 4px 0; transform: skewY(-3deg); animation: id-book 10s ease-in-out infinite; }
.scn-inscription-decoded .book-right { position:absolute; left:48%; bottom:12%; width:18%; height:14%; background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%); border-radius: 4px 0 0 4px; transform: skewY(3deg); animation: id-book 10s ease-in-out infinite 2s; }
.scn-inscription-decoded .magnifier-circle { position:absolute; left:60%; bottom:25%; width:10%; height:10%; border: 3px solid #8a6a3a; border-radius:50%; background: radial-gradient(circle, #f0f0e0 0%, #c0b8a0 60%, transparent 70%); box-shadow: 0 4px 10px rgba(0,0,0,0.2); animation: id-magnify 6s ease-in-out infinite; }
.scn-inscription-decoded .magnifier-handle { position:absolute; left:65%; bottom:18%; width:2%; height:10%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 2px; transform-origin: top center; transform: rotate(15deg); animation: id-handle 6s ease-in-out infinite; }
.scn-inscription-decoded .steps { position:absolute; left:20%; bottom:30%; width:60%; height:8%; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 2px; }
.scn-inscription-decoded .steps::before { content:''; position:absolute; top:0; left:0; width:100%; height:100%; background: repeating-linear-gradient(90deg, transparent, transparent 0.5%, #8a7a5a 0.5%, #8a7a5a 1.5%, transparent 1.5%); }
.scn-inscription-decoded .window-light { position:absolute; left:70%; top:5%; width:20%; height:30%; background: linear-gradient(135deg, rgba(255,255,220,0.4) 0%, transparent 50%); clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%); animation: id-light 15s ease-in-out infinite alternate; }
@keyframes id-book { 0% { transform: skewY(-3deg) translateY(0); } 50% { transform: skewY(-3deg) translateY(-2px); } 100% { transform: skewY(-3deg) translateY(0); } }
@keyframes id-magnify { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes id-handle { 0% { transform: rotate(15deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(15deg); } }
@keyframes id-light { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.5; } }

.scn-nimbus-explanation { background: linear-gradient(180deg, #e6dec6 0%, #c8bea6 50%, #aa9e86 100%), radial-gradient(ellipse at 50% 40%, rgba(255,250,230,0.7) 0%, transparent 60%); }
.scn-nimbus-explanation .bg-panel { position:absolute; left:20%; top:15%; width:60%; height:70%; background: linear-gradient(180deg, #d4c8b0 0%, #b8a890 100%); border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,0.3); }
.scn-nimbus-explanation .central-body { position:absolute; left:44%; bottom:20%; width:12%; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ne-body 8s ease-in-out infinite; }
.scn-nimbus-explanation .central-head { position:absolute; left:44%; bottom:53%; width:12%; height:12%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 50%; animation: ne-head 8s ease-in-out infinite; }
.scn-nimbus-explanation .nimbus { position:absolute; left:32%; top:25%; width:36%; height:36%; border: 4px solid #d4b060; border-radius:50%; background: radial-gradient(circle, rgba(212,176,96,0.15) 0%, transparent 60%); box-shadow: 0 0 30px rgba(212,176,96,0.4), 0 0 60px rgba(212,176,96,0.2); animation: ne-nimbus 12s ease-in-out infinite alternate; }
.scn-nimbus-explanation .left-figure { position:absolute; left:25%; bottom:25%; width:10%; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.6; transform-origin: bottom center; animation: ne-side 10s ease-in-out infinite; }
.scn-nimbus-explanation .right-figure { position:absolute; right:25%; bottom:25%; width:10%; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.6; transform-origin: bottom center; animation: ne-side 10s ease-in-out infinite 2s; }
.scn-nimbus-explanation .pedestal { position:absolute; left:40%; bottom:15%; width:20%; height:5%; background: linear-gradient(180deg, #806050 0%, #604030 100%); border-radius: 2px; }
@keyframes ne-body { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ne-head { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ne-nimbus { 0% { opacity:0.6; transform: scale(0.98); } 50% { opacity:0.9; transform: scale(1.02); } 100% { opacity:0.7; transform: scale(0.99); } }
@keyframes ne-side { 0% { opacity:0.5; transform: translateX(0); } 50% { opacity:0.7; transform: translateX(3px); } 100% { opacity:0.5; transform: translateX(0); } }

.scn-legends-spread { background: linear-gradient(180deg, #f5e6b8 0%, #e0c88a 40%, #b8975a 100%), radial-gradient(ellipse at 30% 80%, rgba(255,220,140,0.3) 0%, transparent 70%); }
.scn-legends-spread .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #e8d5a8 0%, #c8a96e 100%); box-shadow:inset 0 4px 12px rgba(0,0,0,0.1); }
.scn-legends-spread .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b6f47 0%, #5a3f27 100%); box-shadow:inset 0 10px 20px rgba(0,0,0,0.3); animation:anim-ls-floor 12s ease-in-out infinite; }
.scn-legends-spread .table { position:absolute; bottom:22%; left:50%; transform:translateX(-50%); width:160px; height:20px; background: linear-gradient(180deg, #a67c52 0%, #7a4f2a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,0.4); animation:anim-ls-table 8s ease-in-out infinite; }
.scn-legends-spread .manuscript { position:absolute; bottom:24%; left:50%; transform:translateX(-50%) rotate(-2deg); width:80px; height:60px; background: linear-gradient(135deg, #fff8dc 0%, #f5e6b8 100%); border-radius:2px; box-shadow:0 2px 6px rgba(0,0,0,0.2), inset 0 1px 0 rgba(255,255,255,0.8); animation:anim-ls-manuscript 6s ease-in-out infinite; }
.scn-legends-spread .quill { position:absolute; bottom:28%; left:42%; transform-origin:bottom left; width:2px; height:30px; background:#4a3a2a; border-radius:50% 50% 0 0; animation:anim-ls-quill 4s ease-in-out infinite; }
.scn-legends-spread .window-frame { position:absolute; top:10%; left:60%; width:80px; height:100px; border:6px solid #6a523a; background:transparent; border-radius:4px; box-shadow:inset 0 0 20px rgba(255,220,140,0.3); }
.scn-legends-spread .window-light { position:absolute; top:6%; left:62%; width:60px; height:80px; background:radial-gradient(circle, rgba(255,235,160,0.6) 0%, transparent 80%); filter:blur(4px); animation:anim-ls-light 3s ease-in-out infinite alternate; }
.scn-legends-spread .inkwell { position:absolute; bottom:25%; left:58%; width:12px; height:14px; background:radial-gradient(circle, #2a1a0a 0%, #1a0a00 100%); border-radius:50%; box-shadow:0 2px 4px rgba(0,0,0,0.5); animation:anim-ls-inkwell 10s ease-in-out infinite; }
@keyframes anim-ls-floor { 0%,100%{opacity:0.9} 50%{opacity:0.8} }
@keyframes anim-ls-table { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(-2px)} }
@keyframes anim-ls-manuscript { 0%,100%{transform:translateX(-50%) rotate(-2deg) scale(1)} 50%{transform:translateX(-50%) rotate(-1deg) scale(1.01)} }
@keyframes anim-ls-quill { 0%{transform:rotate(0deg)} 25%{transform:rotate(15deg)} 50%{transform:rotate(0deg)} 75%{transform:rotate(-10deg)} 100%{transform:rotate(0deg)} }
@keyframes anim-ls-light { 0%{opacity:0.7; box-shadow:0 0 10px rgba(255,235,160,0.3)} 50%{opacity:1; box-shadow:0 0 30px rgba(255,235,160,0.8)} 100%{opacity:0.8; box-shadow:0 0 20px rgba(255,235,160,0.5)} }
@keyframes anim-ls-inkwell { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }

.scn-maid-legend { background: linear-gradient(180deg, #f7e6c8 0%, #d9b48f 40%, #a67c52 100%), radial-gradient(ellipse at 60% 30%, rgba(255,200,120,0.3) 0%, transparent 70%); }
.scn-maid-legend .bg-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #ffd699 0%, #ffe0b2 50%, #ffe0b2 100%); animation:anim-ml-sky 20s ease-in-out infinite alternate; }
.scn-maid-legend .window-arch { position:absolute; top:5%; left:50%; transform:translateX(-50%); width:120px; height:160px; border:8px solid #5a3f27; border-radius:60% 60% 0 0 / 80% 80% 0 0; background:transparent; box-shadow:inset 0 0 40px rgba(255,255,200,0.5); }
.scn-maid-legend .girl { position:absolute; bottom:28%; left:48%; transform:translateX(-50%); width:24px; height:40px; background: linear-gradient(180deg, #6a4e3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:anim-ml-girl 5s ease-in-out infinite; }
.scn-maid-legend .lamb { position:absolute; bottom:26%; right:30%; width:30px; height:18px; background: radial-gradient(circle at 50% 50%, #f0e0c8 0%, #d4c4a8 100%); border-radius:50% 50% 30% 30%; animation:anim-ml-lamb 7s ease-in-out infinite; }
.scn-maid-legend .bird1 { position:absolute; bottom:40%; left:20%; width:14px; height:10px; background:#8b6f47; border-radius:50% 50% 0 0; transform:rotate(-10deg); animation:anim-ml-bird1 4s ease-in-out infinite; }
.scn-maid-legend .bird2 { position:absolute; bottom:38%; left:60%; width:12px; height:8px; background:#a67c52; border-radius:50% 50% 0 0; transform:rotate(5deg); animation:anim-ml-bird2 4.5s ease-in-out infinite 1s; }
.scn-maid-legend .straw { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b88a5a 0%, #8b6f47 100%); border-radius:20% 20% 0 0; animation:anim-ml-straw 10s ease-in-out infinite; }
@keyframes anim-ml-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes anim-ml-girl { 0%,100%{transform:translateX(-50%) translateY(0) rotate(0deg)} 50%{transform:translateX(-50%) translateY(-3px) rotate(2deg)} }
@keyframes anim-ml-lamb { 0%,100%{transform:translateX(0) rotate(0deg)} 30%{transform:translateX(2px) rotate(5deg)} 70%{transform:translateX(-2px) rotate(-5deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes anim-ml-bird1 { 0%,100%{transform:translateY(0) rotate(-10deg)} 30%{transform:translateY(-4px) rotate(-15deg)} 60%{transform:translateY(0) rotate(-5deg)} 100%{transform:translateY(0) rotate(-10deg)} }
@keyframes anim-ml-bird2 { 0%,100%{transform:translateY(0) rotate(5deg)} 30%{transform:translateY(-3px) rotate(10deg)} 60%{transform:translateY(0) rotate(0deg)} 100%{transform:translateY(0) rotate(5deg)} }
@keyframes anim-ml-straw { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }

.scn-soissons-to-compiegne { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 70%, #c2b280 100%), radial-gradient(ellipse at 50% 0%, rgba(255,200,100,0.3) 0%, transparent 60%); }
.scn-soissons-to-compiegne .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a90d9 0%, #87ceeb 100%); animation:anim-sc-sky 30s linear infinite; }
.scn-soissons-to-compiegne .sun { position:absolute; top:10%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #fff8b0 0%, #f0e68c 40%, transparent 80%); border-radius:50%; box-shadow:0 0 60px #f0e68c; animation:anim-sc-sun 4s ease-in-out infinite alternate; }
.scn-soissons-to-compiegne .hills { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #7a9a3a 0%, #5a7a2a 100%); border-radius:40% 60% 0 0 / 60% 40% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,0.2); animation:anim-sc-hills 20s ease-in-out infinite alternate; }
.scn-soissons-to-compiegne .road { position:absolute; bottom:20%; left:0; right:0; height:12%; background: linear-gradient(180deg, #b0a080 0%, #8b7a5a 100%); animation:anim-sc-road 15s linear infinite; }
.scn-soissons-to-compiegne .soldiers { position:absolute; bottom:22%; left:20%; width:100px; height:40px; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); animation:anim-sc-soldiers 8s ease-in-out infinite; }
.scn-soissons-to-compiegne .flags { position:absolute; bottom:35%; left:30%; width:10px; height:20px; background:#c8553d; border-radius:0 0 50% 50%; animation:anim-sc-flags 3s ease-in-out infinite; }
.scn-soissons-to-compiegne .town { position:absolute; bottom:25%; right:10%; width:60px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); clip-path: polygon(0% 100%, 20% 30%, 40% 100%, 60% 10%, 80% 100%, 100% 20%, 100% 100%); animation:anim-sc-town 6s ease-in-out infinite; }
.scn-soissons-to-compiegne .clouds { position:absolute; top:5%; left:10%; width:80px; height:20px; background:rgba(255,255,255,0.6); border-radius:50%; filter:blur(6px); animation:anim-sc-clouds 40s linear infinite; }
@keyframes anim-sc-sky { 0%,100%{opacity:0.9} 50%{opacity:1} }
@keyframes anim-sc-sun { 0%{opacity:0.8; transform:scale(0.95)} 50%{opacity:1; transform:scale(1.05)} 100%{opacity:0.9; transform:scale(1)} }
@keyframes anim-sc-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes anim-sc-road { 0%,100%{transform:translateX(0)} 50%{transform:translateX(-5px)} }
@keyframes anim-sc-soldiers { 0%{transform:translateX(0) translateY(0)} 25%{transform:translateX(10px) translateY(-1px)} 50%{transform:translateX(20px) translateY(0)} 75%{transform:translateX(10px) translateY(-1px)} 100%{transform:translateX(0) translateY(0)} }
@keyframes anim-sc-flags { 0%{transform:rotate(-5deg)} 50%{transform:rotate(5deg)} 100%{transform:rotate(-5deg)} }
@keyframes anim-sc-town { 0%,100%{transform:scale(1)} 50%{transform:scale(1.02) translateY(-2px)} }
@keyframes anim-sc-clouds { 0%{transform:translateX(0)} 100%{transform:translateX(100vw)} }

.scn-letter-to-reims { background: linear-gradient(180deg, #f7d9a5 0%, #e8c48a 40%, #c8a060 100%), radial-gradient(ellipse at 80% 20%, rgba(255,180,60,0.3) 0%, transparent 70%); }
.scn-letter-to-reims .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #f0d8a0 0%, #d8b87a 100%); box-shadow:inset 0 4px 12px rgba(0,0,0,0.1); }
.scn-letter-to-reims .desk { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:180px; height:30px; background: linear-gradient(180deg, #a67c52 0%, #7a4f2a 100%); border-radius:4px; box-shadow:0 6px 12px rgba(0,0,0,0.4); animation:anim-lr-desk 10s ease-in-out infinite; }
.scn-letter-to-reims .letter { position:absolute; bottom:25%; left:50%; transform:translateX(-50%) rotate(-1deg); width:100px; height:70px; background: linear-gradient(135deg, #fff8e0 0%, #f5e6c8 100%); border-radius:2px; box-shadow:0 2px 8px rgba(0,0,0,0.2); animation:anim-lr-letter 7s ease-in-out infinite; }
.scn-letter-to-reims .candle-flame { position:absolute; bottom:30%; left:30%; width:8px; height:20px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #ffa030 60%, transparent 100%); border-radius:50% 50% 0 0; animation:anim-lr-flame 2s ease-in-out infinite alternate; }
.scn-letter-to-reims .seal { position:absolute; bottom:22%; left:55%; width:14px; height:14px; background: radial-gradient(circle, #c8553d 0%, #a0461a 100%); border-radius:50%; box-shadow:0 1px 3px rgba(0,0,0,0.3); animation:anim-lr-seal 12s ease-in-out infinite; }
.scn-letter-to-reims .inkwell { position:absolute; bottom:20%; left:40%; width:16px; height:18px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 20% 20%; box-shadow:0 2px 4px rgba(0,0,0,0.5); animation:anim-lr-inkwell 8s ease-in-out infinite; }
.scn-letter-to-reims .window-light { position:absolute; top:5%; left:70%; width:50px; height:60px; background: radial-gradient(circle, rgba(255,220,140,0.5) 0%, transparent 80%); filter:blur(8px); animation:anim-lr-window-light 4s ease-in-out infinite alternate; }
@keyframes anim-lr-desk { 0%,100%{transform:translateX(-50%)} 50%{transform:translateX(-50%) translateY(-2px)} }
@keyframes anim-lr-letter { 0%,100%{transform:translateX(-50%) rotate(-1deg) scale(1)} 50%{transform:translateX(-50%) rotate(0deg) scale(1.01)} }
@keyframes anim-lr-flame { 0%{transform:scaleY(0.95) rotate(0deg); opacity:0.8} 50%{transform:scaleY(1.1) rotate(3deg); opacity:1} 100%{transform:scaleY(1) rotate(-3deg); opacity:0.9} }
@keyframes anim-lr-seal { 0%,100%{transform:rotate(0deg)} 50%{transform:rotate(10deg)} }
@keyframes anim-lr-inkwell { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-3px)} }
@keyframes anim-lr-window-light { 0%{opacity:0.6; box-shadow:0 0 20px rgba(255,220,140,0.3)} 50%{opacity:1; box-shadow:0 0 40px rgba(255,220,140,0.8)} 100%{opacity:0.7; box-shadow:0 0 30px rgba(255,220,140,0.5)} }

.scn-legates-inquiry {
  background: linear-gradient(135deg, #6a4a2a 0%, #b8854a 30%, #4a2a1a 70%, #1a0a00 100%),
              radial-gradient(circle at 30% 50%, #e0b070 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-legates-inquiry .wall-bg {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(90deg, #c8a060 0%, #8a5a2a 40%, #3a2010 100%);
}
.scn-legates-inquiry .floor {
  position: absolute;
  inset: auto 0 0 0;
  height: 30%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1508 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,.6);
}
.scn-legates-inquiry .desk {
  position: absolute;
  bottom: 22%;
  left: 25%;
  width: 50%;
  height: 12%;
  background: linear-gradient(180deg, #7a4a2a 0%, #4a2a12 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5), inset 0 2px 4px rgba(255,200,100,.2);
  z-index: 2;
}
.scn-legates-inquiry .figure {
  position: absolute;
  bottom: 28%;
  left: 38%;
  width: 28px;
  height: 50px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 60% 40% 40% 50% / 50% 60% 40% 50%;
  transform-origin: bottom center;
  z-index: 1;
  animation: li-figure-breathe 4s ease-in-out infinite;
}
.scn-legates-inquiry .lantern {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 14px;
  height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #c08030 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #ffb050, 0 0 32px 10px rgba(255,176,80,.4);
  z-index: 3;
  animation: li-lantern-flicker 1.2s ease-in-out infinite;
}
.scn-legates-inquiry .scroll {
  position: absolute;
  bottom: 28%;
  left: 48%;
  width: 24px;
  height: 8px;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a880 100%);
  border-radius: 3px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  z-index: 3;
  animation: li-scroll-tremble 3s ease-in-out infinite;
}
.scn-legates-inquiry .shadow-figure {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 70px;
  height: 90px;
  background: rgba(0,0,0,.25);
  transform: skewX(-12deg) scaleY(1.3);
  filter: blur(6px);
  z-index: 0;
  animation: li-shadow-sway 5s ease-in-out infinite;
}
.scn-legates-inquiry .cross {
  position: absolute;
  bottom: 58%;
  right: 22%;
  width: 10px;
  height: 22px;
  background: #2a1a0a;
  border-radius: 2px;
  z-index: 1;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}

@keyframes li-figure-breathe {
  0% { transform: scaleY(1) }
  50% { transform: scaleY(1.03) translateY(-1px) }
  100% { transform: scaleY(1) }
}
@keyframes li-lantern-flicker {
  0% { opacity: .88; box-shadow: 0 0 14px 3px #ffb050, 0 0 28px 8px rgba(255,176,80,.3) }
  50% { opacity: 1; box-shadow: 0 0 24px 8px #ffc060, 0 0 48px 16px rgba(255,192,96,.5) }
  100% { opacity: .9; box-shadow: 0 0 16px 4px #e89030, 0 0 32px 10px rgba(232,144,48,.3) }
}
@keyframes li-shadow-sway {
  0% { transform: translateX(0) skewX(-12deg) }
  50% { transform: translateX(6px) skewX(-6deg) }
  100% { transform: translateX(0) skewX(-12deg) }
}
@keyframes li-scroll-tremble {
  0% { transform: rotate(-5deg) }
  50% { transform: rotate(-3deg) }
  100% { transform: rotate(-5deg) }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.officer { position: absolute; pointer-events: none; }
.player { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-trial-records-introduction { background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 50%, #221a1a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }
.scn-trial-records-introduction .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); animation: tri-wall 12s ease-in-out infinite alternate; }
.scn-trial-records-introduction .table { position:absolute; bottom:10%; left:10%; right:10%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); animation: tri-table 15s ease-in-out infinite alternate; }
.scn-trial-records-introduction .book { position:absolute; bottom:25%; left:50%; width:120px; height:80px; margin-left:-60px; background: linear-gradient(135deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 4% 4% 8% 8% / 8% 8% 12% 12%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: tri-book 20s ease-in-out infinite; }
.scn-trial-records-introduction .candle-glow { position:absolute; bottom:55%; left:35%; width:60px; height:60px; background: radial-gradient(circle, #b08040 0%, transparent 70%); filter: blur(12px); animation: tri-glow 4s ease-in-out infinite alternate; }
.scn-trial-records-introduction .candle { position:absolute; bottom:55%; left:35%; width:8px; height:24px; margin-left:-4px; background: linear-gradient(180deg, #c09050 0%, #8a6a3a 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 -4px 8px #b08040; animation: tri-candle 5s ease-in-out infinite; }
.scn-trial-records-introduction .hand-quill { position:absolute; bottom:40%; left:55%; width:10px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tri-write 3s ease-in-out infinite; }
.scn-trial-records-introduction .scroll { position:absolute; bottom:20%; right:15%; width:40px; height:50px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 20% 20% 40% 40% / 30% 30% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: tri-scroll 25s linear infinite; }
@keyframes tri-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes tri-table { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes tri-book { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tri-glow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.7; transform: scale(1.05) } }
@keyframes tri-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes tri-write { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(3deg) translateY(-2px) } 50% { transform: rotate(-4deg) translateY(0) } 75% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes tri-scroll { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }

.scn-chronicler-analysis { background: linear-gradient(180deg, #2e2e42 0%, #1e1e2e 50%, #221a1a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }
.scn-chronicler-analysis .bg-shelves { position:absolute; inset:0; background: linear-gradient(180deg, #3e2a1e 0%, #2a1a0e 100%); animation: chr-shelves 18s ease-in-out infinite alternate; }
.scn-chronicler-analysis .tome { position:absolute; bottom:30%; left:40%; width:100px; height:70px; margin-left:-50px; background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 8% 8% / 10% 10% 12% 12%; box-shadow: 0 4px 14px rgba(0,0,0,.6); animation: chr-tome 22s ease-in-out infinite; }
.scn-chronicler-analysis .spectacles { position:absolute; bottom:45%; left:45%; width:30px; height:12px; background: transparent; border: 2px solid #8a7a5a; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 6px rgba(138,122,90,.3); animation: chr-spec 10s ease-in-out infinite alternate; }
.scn-chronicler-analysis .candle-glow { position:absolute; bottom:60%; left:55%; width:50px; height:50px; background: radial-gradient(circle, #b08040 0%, transparent 70%); filter: blur(10px); animation: chr-glow 5s ease-in-out infinite alternate; }
.scn-chronicler-analysis .candle { position:absolute; bottom:60%; left:55%; width:8px; height:22px; margin-left:-4px; background: linear-gradient(180deg, #c09050 0%, #8a6a3a 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 -4px 8px #b08040; animation: chr-candle 4s ease-in-out infinite; }
.scn-chronicler-analysis .figure-reader { position:absolute; bottom:28%; left:50%; width:24px; height:48px; margin-left:-12px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: chr-read 8s ease-in-out infinite; }
.scn-chronicler-analysis .papers { position:absolute; bottom:20%; right:20%; width:30px; height:40px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 10% 10% 20% 20% / 15% 15% 25% 25%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: chr-papers 20s linear infinite; }
@keyframes chr-shelves { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes chr-tome { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(0.8deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes chr-spec { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes chr-glow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:.7; transform: scale(1.05) } }
@keyframes chr-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.04) } 100% { transform: scaleY(1) } }
@keyframes chr-read { 0% { transform: rotate(-2deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) } 100% { transform: rotate(-2deg) } }
@keyframes chr-papers { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }

.scn-journal-du-siege { background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 50%, #221a1a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }
.scn-journal-du-siege .bg-window { position:absolute; inset:0; background: linear-gradient(180deg, #2e2e42 0%, #1e1e2e 50%, #221a1a 100%); animation: jou-bg 14s ease-in-out infinite alternate; }
.scn-journal-du-siege .journal { position:absolute; bottom:25%; left:50%; width:130px; height:90px; margin-left:-65px; background: linear-gradient(135deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 4% 4% 10% 10% / 8% 8% 12% 12%; box-shadow: 0 4px 14px rgba(0,0,0,.5), inset 0 0 10px rgba(0,0,0,.3); animation: jou-journal 24s ease-in-out infinite; }
.scn-journal-du-siege .seal { position:absolute; bottom:35%; left:50%; width:20px; height:20px; margin-left:-10px; background: radial-gradient(circle, #8a3a2a 0%, #5a1a0a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: jou-seal 18s ease-in-out infinite; }
.scn-journal-du-siege .chain { position:absolute; bottom:40%; left:20%; width:4px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 2px; animation: jou-chain 12s ease-in-out infinite alternate; }
.scn-journal-du-siege .candle-glow { position:absolute; bottom:60%; left:30%; width:50px; height:50px; background: radial-gradient(circle, #b08040 0%, transparent 70%); filter: blur(10px); animation: jou-glow 4s ease-in-out infinite alternate; }
.scn-journal-du-siege .candle { position:absolute; bottom:60%; left:30%; width:8px; height:22px; margin-left:-4px; background: linear-gradient(180deg, #c09050 0%, #8a6a3a 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 -4px 8px #b08040; animation: jou-candle 5s ease-in-out infinite; }
.scn-journal-du-siege .tower-bg { position:absolute; top:10%; right:15%; width:40px; height:80px; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; opacity:.3; animation: jou-tower 30s linear infinite; }
@keyframes jou-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes jou-journal { 0% { transform: translateY(0) rotate(0deg); box-shadow: 0 4px 14px rgba(0,0,0,.5); } 50% { transform: translateY(-3px) rotate(0.5deg); box-shadow: 0 8px 20px rgba(0,0,0,.6); } 100% { transform: translateY(0) rotate(0deg); box-shadow: 0 4px 14px rgba(0,0,0,.5); } }
@keyframes jou-seal { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes jou-chain { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes jou-glow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.7; transform: scale(1.05) } }
@keyframes jou-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.06) } 100% { transform: scaleY(1) } }
@keyframes jou-tower { 0% { opacity:.2; transform: scaleY(1) } 50% { opacity:.4; transform: scaleY(1.02) } 100% { opacity:.2; transform: scaleY(1) } }

.scn-mystere-du-siege { background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 50%, #221a1a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }
.scn-mystere-du-siege .stage-curtain { position:absolute; top:0; bottom:0; width:45%; background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%); border-radius: 0 30% 0 0 / 0 50% 0 0; animation: mys-curtain 20s ease-in-out infinite alternate; }
.scn-mystere-du-siege .stage-curtain.left { left:0; border-radius: 0 30% 0 0 / 0 50% 0 0; }
.scn-mystere-du-siege .stage-curtain.right { right:0; border-radius: 30% 0 0 0 / 50% 0 0 0; }
.scn-mystere-du-siege .silhouette-left { position:absolute; bottom:20%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mys-figure 8s ease-in-out infinite; }
.scn-mystere-du-siege .silhouette-right { position:absolute; bottom:20%; right:20%; width:30px; height:60px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mys-figure 8s ease-in-out infinite reverse; }
.scn-mystere-du-siege .banner { position:absolute; bottom:30%; left:50%; width:100px; height:60px; margin-left:-50px; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 10% 10% / 8% 8% 12% 12%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: mys-banner 16s ease-in-out infinite; }
.scn-mystere-du-siege .spotlight { position:absolute; top:5%; left:50%; width:80px; height:80px; margin-left:-40px; background: radial-gradient(ellipse at center, rgba(200,180,140,.4) 0%, transparent 70%); filter: blur(20px); animation: mys-spot 5s ease-in-out infinite alternate; }
@keyframes mys-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes mys-figure { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes mys-banner { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(0.8deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mys-spot { 0% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.6; transform: scale(1.02) } }

.scn-chronicler-conclusion {
  background: linear-gradient(180deg, #1e1a14 0%, #2c241b 40%, #1a1410 100%), radial-gradient(ellipse at 60% 20%, #4a3520 0%, transparent 70%);
}
.scn-chronicler-conclusion .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2218 0%, #1e1812 100%); animation: cc1-bg 12s ease-in-out infinite alternate;
}
.scn-chronicler-conclusion .bookshelf {
  position: absolute; top: 5%; left: 8%; width: 30%; height: 40%; background: linear-gradient(180deg, #3a2f1e 0%, #2a2015 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: cc1-bookshelf 18s ease-in-out infinite;
}
.scn-chronicler-conclusion .desk {
  position: absolute; bottom: 6%; left: 15%; right: 15%; height: 18%; background: linear-gradient(180deg, #6a4a2e 0%, #3a2a18 100%); border-radius: 6px 6px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-chronicler-conclusion .chair {
  position: absolute; bottom: 12%; left: 42%; width: 20%; height: 20%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform: rotate(5deg);
  animation: cc1-chair 6s ease-in-out infinite;
}
.scn-chronicler-conclusion .figure {
  position: absolute; bottom: 16%; left: 45%; width: 8%; height: 25%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  animation: cc1-figure 4s ease-in-out infinite;
}
.scn-chronicler-conclusion .candle {
  position: absolute; bottom: 20%; left: 58%; width: 2%; height: 8%; background: linear-gradient(180deg, #f5e6c8 0%, #c8a88a 100%); border-radius: 4px;
  animation: cc1-candle 3s ease-in-out infinite;
}
.scn-chronicler-conclusion .glow {
  position: absolute; bottom: 16%; left: 54%; width: 12%; height: 18%; background: radial-gradient(circle, rgba(255,200,120,.6) 0%, rgba(200,140,60,.2) 50%, transparent 100%);
  border-radius: 50%; filter: blur(8px); animation: cc1-glow 2.5s ease-in-out infinite alternate;
}
.scn-chronicler-conclusion .scroll {
  position: absolute; bottom: 8%; left: 35%; width: 12%; height: 6%; background: linear-gradient(180deg, #d4b896 0%, #b89878 100%); border-radius: 10px; transform: rotate(-5deg);
  animation: cc1-scroll 8s ease-in-out infinite;
}
@keyframes cc1-bg { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes cc1-bookshelf { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes cc1-chair { 0%,100% { transform: rotate(4deg) } 50% { transform: rotate(6deg) translateY(-1px) } }
@keyframes cc1-figure { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes cc1-candle { 0%,100% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } }
@keyframes cc1-glow { 0% { opacity:.5; transform: scale(.9) } 100% { opacity:1; transform: scale(1.1) } }
@keyframes cc1-scroll { 0%,100% { transform: rotate(-4deg) } 50% { transform: rotate(-6deg) translateY(1px) } }

.scn-rehabilitation-trial-evaluation {
  background: linear-gradient(180deg, #1a1618 0%, #2a2024 40%, #1e181a 100%), radial-gradient(ellipse at 40% 20%, #3a2820 0%, transparent 70%);
}
.scn-rehabilitation-trial-evaluation .bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #201c1a 0%, #2a2422 50%, #1e1a18 100%); animation: rte2-bg 10s ease-in-out infinite alternate;
}
.scn-rehabilitation-trial-evaluation .bench {
  position: absolute; bottom: 30%; left: 55%; width: 30%; height: 12%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%); border-radius: 10px 10px 4px 4px; box-shadow: 0 8px 16px rgba(0,0,0,.4);
  animation: rte2-bench 8s ease-in-out infinite;
}
.scn-rehabilitation-trial-evaluation .stand {
  position: absolute; bottom: 20%; left: 35%; width: 12%; height: 18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%); border-radius: 4px 4px 20px 20px;
  animation: rte2-stand 12s ease-in-out infinite;
}
.scn-rehabilitation-trial-evaluation .lamp {
  position: absolute; bottom: 60%; left: 25%; width: 4%; height: 20%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a30 100%); border-radius: 2px;
}
.scn-rehabilitation-trial-evaluation .figure {
  position: absolute; bottom: 12%; left: 50%; width: 8%; height: 30%; background: linear-gradient(180deg, #2a221e 0%, #1a1410 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  animation: rte2-figure 6s ease-in-out infinite;
}
.scn-rehabilitation-trial-evaluation .shadow {
  position: absolute; bottom: 8%; left: 45%; width: 18%; height: 8%; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(6px);
  animation: rte2-shadow 8s ease-in-out infinite;
}
.scn-rehabilitation-trial-evaluation .table {
  position: absolute; bottom: 6%; left: 20%; right: 20%; height: 10%; background: linear-gradient(180deg, #5a4230 0%, #3a2a1a 100%); border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
@keyframes rte2-bg { 0% { opacity:.8 } 100% { opacity:1 } }
@keyframes rte2-bench { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes rte2-stand { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } }
@keyframes rte2-figure { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } }
@keyframes rte2-shadow { 0%,100% { opacity:.5 } 50% { opacity:.7 } }

.scn-synthesis-of-joan {
  background: linear-gradient(180deg, #1c1a1e 0%, #2a2428 40%, #1e1a1c 100%), radial-gradient(ellipse at 50% 40%, #3a2e30 0%, transparent 70%);
}
.scn-synthesis-of-joan .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #221e22 0%, #1a161a 100%); animation: soj3-bg 15s ease-in-out infinite alternate;
}
.scn-synthesis-of-joan .books {
  position: absolute; top: 8%; left: 12%; width: 20%; height: 30%; background: repeating-linear-gradient(0deg, #3a2e22 0px, #2a1e16 8px, #4a3a2a 8px, #3a2a1a 16px); border-radius: 6px;
  animation: soj3-books 20s ease-in-out infinite;
}
.scn-synthesis-of-joan .open-book {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 20%; background: linear-gradient(180deg, #d4c4a8 0%, #b8a48a 100%); border-radius: 4px; transform: perspective(200px) rotateX(10deg);
  animation: soj3-book 10s ease-in-out infinite;
}
.scn-synthesis-of-joan .quill {
  position: absolute; bottom: 20%; left: 58%; width: 2%; height: 12%; background: linear-gradient(180deg, #f0e6d0 0%, #c8b898 100%); border-radius: 50% 50% 0 0; transform: rotate(-15deg);
  animation: soj3-quill 5s ease-in-out infinite;
}
.scn-synthesis-of-joan .inkwell {
  position: absolute; bottom: 16%; left: 56%; width: 4%; height: 6%; background: linear-gradient(180deg, #3a2a1e 0%, #1e1410 100%); border-radius: 40% 40% 20% 20%;
  animation: soj3-inkwell 9s ease-in-out infinite;
}
.scn-synthesis-of-joan .candle {
  position: absolute; bottom: 22%; left: 46%; width: 2%; height: 8%; background: linear-gradient(180deg, #f0dcc0 0%, #c8a88a 100%); border-radius: 4px;
  animation: soj3-candle 3s ease-in-out infinite;
}
.scn-synthesis-of-joan .glow {
  position: absolute; bottom: 18%; left: 42%; width: 14%; height: 20%; background: radial-gradient(circle, rgba(255,210,140,.5) 0%, rgba(200,150,80,.2) 40%, transparent 100%);
  border-radius: 50%; filter: blur(10px); animation: soj3-glow 2.8s ease-in-out infinite alternate;
}
.scn-synthesis-of-joan .hand {
  position: absolute; bottom: 14%; left: 48%; width: 6%; height: 10%; background: linear-gradient(135deg, #d4bc9e 0%, #b8987a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: soj3-hand 4s ease-in-out infinite;
}
@keyframes soj3-bg { 0%,100% { opacity:.75 } 50% { opacity:1 } }
@keyframes soj3-books { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes soj3-book { 0%,100% { transform: perspective(200px) rotateX(8deg) } 50% { transform: perspective(200px) rotateX(12deg) } }
@keyframes soj3-quill { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-3px) } }
@keyframes soj3-inkwell { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes soj3-candle { 0%,100% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.03) } }
@keyframes soj3-glow { 0% { opacity:.5; transform: scale(.8) } 100% { opacity:1; transform: scale(1.2) } }
@keyframes soj3-hand { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(2deg) } }

.scn-author-method {
  background: linear-gradient(180deg, #1a1a20 0%, #2a282e 40%, #1e1c22 100%), radial-gradient(ellipse at 30% 50%, #3a3038 0%, transparent 70%);
}
.scn-author-method .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #222028 0%, #1a1820 100%); animation: am4-bg 14s ease-in-out infinite alternate;
}
.scn-author-method .desk {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 16%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2e22 100%); border-radius: 8px 8px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-author-method .papers {
  position: absolute; bottom: 8%; left: 25%; width: 30%; height: 6%; background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%); border-radius: 2px; transform: rotate(-3deg);
  animation: am4-papers 12s ease-in-out infinite;
}
.scn-author-method .lamp {
  position: absolute; bottom: 30%; left: 60%; width: 3%; height: 18%; background: linear-gradient(180deg, #7a6a52 0%, #4a3a2a 100%); border-radius: 2px;
  animation: am4-lamp 8s ease-in-out infinite;
}
.scn-author-method .globe {
  position: absolute; bottom: 12%; left: 68%; width: 10%; height: 12%; background: radial-gradient(circle, #6a6a6a 0%, #3a3a3a 60%, #2a2a2a 100%); border-radius: 50%; box-shadow: inset -4px -4px 10px rgba(0,0,0,.4);
  animation: am4-globe 20s linear infinite;
}
.scn-author-method .figure {
  position: absolute; bottom: 10%; left: 40%; width: 8%; height: 28%; background: linear-gradient(180deg, #2a2422 0%, #1a1412 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  animation: am4-figure 6s ease-in-out infinite;
}
.scn-author-method .cup {
  position: absolute; bottom: 7%; left: 55%; width: 4%; height: 5%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 40% 40% 20% 20%;
  animation: am4-cup 9s ease-in-out infinite;
}
@keyframes am4-bg { 0% { opacity:.8 } 100% { opacity:1 } }
@keyframes am4-papers { 0%,100% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } }
@keyframes am4-lamp { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes am4-globe { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes am4-figure { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes am4-cup { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.bale { position: absolute; pointer-events: none; }
.c { position: absolute; pointer-events: none; }
.wisps { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* ===== Scene: france-preface-sources ===== */
.scn-france-preface-sources {
  background: linear-gradient(180deg, #2b1f15 0%, #1a120c 50%, #0f0a06 100%),
              radial-gradient(ellipse at 50% 30%, #3d2b1f 0%, transparent 60%);
}
.scn-france-preface-sources .bg-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, #2a1e14 0%, transparent 30%, #2a1e14 70%);
  opacity: 0.8;
}
.scn-france-preface-sources .desk {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #5a3d28 0%, #3a2818 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
}
.scn-france-preface-sources .book {
  position: absolute; bottom: 18%; left: 25%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #6b4a2a 0%, #4a3220 50%, #3a2515 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.5);
  transform: rotate(-2deg);
  animation: fps1-book 12s ease-in-out infinite alternate;
}
.scn-france-preface-sources .candle {
  position: absolute; bottom: 22%; left: 65%; width: 3%; height: 20%;
  background: linear-gradient(0deg, #d4a060 0%, #e0b070 100%);
  border-radius: 2px / 1px;
  box-shadow: 0 0 6px rgba(200,150,80,0.3);
}
.scn-france-preface-sources .flame {
  position: absolute; bottom: 42%; left: 65%; width: 6px; height: 15px;
  margin-left: -3px;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 40%, #b07030 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(255,200,80,0.6);
  animation: fps1-flame 2s ease-in-out infinite alternate;
}
.scn-france-preface-sources .inkwell {
  position: absolute; bottom: 15%; left: 72%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: inset 0 -2px 4px #0a0603;
}
.scn-france-preface-sources .window-light {
  position: absolute; top: 5%; left: 30%; width: 25%; height: 35%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,170,120,0.15) 0%, transparent 70%);
  border-radius: 40% / 30%;
  animation: fps1-window 20s ease-in-out infinite alternate;
}
@keyframes fps1-book { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-2.5deg) translateY(-1px); } 100% { transform: rotate(-1.8deg) translateY(0); } }
@keyframes fps1-flame { 0% { transform: scaleY(1) rotate(-3deg); opacity: 0.9; } 50% { transform: scaleY(1.1) rotate(2deg); opacity: 1; } 100% { transform: scaleY(0.95) rotate(-1deg); opacity: 0.85; } }
@keyframes fps1-window { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.02); } 100% { opacity: 0.35; transform: scale(0.98); } }

/* ===== Scene: french-national-building ===== */
.scn-french-national-building {
  background: linear-gradient(180deg, #1f1a14 0%, #14100b 40%, #0d0a07 100%),
              radial-gradient(ellipse at 30% 50%, #3a2b20 0%, transparent 50%);
}
.scn-french-national-building .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1f1913 0%, transparent 40%, #1f1913 70%);
}
.scn-french-national-building .column {
  position: absolute; bottom: 0; left: 25%; width: 8%; height: 100%;
  background: linear-gradient(90deg, #4a3a28 0%, #5a4a38 30%, #3a2a1a 70%);
  border-radius: 2px;
  box-shadow: 4px 0 15px rgba(0,0,0,0.5);
  animation: fnb2-column 25s ease-in-out infinite alternate;
}
.scn-french-national-building .map {
  position: absolute; bottom: 30%; left: 20%; width: 50%; height: 40%;
  background: linear-gradient(180deg, #6b5a3a 0%, #4a3a22 50%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  transform: perspective(600px) rotateX(5deg);
  animation: fnb2-map 18s ease-in-out infinite alternate;
}
.scn-french-national-building .crown {
  position: absolute; top: 18%; left: 48%; width: 10%; height: 8%;
  background: radial-gradient(ellipse at 50% 30%, #c8a050 0%, #8a6a30 60%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px rgba(200,160,80,0.4);
  animation: fnb2-crown 8s ease-in-out infinite alternate;
}
.scn-french-national-building .spotlight {
  position: absolute; top: 0; left: 35%; width: 30%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(240,220,180,0.12) 0%, transparent 70%);
  animation: fnb2-spot 15s ease-in-out infinite alternate;
}
.scn-french-national-building .shadow-pillar {
  position: absolute; bottom: 0; left: 30%; width: 12%; height: 90%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: fnb2-shadow 20s ease-in-out infinite alternate;
}
@keyframes fnb2-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.005); } 100% { transform: scaleY(0.998); } }
@keyframes fnb2-map { 0% { transform: perspective(600px) rotateX(5deg) translateX(0); } 50% { transform: perspective(600px) rotateX(4.5deg) translateX(2px); } 100% { transform: perspective(600px) rotateX(5.2deg) translateX(-1px); } }
@keyframes fnb2-crown { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fnb2-spot { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes fnb2-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* ===== Scene: historiography-method ===== */
.scn-historiography-method {
  background: linear-gradient(180deg, #1e1a18 0%, #14100e 50%, #0c0907 100%),
              radial-gradient(ellipse at 60% 40%, #2a221c 0%, transparent 60%);
}
.scn-historiography-method .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #221d18 0%, transparent 40%, #1b1612 70%);
}
.scn-historiography-method .desk {
  position: absolute; bottom: 5%; left: 8%; right: 8%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 3px 3px 0 0;
  box-shadow: 0 -6px 18px rgba(0,0,0,0.7);
}
.scn-historiography-method .globe {
  position: absolute; bottom: 20%; left: 60%; width: 12%; height: 25%;
  background: radial-gradient(circle at 50% 40%, #5a7a5a 0%, #3a4a2a 50%, #2a3a1a 100%);
  border-radius: 50%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.5);
  animation: hm3-globe 30s linear infinite;
}
.scn-historiography-method .books {
  position: absolute; bottom: 12%; left: 10%; width: 35%; height: 25%;
  background: linear-gradient(180deg, #6b4a2a 0%, #4a3220 30%, #3a2515 60%, #2a1a0e 100%);
  border-radius: 2px;
  box-shadow: 3px 3px 10px rgba(0,0,0,0.6);
  transform: rotate(-1deg);
  animation: hm3-books 15s ease-in-out infinite alternate;
}
.scn-historiography-method .lamp {
  position: absolute; bottom: 30%; left: 48%; width: 6%; height: 25%;
  background: linear-gradient(0deg, #5a4a3a 0%, #4a3a2a 50%, #6a5a4a 100%);
  border-radius: 2px 2px 10px 10px;
}
.scn-historiography-method .lamp-glow {
  position: absolute; bottom: 50%; left: 46%; width: 12%; height: 15%;
  background: radial-gradient(circle, rgba(240,200,160,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: hm3-lampglow 5s ease-in-out infinite alternate;
}
@keyframes hm3-globe { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes hm3-books { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(-0.5deg) translateY(-2px); } 100% { transform: rotate(-1.2deg) translateY(0); } }
@keyframes hm3-lampglow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.95); } }

/* ===== Scene: author-voices-transition ===== */
.scn-author-voices-transition {
  background: linear-gradient(180deg, #1a1a2e 0%, #12121e 40%, #0a0a12 100%),
              radial-gradient(ellipse at 50% 20%, #2a2a4e 0%, transparent 60%);
}
.scn-author-voices-transition .bg-chapel {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 70%);
}
.scn-author-voices-transition .window {
  position: absolute; top: 5%; left: 25%; width: 50%; height: 40%;
  background: linear-gradient(135deg, #2a3a5a 0%, #1a2a4a 30%, #2a3a5a 60%, #1a2a4a 100%);
  border-radius: 60% 60% 40% 40% / 80% 80% 50% 50%;
  box-shadow: 0 0 30px rgba(100,150,200,0.2);
  animation: avt4-window 12s ease-in-out infinite alternate;
}
.scn-author-voices-transition .figure {
  position: absolute; bottom: 15%; left: 45%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 50%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: avt4-figure 8s ease-in-out infinite alternate;
}
.scn-author-voices-transition .light-rays {
  position: absolute; top: 0; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(180deg, rgba(240,220,200,0.08) 0%, transparent 60%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: avt4-rays 20s ease-in-out infinite alternate;
}
.scn-author-voices-transition .altar {
  position: absolute; bottom: 5%; left: 35%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 10px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-author-voices-transition .altar-candle {
  position: absolute; bottom: 20%; left: 48%; width: 2%; height: 8%;
  background: linear-gradient(0deg, #c8a060 0%, #e0b070 100%);
  border-radius: 1px;
  box-shadow: 0 0 10px rgba(200,160,80,0.5);
  animation: avt4-candle 3s ease-in-out infinite alternate;
}
@keyframes avt4-window { 0% { opacity: 0.3; box-shadow: 0 0 20px rgba(100,150,200,0.15); } 50% { opacity: 0.5; box-shadow: 0 0 40px rgba(100,150,200,0.3); } 100% { opacity: 0.35; box-shadow: 0 0 25px rgba(100,150,200,0.2); } }
@keyframes avt4-figure { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes avt4-rays { 0% { opacity: 0.1; transform: scaleY(1); } 50% { opacity: 0.25; transform: scaleY(1.02); } 100% { opacity: 0.15; transform: scaleY(0.98); } }
@keyframes avt4-candle { 0% { transform: scaleY(1) rotate(-2deg); } 50% { transform: scaleY(1.1) rotate(1deg); } 100% { transform: scaleY(0.95) rotate(-1deg); } }

/* tourelles-capture */
.scn-tourelles-capture {
  background: linear-gradient(180deg, #6a3020 0%, #4a1a0a 40%, #2a0e00 100%),
              radial-gradient(ellipse at 50% 30%, #b86030 0%, transparent 60%);
}
.scn-tourelles-capture .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #5a2810 0%, #8a4030 50%, #3a1a0a 100%);
  animation: tc-sky 8s ease-in-out infinite alternate;
}
.scn-tourelles-capture .walls {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(90deg, #6a3a2a 0%, #5a2a1a 30%, #4a1a0a 60%, #6a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-tourelles-capture .bridge {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 8%;
  background: #3a1a0a;
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -4px 20px #b85020;
  animation: tc-bridge 6s ease-in-out infinite;
}
.scn-tourelles-capture .flames {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, #ff7020 0%, #c84020 40%, transparent 70%);
  animation: tc-flames 2s ease-in-out infinite alternate;
}
.scn-tourelles-capture .figures-french {
  position: absolute; bottom: 15%; left: 10%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: tc-figures 4s ease-in-out infinite;
}
.scn-tourelles-capture .figures-english {
  position: absolute; bottom: 16%; right: 10%; width: 15%; height: 20%;
  background: #3a2a2a;
  border-radius: 50%;
  box-shadow: -10px 0 20px rgba(0,0,0,.5);
  animation: tc-figures 5s ease-in-out infinite reverse;
}
.scn-tourelles-capture .standard {
  position: absolute; bottom: 30%; left: 18%; width: 6%; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 0 0;
  transform-origin: bottom;
  animation: tc-standard 3s ease-in-out infinite;
}
.scn-tourelles-capture .standard::after {
  content: ''; position: absolute; top: 0; left: -10%; width: 120%; height: 40%;
  background: linear-gradient(180deg, #b06030 0%, #c87040 100%);
  border-radius: 20% 50% 50% 20%;
  animation: tc-flag 2s ease-in-out infinite alternate;
}
.scn-tourelles-capture .embers {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #ff6020 0%, transparent 60%);
  filter: blur(8px);
  animation: tc-embers 3s ease-in-out infinite alternate;
}
@keyframes tc-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .6; } }
@keyframes tc-bridge { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes tc-flames { 0% { transform: scaleY(1); opacity: .8; } 50% { transform: scaleY(1.2); opacity: 1; } 100% { transform: scaleY(.9); opacity: .7; } }
@keyframes tc-figures { 0% { transform: translateX(0); } 50% { transform: translateX(8px); } 100% { transform: translateX(0); } }
@keyframes tc-standard { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes tc-flag { 0% { transform: skewX(-10deg) scaleX(1); } 50% { transform: skewX(5deg) scaleX(1.2); } 100% { transform: skewX(-5deg) scaleX(.9); } }
@keyframes tc-embers { 0% { opacity: .4; } 50% { opacity: .8; } 100% { opacity: .5; } }

/* saturday-night-summon */
.scn-saturday-night-summon {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a5a 100%),
              radial-gradient(ellipse at 50% 10%, #4a4a8a 0%, transparent 70%);
}
.scn-saturday-night-summon .moon {
  position: absolute; top: 8%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #d0d0e8 0%, #a0a0c0 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(160,160,200,.6);
  animation: sns-moon 12s ease-in-out infinite alternate;
}
.scn-saturday-night-summon .clouds {
  position: absolute; top: 5%; left: -10%; right: -10%; height: 30%;
  background: linear-gradient(180deg, rgba(160,160,200,.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: sns-clouds 20s linear infinite;
}
.scn-saturday-night-summon .entrenchment {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 70% 0 0 / 20% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.8);
}
.scn-saturday-night-summon .maid {
  position: absolute; bottom: 22%; left: 35%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sns-maid 4s ease-in-out infinite;
}
.scn-saturday-night-summon .bastion {
  position: absolute; bottom: 18%; right: 15%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -20px 0 40px rgba(0,0,0,.7);
}
.scn-saturday-night-summon .moonlight {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 65% 10%, rgba(200,200,240,.15) 0%, transparent 70%);
  animation: sns-moonlight 8s ease-in-out infinite alternate;
}
.scn-saturday-night-summon .figure-guard {
  position: absolute; bottom: 20%; right: 22%; width: 12px; height: 35px;
  background: #2a2a3a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: sns-guard 6s ease-in-out infinite;
}
@keyframes sns-moon { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(-5px); } }
@keyframes sns-clouds { 0% { transform: translateX(0); } 50% { transform: translateX(60px); } 100% { transform: translateX(120px); } }
@keyframes sns-maid { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg); } }
@keyframes sns-guard { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sns-moonlight { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .5; } }

/* item-standard-unfurled */
.scn-item-standard-unfurled {
  background: linear-gradient(180deg, #7a9ac0 0%, #5a7aa0 40%, #3a5a80 100%),
              radial-gradient(ellipse at 50% 80%, #f0d080 0%, transparent 70%);
}
.scn-item-standard-unfurled .sky-sun {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b0c8e0 0%, #f0e0a0 50%, #d0c080 100%);
  animation: isu-sky 10s ease-in-out infinite alternate;
}
.scn-item-standard-unfurled .trench {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-item-standard-unfurled .standard-bearer {
  position: absolute; bottom: 12%; left: 45%; width: 16px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: isu-bearer 3s ease-in-out infinite;
}
.scn-item-standard-unfurled .standard {
  position: absolute; bottom: 30%; left: 42%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 0 0;
  transform-origin: bottom;
  animation: isu-pole 4s ease-in-out infinite;
}
.scn-item-standard-unfurled .standard::after {
  content: ''; position: absolute; top: 0; left: -20px; width: 50px; height: 35px;
  background: linear-gradient(180deg, #a07050 0%, #c09060 100%);
  border-radius: 10% 70% 50% 30%;
  transform-origin: left center;
  animation: isu-flag 2s ease-in-out infinite alternate;
}
.scn-item-standard-unfurled .ladders {
  position: absolute; bottom: 10%; left: 20%; width: 10px; height: 60px;
  background: #5a4a3a;
  transform: rotate(20deg);
  box-shadow: 20px 0 0 #5a4a3a, 40px 0 0 #5a4a3a;
  animation: isu-ladders 6s ease-in-out infinite;
}
.scn-item-standard-unfurled .soldiers {
  position: absolute; bottom: 8%; left: 15%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50%;
  box-shadow: 30px 0 0 rgba(0,0,0,.3);
  animation: isu-soldiers 5s ease-in-out infinite;
}
.scn-item-standard-unfurled .dust {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,160,120,.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: isu-dust 4s ease-in-out infinite alternate;
}
@keyframes isu-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes isu-bearer { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-1deg); } }
@keyframes isu-pole { 0% { transform: rotate(-3deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-2deg); } }
@keyframes isu-flag { 0% { transform: rotate(-15deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.1); } 100% { transform: rotate(-10deg) scaleX(.95); } }
@keyframes isu-ladders { 0% { transform: rotate(18deg); } 50% { transform: rotate(22deg); } 100% { transform: rotate(20deg); } }
@keyframes isu-soldiers { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(0); } }
@keyframes isu-dust { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .2; } }

/* bedford-burgundy */
.scn-bedford-burgundy {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e00 50%, #0a0500 100%),
              radial-gradient(ellipse at 50% 40%, #4a2a1a 0%, transparent 80%);
}
.scn-bedford-burgundy .room-bg {
  position: absolute; inset: 5% 10% 10% 10%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 60px rgba(0,0,0,.8);
}
.scn-bedford-burgundy .table {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-bedford-burgundy .candle {
  position: absolute; bottom: 28%; left: 48%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(200,160,80,.6);
  animation: bb-candle 3s ease-in-out infinite alternate;
}
.scn-bedford-burgundy .figure-bedford {
  position: absolute; bottom: 12%; left: 25%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: bb-figure 5s ease-in-out infinite;
}
.scn-bedford-burgundy .figure-burgundy {
  position: absolute; bottom: 12%; right: 25%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: bb-figure2 6s ease-in-out infinite;
}
.scn-bedford-burgundy .wall-tapestry {
  position: absolute; top: 10%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(90deg, #4a2a1a 0%, #3a1a0a 30%, #4a2a1a 60%, #2a0a00 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-bedford-burgundy .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,.5) 100%);
  animation: bb-shadow 8s ease-in-out infinite alternate;
}
@keyframes bb-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.1) translateY(-1px); } 100% { transform: scaleY(.95) translateY(0); } }
@keyframes bb-figure { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(0deg); } }
@keyframes bb-figure2 { 0% { transform: rotate(2deg); } 50% { transform: rotate(-3deg) translateX(-2px); } 100% { transform: rotate(0deg); } }
@keyframes bb-shadow { 0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .5; } }

.scn-trial-first-sittings { background: linear-gradient(180deg, #2a2420 0%, #1c1612 40%, #14100e 100%), radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 80%); }
.scn-trial-first-sittings .cell-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2e28 0%, #2a1e18 100%); animation: ts1-wall 8s ease-in-out infinite alternate; }
.scn-trial-first-sittings .cell-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%); box-shadow: inset 0 12px 20px #0a0806; }
.scn-trial-first-sittings .figure-jeanne { position:absolute; bottom:28%; left:38%; width:28px; height:52px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2e26 100%); border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom center; animation: ts1-jeanne 3s ease-in-out infinite; }
.scn-trial-first-sittings .chain { position:absolute; bottom:32%; left:34%; width:40px; height:4px; background: repeating-linear-gradient(90deg, #6a5a3a 0px, #6a5a3a 4px, #2a1e1a 4px, #2a1e1a 8px); border-radius: 2px; animation: ts1-chain 2s ease-in-out infinite alternate; }
.scn-trial-first-sittings .table { position:absolute; bottom:18%; left:30%; width:80px; height:14px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 6px 12px #0a0806; animation: ts1-table 5s ease-in-out infinite; }
.scn-trial-first-sittings .candle-flicker { position:absolute; bottom:22%; left:36%; width:8px; height:16px; background: radial-gradient(ellipse at 50% 0%, #ffd060 0%, #b08030 60%, transparent 100%); border-radius: 50%/30% 30% 50% 50%; box-shadow: 0 0 18px 6px #b08030, 0 0 36px 12px rgba(176,128,48,0.4); animation: ts1-candle 1.5s ease-in-out infinite alternate; }
.scn-trial-first-sittings .shadow-judge { position:absolute; bottom:30%; left:60%; width:24px; height:48px; background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; opacity:0.7; animation: ts1-judge 4s ease-in-out infinite alternate; }
.scn-trial-first-sittings .voice-glow { position:absolute; top:20%; left:30%; width:40px; height:40px; background: radial-gradient(circle, rgba(210,180,140,0.6) 0%, transparent 70%); filter: blur(6px); animation: ts1-voice 6s ease-in-out infinite alternate; }
@keyframes ts1-wall { 0% { opacity:0.85 } 50% { opacity:0.95 } 100% { opacity:0.8 } }
@keyframes ts1-jeanne { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes ts1-chain { 0% { transform: translateX(0) } 100% { transform: translateX(-2px) } }
@keyframes ts1-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ts1-candle { 0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 14px 4px #b08030; } 50% { transform: scaleY(1.15) scaleX(0.9); box-shadow: 0 0 22px 8px #ffd060; } 100% { transform: scaleY(0.95) scaleX(1.05); box-shadow: 0 0 16px 5px #b08030; } }
@keyframes ts1-judge { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(4px) scaleY(1.03) } 100% { transform: translateX(0) scaleY(0.98) } }
@keyframes ts1-voice { 0% { opacity:0.3; transform: scale(0.9) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.2; transform: scale(0.85) } }

.scn-refusing-dress-illness { background: linear-gradient(180deg, #2e221c 0%, #1a1210 60%, #0e0a08 100%), radial-gradient(ellipse at 20% 50%, #3a2a1e 0%, transparent 70%); }
.scn-refusing-dress-illness .bed-frame { position:absolute; bottom:15%; left:25%; width:100px; height:20px; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%); border-radius: 8px; box-shadow: 0 10px 20px #0a0806; animation: ts2-frame 10s ease-in-out infinite; }
.scn-refusing-dress-illness .mattress { position:absolute; bottom:20%; left:28%; width:80px; height:10px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2e 100%); border-radius: 6px; box-shadow: inset 0 4px 8px #1a1410; }
.scn-refusing-dress-illness .figure-ill { position:absolute; bottom:22%; left:38%; width:26px; height:48px; background: linear-gradient(180deg, #7a5a4a 0%, #4a3228 100%); border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom center; animation: ts2-ill 3s ease-in-out infinite; }
.scn-refusing-dress-illness .doctor-hand { position:absolute; bottom:30%; left:58%; width:18px; height:22px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2e22 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform: rotate(-20deg); transform-origin: top left; animation: ts2-hand 4s ease-in-out infinite alternate; }
.scn-refusing-dress-illness .crown-saint { position:absolute; top:30%; left:50%; width:30px; height:14px; background: linear-gradient(180deg, #f0d080 0%, #c0a060 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px #e0c060; animation: ts2-crown 6s ease-in-out infinite alternate; }
.scn-refusing-dress-illness .halo-light { position:absolute; top:26%; left:46%; width:50px; height:50px; background: radial-gradient(circle, rgba(240,200,120,0.5) 0%, transparent 70%); filter: blur(8px); animation: ts2-halo 5s ease-in-out infinite alternate; }
.scn-refusing-dress-illness .pillow { position:absolute; bottom:28%; left:34%; width:28px; height:10px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 50%; transform: rotate(10deg); animation: ts2-pillow 8s ease-in-out infinite; }
@keyframes ts2-frame { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ts2-ill { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } }
@keyframes ts2-hand { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(2px) } 100% { transform: rotate(-22deg) translateX(0) } }
@keyframes ts2-crown { 0% { transform: translateY(0) scaleY(1); opacity:0.6 } 50% { transform: translateY(-4px) scaleY(1.1); opacity:0.9 } 100% { transform: translateY(0) scaleY(0.95); opacity:0.7 } }
@keyframes ts2-halo { 0% { transform: scale(0.9); opacity:0.3 } 50% { transform: scale(1.2); opacity:0.6 } 100% { transform: scale(1); opacity:0.4 } }
@keyframes ts2-pillow { 0%,100% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(8deg) translateX(2px) } }

.scn-pope-question-massieu { background: linear-gradient(180deg, #1e1612 0%, #14100a 60%, #0a0806 100%), radial-gradient(ellipse at 80% 40%, #2a221c 0%, transparent 60%); }
.scn-pope-question-massieu .chapel-arch { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #2a1e18 0%, #3a2a22 50%, #2a1e18 100%); border-radius: 60% 60% 0 0 / 80% 80% 0 0; box-shadow: inset 0 20px 40px #0a0806; animation: ts3-arch 12s ease-in-out infinite alternate; }
.scn-pope-question-massieu .altar { position:absolute; bottom:25%; left:40%; width:60px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10px 10px 4px 4px; box-shadow: 0 8px 16px #0a0806; }
.scn-pope-question-massieu .figure-kneeling { position:absolute; bottom:32%; left:38%; width:24px; height:44px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2e22 100%); border-radius: 50% 40% 40% 40% / 50% 40% 30% 40%; transform-origin: bottom center; animation: ts3-kneel 4s ease-in-out infinite; }
.scn-pope-question-massieu .figure-priest { position:absolute; bottom:32%; left:54%; width:22px; height:46px; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e18 100%); border-radius: 40% 50% 40% 40% / 50% 60% 30% 40%; transform-origin: bottom center; animation: ts3-priest 5s ease-in-out infinite alternate; }
.scn-pope-question-massieu .altar-candle { position:absolute; bottom:36%; left:44%; width:6px; height:18px; background: radial-gradient(ellipse at 50% 0%, #ffd060 0%, #b08030 60%, transparent 100%); border-radius: 50%/30% 30% 50% 50%; box-shadow: 0 0 16px 4px #b08030, 0 0 32px 8px rgba(176,128,48,0.3); animation: ts3-candle 2s ease-in-out infinite alternate; }
.scn-pope-question-massieu .candle-halo { position:absolute; bottom:34%; left:42%; width:30px; height:30px; background: radial-gradient(circle, rgba(210,180,140,0.5) 0%, transparent 70%); filter: blur(5px); animation: ts3-halo 3s ease-in-out infinite alternate; }
.scn-pope-question-massieu .shadow-threat { position:absolute; bottom:30%; left:72%; width:20px; height:52px; background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%); border-radius: 30% 40% 40% 40% / 60% 50% 40% 40%; opacity:0.6; animation: ts3-shadow 6s ease-in-out infinite alternate; }
@keyframes ts3-arch { 0% { opacity:0.85 } 50% { opacity:0.95 } 100% { opacity:0.75 } }
@keyframes ts3-kneel { 0%,100% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(3deg) } }
@keyframes ts3-priest { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes ts3-candle { 0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 12px 3px #b08030; } 50% { transform: scaleY(1.2) scaleX(0.85); box-shadow: 0 0 20px 6px #ffd060; } 100% { transform: scaleY(0.9) scaleX(1.1); box-shadow: 0 0 14px 4px #b08030; } }
@keyframes ts3-halo { 0% { opacity:0.2; transform: scale(0.8) } 50% { opacity:0.5; transform: scale(1.1) } 100% { opacity:0.3; transform: scale(0.9) } }
@keyframes ts3-shadow { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(4px) scaleY(1.05) } 100% { transform: translateX(0) scaleY(0.95) } }

.scn-trial-questioning-paintings { background: linear-gradient(180deg, #241e18 0%, #16120e 50%, #0e0a08 100%), radial-gradient(ellipse at 70% 20%, #3a2a1a 0%, transparent 80%); }
.scn-trial-questioning-paintings .wall-painting { position:absolute; top:10%; left:20%; width:120px; height:60px; background: linear-gradient(135deg, #5a3a2a 0%, #8a5a3a 30%, #5a3a2a 50%, #4a2a1a 100%); border-radius: 20px; box-shadow: inset 0 0 20px #1a1410; opacity:0.8; animation: ts4-paint 15s ease-in-out infinite alternate; }
.scn-trial-questioning-paintings .butterfly { position:absolute; top:15%; left:40%; width:18px; height:12px; background: radial-gradient(circle at 30% 50%, #d0a050 0%, #a08030 50%, transparent 100%); transform: rotate(20deg); animation: ts4-butterfly 4s ease-in-out infinite alternate; }
.scn-trial-questioning-paintings .figure-pointing { position:absolute; bottom:28%; left:28%; width:26px; height:50px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2e22 100%); border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom center; animation: ts4-point 3s ease-in-out infinite; }
.scn-trial-questioning-paintings .figure-pointing::after { content:''; position:absolute; top:20%; right:-8px; width:10px; height:3px; background: #6a5a4a; border-radius: 2px; transform: rotate(-30deg); }
.scn-trial-questioning-paintings .angel-crown { position:absolute; top:8%; left:55%; width:40px; height:20px; background: linear-gradient(180deg, #f0d080 0%, #c0a060 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 10px #e0c060; animation: ts4-crown 8s ease-in-out infinite alternate; }
.scn-trial-questioning-paintings .table-stool { position:absolute; bottom:20%; left:50%; width:60px; height:12px; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e18 100%); border-radius: 6px; box-shadow: 0 6px 12px #0a0806; }
.scn-trial-questioning-paintings .inkwell { position:absolute; bottom:22%; left:52%; width:10px; height:14px; background: linear-gradient(180deg, #3a2a1e 0%, #1a120a 100%); border-radius: 40% 40% 20% 20%; box-shadow: inset 0 4px 6px #0a0806; animation: ts4-ink 5s ease-in-out infinite; }
.scn-trial-questioning-paintings .candle-smoke { position:absolute; bottom:30%; left:55%; width:8px; height:20px; background: radial-gradient(ellipse at 50% 100%, rgba(180,160,140,0.4) 0%, transparent 80%); filter: blur(4px); animation: ts4-smoke 3s ease-in-out infinite alternate; }
@keyframes ts4-paint { 0% { opacity:0.7; transform: scale(0.98) } 50% { opacity:0.85; transform: scale(1.02) } 100% { opacity:0.75; transform: scale(0.99) } }
@keyframes ts4-butterfly { 0% { transform: rotate(20deg) translateX(0) scaleY(1) } 50% { transform: rotate(30deg) translateX(3px) scaleY(1.15) } 100% { transform: rotate(15deg) translateX(0) scaleY(0.95) } }
@keyframes ts4-point { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(3deg) } }
@keyframes ts4-crown { 0% { transform: translateY(0) scaleY(1); opacity:0.6 } 50% { transform: translateY(-6px) scaleY(1.1); opacity:0.9 } 100% { transform: translateY(0) scaleY(0.95); opacity:0.7 } }
@keyframes ts4-ink { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ts4-smoke { 0% { transform: translateY(0) scaleX(1); opacity:0.3 } 50% { transform: translateY(-6px) scaleX(1.2); opacity:0.5 } 100% { transform: translateY(0) scaleX(0.9); opacity:0.2 } }

/* --- Scene 1: soissons-betrayal-margny (tense, sunlit) --- */
.scn-soissons-betrayal-margny {
  background: linear-gradient(180deg, #7bb8e8 0%, #4a90c8 40%, #1c3e5e 100%),
              radial-gradient(ellipse at 70% 30%, rgba(255,230,150,.3) 0%, transparent 60%);
}
.scn-soissons-betrayal-margny .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c1d9f0 0%, #9bc0e0 100%);
  animation: sbm-sky 6s ease-in-out infinite alternate;
}
.scn-soissons-betrayal-margny .wall {
  position: absolute; bottom: 15%; left: 5%; right: 25%; height: 45%;
  background: linear-gradient(180deg, #b8a080 0%, #8b7260 30%, #5a4a3a 100%);
  border-radius: 0 20% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-soissons-betrayal-margny .tower {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #a09070 0%, #6b5a4a 100%);
  border-radius: 6% 6% 3% 3%;
  box-shadow: 10px 0 12px rgba(0,0,0,.4);
  animation: sbm-tower 4s ease-in-out infinite;
}
.scn-soissons-betrayal-margny .banner {
  position: absolute; bottom: 88%; left: 32%; width: 18px; height: 28px;
  background: #c8553d; /* terracotta red */
  border-radius: 0 0 30% 30%;
  transform-origin: top center;
  animation: sbm-banner 1.2s ease-in-out infinite;
}
.scn-soissons-betrayal-margny .figure-jeanne {
  position: absolute; bottom: 20%; left: 42%; width: 22px; height: 48px;
  background: radial-gradient(ellipse at 50% 20%, #f5d080 0%, #b88a40 60%, #7a5a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 50% 50%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
  animation: sbm-jeanne 3s ease-in-out infinite;
}
.scn-soissons-betrayal-margny .figure-captain {
  position: absolute; bottom: 18%; left: 52%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: sbm-captain 2s ease-in-out infinite;
}
.scn-soissons-betrayal-margny .shadow {
  position: absolute; bottom: 14%; left: 38%; width: 80px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: sbm-shadow 3s ease-in-out infinite;
}
.scn-soissons-betrayal-margny .dust {
  position: absolute; bottom: 25%; left: 55%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(220,200,160,.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: sbm-dust 5s ease-in-out infinite;
}
@keyframes sbm-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes sbm-tower { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sbm-banner { 0% { transform: rotate(-8deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-8deg) } }
@keyframes sbm-jeanne {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); opacity: 1 }
  30% { transform: translateX(4px) translateY(-2px) rotate(1deg); opacity: .9 }
  60% { transform: translateX(8px) translateY(-1px) rotate(-1deg); opacity: 1 }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); opacity: .95 }
}
@keyframes sbm-captain {
  0%,100% { transform: translateX(0) rotate(5deg) }
  50% { transform: translateX(-3px) rotate(8deg) }
}
@keyframes sbm-shadow { 0%,100% { transform: scaleX(1); opacity: .6 } 50% { transform: scaleX(1.2); opacity: .4 } }
@keyframes sbm-dust { 0% { transform: translate(0,0) scale(1); opacity: .3 } 50% { transform: translate(10px,-8px) scale(1.8); opacity: .5 } 100% { transform: translate(0,0) scale(1); opacity: .3 } }

/* --- Scene 2: capture-margny (dark, moonlit) --- */
.scn-capture-margny {
  background: linear-gradient(180deg, #0c1426 0%, #1a2a40 40%, #2a3a52 100%),
              radial-gradient(ellipse at 50% 0%, rgba(180,210,255,.1) 0%, transparent 60%);
}
.scn-capture-margny .night-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #0a1220 0%, #162840 100%);
  animation: cm-sky 15s ease-in-out infinite alternate;
}
.scn-capture-margny .moon {
  position: absolute; top: 10%; right: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #b8d8ff 0%, #8ab4e0 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 6px rgba(138,180,224,.5), 0 0 60px 15px rgba(138,180,224,.3);
  animation: cm-moon 8s ease-in-out infinite;
}
.scn-capture-margny .horse {
  position: absolute; bottom: 20%; left: 35%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #2a2018 0%, #140f0a 100%);
  border-radius: 30% 40% 30% 20% / 50% 40% 40% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,.7);
  animation: cm-horse 2s ease-in-out infinite;
}
.scn-capture-margny .archer {
  position: absolute; bottom: 15%; left: 45%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #2a3028 0%, #0c100e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(10deg);
  animation: cm-archer 4s ease-in-out infinite;
}
.scn-capture-margny .figure-jeanne {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 46px;
  background: radial-gradient(ellipse at 50% 30%, #b0a090 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: cm-jeanne 3s ease-in-out infinite;
}
.scn-capture-margny .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a2018 0%, #0a0e0c 100%);
  border-radius: 40% 0 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.6);
}
.scn-capture-margny .spear {
  position: absolute; bottom: 40%; left: 50%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a10 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: cm-spear 2s ease-in-out infinite;
}
.scn-capture-margny .helm {
  position: absolute; bottom: 58%; left: 48%; width: 16px; height: 12px;
  background: linear-gradient(180deg, #4a4a54 0%, #2a2a34 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: cm-helm 4s ease-in-out infinite;
}
@keyframes cm-sky { 0% { opacity: .7 } 50% { opacity: .85 } 100% { opacity: .7 } }
@keyframes cm-moon { 0%,100% { transform: translateY(0) scale(1); opacity: .9 } 50% { transform: translateY(-3px) scale(1.02); opacity: 1 } }
@keyframes cm-horse { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes cm-archer { 0%,100% { transform: translateX(0) rotate(10deg) } 50% { transform: translateX(-3px) rotate(8deg) } }
@keyframes cm-jeanne { 0% { transform: translateX(0) rotate(-15deg) } 50% { transform: translateX(6px) rotate(-10deg) } 100% { transform: translateX(0) rotate(-15deg) } }
@keyframes cm-spear { 0%,100% { transform: rotate(0) } 50% { transform: rotate(5deg) } }
@keyframes cm-helm { 0%,100% { transform: translate(0,0) scale(1) } 50% { transform: translate(1px,-2px) scale(.95) } }

/* --- Scene 3: inquisitor-action (dark, dim-interior) --- */
.scn-inquisitor-action {
  background: linear-gradient(180deg, #0e0a12 0%, #1a1420 30%, #2a1e32 100%),
              radial-gradient(ellipse at 50% 70%, rgba(80,40,20,.2) 0%, transparent 80%);
}
.scn-inquisitor-action .wall-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0a12 0%, #1c1422 50%, #0e0a12 100%);
  animation: ia-wall 20s ease-in-out infinite alternate;
}
.scn-inquisitor-action .candle {
  position: absolute; bottom: 40%; left: 30%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #ffd680 0%, #b88640 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 4px #ffa040, 0 0 40px 10px rgba(255,160,64,.4);
  animation: ia-candle 3s ease-in-out infinite;
}
.scn-inquisitor-action .brazier {
  position: absolute; bottom: 25%; left: 55%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, #1a0a04 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  box-shadow: inset 0 0 20px rgba(200,80,20,.3), 0 0 30px 6px rgba(200,80,20,.5);
  animation: ia-brazier 5s ease-in-out infinite;
}
.scn-inquisitor-action .figure-inquisitor {
  position: absolute; bottom: 20%; left: 40%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1e1430 0%, #0e081a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(60,20,80,.6);
  animation: ia-inquisitor 4s ease-in-out infinite;
}
.scn-inquisitor-action .figure-friar {
  position: absolute; bottom: 18%; left: 48%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2018 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ia-friar 3s ease-in-out infinite;
}
.scn-inquisitor-action .chains {
  position: absolute; bottom: 30%; left: 44%; width: 16px; height: 30px;
  border: 2px solid #5a4a3a;
  border-radius: 20% 20% 10% 10%;
  filter: blur(1px);
  animation: ia-chains 2s ease-in-out infinite;
}
.scn-inquisitor-action .cross {
  position: absolute; bottom: 55%; left: 50%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  box-shadow: 0 0 8px rgba(0,0,0,.6);
  animation: ia-cross 5s ease-in-out infinite;
}
@keyframes ia-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ia-candle { 0%,100% { transform: scaleY(1); opacity: .8 } 50% { transform: scaleY(1.2); opacity: 1 } }
@keyframes ia-brazier { 0%,100% { transform: scale(1); opacity: .7 } 25% { transform: scale(1.1); opacity: .9 } 75% { transform: scale(.95); opacity: .6 } }
@keyframes ia-inquisitor { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(-2deg) } 70% { transform: translateY(-1px) rotate(2deg) } }
@keyframes ia-friar { 0%,100% { transform: rotate(0) } 50% { transform: rotate(8deg) } }
@keyframes ia-chains { 0%,100% { transform: translate(0,0) } 50% { transform: translate(2px,-3px) } }
@keyframes ia-cross { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.05) } }

/* --- Scene 4: item-letter-tournai (dark, dim-interior) --- */
.scn-item-letter-tournai {
  background: linear-gradient(180deg, #0e0e14 0%, #1a1a24 40%, #262638 100%),
              radial-gradient(ellipse at 60% 50%, rgba(60,40,20,.15) 0%, transparent 70%);
}
.scn-item-letter-tournai .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #12101a 0%, #1c1a2a 50%, #0e0e14 100%);
  animation: ilt-room 15s ease-in-out infinite alternate;
}
.scn-item-letter-tournai .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 8px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1c10 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-item-letter-tournai .letter {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #d0c8b0 0%, #a89878 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: ilt-letter 6s ease-in-out infinite;
}
.scn-item-letter-tournai .coins {
  position: absolute; bottom: 18%; left: 38%; width: 18px; height: 10px;
  background: radial-gradient(ellipse, #e8c060 0%, #b89030 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(232,192,96,.5);
  animation: ilt-coins 4s ease-in-out infinite;
}
.scn-item-letter-tournai .portrait {
  position: absolute; bottom: 25%; right: 30%; width: 22px; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 8% 8% 20% 20%;
  box-shadow: 0 0 6px rgba(0,0,0,.4);
  animation: ilt-portrait 5s ease-in-out infinite;
}
.scn-item-letter-tournai .figure-luxembourg {
  position: absolute; bottom: 20%; left: 15%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #1a1830 0%, #0e0c1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(0,0,0,.7);
  animation: ilt-luxembourg 3s ease-in-out infinite;
}
.scn-item-letter-tournai .figure-scotsman {
  position: absolute; bottom: 18%; right: 25%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a2818 0%, #0e0c04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: ilt-scotsman 4s ease-in-out infinite;
}
.scn-item-letter-tournai .shadow {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.6) 0%, transparent 80%);
  filter: blur(10px);
  animation: ilt-shadow 6s ease-in-out infinite;
}
@keyframes ilt-room { 0% { opacity: .85 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes ilt-letter { 0%,100% { transform: translate(0,0) rotate(-5deg) } 50% { transform: translate(1px,-1px) rotate(-3deg) } }
@keyframes ilt-coins { 0%,100% { transform: scale(1); opacity: .8 } 50% { transform: scale(1.1); opacity: 1 } }
@keyframes ilt-portrait { 0% { transform: translate(0,0) rotate(0) } 50% { transform: translate(2px,-1px) rotate(2deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes ilt-luxembourg { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(-2deg) } 70% { transform: translateY(-1px) rotate(1deg) } }
@keyframes ilt-scotsman { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(8deg) } }
@keyframes ilt-shadow { 0%,100% { transform: scaleY(1); opacity: .5 } 50% { transform: scaleY(1.1); opacity: .4 } }

.scn-item-sword-at-fierbois { background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 50%, #a8865a 100%), radial-gradient(ellipse at 60% 30%, #fff6e0 0%, transparent 60%); }
.scn-item-sword-at-fierbois .bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8d5b8 0%, #c4a882 100%); }
.scn-item-sword-at-fierbois .altar { position:absolute; bottom:14%; left:50%; transform:translateX(-50%); width:140px; height:40px; background: linear-gradient(180deg, #b8a080 0%, #8a6e50 100%); border-radius:4px; box-shadow: 0 8px 12px rgba(0,0,0,.3); }
.scn-item-sword-at-fierbois .sword-blade { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:8px; height:90px; background: linear-gradient(180deg, #e0d0c0 0%, #b0a090 100%); border-radius:0 0 4px 4px; box-shadow: 0 0 10px 2px rgba(200,180,160,.5); animation: fin-blade 4s ease-in-out infinite; }
.scn-item-sword-at-fierbois .sword-guard { position:absolute; bottom:56%; left:50%; transform:translateX(-50%); width:24px; height:6px; background: #a08060; border-radius:2px; box-shadow: 0 0 6px rgba(160,128,96,.4); }
.scn-item-sword-at-fierbois .cross-marks { position:absolute; bottom:38%; left:50%; transform:translateX(-50%); width:40px; height:40px; background: radial-gradient(circle at 25% 25%, #d4b896 4px, transparent 4px), radial-gradient(circle at 75% 25%, #d4b896 4px, transparent 4px), radial-gradient(circle at 50% 50%, #d4b896 4px, transparent 4px), radial-gradient(circle at 25% 75%, #d4b896 4px, transparent 4px), radial-gradient(circle at 75% 75%, #d4b896 4px, transparent 4px); background-size:40px 40px; background-repeat:no-repeat; }
.scn-item-sword-at-fierbois .light-beam { position:absolute; top:10%; left:30%; width:40px; height:200px; background: linear-gradient(180deg, rgba(255,240,200,.9) 0%, rgba(255,240,200,.5) 50%, transparent 100%); transform:rotate(-20deg); filter: blur(8px); animation: fin-beam 12s ease-in-out infinite alternate; }
.scn-item-sword-at-fierbois .glow { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:60px; height:60px; background: radial-gradient(circle, rgba(200,180,160,.6) 0%, transparent 70%); border-radius:50%; animation: fin-glow 6s ease-in-out infinite alternate; }
@keyframes fin-blade { 0%,100% { transform:translateX(-50%) rotate(0) scaleY(1); } 50% { transform:translateX(-50%) rotate(2deg) scaleY(1.02); } }
@keyframes fin-beam { 0% { opacity:.6; transform:rotate(-20deg) translateY(0); } 50% { opacity:.9; transform:rotate(-18deg) translateY(-5px); } 100% { opacity:.7; transform:rotate(-22deg) translateY(3px); } }
@keyframes fin-glow { 0%,100% { opacity:.6; transform:translateX(-50%) scale(1); } 50% { opacity:1; transform:translateX(-50%) scale(1.3); } }

.scn-chinon-report { background: linear-gradient(180deg, #e8d2a0 0%, #c8b080 50%, #a8885a 100%), radial-gradient(ellipse at 70% 20%, #ffeabc 0%, transparent 70%); }
.scn-chinon-report .bg { position:absolute; inset:0; background: linear-gradient(180deg, #dcc8a0 0%, #b8a070 100%); }
.scn-chinon-report .throne { position:absolute; bottom:15%; left:25%; width:80px; height:120px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius:40% 40% 12% 12% / 50% 50% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,.4); animation: chi-throne 10s ease-in-out infinite; }
.scn-chinon-report .figure { position:absolute; bottom:18%; left:45%; width:20px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: chi-figure 8s ease-in-out infinite; }
.scn-chinon-report .scroll { position:absolute; bottom:30%; left:60%; width:30px; height:50px; background: linear-gradient(180deg, #f0e0c0 0%, #c8b080 100%); border-radius:0 0 50% 50% / 0 0 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: chi-scroll 6s ease-in-out infinite; }
.scn-chinon-report .candle { position:absolute; bottom:30%; left:70%; width:10px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #c88230 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 20px 8px rgba(255,208,128,.5); animation: chi-candle 2s ease-in-out infinite alternate; }
.scn-chinon-report .window { position:absolute; top:10%; right:12%; width:60px; height:80px; background: linear-gradient(180deg, #ffe8c0 0%, #d4b880 100%); border-radius:40% 40% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 0 20px rgba(255,200,100,.3); animation: chi-window 15s ease-in-out infinite; }
@keyframes chi-throne { 0%,100% { transform:translateX(0) rotate(0); } 50% { transform:translateX(-2px) rotate(1deg); } }
@keyframes chi-figure { 0%,100% { transform:translateX(0) rotate(0); } 50% { transform:translateX(3px) rotate(2deg); } }
@keyframes chi-scroll { 0%,100% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-3px) scaleY(1.05); } }
@keyframes chi-candle { 0% { opacity:.8; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.1); } 100% { opacity:.7; transform:scaleY(0.95); } }
@keyframes chi-window { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }

.scn-item-standard-entrance { background: linear-gradient(180deg, #87ceeb 0%, #b0d4f0 30%, #e0f0ff 60%, #ffe680 100%), radial-gradient(ellipse at 50% 0%, #ffffc0 0%, transparent 70%); }
.scn-item-standard-entrance .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7ab8d4 0%, #a0c8e0 50%, transparent 100%); }
.scn-item-standard-entrance .sun { position:absolute; top:8%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #ffe680 0%, #ffd040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,214,64,.3); animation: ent-sun 20s ease-in-out infinite alternate; }
.scn-item-standard-entrance .gate { position:absolute; bottom:30%; left:30%; width:100px; height:120px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius:50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); animation: ent-gate 8s ease-in-out infinite; }
.scn-item-standard-entrance .horse { position:absolute; bottom:25%; left:45%; width:50px; height:60px; background: linear-gradient(180deg, #e0d8d0 0%, #c0b8b0 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: ent-horse 3s ease-in-out infinite; }
.scn-item-standard-entrance .rider { position:absolute; bottom:40%; left:46%; width:18px; height:40px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ent-rider 3s ease-in-out infinite; }
.scn-item-standard-entrance .standard { position:absolute; bottom:50%; left:50%; width:6px; height:80px; background: #8a6a4a; border-radius:2px; animation: ent-pole 4s ease-in-out infinite; }
.scn-item-standard-entrance .standard::after { content:''; position:absolute; top:0; left:6px; width:40px; height:30px; background: linear-gradient(180deg, #ffe680 0%, #e0a040 100%); border-radius:0 50% 50% 0 / 0 60% 60% 0; animation: ent-flag 4s ease-in-out infinite; }
.scn-item-standard-entrance .crowd { position:absolute; bottom:20%; left:10%; right:10%; height:30px; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 8px, transparent 8px, transparent 12px); background-size:12px 30px; animation: ent-crowd 6s ease-in-out infinite; }
@keyframes ent-sun { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-5px) scale(1.05); } 100% { transform:translateY(3px) scale(0.98); } }
@keyframes ent-gate { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes ent-horse { 0%,100% { transform:translateX(0) rotate(0); } 25% { transform:translateX(2px) rotate(-2deg); } 50% { transform:translateX(4px) rotate(0); } 75% { transform:translateX(2px) rotate(2deg); } }
@keyframes ent-rider { 0%,100% { transform:translateX(0) rotate(0); } 25% { transform:translateX(2px) rotate(-3deg); } 50% { transform:translateX(4px) rotate(0); } 75% { transform:translateX(2px) rotate(3deg); } }
@keyframes ent-pole { 0%,100% { transform:rotate(0); } 50% { transform:rotate(3deg); } }
@keyframes ent-flag { 0%,100% { transform:rotate(0) scaleX(1); } 50% { transform:rotate(10deg) scaleX(1.1); } }
@keyframes ent-crowd { 0%,100% { opacity:.7; } 50% { opacity:1; } }

.scn-item-standard-bulwark { background: linear-gradient(180deg, #2e2a4e 0%, #4a3a5e 30%, #6a4a3e 60%, #2e1a0e 100%), radial-gradient(ellipse at 50% 20%, #6a4a3e 0%, transparent 70%); }
.scn-item-standard-bulwark .sky-dusk { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a4a6a 0%, #8a6a5a 50%, transparent 100%); animation: bul-sky 12s ease-in-out infinite alternate; }
.scn-item-standard-bulwark .vineyard { position:absolute; bottom:25%; left:5%; right:5%; height:40%; background: repeating-linear-gradient(135deg, #3a4a2a 0px, #3a4a2a 10px, #2a3a1a 10px, #2a3a1a 20px); border-radius:40% 40% 0 0 / 60% 60% 0 0; animation: bul-vine 5s ease-in-out infinite; }
.scn-item-standard-bulwark .figure-kneel { position:absolute; bottom:30%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bul-figure 4s ease-in-out infinite; }
.scn-item-standard-bulwark .fortress { position:absolute; bottom:30%; right:10%; width:80px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:10% 10% 0 0 / 20% 20% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.7); animation: bul-fortress 8s ease-in-out infinite; }
.scn-item-standard-bulwark .wound-glow { position:absolute; bottom:35%; left:48%; width:12px; height:12px; background: radial-gradient(circle, #a0461a 0%, #5e1a1d 40%, transparent 70%); border-radius:50%; animation: bul-wound 3s ease-in-out infinite alternate; }
.scn-item-standard-bulwark .prayer-light { position:absolute; top:20%; left:40%; width:30px; height:40px; background: radial-gradient(ellipse, rgba(255,200,100,.3) 0%, transparent 70%); filter: blur(4px); animation: bul-prayer 2s ease-in-out infinite alternate; }
@keyframes bul-sky { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes bul-vine { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes bul-figure { 0%,100% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-3px) rotate(2deg); } }
@keyframes bul-fortress { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } }
@keyframes bul-wound { 0% { opacity:.5; transform:scale(1); } 50% { opacity:.9; transform:scale(1.5); } 100% { opacity:.6; transform:scale(1.1); } }
@keyframes bul-prayer { 0% { opacity:.4; transform:translateY(0); } 50% { opacity:.8; transform:translateY(-5px); } 100% { opacity:.5; transform:translateY(2px); } }

/* item-letter-troyes – warm sunlit landscape */
.scn-item-letter-troyes {
  background: linear-gradient(180deg, #ffe6a0 0%, #ffcc80 40%, #b8864a 70%, #6b4c2a 100%), 
              radial-gradient(ellipse at 20% 10%, #fff4d0 0%, transparent 50%);
}
.scn-item-letter-troyes .sun { position:absolute; top:8%; left:12%; width:90px; height:90px; background: radial-gradient(circle, #fff8e0 0%, #ffdd80 40%, #ffaa33 100%); border-radius:50%; box-shadow: 0 0 80px 40px #ffcc66, 0 0 160px 60px #ffaa44; animation: itl-sun 15s ease-in-out infinite alternate; }
.scn-item-letter-troyes .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b8d8f0 0%, #8fc4e0 100%); opacity:0.7; animation: itl-sky 20s ease-in-out infinite; }
.scn-item-letter-troyes .city-walls { position:absolute; bottom:30%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #c4a46c 0%, #8b6b3c 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,0.3); animation: itl-walls 12s ease-in-out infinite alternate; }
.scn-item-letter-troyes .gate { position:absolute; bottom:28%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: #4a3020; border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 0 20px #2a1a10; animation: itl-gate 8s ease-in-out infinite; }
.scn-item-letter-troyes .road { position:absolute; bottom:20%; left:30%; right:30%; height:12%; background: linear-gradient(180deg, #9a7a4a 0%, #6a4e2a 100%); border-radius: 30% 30% 0 0; animation: itl-road 10s ease-in-out infinite alternate; }
.scn-item-letter-troyes .figure { position:absolute; bottom:32%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: itl-figure 4s ease-in-out infinite; }
.scn-item-letter-troyes .letter { position:absolute; bottom:38%; left:18%; width:14px; height:18px; background: #f2e6c0; border-radius: 4px; transform: rotate(15deg); box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: itl-letter 3s ease-in-out infinite alternate; }
.scn-item-letter-troyes .cloud-1 { position:absolute; top:15%; left:5%; width:100px; height:25px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.2) 100%); border-radius:50%; filter: blur(8px); animation: itl-drift-1 40s linear infinite; }
.scn-item-letter-troyes .cloud-2 { position:absolute; top:25%; right:15%; 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); animation: itl-drift-2 50s linear infinite reverse; }
@keyframes itl-sun { 0%,100% { transform: scale(1); box-shadow: 0 0 80px 40px #ffcc66, 0 0 160px 60px #ffaa44; } 50% { transform: scale(1.05); box-shadow: 0 0 100px 50px #ffdd88, 0 0 200px 75px #ffbb55; } }
@keyframes itl-sky { 0%,100% { opacity:0.7; } 50% { opacity:0.9; } }
@keyframes itl-walls { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(2px); } }
@keyframes itl-gate { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03); } }
@keyframes itl-road { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes itl-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes itl-letter { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } 100% { transform: rotate(20deg) scale(0.95); } }
@keyframes itl-drift-1 { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes itl-drift-2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* item-second-letter – tense dim interior */
.scn-item-second-letter {
  background: linear-gradient(180deg, #2a1f1a 0%, #3a2a22 50%, #1a100c 100%), 
              radial-gradient(ellipse at 50% 40%, #4a342a 0%, transparent 60%);
}
.scn-item-second-letter .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #2a1f1a 0%, #3a2a22 50%, #2a1f1a 100%); border-bottom: 2px solid #1a100c; animation: isl-wall 10s ease-in-out infinite alternate; }
.scn-item-second-letter .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a22 0%, #1a100c 100%); animation: isl-floor 8s ease-in-out infinite alternate; }
.scn-item-second-letter .desk { position:absolute; bottom:20%; left:35%; right:35%; height:20%; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); animation: isl-desk 6s ease-in-out infinite; }
.scn-item-second-letter .candle { position:absolute; bottom:38%; left:48%; width:12px; height:40px; background: linear-gradient(180deg, #e8d8b0 0%, #c8a870 100%); border-radius: 40% 40% 20% 20% / 30% 30% 40% 40%; box-shadow: 0 0 20px 8px #ffaa44, 0 0 40px 16px rgba(255,170,68,0.3); animation: isl-candle 3s ease-in-out infinite alternate; }
.scn-item-second-letter .candle-glow { position:absolute; bottom:34%; left:45%; width:30px; height:30px; background: radial-gradient(circle, #ffcc66 0%, transparent 100%); opacity:0.6; animation: isl-glow 2s ease-in-out infinite alternate; }
.scn-item-second-letter .scroll { position:absolute; bottom:28%; left:40%; width:30px; height:10px; background: #f2e6c0; border-radius: 4px; transform: rotate(-5deg); box-shadow: 0 0 4px rgba(0,0,0,0.4); animation: isl-scroll 5s ease-in-out infinite alternate; }
.scn-item-second-letter .hand { position:absolute; bottom:24%; left:45%; width:16px; height:30px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%; transform-origin: bottom center; box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: isl-hand 4s ease-in-out infinite; }
.scn-item-second-letter .quill { position:absolute; bottom:38%; left:50%; width:4px; height:32px; background: linear-gradient(180deg, #e0d0b0 0%, #a09070 100%); border-radius: 50% 50% 0 0; transform: rotate(20deg); transform-origin: bottom center; animation: isl-quill 3s ease-in-out infinite alternate; }
@keyframes isl-wall { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes isl-floor { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }
@keyframes isl-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes isl-candle { 0% { transform: scaleY(1) rotate(-1deg); box-shadow: 0 0 20px 8px #ffaa44, 0 0 40px 16px rgba(255,170,68,0.3); } 50% { transform: scaleY(1.05) rotate(1deg); box-shadow: 0 0 28px 12px #ffbb55, 0 0 56px 20px rgba(255,187,85,0.4); } 100% { transform: scaleY(0.98) rotate(-0.5deg); box-shadow: 0 0 22px 9px #ffaa44, 0 0 44px 18px rgba(255,170,68,0.35); } }
@keyframes isl-glow { 0% { opacity:0.4; transform: scale(0.9); } 50% { opacity:0.8; transform: scale(1.2); } 100% { opacity:0.6; transform: scale(1); } }
@keyframes isl-scroll { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(0deg) translateX(3px); } 100% { transform: rotate(-8deg) translateX(-2px); } }
@keyframes isl-hand { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-3deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes isl-quill { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(15deg) scale(1.1); } 100% { transform: rotate(25deg) scale(0.95); } }

/* legends-and-montepilloy – tense overcast march */
.scn-legends-and-montepilloy {
  background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 40%, #3a4a4a 70%, #2a3a3a 100%), 
              radial-gradient(ellipse at 30% 20%, #7a8a8a 0%, transparent 60%);
}
.scn-legends-and-montepilloy .overcast-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 100%); opacity:0.8; animation: lm-sky 15s ease-in-out infinite alternate; }
.scn-legends-and-montepilloy .distant-city { position:absolute; bottom:30%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.4); animation: lm-city 12s ease-in-out infinite alternate; }
.scn-legends-and-montepilloy .road { position:absolute; bottom:20%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0; animation: lm-road 10s ease-in-out infinite alternate; }
.scn-legends-and-montepilloy .figure { position:absolute; bottom:22%; left:25%; width:18px; height:45px; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lm-figure 4s ease-in-out infinite; }
.scn-legends-and-montepilloy .spear { position:absolute; bottom:30%; left:27%; width:3px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(10deg); transform-origin: bottom center; animation: lm-spear 3s ease-in-out infinite alternate; }
.scn-legends-and-montepilloy .cloud-a { position:absolute; top:12%; left:10%; width:120px; height:22px; background: linear-gradient(180deg, rgba(120,130,130,0.6) 0%, rgba(70,80,80,0.2) 100%); border-radius:50%; filter: blur(10px); animation: lm-drift-a 45s linear infinite; }
.scn-legends-and-montepilloy .cloud-b { position:absolute; top:20%; right:5%; width:100px; height:18px; background: linear-gradient(180deg, rgba(100,110,110,0.5) 0%, rgba(60,70,70,0.1) 100%); border-radius:50%; filter: blur(8px); animation: lm-drift-b 55s linear infinite reverse; }
@keyframes lm-sky { 0%,100% { opacity:0.7; } 50% { opacity:0.9; } }
@keyframes lm-city { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes lm-road { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes lm-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(6px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(12px) translateY(0) rotate(-2deg); } 75% { transform: translateX(18px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(24px) translateY(0) rotate(0deg); } }
@keyframes lm-spear { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.05); } 100% { transform: rotate(8deg) scaleY(0.95); } }
@keyframes lm-drift-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes lm-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }

/* christine-poem-prophecy – warm dim interior study */
.scn-christine-poem-prophecy {
  background: linear-gradient(180deg, #2a1f18 0%, #3a2a20 50%, #1a120e 100%), 
              radial-gradient(ellipse at 50% 40%, #4a3428 0%, transparent 60%);
}
.scn-christine-poem-prophecy .dark-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a120e 0%, #2a1f18 100%); animation: cpp-wall 10s ease-in-out infinite alternate; }
.scn-christine-poem-prophecy .desk { position:absolute; bottom:25%; left:30%; right:30%; height:15%; background: linear-gradient(180deg, #4a3428 0%, #2a1f18 100%); border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); animation: cpp-desk 8s ease-in-out infinite alternate; }
.scn-christine-poem-prophecy .candle { position:absolute; bottom:40%; left:45%; width:10px; height:35px; background: linear-gradient(180deg, #e8d4b0 0%, #c8a870 100%); border-radius: 40% 40% 20% 20% / 30% 30% 40% 40%; box-shadow: 0 0 15px 6px #ffaa44; animation: cpp-candle 3s ease-in-out infinite alternate; }
.scn-christine-poem-prophecy .candle-halo { position:absolute; bottom:36%; left:42%; width:36px; height:36px; background: radial-gradient(circle, #ffcc66 0%, transparent 100%); opacity:0.5; animation: cpp-halo 3s ease-in-out infinite alternate; }
.scn-christine-poem-prophecy .scroll { position:absolute; bottom:30%; left:45%; width:28px; height:8px; background: #f2e6c0; border-radius: 2px; transform: rotate(-8deg); box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: cpp-scroll 6s ease-in-out infinite alternate; }
.scn-christine-poem-prophecy .hand { position:absolute; bottom:26%; left:50%; width:14px; height:28px; background: linear-gradient(180deg, #4a3428 0%, #2a1f18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%; transform-origin: bottom center; box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: cpp-hand 4s ease-in-out infinite; }
.scn-christine-poem-prophecy .scarlet-mark { position:absolute; bottom:28%; left:52%; width:6px; height:6px; background: #c8553d; border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,85,61,0.5); animation: cpp-mark 5s ease-in-out infinite alternate; }
@keyframes cpp-wall { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cpp-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes cpp-candle { 0% { transform: scaleY(1) rotate(-1deg); box-shadow: 0 0 15px 6px #ffaa44; } 50% { transform: scaleY(1.05) rotate(1deg); box-shadow: 0 0 20px 8px #ffbb55; } 100% { transform: scaleY(0.98) rotate(-0.5deg); box-shadow: 0 0 17px 7px #ffaa44; } }
@keyframes cpp-halo { 0% { opacity:0.4; transform: scale(0.9); } 50% { opacity:0.7; transform: scale(1.2); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes cpp-scroll { 0% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(4px); } 100% { transform: rotate(-12deg) translateX(-2px); } }
@keyframes cpp-hand { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-3deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cpp-mark { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.5); box-shadow: 0 0 12px 4px rgba(200,85,61,0.7); } 100% { opacity:0.8; transform: scale(0.9); } }

.scn-index-thibault-zizka {
  background: linear-gradient(180deg, #1a0f0a 0%, #0d0705 100%),
              radial-gradient(ellipse at 70% 60%, #3a2010 0%, transparent 70%);
}

.scn-index-thibault-zizka .bg {
  position: absolute; inset: 0;
  background: inherit; /* inherit from parent for seamless effect */
  opacity: 0.5;
  animation: itz-bg 12s ease-in-out infinite alternate;
}

.scn-index-thibault-zizka .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #4a3020 0%, #2b1b0e 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: itz-desk 15s ease-in-out infinite alternate;
}

.scn-index-thibault-zizka .book {
  position: absolute; bottom: 26%; left: 35%; width: 120px; height: 70px;
  background: linear-gradient(90deg, #f5e6c8 0%, #e8d5a8 50%, #5a3a20 50.5%, #5a3a20 51%, #e8d5a8 51.5%, #f5e6c8 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
  animation: itz-book 6s ease-in-out infinite;
}

.scn-index-thibault-zizka .book-spine {
  position: absolute; bottom: 26%; left: 50%; width: 6px; height: 70px;
  background: #3a2010;
  transform: translateX(-50%);
  border-radius: 0 0 2px 2px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
  animation: itz-book 6s ease-in-out infinite;
}

.scn-index-thibault-zizka .candle {
  position: absolute; bottom: 30%; left: 58%; width: 12px; height: 60px;
  background: linear-gradient(180deg, #e8d5a8 0%, #c8a070 50%, #a08050 100%);
  border-radius: 4px 4px 0 0;
  animation: itz-candle 4s ease-in-out infinite alternate;
}

.scn-index-thibault-zizka .flame {
  position: absolute; bottom: calc(30% + 60px); left: 58%; width: 10px; height: 16px;
  background: radial-gradient(ellipse, #ffd600 0%, #ff8c00 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(255,140,0,0.6);
  animation: itz-flame 2s ease-in-out infinite alternate;
}

.scn-index-thibault-zizka .glow {
  position: absolute; bottom: 55%; left: 54%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,180,80,0.3) 0%, transparent 70%);
  pointer-events: none;
  animation: itz-glow 3s ease-in-out infinite alternate;
}

.scn-index-thibault-zizka .dust-a {
  position: absolute; top: 20%; left: 20%; width: 4px; height: 4px;
  background: rgba(200,180,150,0.6); border-radius: 50%; filter: blur(1px);
  animation: itz-dust-a 20s linear infinite;
}

.scn-index-thibault-zizka .dust-b {
  position: absolute; top: 40%; left: 60%; width: 6px; height: 6px;
  background: rgba(200,180,150,0.4); border-radius: 50%; filter: blur(1.5px);
  animation: itz-dust-b 25s linear infinite;
}

@keyframes itz-bg {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

@keyframes itz-desk {
  0% { box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
  50% { box-shadow: inset 0 12px 25px rgba(0,0,0,0.6); }
  100% { box-shadow: inset 0 8px 18px rgba(0,0,0,0.4); }
}

@keyframes itz-book {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}

@keyframes itz-candle {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(1px); }
  100% { transform: rotate(-1deg) translateX(-1px); }
}

@keyframes itz-flame {
  0% { transform: scaleY(1) scaleX(1) translateY(0); opacity:0.9; }
  50% { transform: scaleY(1.2) scaleX(0.9) translateY(-2px); opacity:1; }
  100% { transform: scaleY(0.9) scaleX(1.1) translateY(1px); opacity:0.8; }
}

@keyframes itz-glow {
  0% { opacity:0.6; transform: scale(1); }
  50% { opacity:0.8; transform: scale(1.1); }
  100% { opacity:0.5; transform: scale(0.95); }
}

@keyframes itz-dust-a {
  0% { transform: translate(-50px, 0); opacity: 0; }
  10% { opacity: 0.6; }
  50% { transform: translate(30vw, -20px); opacity: 0.4; }
  100% { transform: translate(100vw, 10px); opacity: 0; }
}

@keyframes itz-dust-b {
  0% { transform: translate(100px, 0); opacity: 0; }
  20% { opacity: 0.4; }
  50% { transform: translate(-40vw, 30px); opacity: 0.3; }
  100% { transform: translate(-100vw, -10px); opacity: 0; }
}

/* la-ferone-penance */
.scn-la-ferone-penance {
  background: 
    linear-gradient(180deg, #1a0f08 0%, #2a1a0a 40%, #0d0704 100%),
    radial-gradient(ellipse at 30% 80%, #3a1a0a 0%, transparent 70%);
  overflow: hidden;
}
.scn-la-ferone-penance .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a0f08 0%, #120a06 100%);
  animation: lfp-wall 20s ease-in-out infinite alternate;
}
.scn-la-ferone-penance .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0d0704 0%, #1a0f08 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.8);
}
.scn-la-ferone-penance .window {
  position: absolute; top: 15%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a0f08 70%);
  border: 3px solid #1a0f08;
  border-radius: 4px;
  animation: lfp-window 12s ease-in-out infinite;
}
.scn-la-ferone-penance .figure-penitent {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%) rotate(5deg);
  background: radial-gradient(ellipse at 50% 40%, #0a0604 0%, #0d0704 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: lfp-figure 6s ease-in-out infinite;
}
.scn-la-ferone-penance .candle {
  position: absolute; bottom: 22%; left: 45%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #d4823a 0%, #6a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(212,130,58,.5), 0 0 40px 12px rgba(212,130,58,.3);
  animation: lfp-candle 3s ease-in-out infinite;
}
.scn-la-ferone-penance .cross-silhouette {
  position: absolute; top: 30%; left: 30%; width: 20px; height: 50px;
  background: #0a0604;
  border-radius: 2px;
  transform: rotate(10deg);
  animation: lfp-cross 18s ease-in-out infinite alternate;
}
.scn-la-ferone-penance .dust {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 20% 40%, rgba(212,130,58,.15) 0%, transparent 50%);
  filter: blur(2px);
  animation: lfp-dust 8s ease-in-out infinite;
}
@keyframes lfp-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes lfp-window { 0%,100% { filter: brightness(.6) } 50% { filter: brightness(1) } }
@keyframes lfp-figure { 0%,100% { transform: translateX(-50%) rotate(5deg) scaleY(1) } 50% { transform: translateX(-50%) rotate(0deg) scaleY(.98) } }
@keyframes lfp-candle { 0%,100% { opacity: .7; box-shadow: 0 0 15px 4px rgba(212,130,58,.4), 0 0 30px 8px rgba(212,130,58,.2); } 50% { opacity: 1; box-shadow: 0 0 25px 8px rgba(212,130,58,.6), 0 0 50px 15px rgba(212,130,58,.4); } }
@keyframes lfp-cross { 0% { opacity: .9; transform: rotate(10deg) scale(1); } 50% { opacity: .6; transform: rotate(14deg) scale(.95); } 100% { opacity: .8; transform: rotate(8deg) scale(1.02); } }
@keyframes lfp-dust { 0%,100% { opacity: .3; } 50% { opacity: .6; } }

/* equine-psychology-index-start */
.scn-equine-psychology-index-start {
  background:
    linear-gradient(180deg, #1c1208 0%, #2a1a0a 40%, #0d0704 100%),
    radial-gradient(ellipse at 70% 60%, #3a2a1a 0%, transparent 70%);
  overflow: hidden;
}
.scn-equine-psychology-index-start .stable-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #1c1208 0%, #2a1a0a 50%, #1c1208 100%);
  animation: e2-wall 30s ease-in-out infinite alternate;
}
.scn-equine-psychology-index-start .straw {
  position: absolute; bottom: 0; left: 10%; width: 60%; height: 15%;
  background: linear-gradient(0deg, #4a3a1a 0%, #8a6a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 60% 0 0;
  opacity: .6;
  animation: e2-straw 20s ease-in-out infinite;
}
.scn-equine-psychology-index-start .horse-head {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 30% 40%, #0a0604 0%, #1a0f08 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform: rotate(-5deg);
  animation: e2-horse 8s ease-in-out infinite;
}
.scn-equine-psychology-index-start .horse-head::after {
  content: '';
  position: absolute; top: 10%; right: -15%; width: 30px; height: 20px;
  background: #0a0604;
  border-radius: 0 50% 50% 0 / 0 40% 40% 0;
}
.scn-equine-psychology-index-start .anvil {
  position: absolute; bottom: 18%; left: 70%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: e2-anvil 12s ease-in-out infinite;
}
.scn-equine-psychology-index-start .lantern {
  position: absolute; top: 25%; left: 80%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #d4823a 0%, #6a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 8px rgba(212,130,58,.4), 0 0 60px 15px rgba(212,130,58,.2);
  animation: e2-lantern 4s ease-in-out infinite;
}
.scn-equine-psychology-index-start .hay {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 10%;
  background: repeating-linear-gradient(45deg, #6a4a1a 0px, #6a4a1a 3px, #8a6a3a 3px, #8a6a3a 6px);
  opacity: .3;
  animation: e2-hay 40s linear infinite;
}
@keyframes e2-wall { 0% { filter: brightness(.8) } 50% { filter: brightness(1) } 100% { filter: brightness(.85) } }
@keyframes e2-straw { 0% { opacity: .5; transform: scaleY(1) } 50% { opacity: .7; transform: scaleY(1.02) } 100% { opacity: .6; transform: scaleY(.98) } }
@keyframes e2-horse { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } }
@keyframes e2-anvil { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes e2-lantern { 0%,100% { opacity: .7; box-shadow: 0 0 20px 6px rgba(212,130,58,.3), 0 0 40px 12px rgba(212,130,58,.15); } 50% { opacity: 1; box-shadow: 0 0 35px 10px rgba(212,130,58,.5), 0 0 60px 18px rgba(212,130,58,.3); } }
@keyframes e2-hay { 0% { background-position: 0 0 } 100% { background-position: 100px 0 } }

/* index-beaulieu-blouis */
.scn-index-beaulieu-blouis {
  background:
    linear-gradient(180deg, #1a1008 0%, #2a1a0a 50%, #0d0704 100%),
    radial-gradient(ellipse at 60% 90%, #3a2a1a 0%, transparent 70%);
  overflow: hidden;
}
.scn-index-beaulieu-blouis .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: 0 -8px 16px rgba(0,0,0,.6);
  animation: ib3-desk 25s ease-in-out infinite alternate;
}
.scn-index-beaulieu-blouis .scroll-left {
  position: absolute; bottom: 20%; left: 15%; width: 50px; height: 12px;
  background: linear-gradient(180deg, #b89a6b 0%, #8a6a3a 100%);
  border-radius: 4px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: ib3-scroll 15s ease-in-out infinite;
}
.scn-index-beaulieu-blouis .scroll-right {
  position: absolute; bottom: 18%; right: 15%; width: 60px; height: 10px;
  background: linear-gradient(180deg, #b89a6b 0%, #8a6a3a 100%);
  border-radius: 4px;
  transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: ib3-scroll 15s ease-in-out infinite reverse;
}
.scn-index-beaulieu-blouis .inkwell {
  position: absolute; bottom: 22%; left: 45%; width: 16px; height: 18px;
  background: radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, #0d0704 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  animation: ib3-ink 10s ease-in-out infinite;
}
.scn-index-beaulieu-blouis .candle {
  position: absolute; bottom: 30%; left: 30%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #d4823a 0%, #6a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 25px 8px rgba(212,130,58,.5), 0 0 50px 15px rgba(212,130,58,.3);
  animation: ib3-candle 3s ease-in-out infinite;
}
.scn-index-beaulieu-blouis .map {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(135deg, #b89a6b 0%, #a08050 30%, #c0a070 60%, #8a6a3a 100%);
  border-radius: 4px;
  opacity: .4;
  box-shadow: inset 0 0 20px rgba(0,0,0,.4);
  animation: ib3-map 35s ease-in-out infinite;
}
@keyframes ib3-desk { 0%,100% { filter: brightness(.8) } 50% { filter: brightness(1) } }
@keyframes ib3-scroll { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(2px) } 100% { transform: rotate(-12deg) translateX(-1px) } }
@keyframes ib3-ink { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ib3-candle { 0%,100% { opacity: .7; box-shadow: 0 0 15px 4px rgba(212,130,58,.4), 0 0 30px 8px rgba(212,130,58,.2); } 50% { opacity: 1; box-shadow: 0 0 30px 8px rgba(212,130,58,.6), 0 0 60px 18px rgba(212,130,58,.4); } }
@keyframes ib3-map { 0%,100% { opacity: .3; transform: scale(.98) } 50% { opacity: .5; transform: scale(1.02) } }

/* index-cauchon-charles */
.scn-index-cauchon-charles {
  background:
    linear-gradient(180deg, #1a1008 0%, #2a1a0a 50%, #0d0704 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
  overflow: hidden;
}
.scn-index-cauchon-charles .throne {
  position: absolute; bottom: 20%; left: 50%; width: 70px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6), inset 0 -4px 8px rgba(0,0,0,.4);
  animation: dc4-throne 20s ease-in-out infinite alternate;
}
.scn-index-cauchon-charles .robe {
  position: absolute; bottom: 15%; left: 35%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5e2a1a 0%, #3a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(-15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: dc4-robe 15s ease-in-out infinite;
}
.scn-index-cauchon-charles .document-seal {
  position: absolute; bottom: 25%; left: 60%; width: 20px; height: 16px;
  background: radial-gradient(circle, #b89a6b 0%, #8a6a3a 70%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: dc4-seal 12s ease-in-out infinite;
}
.scn-index-cauchon-charles .candle {
  position: absolute; bottom: 35%; left: 25%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #d4823a 0%, #6a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 25px 8px rgba(212,130,58,.5), 0 0 50px 15px rgba(212,130,58,.3);
  animation: dc4-candle 3s ease-in-out infinite;
}
.scn-index-cauchon-charles .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-conic-gradient(#1a0f08 0% 25%, #2a1a0a 0% 50%) 0 0 / 40px 40px;
  opacity: .3;
  animation: dc4-tiles 40s linear infinite;
}
.scn-index-cauchon-charles .tapisserie {
  position: absolute; top: 5%; left: 5%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  opacity: .2;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: dc4-tapisserie 25s ease-in-out infinite;
}
@keyframes dc4-throne { 0%,100% { filter: brightness(.8); transform: translateX(-50%) scaleY(1) } 50% { filter: brightness(1); transform: translateX(-50%) scaleY(1.02) } }
@keyframes dc4-robe { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-2px) } }
@keyframes dc4-seal { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes dc4-candle { 0%,100% { opacity: .7; box-shadow: 0 0 15px 4px rgba(212,130,58,.4), 0 0 30px 8px rgba(212,130,58,.2); } 50% { opacity: 1; box-shadow: 0 0 30px 8px rgba(212,130,58,.6), 0 0 60px 18px rgba(212,130,58,.4); } }
@keyframes dc4-tiles { 0% { background-position: 0 0 } 100% { background-position: 40px 0 } }
@keyframes dc4-tapisserie { 0%,100% { opacity: .15; transform: scale(1) } 50% { opacity: .3; transform: scale(1.05) } }

.scn-item-armor-rebellion {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0f 50%, #0d0a0a 100%),
              radial-gradient(ellipse at 40% 30%, #3a2a2a 0%, transparent 60%);
}
.scn-item-armor-rebellion .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0f 100%);
}
.scn-item-armor-rebellion .window {
  position: absolute; top: 15%; left: 55%; width: 60px; height: 80px;
  background: radial-gradient(ellipse, #3a2a2a 0%, #1a0f0f 70%, transparent 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8); border-radius: 4px;
  animation: iar-window 5s ease-in-out infinite alternate;
}
.scn-item-armor-rebellion .armor-figure {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #6a6544 0%, #4a4533 50%, #2a2518 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
  animation: iar-stand 6s ease-in-out infinite;
}
.scn-item-armor-rebellion .sword {
  position: absolute; bottom: 20%; left: 45%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #8a7a50 0%, #5a4a30 100%);
  border-radius: 2px; transform: rotate(-15deg);
  animation: iar-sword 4s ease-in-out infinite;
}
.scn-item-armor-rebellion .candle {
  position: absolute; bottom: 30%; left: 65%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #c8a050 0%, #8a6a30 100%);
  border-radius: 2px; box-shadow: 0 0 20px #c8a050;
  animation: iar-candle 2s ease-in-out infinite;
}
.scn-item-armor-rebellion .shadow {
  position: absolute; bottom: 25%; left: 28%; width: 50px; height: 100px;
  background: rgba(0,0,0,0.4); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  filter: blur(8px); transform: translateX(20px);
  animation: iar-shadow 6s ease-in-out infinite;
}
.scn-item-armor-rebellion .light-beam {
  position: absolute; top: 15%; left: 55%; width: 60px; height: 200px;
  background: linear-gradient(180deg, rgba(200,160,80,0.15) 0%, transparent 100%);
  transform: rotate(-5deg); filter: blur(10px);
  animation: iar-beam 5s ease-in-out infinite alternate;
}
@keyframes iar-window {
  0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
  50% { opacity: 0.9; box-shadow: inset 0 0 40px rgba(0,0,0,0.6); }
  100% { opacity: 0.7; box-shadow: inset 0 0 30px rgba(0,0,0,0.7); }
}
@keyframes iar-stand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes iar-sword {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(-10deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes iar-candle {
  0% { opacity: 1; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.1); }
  100% { opacity: 1; transform: scaleY(1); }
}
@keyframes iar-shadow {
  0% { transform: translateX(20px) scale(1); }
  50% { transform: translateX(25px) scale(1.02); }
  100% { transform: translateX(20px) scale(1); }
}
@keyframes iar-beam {
  0% { opacity: 0.3; transform: rotate(-5deg); }
  50% { opacity: 0.7; transform: rotate(-3deg); }
  100% { opacity: 0.4; transform: rotate(-5deg); }
}

.scn-seventy-charges {
  background: linear-gradient(180deg, #2a2010 0%, #1a1508 50%, #0d0a04 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-seventy-charges .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2010 0%, #1a1508 100%);
}
.scn-seventy-charges .desk {
  position: absolute; bottom: 25%; left: 20%; width: 100px; height: 20px;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 100%);
  border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,0.5);
}
.scn-seventy-charges .scroll {
  position: absolute; bottom: 32%; left: 25%; width: 80px; height: 12px;
  background: linear-gradient(180deg, #b8a070 0%, #8a6a40 100%);
  border-radius: 2px; transform-origin: left center;
  animation: sch-scroll 10s ease-in-out infinite alternate;
}
.scn-seventy-charges .bishop {
  position: absolute; bottom: 15%; left: 40%; width: 45px; height: 110px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 15px rgba(0,0,0,0.6);
  animation: sch-bishop 7s ease-in-out infinite;
}
.scn-seventy-charges .jeanne {
  position: absolute; bottom: 25%; left: 55%; width: 35px; height: 90px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: sch-jeanne 8s ease-in-out infinite;
}
.scn-seventy-charges .cross {
  position: absolute; top: 20%; left: 50%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 1px; transform: translateX(-50%);
  animation: sch-cross 5s ease-in-out infinite;
}
.scn-seventy-charges .candle-a {
  position: absolute; bottom: 35%; left: 32%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #c8a050 0%, #8a6a30 100%);
  border-radius: 2px; box-shadow: 0 0 15px #c8a050;
  animation: sch-candle 2s ease-in-out infinite;
}
.scn-seventy-charges .candle-b {
  position: absolute; bottom: 35%; left: 62%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #c8a050 0%, #8a6a30 100%);
  border-radius: 2px; box-shadow: 0 0 15px #c8a050;
  animation: sch-candle 2s ease-in-out infinite reverse;
}
@keyframes sch-scroll {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(1); }
}
@keyframes sch-bishop {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sch-jeanne {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sch-cross {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes sch-candle {
  0% { opacity: 1; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(1.1); }
  100% { opacity: 1; transform: scaleY(1); }
}

.scn-saint-ouen-sermon {
  background: linear-gradient(180deg, #5a5a5a 0%, #4a4a4a 50%, #3a3a3a 100%),
              radial-gradient(ellipse at 50% 30%, #6a6a6a 0%, transparent 60%);
}
.scn-saint-ouen-sermon .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  animation: sos-sky 15s ease-in-out infinite alternate;
}
.scn-saint-ouen-sermon .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 20% 80% 0 0 / 30% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-saint-ouen-sermon .pulpit {
  position: absolute; bottom: 32%; left: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: sos-pulpit 8s ease-in-out infinite;
}
.scn-saint-ouen-sermon .preacher {
  position: absolute; bottom: 32%; left: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: sos-preacher 4s ease-in-out infinite;
}
.scn-saint-ouen-sermon .jeanne {
  position: absolute; bottom: 25%; left: 55%; width: 18px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: sos-jeanne 6s ease-in-out infinite;
}
.scn-saint-ouen-sermon .grave-a {
  position: absolute; bottom: 15%; left: 15%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.5);
  animation: sos-grave 12s ease-in-out infinite;
}
.scn-saint-ouen-sermon .grave-b {
  position: absolute; bottom: 18%; right: 20%; width: 35px; height: 18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.5);
  animation: sos-grave 12s ease-in-out infinite reverse;
}
@keyframes sos-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes sos-pulpit {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sos-preacher {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(3deg) translateY(-1px); }
  50% { transform: rotate(-2deg) translateY(0); }
  75% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes sos-jeanne {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sos-grave {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(1); }
}

.scn-abjuration {
  background: linear-gradient(180deg, #1a1a2a 0%, #12121a 50%, #080810 100%),
              radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, transparent 60%);
}
.scn-abjuration .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2a 0%, #12121a 100%);
}
.scn-abjuration .pulpit {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: abj-pulpit 7s ease-in-out infinite;
}
.scn-abjuration .bishop {
  position: absolute; bottom: 22%; left: 38%; width: 25px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: abj-bishop 8s ease-in-out infinite;
}
.scn-abjuration .jeanne {
  position: absolute; bottom: 25%; left: 55%; width: 18px; height: 60px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: abj-jeanne 5s ease-in-out infinite;
}
.scn-abjuration .soldier-a {
  position: absolute; bottom: 20%; left: 20%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: abj-soldier 6s ease-in-out infinite;
}
.scn-abjuration .soldier-b {
  position: absolute; bottom: 20%; right: 20%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: abj-soldier 6s ease-in-out infinite 1s;
}
.scn-abjuration .stone-a {
  position: absolute; bottom: 28%; left: 25%; width: 8px; height: 8px;
  background: #4a3a2a; border-radius: 50%;
  animation: abj-stone 4s ease-in-out infinite;
}
.scn-abjuration .stone-b {
  position: absolute; bottom: 26%; right: 30%; width: 6px; height: 6px;
  background: #4a3a2a; border-radius: 50%;
  animation: abj-stone 4s ease-in-out infinite 2s;
}
.scn-abjuration .document {
  position: absolute; bottom: 32%; left: 50%; width: 30px; height: 15px;
  background: linear-gradient(180deg, #b8a070 0%, #8a6a40 100%);
  border-radius: 2px; transform: translateX(-50%);
  animation: abj-doc 3s ease-in-out infinite alternate;
}
@keyframes abj-pulpit {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes abj-bishop {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes abj-jeanne {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes abj-soldier {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-3px) rotate(-5deg); }
  66% { transform: translateY(1px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes abj-stone {
  0% { transform: translate(0, 0); opacity: 1; }
  50% { transform: translate(10px, -10px); opacity: 0.6; }
  100% { transform: translate(0, 0); opacity: 1; }
}
@keyframes abj-doc {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.1); }
  100% { transform: translateX(-50%) scaleX(1); }
}

.scn-item-banner-saint-denys {
  background: linear-gradient(180deg, #b0c8e8 0%, #d4e0f0 40%, #f0e8c0 70%, #c8a070 100%),
              radial-gradient(ellipse at 50% 100%, #f0e8c0 0%, transparent 80%);
}
.scn-item-banner-saint-denys .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6a8ab0 0%, #b0c8e8 40%, #e0e8f0 100%);
  animation: isd-sky 12s ease-in-out infinite alternate;
}
.scn-item-banner-saint-denys .sun {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe680 0%, #f0c040 60%, transparent 100%);
  box-shadow: 0 0 40px 20px #f0c040, 0 0 80px 40px rgba(240,192,64,0.3);
  border-radius: 50%; animation: isd-sun 6s ease-in-out infinite alternate;
}
.scn-item-banner-saint-denys .gate {
  position: absolute; bottom: 30%; left: 25%; width: 120px; height: 160px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3e2a 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(2deg);
}
.scn-item-banner-saint-denys .banner {
  position: absolute; bottom: 40%; left: 22%; width: 14px; height: 100px;
  background: #6a4a2a; border-radius: 2px;
  animation: isd-banner 4s ease-in-out infinite;
}
.scn-item-banner-saint-denys .banner::after {
  content: ''; position: absolute; top: 0; left: 14px; width: 60px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 0 20% 40% 0; box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
}
.scn-item-banner-saint-denys .jeanne {
  position: absolute; bottom: 26%; left: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: isd-jeanne-walk 3s ease-in-out infinite;
}
.scn-item-banner-saint-denys .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a6a3a 0%, #5a4a2a 50%, #3a2a1a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-item-banner-saint-denys .soldier-a, .scn-item-banner-saint-denys .soldier-b {
  position: absolute; bottom: 26%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: isd-soldier 5s ease-in-out infinite;
}
.scn-item-banner-saint-denys .soldier-a { left: 45%; animation-delay: 0s; }
.scn-item-banner-saint-denys .soldier-b { left: 55%; animation-delay: -2.5s; }
@keyframes isd-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes isd-sun {
  0% { transform: scale(1) translateY(0); box-shadow: 0 0 40px 20px #f0c040; }
  100% { transform: scale(1.05) translateY(-4px); box-shadow: 0 0 60px 30px #f0c040; }
}
@keyframes isd-banner {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
}
@keyframes isd-jeanne-walk {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes isd-soldier {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
}

.scn-rival-prophetess {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a0a00 90%);
}
.scn-rival-prophetess .wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 30%, #2a1a0a 100%);
  animation: rp-wall 20s ease-in-out infinite alternate;
}
.scn-rival-prophetess .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  box-shadow: inset 0 15px 25px rgba(0,0,0,0.7);
}
.scn-rival-prophetess .bed {
  position: absolute; bottom: 8%; left: 20%; width: 70%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 15px rgba(0,0,0,0.8);
}
.scn-rival-prophetess .jeanne {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: perspective(150px) rotateX(10deg);
  animation: rp-figure 7s ease-in-out infinite;
}
.scn-rival-prophetess .catherine {
  position: absolute; bottom: 18%; right: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: perspective(150px) rotateX(10deg);
  animation: rp-figure 9s ease-in-out infinite reverse;
}
.scn-rival-prophetess .vision {
  position: absolute; top: 20%; left: 40%; width: 40px; height: 60px;
  background: radial-gradient(circle, rgba(255,255,230,0.6) 0%, rgba(255,255,200,0.2) 40%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: rp-vision 10s ease-in-out infinite;
}
.scn-rival-prophetess .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0d080 0%, #d0b060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px #d0b060, 0 0 24px 8px rgba(200,160,80,0.5);
}
@keyframes rp-wall { 0% { opacity: 0.6; } 100% { opacity: 0.9; } }
@keyframes rp-figure {
  0% { transform: perspective(150px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(150px) rotateX(8deg) translateY(-2px); }
  100% { transform: perspective(150px) rotateX(10deg) translateY(0); }
}
@keyframes rp-vision {
  0% { opacity: 0.1; transform: scale(0.8); }
  25% { opacity: 0.8; transform: scale(1.1); }
  50% { opacity: 0.3; transform: scale(0.9); }
  75% { opacity: 0.9; transform: scale(1.05); }
  100% { opacity: 0.1; transform: scale(0.8); }
}

.scn-hussite-letter-melun {
  background: linear-gradient(180deg, #1a1a0a 0%, #2a1a0a 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #0a0a00 100%);
}
.scn-hussite-letter-melun .wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1a0a 0%, #2a2a1a 50%, #1a1a0a 100%);
  animation: hlm-wall 18s ease-in-out infinite alternate;
}
.scn-hussite-letter-melun .desk {
  position: absolute; bottom: 15%; left: 30%; width: 50%; height: 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.8);
}
.scn-hussite-letter-melun .letter {
  position: absolute; bottom: 24%; left: 38%; width: 30%; height: 5%;
  background: #e8d8b0;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: hlm-letter 8s ease-in-out infinite;
}
.scn-hussite-letter-melun .jeanne {
  position: absolute; bottom: 10%; left: 25%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform: perspective(200px) rotateX(5deg);
  animation: hlm-jeanne 6s ease-in-out infinite;
}
.scn-hussite-letter-melun .candle {
  position: absolute; bottom: 18%; left: 55%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #f0d080 0%, #c8a060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 14px 4px #c8a060, 0 0 28px 10px rgba(200,160,96,0.4);
  animation: hlm-candleflicker 2s ease-in-out infinite alternate;
}
.scn-hussite-letter-melun .window {
  position: absolute; top: 15%; right: 10%; width: 80px; height: 60px;
  background: rgba(50,70,90,0.6);
  border: 4px solid #4a3a2a;
  border-radius: 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: hlm-window 15s ease-in-out infinite alternate;
}
.scn-hussite-letter-melun .pen {
  position: absolute; bottom: 24%; left: 32%; width: 2px; height: 18px;
  background: #3a2a1a;
  border-radius: 1px;
  transform: rotate(-15deg);
  animation: hlm-pen 4s ease-in-out infinite;
}
@keyframes hlm-wall { 0% { opacity: 0.5; } 100% { opacity: 0.8; } }
@keyframes hlm-letter {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes hlm-jeanne {
  0% { transform: perspective(200px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(4deg) translateY(-2px); }
  100% { transform: perspective(200px) rotateX(5deg) translateY(0); }
}
@keyframes hlm-candleflicker {
  0% { opacity: 0.8; box-shadow: 0 0 10px 3px #c8a060; }
  100% { opacity: 1; box-shadow: 0 0 20px 6px #c8a060; }
}
@keyframes hlm-window {
  0% { background: rgba(50,70,90,0.4); }
  100% { background: rgba(70,90,110,0.6); }
}
@keyframes hlm-pen {
  0%, 100% { transform: rotate(-15deg); }
  50% { transform: rotate(-10deg); }
}

.scn-lagny-stillborn-miracle {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 50%, #5a4a3a 100%),
              radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, #2a1a0a 80%);
}
.scn-lagny-stillborn-miracle .wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 30%, #3a2a1a 70%, #2a1a0a 100%);
  animation: lgn-wall 22s ease-in-out infinite alternate;
}
.scn-lagny-stillborn-miracle .altar {
  position: absolute; bottom: 12%; left: 25%; right: 25%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.8);
}
.scn-lagny-stillborn-miracle .jeanne {
  position: absolute; bottom: 18%; left: 28%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: perspective(200px) rotateX(15deg);
  animation: lgn-jeanne 10s ease-in-out infinite;
}
.scn-lagny-stillborn-miracle .baby {
  position: absolute; bottom: 28%; left: 40%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09080 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: lgn-baby 12s ease-in-out infinite;
}
.scn-lagny-stillborn-miracle .candle {
  position: absolute; bottom: 32%; left: 48%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #f0d080 0%, #c8a060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 6px #c8a060, 0 0 32px 12px rgba(200,160,96,0.5);
  animation: lgn-candle 3s ease-in-out infinite alternate;
}
.scn-lagny-stillborn-miracle .crucifix {
  position: absolute; bottom: 40%; left: 34%; width: 18px; height: 36px;
  background: #5a4a3a;
  border-radius: 2px;
  animation: lgn-cross 8s ease-in-out infinite;
}
.scn-lagny-stillborn-miracle .holy-water {
  position: absolute; bottom: 22%; right: 32%; width: 12px; height: 16px;
  background: rgba(180,200,220,0.5);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 0 8px 2px rgba(180,200,220,0.3);
  animation: lgn-water 6s ease-in-out infinite alternate;
}
@keyframes lgn-wall { 0% { opacity: 0.6; } 100% { opacity: 0.85; } }
@keyframes lgn-jeanne {
  0% { transform: perspective(200px) rotateX(15deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(13deg) translateY(-3px); }
  100% { transform: perspective(200px) rotateX(15deg) translateY(0); }
}
@keyframes lgn-baby {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes lgn-candle {
  0% { opacity: 0.75; box-shadow: 0 0 12px 4px #c8a060; }
  100% { opacity: 1; box-shadow: 0 0 24px 8px #c8a060; }
}
@keyframes lgn-cross {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
}
@keyframes lgn-water {
  0% { opacity: 0.4; transform: scaleY(1); }
  100% { opacity: 0.7; transform: scaleY(1.1); }
}

.scn-vaucouleurs-rejection {
  background: 
    linear-gradient(180deg, #1e1728 0%, #2a1f30 40%, #181220 100%),
    radial-gradient(ellipse at 60% 100%, #3d2840 0%, transparent 70%);
}
.scn-vaucouleurs-rejection .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2038 0%, #1a1228 100%);
  animation: vr-shimmer 8s ease-in-out infinite alternate;
}
.scn-vaucouleurs-rejection .wall-left {
  position: absolute; left: 0; top: 0; bottom: 0; width: 30%;
  background: linear-gradient(90deg, #120e18 0%, #1a1428 100%);
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.6);
}
.scn-vaucouleurs-rejection .window {
  position: absolute; top: 12%; right: 20%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, #2a3850 0%, #1a2030 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 30px #0a1020, 0 0 10px rgba(30,40,60,0.5);
  animation: vr-window 6s ease-in-out infinite;
}
.scn-vaucouleurs-rejection .table {
  position: absolute; bottom: 18%; left: 40%; width: 120px; height: 20px;
  background: linear-gradient(90deg, #3a2a18 0%, #5a4a28 50%, #3a2a18 100%);
  border-radius: 4px;
  box-shadow: 0 8px 12px rgba(0,0,0,0.6);
}
.scn-vaucouleurs-rejection .captain {
  position: absolute; bottom: 18%; left: 52%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #1a1220 0%, #0e0a14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: vr-captain 4s ease-in-out infinite;
}
.scn-vaucouleurs-rejection .jeanne {
  position: absolute; bottom: 18%; left: 34%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #2a2038 0%, #181228 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: vr-jeanne 3s ease-in-out infinite;
}
.scn-vaucouleurs-rejection .candle {
  position: absolute; bottom: 22%; left: 48%; width: 6px; height: 12px;
  background: radial-gradient(circle at 50% 0%, #f0a040 0%, #c07020 60%, #804010 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200,100,30,0.6), 0 0 40px 16px rgba(200,100,30,0.3);
  animation: vr-candle 2.5s ease-in-out infinite alternate;
}
@keyframes vr-shimmer {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes vr-window {
  0%, 100% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.05); opacity: 0.9; }
}
@keyframes vr-captain {
  0% { transform: rotate(-2deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-2px); }
  50% { transform: rotate(-1deg) translateY(0); }
  75% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes vr-jeanne {
  0%, 100% { transform: translateX(0) rotate(-1deg); }
  33% { transform: translateX(4px) rotate(1deg); }
  66% { transform: translateX(-2px) rotate(-2deg); }
}
@keyframes vr-candle {
  0% { box-shadow: 0 0 15px 5px rgba(200,100,30,0.5), 0 0 30px 10px rgba(200,100,30,0.2); transform: scaleY(1); }
  50% { box-shadow: 0 0 25px 10px rgba(240,160,60,0.7), 0 0 50px 20px rgba(240,160,60,0.3); transform: scaleY(1.1); }
  100% { box-shadow: 0 0 18px 6px rgba(200,100,30,0.55), 0 0 35px 12px rgba(200,100,30,0.25); transform: scaleY(0.95); }
}

.scn-item-sword-from-robert {
  background: 
    linear-gradient(180deg, #1a1424 0%, #241c30 40%, #140e20 100%),
    radial-gradient(ellipse at 30% 80%, #2a1e38 0%, transparent 70%);
}
.scn-item-sword-from-robert .bg-chamber {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1e1830 0%, #121020 100%);
  animation: is-chamber 10s ease-in-out infinite alternate;
}
.scn-item-sword-from-robert .horse-shadow {
  position: absolute; bottom: 15%; right: 20%; width: 130px; height: 100px;
  background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  transform: scaleX(-1);
  animation: is-horse 6s ease-in-out infinite;
}
.scn-item-sword-from-robert .duke {
  position: absolute; bottom: 15%; left: 30%; width: 44px; height: 100px;
  background: linear-gradient(180deg, #1c1628 0%, #100c18 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: is-duke 4s ease-in-out infinite;
}
.scn-item-sword-from-robert .jeanne-sword {
  position: absolute; bottom: 15%; left: 16%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #221a30 0%, #140e20 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: is-jeanne 3.5s ease-in-out infinite;
}
.scn-item-sword-from-robert .sword-blade {
  position: absolute; bottom: 40%; left: 28%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #a0a8b0 0%, #707880 50%, #505860 100%);
  box-shadow: 0 0 8px 2px rgba(160,168,176,0.3);
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: is-sword 5s ease-in-out infinite;
}
.scn-item-sword-from-robert .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a2030 0%, #1a1220 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-item-sword-from-robert .small-window {
  position: absolute; top: 10%; right: 10%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, #2a3858 0%, #1a2038 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: inset 0 0 20px #0a1220, 0 0 8px rgba(30,40,60,0.4);
  animation: is-window 8s ease-in-out infinite alternate;
}
@keyframes is-chamber {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes is-horse {
  0%, 100% { transform: scaleX(-1) translateY(0) rotate(-1deg); }
  50% { transform: scaleX(-1) translateY(-3px) rotate(1deg); }
}
@keyframes is-duke {
  0% { transform: rotate(0) translateY(0); }
  25% { transform: rotate(-2deg) translateY(-1px); }
  50% { transform: rotate(1deg) translateY(0); }
  75% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(0) translateY(0); }
}
@keyframes is-jeanne {
  0%, 100% { transform: translateX(0) rotate(0); }
  33% { transform: translateX(3px) rotate(-2deg); }
  66% { transform: translateX(-1px) rotate(1deg); }
}
@keyframes is-sword {
  0%, 100% { transform: rotate(20deg) scaleX(1); }
  50% { transform: rotate(25deg) scaleX(1.05); }
}
@keyframes is-window {
  0% { opacity: 0.6; box-shadow: inset 0 0 15px #0a1020; }
  50% { opacity: 0.9; box-shadow: inset 0 0 25px #2a3858; }
  100% { opacity: 0.7; box-shadow: inset 0 0 18px #0a1020; }
}

.scn-journey-to-chinon {
  background: 
    linear-gradient(180deg, #102028 0%, #1a2a38 30%, #0a1620 100%),
    radial-gradient(ellipse at 50% 0%, #2a3a50 0%, transparent 80%);
}
.scn-journey-to-chinon .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a1220 0%, #13202e 50%, #1a2a3a 100%);
  animation: jc-sky 12s ease-in-out infinite alternate;
}
.scn-journey-to-chinon .moon {
  position: absolute; top: 8%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #d0d8e0 0%, #a0a8b8 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(160,168,184,0.4), 0 0 80px 30px rgba(160,168,184,0.15);
  animation: jc-moon 20s linear infinite;
}
.scn-journey-to-chinon .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2a30 0%, #0e1a22 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: jc-hills 15s ease-in-out infinite alternate;
}
.scn-journey-to-chinon .road {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(90deg, #1a2a28 0%, #283838 50%, #1a2a28 100%);
  border-radius: 40% 40% 0 0;
  transform: perspective(200px) rotateX(5deg);
  animation: jc-road 8s ease-in-out infinite;
}
.scn-journey-to-chinon .rider-a {
  position: absolute; bottom: 24%; left: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #0e1a20 0%, #060e14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 4px rgba(0,0,0,0.8);
  animation: jc-rider 5s ease-in-out infinite;
}
.scn-journey-to-chinon .rider-b {
  position: absolute; bottom: 24%; left: 35%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #0e1a20 0%, #060e14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 4px rgba(0,0,0,0.8);
  animation: jc-rider 5.8s ease-in-out infinite 0.5s;
}
.scn-journey-to-chinon .rider-c {
  position: absolute; bottom: 24%; left: 50%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #0e1a20 0%, #060e14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 4px rgba(0,0,0,0.8);
  animation: jc-rider 6.5s ease-in-out infinite 1s;
}
@keyframes jc-sky {
  0% { background: linear-gradient(180deg, #0a1220 0%, #13202e 50%, #1a2a3a 100%); }
  50% { background: linear-gradient(180deg, #0c1422 0%, #152230 50%, #1c2c3c 100%); }
  100% { background: linear-gradient(180deg, #0a1220 0%, #13202e 50%, #1a2a3a 100%); }
}
@keyframes jc-moon {
  0% { transform: translateX(0); }
  50% { transform: translateX(-10px); }
  100% { transform: translateX(0); }
}
@keyframes jc-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes jc-road {
  0%, 100% { transform: perspective(200px) rotateX(5deg) scaleY(1); }
  50% { transform: perspective(200px) rotateX(5deg) scaleY(0.98); }
}
@keyframes jc-rider {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  33% { transform: translateY(-2px) rotate(1deg); }
  66% { transform: translateY(-1px) rotate(-2deg); }
}

.scn-king-doubt-prophecy {
  background: 
    linear-gradient(180deg, #181428 0%, #221a30 40%, #100c1c 100%),
    radial-gradient(ellipse at 50% 80%, #2a1e3a 0%, transparent 70%);
}
.scn-king-doubt-prophecy .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1e1830 0%, #121020 100%);
  animation: kd-hall 12s ease-in-out infinite alternate;
}
.scn-king-doubt-prophecy .arch-left {
  position: absolute; left: 0; top: 0; bottom: 0; width: 15%;
  background: linear-gradient(90deg, #1a1428 0%, #2a2038 100%);
  border-radius: 0 40% 0 0 / 0 30% 0 0;
  box-shadow: inset -6px 0 20px rgba(0,0,0,0.5);
  animation: kd-arch 8s ease-in-out infinite alternate;
}
.scn-king-doubt-prophecy .arch-right {
  position: absolute; right: 0; top: 0; bottom: 0; width: 15%;
  background: linear-gradient(270deg, #1a1428 0%, #2a2038 100%);
  border-radius: 40% 0 0 0 / 30% 0 0 0;
  box-shadow: inset 6px 0 20px rgba(0,0,0,0.5);
  animation: kd-arch 9s ease-in-out infinite alternate 1s;
}
.scn-king-doubt-prophecy .king-shape {
  position: absolute; bottom: 10%; left: 50%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a1428 0%, #0e0a18 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: kd-king 6s ease-in-out infinite;
}
.scn-king-doubt-prophecy .jeanne-prays {
  position: absolute; bottom: 10%; left: 35%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #221a30 0%, #140e20 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: kd-jeanne 4s ease-in-out infinite;
}
.scn-king-doubt-prophecy .altar-candle {
  position: absolute; bottom: 20%; left: 45%; width: 8px; height: 20px;
  background: radial-gradient(circle at 50% 0%, #f0a040 0%, #c07020 60%, #804010 100%);
  border-radius: 50%;
  box-shadow: 0 0 25px 10px rgba(200,100,30,0.5), 0 0 50px 20px rgba(200,100,30,0.2);
  animation: kd-candle 2.8s ease-in-out infinite alternate;
}
.scn-king-doubt-prophecy .stain-glass {
  position: absolute; top: 8%; left: 50%; width: 60px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #3a2a50 0%, #1a1230 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 30px #1a1230, 0 0 15px rgba(30,20,50,0.3);
  animation: kd-stain 10s ease-in-out infinite alternate;
}
@keyframes kd-hall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes kd-arch {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes kd-king {
  0% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
  25% { transform: translateX(-50%) rotate(1deg) translateY(-2px); }
  50% { transform: translateX(-50%) rotate(0) translateY(0); }
  75% { transform: translateX(-50%) rotate(-2deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
}
@keyframes kd-jeanne {
  0%, 100% { transform: translateX(0) rotate(-2deg); }
  33% { transform: translateX(3px) rotate(1deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes kd-candle {
  0% { box-shadow: 0 0 20px 8px rgba(200,100,30,0.4), 0 0 40px 16px rgba(200,100,30,0.15); transform: scaleY(0.9); }
  50% { box-shadow: 0 0 30px 12px rgba(240,160,60,0.6), 0 0 60px 24px rgba(240,160,60,0.25); transform: scaleY(1.1); }
  100% { box-shadow: 0 0 22px 9px rgba(200,100,30,0.45), 0 0 45px 18px rgba(200,100,30,0.18); transform: scaleY(0.95); }
}
@keyframes kd-stain {
  0% { opacity: 0.6; box-shadow: inset 0 0 20px #1a1230; }
  50% { opacity: 0.9; box-shadow: inset 0 0 30px #3a2a50; }
  100% { opacity: 0.7; box-shadow: inset 0 0 22px #1a1230; }
}

/* index-chroniclers-corny */
.scn-index-chroniclers-corny {
  background: linear-gradient(180deg, #34251a 0%, #1e1410 100%), radial-gradient(circle at 50% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-index-chroniclers-corny .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1f14 0%, #1a0f0a 100%);
  animation: ic-bg 12s ease-in-out infinite alternate;
}
.scn-index-chroniclers-corny .desk {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f14 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
}
.scn-index-chroniclers-corny .candle-body {
  position: absolute; bottom: 25%; left: 30%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.5);
}
.scn-index-chroniclers-corny .candle-flame {
  position: absolute; bottom: 61%; left: 30%; width: 10px; height: 18px;
  margin-left: -1px;
  background: radial-gradient(circle, #ffd070 0%, #ffa030 40%, transparent 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px #ffa030, 0 0 40px 12px #ff8030;
  animation: ic-flame 2s ease-in-out infinite alternate;
}
.scn-index-chroniclers-corny .quill {
  position: absolute; bottom: 23%; left: 40%; width: 2px; height: 60px;
  background: linear-gradient(180deg, #e8d0b0 0%, #c0a080 50%, #806050 100%);
  transform: rotate(-20deg);
  transform-origin: bottom center;
  border-radius: 0 0 50% 50%;
  animation: ic-quill 6s ease-in-out infinite;
}
.scn-index-chroniclers-corny .inkwell {
  position: absolute; bottom: 24%; left: 50%; width: 16px; height: 14px;
  background: radial-gradient(circle at 50% 40%, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.7);
}
.scn-index-chroniclers-corny .butterfly {
  position: absolute; top: 35%; left: 60%; width: 20px; height: 14px;
  background: radial-gradient(circle at 50% 50%, #d0a080 0%, #b08060 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: -6px 0 0 0 #c09070, 6px 0 0 0 #c09070;
  animation: ic-butterfly 8s ease-in-out infinite;
}
.scn-index-chroniclers-corny .shadow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 60%, transparent 0%, rgba(0,0,0,0.25) 80%);
  pointer-events: none;
}
@keyframes ic-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ic-flame { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9; } 50% { transform: scaleY(1.2) scaleX(0.9); opacity: 1; } 100% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.85; } }
@keyframes ic-quill { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes ic-butterfly { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(20px, -10px) rotate(10deg); } 50% { transform: translate(40px, -5px) rotate(-5deg); } 75% { transform: translate(60px, -15px) rotate(5deg); } 100% { transform: translate(80px, 0) rotate(0deg); } }

/* index-domremy-fastolf */
.scn-index-domremy-fastolf {
  background: linear-gradient(180deg, #3a2a1e 0%, #1e1410 100%), radial-gradient(circle at 50% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-index-domremy-fastolf .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1f14 0%, #1a0f0a 100%);
  animation: id-bg 15s ease-in-out infinite alternate;
}
.scn-index-domremy-fastolf .table {
  position: absolute; bottom: 5%; left: 8%; right: 8%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f14 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
}
.scn-index-domremy-fastolf .scroll-left {
  position: absolute; bottom: 20%; left: 20%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 0 60% 60% 0 / 0 40% 40% 0;
  transform: rotate(-2deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.4);
  animation: id-scroll 20s ease-in-out infinite;
}
.scn-index-domremy-fastolf .scroll-right {
  position: absolute; bottom: 20%; right: 20%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #b09880 0%, #907060 100%);
  border-radius: 60% 0 0 60% / 40% 0 0 40%;
  transform: rotate(2deg);
  box-shadow: -2px 2px 8px rgba(0,0,0,0.4);
  animation: id-scroll 20s ease-in-out infinite reverse;
}
.scn-index-domremy-fastolf .seal {
  position: absolute; bottom: 28%; left: 48%; width: 18px; height: 18px;
  background: radial-gradient(circle at 40% 40%, #b8552a 0%, #8a3018 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px #6a2010;
  transform: translateX(-50%);
  animation: id-seal 8s ease-in-out infinite alternate;
}
.scn-index-domremy-fastolf .shield {
  position: absolute; bottom: 22%; left: 70%; width: 26px; height: 30px;
  background: linear-gradient(180deg, #9a7050 0%, #6a4030 100%);
  clip-path: polygon(50% 0%, 100% 25%, 100% 70%, 50% 100%, 0% 70%, 0% 25%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: id-shield 10s ease-in-out infinite alternate;
}
.scn-index-domremy-fastolf .candle-body {
  position: absolute; bottom: 22%; left: 35%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.5);
}
.scn-index-domremy-fastolf .candle-flame {
  position: absolute; bottom: 58%; left: 35%; width: 10px; height: 18px;
  margin-left: -1px;
  background: radial-gradient(circle, #ffd070 0%, #ffa030 40%, transparent 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px #ffa030, 0 0 40px 12px #ff8030;
  animation: id-flame 2.5s ease-in-out infinite alternate;
}
@keyframes id-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes id-scroll { 0% { transform: rotate(-2deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(2deg); } }
@keyframes id-seal { 0% { opacity: 0.7; transform: translateX(-50%) scale(0.95); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05); } 100% { opacity: 0.8; transform: translateX(-50%) scale(1); } }
@keyframes id-shield { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes id-flame { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9; } 50% { transform: scaleY(1.3) scaleX(0.85); opacity: 1; } 100% { transform: scaleY(0.9) scaleX(1.15); opacity: 0.8; } }

/* index-friar-richard */
.scn-index-friar-richard {
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%), radial-gradient(circle at 50% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-index-friar-richard .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1f14 0%, #1a0f0a 100%);
  animation: if-bg 14s ease-in-out infinite alternate;
}
.scn-index-friar-richard .pulpit {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-index-friar-richard .book {
  position: absolute; bottom: 35%; left: 50%; width: 50px; height: 34px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: if-book 10s ease-in-out infinite alternate;
}
.scn-index-friar-richard .cross {
  position: absolute; bottom: 54%; left: 50%; width: 4px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b09070 0%, #806050 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(180,140,100,0.3);
  animation: if-cross 6s ease-in-out infinite alternate;
}
.scn-index-friar-richard .friar-silhouette {
  position: absolute; bottom: 20%; left: 60%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: if-friar 8s ease-in-out infinite;
}
.scn-index-friar-richard .candle-body {
  position: absolute; bottom: 22%; left: 35%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.5);
}
.scn-index-friar-richard .candle-flame {
  position: absolute; bottom: 58%; left: 35%; width: 10px; height: 18px;
  margin-left: -1px;
  background: radial-gradient(circle, #ffd070 0%, #ffa030 40%, transparent 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px #ffa030, 0 0 40px 12px #ff8030;
  animation: if-flame 2.2s ease-in-out infinite alternate;
}
.scn-index-friar-richard .shadow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 55%, transparent 0%, rgba(0,0,0,0.3) 80%);
  pointer-events: none;
}
@keyframes if-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes if-book { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes if-cross { 0% { opacity: 0.8; transform: translateX(-50%) scaleY(1); } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.05); } 100% { opacity: 0.9; transform: translateX(-50%) scaleY(0.95); } }
@keyframes if-friar { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes if-flame { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9; } 50% { transform: scaleY(1.25) scaleX(0.9); opacity: 1; } 100% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.85; } }

/* index-glasdale-henry */
.scn-index-glasdale-henry {
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%), radial-gradient(circle at 50% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-index-glasdale-henry .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1f14 0%, #1a0f0a 100%);
  animation: ig-bg 16s ease-in-out infinite alternate;
}
.scn-index-glasdale-henry .table {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f14 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
}
.scn-index-glasdale-henry .shield {
  position: absolute; bottom: 22%; left: 30%; width: 32px; height: 38px;
  background: linear-gradient(180deg, #a07050 0%, #7a4a30 100%);
  clip-path: polygon(50% 0%, 100% 25%, 100% 70%, 50% 100%, 0% 70%, 0% 25%);
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: ig-shield 8s ease-in-out infinite alternate;
}
.scn-index-glasdale-henry .banner {
  position: absolute; bottom: 30%; left: 60%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #c8a080 0%, #a08060 100%);
  border-radius: 2px 8px 8px 2px;
  transform-origin: top left;
  animation: ig-banner 12s ease-in-out infinite;
}
.scn-index-glasdale-henry .broken-lance {
  position: absolute; bottom: 18%; left: 45%; width: 3px; height: 70px;
  background: linear-gradient(180deg, #b09880 0%, #8a7050 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: ig-lance 7s ease-in-out infinite alternate;
}
.scn-index-glasdale-henry .candle-body {
  position: absolute; bottom: 22%; left: 25%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.5);
}
.scn-index-glasdale-henry .candle-flame {
  position: absolute; bottom: 58%; left: 25%; width: 10px; height: 18px;
  margin-left: -1px;
  background: radial-gradient(circle, #ffd070 0%, #ffa030 40%, transparent 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px #ffa030, 0 0 40px 12px #ff8030;
  animation: ig-flame 2.8s ease-in-out infinite alternate;
}
.scn-index-glasdale-henry .helmet {
  position: absolute; bottom: 24%; left: 18%; width: 22px; height: 24px;
  background: linear-gradient(180deg, #7a6050 0%, #5a4030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ig-helmet 9s ease-in-out infinite alternate;
}
@keyframes ig-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ig-shield { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes ig-banner { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes ig-lance { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes ig-flame { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9; } 50% { transform: scaleY(1.3) scaleX(0.9); opacity: 1; } 100% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.8; } }
@keyframes ig-helmet { 0% { opacity: 0.8; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-1px); } 100% { opacity: 0.85; transform: translateY(0); } }

.scn-index-paris-patay { background: linear-gradient(180deg, #1c1820 0%, #2e1e1a 50%, #1a1412 100%), radial-gradient(ellipse at 50% 30%, #2a1e18 0%, transparent 70%); }
.scn-index-paris-patay .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1420 0%, #2a1e1a 100%); opacity:0.8; animation: sipp-bg 20s ease-in-out infinite alternate; }
.scn-index-paris-patay .wall { position:absolute; inset:10% 5% 15% 5%; background: linear-gradient(135deg, #3a2a1a 0%, #2a1e12 50%, #1a1410 100%); border-radius: 8px; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); }
.scn-index-paris-patay .window { position:absolute; top:8%; left:25%; width:40%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border: 4px solid #5a4a3a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: sipp-window 12s ease-in-out infinite alternate; }
.scn-index-paris-patay .table { position:absolute; bottom:15%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.5); }
.scn-index-paris-patay .book { position:absolute; bottom:23%; left:35%; width:12%; height:10%; background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,0.4); animation: sipp-book 8s ease-in-out infinite; }
.scn-index-paris-patay .candle { position:absolute; bottom:28%; left:55%; width:3%; height:15%; background: linear-gradient(180deg, #b08050 0%, #8a6030 100%); border-radius: 2px; box-shadow: 0 0 10px rgba(200,150,80,0.5); }
.scn-index-paris-patay .flame { position:absolute; bottom:40%; left:55%; width:2%; height:8%; background: radial-gradient(circle, #ffd080 0%, #ffa030 50%, transparent 100%); border-radius: 50%; animation: sipp-flame 2s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-index-paris-patay .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(10,8,5,0.8) 100%); }
@keyframes sipp-bg { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes sipp-window { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes sipp-book { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sipp-flame { 0% { transform: scaleY(1) scaleX(1) translateY(0) } 50% { transform: scaleY(1.2) scaleX(0.8) translateY(-2px) } 100% { transform: scaleY(0.9) scaleX(1.1) translateY(0) } }

.scn-index-saintrailles-baudricourt { background: linear-gradient(180deg, #1a1820 0%, #2e1e1a 50%, #141012 100%), radial-gradient(ellipse at 50% 50%, #2a1e18 0%, transparent 70%); }
.scn-index-saintrailles-baudricourt .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1420 0%, #2a1e1a 100%); opacity:0.8; animation: siba-bg 20s ease-in-out infinite alternate; }
.scn-index-saintrailles-baudricourt .pillar { position:absolute; top:5%; left:15%; width:5%; height:80%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 4px; box-shadow: 0 0 20px rgba(0,0,0,0.5); }
.scn-index-saintrailles-baudricourt .altar { position:absolute; bottom:20%; left:30%; width:40%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.6); }
.scn-index-saintrailles-baudricourt .chalice { position:absolute; bottom:32%; left:45%; width:6%; height:8%; background: radial-gradient(circle, #b08050 0%, #8a6030 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 10px rgba(200,150,80,0.4); animation: siba-chalice 10s ease-in-out infinite; }
.scn-index-saintrailles-baudricourt .candle { position:absolute; bottom:40%; left:28%; width:2%; height:12%; background: linear-gradient(180deg, #b08050 0%, #8a6030 100%); border-radius: 2px; box-shadow: 0 0 8px rgba(200,150,80,0.3); }
.scn-index-saintrailles-baudricourt .flame { position:absolute; bottom:50%; left:28%; width:2%; height:6%; background: radial-gradient(circle, #ffd080 0%, #ffa030 50%, transparent 100%); border-radius: 50%; animation: siba-flame 2.5s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-index-saintrailles-baudricourt .figure { position:absolute; bottom:22%; left:40%; width:8%; height:30%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1410 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(5deg); animation: siba-figure 15s ease-in-out infinite; }
@keyframes siba-bg { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes siba-chalice { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes siba-flame { 0% { transform: scaleY(1) scaleX(1) translateY(0) } 50% { transform: scaleY(1.3) scaleX(0.7) translateY(-3px) } 100% { transform: scaleY(0.9) scaleX(1.1) translateY(0) } }
@keyframes siba-figure { 0% { transform: translateX(0) rotate(5deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(5deg) } }

.scn-index-st-loup-salisbury { background: linear-gradient(180deg, #1a1820 0%, #2e1e1a 50%, #141012 100%), radial-gradient(ellipse at 50% 40%, #2a1e18 0%, transparent 70%); }
.scn-index-st-loup-salisbury .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1420 0%, #2a1e1a 100%); opacity:0.8; animation: sisl-bg 25s ease-in-out infinite alternate; }
.scn-index-st-loup-salisbury .arch { position:absolute; top:5%; left:20%; width:60%; height:40%; border: 6px solid #4a3a2a; border-radius: 50% 50% 0 0 / 60% 60% 0 0; background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,0.5); }
.scn-index-st-loup-salisbury .column-left { position:absolute; top:5%; left:20%; width:4%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 4px; }
.scn-index-st-loup-salisbury .column-right { position:absolute; top:5%; right:20%; width:4%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 4px; }
.scn-index-st-loup-salisbury .window { position:absolute; top:15%; left:35%; width:30%; height:25%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border: 3px solid #5a4a3a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.7); animation: sisl-window 18s ease-in-out infinite alternate; }
.scn-index-st-loup-salisbury .candle { position:absolute; bottom:30%; left:48%; width:2%; height:10%; background: linear-gradient(180deg, #b08050 0%, #8a6030 100%); border-radius: 2px; box-shadow: 0 0 8px rgba(200,150,80,0.3); }
.scn-index-st-loup-salisbury .flame { position:absolute; bottom:38%; left:48%; width:2%; height:6%; background: radial-gradient(circle, #ffd080 0%, #ffa030 50%, transparent 100%); border-radius: 50%; animation: sisl-flame 2.2s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-index-st-loup-salisbury .pew { position:absolute; bottom:15%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: sisl-pew 10s ease-in-out infinite; }
@keyframes sisl-bg { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes sisl-window { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes sisl-flame { 0% { transform: scaleY(1) scaleX(1) translateY(0) } 50% { transform: scaleY(1.2) scaleX(0.8) translateY(-2px) } 100% { transform: scaleY(0.9) scaleX(1.1) translateY(0) } }
@keyframes sisl-pew { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

.scn-index-suffolk-talbot { background: linear-gradient(180deg, #1a1820 0%, #2e1e1a 50%, #141012 100%), radial-gradient(ellipse at 50% 20%, #2a1e18 0%, transparent 70%); }
.scn-index-suffolk-talbot .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1420 0%, #2a1e1a 100%); opacity:0.8; animation: sist-bg 20s ease-in-out infinite alternate; }
.scn-index-suffolk-talbot .table { position:absolute; bottom:15%; left:15%; width:70%; height:10%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
.scn-index-suffolk-talbot .map { position:absolute; bottom:22%; left:25%; width:30%; height:15%; background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%); border: 2px solid #4a2a1a; border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); animation: sist-map 15s ease-in-out infinite; }
.scn-index-suffolk-talbot .piece { position:absolute; bottom:28%; left:60%; width:4%; height:6%; background: radial-gradient(circle, #b08050 0%, #8a6030 100%); border-radius: 50%; box-shadow: 0 0 8px rgba(200,150,80,0.4); animation: sist-piece 12s ease-in-out infinite; }
.scn-index-suffolk-talbot .candle { position:absolute; bottom:35%; left:35%; width:2%; height:12%; background: linear-gradient(180deg, #b08050 0%, #8a6030 100%); border-radius: 2px; box-shadow: 0 0 8px rgba(200,150,80,0.3); }
.scn-index-suffolk-talbot .flame { position:absolute; bottom:45%; left:35%; width:2%; height:6%; background: radial-gradient(circle, #ffd080 0%, #ffa030 50%, transparent 100%); border-radius: 50%; animation: sist-flame 1.8s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-index-suffolk-talbot .board { position:absolute; bottom:25%; left:20%; width:20%; height:10%; background: repeating-linear-gradient(45deg, #4a3a2a 0px, #4a3a2a 4px, #2a1e12 4px, #2a1e12 8px); border: 2px solid #5a4a3a; border-radius: 4px; }
@keyframes sist-bg { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes sist-map { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sist-piece { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes sist-flame { 0% { transform: scaleY(1) scaleX(1) translateY(0) } 50% { transform: scaleY(1.3) scaleX(0.7) translateY(-3px) } 100% { transform: scaleY(0.9) scaleX(1.1) translateY(0) } }

.scn-index-early-life { background: linear-gradient(180deg, #12101f 0%, #1a152a 40%, #2a2035 70%, #1a1020 100%), radial-gradient(ellipse at 30% 20%, #3a2a4a 0%, transparent 60%); }
.scn-index-early-life .iel-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1520 0%, #12101a 100%); }
.scn-index-early-life .iel-window-frame { position:absolute; top:15%; left:35%; width:30%; height:50%; background: #2a1a15; border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; box-shadow: inset 0 0 20px #0a0a0a; }
.scn-index-early-life .iel-window-light { position:absolute; top:18%; left:38%; width:24%; height:45%; background: linear-gradient(180deg, rgba(180,200,230,.8) 0%, rgba(100,120,180,.3) 100%); border-radius: 40% 40% 10% 10% / 50% 50% 10% 10%; filter: blur(2px); animation: iel-light-pulse 6s ease-in-out infinite alternate; }
.scn-index-early-life .iel-figure { position:absolute; bottom:25%; left:50%; width:20px; height:45px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: iel-figure-sway 4s ease-in-out infinite; }
.scn-index-early-life .iel-halo { position:absolute; top:12%; left:46%; width:8%; height:20%; background: radial-gradient(circle, rgba(200,220,255,.6) 0%, rgba(200,220,255,.1) 60%, transparent 100%); filter: blur(8px); animation: iel-halo-glow 4s ease-in-out infinite alternate; }
.scn-index-early-life .iel-shadow { position:absolute; bottom:22%; left:45%; width:10%; height:5%; background: radial-gradient(ellipse, #000 0%, transparent 70%); opacity:.5; animation: iel-shadow-sway 4s ease-in-out infinite; }
@keyframes iel-light-pulse { 0% { opacity:.3; filter: blur(3px); } 50% { opacity:.8; filter: blur(1px); } 100% { opacity:.4; filter: blur(4px); } }
@keyframes iel-figure-sway { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes iel-halo-glow { 0% { opacity:.4; transform: scale(.9); } 100% { opacity:1; transform: scale(1.1); } }
@keyframes iel-shadow-sway { 0% { transform: scale(1); opacity:.4; } 50% { transform: scale(1.1); opacity:.6; } 100% { transform: scale(1); opacity:.4; } }

.scn-index-capture-rehabilitation { background: linear-gradient(180deg, #14141e 0%, #1e1e2a 40%, #2a2a3a 70%, #1a1a2a 100%), radial-gradient(circle at 50% 80%, #3a3a4a 0%, transparent 70%); }
.scn-index-capture-rehabilitation .icr-wall { position:absolute; inset:0; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%); }
.scn-index-capture-rehabilitation .icr-bars { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent 0px, transparent 30px, #2a2a3a 30px, #3a3a4a 32px); animation: icr-bar-shadow 8s ease-in-out infinite; }
.scn-index-capture-rehabilitation .icr-flame-glow { position:absolute; bottom:20%; left:50%; width:30%; height:40%; transform: translateX(-50%); background: radial-gradient(circle, rgba(200,100,30,.4) 0%, transparent 70%); animation: icr-glow-pulse 3s ease-in-out infinite alternate; }
.scn-index-capture-rehabilitation .icr-flame { position:absolute; bottom:22%; left:50%; width:12px; height:30px; transform: translateX(-50%); background: radial-gradient(circle at 50% 100%, #ffa040 0%, #d06020 40%, #602010 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 0 20px 10px rgba(200,100,30,.5); animation: icr-flame-flicker .5s ease-in-out infinite alternate; }
.scn-index-capture-rehabilitation .icr-chain { position:absolute; top:30%; left:20%; width:60%; height:4px; background: #4a3a2a; border-radius: 2px; box-shadow: 0 2px 4px #000; animation: icr-chain-sway 6s ease-in-out infinite; }
.scn-index-capture-rehabilitation .icr-door { position:absolute; bottom:0; right:0; width:40%; height:90%; background: linear-gradient(90deg, #2a1a15 0%, #3a2a1a 50%, #2a1a15 100%); border-radius: 10% 0 0 0; box-shadow: -10px 0 20px rgba(0,0,0,.5); }
@keyframes icr-bar-shadow { 0%,100% { opacity:.8; } 50% { opacity:1; } }
@keyframes icr-glow-pulse { 0% { opacity:.5; transform: translateX(-50%) scale(.9); } 100% { opacity:1; transform: translateX(-50%) scale(1.1); } }
@keyframes icr-flame-flicker { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); opacity:.8; } 50% { transform: translateX(-50%) scaleY(1.1) rotate(0deg); opacity:1; } 100% { transform: translateX(-50%) scaleY(.95) rotate(2deg); opacity:.9; } }
@keyframes icr-chain-sway { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }

.scn-index-loiseleur-merlin { background: linear-gradient(180deg, #1a1510 0%, #2a2015 50%, #1a1510 100%), radial-gradient(circle at 50% 50%, #3a2a1a 0%, transparent 80%); }
.scn-index-loiseleur-merlin .ilm-desk { position:absolute; bottom:0; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -10px 20px rgba(0,0,0,.5); }
.scn-index-loiseleur-merlin .ilm-book-left { position:absolute; bottom:15%; left:30%; width:25%; height:20%; background: linear-gradient(180deg, #d4c8a0 0%, #b8a880 100%); border-radius: 0 10% 10% 0; transform: skewY(5deg); box-shadow: -4px 4px 10px #000; animation: ilm-page-turn 12s ease-in-out infinite; }
.scn-index-loiseleur-merlin .ilm-book-right { position:absolute; bottom:15%; right:30%; width:25%; height:20%; background: linear-gradient(180deg, #e0d4b0 0%, #c8b890 100%); border-radius: 10% 0 0 10%; transform: skewY(-5deg); box-shadow: 4px 4px 10px #000; animation: ilm-page-turn 12s ease-in-out infinite reverse; }
.scn-index-loiseleur-merlin .ilm-quill { position:absolute; bottom:25%; left:50%; width:2px; height:40px; background: #4a3a2a; transform-origin: bottom center; transform: translateX(-50%) rotate(15deg); animation: ilm-quill-scratch 3s ease-in-out infinite; }
.scn-index-loiseleur-merlin .ilm-ink { position:absolute; bottom:22%; left:48%; width:8px; height:8px; background: #1a0a0a; border-radius: 50%; box-shadow: 0 0 4px #000; }
.scn-index-loiseleur-merlin .ilm-shadow-1 { position:absolute; top:10%; left:20%; width:30%; height:40%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); filter: blur(8px); animation: ilm-shadow-drift 20s linear infinite; }
.scn-index-loiseleur-merlin .ilm-shadow-2 { position:absolute; top:5%; right:15%; width:25%; height:50%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); filter: blur(10px); animation: ilm-shadow-drift 25s linear infinite reverse; }
@keyframes ilm-page-turn { 0% { transform: skewY(5deg) scaleX(1); } 50% { transform: skewY(2deg) scaleX(.98); } 100% { transform: skewY(5deg) scaleX(1); } }
@keyframes ilm-quill-scratch { 0% { transform: translateX(-50%) rotate(10deg) scaleY(1); } 25% { transform: translateX(-50%) rotate(15deg) scaleY(1.02); } 50% { transform: translateX(-50%) rotate(12deg) scaleY(1); } 75% { transform: translateX(-50%) rotate(18deg) scaleY(1.01); } 100% { transform: translateX(-50%) rotate(10deg) scaleY(1); } }
@keyframes ilm-shadow-drift { 0% { transform: translateX(0) scale(1); opacity:.5; } 50% { transform: translateX(20px) scale(1.05); opacity:.7; } 100% { transform: translateX(0) scale(1); opacity:.5; } }

.scn-index-montmedy-orleans { background: linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 40%, #8a9a9a 70%, #6a7a7a 100%), radial-gradient(ellipse at 50% 0%, #8a9a9a 0%, transparent 70%); }
.scn-index-montmedy-orleans .imo-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a6a7a 0%, #8a9aaa 100%); background-size: 200% 100%; animation: imo-cloud-drift 40s linear infinite; }
.scn-index-montmedy-orleans .imo-hills { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; }
.scn-index-montmedy-orleans .imo-castle { position:absolute; bottom:40%; left:40%; width:20%; height:25%; background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.3); }
.scn-index-montmedy-orleans .imo-figure { position:absolute; bottom:32%; left:25%; width:15px; height:30px; background: #1a1a2a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: translateX(0); animation: imo-figure-walk 8s ease-in-out infinite; }
.scn-index-montmedy-orleans .imo-flag { position:absolute; bottom:55%; left:48%; width:2px; height:20px; background: #2a2a2a; transform-origin: bottom center; animation: imo-flag-wave 3s ease-in-out infinite; }
.scn-index-montmedy-orleans .imo-flag::after { content:''; position:absolute; top:0; left:2px; width:15px; height:10px; background: #a0461a; border-radius: 0 50% 50% 0; }
.scn-index-montmedy-orleans .imo-ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%); }
@keyframes imo-cloud-drift { 0% { background-position: 0 0; } 50% { background-position: 100px 0; } 100% { background-position: 0 0; } }
@keyframes imo-figure-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(30px) rotate(2deg); } 50% { transform: translateX(60px) rotate(0deg); } 75% { transform: translateX(30px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes imo-flag-wave { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

.scn-relapse-and-death {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #0d0d1a 100%), radial-gradient(ellipse at 30% 70%, #2a2a3e 0%, transparent 70%);
}
.rd-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1a2e 0%, #15152a 100%); animation: rd-wall-sway 12s ease-in-out infinite; }
.rd-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); }
.rd-window { position:absolute; top:8%; left:8%; width:12%; height:18%; background: #3a4a6e; border-radius:4px; box-shadow: inset 0 0 8px rgba(255,255,200,.3); animation: rd-window-glow 4s ease-in-out infinite; }
.rd-beam { position:absolute; top:10%; left:10%; width:2%; height:60%; background: linear-gradient(180deg, rgba(200,200,180,.15) 0%, rgba(200,200,180,.05) 100%); transform: rotate(15deg); transform-origin: top left; animation: rd-beam-sweep 8s ease-in-out infinite; }
.rd-figure { position:absolute; bottom:22%; left:40%; width:20%; height:35%; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rd-figure-tremble 3s ease-in-out infinite; }
.rd-chain { position:absolute; bottom:22%; left:55%; width:10%; height:2%; background: #5a5a4a; border-radius: 50% / 100%; filter: blur(1px); animation: rd-chain-sway 6s ease-in-out infinite; }
.rd-shackle { position:absolute; bottom:22%; left:50%; width:4%; height:6%; background: #6a6a5a; border-radius: 30%; animation: rd-shackle-shake 2s ease-in-out infinite; }
@keyframes rd-wall-sway { 0% { opacity:.8; transform: scaleY(1); } 50% { opacity:.9; transform: scaleY(1.01); } 100% { opacity:.8; transform: scaleY(1); } }
@keyframes rd-window-glow { 0% { box-shadow: 0 0 4px rgba(255,255,200,.2); } 50% { box-shadow: 0 0 12px rgba(255,255,200,.5); } 100% { box-shadow: 0 0 4px rgba(255,255,200,.2); } }
@keyframes rd-beam-sweep { 0% { transform: rotate(12deg); opacity:.6; } 50% { transform: rotate(18deg); opacity:.8; } 100% { transform: rotate(12deg); opacity:.6; } }
@keyframes rd-figure-tremble { 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 rd-chain-sway { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes rd-shackle-shake { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

.scn-scaffold-mitre {
  background: linear-gradient(180deg, #87ceeb 0%, #ffd700 60%, #ff8c00 100%), radial-gradient(ellipse at 50% 30%, #ffd700 0%, transparent 70%);
}
.sm-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4682b4 0%, #87ceeb 100%); animation: sm-sky-shift 20s ease-in-out infinite; }
.sm-ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b4513 0%, #654321 100%); }
.sm-scaffold { position:absolute; bottom:30%; left:50%; width:20%; height:40%; background: #5c4033; border-radius:4px; transform:translateX(-50%); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: sm-scaffold-sway 8s ease-in-out infinite; }
.sm-figure { position:absolute; bottom:45%; left:50%; width:8%; height:20%; background: #2c2c2c; border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform:translateX(-50%); animation: sm-figure-tremble 4s ease-in-out infinite; }
.sm-rope { position:absolute; bottom:45%; left:50%; width:2%; height:15%; background: #4a4a3a; transform:translateX(-50%); border-radius: 50%; animation: sm-rope-sway 5s ease-in-out infinite; }
.sm-mitre { position:absolute; bottom:32%; left:45%; width:10%; height:8%; background: #2c2c2c; clip-path: polygon(0 100%, 50% 0, 100% 100%); animation: sm-mitre-fall 6s ease-in-out infinite; }
.sm-cloud { position:absolute; top:10%; right:15%; width:15%; height:5%; background: rgba(255,255,255,.4); border-radius: 50%; filter: blur(4px); animation: sm-cloud-drift 30s linear infinite; }
@keyframes sm-sky-shift { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes sm-scaffold-sway { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes sm-figure-tremble { 0% { transform: translateX(-50%) translateY(0); } 25% { transform: translateX(-50%) translateY(-2px); } 50% { transform: translateX(-50%) translateY(0); } 75% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes sm-rope-sway { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes sm-mitre-fall { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(10px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sm-cloud-drift { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-item-cross-sticks {
  background: linear-gradient(180deg, #ff8c00 0%, #ff4500 40%, #2c2c2c 100%), radial-gradient(ellipse at 50% 70%, #ff4500 0%, transparent 70%);
}
.cs-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ff6600 0%, #ffcc00 100%); animation: cs-sky-fire 10s ease-in-out infinite alternate; }
.cs-stake { position:absolute; bottom:40%; left:50%; width:3%; height:40%; background: #5c4033; transform:translateX(-50%); border-radius:2px; }
.cs-figure { position:absolute; bottom:45%; left:50%; width:10%; height:25%; background: #1a1a1a; border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform:translateX(-50%); animation: cs-figure-convulse 2s ease-in-out infinite; }
.cs-flame1 { position:absolute; bottom:40%; left:40%; width:15%; height:20%; background: linear-gradient(180deg, #ff8c00 0%, #ff4500 50%, transparent 100%); border-radius: 50% 50% 0 0; animation: cs-flame-flicker 0.5s ease-in-out infinite; }
.cs-flame2 { position:absolute; bottom:40%; right:42%; width:12%; height:18%; background: linear-gradient(180deg, #ffa500 0%, #ff6347 50%, transparent 100%); border-radius: 50% 50% 0 0; animation: cs-flame-flicker 0.7s ease-in-out infinite; animation-delay: 0.2s; }
.cs-cross { position:absolute; bottom:55%; left:50%; width:8%; height:4%; background: #5c4033; transform:translateX(-50%) rotate(45deg); border-radius:2px; box-shadow: 0 0 4px rgba(255,200,100,.5); animation: cs-cross-glow 3s ease-in-out infinite; }
.cs-smoke { position:absolute; top:30%; left:40%; width:20%; height:10%; background: rgba(120,120,120,.3); border-radius: 50%; filter: blur(8px); animation: cs-smoke-rise 12s linear infinite; }
@keyframes cs-sky-fire { 0% { opacity:.8; } 100% { opacity:1; } }
@keyframes cs-figure-convulse { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes cs-flame-flicker { 0% { transform: scaleY(1) translateY(0); opacity:.8; } 25% { transform: scaleY(1.1) translateY(-2px); opacity:1; } 50% { transform: scaleY(0.9) translateY(0); opacity:.9; } 75% { transform: scaleY(1.05) translateY(-1px); opacity:1; } 100% { transform: scaleY(1) translateY(0); opacity:.8; } }
@keyframes cs-cross-glow { 0% { box-shadow: 0 0 4px rgba(255,200,100,.3); } 50% { box-shadow: 0 0 12px rgba(255,200,100,.7); } 100% { box-shadow: 0 0 4px rgba(255,200,100,.3); } }
@keyframes cs-smoke-rise { 0% { transform: translateY(0); opacity:.3; } 50% { transform: translateY(-30px); opacity:.5; } 100% { transform: translateY(-60px); opacity:0; } }

.scn-false-jeannes-impostors {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 30%, #0d0d0d 100%), radial-gradient(ellipse at 50% 60%, #3a3a2a 0%, transparent 70%);
}
.fi-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); animation: fi-wall-shadow 15s ease-in-out infinite; }
.fi-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); }
.fi-table { position:absolute; bottom:25%; left:30%; width:40%; height:8%; background: #4a3a2a; border-radius:4px; transform: perspective(200px) rotateX(10deg); box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.fi-candle { position:absolute; bottom:33%; left:55%; width:3%; height:10%; background: #5c4a3a; border-radius:50% 50% 0 0; animation: fi-candle-flicker 1.5s ease-in-out infinite; }
.fi-figure { position:absolute; bottom:25%; left:25%; width:15%; height:35%; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fi-figure-rock 6s ease-in-out infinite; }
.fi-shadow { position:absolute; bottom:25%; left:20%; width:20%; height:40%; background: rgba(0,0,0,.4); filter: blur(6px); transform: skewX(-10deg); animation: fi-shadow-move 6s ease-in-out infinite; }
.fi-curtain { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 50% 0 0 50%; animation: fi-curtain-sway 10s ease-in-out infinite; }
@keyframes fi-wall-shadow { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes fi-candle-flicker { 0% { transform: scaleY(1) translateY(0); opacity:.8; } 25% { transform: scaleY(1.1) translateY(-1px); opacity:1; } 50% { transform: scaleY(0.95) translateY(0); opacity:.9; } 75% { transform: scaleY(1.05) translateY(-0.5px); opacity:1; } 100% { transform: scaleY(1) translateY(0); opacity:.8; } }
@keyframes fi-figure-rock { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fi-shadow-move { 0% { transform: skewX(-10deg) translateX(0); } 50% { transform: skewX(-10deg) translateX(5px); } 100% { transform: skewX(-10deg) translateX(0); } }
@keyframes fi-curtain-sway { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }

.scn-relapse-and-death {
  background: 
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0e0e1e 100%),
    radial-gradient(ellipse at 30% 70%, #2a3a3a 0%, transparent 60%);
}
.scn-relapse-and-death .cell {
  position: absolute;
  inset: 10% 15% 10% 15%;
  background: linear-gradient(180deg, #23242a 0%, #1a1b20 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.7);
}
.scn-relapse-and-death .wall-left {
  position: absolute;
  left: 15%;
  top: 10%;
  width: 8%;
  height: 80%;
  background: linear-gradient(90deg, #1f2026 0%, #2e2f36 50%, #1f2026 100%);
  border-radius: 2px;
  animation: rnd-wall 20s ease-in-out infinite alternate;
}
.scn-relapse-and-death .wall-right {
  position: absolute;
  right: 15%;
  top: 10%;
  width: 8%;
  height: 80%;
  background: linear-gradient(270deg, #1f2026 0%, #2e2f36 50%, #1f2026 100%);
  border-radius: 2px;
  animation: rnd-wall 20s ease-in-out infinite alternate-reverse;
}
.scn-relapse-and-death .window {
  position: absolute;
  top: 20%;
  left: 38%;
  width: 24%;
  height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #4a5a5a 0%, #2a3a3a 70%, transparent 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(100,120,120,.3);
  animation: rnd-window 8s ease-in-out infinite alternate;
}
.scn-relapse-and-death .bars {
  position: absolute;
  top: 20%;
  left: 38%;
  width: 24%;
  height: 30%;
  background: 
    repeating-linear-gradient(0deg, #3a3a3a 0px, #3a3a3a 4px, transparent 4px, transparent 12px),
    repeating-linear-gradient(90deg, #3a3a3a 0px, #3a3a3a 4px, transparent 4px, transparent 18px);
  opacity: .6;
}
.scn-relapse-and-death .figure {
  position: absolute;
  bottom: 18%;
  left: 42%;
  width: 16%;
  height: 40%;
  background: linear-gradient(180deg, #1c1d24 0%, #0e0f14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rnd-figure 6s ease-in-out infinite;
}
.scn-relapse-and-death .light-shaft {
  position: absolute;
  top: 20%;
  left: 38%;
  width: 24%;
  height: 70%;
  background: linear-gradient(180deg, rgba(180,200,200,.15) 0%, rgba(180,200,200,.05) 50%, transparent 100%);
  filter: blur(8px);
  animation: rnd-shaft 12s ease-in-out infinite alternate;
}
@keyframes rnd-wall { 0% { opacity: .9; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-2px); } 100% { opacity: .85; transform: translateY(0); } }
@keyframes rnd-window { 0% { opacity: .6; box-shadow: inset 0 0 20px rgba(100,120,120,.2); } 50% { opacity: .9; box-shadow: inset 0 0 40px rgba(140,160,160,.4); } 100% { opacity: .7; box-shadow: inset 0 0 25px rgba(100,120,120,.25); } }
@keyframes rnd-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(0deg); } 50% { transform: translateX(0) translateY(-2px) rotate(1deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes rnd-shaft { 0% { opacity: .2; transform: scaleY(.8); } 50% { opacity: .4; transform: scaleY(1); } 100% { opacity: .3; transform: scaleY(.9); } }

.scn-scaffold-mitre {
  background: 
    linear-gradient(180deg, #b0cce0 0%, #d0e0f0 30%, #eef5ff 60%, #f0e8d0 100%),
    radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 60%);
}
.scn-scaffold-mitre .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a8fbf 0%, #9bb8e0 50%, #c8ddf5 100%);
  animation: scf-sky 25s ease-in-out infinite alternate;
}
.scn-scaffold-mitre .platform {
  position: absolute;
  bottom: 15%;
  left: 10%;
  width: 80%;
  height: 12%;
  background: linear-gradient(180deg, #8b6f4a 0%, #5c472e 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
}
.scn-scaffold-mitre .figure-jeanne {
  position: absolute;
  bottom: 27%;
  left: 40%;
  width: 20%;
  height: 35%;
  background: linear-gradient(180deg, #d4c8b0 0%, #b0a090 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scf-jeanne 9s ease-in-out infinite;
}
.scn-scaffold-mitre .figure-jeanne::before {
  content: '';
  position: absolute;
  top: 10%;
  left: 25%;
  width: 50%;
  height: 20%;
  background: #b09070; /* hair */
  border-radius: 50% 50% 0 0;
}
.scn-scaffold-mitre .bishop {
  position: absolute;
  bottom: 27%;
  left: 20%;
  width: 15%;
  height: 30%;
  background: linear-gradient(180deg, #8a4a3a 0%, #5a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform: scaleX(.85);
  animation: scf-bishop 12s ease-in-out infinite alternate;
}
.scn-scaffold-mitre .soldier-a {
  position: absolute;
  bottom: 28%;
  left: 62%;
  width: 12%;
  height: 32%;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  animation: scf-soldier 6s ease-in-out infinite;
}
.scn-scaffold-mitre .soldier-b {
  position: absolute;
  bottom: 28%;
  left: 74%;
  width: 12%;
  height: 32%;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  animation: scf-soldier 6s ease-in-out infinite reverse;
}
.scn-scaffold-mitre .post {
  position: absolute;
  bottom: 15%;
  left: 58%;
  width: 4%;
  height: 40%;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a4a 50%, #6a4a2a 100%);
  border-radius: 2px;
}
.scn-scaffold-mitre .rope {
  position: absolute;
  bottom: 42%;
  left: 38%;
  width: 22%;
  height: 2%;
  background: #3a2a1a;
  border-radius: 1px;
  animation: scf-rope 7s ease-in-out infinite alternate;
}
.scn-scaffold-mitre .glare {
  position: absolute;
  top: 10%;
  left: 25%;
  width: 50%;
  height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,.3) 0%, transparent 70%);
  filter: blur(15px);
  animation: scf-glare 10s ease-in-out infinite alternate;
}
@keyframes scf-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes scf-jeanne { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(-4px) rotate(1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes scf-bishop { 0% { transform: translateX(0) scaleX(.85); } 50% { transform: translateX(4px) scaleX(.9); } 100% { transform: translateX(0) scaleX(.85); } }
@keyframes scf-soldier { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes scf-rope { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(2px) scaleX(1.05); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes scf-glare { 0% { opacity: .1; transform: scale(1); } 50% { opacity: .3; transform: scale(1.2); } 100% { opacity: .15; transform: scale(1.1); } }

.scn-item-cross-sticks { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 40%, #4a3a2a 80%, #8a6a3a 100%), radial-gradient(ellipse at 50% 20%, #d4a040 0%, transparent 60%); }
.scn-item-cross-sticks .sky    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a7a5a 0%, #d4b060 60%, #e0c070 100%); animation: s1-sky 15s ease-in-out infinite alternate; }
.scn-item-cross-sticks .sun    { position:absolute; top:15%; left:50%; transform:translateX(-50%); width:80px; height:80px; background: radial-gradient(circle, #ffe080 0%, #e0b040 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 30px #e0b040; animation: s1-sun-pulse 8s ease-in-out infinite alternate; }
.scn-item-cross-sticks .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 70% 0 0 / 50% 100% 0 0; animation: s1-ground 20s ease-in-out infinite alternate; }
.scn-item-cross-sticks .cross  { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:12px; height:50%; background: #1a0a00; box-shadow: 0 0 10px #000; }
.scn-item-cross-sticks .cross::before { content:''; position:absolute; top:15%; left:-30px; width:72px; height:10px; background: #1a0a00; }
.scn-item-cross-sticks .figure { position:absolute; bottom:52%; left:50%; transform:translateX(-50%); width:24px; height:40px; background: #0a0a0a; border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; animation: s1-figure 6s ease-in-out infinite alternate; }
.scn-item-cross-sticks .flames { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:60px; height:40px; background: radial-gradient(ellipse at 50% 100%, #ff7020 0%, #e03000 40%, #cc2000 70%, transparent 100%); border-radius: 50% 50% 0 0; animation: s1-flame 1.5s ease-in-out infinite alternate; }
.scn-item-cross-sticks .glow   { position:absolute; bottom:28%; left:50%; transform:translateX(-50%); width:100px; height:60px; background: radial-gradient(ellipse, #ff6010 0%, transparent 70%); border-radius:50%; animation: s1-glow 2s ease-in-out infinite alternate; }
.scn-item-cross-sticks .cloud-a{ position:absolute; top:8%; left:10%; width:100px; height:20px; background: rgba(255,255,255,0.4); border-radius:50%; filter: blur(8px); animation: s1-drift-a 30s linear infinite; }
.scn-item-cross-sticks .cloud-b{ position:absolute; top:5%; right:15%; width:80px; height:16px; background: rgba(255,255,255,0.3); border-radius:50%; filter: blur(6px); animation: s1-drift-b 40s linear infinite reverse; }
@keyframes s1-sky      { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes s1-sun-pulse{ 0% { transform: translateX(-50%) scale(1); opacity:0.9; } 50% { transform: translateX(-50%) scale(1.05); opacity:1; } 100% { transform: translateX(-50%) scale(0.95); opacity:0.85; } }
@keyframes s1-ground   { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes s1-figure   { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes s1-flame    { 0% { transform: translateX(-50%) scaleY(0.8); opacity:0.8; } 50% { transform: translateX(-50%) scaleY(1.2); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.9); opacity:0.7; } }
@keyframes s1-glow     { 0% { opacity:0.5; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes s1-drift-a  { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes s1-drift-b  { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-false-jeannes-impostors { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a2a3a 80%, #1a1a2a 100%), radial-gradient(ellipse at 30% 50%, #2a2a3a 0%, transparent 70%); }
.scn-false-jeannes-impostors .wall   { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%); animation: s2-wall 20s ease-in-out infinite alternate; }
.scn-false-jeannes-impostors .window { position:absolute; top:12%; left:65%; width:30px; height:40px; background: #2a3a4a; border:2px solid #0a0a1a; box-shadow: inset 0 0 10px #3a4a5a; animation: s2-window 10s ease-in-out infinite alternate; }
.scn-false-jeannes-impostors .window::after { content:''; position:absolute; top:0; left:50%; width:2px; height:100%; background:#0a0a1a; }
.scn-false-jeannes-impostors .table  { position:absolute; bottom:20%; left:40%; width:50%; height:8px; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 2px 4px #000; animation: s2-table 15s ease-in-out infinite alternate; }
.scn-false-jeannes-impostors .chair  { position:absolute; bottom:20%; left:45%; width:20px; height:30px; background: #3a2a1a; border-radius: 2px; transform: translateX(-50%); animation: s2-chair 12s ease-in-out infinite alternate; }
.scn-false-jeannes-impostors .figure { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:20px; height:45px; background: #0a0a0a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: s2-figure 6s ease-in-out infinite alternate; }
.scn-false-jeannes-impostors .figure::before { content:''; position:absolute; top:5%; left:-15px; width:50px; height:8px; background: #0a0a0a; border-radius: 4px; transform: rotate(-5deg); }
.scn-false-jeannes-impostors .candle { position:absolute; bottom:30%; left:35%; width:4px; height:12px; background: #e0c080; border-radius: 1px; box-shadow: 0 0 8px 4px #ffb040; animation: s2-candle 2s ease-in-out infinite alternate; }
.scn-false-jeannes-impostors .glow   { position:absolute; bottom:28%; left:35%; width:40px; height:40px; background: radial-gradient(circle, #ffb040 0%, transparent 70%); border-radius:50%; animation: s2-glow 3s ease-in-out infinite alternate; }
.scn-false-jeannes-impostors .shadow { position:absolute; bottom:20%; left:50%; width:60px; height:10px; background: rgba(0,0,0,0.6); border-radius:50%; filter: blur(4px); transform: translateX(-50%); animation: s2-shadow 4s ease-in-out infinite alternate; }
@keyframes s2-wall    { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes s2-window  { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes s2-table   { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes s2-chair   { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes s2-figure  { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes s2-candle  { 0% { height:12px; opacity:0.9; } 50% { height:10px; opacity:1; } 100% { height:11px; opacity:0.8; } }
@keyframes s2-glow    { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes s2-shadow  { 0% { transform: translateX(-50%) scaleX(1); opacity:0.5; } 50% { transform: translateX(-50%) scaleX(1.2); opacity:0.7; } 100% { transform: translateX(-50%) scaleX(0.8); opacity:0.4; } }

.scn-false-jeannes-impostors {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a221c 40%, #1a1410 100%),
    radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, transparent 70%);
}
.scn-false-jeannes-impostors .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.6) 100%);
  animation: fji-bg 12s ease-in-out infinite alternate;
}
.scn-false-jeannes-impostors .wall {
  position: absolute; bottom: 35%; left: 0; right: 0; top: 0;
  background: linear-gradient(180deg, #2e2520 0%, #3a3028 100%);
  border-radius: 0 0 10% 10% / 0 0 5% 5%;
  opacity: 0.85;
}
.scn-false-jeannes-impostors .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1e1612 0%, #140e0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
}
.scn-false-jeannes-impostors .table {
  position: absolute; bottom: 24%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 10px;
  background: linear-gradient(90deg, #4a3a2e 0%, #5c4a3a 50%, #4a3a2e 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: fji-table 8s ease-in-out infinite;
}
.scn-false-jeannes-impostors .figure {
  position: absolute; bottom: 26%; left: 48%; transform: translateX(-50%);
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a201a 0%, #1a100e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fji-figure 6s ease-in-out infinite alternate;
}
.scn-false-jeannes-impostors .candle {
  position: absolute; bottom: 22%; left: 54%;
  width: 6px; height: 14px;
  background: linear-gradient(180deg, #d4a060 0%, #8a6030 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: 0 0 18px 6px #b07838, 0 0 40px 14px rgba(176,120,56,0.3);
  animation: fji-candle 4s ease-in-out infinite alternate;
}
.scn-false-jeannes-impostors .shadow {
  position: absolute; bottom: 20%; left: 38%;
  width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  transform: rotate(-10deg);
  filter: blur(4px);
  animation: fji-shadow 10s ease-in-out infinite alternate;
}
@keyframes fji-bg { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes fji-table { 0%, 100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(0.5deg) translateY(1px) } }
@keyframes fji-figure { 0% { transform: translateX(-50%) rotate(-2deg) scale(1) } 50% { transform: translateX(-50%) rotate(1deg) scale(1.01) } 100% { transform: translateX(-50%) rotate(0deg) scale(1) } }
@keyframes fji-candle { 0% { box-shadow: 0 0 14px 4px #b07838, 0 0 32px 10px rgba(176,120,56,0.2); opacity: 0.8 } 50% { box-shadow: 0 0 24px 8px #d09050, 0 0 50px 16px rgba(208,144,80,0.4); opacity: 1 } 100% { box-shadow: 0 0 16px 5px #b07838, 0 0 36px 12px rgba(176,120,56,0.25); opacity: 0.85 } }
@keyframes fji-shadow { 0% { transform: rotate(-10deg) translateY(0); opacity: 0.3 } 50% { transform: rotate(-8deg) translateY(2px); opacity: 0.5 } 100% { transform: rotate(-12deg) translateY(1px); opacity: 0.4 } }

.scn-scaffold-mitre { background: linear-gradient(180deg, #4a6b8a 0%, #8a9a5a 40%, #c8a858 100%), radial-gradient(ellipse at 70% 20%, #ffdd99 0%, transparent 50%); }
.scn-scaffold-mitre .bg-sky { position:absolute; inset:0; background: linear-gradient(180deg, #6a8a9a 0%, #a8b880 60%, #d0b060 100%); animation: sm-sky 20s ease infinite alternate; }
.scn-scaffold-mitre .sun { position:absolute; top:8%; left:65%; width:50px; height:50px; background: radial-gradient(circle, #ffe6a0 0%, #ffcc70 40%, transparent 70%); border-radius:50%; animation: sm-sun 4s ease-in-out infinite alternate; }
.scn-scaffold-mitre .scaffold-platform { position:absolute; bottom:22%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-scaffold-mitre .scaffold-post { position:absolute; bottom:22%; left:48%; width:6%; height:35%; background: linear-gradient(90deg, #6a4a2a, #4a2a0a); border-radius: 2px; }
.scn-scaffold-mitre .figure-jeanne { position:absolute; bottom:25%; left:45%; width:8%; height:30%; background: linear-gradient(180deg, #f0e8d0 0%, #e0d0a0 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: sm-jeanne 3s ease-in-out infinite; }
.scn-scaffold-mitre .figure-bishop { position:absolute; bottom:28%; left:25%; width:7%; height:28%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 20% 20% / 50% 50% 30% 30%; animation: sm-bishop 5s ease-in-out infinite; }
.scn-scaffold-mitre .figure-bishop::before { content:''; position:absolute; top:-15%; left:15%; width:70%; height:20%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); clip-path: polygon(10% 100%, 50% 0%, 90% 100%); }
.scn-scaffold-mitre .figure-soldier1 { position:absolute; bottom:28%; right:28%; width:6%; height:26%; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: sm-soldier 6s ease-in-out infinite; animation-delay: 0s; }
.scn-scaffold-mitre .figure-soldier2 { position:absolute; bottom:28%; right:18%; width:6%; height:26%; background: linear-gradient(180deg, #907050 0%, #604030 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: sm-soldier 6s ease-in-out infinite; animation-delay: -2s; }
.scn-scaffold-mitre .shadow-overlay { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.3) 100%); animation: sm-shadow 8s ease-in-out infinite alternate; }

@keyframes sm-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sm-sun { 0% { transform: scale(1) translate(0,0); box-shadow: 0 0 40px 10px #ffe6a0 } 50% { transform: scale(1.1) translate(2px,-1px); box-shadow: 0 0 60px 20px #ffcc70 } 100% { transform: scale(0.95) translate(-1px,1px); box-shadow: 0 0 30px 5px #ffe6a0 } }
@keyframes sm-jeanne { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sm-bishop { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-1px) rotate(2deg) } 66% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sm-soldier { 0% { transform: translateX(0) } 25% { transform: translateX(2px) } 50% { transform: translateX(0) } 75% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes sm-shadow { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.2 } }

.scn-item-cross-sticks {
  background:
    linear-gradient(180deg, #4a90d9 0%, #f9d876 50%, #e89f4c 100%),
    radial-gradient(ellipse at 50% 0%, #fff7c0 0%, transparent 60%);
}
.scn-item-cross-sticks .sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3b82c4 0%, #f9d876 60%, #e89f4c 100%);
  animation: ics-sky 10s ease-in-out infinite alternate;
}
.scn-item-cross-sticks .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-item-cross-sticks .cross-vert {
  position: absolute; bottom: 25%; left: 50%; width: 10px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: 2px 0 8px rgba(0,0,0,0.5);
}
.scn-item-cross-sticks .cross-horiz {
  position: absolute; bottom: 50%; left: 50%; width: 100px; height: 10px;
  transform: translate(-50%, -50%);
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-item-cross-sticks .figure {
  position: absolute; bottom: 50%; left: 50%; width: 30px; height: 50px;
  transform: translate(-50%, -50%);
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ics-figure 5s ease-in-out infinite;
}
.scn-item-cross-sticks .fire-left,
.scn-item-cross-sticks .fire-right {
  position: absolute; bottom: 20%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #ffdd66 0%, #e89f4c 50%, #b05a2a 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
}
.scn-item-cross-sticks .fire-left {
  left: 47%;
  animation: ics-fire 1.2s ease-in-out infinite alternate;
}
.scn-item-cross-sticks .fire-right {
  right: 47%;
  animation: ics-fire 1.5s ease-in-out infinite alternate-reverse;
}
.scn-item-cross-sticks .smoke {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 20px;
  background: rgba(100,100,100,0.2);
  filter: blur(8px);
  border-radius: 50%;
}
.scn-item-cross-sticks .smoke-1 {
  transform: translateX(-50%);
  animation: ics-smoke 6s ease-out infinite;
}
.scn-item-cross-sticks .smoke-2 {
  transform: translateX(-50%) translateY(10px);
  animation: ics-smoke 8s ease-out infinite 2s;
}

@keyframes ics-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ics-figure {
  0%, 100% { transform: translate(-50%, -50%) rotate(-2deg); }
  50% { transform: translate(-50%, -50%) rotate(2deg); }
}
@keyframes ics-fire {
  0% { height: 30px; opacity: 1; }
  50% { height: 50px; opacity: 0.9; }
  100% { height: 35px; opacity: 0.8; }
}
@keyframes ics-smoke {
  0% { transform: translate(-50%, 0) scale(0.5); opacity: 0.6; }
  50% { transform: translate(-50%, -60px) scale(1.5); opacity: 0.3; }
  100% { transform: translate(-50%, -120px) scale(2.5); opacity: 0; }
}

.scn-relapse-and-death {
  background:
    linear-gradient(180deg, #0f111a 0%, #1a1c2b 50%, #12141e 100%),
    radial-gradient(ellipse at 60% 20%, #2a2e42 0%, transparent 60%);
}
.scn-relapse-and-death .bg-wall {
  position: absolute; inset: 0;
  background:
    repeating-linear-gradient(0deg, transparent 0px, transparent 40px, rgba(26, 28, 43, 0.3) 40px, rgba(26, 28, 43, 0.3) 42px),
    repeating-linear-gradient(90deg, transparent 0px, transparent 40px, rgba(26, 28, 43, 0.2) 40px, rgba(26, 28, 43, 0.2) 42px);
  z-index: 0;
}
.scn-relapse-and-death .window {
  position: absolute; top: 12%; left: 62%; width: 70px; height: 90px;
  background: radial-gradient(ellipse at 50% 50%, #e6f0ff 0%, #8fadff 40%, #3a4a7a 70%, transparent 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 50px 25px rgba(140, 180, 255, 0.15), inset 0 0 30px rgba(0,0,0,0.6);
  animation: cad-glow 8s ease-in-out infinite alternate;
  z-index: 1;
}
.scn-relapse-and-death .bars {
  position: absolute; top: 12%; left: 62%; width: 70px; height: 90px;
  background:
    repeating-linear-gradient(0deg, transparent 0px, transparent 18px, #0b0c10 18px, #0b0c10 22px),
    repeating-linear-gradient(90deg, transparent 0px, transparent 18px, #0b0c10 18px, #0b0c10 22px);
  border-radius: 40% 40% 10% 10%;
  z-index: 2;
}
.scn-relapse-and-death .light-beam {
  position: absolute; top: 12%; left: 55%; width: 40%; height: 80%;
  background: linear-gradient(135deg, rgba(220, 235, 255, 0.12) 0%, rgba(220, 235, 255, 0.02) 80%, transparent 100%);
  transform-origin: top left;
  transform: skewY(20deg);
  animation: cad-light 25s ease-in-out infinite alternate;
  filter: blur(5px);
  z-index: 3;
}
.scn-relapse-and-death .figure {
  position: absolute; bottom: 14%; left: 32%; width: 55px; height: 120px;
  background: linear-gradient(180deg, #15171e 0%, #07080a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: cad-breathe 6s ease-in-out infinite;
  z-index: 5;
  box-shadow: -8px 0 20px rgba(0,0,0,0.7);
}
.scn-relapse-and-death .figure::before {
  content: ''; position: absolute; top: -10px; left: -4px; width: 63px; height: 22px;
  background: #0b0c10; border-radius: 50% 50% 20% 20%;
  transform: rotate(-5deg);
}
.scn-relapse-and-death .figure::after {
  content: ''; position: absolute; top: 18px; left: 0px; width: 55px; height: 45px;
  background: linear-gradient(180deg, #1a1c24 0%, #0f111a 100%);
  border-radius: 10% 10% 30% 30%;
}
.scn-relapse-and-death .chains {
  position: absolute; bottom: 11%; left: 28%; width: 90px; height: 14px;
  background: radial-gradient(circle, #2a2e40 2px, transparent 2px) 0 0 / 14px 14px repeat-x;
  animation: cad-rattle 5s ease-in-out infinite;
  filter: drop-shadow(0 2px 2px rgba(0,0,0,0.5));
  z-index: 6;
}
.scn-relapse-and-death .dust {
  position: absolute; inset: 0;
  background-image:
    radial-gradient(2px 2px at 20% 30%, rgba(255, 255, 255, 0.3), transparent),
    radial-gradient(2px 2px at 45% 65%, rgba(255, 255, 255, 0.2), transparent),
    radial-gradient(1px 1px at 65% 25%, rgba(255, 255, 255, 0.4), transparent),
    radial-gradient(1px 1px at 80% 75%, rgba(255, 255, 255, 0.1), transparent);
  filter: blur(1px);
  animation: cad-drift 45s linear infinite;
  z-index: 4;
}
@keyframes cad-glow {
  0% { opacity: 0.8; box-shadow: 0 0 30px 15px rgba(180, 210, 255, 0.1); }
  50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(180, 210, 255, 0.25); }
  100% { opacity: 0.85; box-shadow: 0 0 40px 20px rgba(180, 210, 255, 0.12); }
}
@keyframes cad-light {
  0% { opacity: 0.5; transform: skewY(20deg) scaleX(0.95); }
  50% { opacity: 1; transform: skewY(24deg) scaleX(1.05); }
  100% { opacity: 0.6; transform: skewY(18deg) scaleX(0.98); }
}
@keyframes cad-breathe {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.025) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes cad-rattle {
  0% { transform: translateX(0); }
  20% { transform: translateX(1.5px); }
  40% { transform: translateX(-1.5px); }
  60% { transform: translateX(0.5px); }
  80% { transform: translateX(-0.5px); }
  100% { transform: translateX(0); }
}
@keyframes cad-drift {
  0% { background-position: 0% 100%, 10% 80%, 20% 60%, 30% 40%; }
  100% { background-position: 10% 0%, 20% -10%, 40% -20%, 50% -30%; }
}
/* end per-scene blocks */
