/* 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) */
/* item-ring-proof */
.scn-item-ring-proof {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #cbb59a 30%, #9f8060 100%),
    radial-gradient(ellipse at 50% 40%, #f5e8d0 0%, transparent 60%);
}
.scn-item-ring-proof .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #d4c4a8 0%, #b8a080 100%); }
.scn-item-ring-proof .pillar { position:absolute; top:0; bottom:0; width:20px; background: linear-gradient(90deg, #a08060, #806040, #a08060); }
.scn-item-ring-proof .pillar.left { left:15%; }
.scn-item-ring-proof .pillar.right { right:15%; }
.scn-item-ring-proof .throne { position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:120px; height:80px; background: linear-gradient(180deg, #705030, #503820); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.scn-item-ring-proof .duke { position:absolute; bottom:12%; left:50%; transform:translateX(-50%); width:40px; height:100px; background: linear-gradient(180deg, #3a2a1a, #1a1008); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-item-ring-proof .ring-hand { position:absolute; bottom:30%; left:60%; width:30px; height:40px; background: #c8b090; border-radius: 20% 20% 40% 40%; transform: rotate(-20deg); animation: irp-hand 4s ease-in-out infinite; }
.scn-item-ring-proof .ring-glow { position:absolute; bottom:32%; left:62%; width:12px; height:8px; background: radial-gradient(circle, #d4a040, #b08020); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(180,128,32,.6); animation: irp-glow 2s ease-in-out infinite alternate; }
.scn-item-ring-proof .witness { position:absolute; bottom:10%; left:25%; width:25px; height:70px; background: linear-gradient(180deg, #2a1a0a, #0a0500); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; filter: blur(1px); }
.scn-item-ring-proof .shadow-stripe { position:absolute; left:40%; top:0; bottom:0; width:60px; background: linear-gradient(90deg, transparent, rgba(0,0,0,.15), transparent); animation: irp-stripe 8s linear infinite; }
@keyframes irp-hand { 0%,100% { transform: rotate(-20deg); } 50% { transform: rotate(-10deg) translateY(-3px); } }
@keyframes irp-glow { 0% { opacity:.7; box-shadow: 0 0 15px 3px #b08020; } 100% { opacity:1; box-shadow: 0 0 30px 10px #d4a040; } }
@keyframes irp-stripe { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(0); } }

/* parolles-sent-for */
.scn-parolles-sent-for {
  background:
    linear-gradient(180deg, #c8b8a0 0%, #a08a70 40%, #705840 100%),
    radial-gradient(ellipse at 30% 70%, #e0d0b8 0%, transparent 50%);
}
.scn-parolles-sent-for .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #806848, #604830); }
.scn-parolles-sent-for .wall-panel { position:absolute; top:0; left:10%; right:10%; bottom:30%; background: linear-gradient(180deg, #b8a080, #907058); border: 2px solid #604830; }
.scn-parolles-sent-for .door-frame { position:absolute; left:40%; right:40%; top:10%; bottom:30%; background: #503820; border: 6px solid #302010; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-parolles-sent-for .attendant { position:absolute; bottom:30%; left:30%; width:20px; height:60px; background: linear-gradient(180deg, #302010, #1a0a00); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: psf-walk 4s ease-in-out infinite; }
.scn-parolles-sent-for .parolles-silhouette { position:absolute; bottom:30%; right:25%; width:28px; height:72px; background: #1a1008; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-parolles-sent-for .torch-glow { position:absolute; top:20%; left:20%; width:30px; height:40px; background: radial-gradient(circle, #d09030, #b07020, transparent); border-radius: 50%; filter: blur(4px); animation: psf-torch 3s ease-in-out infinite alternate; }
.scn-parolles-sent-for .dust-motes { position:absolute; top:20%; left:50%; width:4px; height:4px; background: rgba(200,180,140,.3); border-radius: 50%; animation: psf-dust 6s linear infinite; }
@keyframes psf-walk { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(8px) rotate(0); } 75% { transform: translateX(12px) rotate(2deg); } }
@keyframes psf-torch { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.8; transform: scale(.95); } }
@keyframes psf-dust { 0% { transform: translateY(0) scale(1); opacity:0; } 50% { opacity:.8; } 100% { transform: translateY(-40px) scale(2); opacity:0; } }

/* parolles-testifies */
.scn-parolles-testifies {
  background:
    linear-gradient(180deg, #d4c4a8 0%, #b8a080 40%, #806848 100%),
    radial-gradient(ellipse at 50% 50%, #e8dcc8 0%, transparent 70%);
}
.scn-parolles-testifies .court-bench { position:absolute; bottom:15%; left:10%; right:10%; height:40px; background: linear-gradient(180deg, #a08060, #705030); border-radius: 10px; }
.scn-parolles-testifies .judge { position:absolute; bottom:25%; left:20%; width:50px; height:80px; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-parolles-testifies .parolles-figure { position:absolute; bottom:20%; right:30%; width:35px; height:90px; background: linear-gradient(180deg, #4a3020, #2a1808); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-parolles-testifies .testify-hand { position:absolute; bottom:40%; right:35%; width:18px; height:30px; background: #c8b090; border-radius: 20% 20% 40% 40%; transform: rotate(30deg); animation: pt-hand 5s ease-in-out infinite; }
.scn-parolles-testifies .ring-on-finger { position:absolute; bottom:45%; right:36%; width:8px; height:6px; background: radial-gradient(circle, #b08020, #805010); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(180,128,32,.5); }
.scn-parolles-testifies .spectator-left { position:absolute; bottom:20%; left:15%; width:20px; height:60px; background: linear-gradient(180deg, #1a1008, #050200); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-parolles-testifies .spectator-right { position:absolute; bottom:20%; right:15%; width:20px; height:60px; background: linear-gradient(180deg, #1a1008, #050200); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-parolles-testifies .candle-glow { position:absolute; top:20%; left:45%; width:20px; height:30px; background: radial-gradient(circle, #e0a040, #b07020, transparent); filter: blur(6px); animation: pt-candle 3s ease-in-out infinite alternate; }
@keyframes pt-hand { 0%,100% { transform: rotate(30deg); } 50% { transform: rotate(10deg) translateY(-5px); } }
@keyframes pt-candle { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.7; transform: scale(.95); } }

/* ring-mystery */
.scn-ring-mystery {
  background:
    linear-gradient(180deg, #c0a888 0%, #a08060 50%, #604830 100%),
    radial-gradient(ellipse at 30% 60%, #d8c0a0 0%, transparent 60%);
}
.scn-ring-mystery .dark-wall { position:absolute; inset:0; background: linear-gradient(135deg, #806848 0%, #503820 100%); }
.scn-ring-mystery .table { position:absolute; bottom:10%; left:15%; right:15%; height:30px; background: linear-gradient(180deg, #705030, #4a2a10); border-radius: 5px; }
.scn-ring-mystery .hand-a { position:absolute; bottom:20%; left:35%; width:25px; height:35px; background: #c8b090; border-radius: 20% 20% 40% 40%; transform: rotate(-10deg); animation: rm-hand-a 6s ease-in-out infinite; }
.scn-ring-mystery .hand-b { position:absolute; bottom:20%; right:35%; width:25px; height:35px; background: #c8b090; border-radius: 20% 20% 40% 40%; transform: rotate(20deg); animation: rm-hand-b 6s ease-in-out infinite reverse; }
.scn-ring-mystery .ring-passing { position:absolute; bottom:30%; left:50%; width:10px; height:8px; background: radial-gradient(circle, #d4a040, #b08020); border-radius: 50%; box-shadow: 0 0 15px 3px rgba(180,128,32,.5); animation: rm-ring 4s ease-in-out infinite; }
.scn-ring-mystery .window-light { position:absolute; top:5%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, rgba(255,240,200,.3), transparent); border-radius: 0 0 20% 20%; }
.scn-ring-mystery .cast-shadow { position:absolute; bottom:10%; left:25%; right:25%; height:10%; background: rgba(0,0,0,.2); filter: blur(6px); animation: rm-shadow 5s ease-in-out infinite; }
@keyframes rm-hand-a { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(-30deg) translateX(-5px); } }
@keyframes rm-hand-b { 0%,100% { transform: rotate(20deg); } 50% { transform: rotate(5deg) translateX(5px); } }
@keyframes rm-ring { 0%,100% { left:48%; } 50% { left:52%; } }
@keyframes rm-shadow { 0%,100% { transform: translateX(0); } 50% { transform: translateX(5px); } }

/* bertram-repentant */
.scn-bertram-repentant {
  background: 
    linear-gradient(180deg, #d4a373 0%, #b07d5e 40%, #7a4d3a 100%),
    radial-gradient(ellipse at 30% 20%, #f5d6b0 0%, transparent 70%);
}
.scn-bertram-repentant .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a3f2e 0%, #4a2a1a 100%); border-radius: 10% 50% 0 0/ 20% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-bertram-repentant .wall-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #c18e6b 0%, #a06d4f 100%); opacity:0.6; }
.scn-bertram-repentant .window { position:absolute; top:15%; left:45%; width:80px; height:110px; background: linear-gradient(180deg, #ffe8c8 0%, #f0c090 100%); border:8px solid #5a3a2a; border-radius:4% 4% 2% 2%; box-shadow: 0 0 40px 20px rgba(255,232,200,.4); animation: brt-glow 6s ease-in-out infinite alternate; }
.scn-bertram-repentant .light-rays { position:absolute; top:12%; left:42%; width:100px; height:150px; background: linear-gradient(135deg, rgba(255,232,200,.35) 0%, transparent 70%); filter: blur(8px); transform: rotate(-10deg); animation: brt-rays 8s ease-in-out infinite; }
.scn-bertram-repentant .figure { position:absolute; bottom:25%; left:32%; width:40px; height:100px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 40% 40%/ 50% 50% 30% 30%; transform-origin: bottom center; animation: brt-kneel 4s ease-in-out infinite; }
.scn-bertram-repentant .candle { position:absolute; bottom:20%; left:55%; width:8px; height:30px; background: linear-gradient(180deg, #f0d090 0%, #8a6040 100%); border-radius:10% 10% 4% 4%; box-shadow: 0 0 12px 6px #f0d090; animation: brt-candle 3s ease-in-out infinite; }
.scn-bertram-repentant .dust { position:absolute; top:5%; left:10%; width:4px; height:4px; background: rgba(255,200,150,.6); border-radius:50%; filter:blur(1px); box-shadow: 20px 30px 0 rgba(255,200,150,.4), 50px 10px 0 rgba(255,200,150,.3), 80px 40px 0 rgba(255,200,150,.5); animation: brt-drift 20s linear infinite; }

@keyframes brt-glow    { 0% { box-shadow: 0 0 30px 15px rgba(255,232,200,.3); } 50% { box-shadow: 0 0 50px 25px rgba(255,232,200,.5); } 100% { box-shadow: 0 0 35px 18px rgba(255,232,200,.4); } }
@keyframes brt-rays   { 0% { opacity: .5; transform: rotate(-12deg) scaleX(1); } 50% { opacity: .8; transform: rotate(-8deg) scaleX(1.05); } 100% { opacity: .6; transform: rotate(-10deg) scaleX(1); } }
@keyframes brt-kneel  { 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 brt-candle { 0% { transform: translateY(0) scaleY(1); opacity:.9; } 25% { transform: translateY(-1px) scaleY(1.01); opacity:1; } 50% { transform: translateY(1px) scaleY(.98); opacity:.95; } 75% { transform: translateY(-2px) scaleY(1.02); opacity:1; } 100% { transform: translateY(0) scaleY(1); opacity:.9; } }
@keyframes brt-drift { 0% { transform: translate(0,0); opacity:.2; } 50% { opacity:.6; } 100% { transform: translate(80px, -20px); opacity:.1; } }

/* lafeu-jokes */
.scn-lafeu-jokes {
  background: linear-gradient(180deg, #f5e0c0 0%, #e0c090 50%, #c8a070 100%), radial-gradient(ellipse at 50% 80%, #e8c8a0 0%, transparent 70%);
}
.scn-lafeu-jokes .stage-floor{ position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 40% 40% 0 0/ 20% 20% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.4); }
.scn-lafeu-jokes .backdrop  { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #f0d8b8 0%, #d4b88a 100%); opacity:0.8; }
.scn-lafeu-jokes .figure-left{ position:absolute; bottom:20%; left:20%; width:40px; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 35% 35% 40% 40%/ 50% 50% 35% 35%; transform-origin: bottom center; animation: laf-swayL 3s ease-in-out infinite; }
.scn-lafeu-jokes .figure-right{ position:absolute; bottom:22%; right:20%; width:38px; height:85px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 30% 30% 40% 40%/ 45% 45% 30% 30%; transform-origin: bottom center; animation: laf-swayR 3.2s ease-in-out infinite; }
.scn-lafeu-jokes .handkerchief{ position:absolute; bottom:45%; right:25%; width:30px; height:30px; background: linear-gradient(180deg, #f0d8c0 0%, #d0b090 100%); border-radius: 10% 10% 70% 70%/ 10% 10% 60% 60%; transform-origin: bottom center; animation: laf-wave 1.5s ease-in-out infinite; box-shadow: 0 2px 8px rgba(0,0,0,.3); }
.scn-lafeu-jokes .drum     { position:absolute; bottom:12%; left:45%; width:50px; height:20px; background: linear-gradient(180deg, #c8a070 0%, #a08050 100%); border-radius: 50%; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: laf-bounce 2s ease-in-out infinite; }
.scn-lafeu-jokes .sparkle { position:absolute; top:20%; left:15%; width:6px; height:6px; background: #ffd090; border-radius:50%; box-shadow: 0 0 8px 4px #ffd090; animation: laf-spark 1.8s ease-in-out infinite; }

@keyframes laf-swayL  { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes laf-swayR  { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes laf-wave   { 0% { transform: rotate(-15deg) scaleX(1); } 25% { transform: rotate(10deg) scaleX(1.2); } 50% { transform: rotate(-20deg) scaleX(.9); } 75% { transform: rotate(15deg) scaleX(1.1); } 100% { transform: rotate(-10deg) scaleX(1); } }
@keyframes laf-bounce { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-6px) scaleY(0.95); } }
@keyframes laf-spark  { 0% { opacity:0; transform: scale(0); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0; transform: scale(0); } }

/* king-concludes */
.scn-king-concludes {
  background: linear-gradient(180deg, #d4b88a 0%, #b89870 30%, #8a705a 70%, #5a4a3a 100%), radial-gradient(ellipse at 50% 30%, #f0d8b8 0%, transparent 60%);
}
.scn-king-concludes .court-floor{ position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0/ 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-king-concludes .pillars  { position:absolute; top:0; left:12%; width:20px; height:80%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:10% 10% 0 0; box-shadow: 0 0 12px rgba(0,0,0,.3), 120px 0 0 #8a7a6a; }
.scn-king-concludes .throne  { position:absolute; bottom:18%; left:35%; width:60px; height:80px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 30% 30%/ 30% 30% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: kc-throne 10s ease-in-out infinite; }
.scn-king-concludes .king    { position:absolute; bottom:15%; left:38%; width:45px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 35% 35% 50% 50%/ 55% 55% 40% 40%; transform-origin: bottom center; animation: kc-king 6s ease-in-out infinite; }
.scn-king-concludes .diana   { position:absolute; bottom:12%; left:58%; width:30px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 30% 30% 40% 40%/ 50% 50% 30% 30%; transform-origin: bottom center; animation: kc-diana 4s ease-in-out infinite; }
.scn-king-concludes .flower  { position:absolute; bottom:22%; left:60%; width:12px; height:20px; background: radial-gradient(circle at 50% 20%, #e8c090 0%, #b87840 60%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: kc-flower 3s ease-in-out infinite; box-shadow: 0 0 10px 2px rgba(200,150,100,.5); }
.scn-king-concludes .light   { position:absolute; top:10%; left:30%; width:120px; height:200px; background: linear-gradient(135deg, rgba(255,232,200,.3) 0%, rgba(255,232,200,0) 70%); filter: blur(12px); transform: rotate(-5deg); animation: kc-light 12s ease-in-out infinite alternate; }

@keyframes kc-throne{ 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes kc-king  { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kc-diana { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes kc-flower { 0% { transform: translateY(0) rotate(-10deg) scaleY(1); } 25% { transform: translateY(-2px) rotate(5deg) scaleY(1.1); } 50% { transform: translateY(0) rotate(-5deg) scaleY(.95); } 75% { transform: translateY(-1px) rotate(8deg) scaleY(1.05); } 100% { transform: translateY(0) rotate(-10deg) scaleY(1); } }
@keyframes kc-light  { 0% { opacity: .3; transform: rotate(-8deg) scaleX(.9); } 50% { opacity: .7; transform: rotate(-3deg) scaleX(1.1); } 100% { opacity: .4; transform: rotate(-6deg) scaleX(1); } }

/* Florentine camp gossip – tense, sunlit */
.scn-florentine-camp-gossip {
  background: linear-gradient(180deg, #87CEEB 0%, #f4d03f 60%, #d4a017 100%), radial-gradient(ellipse at 50% 100%, #f4d03f 0%, transparent 70%);
}
.scn-florentine-camp-gossip .fcg-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5bc0eb 0%, #f7c948 100%); animation: fcg-sky 12s ease-in-out infinite alternate; }
.scn-florentine-camp-gossip .fcg-ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b8a252 0%, #7d6b2f 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-florentine-camp-gossip .fcg-tent-left { position:absolute; bottom:35%; left:10%; width:25%; height:40%; background: linear-gradient(135deg, #c8a96e 0%, #a07d4c 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform: perspective(500px) rotateY(-15deg); }
.scn-florentine-camp-gossip .fcg-tent-right { position:absolute; bottom:35%; right:10%; width:25%; height:40%; background: linear-gradient(225deg, #c8a96e 0%, #a07d4c 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform: perspective(500px) rotateY(15deg); }
.scn-florentine-camp-gossip .fcg-flag { position:absolute; bottom:68%; left:28%; width:8px; height:25%; background: #8b4513; transform-origin: bottom center; animation: fcg-flag 1.5s ease-in-out infinite alternate; }
.scn-florentine-camp-gossip .fcg-flag::after { content:""; position:absolute; top:0; left:8px; width:40px; height:25px; background: linear-gradient(90deg, #c8553d 0%, #a0461a 100%); border-radius: 0 50% 50% 0; }
.scn-florentine-camp-gossip .fcg-soldier-a { position:absolute; bottom:20%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #5a3e1b 0%, #3a2410 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: fcg-walk 3s ease-in-out infinite; }
.scn-florentine-camp-gossip .fcg-soldier-b { position:absolute; bottom:20%; left:50%; width:20px; height:40px; background: linear-gradient(180deg, #5a3e1b 0%, #3a2410 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: fcg-walk 3.4s ease-in-out infinite 0.5s; }
.scn-florentine-camp-gossip .fcg-shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); }
.scn-florentine-camp-gossip .fcg-dust { position:absolute; bottom:10%; left:20%; width:100%; height:10%; background: radial-gradient(circle at 30% 50%, rgba(200,180,100,0.3) 0%, transparent 70%); filter: blur(8px); animation: fcg-dust 8s ease-in-out infinite alternate; }
@keyframes fcg-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes fcg-flag { 0% { transform: rotate(-15deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-10deg) } }
@keyframes fcg-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(10px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(20px) translateY(0) rotate(-2deg) } 75% { transform: translateX(10px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes fcg-dust { 0% { transform: translateX(0) scale(1); opacity:0.5 } 50% { transform: translateX(20px) scale(1.2); opacity:0.8 } 100% { transform: translateX(-10px) scale(0.9); opacity:0.4 } }

/* Bertram's sin exposed – tense, sunlit */
.scn-bertrams-sin-exposed {
  background: linear-gradient(180deg, #f5e6cc 0%, #d4c19a 30%, #a7865a 100%), radial-gradient(ellipse at 30% 50%, #f5e6cc 0%, transparent 70%);
}
.scn-bertrams-sin-exposed .bse-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #e8d5b5 0%, #c8b08a 100%); }
.scn-bertrams-sin-exposed .bse-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #a7865a 0px, #a7865a 20px, #b8986a 20px, #b8986a 40px); }
.scn-bertrams-sin-exposed .bse-window { position:absolute; top:15%; left:50%; width:30%; height:40%; transform:translateX(-50%); background: linear-gradient(180deg, #87CEEB 0%, #b0e0e6 100%); border: 8px solid #8b5e3c; box-shadow: inset 0 0 30px rgba(0,0,0,0.3); }
.scn-bertrams-sin-exposed .bse-figure { position:absolute; bottom:20%; left:50%; width:30px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; }
.scn-bertrams-sin-exposed .bse-scroll { position:absolute; bottom:25%; left:40%; width:15px; height:25px; background: linear-gradient(135deg, #f4e8c1 0%, #d6c48a 100%); border-radius: 5px; transform: rotate(15deg); animation: bse-scroll 4s ease-in-out infinite alternate; }
.scn-bertrams-sin-exposed .bse-lightbeam { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, transparent 80%); clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%); animation: bse-light 6s ease-in-out infinite alternate; }
.scn-bertrams-sin-exposed .bse-vignette { position:absolute; inset:0; background: radial-gradient(ellipse at center, transparent 60%, rgba(0,0,0,0.4) 100%); }
@keyframes bse-scroll { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-5px) } 100% { transform: rotate(8deg) translateY(0) } }
@keyframes bse-light { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.5 } }

/* Human weakness reflection – dark (but sunlit) */
.scn-human-weakness-reflection {
  background: linear-gradient(180deg, #2c3e50 0%, #4a6274 30%, #6d8a9e 60%, #b0c4de 100%), radial-gradient(ellipse at 70% 30%, #6d8a9e 0%, transparent 70%);
}
.scn-human-weakness-reflection .hwr-back { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a4a5a 0%, #5a7a8a 100%); }
.scn-human-weakness-reflection .hwr-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); }
.scn-human-weakness-reflection .hwr-mirror { position:absolute; top:15%; left:50%; width:30%; height:45%; transform:translateX(-50%); background: linear-gradient(180deg, #a0b4c8 0%, #788ca0 100%); border: 6px solid #8b6f4c; box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 40px rgba(0,0,0,0.3); }
.scn-human-weakness-reflection .hwr-figure { position:absolute; top:25%; left:50%; width:25px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0e 0%, #0e0600 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: hwr-turn 6s ease-in-out infinite; }
.scn-human-weakness-reflection .hwr-glint { position:absolute; top:20%; left:50%; width:10px; height:10px; transform:translateX(-50%); background: radial-gradient(circle, #fff8dc 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,248,220,0.4); animation: hwr-glint 3s ease-in-out infinite alternate; }
.scn-human-weakness-reflection .hwr-drapes { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(90deg, #5e1a1d 0%, #2a0a0a 100%); border-radius: 0 30% 30% 0; }
.scn-human-weakness-reflection .hwr-shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }
@keyframes hwr-turn { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(180deg) } 100% { transform: translateX(-50%) rotate(360deg) } }
@keyframes hwr-glint { 0% { opacity:0.2; transform: scale(1) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0.4; transform: scale(0.8) } }

/* Waiting for Bertram – tense, sunlit (golden hour) */
.scn-waiting-for-bertram {
  background: linear-gradient(180deg, #ffd700 0%, #f39c12 40%, #d35400 70%, #8e44ad 100%), radial-gradient(ellipse at 50% 100%, #d35400 0%, transparent 70%);
}
.scn-waiting-for-bertram .wfb-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0c27f 0%, #fc5c7d 100%); animation: wfb-sky 15s ease-in-out infinite alternate; }
.scn-waiting-for-bertram .wfb-path { position:absolute; bottom:0; left:30%; right:30%; height:40%; background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%); clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); }
.scn-waiting-for-bertram .wfb-gate { position:absolute; bottom:50%; left:50%; width:20%; height:35%; transform:translateX(-50%); background: linear-gradient(180deg, #5a3e1b 0%, #3a2410 100%); border: 4px solid #2a1a0e; border-radius: 30% 30% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-waiting-for-bertram .wfb-figure { position:absolute; bottom:25%; left:50%; width:20px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0e 0%, #0e0600 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: wfb-shift 5s ease-in-out infinite; }
.scn-waiting-for-bertram .wfb-lantern { position:absolute; bottom:50%; left:40%; width:12px; height:16px; background: radial-gradient(circle, #ffd700 0%, #b8860b 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,215,0,0.5); animation: wfb-lantern 4s ease-in-out infinite alternate; }
.scn-waiting-for-bertram .wfb-bird { position:absolute; top:25%; right:20%; width:20px; height:10px; filter: blur(1px); animation: wfb-bird 30s linear infinite; }
.scn-waiting-for-bertram .wfb-bird::before { content:""; position:absolute; width:20px; height:10px; background: #2c3e50; clip-path: polygon(0% 50%, 50% 0%, 100% 50%, 50% 100%); }
.scn-waiting-for-bertram .wfb-shadow { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }
.scn-waiting-for-bertram .wfb-dust { position:absolute; bottom:10%; left:30%; width:40%; height:5%; background: radial-gradient(ellipse at center, rgba(255,215,0,0.2) 0%, transparent 100%); filter: blur(10px); animation: wfb-dust 12s ease-in-out infinite alternate; }
@keyframes wfb-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes wfb-shift { 0% { transform: translateX(-50%) translateY(0) } 25% { transform: translateX(-45%) translateY(-2px) } 50% { transform: translateX(-50%) translateY(0) } 75% { transform: translateX(-55%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes wfb-lantern { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.8; transform: scale(0.9) } }
@keyframes wfb-bird { 0% { transform: translateX(-100px) translateY(0) } 25% { transform: translateX(200px) translateY(-20px) } 50% { transform: translateX(500px) translateY(0) } 75% { transform: translateX(800px) translateY(30px) } 100% { transform: translateX(1100px) translateY(0) } }
@keyframes wfb-dust { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.5) } 100% { opacity:0.4; transform: scale(0.8) } }

.scn-court-of-france-king {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 60%, #b8a88a 100%),
    radial-gradient(ellipse at 50% 80%, #e8d8b0 0%, transparent 70%);
  background-blend-mode: normal;
}
.scn-court-of-france-king .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d4b4 0%, #d4be9e 100%); }
.scn-court-of-france-king .floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8b08a 0%, #a08868 100%); border-top: 2px solid #b09878; }
.scn-court-of-france-king .dais    { position:absolute; bottom:30%; left:40%; width:20%; height:8%; background: linear-gradient(180deg, #b09878 0%, #8a7058 100%); border-radius:4px 4px 0 0; transform: perspective(400px) rotateX(5deg); }
.scn-court-of-france-king .throne  { position:absolute; bottom:36%; left:45%; width:10%; height:15%; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-court-of-france-king .king    { position:absolute; bottom:36%; left:48%; width:6%; height:18%; background: linear-gradient(180deg, #705848 0%, #483830 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cfk-breathe 6s ease-in-out infinite; }
.scn-court-of-france-king .attendant-left  { position:absolute; bottom:30%; left:30%; width:5%; height:20%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cfk-sway 8s ease-in-out infinite; }
.scn-court-of-france-king .attendant-right { position:absolute; bottom:30%; right:30%; width:5%; height:20%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cfk-sway 8s ease-in-out infinite reverse; }
.scn-court-of-france-king .window-glow { position:absolute; top:10%; left:20%; width:15%; height:20%; background: radial-gradient(ellipse at center, rgba(255,240,200,0.5) 0%, transparent 70%); animation: cfk-glow 4s ease-in-out infinite alternate; }
.scn-court-of-france-king .column    { position:absolute; bottom:30%; width:3%; height:50%; background: linear-gradient(180deg, #c8b8a0 0%, #a89078 100%); border-radius:2px; box-shadow: 2px 0 4px rgba(0,0,0,0.2); }
.scn-court-of-france-king .column.left { left:15%; }
.scn-court-of-france-king .column.right{ right:15%; }

@keyframes cfk-breathe { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
@keyframes cfk-sway    { 0%{transform:translateX(0)} 25%{transform:translateX(2px)} 50%{transform:translateX(0)} 75%{transform:translateX(-2px)} 100%{transform:translateX(0)} }
@keyframes cfk-glow    { 0%{opacity:0.6} 100%{opacity:1} }

.scn-countess-pleads-for-bertram {
  background: 
    linear-gradient(180deg, #f0e0c8 0%, #d8c8a8 40%, #c0b090 100%),
    radial-gradient(ellipse at 50% 30%, #fff0d0 0%, transparent 70%);
}
.scn-countess-pleads-for-bertram .bg-panel   { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #d8c8a8 0%, #c8b898 100%); border-bottom: 2px solid #b0a080; }
.scn-countess-pleads-for-bertram .floor-dark { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #a89878 0%, #887868 100%); }
.scn-countess-pleads-for-bertram .countess   { position:absolute; bottom:25%; left:45%; width:7%; height:22%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cpb-speak 2s ease-in-out infinite; }
.scn-countess-pleads-for-bertram .chair      { position:absolute; bottom:25%; left:52%; width:10%; height:12%; background: linear-gradient(180deg, #8a7058 0%, #6a5040 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 6px rgba(0,0,0,0.3); }
.scn-countess-pleads-for-bertram .candle     { position:absolute; bottom:40%; left:30%; width:2%; height:8%; background: linear-gradient(180deg, #ffe0a0 0%, #c8a060 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px #ffd080; animation: cpb-flicker 0.8s ease-in-out infinite alternate; }
.scn-countess-pleads-for-bertram .table      { position:absolute; bottom:28%; left:28%; width:8%; height:4%; background: linear-gradient(180deg, #b09878 0%, #907858 100%); border-radius:2px; }
.scn-countess-pleads-for-bertram .tapestry   { position:absolute; top:5%; left:10%; width:15%; height:40%; background: linear-gradient(180deg, #8a7058 0%, #6a5040 100%); border-radius: 4px; opacity:0.7; animation: cpb-drape 10s ease-in-out infinite alternate; }
.scn-countess-pleads-for-bertram .window-light { position:absolute; top:15%; right:20%; width:12%; height:18%; background: radial-gradient(ellipse at center, rgba(255,240,200,0.4) 0%, transparent 80%); animation: cpb-light 5s ease-in-out infinite alternate; }

@keyframes cpb-speak  { 0%{transform:translateY(0) scaleY(1)} 25%{transform:translateY(-1px) scaleY(1.01)} 50%{transform:translateY(0) scaleY(1)} 75%{transform:translateY(-1px) scaleY(1.01)} 100%{transform:translateY(0) scaleY(1)} }
@keyframes cpb-flicker{ 0%{opacity:0.9; box-shadow:0 0 15px 4px #ffd080} 50%{opacity:1; box-shadow:0 0 25px 8px #ffd080} 100%{opacity:0.9; box-shadow:0 0 15px 4px #ffd080} }
@keyframes cpb-drape  { 0%{transform:translateX(0)} 50%{transform:translateX(3px)} 100%{transform:translateX(0)} }
@keyframes cpb-light  { 0%{opacity:0.5} 100%{opacity:0.8} }

.scn-king-approves-marian {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 60%, #b8a88a 100%),
    radial-gradient(ellipse at 50% 90%, #e8d8b0 0%, transparent 80%);
}
.scn-king-approves-marian .bg-arch   { position:absolute; inset:0; background: linear-gradient(180deg, #e8d4b4 0%, #d4be9e 50%, #c0a888 100%); }
.scn-king-approves-marian .tiles     { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(90deg, #c8b898 0px, #c8b898 20px, #b8a888 20px, #b8a888 40px); }
.scn-king-approves-marian .king-stand{ position:absolute; bottom:25%; left:35%; width:8%; height:20%; background: linear-gradient(180deg, #705848 0%, #483830 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kam-still 6s ease-in-out infinite; }
.scn-king-approves-marian .marian    { position:absolute; bottom:25%; left:50%; width:6%; height:18%; background: linear-gradient(180deg, #a08068 0%, #806048 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kam-curtsey 4s ease-in-out infinite; }
.scn-king-approves-marian .bertram-enter { position:absolute; bottom:25%; left:65%; width:6%; height:18%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kam-enter 8s ease-in-out infinite; }
.scn-king-approves-marian .courtier  { position:absolute; bottom:25%; left:20%; width:5%; height:16%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: kam-bow 10s ease-in-out infinite; }
.scn-king-approves-marian .archway   { position:absolute; top:0; left:0; right:0; height:75%; background: radial-gradient(ellipse at 50% 100%, #d4c4a0 0%, transparent 70%); clip-path: polygon(10% 0%, 90% 0%, 85% 100%, 15% 100%); opacity:0.3; animation: kam-archpulse 12s ease-in-out infinite alternate; }
.scn-king-approves-marian .light-ray { position:absolute; top:10%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%); transform: rotate(15deg); animation: kam-ray 3s ease-in-out infinite alternate; }

@keyframes kam-still    { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-1px)} }
@keyframes kam-curtsey  { 0%{transform:translateY(0) scaleY(1)} 20%{transform:translateY(-2px) scaleY(0.95)} 40%{transform:translateY(0) scaleY(1)} 60%{transform:translateY(-2px) scaleY(0.95)} 100%{transform:translateY(0) scaleY(1)} }
@keyframes kam-enter    { 0%{transform:translateX(0) scaleY(1)} 25%{transform:translateX(-2px) scaleY(1.02)} 50%{transform:translateX(0) scaleY(1)} 75%{transform:translateX(-2px) scaleY(1.02)} 100%{transform:translateX(0) scaleY(1)} }
@keyframes kam-bow      { 0%{transform:rotateY(0)} 25%{transform:rotateY(20deg)} 50%{transform:rotateY(0)} 75%{transform:rotateY(-20deg)} 100%{transform:rotateY(0)} }
@keyframes kam-archpulse{ 0%{opacity:0.2} 100%{opacity:0.5} }
@keyframes kam-ray      { 0%{opacity:0.3; transform:rotate(12deg)} 50%{opacity:0.6; transform:rotate(18deg)} 100%{opacity:0.3; transform:rotate(12deg)} }

.scn-bertram-confesses-blame {
  background: 
    linear-gradient(180deg, #c8b8a0 0%, #a89078 40%, #887868 100%),
    radial-gradient(ellipse at 50% 20%, #e8d4b4 0%, transparent 70%);
}
.scn-bertram-confesses-blame .stone-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #b8a898 0%, #a09080 100%); background-image: repeating-linear-gradient(0deg, rgba(0,0,0,0.05) 0px, rgba(0,0,0,0.05) 4px, transparent 4px, transparent 8px); }
.scn-bertram-confesses-blame .stone-floor{ position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #887868 0%, #685848 100%); }
.scn-bertram-confesses-blame .bertram-kneeling { position:absolute; bottom:20%; left:45%; width:6%; height:16%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleY(0.8); transform-origin: bottom center; animation: bcb-kneel 3s ease-in-out infinite; }
.scn-bertram-confesses-blame .king-shadow { position:absolute; bottom:25%; left:35%; width:8%; height:22%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.8; animation: bcb-tower 4s ease-in-out infinite alternate; }
.scn-bertram-confesses-blame .sword     { position:absolute; top:5%; left:20%; width:2%; height:50%; background: linear-gradient(180deg, #c0b0a0 0%, #a09080 50%, #c0b0a0 100%); border-radius:1px; transform: rotate(-10deg); box-shadow: 0 0 4px rgba(0,0,0,0.5); animation: bcb-gleam 2s ease-in-out infinite alternate; }
.scn-bertram-confesses-blame .brazier   { position:absolute; bottom:20%; left:70%; width:6%; height:8%; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c06030 70%, #503010 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #ff8030; animation: bcb-fire 1.2s ease-in-out infinite alternate; }
.scn-bertram-confesses-blame .shadow-stripe { position:absolute; top:0; left:0; right:0; bottom:0; background: linear-gradient(90deg, transparent 40%, rgba(0,0,0,0.2) 45%, transparent 50%, rgba(0,0,0,0.15) 55%, transparent 60%); animation: bcb-stripe 5s ease-in-out infinite alternate; }

@keyframes bcb-kneel { 0%{transform:scaleY(0.8) translateY(0)} 25%{transform:scaleY(0.82) translateY(-1px)} 50%{transform:scaleY(0.8) translateY(0)} 75%{transform:scaleY(0.82) translateY(1px)} 100%{transform:scaleY(0.8) translateY(0)} }
@keyframes bcb-tower { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.03)} 100%{transform:scaleY(1)} }
@keyframes bcb-gleam { 0%{opacity:0.6; box-shadow:0 0 2px rgba(0,0,0,0.3)} 100%{opacity:1; box-shadow:0 0 6px rgba(0,0,0,0.6)} }
@keyframes bcb-fire  { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.1) translateY(-1px)} 100%{transform:scaleY(1)} }
@keyframes bcb-stripe{ 0%{opacity:0.3} 50%{opacity:0.6} 100%{opacity:0.3} }

/* florence-camp-end */
.scn-florence-camp-end {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 60%, #f4a460 100%),
              radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%);
}
.scn-florence-camp-end .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #b0d4f0 100%);
  animation: fce-sky 20s ease-in-out infinite alternate;
}
.scn-florence-camp-end .sun {
  position: absolute; top: 8%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8dc 0%, #f0e68c 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 20px rgba(255,215,0,0.5);
  animation: fce-sun 12s ease-in-out infinite alternate;
}
.scn-florence-camp-end .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8FBC8F 0%, #6B8E23 100%);
  border-radius: 60% 40% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.2);
  animation: fce-hills 18s ease-in-out infinite alternate;
}
.scn-florence-camp-end .tent {
  position: absolute; bottom: 28%; left: 30%; width: 100px; height: 80px;
  background: linear-gradient(135deg, #d2b48c 0%, #a0522d 80%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: fce-tent 4s ease-in-out infinite;
}
.scn-florence-camp-end .pole {
  position: absolute; bottom: 28%; left: 39%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #8B4513 0%, #5c3a1e 100%);
  transform-origin: bottom center;
  animation: fce-pole 6s ease-in-out infinite;
}
.scn-florence-camp-end .figure {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5c3a1e 0%, #3b2410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fce-walk 5s ease-in-out infinite;
}
.scn-florence-camp-end .campfire {
  position: absolute; bottom: 24%; left: 65%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ff8c00 0%, #ff4500 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,140,0,0.6);
  animation: fce-fire 2s ease-in-out infinite alternate;
}
.scn-florence-camp-end .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #6B8E23 0%, #556B2F 100%);
  border-radius: 0 0 20% 20%;
  animation: fce-grass 8s ease-in-out infinite alternate;
}
@keyframes fce-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fce-sun { 0% { transform: translateX(-5px) scale(1); } 50% { transform: translateX(0) scale(1.05); } 100% { transform: translateX(5px) scale(1); } }
@keyframes fce-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(2px) scaleY(1); } }
@keyframes fce-tent { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes fce-pole { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes fce-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-2deg); } 75% { transform: translateX(24px) rotate(2deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes fce-fire { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes fce-grass { 0% { background-position: 0 0; } 50% { background-position: 10px 0; } 100% { background-position: 0 0; } }

/* widows-house-helena-persuades */
.scn-widows-house-helena-persuades {
  background: linear-gradient(180deg, #f5deb3 0%, #deb887 40%, #c4a265 100%),
              radial-gradient(ellipse at 50% 100%, #c4a265 0%, transparent 70%);
}
.scn-widows-house-helena-persuades .wall {
  position: absolute; inset: 30% 0 0 0;
  background: linear-gradient(90deg, #d2b48c 0%, #f5deb3 30%, #d2b48c 100%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.1);
  animation: whp-wall 15s ease-in-out infinite alternate;
}
.scn-widows-house-helena-persuades .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7c5c3a 0%, #5c3a1e 100%);
  animation: whp-floor 10s ease-in-out infinite alternate;
}
.scn-widows-house-helena-persuades .window {
  position: absolute; top: 18%; left: 20%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #87CEEB 0%, #add8e6 100%);
  border: 4px solid #8B4513; box-shadow: inset 0 0 10px rgba(255,255,200,0.3);
  border-radius: 4px;
  animation: whp-window 6s ease-in-out infinite alternate;
}
.scn-widows-house-helena-persuades .table {
  position: absolute; bottom: 22%; left: 35%; width: 80px; height: 10px;
  background: linear-gradient(180deg, #8B4513 0%, #5c3a1e 100%);
  border-radius: 4px;
  animation: whp-table 12s ease-in-out infinite;
}
.scn-widows-house-helena-persuades .figure-helena {
  position: absolute; bottom: 16%; left: 45%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #d2b48c 0%, #c4a265 60%, #9c7a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: whp-helena 5s ease-in-out infinite;
}
.scn-widows-house-helena-persuades .figure-widow {
  position: absolute; bottom: 16%; left: 62%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3b2410 0%, #1a0f05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: whp-widow 6s ease-in-out infinite;
}
.scn-widows-house-helena-persuades .candle {
  position: absolute; bottom: 30%; left: 40%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #ffd700 0%, #ff8c00 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(255,215,0,0.7);
  animation: whp-candle 3s ease-in-out infinite alternate;
}
@keyframes whp-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes whp-floor { 0% { background-position: 0 0; } 50% { background-position: 5px 0; } 100% { background-position: 0 0; } }
@keyframes whp-window { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.9; transform: scaleY(1); } }
@keyframes whp-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes whp-helena { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes whp-widow { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes whp-candle { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.8; } }

/* item-counts-ring */
.scn-item-counts-ring {
  background: linear-gradient(180deg, #fff8dc 0%, #f5deb3 50%, #deb887 100%),
              radial-gradient(ellipse at 50% 30%, #fff8dc 0%, transparent 60%);
}
.scn-item-counts-ring .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%);
  animation: icr-bg 15s ease-in-out infinite alternate;
}
.scn-item-counts-ring .hand {
  position: absolute; bottom: 10%; left: 30%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #d2b48c 0%, #c4a265 60%, #9c7a4a 100%);
  border-radius: 60% 40% 30% 50% / 40% 50% 50% 60%;
  transform: rotate(-10deg);
  animation: icr-hand 8s ease-in-out infinite;
}
.scn-item-counts-ring .ring {
  position: absolute; bottom: 35%; left: 48%; width: 20px; height: 12px;
  background: radial-gradient(ellipse, #ffd700 0%, #b8860b 100%);
  border-radius: 30%;
  box-shadow: 0 0 30px 10px rgba(255,215,0,0.5);
  animation: icr-ring 2.5s ease-in-out infinite alternate;
}
.scn-item-counts-ring .shadow {
  position: absolute; bottom: 8%; left: 28%; width: 70px; height: 12px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(6px);
  animation: icr-shadow 8s ease-in-out infinite;
}
.scn-item-counts-ring .sparkle {
  position: absolute; top: 30%; left: 45%; width: 8px; height: 8px;
  background: radial-gradient(circle, #fff 0%, #ffd700 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,215,0,0.8);
  animation: icr-sparkle 1.5s ease-in-out infinite alternate;
}
@keyframes icr-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes icr-hand { 0% { transform: rotate(-12deg) translateY(0); } 25% { transform: rotate(-8deg) translateY(-5px); } 50% { transform: rotate(-10deg) translateY(2px); } 75% { transform: rotate(-14deg) translateY(-3px); } 100% { transform: rotate(-12deg) translateY(0); } }
@keyframes icr-ring { 0% { transform: scale(1) rotate(0deg); opacity: 0.9; } 50% { transform: scale(1.2) rotate(15deg); opacity: 1; } 100% { transform: scale(0.9) rotate(-10deg); opacity: 0.8; } }
@keyframes icr-shadow { 0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.2); opacity: 0.3; } 100% { transform: scaleX(0.9); opacity: 0.5; } }
@keyframes icr-sparkle { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: 0.4; transform: scale(0.9); } }

/* widows-house-plot-details */
.scn-widows-house-plot-details {
  background: linear-gradient(180deg, #f5deb3 0%, #deb887 40%, #c4a265 100%),
              radial-gradient(ellipse at 50% 30%, #f5deb3 0%, transparent 60%);
}
.scn-widows-house-plot-details .wall {
  position: absolute; inset: 25% 0 0 0;
  background: linear-gradient(90deg, #d2b48c 0%, #f5deb3 30%, #d2b48c 100%);
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.15);
  animation: whpd-wall 18s ease-in-out infinite alternate;
}
.scn-widows-house-plot-details .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7c5c3a 0%, #5c3a1e 100%);
  animation: whpd-floor 12s ease-in-out infinite alternate;
}
.scn-widows-house-plot-details .table {
  position: absolute; bottom: 18%; left: 40%; width: 90px; height: 8px;
  background: linear-gradient(180deg, #8B4513 0%, #5c3a1e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: whpd-table 10s ease-in-out infinite;
}
.scn-widows-house-plot-details .letter {
  position: absolute; bottom: 24%; left: 45%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #fff8dc 0%, #f5deb3 100%);
  border: 1px solid #c4a265;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: whpd-letter 6s ease-in-out infinite alternate;
}
.scn-widows-house-plot-details .quill {
  position: absolute; bottom: 26%; left: 55%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #ddd 0%, #a9a9a9 100%);
  transform: rotate(15deg);
  transform-origin: bottom center;
  border-radius: 0 0 50% 50%;
  animation: whpd-quill 4s ease-in-out infinite;
}
.scn-widows-house-plot-details .inkwell {
  position: absolute; bottom: 18%; left: 56%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #2f2f2f 0%, #1a1a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: inset 0 -4px 6px rgba(255,255,255,0.1);
  animation: whpd-inkwell 8s ease-in-out infinite alternate;
}
.scn-widows-house-plot-details .figure-seated {
  position: absolute; bottom: 10%; left: 32%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #3b2410 0%, #1a0f05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: whpd-figure 7s ease-in-out infinite;
}
@keyframes whpd-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes whpd-floor { 0% { background-position: 0 0; } 50% { background-position: -5px 0; } 100% { background-position: 0 0; } }
@keyframes whpd-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes whpd-letter { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes whpd-quill { 0% { transform: rotate(12deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(12deg); } }
@keyframes whpd-inkwell { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes whpd-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }

/* ===== Scene 1: rousillon-arrival-black ===== */
.scn-roussillon-arrival-black {
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #1a0a0a 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a3a 0%, transparent 70%);
}
.scn-roussillon-arrival-black .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  animation: rs-wall 20s ease-in-out infinite;
}
.scn-roussillon-arrival-black .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-roussillon-arrival-black .window {
  position: absolute; top: 12%; left: 55%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 50%, #705030 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 0 40px 10px rgba(255,240,200,0.3);
  animation: rs-window 8s ease-in-out infinite alternate;
}
.scn-roussillon-arrival-black .chandelier {
  position: absolute; top: 0; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 20% 20%;
  animation: rs-chandelier 6s ease-in-out infinite;
}
.scn-roussillon-arrival-black .figure {
  position: absolute; bottom: 22%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-roussillon-arrival-black .figure-a { left: 30%; animation: rs-figure 5s ease-in-out infinite; }
.scn-roussillon-arrival-black .figure-b { left: 45%; width: 30px; height: 62px; animation: rs-figure 5s ease-in-out infinite 1s; }
.scn-roussillon-arrival-black .figure-c { left: 65%; width: 26px; height: 58px; animation: rs-figure 5s ease-in-out infinite 2s; }
.scn-roussillon-arrival-black .light-ray {
  position: absolute; top: 10%; left: 55%; width: 120px; height: 100px;
  background: linear-gradient(135deg, rgba(255,240,200,0.15) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: rs-ray 12s ease-in-out infinite alternate;
}
@keyframes rs-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rs-window { 0% { background: #c0a060; box-shadow: 0 0 30px 6px rgba(255,240,200,0.2); } 50% { background: #d0b070; box-shadow: 0 0 60px 15px rgba(255,240,200,0.5); } 100% { background: #b09050; box-shadow: 0 0 40px 8px rgba(255,240,200,0.3); } }
@keyframes rs-chandelier { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes rs-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rs-ray { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.05); } 100% { opacity: 0.4; transform: scaleX(0.95); } }

/* ===== Scene 2: king-disease-discussion ===== */
.scn-king-disease-discussion {
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 30%, #908060 100%),
              radial-gradient(ellipse at 50% 0%, #e0d0b0 0%, transparent 60%);
}
.scn-king-disease-discussion .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c8b898 0%, #a89070 100%);
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.1);
}
.scn-king-disease-discussion .bg-throne {
  position: absolute; bottom: 15%; left: 50%; width: 100px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}
.scn-king-disease-discussion .figure-king {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kd-king 8s ease-in-out infinite;
}
.scn-king-disease-discussion .figure-lady {
  position: absolute; bottom: 25%; left: 38%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kd-lady 7s ease-in-out infinite;
}
.scn-king-disease-discussion .figure-lord {
  position: absolute; bottom: 25%; left: 62%; width: 32px; height: 68px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kd-lord 9s ease-in-out infinite;
}
.scn-king-disease-discussion .candle {
  position: absolute; bottom: 20%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 50%, #a09070 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.3);
  animation: kd-candle 3s ease-in-out infinite;
}
.scn-king-disease-discussion .candle-l { left: 25%; }
.scn-king-disease-discussion .candle-r { left: 72%; animation-delay: 1.5s; }
.scn-king-disease-discussion .glow {
  position: absolute; top: 10%; left: 50%; width: 200px; height: 200px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,230,180,0.15) 0%, transparent 60%);
  animation: kd-glow 10s ease-in-out infinite alternate;
}
@keyframes kd-king { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 30% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 60% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes kd-lady { 0% { transform: translateY(0) rotate(-1deg); } 40% { transform: translateY(-2px) rotate(1deg); } 80% { transform: translateY(1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes kd-lord { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes kd-candle { 0% { transform: translateY(0) scaleY(1); opacity: 0.9; } 50% { transform: translateY(-3px) scaleY(1.02); opacity: 1; } 100% { transform: translateY(0) scaleY(0.98); opacity: 0.85; } }
@keyframes kd-glow { 0% { opacity: 0.5; transform: translateX(-50%) scale(1); } 50% { opacity: 0.8; transform: translateX(-50%) scale(1.05); } 100% { opacity: 0.6; transform: translateX(-50%) scale(0.95); } }

/* ===== Scene 3: abandoned-physicians ===== */
.scn-abandoned-physicians {
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-abandoned-physicians .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.5);
}
.scn-abandoned-physicians .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
}
.scn-abandoned-physicians .table {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-abandoned-physicians .book {
  position: absolute; bottom: 18%; left: 46%; width: 30px; height: 22px;
  transform: rotate(-5deg);
  background: linear-gradient(180deg, #a08850 0%, #806840 100%);
  border-radius: 2px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.3);
  animation: ab-book 15s ease-in-out infinite;
}
.scn-abandoned-physicians .vial {
  position: absolute; bottom: 16%; left: 58%; width: 10px; height: 35px;
  background: linear-gradient(180deg, #c0d0d0 0%, #809090 100%);
  border-radius: 4px 4px 10px 10px;
  box-shadow: inset 0 0 10px rgba(255,255,255,0.2);
  animation: ab-vial 8s ease-in-out infinite;
}
.scn-abandoned-physicians .mote {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-abandoned-physicians .mote-a { top: 30%; left: 20%; animation: ab-mote 25s linear infinite; }
.scn-abandoned-physicians .mote-b { top: 50%; left: 70%; animation: ab-mote 30s linear infinite 5s; }
.scn-abandoned-physicians .shadow {
  position: absolute; bottom: 0; left: 30%; width: 100px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: ab-shadow 12s ease-in-out infinite alternate;
}
@keyframes ab-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(0); } }
@keyframes ab-vial { 0% { opacity: 0.8; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-1px); } 100% { opacity: 0.85; transform: translateY(0); } }
@keyframes ab-mote { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translate(40px, -60px) scale(0.8); opacity: 0; } }
@keyframes ab-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.1); opacity: 0.5; } 100% { transform: scaleX(0.9); opacity: 0.2; } }

/* ===== Scene 4: gerard-de-narbon-remembered ===== */
.scn-gerard-de-narbon-remembered {
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 40%, #4a3018 100%),
              radial-gradient(ellipse at 70% 30%, #c08060 0%, transparent 60%);
}
.scn-gerard-de-narbon-remembered .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.3);
}
.scn-gerard-de-narbon-remembered .fireplace {
  position: absolute; bottom: 15%; left: 30%; width: 140px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: inset 0 -20px 40px #0a0000;
}
.scn-gerard-de-narbon-remembered .mantle {
  position: absolute; bottom: 35%; left: 29%; width: 150px; height: 14px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
}
.scn-gerard-de-narbon-remembered .portrait {
  position: absolute; bottom: 45%; left: 33%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border: 6px solid #6a4a2a;
  border-radius: 4px;
  animation: gn-portrait 20s ease-in-out infinite;
}
.scn-gerard-de-narbon-remembered .armchair {
  position: absolute; bottom: 12%; left: 55%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-gerard-de-narbon-remembered .fire-glow {
  position: absolute; bottom: 18%; left: 40%; width: 60px; height: 70px;
  background: radial-gradient(ellipse, rgba(255,160,80,0.6) 0%, rgba(255,100,30,0.3) 40%, transparent 70%);
  border-radius: 50%;
  animation: gn-fire 4s ease-in-out infinite alternate;
}
.scn-gerard-de-narbon-remembered .ember {
  position: absolute; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-gerard-de-narbon-remembered .ember-a { bottom: 20%; left: 42%; animation: gn-ember 3s ease-in-out infinite; }
.scn-gerard-de-narbon-remembered .ember-b { bottom: 22%; left: 38%; animation: gn-ember 3.5s ease-in-out infinite 0.5s; }
@keyframes gn-portrait { 0% { transform: rotate(-1deg) scale(1); } 50% { transform: rotate(0deg) scale(1.01); } 100% { transform: rotate(1deg) scale(0.99); } }
@keyframes gn-fire { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(0.95); } }
@keyframes gn-ember { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-10px) scale(1.3); opacity: 1; } 100% { transform: translateY(-20px) scale(0.5); opacity: 0; } }

/* parolles-farewell */
.scn-parolles-farewell {
  background: linear-gradient(180deg, #f5e6c8 0%, #d8c49a 40%, #b8a080 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-parolles-farewell .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #e8d8b0 0%, #c8b488 100%); }
.scn-parolles-farewell .bg-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #7a5a3a 0%, #9a7a5a 100%); border-radius: 10% 10% 0 0; }
.scn-parolles-farewell .pillar-left { position:absolute; left:18%; bottom:35%; width:12%; height:65%; background: linear-gradient(90deg, #d0b898 0%, #b89a78 50%, #a08060 100%); border-radius: 6px; box-shadow: 4px 0 8px rgba(0,0,0,0.2); }
.scn-parolles-farewell .curtain-right { position:absolute; right:10%; bottom:35%; width:20%; height:65%; background: linear-gradient(135deg, #b03050 0%, #802848 50%, #601c30 100%); border-radius: 40% 0 0 40% / 60% 0 0 60%; opacity:0.8; }
.scn-parolles-farewell .figure-parolles { position:absolute; bottom:35%; left:50%; width:14%; height:45%; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a12 0%, #1a100a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; animation: pf-body 3s ease-in-out infinite; }
.scn-parolles-farewell .arm-cape { position:absolute; transform-origin: right center; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 60% 10% 10% 60% / 80% 20% 20% 80%; animation: pf-arm 12s ease-in-out infinite alternate; left: 43.75%; top: 37.67%; width: 28%; height: 12%;}
.scn-parolles-farewell .hat { position:absolute; bottom:72%; left:48%; width:16%; height:10%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%; transform: rotate(-10deg); animation: pf-hat 4s ease-in-out infinite; }
.scn-parolles-farewell .spotlight { position:absolute; top:0; left:30%; width:40%; height:70%; background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,0.35) 0%, transparent 70%); animation: pf-spotlight 2s ease-in-out infinite alternate; }
@keyframes pf-body { 0% { transform:translateX(-50%) translateY(0) rotate(0deg); } 50% { transform:translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform:translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes pf-arm { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(15deg) scaleX(1.1); } 100% { transform: rotate(-10deg) scaleX(0.9); } }
@keyframes pf-hat { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-5px); } 100% { transform: rotate(-12deg) translateY(2px); } }
@keyframes pf-spotlight { 0% { opacity:0.6; transform:scaleY(1); } 50% { opacity:0.9; transform:scaleY(1.1); } 100% { opacity:0.7; transform:scaleY(0.95); } }

/* helena-resolve-cure */

.scn-helena-resolve-cure {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 40%, #0d0a06 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, transparent 70%);
}
.scn-helena-resolve-cure .bg-wall-dim { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #3a2e22 0%, #1e1812 100%); }
.scn-helena-resolve-cure .bg-floor-dim { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #12100a 0%, #1a1610 100%); border-radius: 8% 8% 0 0; }
.scn-helena-resolve-cure .table-study { position:absolute; bottom:30%; left:30%; width:40%; height:8%; background: linear-gradient(90deg, #4a3020 0%, #3a2212 50%, #2a180a 100%); border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,0.6); }
.scn-helena-resolve-cure .candle { position:absolute; bottom:38%; left:48%; width:2%; height:12%; background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 80%, #6a4a2a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; }
.scn-helena-resolve-cure .glow-candle { position:absolute; bottom:38%; left:47%; width:6%; height:10%; background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%); border-radius:50%; animation: hrc-glow 2s ease-in-out infinite alternate; }
.scn-helena-resolve-cure .book-open { position:absolute; bottom:30%; left:35%; width:20%; height:6%; background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%; transform: rotate(2deg); }
.scn-helena-resolve-cure .figure-helena { position:absolute; bottom:30%; left:50%; width:12%; height:40%; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; animation: hrc-figure 8s ease-in-out infinite; }
.scn-helena-resolve-cure .shadow-helena { position:absolute; bottom:30%; left:45%; width:20%; height:6%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 70%); border-radius:50%; animation: hrc-shadow 8s ease-in-out infinite; }
@keyframes hrc-glow { 0% { opacity:0.5; transform:scale(0.8); } 50% { opacity:0.8; transform:scale(1.2); } 100% { opacity:0.6; transform:scale(0.9); } }
@keyframes hrc-figure { 0% { transform:translateX(-50%) translateY(0) rotate(0deg); } 33% { transform:translateX(-50%) translateY(-2px) rotate(0.5deg); } 66% { transform:translateX(-50%) translateY(1px) rotate(-0.3deg); } 100% { transform:translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes hrc-shadow { 0% { opacity:0.5; transform:scaleX(1); } 50% { opacity:0.7; transform:scaleX(1.1); } 100% { opacity:0.4; transform:scaleX(0.95); } }

/* paris-king-war-talk */
.scn-paris-king-war-talk {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #a89878 100%),
              radial-gradient(ellipse at 50% 80%, #f0e4d0 0%, transparent 60%);
}
.scn-paris-king-war-talk .bg-throne-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #d0c0a8 0%, #b0a088 100%); }
.scn-paris-king-war-talk .bg-throne-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #6a5a4a 0%, #8a7a6a 100%); border-radius: 5% 5% 0 0; }
.scn-paris-king-war-talk .king-figure { position:absolute; bottom:40%; left:50%; width:16%; height:35%; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,0.3); animation: pk-king 12s ease-in-out infinite; }
.scn-paris-king-war-talk .attendant-left { position:absolute; bottom:40%; left:30%; width:10%; height:30%; background: linear-gradient(180deg, #3a2e22 0%, #1e1812 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; animation: pk-att-left 15s ease-in-out infinite; }
.scn-paris-king-war-talk .attendant-right { position:absolute; bottom:40%; right:30%; width:10%; height:30%; background: linear-gradient(180deg, #3a2e22 0%, #1e1812 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; animation: pk-att-right 15s ease-in-out infinite reverse; }
.scn-paris-king-war-talk .throne { position:absolute; bottom:40%; left:46%; width:8%; height:8%; background: linear-gradient(135deg, #c8a050 0%, #a08030 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,0.4); }
.scn-paris-king-war-talk .column-left { position:absolute; left:10%; bottom:40%; width:6%; height:60%; background: linear-gradient(90deg, #c8b898 0%, #b0a088 50%, #988878 100%); border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.2); }
.scn-paris-king-war-talk .column-right { position:absolute; right:10%; bottom:40%; width:6%; height:60%; background: linear-gradient(90deg, #988878 0%, #b0a088 50%, #c8b898 100%); border-radius: 4px; box-shadow: -2px 0 6px rgba(0,0,0,0.2); }
@keyframes pk-king { 0% { transform:translateX(-50%) translateY(0) rotate(0deg); } 50% { transform:translateX(-50%) translateY(-2px) rotate(0.5deg); } 100% { transform:translateX(-50%) translateY(0) rotate(-0.3deg); } }
@keyframes pk-att-left { 0% { transform:translateY(0); opacity:0.8; } 50% { transform:translateY(-2px); opacity:1; } 100% { transform:translateY(0); opacity:0.9; } }
@keyframes pk-att-right { 0% { transform:translateY(0); opacity:0.8; } 50% { transform:translateY(-2px); opacity:1; } 100% { transform:translateY(0); opacity:0.9; } }

/* bertram-arrives-paris */
.scn-bertram-arrives-paris {
  background: linear-gradient(180deg, #f0e4c8 0%, #d8c8a8 40%, #b8a888 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-bertram-arrives-paris .bg-arch { position:absolute; bottom:30%; left:20%; width:60%; height:70%; background: linear-gradient(135deg, #d8c8a8 0%, #b8a888 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.15); }
.scn-bertram-arrives-paris .bg-floor-arrival { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #6a5a4a 0%, #8a7a6a 100%); border-radius: 8% 8% 0 0; }
.scn-bertram-arrives-paris .figure-bertram { position:absolute; bottom:30%; left:42%; width:14%; height:40%; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; animation: ba-bertram 6s ease-in-out infinite; }
.scn-bertram-arrives-paris .figure-lafeu { position:absolute; bottom:30%; left:58%; width:14%; height:40%; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; animation: ba-lafeu 6s ease-in-out infinite 3s; }
.scn-bertram-arrives-paris .arm-greeting { position:absolute; bottom:40%; left:48%; width:20%; height:8%; transform-origin: left center; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 60% 10% 10% 60% / 80% 20% 20% 80%; animation: ba-arm 2s ease-in-out infinite alternate; }
.scn-bertram-arrives-paris .cloak { position:absolute; bottom:30%; left:36%; width:20%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a12 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(3deg); animation: ba-cloak 8s ease-in-out infinite; }
.scn-bertram-arrives-paris .sunburst { position:absolute; top:5%; left:35%; width:30%; height:30%; background: radial-gradient(ellipse at 50% 50%, rgba(255,220,150,0.3) 0%, transparent 70%); animation: ba-sun 10s ease-in-out infinite alternate; }
@keyframes ba-bertram { 0% { transform:translateX(-50%) translateY(0) rotate(0deg); } 50% { transform:translateX(-50%) translateY(-3px) rotate(0.5deg); } 100% { transform:translateX(-50%) translateY(0) rotate(-0.3deg); } }
@keyframes ba-lafeu { 0% { transform:translateX(-50%) translateY(0); opacity:0.9; } 50% { transform:translateX(-50%) translateY(-2px); opacity:1; } 100% { transform:translateX(-50%) translateY(0); opacity:0.95; } }
@keyframes ba-arm { 0% { transform: rotate(-15deg) scaleX(1); } 50% { transform: rotate(20deg) scaleX(1.2); } 100% { transform: rotate(-10deg) scaleX(0.9); } }
@keyframes ba-cloak { 0% { transform: rotate(3deg) scaleX(1); } 50% { transform: rotate(6deg) scaleX(1.05); } 100% { transform: rotate(0deg) scaleX(0.95); } }
@keyframes ba-sun { 0% { opacity:0.5; transform:scale(0.9); } 50% { opacity:0.8; transform:scale(1.1); } 100% { opacity:0.6; transform:scale(0.95); } }

.scn-count-rousillon-return {
  background: 
    linear-gradient(180deg, #add8e6 0%, #87ceeb 30%, #f0e68c 70%, #f5deb3 100%),
    radial-gradient(ellipse at 80% 60%, rgba(255,215,0,0.3) 0%, transparent 60%);
}
.scn-count-rousillon-return .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #b0e0e6 0%, #f0e68c 80%); animation: crr-sky 18s ease-in-out infinite alternate; }
.scn-count-rousillon-return .sun { position:absolute; top:10%; right:20%; width:60px; height:60px; background:radial-gradient(circle, #ffe4b5 0%, #ffd700 60%, transparent 70%); border-radius:50%; box-shadow:0 0 40px 20px rgba(255,215,0,0.5); animation: crr-sun 6s ease-in-out infinite alternate; }
.scn-count-rousillon-return .hills { position:absolute; bottom:35%; left:0; right:0; height:20%; background:linear-gradient(180deg, #556b2f 0%, #3b5323 100%); border-radius:50% 40% 0 0; animation: crr-hills 20s ease-in-out infinite alternate; }
.scn-count-rousillon-return .road { position:absolute; bottom:20%; left:10%; width:80%; height:15%; background:linear-gradient(180deg, #c2a67a 0%, #9e7b5e 100%); clip-path:polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%); animation: crr-road 12s ease-in-out infinite; }
.scn-count-rousillon-return .figure { position:absolute; bottom:20%; left:40%; width:16px; height:36px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: crr-figure 8s ease-in-out infinite; }
.scn-count-rousillon-return .tower { position:absolute; bottom:38%; left:70%; width:20px; height:50px; background:linear-gradient(180deg, #8b7d6b 0%, #6b5a4a 100%); border-radius:10% 10% 0 0; box-shadow:inset 0 0 6px rgba(0,0,0,0.3); animation: crr-tower 16s ease-in-out infinite alternate; }
.scn-count-rousillon-return .cloud-a { position:absolute; top:8%; left:10%; width:80px; height:20px; background:rgba(255,255,255,0.5); border-radius:50%; filter:blur(6px); animation: crr-cloud-a 45s linear infinite; }
.scn-count-rousillon-return .cloud-b { position:absolute; top:15%; right:30%; width:60px; height:14px; background:rgba(255,255,255,0.3); border-radius:50%; filter:blur(5px); animation: crr-cloud-b 35s linear infinite reverse; }

@keyframes crr-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes crr-sun { 0% { transform:translate(0,0) scale(1); box-shadow:0 0 40px 20px rgba(255,215,0,0.5); } 50% { transform:translate(3px,-3px) scale(1.05); box-shadow:0 0 60px 30px rgba(255,215,0,0.7); } 100% { transform:translate(0,0) scale(1); box-shadow:0 0 40px 20px rgba(255,215,0,0.5); } }
@keyframes crr-hills { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) } 100% { transform:translateY(0) } }
@keyframes crr-road { 0% { filter:brightness(1) } 50% { filter:brightness(1.1) } 100% { filter:brightness(1) } }
@keyframes crr-figure { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(8px) translateY(-2px) rotate(2deg) } 50% { transform:translateX(16px) translateY(0) rotate(-2deg) } 75% { transform:translateX(24px) translateY(-2px) rotate(2deg) } 100% { transform:translateX(32px) translateY(0) rotate(0) } }
@keyframes crr-tower { 0% { filter:brightness(0.8) } 50% { filter:brightness(1.2) } 100% { filter:brightness(0.8) } }
@keyframes crr-cloud-a { 0% { transform:translateX(-50px) } 100% { transform:translateX(120vw) } }
@keyframes crr-cloud-b { 0% { transform:translateX(0) } 100% { transform:translateX(-80vw) } }

.scn-helenas-death-confirmed {
  background:
    linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 40%, #8a9aaa 65%, #d4d8dc 100%),
    radial-gradient(ellipse at 50% 100%, #6a7a8a 0%, transparent 70%);
}
.scn-helenas-death-confirmed .church-wall { position:absolute; bottom:0; left:10%; width:80%; height:70%; background:linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:4% 4% 0 0; box-shadow:inset 0 0 30px rgba(0,0,0,0.5); animation: hdc-wall 20s ease-in-out infinite alternate; }
.scn-helenas-death-confirmed .doorway { position:absolute; bottom:0; left:50%; width:60px; height:90px; transform:translateX(-50%); background:linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:40% 40% 0 0 / 60% 60% 0 0; box-shadow:inset 0 0 20px rgba(0,0,0,0.8); animation: hdc-door 8s ease-in-out infinite; }
.scn-helenas-death-confirmed .rector { position:absolute; bottom:18%; left:38%; width:22px; height:50px; background:linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: hdc-rector 6s ease-in-out infinite; }
.scn-helenas-death-confirmed .grave { position:absolute; bottom:8%; left:55%; width:40px; height:20px; background:linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:20% 20% 0 0; box-shadow:0 2px 6px rgba(0,0,0,0.4); animation: hdc-grave 15s ease-in-out infinite alternate; }
.scn-helenas-death-confirmed .cross { position:absolute; bottom:18%; left:57%; width:4px; height:30px; background:#3a2a1a; border-radius:20%; box-shadow:0 0 6px rgba(0,0,0,0.2); animation: hdc-cross 10s ease-in-out infinite; }
.scn-helenas-death-confirmed .shadow { position:absolute; bottom:0; left:0; right:0; height:60%; background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 50%, rgba(0,0,0,0.7) 100%); animation: hdc-shadow 12s ease-in-out infinite alternate; }
.scn-helenas-death-confirmed .circle-light { position:absolute; top:10%; left:30%; width:100px; height:100px; background:radial-gradient(circle, rgba(255,255,200,0.2) 0%, transparent 70%); border-radius:50%; animation: hdc-light 9s ease-in-out infinite alternate; }

@keyframes hdc-wall { 0% { filter:brightness(0.7) } 50% { filter:brightness(1) } 100% { filter:brightness(0.8) } }
@keyframes hdc-door { 0% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-50%) scaleY(1.03) } 100% { transform:translateX(-50%) scaleY(1) } }
@keyframes hdc-rector { 0% { transform:translateX(0) rotate(0) } 33% { transform:translateX(4px) rotate(2deg) } 66% { transform:translateX(-4px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes hdc-grave { 0% { filter:brightness(0.8) } 50% { filter:brightness(1.2) } 100% { filter:brightness(0.8) } }
@keyframes hdc-cross { 0% { transform:rotate(0) } 50% { transform:rotate(5deg) } 100% { transform:rotate(0) } }
@keyframes hdc-shadow { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes hdc-light { 0% { opacity:0.3; transform:scale(1) } 50% { opacity:0.6; transform:scale(1.2) } 100% { opacity:0.3; transform:scale(1) } }

.scn-mingled-yarn-of-life {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 40%, #7a6a5a 70%, #9a8a7a 100%),
    radial-gradient(ellipse at 30% 50%, #7a5a3a 0%, transparent 60%);
}
.scn-mingled-yarn-of-life .room-back { position:absolute; inset:0; background:linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 100%); animation: mjy-back 30s ease-in-out infinite alternate; }
.scn-mingled-yarn-of-life .loom { position:absolute; bottom:20%; left:50%; width:120px; height:100px; transform:translateX(-50%); background:linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:8% 8% 4% 4%; box-shadow:0 8px 16px rgba(0,0,0,0.6); animation: mjy-loom 14s ease-in-out infinite; }
.scn-mingled-yarn-of-life .threads1 { position:absolute; bottom:35%; left:30%; width:6px; height:60px; background:linear-gradient(180deg, #c8a060 0%, #b08040 100%); border-radius:20%; transform:rotate(30deg); animation: mjy-thread1 5s ease-in-out infinite alternate; }
.scn-mingled-yarn-of-life .threads2 { position:absolute; bottom:30%; left:55%; width:5px; height:70px; background:linear-gradient(180deg, #80a0c0 0%, #6080a0 100%); border-radius:20%; transform:rotate(-20deg); animation: mjy-thread2 4s ease-in-out infinite alternate; }
.scn-mingled-yarn-of-life .figure { position:absolute; bottom:20%; left:20%; width:20px; height:44px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: mjy-figure 7s ease-in-out infinite; }
.scn-mingled-yarn-of-life .light-beam { position:absolute; top:0; left:20%; width:40px; height:100%; background:linear-gradient(180deg, rgba(255,255,200,0.15) 0%, transparent 60%); clip-path:polygon(0% 0%, 100% 0%, 60% 100%, 40% 100%); animation: mjy-beam 8s ease-in-out infinite alternate; }
.scn-mingled-yarn-of-life .yarn-tangle { position:absolute; bottom:40%; left:38%; width:30px; height:30px; background:radial-gradient(circle, #a08060 0%, #7a5a3a 80%); border-radius:50%; filter:blur(2px); animation: mjy-tangle 6s ease-in-out infinite; }

@keyframes mjy-back { 0% { filter:brightness(0.6) } 50% { filter:brightness(1) } 100% { filter:brightness(0.7) } }
@keyframes mjy-loom { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-4px) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes mjy-thread1 { 0% { transform:rotate(25deg) translateX(0) } 50% { transform:rotate(35deg) translateX(5px) } 100% { transform:rotate(25deg) translateX(0) } }
@keyframes mjy-thread2 { 0% { transform:rotate(-25deg) translateX(0) } 50% { transform:rotate(-15deg) translateX(-5px) } 100% { transform:rotate(-25deg) translateX(0) } }
@keyframes mjy-figure { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(6px) rotate(2deg) } 50% { transform:translateX(12px) rotate(0) } 75% { transform:translateX(6px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes mjy-beam { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.2 } }
@keyframes mjy-tangle { 0% { transform:scale(1) rotate(0) } 50% { transform:scale(1.2) rotate(180deg) } 100% { transform:scale(1) rotate(360deg) } }

.scn-bertram-departure-news {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f5deb3 70%, #d2b48c 100%),
    radial-gradient(ellipse at 50% 0%, #ffe4b5 0%, transparent 50%);
}
.scn-bertram-departure-news .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #a0d8ef 0%, #f0e68c 80%); animation: bdn-sky 25s ease-in-out infinite alternate; }
.scn-bertram-departure-news .street { position:absolute; bottom:0; left:0; width:100%; height:50%; background:linear-gradient(180deg, #c2a67a 0%, #a08060 100%); clip-path:polygon(10% 0, 90% 0, 100% 100%, 0% 100%); animation: bdn-street 14s ease-in-out infinite; }
.scn-bertram-departure-news .building-l { position:absolute; bottom:30%; left:5%; width:30%; height:60%; background:linear-gradient(180deg, #a09080 0%, #807060 100%); border-radius:4% 4% 0 0; box-shadow:inset 0 -10px 20px rgba(0,0,0,0.3); animation: bdn-build-l 20s ease-in-out infinite alternate; }
.scn-bertram-departure-news .building-r { position:absolute; bottom:30%; right:5%; width:25%; height:50%; background:linear-gradient(180deg, #908070 0%, #706050 100%); border-radius:4% 4% 0 0; box-shadow:inset 0 -8px 16px rgba(0,0,0,0.3); animation: bdn-build-r 18s ease-in-out infinite alternate; }
.scn-bertram-departure-news .duke { position:absolute; bottom:20%; left:35%; width:22px; height:48px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: bdn-duke 6s ease-in-out infinite; }
.scn-bertram-departure-news .bertram { position:absolute; bottom:20%; left:55%; width:20px; height:44px; background:linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: bdn-bertram 8s ease-in-out infinite; }
.scn-bertram-departure-news .shadow-left { position:absolute; bottom:0; left:0; width:50%; height:40%; background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.25) 100%); animation: bdn-shadow 12s ease-in-out infinite alternate; }

@keyframes bdn-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bdn-street { 0% { filter:brightness(1) } 50% { filter:brightness(1.05) } 100% { filter:brightness(1) } }
@keyframes bdn-build-l { 0% { filter:brightness(0.8) } 50% { filter:brightness(1.1) } 100% { filter:brightness(0.8) } }
@keyframes bdn-build-r { 0% { filter:brightness(0.8) } 50% { filter:brightness(1.1) } 100% { filter:brightness(0.8) } }
@keyframes bdn-duke { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(3px) rotate(2deg) } 50% { transform:translateX(6px) rotate(0) } 75% { transform:translateX(3px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes bdn-bertram { 0% { transform:translateX(0) translateY(0) } 20% { transform:translateX(-3px) translateY(-1px) } 40% { transform:translateX(-6px) translateY(0) } 60% { transform:translateX(-3px) translateY(1px) } 80% { transform:translateX(0) translateY(0) } 100% { transform:translateX(0) translateY(0) } }
@keyframes bdn-shadow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

.scn-king-reflects-on-love { background: linear-gradient(180deg, #d4b880 0%, #c49858 40%, #b8843a 70%, #8a6030 100%), radial-gradient(ellipse at 70% 30%, #f0d8a0 0%, transparent 60%); }
.scn-king-reflects-on-love .wall-warm { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #c8a870 0%, #b89050 100%); }
.scn-king-reflects-on-love .window-arch { position:absolute; top:12%; left:66%; width:80px; height:110px; background: radial-gradient(ellipse at 50% 30%, #f8ecc0 0%, #d8c890 50%, #a08050 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3), 0 0 40px 10px #f0d8a0; }
.scn-king-reflects-on-love .sunbeam { position:absolute; top:10%; left:62%; width:40px; height:60%; background: linear-gradient(180deg, rgba(255,230,170,.6) 0%, rgba(255,220,150,.2) 100%); transform: skewX(-12deg); filter: blur(8px); animation: kr-beam 8s ease-in-out infinite alternate; }
.scn-king-reflects-on-love .throne { position:absolute; bottom:24%; left:28%; width:100px; height:80px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2510 100%); border-radius:40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.5), inset 0 4px 8px rgba(255,200,100,.15); }
.scn-king-reflects-on-love .figure-king { position:absolute; bottom:20%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kr-sit 6s ease-in-out infinite; }
.scn-king-reflects-on-love .crown-glow { position:absolute; bottom:68%; left:30%; width:32px; height:12px; background: radial-gradient(ellipse at 50% 50%, #ffd060 0%, #e0a030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 18px 6px #ffd060, 0 0 36px 12px rgba(255,208,96,.3); animation: kr-crown 4s ease-in-out infinite alternate; }
.scn-king-reflects-on-love .floor-tile { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(0deg, #5a4030 0%, #7a5840 30%, #8a6850 60%, #7a5840 100%); }
.scn-king-reflects-on-love .dust-mote { position:absolute; top:22%; left:48%; width:4px; height:4px; background:rgba(255,230,180,.8); border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,230,180,.5); animation: kr-mote 12s ease-in-out infinite; }
.scn-king-reflects-on-love .mote-b { position:absolute; top:18%; left:55%; width:3px; height:3px; background:rgba(255,230,180,.6); border-radius:50%; box-shadow: 0 0 4px 1px rgba(255,230,180,.3); animation: kr-mote 15s ease-in-out infinite reverse; }
@keyframes kr-beam { 0% { opacity:.5; transform: skewX(-12deg) scaleX(.9) } 50% { opacity:.8; transform: skewX(-8deg) scaleX(1.1) } 100% { opacity:.6; transform: skewX(-14deg) scaleX(.95) } }
@keyframes kr-sit { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes kr-crown { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.15) } 100% { opacity:.8; transform: scaleY(.95) } }
@keyframes kr-mote { 0% { transform: translate(0,0) scale(1); opacity:.3 } 33% { transform: translate(12px,-8px) scale(1.5); opacity:.8 } 66% { transform: translate(-6px,-16px) scale(.8); opacity:.5 } 100% { transform: translate(8px,-4px) scale(1); opacity:.4 } }

.scn-ring-dispute-begins { background: linear-gradient(90deg, #4a3a30 0%, #7a6050 30%, #8a7060 50%, #7a6050 70%, #4a3a30 100%), radial-gradient(ellipse at 50% 40%, #a08870 0%, transparent 70%); }
.scn-ring-dispute-begins .hall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6a5a4a 0%, #8a7a6a 40%, #6a5a4a 100%); }
.scn-ring-dispute-begins .pillar { position:absolute; bottom:20%; width:30px; height:80%; background: linear-gradient(90deg, #5a4a3a 0%, #8a7868 30%, #6a5a4a 70%); border-radius:6px; box-shadow: 0 0 20px rgba(0,0,0,.3); }
.scn-ring-dispute-begins .pillar.left { left:20%; }
.scn-ring-dispute-begins .pillar.right { right:20%; }
.scn-ring-dispute-begins .figure-helen { position:absolute; bottom:22%; left:35%; width:36px; height:64px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rd-helen 5s ease-in-out infinite; }
.scn-ring-dispute-begins .figure-bertram { position:absolute; bottom:22%; right:35%; width:38px; height:66px; background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 50%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rd-bertram 5s ease-in-out infinite 1s; }
.scn-ring-dispute-begins .ring-glint { position:absolute; bottom:48%; left:50%; width:8px; height:8px; background: radial-gradient(circle, #ffd060 0%, #c09030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,208,96,.4); animation: rd-glint 2.5s ease-in-out infinite alternate; }
.scn-ring-dispute-begins .floor-rush { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 50%, #4a3a2a 100%); }
.scn-ring-dispute-begins .shadow-stripe { position:absolute; bottom:0; left:20%; width:3px; height:60%; background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, rgba(0,0,0,.4) 100%); filter: blur(2px); animation: rd-shadow 6s ease-in-out infinite alternate; }
@keyframes rd-helen { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(4px,-2px) rotate(0) } 50% { transform: translate(6px,0) rotate(3deg) } 75% { transform: translate(2px,-1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes rd-bertram { 0% { transform: translate(0,0) rotate(2deg) } 25% { transform: translate(-3px,-2px) rotate(0) } 50% { transform: translate(-5px,0) rotate(-2deg) } 75% { transform: translate(-2px,-1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(2deg) } }
@keyframes rd-glint { 0% { transform: scale(.8); opacity:.7; box-shadow: 0 0 12px 4px #c09030, 0 0 24px 8px rgba(192,144,48,.3) } 50% { transform: scale(1.3); opacity:1; box-shadow: 0 0 30px 10px #ffd060, 0 0 60px 18px rgba(255,208,96,.5) } 100% { transform: scale(.9); opacity:.8; box-shadow: 0 0 16px 5px #c09030, 0 0 30px 10px rgba(192,144,48,.4) } }
@keyframes rd-shadow { 0% { transform: skewX(-3deg) scaleY(1); opacity:.6 } 50% { transform: skewX(0) scaleY(1.05); opacity:.8 } 100% { transform: skewX(3deg) scaleY(.95); opacity:.7 } }

.scn-item-ring-king-challenges { background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 40%, #3a2a1a 80%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #8a7a6a 0%, transparent 70%); }
.scn-item-ring-king-challenges .chamber-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #7a6a5a 0%, #5a4a3a 50%, #4a3a2a 100%); }
.scn-item-ring-king-challenges .dais { position:absolute; bottom:20%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #8a7a6a 30%, #6a5a4a 100%); border-radius:30% 30% 0 0 / 40% 40% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.4); }
.scn-item-ring-king-challenges .king-silhouette { position:absolute; bottom:28%; left:30%; width:50px; height:80px; background: linear-gradient(180deg, #1a0e05 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rk-king 7s ease-in-out infinite; }
.scn-item-ring-king-challenges .sceptre { position:absolute; bottom:55%; left:32%; width:6px; height:50px; background: linear-gradient(180deg, #c8a050 0%, #8a6a30 100%); border-radius:2px; transform:rotate(-8deg); transform-origin: bottom center; animation: rk-sceptre 4s ease-in-out infinite alternate; }
.scn-item-ring-king-challenges .ring-held { position:absolute; bottom:48%; left:64%; width:10px; height:10px; background: radial-gradient(circle, #ffd060 0%, #b08030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 24px 8px #ffd060, 0 0 48px 16px rgba(255,208,96,.3); animation: rk-ring 3s ease-in-out infinite alternate; }
.scn-item-ring-king-challenges .kneeling-figure { position:absolute; bottom:18%; right:30%; width:34px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rk-kneel 8s ease-in-out infinite; }
.scn-item-ring-king-challenges .brazier { position:absolute; bottom:20%; left:10%; width:40px; height:30px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2510 100%); border-radius:30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.4); }
.scn-item-ring-king-challenges .ember { position:absolute; bottom:28%; left:12%; width:8px; height:8px; background: radial-gradient(circle, #ff8040 0%, #cc5030 50%, transparent 100%); border-radius:50%; animation: rk-ember 2s ease-in-out infinite; }
.scn-item-ring-king-challenges .ember-b { position:absolute; bottom:30%; left:16%; width:6px; height:6px; background: radial-gradient(circle, #ff6030 0%, #cc4020 50%, transparent 100%); border-radius:50%; animation: rk-ember 2.8s ease-in-out infinite 1s; }
@keyframes rk-king { 0% { transform: translate(0,0) rotate(-1deg) } 50% { transform: translate(2px,-2px) rotate(1deg) } 100% { transform: translate(0,0) rotate(-1deg) } }
@keyframes rk-sceptre { 0% { transform: rotate(-10deg) scaleY(1) } 50% { transform: rotate(-6deg) scaleY(1.05) } 100% { transform: rotate(-10deg) scaleY(.98) } }
@keyframes rk-ring { 0% { transform: scale(.9) translate(0,0); opacity:.8 } 50% { transform: scale(1.15) translate(2px,-3px); opacity:1 } 100% { transform: scale(.95) translate(0,0); opacity:.9 } }
@keyframes rk-kneel { 0% { transform: translate(0,0) } 50% { transform: translate(-3px,2px) } 100% { transform: translate(0,0) } }
@keyframes rk-ember { 0% { transform: translate(0,0) scale(.8); opacity:.4 } 50% { transform: translate(4px,-8px) scale(1.4); opacity:.9 } 100% { transform: translate(-2px,4px) scale(.9); opacity:.3 } }

.scn-arrest-bertram { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #3a3a4a 60%, #2a2a3a 100%), radial-gradient(ellipse at 50% 50%, #5a5a6a 0%, transparent 70%); }
.scn-arrest-bertram .stone-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #3a3a4a 0%, #4a4a5a 30%, #3a3a4a 60%, #2a2a3a 100%); }
.scn-arrest-bertram .torch-left { position:absolute; bottom:50%; left:12%; width:12px; height:40px; background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%); border-radius:4px; transform:rotate(-5deg); }
.scn-arrest-bertram .torch-right { position:absolute; bottom:50%; right:12%; width:12px; height:40px; background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%); border-radius:4px; transform:rotate(5deg); }
.scn-arrest-bertram .guard-left { position:absolute; bottom:22%; left:25%; width:44px; height:74px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ab-guard-l 4s ease-in-out infinite; }
.scn-arrest-bertram .guard-right { position:absolute; bottom:22%; right:25%; width:44px; height:74px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ab-guard-r 4s ease-in-out infinite 1s; }
.scn-arrest-bertram .bertram-fall { position:absolute; bottom:20%; left:46%; width:38px; height:68px; background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 50%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ab-fall 3s ease-in-out infinite; }
.scn-arrest-bertram .ring-fall { position:absolute; bottom:48%; left:48%; width:7px; height:7px; background: radial-gradient(circle, #ffd060 0%, #b08030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 16px 4px #ffd060, 0 0 32px 8px rgba(255,208,96,.3); animation: ab-ring 2s ease-in-out infinite alternate; }
.scn-arrest-bertram .shadow-pool { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,.2) 100%); }
@keyframes ab-guard-l { 0% { transform: translate(0,0) rotate(0) } 25% { transform: translate(-4px,-2px) rotate(-3deg) } 50% { transform: translate(2px,0) rotate(0) } 75% { transform: translate(-2px,-1px) rotate(2deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes ab-guard-r { 0% { transform: translate(0,0) rotate(0) } 25% { transform: translate(4px,-2px) rotate(3deg) } 50% { transform: translate(-2px,0) rotate(0) } 75% { transform: translate(2px,-1px) rotate(-2deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes ab-fall { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(6px,-4px) rotate(-5deg) } 50% { transform: translate(2px,2px) rotate(-3deg) } 75% { transform: translate(8px,-2px) rotate(-6deg) } 100% { transform: translate(4px,0) rotate(-4deg) } }
@keyframes ab-ring { 0% { transform: scale(.7) translate(0,0) rotate(0); opacity:.6; box-shadow: 0 0 8px 2px #b08030, 0 0 16px 4px rgba(176,128,48,.3) } 50% { transform: scale(1.2) translate(6px,-10px) rotate(180deg); opacity:1; box-shadow: 0 0 24px 8px #ffd060, 0 0 48px 16px rgba(255,208,96,.5) } 100% { transform: scale(.8) translate(2px,-4px) rotate(360deg); opacity:.7; box-shadow: 0 0 12px 3px #b08030, 0 0 24px 6px rgba(176,128,48,.4) } }

.scn-helena-devised-cure-plan {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4b48c 50%, #b8946c 100%),
    radial-gradient(ellipse at 50% 30%, #fff3e0 0%, transparent 60%);
}
.scn-helena-devised-cure-plan .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f0dfc8 0%, #d9c4a8 100%);
  border-radius: 0 0 60% 60% / 20% 20% 0 0;
}
.scn-helena-devised-cure-plan .window {
  position: absolute; top: 10%; left: 55%; width: 28%; height: 45%;
  background: radial-gradient(ellipse at 50% 50%, #fff8e7 0%, #e0d0b0 60%, #c0a880 100%);
  border: 4px solid #8b6f4e; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255, 235, 180, 0.5);
  animation: hcp-window 8s ease-in-out infinite alternate;
}
@keyframes hcp-window {
  0% { opacity: 0.85; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.03); }
  100% { opacity: 0.9; transform: scaleX(1); }
}
.scn-helena-devised-cure-plan .bookshelf {
  position: absolute; left: 5%; top: 25%; width: 28%; height: 40%;
  background: linear-gradient(180deg, #5a3d2b 0%, #3e2a1e 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
.scn-helena-devised-cure-plan .desk {
  position: absolute; bottom: 22%; left: 20%; width: 55%; height: 18%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a22 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}
.scn-helena-devised-cure-plan .chair {
  position: absolute; bottom: 20%; right: 15%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  animation: hcp-chair 5s ease-in-out infinite;
}
@keyframes hcp-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
.scn-helena-devised-cure-plan .figure {
  position: absolute; bottom: 22%; left: 38%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hcp-figure 6s ease-in-out infinite alternate;
}
@keyframes hcp-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
.scn-helena-devised-cure-plan .candle {
  position: absolute; bottom: 28%; left: 28%; width: 3%; height: 10%;
  background: radial-gradient(circle, #ffd080 0%, #f0a040 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px #f0a040, 0 0 60px 20px rgba(240,160,64,0.3);
  animation: hcp-candle 3s ease-in-out infinite alternate;
}
@keyframes hcp-candle {
  0% { opacity: 0.9; transform: scaleY(1); box-shadow: 0 0 25px 8px #f0a040; }
  50% { opacity: 1; transform: scaleY(1.05); box-shadow: 0 0 35px 12px #f0a040; }
  100% { opacity: 0.85; transform: scaleY(1); box-shadow: 0 0 20px 6px #f0a040; }
}

.scn-helena-vows-cure {
  background:
    linear-gradient(180deg, #f7e8d0 0%, #e6cba4 50%, #c8a67a 100%),
    radial-gradient(ellipse at 50% 60%, #fff8ec 0%, transparent 70%);
}
.scn-helena-vows-cure .table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-helena-vows-cure .hands {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #e8c8a8 0%, #c8a088 60%, #a07858 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: hvc-hands 7s ease-in-out infinite alternate;
}
@keyframes hvc-hands {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
.scn-helena-vows-cure .vial {
  position: absolute; bottom: 32%; left: 42%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #d0e8f0 0%, #a0c8d8 50%, #7098a8 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: hvc-vial 4s ease-in-out infinite;
}
@keyframes hvc-vial {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.05); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.9; }
}
.scn-helena-vows-cure .glow {
  position: absolute; bottom: 30%; left: 41%; width: 14%; height: 22%;
  background: radial-gradient(circle, #f0e080 0%, transparent 70%);
  border-radius: 50%;
  animation: hvc-glow 3s ease-in-out infinite alternate;
}
@keyframes hvc-glow {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
.scn-helena-vows-cure .shadow-under {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 80%);
  animation: hvc-shadow 6s ease-in-out infinite;
}
@keyframes hvc-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
  100% { opacity: 0.5; transform: scaleX(1); }
}
.scn-helena-vows-cure .bg-light {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #f0d8b0 60%, transparent 100%);
  animation: hvc-bgl 12s ease-in-out infinite alternate;
}
@keyframes hvc-bgl {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

.scn-paris-war-leave-taking {
  background:
    linear-gradient(180deg, #f2e8d0 0%, #d8c8a8 40%, #b8a080 100%),
    radial-gradient(ellipse at 50% 50%, #fff8ec 0%, transparent 80%);
}
.scn-paris-war-leave-taking .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a60 0%, #6a5a40 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-paris-war-leave-taking .pillar-left {
  position: absolute; left: 10%; top: 5%; width: 10%; height: 95%;
  background: linear-gradient(180deg, #c8b898 0%, #a09070 100%);
  border-radius: 6px; box-shadow: 0 0 20px rgba(0,0,0,0.1);
}
.scn-paris-war-leave-taking .pillar-right {
  position: absolute; right: 10%; top: 5%; width: 10%; height: 95%;
  background: linear-gradient(180deg, #c8b898 0%, #a09070 100%);
  border-radius: 6px; box-shadow: 0 0 20px rgba(0,0,0,0.1);
}
.scn-paris-war-leave-taking .archway {
  position: absolute; top: 5%; left: 25%; width: 50%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, #e8dcc8 0%, #d0c0a8 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.1);
}
.scn-paris-war-leave-taking .figure-left {
  position: absolute; bottom: 30%; left: 30%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1a12 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: pwl-fig 8s ease-in-out infinite alternate;
}
@keyframes pwl-fig {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-paris-war-leave-taking .figure-right {
  position: absolute; bottom: 30%; right: 30%; width: 8%; height: 38%;
  background: linear-gradient(180deg, #3a3020 0%, #1e1810 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: pwl-fig2 9s ease-in-out infinite alternate;
}
@keyframes pwl-fig2 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-paris-war-leave-taking .chandelier {
  position: absolute; top: 8%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle at 50% 30%, #f0d080 0%, #d0a050 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(200,180,120,0.4);
  animation: pwl-ch 5s ease-in-out infinite alternate;
}
@keyframes pwl-ch {
  0% { opacity: 0.8; transform: rotate(-3deg); }
  50% { opacity: 1; transform: rotate(3deg); }
  100% { opacity: 0.85; transform: rotate(-1deg); }
}

.scn-bertram-dissatisfied {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0e0e1e 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 80%);
}
.scn-bertram-dissatisfied .tall-window {
  position: absolute; left: 50%; top: 0; width: 40%; height: 100%;
  background: radial-gradient(ellipse at 50% 60%, #4a4a6a 0%, #2a2a4a 80%, #0e0e2e 100%);
  border-left: 4px solid #4a4a5a; border-right: 4px solid #4a4a5a;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  animation: bds-win 12s ease-in-out infinite alternate;
}
@keyframes bds-win {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.02); }
  100% { opacity: 0.75; transform: scaleY(1); }
}
.scn-bertram-dissatisfied .figure {
  position: absolute; bottom: 20%; left: 30%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bds-fig 4s ease-in-out infinite;
}
@keyframes bds-fig {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
.scn-bertram-dissatisfied .floor-shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: bds-shadow 5s ease-in-out infinite alternate;
}
@keyframes bds-shadow {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.1); }
  100% { opacity: 0.6; transform: scaleX(1); }
}
.scn-bertram-dissatisfied .door-frame {
  position: absolute; left: 10%; top: 10%; width: 20%; height: 80%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 6px; box-shadow: 0 0 20px rgba(0,0,0,0.4);
}
.scn-bertram-dissatisfied .crack-light {
  position: absolute; left: 12%; top: 15%; width: 2%; height: 70%;
  background: linear-gradient(180deg, #f0e080 0%, #d0a040 100%);
  border-radius: 2px; box-shadow: 0 0 30px 10px rgba(240,224,128,0.3);
  animation: bds-crack 3s ease-in-out infinite alternate;
}
@keyframes bds-crack {
  0% { opacity: 0.8; width: 2%; }
  50% { opacity: 1; width: 3%; }
  100% { opacity: 0.7; width: 1.5%; }
}
.scn-bertram-dissatisfied .chair {
  position: absolute; bottom: 20%; left: 55%; width: 18%; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  animation: bds-chair 6s ease-in-out infinite;
}
@keyframes bds-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

/* ===== parolles-lies-exposed (moonlit, funny) ===== */
.scn-parolles-lies-exposed {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%);
}
.scn-parolles-lies-exposed .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%);
  animation: ple-sky 12s ease-in-out infinite alternate;
}
.scn-parolles-lies-exposed .moon {
  position: absolute; top: 8%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle at 30% 30%, #f0f0ff 0%, #c0c0e0 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(192,192,224,0.5);
  animation: ple-moon 20s ease-in-out infinite alternate;
}
.scn-parolles-lies-exposed .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: ple-ground 15s ease-in-out infinite alternate;
}
.scn-parolles-lies-exposed .figure {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ple-figure 4s ease-in-out infinite;
}
.scn-parolles-lies-exposed .scarf {
  position: absolute; bottom: 48%; left: 44%; width: 40px; height: 14px;
  background: linear-gradient(90deg, #64648a 0%, #8a8aaa 50%, #64648a 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: bottom left;
  animation: ple-scarf 3s ease-in-out infinite;
}
.scn-parolles-lies-exposed .dagger {
  position: absolute; bottom: 44%; left: 55%; width: 8px; height: 26px;
  background: linear-gradient(180deg, #e0e0f0 0%, #b0b0c0 100%);
  border-radius: 0 10% 10% 0;
  transform: rotate(-15deg);
  box-shadow: 0 0 8px 2px rgba(224,224,240,0.4);
  animation: ple-dagger 2s ease-in-out infinite alternate;
}
.scn-parolles-lies-exposed .spotlight {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,200,240,0.15) 0%, transparent 70%);
  pointer-events: none;
  animation: ple-spotlight 6s ease-in-out infinite alternate;
}
@keyframes ple-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ple-moon { 0% { transform: translateX(0); } 50% { transform: translateX(10px) translateY(-5px); } 100% { transform: translateX(-5px) translateY(5px); } }
@keyframes ple-ground { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes ple-figure { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(2deg); } 50% { transform: translateX(-52%) rotate(-2deg); } 75% { transform: translateX(-46%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ple-scarf { 0% { transform: rotate(0deg); } 25% { transform: rotate(8deg); } 50% { transform: rotate(-5deg); } 75% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes ple-dagger { 0% { opacity: 0.6; transform: rotate(-15deg) scale(1); } 50% { opacity: 1; transform: rotate(-10deg) scale(1.1); } 100% { opacity: 0.6; transform: rotate(-20deg) scale(0.9); } }
@keyframes ple-spotlight { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* ===== parolles-betrays-details (moonlit, tense) ===== */
.scn-parolles-betrays-details {
  background: linear-gradient(180deg, #12122a 0%, #1a1a3e 40%, #2a2a4e 100%), radial-gradient(ellipse at 30% 100%, #2a2a4e 0%, transparent 70%);
}
.scn-parolles-betrays-details .bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #0a0a1a 0%, #1a1a2a 50%, #2a2a3a 100%);
  animation: pbd-bg 14s ease-in-out infinite alternate;
}
.scn-parolles-betrays-details .moon {
  position: absolute; top: 6%; right: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle at 30% 30%, #d0d0e8 0%, #a0a0c8 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(160,160,200,0.4);
  animation: pbd-moon 18s linear infinite alternate;
}
.scn-parolles-betrays-details .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #0a0a1a 0%, #1a1a2e 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.8);
}
.scn-parolles-betrays-details .figure-parolles {
  position: absolute; bottom: 28%; left: 35%; width: 28px; height: 65px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.6);
  animation: pbd-parolles 2s ease-in-out infinite;
}
.scn-parolles-betrays-details .figure-interrogator {
  position: absolute; bottom: 30%; right: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  box-shadow: 4px 0 8px rgba(0,0,0,0.6);
  animation: pbd-interrogator 3s ease-in-out infinite alternate;
}
.scn-parolles-betrays-details .shadow-left {
  position: absolute; bottom: 20%; left: 25%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: pbd-shadow 5s ease-in-out infinite alternate;
}
.scn-parolles-betrays-details .shadow-right {
  position: absolute; bottom: 20%; right: 20%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: pbd-shadow 5s ease-in-out infinite alternate-reverse;
}
.scn-parolles-betrays-details .lightbeam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(200,200,240,0.08) 0%, transparent 70%);
  pointer-events: none;
  animation: pbd-light 3s ease-in-out infinite alternate;
}
@keyframes pbd-bg { 0% { opacity: 0.8 } 50% { opacity: 0.6 } 100% { opacity: 0.9 } }
@keyframes pbd-moon { 0% { transform: translateX(0) } 50% { transform: translateX(-8px) } 100% { transform: translateX(8px) } }
@keyframes pbd-parolles { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(-3deg) } 50% { transform: translateX(-52%) rotate(2deg) } 75% { transform: translateX(-47%) rotate(-1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes pbd-interrogator { 0% { transform: scaleX(-1) translateY(0) } 100% { transform: scaleX(-1) translateY(-6px) } }
@keyframes pbd-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.8) } }
@keyframes pbd-light { 0% { opacity: 0.1 } 50% { opacity: 0.3 } 100% { opacity: 0.15 } }

/* ===== bertram-teased-about-dumain (moonlit, funny) ===== */
.scn-bertram-teased-about-dumain {
  background: linear-gradient(180deg, #1e1e3e 0%, #2e2e4e 40%, #4a3a6e 100%), radial-gradient(ellipse at 60% 100%, #4a3a6e 0%, transparent 70%);
}
.scn-bertram-teased-about-dumain .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a2a4e 0%, #3a3a5e 50%, #2a2a4e 100%);
  animation: bta-bg 18s ease-in-out infinite alternate;
}
.scn-bertram-teased-about-dumain .moon {
  position: absolute; top: 10%; left: 20%; width: 45px; height: 45px;
  background: radial-gradient(circle at 40% 40%, #f0f0ff 0%, #d0d0f0 70%);
  border-radius: 50%;
  box-shadow: 0 0 35px 10px rgba(208,208,240,0.4);
  animation: bta-moon 22s linear infinite alternate;
}
.scn-bertram-teased-about-dumain .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1a2e 0%, #2a2a3e 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.5);
}
.scn-bertram-teased-about-dumain .bertram {
  position: absolute; bottom: 25%; left: 60%; width: 25px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bta-bertram 3s ease-in-out infinite;
}
.scn-bertram-teased-about-dumain .teaser {
  position: absolute; bottom: 27%; left: 35%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: bta-teaser 4s ease-in-out infinite alternate;
}
.scn-bertram-teased-about-dumain .question-mark {
  position: absolute; bottom: 55%; left: 42%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #c0c0e0 0%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  opacity: 0.6;
  animation: bta-question 2.5s ease-in-out infinite;
}
.scn-bertram-teased-about-dumain .shadow {
  position: absolute; bottom: 15%; left: 30%; width: 50%; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: bta-shadow 6s ease-in-out infinite alternate;
}
@keyframes bta-bg { 0% { opacity: 0.9 } 50% { opacity: 0.7 } 100% { opacity: 0.8 } }
@keyframes bta-moon { 0% { transform: translateX(0) } 50% { transform: translateX(12px) } 100% { transform: translateX(-12px) } }
@keyframes bta-bertram { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(-2deg) } 50% { transform: translateX(-52%) rotate(2deg) } 75% { transform: translateX(-49%) rotate(-1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes bta-teaser { 0% { transform: scaleX(-1) translateY(0) } 50% { transform: scaleX(-1) translateY(-5px) } 100% { transform: scaleX(-1) translateY(0) } }
@keyframes bta-question { 0% { opacity: 0.4; transform: scale(1) } 50% { opacity: 0.8; transform: scale(1.2) } 100% { opacity: 0.5; transform: scale(0.9) } }
@keyframes bta-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.15) } 100% { transform: scaleX(0.85) } }

/* ===== parolles-insults-dumain (moonlit, funny) ===== */
.scn-parolles-insults-dumain {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 40%, #3a2a5e 100%), radial-gradient(ellipse at 40% 100%, #3a2a5e 0%, transparent 70%);
}
.scn-parolles-insults-dumain .bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #2e2e4e 0%, #3e3e5e 50%, #2e2e4e 100%);
  animation: pid-bg 16s ease-in-out infinite alternate;
}
.scn-parolles-insults-dumain .moon {
  position: absolute; top: 8%; right: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle at 30% 30%, #ececf8 0%, #c0c0e0 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(192,192,224,0.5);
  animation: pid-moon 20s linear infinite alternate;
}
.scn-parolles-insults-dumain .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #12122a 0%, #1e1e32 100%);
  border-radius: 30% 30% 0 0 / 25% 25% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-parolles-insults-dumain .parolles {
  position: absolute; bottom: 25%; left: 50%; width: 28px; height: 65px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pid-parolles 3.5s ease-in-out infinite;
}
.scn-parolles-insults-dumain .gesture-hand {
  position: absolute; bottom: 40%; left: 55%; width: 20px; height: 28px;
  background: linear-gradient(135deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: bottom left;
  animation: pid-hand 2s ease-in-out infinite;
}
.scn-parolles-insults-dumain .speech-bubble {
  position: absolute; bottom: 55%; left: 40%; width: 50px; height: 30px;
  background: rgba(220,220,240,0.15);
  border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%;
  border: 1px solid rgba(200,200,220,0.3);
  animation: pid-bubble 4s ease-in-out infinite alternate;
}
.scn-parolles-insults-dumain .shadow {
  position: absolute; bottom: 12%; left: 35%; width: 30%; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: pid-shadow 5s ease-in-out infinite alternate;
}
@keyframes pid-bg { 0% { opacity: 0.9 } 50% { opacity: 0.7 } 100% { opacity: 0.8 } }
@keyframes pid-moon { 0% { transform: translateX(0) } 50% { transform: translateX(15px) } 100% { transform: translateX(-15px) } }
@keyframes pid-parolles { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(3deg) } 50% { transform: translateX(-52%) rotate(-2deg) } 75% { transform: translateX(-47%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes pid-hand { 0% { transform: rotate(0deg) } 25% { transform: rotate(15deg) } 50% { transform: rotate(-10deg) } 75% { transform: rotate(20deg) } 100% { transform: rotate(0deg) } }
@keyframes pid-bubble { 0% { opacity: 0.2; transform: scale(1) } 50% { opacity: 0.6; transform: scale(1.05) } 100% { opacity: 0.3; transform: scale(0.95) } }
@keyframes pid-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.8) } }

/* scene 1: king-bertram-argument */
.scn-king-bertram-argument {
  background: linear-gradient(180deg, #f0e6d0 0%, #d4b896 40%, #b8966e 100%),
              radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 60%);
}
.scn-king-bertram-argument .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a6f50 0%, #5e4532 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
}
.scn-king-bertram-argument .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #eeddcc 0%, #d4c0a8 100%);
}
.scn-king-bertram-argument .window {
  position: absolute; top: 12%; left: 15%; width: 22%; height: 40%;
  background: linear-gradient(135deg, #f9edc8 0%, #fbe9b0 50%, #ffd78c 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px #ffe68a, 0 0 30px rgba(255,215,0,0.3);
  animation: kb-glow 4s ease-in-out infinite alternate;
}
.scn-king-bertram-argument .throne {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 30%; height: 50%; background: linear-gradient(180deg, #9c7a5a 0%, #6b5038 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 6px 6px 20px rgba(0,0,0,0.4);
  animation: kb-throne 6s ease-in-out infinite;
}
.scn-king-bertram-argument .figure-standing {
  position: absolute; bottom: 25%; left: 20%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1208 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kb-sway1 3s ease-in-out infinite;
}
.scn-king-bertram-argument .figure-seated {
  position: absolute; bottom: 25%; left: 55%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #3a281e 0%, #1e140e 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: kb-sway2 4s ease-in-out infinite;
}
.scn-king-bertram-argument .scepter {
  position: absolute; bottom: 50%; left: 68%; width: 2%; height: 18%;
  background: linear-gradient(180deg, #c8a050 0%, #906820 100%);
  border-radius: 30%; box-shadow: 0 0 12px #b08030;
  animation: kb-raise 3s ease-in-out infinite alternate;
}
.scn-king-bertram-argument .shadow {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: kb-shift 5s ease-in-out infinite alternate;
}
@keyframes kb-glow {
  0% { opacity: 0.7; box-shadow: inset 0 0 20px #ffe68a, 0 0 20px rgba(255,215,0,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 40px #fff0a0, 0 0 50px rgba(255,215,0,0.5); }
  100% { opacity: 0.8; box-shadow: inset 0 0 25px #ffe68a, 0 0 30px rgba(255,215,0,0.3); }
}
@keyframes kb-throne {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg) scale(1.01); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes kb-sway1 {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(2px) rotate(2deg); }
  70% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes kb-sway2 {
  0% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(-2px) rotate(1deg); }
  80% { transform: translateX(1px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes kb-raise {
  0% { transform: translateY(0) rotate(-5deg); }
  100% { transform: translateY(-8px) rotate(5deg); }
}
@keyframes kb-shift {
  0% { transform: scaleX(1); opacity: 0.6; }
  100% { transform: scaleX(1.2); opacity: 0.4; }
}

/* scene 2: lafeu-parolles-recantation */
.scn-lafeu-parolles-recantation {
  background: linear-gradient(180deg, #f7e7d2 0%, #edd6b8 40%, #cba88c 100%),
              radial-gradient(ellipse at 70% 30%, #fff5d6 0%, transparent 60%);
}
.scn-lafeu-parolles-recantation .backdrop {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #f0dcc0 0%, #dcc0a8 50%, #c4a88c 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-lafeu-parolles-recantation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a8856a 0%, #705543 100%);
  border-radius: 80% 20% 0 0 / 50% 10% 0 0;
}
.scn-lafeu-parolles-recantation .figure-parolles {
  position: absolute; bottom: 20%; left: 25%; width: 16%; height: 55%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1208 100%);
  border-radius: 50% 50% 30% 30% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: lp-bounce 1.2s ease-in-out infinite;
}
.scn-lafeu-parolles-recantation .figure-lafeu {
  position: absolute; bottom: 20%; left: 55%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #3a281e 0%, #1e140e 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: lp-wag 2s ease-in-out infinite;
}
.scn-lafeu-parolles-recantation .hat {
  position: absolute; bottom: 68%; left: 30%; width: 10%; height: 8%;
  background: radial-gradient(circle at 30% 30%, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform: rotate(-15deg);
  animation: lp-float 3s ease-in-out infinite;
}
.scn-lafeu-parolles-recantation .speech-bubble {
  position: absolute; top: 15%; right: 20%; width: 20%; height: 18%;
  background: radial-gradient(circle at 40% 40%, #fff0c0 0%, #eedd99 100%);
  border-radius: 40% 40% 40% 10% / 40% 40% 40% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: lp-pulse 2s ease-in-out infinite;
}
@keyframes lp-bounce {
  0% { transform: translateY(0) rotate(-2deg) scale(1); }
  25% { transform: translateY(-6px) rotate(0deg) scale(1.05); }
  50% { transform: translateY(0) rotate(2deg) scale(1); }
  75% { transform: translateY(-4px) rotate(-1deg) scale(1.03); }
  100% { transform: translateY(0) rotate(-2deg) scale(1); }
}
@keyframes lp-wag {
  0% { transform: rotate(-1deg); }
  20% { transform: rotate(3deg); }
  40% { transform: rotate(-3deg); }
  60% { transform: rotate(2deg); }
  80% { transform: rotate(-2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes lp-float {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-10px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes lp-pulse {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}

/* scene 3: parolles-anger */
.scn-parolles-anger {
  background: linear-gradient(180deg, #d4b896 0%, #b8966e 40%, #906840 100%),
              radial-gradient(ellipse at 50% 60%, #c0a080 0%, transparent 70%);
}
.scn-parolles-anger .dark-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #7a6048 0%, #5a4028 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-parolles-anger .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #605040 0%, #403020 100%);
}
.scn-parolles-anger .figure-parolles {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1208 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pa-shake 0.8s ease-in-out infinite alternate;
}
.scn-parolles-anger .fist {
  position: absolute; bottom: 50%; left: 30%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #3a281e 0%, #1e140e 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform: rotate(20deg);
  animation: pa-punch 1.5s ease-in-out infinite;
}
.scn-parolles-anger .shadow-trail {
  position: absolute; bottom: 20%; left: 35%; right: 25%; height: 5%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: pa-grow 2s ease-in-out infinite alternate;
}
.scn-parolles-anger .table {
  position: absolute; bottom: 20%; left: 55%; width: 25%; height: 12%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: pa-fade 3s ease-in-out infinite;
}
@keyframes pa-shake {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-4px) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pa-punch {
  0% { transform: rotate(20deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(10px); }
  100% { transform: rotate(20deg) translateX(0); }
}
@keyframes pa-grow {
  0% { transform: scaleX(0.8); opacity: 0.5; }
  100% { transform: scaleX(1.5); opacity: 0.8; }
}
@keyframes pa-fade {
  0% { opacity: 0.6; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
  50% { opacity: 1; box-shadow: 0 8px 16px rgba(0,0,0,0.7); }
  100% { opacity: 0.6; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
}

/* scene 4: parolles-lafeu-again */
.scn-parolles-lafeu-again {
  background: linear-gradient(180deg, #e0c8b0 0%, #c4a88c 40%, #a8856a 100%),
              radial-gradient(ellipse at 60% 50%, #f0dcc0 0%, transparent 70%);
}
.scn-parolles-lafeu-again .backdrop {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #dfc8b0 0%, #c4a88c 50%, #b09078 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
}
.scn-parolles-lafeu-again .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a7058 0%, #604838 100%);
}
.scn-parolles-lafeu-again .figure-parolles {
  position: absolute; bottom: 25%; left: 20%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1208 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  animation: pla-struggle 1.2s ease-in-out infinite;
}
.scn-parolles-lafeu-again .figure-lafeu {
  position: absolute; bottom: 25%; right: 20%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #3a281e 0%, #1e140e 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  animation: pla-pull 2s ease-in-out infinite alternate;
}
.scn-parolles-lafeu-again .tied-arms {
  position: absolute; bottom: 45%; left: 28%; right: 28%; height: 8%;
  background: linear-gradient(90deg, #4a3020 0%, #6a4a2a 40%, #4a3020 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 8px #3a2010;
  animation: pla-stretch 3s ease-in-out infinite;
}
.scn-parolles-lafeu-again .rope {
  position: absolute; bottom: 48%; left: 30%; width: 40%; height: 3%;
  background: repeating-linear-gradient(90deg, #8a7058 0%, #8a7058 20%, #604838 20%, #604838 40%);
  border-radius: 10%;
  animation: pla-flicker 1s steps(2) infinite;
}
.scn-parolles-lafeu-again .glow {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 15%;
  background: radial-gradient(circle, rgba(255,230,170,0.5) 0%, transparent 70%);
  animation: pla-glow 4s ease-in-out infinite alternate;
}
@keyframes pla-struggle {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(3px) rotate(2deg); }
  40% { transform: translateX(-3px) rotate(-2deg); }
  60% { transform: translateX(2px) rotate(1deg); }
  80% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pla-pull {
  0% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(5px) rotate(1deg); }
}
@keyframes pla-stretch {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
  100% { transform: scaleX(1); }
}
@keyframes pla-flicker {
  0% { opacity: 0.7; }
  100% { opacity: 1; }
}
@keyframes pla-glow {
  0% { opacity: 0.3; transform: scale(0.8); }
  100% { opacity: 0.6; transform: scale(1.2); }
}

/* Scene: fistula-confession-part */
.scn-fistula-confession-part {
  background: linear-gradient(180deg, #f5e6d0 0%, #d9c4a8 40%, #c2a88a 100%),
              radial-gradient(ellipse at 50% 20%, rgba(255,230,180,0.3) 0%, transparent 70%);
}
.scn-fistula-confession-part .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8d5b8 0%, #d4bfa0 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.1);
  animation: fcp-wall 20s ease-in-out infinite alternate;
}
.scn-fistula-confession-part .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b89878 0%, #9a7c5e 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-fistula-confession-part .bed {
  position: absolute; bottom: 20%; left: 15%; width: 35%; height: 25%;
  background: linear-gradient(180deg, #c4a88a 0%, #a0876e 100%);
  border-radius: 8px; box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  animation: fcp-bed 12s ease-in-out infinite;
}
.scn-fistula-confession-part .figure-kneeling {
  position: absolute; bottom: 22%; left: 55%; width: 24px; height: 38px;
  background: linear-gradient(180deg, #8a6e50 0%, #5a4430 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcp-kneel 4s ease-in-out infinite alternate;
}
.scn-fistula-confession-part .window {
  position: absolute; top: 12%; left: 40%; width: 50px; height: 60px;
  background: radial-gradient(circle at 50% 50%, #fff8e0 0%, #f0d8b0 60%, #d4bfa0 100%);
  border: 6px solid #a0876e; border-radius: 6px;
  box-shadow: inset 0 0 20px #fff0d0;
}
.scn-fistula-confession-part .light-ray {
  position: absolute; top: 12%; left: 42%; width: 80px; height: 120px;
  background: linear-gradient(135deg, rgba(255,240,200,0.5) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: fcp-ray 8s ease-in-out infinite alternate;
}
.scn-fistula-confession-part .curtain {
  position: absolute; top: 0; left: 30%; width: 20px; height: 45%;
  background: linear-gradient(180deg, #b89878 0%, #8a6e50 100%);
  border-radius: 0 4px 4px 0; opacity: 0.8;
  animation: fcp-curtain 6s ease-in-out infinite alternate;
}
@keyframes fcp-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes fcp-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes fcp-kneel { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes fcp-ray { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.5; transform: scaleX(0.95); } }
@keyframes fcp-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(0); } }

/* Scene: helena-her-goodness */
.scn-helena-her-goodness {
  background: linear-gradient(180deg, #fce8d0 0%, #e8cba8 50%, #d4ae88 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255,200,150,0.4) 0%, transparent 80%);
}
.scn-helena-her-goodness .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0dcc0 0%, #dcc4a8 100%);
  box-shadow: inset 0 -5px 20px rgba(0,0,0,0.1);
  animation: hhg-wall 18s ease-in-out infinite alternate;
}
.scn-helena-her-goodness .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c4a080 0%, #a88868 100%);
  border-radius: 15% 15% 0 0 / 8% 8% 0 0;
}
.scn-helena-her-goodness .window {
  position: absolute; top: 8%; left: 35%; width: 60px; height: 70px;
  background: radial-gradient(circle at 50% 50%, #fff4d0 0%, #f0d8b0 60%, #dcc4a8 100%);
  border: 6px solid #b89878; border-radius: 8px;
  box-shadow: inset 0 0 30px #ffe8c0;
}
.scn-helena-her-goodness .light-ray {
  position: absolute; top: 8%; left: 37%; width: 90px; height: 140px;
  background: linear-gradient(135deg, rgba(255,240,200,0.4) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: hhg-ray 10s ease-in-out infinite alternate;
}
.scn-helena-her-goodness .figure-standing {
  position: absolute; bottom: 18%; left: 50%; width: 28px; height: 42px;
  background: linear-gradient(180deg, #b89878 0%, #7a5c40 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hhg-stand 6s ease-in-out infinite alternate;
}
.scn-helena-her-goodness .chair {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 25px;
  background: linear-gradient(180deg, #a88868 0%, #8a6e50 100%);
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: hhg-chair 8s ease-in-out infinite;
}
.scn-helena-her-goodness .book {
  position: absolute; bottom: 22%; left: 42%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 2px; transform: rotate(15deg);
  animation: hhg-book 5s ease-in-out infinite alternate;
}
@keyframes hhg-wall { 0% { opacity: 0.95 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes hhg-ray { 0% { opacity: 0.3; transform: scaleX(1) skewX(-2deg); } 50% { opacity: 0.6; transform: scaleX(1.15) skewX(0deg); } 100% { opacity: 0.4; transform: scaleX(0.9) skewX(2deg); } }
@keyframes hhg-stand { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes hhg-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes hhg-book { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

/* Scene: grief-moderate */
.scn-grief-moderate {
  background: linear-gradient(180deg, #e0d4c8 0%, #c8b8a8 50%, #b09c88 100%),
              radial-gradient(ellipse at 50% 40%, rgba(200,180,160,0.3) 0%, transparent 80%);
}
.scn-grief-moderate .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d8c8b8 0%, #c0ae9c 100%);
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.1);
  animation: grm-wall 22s ease-in-out infinite alternate;
}
.scn-grief-moderate .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a89078 0%, #8a7a64 100%);
  border-radius: 30% 30% 0 0 / 12% 12% 0 0;
}
.scn-grief-moderate .window {
  position: absolute; top: 10%; left: 40%; width: 55px; height: 65px;
  background: radial-gradient(circle at 50% 50%, #f0e4d0 0%, #d8c8b0 60%, #c0ae9c 100%);
  border: 5px solid #a89078; border-radius: 6px;
  box-shadow: inset 0 0 25px #e8d8c0;
}
.scn-grief-moderate .light-ray {
  position: absolute; top: 10%; left: 42%; width: 70px; height: 110px;
  background: linear-gradient(135deg, rgba(240,230,210,0.3) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 75% 100%, 25% 100%);
  animation: grm-ray 14s ease-in-out infinite alternate;
}
.scn-grief-moderate .figure-seated {
  position: absolute; bottom: 15%; left: 48%; width: 30px; height: 36px;
  background: linear-gradient(180deg, #9a8068 0%, #6a5440 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: grm-seat 7s ease-in-out infinite alternate;
}
.scn-grief-moderate .chair {
  position: absolute; bottom: 17%; left: 44%; width: 35px; height: 28px;
  background: linear-gradient(180deg, #8a7260 0%, #6a5440 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: grm-chair 9s ease-in-out infinite;
}
.scn-grief-moderate .handkerchief {
  position: absolute; bottom: 20%; left: 50%; width: 12px; height: 12px;
  background: linear-gradient(135deg, #e0d0c0 0%, #c0ae9c 100%);
  border-radius: 50% 30% 50% 30%; transform: rotate(30deg);
  animation: grm-hank 5s ease-in-out infinite alternate;
}
.scn-grief-moderate .tear-drop {
  position: absolute; bottom: 25%; left: 54%; width: 4px; height: 6px;
  background: radial-gradient(circle at 50% 30%, #b0a090 0%, #8a7a64 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: grm-tear 3s ease-in-out infinite;
}
@keyframes grm-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes grm-ray { 0% { opacity: 0.2; transform: scaleY(1); } 50% { opacity: 0.4; transform: scaleY(1.1); } 100% { opacity: 0.3; transform: scaleY(0.95); } }
@keyframes grm-seat { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes grm-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes grm-hank { 0% { transform: rotate(30deg) translateY(0) scale(1); } 50% { transform: rotate(35deg) translateY(-2px) scale(1.05); } 100% { transform: rotate(28deg) translateY(0) scale(0.95); } }
@keyframes grm-tear { 0% { opacity: 0.6; transform: translateY(0) scaleY(1); } 50% { opacity: 0.9; transform: translateY(-3px) scaleY(1.2); } 100% { opacity: 0.6; transform: translateY(0) scaleY(1); } }

/* Scene: countess-blessing-bertrand */
.scn-countess-blessing-bertrand {
  background: linear-gradient(180deg, #f8e4c8 0%, #e4c8a8 50%, #d0ae8c 100%),
              radial-gradient(ellipse at 50% 30%, rgba(255,220,170,0.5) 0%, transparent 70%);
}
.scn-countess-blessing-bertrand .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f0d8b8 0%, #dcc0a0 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.1);
  animation: cbb-wall 20s ease-in-out infinite alternate;
}
.scn-countess-blessing-bertrand .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c4a080 0%, #a88868 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-countess-blessing-bertrand .window {
  position: absolute; top: 6%; left: 35%; width: 60px; height: 75px;
  background: radial-gradient(circle at 50% 50%, #fff0c8 0%, #f0d8b0 60%, #dcc0a0 100%);
  border: 6px solid #b89878; border-radius: 8px;
  box-shadow: inset 0 0 35px #ffe8b0;
}
.scn-countess-blessing-bertrand .light-ray {
  position: absolute; top: 6%; left: 37%; width: 100px; height: 160px;
  background: linear-gradient(135deg, rgba(255,240,200,0.5) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 75% 100%, 25% 100%);
  animation: cbb-ray 12s ease-in-out infinite alternate;
}
.scn-countess-blessing-bertrand .figure-kneeling {
  position: absolute; bottom: 18%; left: 42%; width: 26px; height: 36px;
  background: linear-gradient(180deg, #a88868 0%, #6a5440 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbb-kneel 5s ease-in-out infinite alternate;
}
.scn-countess-blessing-bertrand .figure-standing {
  position: absolute; bottom: 15%; left: 52%; width: 30px; height: 48px;
  background: linear-gradient(180deg, #c4a080 0%, #8a6e50 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbb-stand 6s ease-in-out infinite alternate;
}
.scn-countess-blessing-bertrand .altar {
  position: absolute; bottom: 20%; left: 45%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #b89878 0%, #9a7c5e 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: cbb-altar 10s ease-in-out infinite;
}
.scn-countess-blessing-bertrand .candle {
  position: absolute; bottom: 27%; left: 47%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #f0d8b0 0%, #c4a080 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px rgba(255,200,100,0.6);
  animation: cbb-candle 4s ease-in-out infinite alternate;
}
@keyframes cbb-wall { 0% { opacity: 0.95 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes cbb-ray { 0% { opacity: 0.4; transform: scaleX(1) rotate(0deg); } 50% { opacity: 0.7; transform: scaleX(1.2) rotate(2deg); } 100% { opacity: 0.5; transform: scaleX(0.9) rotate(-2deg); } }
@keyframes cbb-kneel { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(3deg); } }
@keyframes cbb-stand { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cbb-altar { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes cbb-candle { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.1); box-shadow: 0 0 16px 6px rgba(255,200,100,0.8); } 100% { opacity: 0.8; transform: scaleY(0.95); } }

/* Scene: king-anxious */
.scn-king-anxious {
  background: linear-gradient(180deg, #2a1a0e 0%, #3e2a1a 40%, #4a3018 60%, #1a0e04 100%),
              radial-gradient(ellipse at 30% 40%, #8b7050 0%, transparent 60%);
}
.scn-king-anxious .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #2e1a0a 0%, #3a2414 30%, #4a301c 70%, #3a2414 100%); animation: kna-wall 20s ease-in-out infinite alternate; }
.scn-king-anxious .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1e140e 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.6); }
.scn-king-anxious .throne { position:absolute; bottom:28%; left:40%; width:80px; height:100px; background: linear-gradient(180deg, #5e3e24 0%, #3a2618 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.7), inset 0 4px 8px rgba(255,200,100,.2); transform-origin: bottom center; animation: kna-throne 10s ease-in-out infinite; }
.scn-king-anxious .king { position:absolute; bottom:32%; left:42%; width:24px; height:60px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kna-king 5s ease-in-out infinite; }
.scn-king-anxious .window { position:absolute; top:10%; right:12%; width:100px; height:140px; background: radial-gradient(ellipse at 50% 50%, #f0d8a0 0%, #c8a870 40%, #8a6a3a 70%, transparent 100%); border: 4px solid #3a2a1a; border-radius: 8px; box-shadow: 0 0 60px 20px rgba(200,168,112,.5), inset 0 0 30px rgba(255,220,160,.3); animation: kna-window 8s ease-in-out infinite alternate; }
.scn-king-anxious .candle { position:absolute; bottom:38%; left:30%; width:8px; height:20px; background: linear-gradient(180deg, #f0d080 0%, #d0a040 50%, #8a5a20 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 8px #d0a040, 0 0 40px 15px rgba(208,160,64,.4); animation: kna-candle 3s ease-in-out infinite alternate; }
.scn-king-anxious .petition { position:absolute; bottom:40%; left:50%; width:40px; height:30px; background: linear-gradient(180deg, #d0b888 0%, #a89060 100%); border-radius: 4px; transform: rotate(-8deg); box-shadow: 2px 4px 6px rgba(0,0,0,.4); animation: kna-petition 15s ease-in-out infinite alternate; }
@keyframes kna-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes kna-throne { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } }
@keyframes kna-king { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes kna-window { 0% { box-shadow: 0 0 40px 10px rgba(200,168,112,.4); opacity:.7 } 50% { box-shadow: 0 0 80px 25px rgba(200,168,112,.6); opacity:1 } 100% { box-shadow: 0 0 50px 15px rgba(200,168,112,.45); opacity:.8 } }
@keyframes kna-candle { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.85; transform: scaleY(.95) } }
@keyframes kna-petition { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(3px) } 100% { transform: rotate(-8deg) translateX(0) } }

/* Scene: gentleman-brings-petition */
.scn-gentleman-brings-petition {
  background: linear-gradient(180deg, #f5e8d0 0%, #e8d4b8 30%, #d4bea0 60%, #c0a888 100%),
              radial-gradient(ellipse at 60% 40%, #fff8f0 0%, transparent 60%);
}
.scn-gentleman-brings-petition .bg-panel { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d4b8 0%, #d4bea0 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.1); animation: gbp-panel 30s ease-in-out infinite alternate; }
.scn-gentleman-brings-petition .window-soft { position:absolute; top:15%; left:20%; width:120px; height:160px; background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #f0e0c0 40%, #d0b890 80%, transparent 100%); border: 3px solid #b09878; border-radius: 10px; box-shadow: 0 0 50px 20px rgba(200,180,150,.3); animation: gbp-window 12s ease-in-out infinite alternate; }
.scn-gentleman-brings-petition .gentleman { position:absolute; bottom:20%; left:45%; width:22px; height:70px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gbp-gentleman 6s ease-in-out infinite; }
.scn-gentleman-brings-petition .petition-held { position:absolute; bottom:38%; left:47%; width:30px; height:22px; background: linear-gradient(180deg, #d8c090 0%, #b09868 100%); border-radius: 3px; transform: rotate(12deg); box-shadow: 1px 2px 4px rgba(0,0,0,.3); animation: gbp-petition 4s ease-in-out infinite alternate; }
.scn-gentleman-brings-petition .floor-gentle { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8b090 0%, #a89078 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); }
.scn-gentleman-brings-petition .table-low { position:absolute; bottom:18%; left:30%; width:80px; height:12px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: gbp-table 20s ease-in-out infinite; }
@keyframes gbp-panel { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes gbp-window { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:.8; transform: scale(1) } }
@keyframes gbp-gentleman { 0% { transform: rotate(-1deg) translateX(0) } 25% { transform: rotate(1deg) translateX(4px) } 50% { transform: rotate(0) translateX(8px) } 75% { transform: rotate(-1deg) translateX(4px) } 100% { transform: rotate(1deg) translateX(0) } }
@keyframes gbp-petition { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-2px) } 100% { transform: rotate(12deg) translateY(0) } }
@keyframes gbp-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

/* Scene: king-orders-seek */
.scn-king-orders-seek {
  background: linear-gradient(180deg, #1e1410 0%, #2e1e1a 30%, #3a2a22 60%, #1a1210 100%),
              radial-gradient(ellipse at 40% 30%, #6a4a3a 0%, transparent 70%);
}
.scn-king-orders-seek .bg-arch { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2e1e1a 0%, #3a2a22 50%, #2e1e1a 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); animation: kos-arch 15s ease-in-out infinite alternate; }
.scn-king-orders-seek .floor-stone { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%); box-shadow: inset 0 12px 24px rgba(0,0,0,.7); }
.scn-king-orders-seek .king-stand { position:absolute; bottom:22%; left:45%; width:28px; height:75px; background: linear-gradient(180deg, #8a5a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kos-king 4s ease-in-out infinite; }
.scn-king-orders-seek .arm-point { position:absolute; bottom:55%; left:48%; width:8px; height:30px; background: linear-gradient(180deg, #8a5a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 0 0; transform: rotate(20deg); transform-origin: bottom center; animation: kos-arm 2s ease-in-out infinite alternate; }
.scn-king-orders-seek .guard-left { position:absolute; bottom:20%; left:20%; width:20px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 0 8px rgba(0,0,0,.5); animation: kos-guard 9s ease-in-out infinite; }
.scn-king-orders-seek .guard-right { position:absolute; bottom:20%; right:20%; width:20px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 0 8px rgba(0,0,0,.5); animation: kos-guard 9s ease-in-out infinite reverse; }
.scn-king-orders-seek .scroll { position:absolute; bottom:40%; left:55%; width:30px; height:20px; background: linear-gradient(180deg, #d8c090 0%, #b09868 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 1px 2px 4px rgba(0,0,0,.4); animation: kos-scroll 6s ease-in-out infinite alternate; }
@keyframes kos-arch { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes kos-king { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(0) } 100% { transform: translateY(0) rotate(0) } }
@keyframes kos-arm { 0% { transform: rotate(15deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(20deg) } }
@keyframes kos-guard { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes kos-scroll { 0% { transform: rotate(-8deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(5px) } 100% { transform: rotate(-5deg) translateX(0) } }

/* Scene: bertram-returned */
.scn-bertram-returned {
  background: linear-gradient(180deg, #1e1820 0%, #2a2230 30%, #3a3040 60%, #20181e 100%),
              radial-gradient(ellipse at 50% 50%, #4a3a50 0%, transparent 60%);
}
.scn-bertram-returned .bg-hall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a2230 0%, #3a3040 50%, #2a2230 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.5); animation: brt-hall 25s ease-in-out infinite alternate; }
.scn-bertram-returned .floor-tile { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a3040 0%, #1e1820 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-bertram-returned .bertram { position:absolute; bottom:16%; left:46%; width:24px; height:65px; background: linear-gradient(180deg, #5e4a3a 0%, #2a1e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); transform-origin: bottom center; animation: brt-bertram 5s ease-in-out infinite alternate; }
.scn-bertram-returned .guard-bertram { position:absolute; bottom:18%; left:42%; width:18px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: brt-guard 8s ease-in-out infinite; }
.scn-bertram-returned .widow { position:absolute; bottom:18%; right:35%; width:20px; height:55px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: brt-widow 7s ease-in-out infinite alternate; }
.scn-bertram-returned .diana { position:absolute; bottom:18%; right:28%; width:18px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-4deg); animation: brt-diana 6s ease-in-out infinite; }
.scn-bertram-returned .judge { position:absolute; bottom:20%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 12px rgba(0,0,0,.4); animation: brt-judge 12s ease-in-out infinite alternate; }
.scn-bertram-returned .chains { position:absolute; bottom:22%; left:47%; width:12px; height:30px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 20%; box-shadow: 0 0 6px rgba(0,0,0,.5); animation: brt-chains 3s ease-in-out infinite; }
@keyframes brt-hall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes brt-bertram { 0% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-3px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes brt-guard { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes brt-widow { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes brt-diana { 0% { transform: rotate(-6deg) } 50% { transform: rotate(0) } 100% { transform: rotate(-2deg) } }
@keyframes brt-judge { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes brt-chains { 0% { opacity:.6; transform: translateY(0) } 50% { opacity:1; transform: translateY(-2px) } 100% { opacity:.7; transform: translateY(0) } }

.scn-widows-house-plot-concluded { background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 30%, #7a6a5a 60%, #8a7a6a 100%), radial-gradient(ellipse at 50% 0%, #c0b0a0 0%, transparent 70%); }
.scn-widows-house-plot-concluded .whp-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%); }
.scn-widows-house-plot-concluded .whp-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-widows-house-plot-concluded .whp-window { position:absolute; top:18%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #c0d0e0 0%, #8090b0 60%, #4a5a7a 100%); border:6px solid #3a2a1a; border-radius:4% 4% 8% 8%; box-shadow: inset 0 0 30px rgba(255,255,255,.15); animation: whp-window 8s ease-in-out infinite alternate; }
.scn-widows-house-plot-concluded .whp-curtain-l { position:absolute; top:16%; left:30%; width:30px; height:110px; background: linear-gradient(180deg, #7a4a3a 0%, #5a3a2a 100%); border-radius:4% 20% 20% 4%; transform-origin:top left; animation: whp-curtain 12s ease-in-out infinite alternate; }
.scn-widows-house-plot-concluded .whp-curtain-r { position:absolute; top:16%; right:30%; width:30px; height:110px; background: linear-gradient(180deg, #7a4a3a 0%, #5a3a2a 100%); border-radius:20% 4% 4% 20%; transform-origin:top right; animation: whp-curtain 12s ease-in-out infinite alternate-reverse; }
.scn-widows-house-plot-concluded .whp-candle { position:absolute; bottom:28%; left:40%; width:14px; height:40px; background: linear-gradient(180deg, #e0c080 0%, #b09050 100%); border-radius:30% 30% 10% 10%; transform-origin:bottom center; animation: whp-candle 6s ease-in-out infinite; }
.scn-widows-house-plot-concluded .whp-figure { position:absolute; bottom:30%; left:58%; width:30px; height:80px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: whp-figure 10s ease-in-out infinite; }
.scn-widows-house-plot-concluded .whp-shadow { position:absolute; bottom:28%; left:54%; width:60px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); border-radius:50%; animation: whp-shadow 10s ease-in-out infinite; }
.scn-widows-house-plot-concluded .whp-door { position:absolute; bottom:30%; left:18%; width:50px; height:90px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border:3px solid #2a1a0a; border-radius:4% 4% 0 0; }
@keyframes whp-window { 0% { opacity:.85; box-shadow: inset 0 0 20px rgba(255,255,255,.1) } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,255,255,.2) } 100% { opacity:.8; box-shadow: inset 0 0 25px rgba(255,255,255,.12) } }
@keyframes whp-curtain { 0% { transform:rotate(0deg) scaleY(1) } 50% { transform:rotate(4deg) scaleY(1.02) } 100% { transform:rotate(-2deg) scaleY(.98) } }
@keyframes whp-candle { 0% { transform:translateY(0) rotate(-1deg); box-shadow: 0 -6px 16px 4px rgba(224,192,128,.5) } 50% { transform:translateY(-3px) rotate(2deg); box-shadow: 0 -10px 24px 8px rgba(224,192,128,.7) } 100% { transform:translateY(-1px) rotate(-1deg); box-shadow: 0 -6px 18px 5px rgba(224,192,128,.5) } }
@keyframes whp-figure { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 25% { transform:translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform:translateX(0) translateY(0) rotate(-2deg) } 75% { transform:translateX(-2px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(0) } }
@keyframes whp-shadow { 0% { transform:scale(1); opacity:.5 } 50% { transform:scale(1.1); opacity:.6 } 100% { transform:scale(.95); opacity:.4 } }

.scn-ambush-interpreter-plan { background: linear-gradient(180deg, #8ab4d0 0%, #b0d4e8 40%, #d0e8f0 100%), radial-gradient(ellipse at 50% 100%, #d0e8f0 0%, transparent 60%); }
.scn-ambush-interpreter-plan .aip-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a9ac0 0%, #90c0e0 50%, #b0d8f0 100%); animation: aip-sky 20s ease-in-out infinite alternate; }
.scn-ambush-interpreter-plan .aip-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%); border-radius:60% 40% 0 0 / 20% 15% 0 0; }
.scn-ambush-interpreter-plan .aip-bush-l { position:absolute; bottom:30%; left:10%; width:100px; height:60px; background: radial-gradient(ellipse at 50% 100%, #5a7a3a 0%, #3a5a2a 60%, transparent 80%); border-radius:50%; transform-origin:bottom center; animation: aip-bush 8s ease-in-out infinite alternate; }
.scn-ambush-interpreter-plan .aip-bush-r { position:absolute; bottom:30%; right:8%; width:120px; height:70px; background: radial-gradient(ellipse at 50% 100%, #6a8a4a 0%, #4a6a2a 60%, transparent 80%); border-radius:50%; transform-origin:bottom center; animation: aip-bush 10s ease-in-out infinite alternate-reverse; }
.scn-ambush-interpreter-plan .aip-tree { position:absolute; bottom:30%; left:45%; width:16px; height:130px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; transform-origin:bottom center; animation: aip-tree 15s ease-in-out infinite; }
.scn-ambush-interpreter-plan .aip-figure-1 { position:absolute; bottom:32%; left:22%; width:24px; height:60px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: aip-crouch 6s ease-in-out infinite; }
.scn-ambush-interpreter-plan .aip-figure-2 { position:absolute; bottom:34%; left:32%; width:22px; height:55px; background: linear-gradient(180deg, #6a4a5a 0%, #3a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: aip-crouch 7s ease-in-out infinite .5s; }
.scn-ambush-interpreter-plan .aip-figure-3 { position:absolute; bottom:30%; left:52%; width:20px; height:50px; background: linear-gradient(180deg, #8a6a4a 0%, #5a4a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: aip-crouch 8s ease-in-out infinite 1s; }
.scn-ambush-interpreter-plan .aip-hat { position:absolute; bottom:55%; left:32%; width:30px; height:12px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:50% 50% 10% 10%; transform:rotate(-10deg); animation: aip-hat 3s ease-in-out infinite; }
@keyframes aip-sky { 0% { transform:scale(1); opacity:.9 } 50% { transform:scale(1.02); opacity:1 } 100% { transform:scale(.98); opacity:.95 } }
@keyframes aip-bush { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(-3px) scaleX(1.02) } 100% { transform:translateY(0) scaleX(.98) } }
@keyframes aip-tree { 0% { transform:rotate(-1deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-1deg) } }
@keyframes aip-crouch { 0% { transform:translateY(0) rotate(-2deg) } 25% { transform:translateY(-2px) rotate(3deg) } 50% { transform:translateY(-4px) rotate(-1deg) } 75% { transform:translateY(-1px) rotate(2deg) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes aip-hat { 0% { transform:rotate(-10deg) translateY(0) } 50% { transform:rotate(-5deg) translateY(-2px) } 100% { transform:rotate(-12deg) translateY(0) } }

.scn-parolles-capture-ambush { background: linear-gradient(180deg, #4a5a6a 0%, #7a8a9a 40%, #a0b0c0 100%), radial-gradient(ellipse at 50% 0%, #c0d0e0 0%, transparent 70%); }
.scn-parolles-capture-ambush .pca-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a4a5a 0%, #6a8aa0 50%, #90b0c8 100%); animation: pca-sky 15s ease-in-out infinite alternate; }
.scn-parolles-capture-ambush .pca-ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius:30% 70% 0 0 / 15% 25% 0 0; }
.scn-parolles-capture-ambush .pca-tree-l { position:absolute; bottom:30%; left:12%; width:20px; height:140px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 8% 8%; transform-origin:bottom center; animation: pca-tree 12s ease-in-out infinite; }
.scn-parolles-capture-ambush .pca-tree-r { position:absolute; bottom:28%; right:10%; width:24px; height:150px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 8% 8%; transform-origin:bottom center; animation: pca-tree 14s ease-in-out infinite reverse; }
.scn-parolles-capture-ambush .pca-figure { position:absolute; bottom:32%; left:42%; width:28px; height:70px; background: linear-gradient(180deg, #5a4a4a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pca-figure 6s ease-in-out infinite; }
.scn-parolles-capture-ambush .pca-ambush-1 { position:absolute; bottom:34%; left:28%; width:26px; height:60px; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pca-ambush 8s ease-in-out infinite .3s; }
.scn-parolles-capture-ambush .pca-ambush-2 { position:absolute; bottom:36%; left:56%; width:24px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pca-ambush 8s ease-in-out infinite .8s; }
.scn-parolles-capture-ambush .pca-drum { position:absolute; bottom:30%; left:48%; width:30px; height:20px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: pca-drum 5s ease-in-out infinite; }
.scn-parolles-capture-ambush .pca-shadow { position:absolute; bottom:30%; left:40%; width:80px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); border-radius:50%; animation: pca-shadow 6s ease-in-out infinite; }
@keyframes pca-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pca-tree { 0% { transform:rotate(-1deg) scaleY(1) } 50% { transform:rotate(2deg) scaleY(1.01) } 100% { transform:rotate(-1deg) scaleY(.99) } }
@keyframes pca-figure { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 30% { transform:translateX(3px) translateY(-1px) rotate(3deg) } 60% { transform:translateX(-2px) translateY(0) rotate(-1deg) } 100% { transform:translateX(0) translateY(0) rotate(0) } }
@keyframes pca-ambush { 0% { transform:translateY(0) rotate(-1deg) scaleY(1) } 50% { transform:translateY(-3px) rotate(2deg) scaleY(1.02) } 100% { transform:translateY(0) rotate(-1deg) scaleY(.98) } }
@keyframes pca-drum { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-2px) scale(1.03) } 100% { transform:translateY(0) scale(.97) } }
@keyframes pca-shadow { 0% { transform:scaleX(1); opacity:.4 } 50% { transform:scaleX(1.15); opacity:.5 } 100% { transform:scaleX(.9); opacity:.35 } }

.scn-parolles-self-confession { background: linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 40%, #6a8a9a 100%), radial-gradient(ellipse at 50% 0%, #8aacbe 0%, transparent 70%); }
.scn-parolles-self-confession .psc-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a2a3a 0%, #3a5a6a 50%, #5a7a8a 100%); animation: psc-sky 20s ease-in-out infinite alternate; }
.scn-parolles-self-confession .psc-ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius:50% 50% 0 0 / 15% 15% 0 0; }
.scn-parolles-self-confession .psc-figure { position:absolute; bottom:30%; left:50%; width:28px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 50%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: psc-figure 8s ease-in-out infinite; }
.scn-parolles-self-confession .psc-rock { position:absolute; bottom:30%; left:42%; width:40px; height:30px; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation: psc-rock 15s ease-in-out infinite; }
.scn-parolles-self-confession .psc-shadow { position:absolute; bottom:28%; left:46%; width:70px; height:14px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); border-radius:50%; animation: psc-shadow 8s ease-in-out infinite; }
.scn-parolles-self-confession .psc-light { position:absolute; bottom:30%; left:52%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,180,140,.15) 0%, transparent 70%); border-radius:50%; animation: psc-light 6s ease-in-out infinite alternate; }
.scn-parolles-self-confession .psc-mist { position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(180,200,210,.15) 50%, transparent 100%); filter: blur(8px); animation: psc-mist 25s ease-in-out infinite alternate; }
@keyframes psc-sky { 0% { opacity:.7; transform:scale(1) } 50% { opacity:.9; transform:scale(1.01) } 100% { opacity:.75; transform:scale(.99) } }
@keyframes psc-figure { 0% { transform:translateX(-50%) translateY(0) rotate(-1deg) } 30% { transform:translateX(-50%) translateY(-2px) rotate(2deg) } 60% { transform:translateX(-50%) translateY(-1px) rotate(-2deg) } 100% { transform:translateX(-50%) translateY(0) rotate(0) } }
@keyframes psc-rock { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-2px) scale(1.02) } 100% { transform:translateY(0) scale(.98) } }
@keyframes psc-shadow { 0% { transform:scaleX(1); opacity:.45 } 50% { transform:scaleX(1.2); opacity:.55 } 100% { transform:scaleX(.9); opacity:.4 } }
@keyframes psc-light { 0% { opacity:.3; transform:scale(1) } 50% { opacity:.6; transform:scale(1.3) } 100% { opacity:.4; transform:scale(1.1) } }
@keyframes psc-mist { 0% { transform:translateY(0) scaleY(1); opacity:.4 } 50% { transform:translateY(-4px) scaleY(1.1); opacity:.6 } 100% { transform:translateY(2px) scaleY(.9); opacity:.3 } }

/* ---- scene: paris-miracles-debate (bright interior, calm) ---- */
.scn-paris-miracles-debate {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%),
    radial-gradient(ellipse at 60% 60%, #f0e0c0 0%, transparent 70%);
}
.pmd-wall { position:absolute; inset:0; background: linear-gradient(180deg, #dcc8b0 0%, #b8a088 100%); }
.pmd-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b09878 0%, #8a7050 100%); }
.pmd-window { position:absolute; top:18%; left:12%; width:28%; height:40%; background: radial-gradient(ellipse at 50% 100%, #c0d8e8 0%, #a0b8c8 70%); border:8px solid #6a5a4a; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); animation: pmd-window-fade 8s ease-in-out infinite alternate; }
.pmd-light-beam { position:absolute; top:18%; left:12%; width:25%; height:50%; background: linear-gradient(135deg, rgba(255,240,200,0.4) 0%, transparent 100%); transform: skewX(-8deg); animation: pmd-beam-pulse 6s ease-in-out infinite alternate; }
.pmd-desk { position:absolute; bottom:30%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.pmd-figure { position:absolute; bottom:34%; left:42%; width:16%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pmd-figure-breath 4s ease-in-out infinite; }
.pmd-book { position:absolute; bottom:31%; left:38%; width:14%; height:6%; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); transform: rotate(-5deg); animation: pmd-book-flip 12s ease-in-out infinite; }
.pmd-candle { position:absolute; bottom:31%; left:55%; width:3%; height:12%; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 2px 2px 1px 1px; animation: pmd-candle-glint 3s ease-in-out infinite alternate; }
.pmd-dust { position:absolute; top:10%; left:10%; width:100%; height:80%; background: transparent; pointer-events:none; }
.pmd-dust::before { content:''; position:absolute; top:30%; left:20%; width:4px; height:4px; background: rgba(255,240,200,0.5); border-radius:50%; filter: blur(1px); animation: pmd-dust-float 15s ease-in-out infinite; }
.pmd-dust::after { content:''; position:absolute; top:50%; left:60%; width:3px; height:3px; background: rgba(255,240,200,0.4); border-radius:50%; filter: blur(1px); animation: pmd-dust-float 18s ease-in-out infinite 5s; }
@keyframes pmd-window-fade { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pmd-beam-pulse { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }
@keyframes pmd-figure-breath { 0% { transform: scale(1,1) translateY(0); } 50% { transform: scale(1.02,1.01) translateY(-2px); } 100% { transform: scale(1,1) translateY(0); } }
@keyframes pmd-book-flip { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes pmd-candle-glint { 0% { box-shadow:0 0 6px 2px #f0c080; } 50% { box-shadow:0 0 12px 4px #ffe0a0; } 100% { box-shadow:0 0 4px 1px #f0c080; } }
@keyframes pmd-dust-float { 0% { transform: translate(0,0); } 50% { transform: translate(10px,-15px); } 100% { transform: translate(20px,0); } }

/* ---- scene: lafeu-parolles-banter (bright interior, funny) ---- */
.scn-lafeu-parolles-banter {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%),
    radial-gradient(circle at 50% 70%, #ffe0b0 0%, transparent 60%);
}
.lfb-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 100%); }
.lfb-table { position:absolute; bottom:26%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #b09878 0%, #907858 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,0.2); }
.lfb-figure1 { position:absolute; bottom:30%; left:25%; width:14%; height:35%; background: linear-gradient(180deg, #3a5a4a 0%, #1a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lfb-wag1 2s ease-in-out infinite; }
.lfb-figure2 { position:absolute; bottom:30%; right:25%; width:14%; height:35%; background: linear-gradient(180deg, #5a3a4a 0%, #3a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lfb-wag2 2.5s ease-in-out infinite 0.5s; }
.lfb-bottle { position:absolute; bottom:28%; left:46%; width:5%; height:18%; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%; transform-origin: bottom center; animation: lfb-bottle-tilt 3s ease-in-out infinite; }
.lfb-hat1 { position:absolute; bottom:60%; left:28%; width:10%; height:8%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 0 0; animation: lfb-hat-bob1 2s ease-in-out infinite; }
.lfb-hat2 { position:absolute; bottom:60%; right:28%; width:10%; height:8%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 30% 0 0; animation: lfb-hat-bob2 2s ease-in-out infinite 0.3s; }
@keyframes lfb-wag1 { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes lfb-wag2 { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes lfb-bottle-tilt { 0% { transform: rotate(-5deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes lfb-hat-bob1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lfb-hat-bob2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* ---- scene: king-enters-court (bright interior, calm) ---- */
.scn-king-enters-court {
  background:
    linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 30%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 70%);
}
.kec-bg { position:absolute; inset:0; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); }
.kec-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); }
.kec-throne { position:absolute; bottom:25%; left:40%; width:20%; height:25%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 10% 10% 5% 5% / 30% 30% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,0.5); }
.kec-king { position:absolute; bottom:28%; left:42%; width:12%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kec-king-step 6s ease-in-out infinite; }
.kec-helena { position:absolute; bottom:28%; left:52%; width:10%; height:28%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kec-helena-bow 8s ease-in-out infinite; }
.kec-attendant1 { position:absolute; bottom:28%; left:28%; width:10%; height:26%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kec-att-still 12s ease-in-out infinite; }
.kec-attendant2 { position:absolute; bottom:28%; right:28%; width:10%; height:26%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kec-att-still 12s ease-in-out infinite 6s; }
@keyframes kec-king-step { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-2px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes kec-helena-bow { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes kec-att-still { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }

/* ---- scene: king-chooses-husband (bright interior, warm) ---- */
.scn-king-chooses-husband {
  background:
    linear-gradient(180deg, #d0b090 0%, #b09070 50%, #907050 100%),
    radial-gradient(circle at 50% 80%, #e0c0a0 0%, transparent 60%);
}
.kch-floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: radial-gradient(ellipse at 50% 100%, #c0a080 0%, #a08060 100%); border-radius: 60% 60% 0 0; }
.kch-maid { position:absolute; bottom:40%; left:42%; width:12%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kch-maid-gaze 5s ease-in-out infinite; }
.kch-king { position:absolute; bottom:42%; left:68%; width:14%; height:28%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kch-king-nod 6s ease-in-out infinite; }
.kch-bachelor1 { position:absolute; bottom:38%; left:20%; width:10%; height:25%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kch-bach-step 7s ease-in-out infinite; }
.kch-bachelor2 { position:absolute; bottom:38%; left:32%; width:10%; height:25%; background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kch-bach-step 7s ease-in-out infinite 2s; }
.kch-bachelor3 { position:absolute; bottom:38%; left:55%; width:10%; height:25%; background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kch-bach-step 7s ease-in-out infinite 4s; }
@keyframes kch-maid-gaze { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kch-king-nod { 0% { transform: rotate(0deg); } 50% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes kch-bach-step { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }

.scn-ring-questioning {
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b49a 60%, #8a7b62 100%),
              radial-gradient(ellipse at 30% 20%, #f5f0e0 0%, transparent 60%);
}
.scn-ring-questioning .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #b8a88a 0%, #d4c4a6 40%, #e8d8b8 100%); }
.scn-ring-questioning .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6b5b4a 0%, #3a2f2a 100%); }
.scn-ring-questioning .window { position:absolute; top:15%; left:10%; width:80px; height:120px; background: #ffe0a0; border-radius:4px; box-shadow: 0 0 30px 10px rgba(255,224,160,0.5); animation: rq-window 6s ease-in-out infinite alternate; }
.scn-ring-questioning .lightbeam { position:absolute; top:25%; left:10%; width:0; height:0; border-left: 120px solid transparent; border-right: 80px solid transparent; border-top: 200px solid rgba(255,224,160,0.15); transform: rotate(10deg); transform-origin: left top; animation: rq-beam 4s ease-in-out infinite alternate; }
.scn-ring-questioning .judge { position:absolute; bottom:20%; left:55%; width:70px; height:120px; background: linear-gradient(180deg, #2a2420 0%, #1a1614 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: rq-judge 3s ease-in-out infinite; }
.scn-ring-questioning .supplicant { position:absolute; bottom:15%; left:20%; width:50px; height:100px; background: linear-gradient(180deg, #3a3028 0%, #1e1916 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: rq-supp 2s ease-in-out infinite alternate; }
.scn-ring-questioning .table { position:absolute; bottom:20%; left:30%; width:140px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2e22 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-ring-questioning .ring { position:absolute; bottom:35%; left:48%; width:16px; height:16px; background: radial-gradient(circle, #ffd080 0%, #b8864a 70%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(255,208,128,0.6); animation: rq-ring 1s ease-in-out infinite alternate; }

@keyframes rq-window { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes rq-beam { 0% { transform: rotate(8deg) scaleY(1) } 50% { transform: rotate(12deg) scaleY(1.05) } 100% { transform: rotate(8deg) scaleY(1) } }
@keyframes rq-judge { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes rq-supp { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rq-ring { 0% { box-shadow: 0 0 15px 4px rgba(255,208,128,0.4); transform: scale(0.95); } 50% { box-shadow: 0 0 30px 10px rgba(255,208,128,0.7); transform: scale(1.05); } 100% { box-shadow: 0 0 20px 6px rgba(255,208,128,0.5); transform: scale(0.98); } }

.scn-diana-will-not {
  background: linear-gradient(180deg, #d4c8b0 0%, #bfb09c 50%, #9a8a78 100%),
              radial-gradient(ellipse at 50% 30%, #e8ddd0 0%, transparent 70%);
}
.scn-diana-will-not .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #b0a090 0%, #c8b8a8 40%, #d8c8b8 100%); }
.scn-diana-will-not .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #5a4e40 0%, #322820 100%); }
.scn-diana-will-not .spotlight { position:absolute; top:0; left:40%; width:120px; height:200px; background: radial-gradient(ellipse at 50% 100%, rgba(230,215,190,0.2) 0%, transparent 70%); animation: dw-spot 5s ease-in-out infinite alternate; }
.scn-diana-will-not .diana { position:absolute; bottom:18%; left:38%; width:60px; height:110px; background: linear-gradient(180deg, #2a2028 0%, #161216 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: dw-diana 3s ease-in-out infinite; }
.scn-diana-will-not .accuser { position:absolute; bottom:20%; right:20%; width:70px; height:120px; background: linear-gradient(180deg, #3a2e2a 0%, #201a18 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: dw-accuse 2.5s ease-in-out infinite alternate; }
.scn-diana-will-not .desk { position:absolute; bottom:20%; left:50%; width:160px; height:18px; background: linear-gradient(180deg, #4a3e32 0%, #2e241e 100%); border-radius: 4px; margin-left:-80px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-diana-will-not .lamp { position:absolute; bottom:55%; left:70%; width:20px; height:30px; background: radial-gradient(circle at 50% 0%, #ffe0a0 0%, #d4b080 50%, #8a7050 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 40px 12px rgba(255,224,160,0.4); animation: dw-lamp 4s ease-in-out infinite alternate; }

@keyframes dw-spot { 0% { opacity:0.6; transform:scale(1) } 50% { opacity:0.9; transform:scale(1.02) } 100% { opacity:0.7; transform:scale(0.98) } }
@keyframes dw-diana { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dw-accuse { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dw-lamp { 0% { opacity:0.8; box-shadow: 0 0 20px 8px rgba(255,224,160,0.3) } 50% { opacity:1; box-shadow: 0 0 50px 15px rgba(255,224,160,0.6) } 100% { opacity:0.85; box-shadow: 0 0 30px 10px rgba(255,224,160,0.4) } }

.scn-diana-reveals-truth {
  background: linear-gradient(180deg, #c8bba5 0%, #b0a390 50%, #8a7d6c 100%),
              radial-gradient(ellipse at 30% 40%, #e8ddca 0%, transparent 70%);
}
.scn-diana-reveals-truth .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #a09080 0%, #b8a898 40%, #c8b8a8 100%); }
.scn-diana-reveals-truth .doorway { position:absolute; top:10%; right:10%; width:80px; height:180px; background: #2a241e; border-radius: 10px; box-shadow: inset 0 0 20px 10px rgba(0,0,0,0.3); }
.scn-diana-reveals-truth .door-open { position:absolute; top:10%; right:10%; width:80px; height:180px; background: linear-gradient(90deg, #c8b8a0 0%, #e0d0b8 100%); border-radius: 10px 0 0 10px; transform-origin: left center; animation: dr-door 8s ease-in-out infinite alternate; }
.scn-diana-reveals-truth .incoming-light { position:absolute; top:15%; right:18%; width:0; height:0; border-left: 100px solid transparent; border-bottom: 250px solid rgba(255,230,180,0.2); border-right: 60px solid transparent; transform: rotate(-20deg); transform-origin: right top; animation: dr-light 6s ease-in-out infinite alternate; }
.scn-diana-reveals-truth .figure-entering { position:absolute; bottom:20%; right:12%; width:50px; height:110px; background: linear-gradient(180deg, #2a2018 0%, #14100c 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: dr-enter 5s ease-in-out infinite; }
.scn-diana-reveals-truth .diana-standing { position:absolute; bottom:18%; left:25%; width:55px; height:105px; background: linear-gradient(180deg, #2a202a 0%, #14101a 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: dr-diana 4s ease-in-out infinite alternate; }
.scn-diana-reveals-truth .widow-figure { position:absolute; bottom:20%; left:50%; width:50px; height:100px; background: linear-gradient(180deg, #3a2e28 0%, #1e1814 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: dr-widow 3.5s ease-in-out infinite; }

@keyframes dr-door { 0% { transform: rotateY(0deg); opacity:0.8 } 50% { transform: rotateY(-30deg); opacity:1 } 100% { transform: rotateY(0deg); opacity:0.85 } }
@keyframes dr-light { 0% { opacity:0.3; transform: scale(1) rotate(-22deg) } 50% { opacity:0.7; transform: scale(1.05) rotate(-18deg) } 100% { opacity:0.4; transform: scale(0.98) rotate(-22deg) } }
@keyframes dr-enter { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dr-diana { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dr-widow { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }

.scn-helena-revealed {
  background: linear-gradient(180deg, #f0e0c8 0%, #d8c8a8 40%, #b8a080 100%),
              radial-gradient(ellipse at 40% 50%, #ffe0b0 0%, transparent 60%);
}
.scn-helena-revealed .wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #e8d8b8 0%, #c8b490 100%); }
.scn-helena-revealed .floor-rug { position:absolute; bottom:0; left:5%; right:5%; height:15%; background: linear-gradient(180deg, #6a5a44 0%, #4a3a2a 100%); border-radius: 20% 20% 0 0; }
.scn-helena-revealed .arch { position:absolute; top:5%; left:25%; width:50%; height:60%; border: 2px solid #d4b894; border-bottom:none; border-radius: 50% 50% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.1); }
.scn-helena-revealed .helena-figure { position:absolute; bottom:22%; left:45%; width:60px; height:110px; background: linear-gradient(180deg, #5a3e32 0%, #3a2a1e 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 40px 15px rgba(255,200,120,0.5); animation: hr-helena 6s ease-in-out infinite alternate; }
.scn-helena-revealed .bertram-figure { position:absolute; bottom:20%; right:20%; width:65px; height:115px; background: linear-gradient(180deg, #2a2420 0%, #181412 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: hr-bert 5s ease-in-out infinite; }
.scn-helena-revealed .king-figure { position:absolute; bottom:18%; left:15%; width:70px; height:120px; background: linear-gradient(180deg, #3a2e2a 0%, #201a18 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: hr-king 7s ease-in-out infinite alternate; }
.scn-helena-revealed .warm-window { position:absolute; top:8%; left:8%; width:60px; height:90px; background: linear-gradient(135deg, #ffd8a0 0%, #f0b870 100%); border-radius: 4px; box-shadow: 0 0 30px 8px rgba(255,216,160,0.4); animation: hr-window 8s ease-in-out infinite alternate; }
.scn-helena-revealed .gold-light { position:absolute; inset:0; background: radial-gradient(ellipse at 45% 35%, rgba(255,220,150,0.2) 0%, transparent 60%); pointer-events:none; animation: hr-gold 10s ease-in-out infinite alternate; }

@keyframes hr-helena { 0% { transform: translateY(0) rotate(-1deg); opacity:0.9 } 50% { transform: translateY(-4px) rotate(1deg); opacity:1 } 100% { transform: translateY(0) rotate(0deg); opacity:0.95 } }
@keyframes hr-bert { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hr-king { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(1) } }
@keyframes hr-window { 0% { opacity:0.7; box-shadow: 0 0 20px 5px rgba(255,216,160,0.3) } 50% { opacity:1; box-shadow: 0 0 40px 12px rgba(255,216,160,0.6) } 100% { opacity:0.8; box-shadow: 0 0 25px 8px rgba(255,216,160,0.4) } }
@keyframes hr-gold { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

/* Scene: clown-devil-banter */
.scn-clown-devil-banter {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 50%, #b89a7a 100%),
              radial-gradient(ellipse at 50% 100%, #c8a87a 0%, transparent 70%);
}
.scn-clown-devil-banter .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d5b0 0%, #d8c09a 100%);
  border-bottom: 4px solid #a08060;
}
.scn-clown-devil-banter .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
}
.scn-clown-devil-banter .clown {
  position: absolute; bottom: 30%; left: 22%; width: 22%; height: 45%;
  background: linear-gradient(180deg, #f0d050 0%, #d0a030 50%, #b08020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-clown 3s ease-in-out infinite alternate;
}
.scn-clown-devil-banter .devil {
  position: absolute; bottom: 30%; right: 22%; width: 22%; height: 45%;
  background: linear-gradient(180deg, #2a1a4a 0%, #1a0a2a 50%, #0a001a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-devil 4s ease-in-out infinite alternate;
}
.scn-clown-devil-banter .table {
  position: absolute; bottom: 30%; left: 40%; right: 40%; height: 6%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-clown-devil-banter .candle {
  position: absolute; bottom: 36%; left: 50%; width: 4%; height: 10%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 20% 20% 10% 10%;
  animation: sc1-candle 5s ease-in-out infinite;
}
.scn-clown-devil-banter .glow {
  position: absolute; bottom: 38%; left: 48%; width: 8%; height: 8%;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe0a0 0%, #ffc060 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffc060, 0 0 60px 20px rgba(255,192,96,0.4);
  animation: sc1-glow 2s ease-in-out infinite alternate;
}
@keyframes sc1-clown {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(4%) rotate(2deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(-2deg) scaleY(0.98); }
}
@keyframes sc1-devil {
  0% { transform: translateX(0) rotate(0deg) scaleX(1); }
  50% { transform: translateX(-3%) rotate(-2deg) scaleX(1.02); }
  100% { transform: translateX(0) rotate(1deg) scaleX(0.98); }
}
@keyframes sc1-candle {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(1); opacity: 0.9; }
}
@keyframes sc1-glow {
  0% { transform: translateX(-50%) scale(1); opacity: 0.7; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.8; }
}

/* Scene: lafeu-proposes-marian */
.scn-lafeu-proposes-marian {
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 50%, #c0b090 100%),
              radial-gradient(ellipse at 50% 80%, #e0c8a0 0%, transparent 70%);
}
.scn-lafeu-proposes-marian .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #dcc8a8 0%, #c8b090 100%);
  border-bottom: 4px solid #a08060;
}
.scn-lafeu-proposes-marian .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
}
.scn-lafeu-proposes-marian .lafeu {
  position: absolute; bottom: 20%; left: 18%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-kneel 6s ease-in-out infinite alternate;
}
.scn-lafeu-proposes-marian .marian {
  position: absolute; bottom: 20%; right: 25%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #b8a080 0%, #907860 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-stand 4s ease-in-out infinite alternate;
}
.scn-lafeu-proposes-marian .throne {
  position: absolute; bottom: 22%; right: 22%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #c8a86a 0%, #a08040 50%, #705020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-lafeu-proposes-marian .window {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #ffe0c0 0%, #ffc8a0 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 20px #ffd0a0;
  animation: sc2-window 8s ease-in-out infinite alternate;
}
.scn-lafeu-proposes-marian .curtain-left {
  position: absolute; top: 8%; left: 33%; width: 8%; height: 44%;
  background: linear-gradient(180deg, #b06040 0%, #803820 100%);
  border-radius: 20% 0 0 20%;
  animation: sc2-curtain 10s ease-in-out infinite alternate;
}
.scn-lafeu-proposes-marian .curtain-right {
  position: absolute; top: 8%; right: 33%; width: 8%; height: 44%;
  background: linear-gradient(180deg, #b06040 0%, #803820 100%);
  border-radius: 0 20% 20% 0;
  animation: sc2-curtain 10s ease-in-out infinite alternate-reverse;
}
@keyframes sc2-kneel {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2%) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes sc2-stand {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3%) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes sc2-window {
  0% { opacity: 0.8; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.9; filter: brightness(1); }
}
@keyframes sc2-curtain {
  0% { transform: translateX(0) skewX(0deg); }
  50% { transform: translateX(2%) skewX(2deg); }
  100% { transform: translateX(0) skewX(-2deg); }
}

/* Scene: king-expected-arrival */
.scn-king-expected-arrival {
  background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 50%, #b8a080 100%),
              radial-gradient(ellipse at 50% 80%, #d0b890 0%, transparent 70%);
}
.scn-king-expected-arrival .wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #d4c0a0 0%, #c0a880 100%);
  border-bottom: 4px solid #907050;
}
.scn-king-expected-arrival .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
}
.scn-king-expected-arrival .door {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 0 20px #1a0a00;
  animation: sc3-door 12s ease-in-out infinite alternate;
}
.scn-king-expected-arrival .throne {
  position: absolute; bottom: 25%; right: 20%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #c8a050 0%, #a08030 50%, #705010 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-king-expected-arrival .crown-cushion {
  position: absolute; bottom: 45%; right: 25%; width: 10%; height: 8%;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: sc3-crown 5s ease-in-out infinite alternate;
}
.scn-king-expected-arrival .herald {
  position: absolute; bottom: 15%; left: 18%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc3-herald 7s ease-in-out infinite alternate;
}
.scn-king-expected-arrival .window {
  position: absolute; top: 10%; left: 10%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #ffe8c0 0%, #ffd0a0 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 20px #ffc080;
  animation: sc3-window 9s ease-in-out infinite alternate;
}
@keyframes sc3-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(1); }
}
@keyframes sc3-crown {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5%) rotate(5deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes sc3-herald {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3%) rotate(2deg); }
  100% { transform: translateX(-2%) rotate(-1deg); }
}
@keyframes sc3-window {
  0% { opacity: 0.8; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1.2); }
  100% { opacity: 0.9; filter: brightness(1); }
}

/* Scene: clown-son-scar */
.scn-clown-son-scar {
  background: linear-gradient(180deg, #f0e0c8 0%, #d8c8a8 50%, #c0b090 100%),
              radial-gradient(ellipse at 50% 100%, #c8a880 0%, transparent 70%);
}
.scn-clown-son-scar .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e0c8a8 0%, #c8b090 100%);
  border-bottom: 4px solid #a08060;
}
.scn-clown-son-scar .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
}
.scn-clown-son-scar .clown {
  position: absolute; bottom: 25%; left: 15%; width: 22%; height: 50%;
  background: linear-gradient(180deg, #f0c050 0%, #d0a030 50%, #b08020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-clown 3s ease-in-out infinite alternate;
}
.scn-clown-son-scar .lord {
  position: absolute; bottom: 25%; right: 18%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-lord 5s ease-in-out infinite alternate;
}
.scn-clown-son-scar .table {
  position: absolute; bottom: 25%; left: 35%; right: 35%; height: 6%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-clown-son-scar .patch-velvet {
  position: absolute; bottom: 42%; right: 28%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0c 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: sc4-patch 4s ease-in-out infinite alternate;
}
.scn-clown-son-scar .mirror {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #c0b0a0 0%, #a08870 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 20px #b0a090, 0 4px 8px rgba(0,0,0,0.3);
  animation: sc4-mirror 7s ease-in-out infinite alternate;
}
@keyframes sc4-clown {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  50% { transform: translateY(-4%) rotate(3deg) scaleX(1.02); }
  100% { transform: translateY(0) rotate(-3deg) scaleX(0.98); }
}
@keyframes sc4-lord {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2%) rotate(-2deg); }
  100% { transform: translateX(2%) rotate(1deg); }
}
@keyframes sc4-patch {
  0% { transform: rotate(-15deg) scale(1); opacity: 0.9; }
  50% { transform: rotate(-10deg) scale(1.1); opacity: 1; }
  100% { transform: rotate(-20deg) scale(0.95); opacity: 0.8; }
}
@keyframes sc4-mirror {
  0% { filter: brightness(0.9); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(1); }
}

.scn-scene-iii-florence {
  background: 
    linear-gradient(180deg, #c87a4a 0%, #a55a3a 30%, #6a3a1a 70%, #3a1a0a 100%),
    radial-gradient(ellipse at 30% 20%, #e8b06a 0%, transparent 60%);
}
.scn-scene-iii-florence .throne {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a5a3a 0%, #5a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: sf-throne 10s ease-in-out infinite alternate;
}
.scn-scene-iii-florence .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a3a2a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 0 0;
  animation: sf-floor 20s ease-in-out infinite alternate;
}
.scn-scene-iii-florence .pillar-l {
  position: absolute; bottom: 10%; left: 12%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #7a5a4a 0%, #b08060 40%, #8a5a4a 100%);
  border-radius: 4px;
  box-shadow: 4px 0 10px rgba(0,0,0,.2);
  animation: sf-pillar 15s ease-in-out infinite alternate;
}
.scn-scene-iii-florence .pillar-r {
  position: absolute; bottom: 10%; right: 12%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #7a5a4a 0%, #b08060 40%, #8a5a4a 100%);
  border-radius: 4px;
  box-shadow: -4px 0 10px rgba(0,0,0,.2);
  animation: sf-pillar 15s ease-in-out infinite alternate-reverse;
}
.scn-scene-iii-florence .banner {
  position: absolute; top: 15%; left: 25%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #b8483a 0%, #702a1a 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: sf-banner 12s ease-in-out infinite;
}
.scn-scene-iii-florence .window {
  position: absolute; top: 18%; left: 35%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #fff0c0 0%, #d0a050 50%, #804020 100%);
  border: 6px solid #5a3a2a;
  border-radius: 8px 8px 30% 30%;
  box-shadow: inset 0 0 30px #fff0c0, 0 0 20px rgba(255,240,192,.3);
  animation: sf-window 8s ease-in-out infinite alternate;
}
.scn-scene-iii-florence .figure {
  position: absolute; bottom: 25%; left: 42%; width: 16px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sf-figure 6s ease-in-out infinite;
}
.scn-scene-iii-florence .light-ray {
  position: absolute; top: 15%; left: 30%; width: 70px; height: 200px;
  background: linear-gradient(180deg, rgba(255,240,192,.6) 0%, rgba(255,240,192,0) 100%);
  transform: skewX(-10deg);
  filter: blur(8px);
  animation: sf-light 14s ease-in-out infinite alternate;
}

@keyframes sf-throne {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); }
  50% { transform: translateX(-50%) scale(1.02) rotate(0.5deg); }
  100% { transform: translateX(-50%) scale(0.98) rotate(-0.5deg); }
}
@keyframes sf-floor {
  0% { transform: translateY(0); opacity: .9; }
  50% { transform: translateY(-2px); opacity: 1; }
  100% { transform: translateY(1px); opacity: .85; }
}
@keyframes sf-pillar {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.005); }
  100% { transform: scaleY(0.995); }
}
@keyframes sf-banner {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes sf-window {
  0% { box-shadow: inset 0 0 20px #fff0c0, 0 0 10px rgba(255,240,192,.2); opacity: .8; }
  50% { box-shadow: inset 0 0 40px #fff0c0, 0 0 30px rgba(255,240,192,.5); opacity: 1; }
  100% { box-shadow: inset 0 0 25px #fff0c0, 0 0 15px rgba(255,240,192,.3); opacity: .9; }
}
@keyframes sf-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes sf-light {
  0% { transform: skewX(-10deg) scaleY(1); opacity: .7; }
  50% { transform: skewX(-8deg) scaleY(1.05); opacity: 1; }
  100% { transform: skewX(-12deg) scaleY(0.95); opacity: .6; }
}

.scn-scene-iv-roussillon {
  background: 
    linear-gradient(180deg, #c4a87a 0%, #8a7050 40%, #5a4030 100%),
    radial-gradient(ellipse at 60% 30%, #e8d0a0 0%, transparent 70%);
}
.scn-scene-iv-roussillon .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #6a5040 0%, #8a7050 50%, #6a5040 100%);
  animation: sr-wall 20s ease-in-out infinite alternate;
}
.scn-scene-iv-roussillon .table {
  position: absolute; bottom: 18%; left: 30%; width: 120px; height: 20px;
  background: linear-gradient(90deg, #5a3a2a 0%, #7a5a3a 50%, #5a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: sr-table 16s ease-in-out infinite alternate;
}
.scn-scene-iv-roussillon .chair {
  position: absolute; bottom: 22%; left: 32%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 6px 10px rgba(0,0,0,.3);
  animation: sr-chair 18s ease-in-out infinite;
}
.scn-scene-iv-roussillon .figure-seated {
  position: absolute; bottom: 24%; left: 35%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sr-figure 10s ease-in-out infinite;
}
.scn-scene-iv-roussillon .letter {
  position: absolute; bottom: 20%; left: 37%; width: 20px; height: 14px;
  background: #e8d0a0;
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: sr-letter 22s ease-in-out infinite alternate;
}
.scn-scene-iv-roussillon .window-light {
  position: absolute; top: 12%; left: 60%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #d0b080 60%, transparent 100%);
  border-radius: 6px;
  box-shadow: 0 0 40px rgba(255,248,224,.3);
  animation: sr-windowlight 14s ease-in-out infinite alternate;
}
.scn-scene-iv-roussillon .curtain {
  position: absolute; top: 5%; left: 70%; width: 30px; height: 50%;
  background: linear-gradient(180deg, #7a4a3a 0%, #4a2a1a 100%);
  border-radius: 30% 10% 30% 10%;
  transform-origin: top center;
  animation: sr-curtain 25s ease-in-out infinite alternate;
}

@keyframes sr-wall {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes sr-table {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.3deg); }
  100% { transform: translateY(1px) rotate(-0.3deg); }
}
@keyframes sr-chair {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.005) translateY(-1px); }
  100% { transform: translateX(-50%) scale(0.995) translateY(0); }
}
@keyframes sr-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes sr-letter {
  0% { transform: translateX(0) rotate(0deg); opacity: .8; }
  50% { transform: translateX(1px) rotate(3deg); opacity: 1; }
  100% { transform: translateX(-1px) rotate(-2deg); opacity: .9; }
}
@keyframes sr-windowlight {
  0% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: .8; transform: scale(0.98); }
}
@keyframes sr-curtain {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(2deg) scaleX(1.02); }
  100% { transform: rotate(-1deg) scaleX(0.98); }
}

.scn-scene-v-florence-walls {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #b0d4e8 40%, #e0c4a0 70%, #8a6a4a 100%),
    radial-gradient(ellipse at 70% 20%, #fff0a0 0%, transparent 60%);
}
.scn-scene-v-florence-walls .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #c0d8e8 100%);
  animation: sw-sky 30s ease-in-out infinite alternate;
}
.scn-scene-v-florence-walls .city-wall {
  position: absolute; bottom: 25%; left: -10%; width: 120%; height: 30%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 20% 40% 0 0 / 30% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: sw-wall 20s ease-in-out infinite alternate;
}
.scn-scene-v-florence-walls .distant-hill {
  position: absolute; bottom: 35%; left: -20%; width: 140%; height: 25%;
  background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%);
  border-radius: 50% 60% 0 0 / 80% 70% 0 0;
  opacity: .6;
  animation: sw-hill 35s ease-in-out infinite alternate;
}
.scn-scene-v-florence-walls .tower {
  position: absolute; bottom: 28%; right: 18%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #b08060 0%, #6a4a3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: sw-tower 16s ease-in-out infinite;
}
.scn-scene-v-florence-walls .woman-1 {
  position: absolute; bottom: 26%; left: 30%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sw-woman 12s ease-in-out infinite;
}
.scn-scene-v-florence-walls .woman-2 {
  position: absolute; bottom: 26%; left: 38%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sw-woman 12s ease-in-out infinite 2s;
}
.scn-scene-v-florence-walls .woman-3 {
  position: absolute; bottom: 26%; left: 46%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sw-woman 12s ease-in-out infinite 4s;
}
.scn-scene-v-florence-walls .sun-glow {
  position: absolute; top: 10%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff0a0 0%, #f0c060 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: sw-sunglow 18s ease-in-out infinite alternate;
}

@keyframes sw-sky {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes sw-wall {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.005); }
  100% { transform: translateY(1px) scaleX(0.995); }
}
@keyframes sw-hill {
  0% { transform: translateX(0) scale(1); opacity: .6; }
  50% { transform: translateX(-5px) scale(1.01); opacity: .65; }
  100% { transform: translateX(3px) scale(0.99); opacity: .55; }
}
@keyframes sw-tower {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes sw-woman {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes sw-sunglow {
  0% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: .8; transform: scale(0.95); }
}

.scn-scene-vi-camp {
  background: 
    linear-gradient(180deg, #2a2040 0%, #4a3050 30%, #7a4a3a 70%, #5a2a1a 100%),
    radial-gradient(ellipse at 50% 80%, #8a6a3a 0%, transparent 60%);
}
.scn-scene-vi-camp .sky-dusk {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2040 0%, #4a3050 40%, #6a3a2a 100%);
  animation: sc-sky 25s ease-in-out infinite alternate;
}
.scn-scene-vi-camp .tent {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,.7);
  animation: sc-tent 12s ease-in-out infinite alternate;
}
.scn-scene-vi-camp .fire {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #ff8020 0%, #c04010 50%, #601010 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px #ff8020, 0 0 60px 20px rgba(255,128,32,.3);
  animation: sc-fire 4s ease-in-out infinite alternate;
}
.scn-scene-vi-camp .figure-left {
  position: absolute; bottom: 22%; left: 30%; width: 16px; height: 44px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc-fig 8s ease-in-out infinite;
}
.scn-scene-vi-camp .figure-right {
  position: absolute; bottom: 22%; right: 30%; width: 16px; height: 46px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc-fig 8s ease-in-out infinite 2s;
}
.scn-scene-vi-camp .flag {
  position: absolute; top: 10%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #a03a1a 0%, #601010 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: sc-flag 6s ease-in-out infinite alternate;
}
.scn-scene-vi-camp .weapon {
  position: absolute; bottom: 22%; left: 20%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #6a6a6a 0%, #3a3a3a 100%);
  border-radius: 1px;
  transform: rotate(20deg);
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
  animation: sc-weapon 10s ease-in-out infinite alternate;
}
.scn-scene-vi-camp .shadow {
  position: absolute; bottom: 20%; left: 28%; width: 60px; height: 10px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(4px);
  animation: sc-shadow 14s ease-in-out infinite alternate;
}

@keyframes sc-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes sc-tent {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.01) rotate(0.2deg); }
  100% { transform: translateX(-50%) scaleY(0.99) rotate(-0.2deg); }
}
@keyframes sc-fire {
  0% { transform: scaleY(1) translateY(0); opacity: .8; }
  50% { transform: scaleY(1.1) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(1px); opacity: .7; }
}
@keyframes sc-fig {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes sc-flag {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes sc-weapon {
  0% { transform: rotate(20deg); }
  50% { transform: rotate(22deg); }
  100% { transform: rotate(18deg); }
}
@keyframes sc-shadow {
  0% { transform: scaleX(1); opacity: .5; }
  50% { transform: scaleX(1.1); opacity: .6; }
  100% { transform: scaleX(0.9); opacity: .4; }
}

/* Scene 1: marseilles-street-helena */
.scn-marseilles-street-helena {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #c2924e 100%),
              radial-gradient(ellipse at 70% 30%, #fff3cd 0%, transparent 60%);
}
.scn-marseilles-street-helena .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0d4f1 0%, #f3e8a0 80%);
  animation: msh-sky 20s ease-in-out infinite alternate;
}
.scn-marseilles-street-helena .sun {
  position: absolute; top: 12%; left: 65%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,215,0,0.4);
  animation: msh-sun 15s ease-in-out infinite;
}
.scn-marseilles-street-helena .building-l {
  position: absolute; bottom: 35%; left: 5%; width: 30%; height: 60%;
  background: linear-gradient(90deg, #c69c72 0%, #ac8060 50%, #8b6242 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
  animation: msh-build 12s ease-in-out infinite alternate;
}
.scn-marseilles-street-helena .building-r {
  position: absolute; bottom: 35%; right: 5%; width: 28%; height: 55%;
  background: linear-gradient(90deg, #b8966e 0%, #9a7a56 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 4px 0 8px rgba(0,0,0,0.3);
  animation: msh-build 14s ease-in-out infinite alternate-reverse;
}
.scn-marseilles-street-helena .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: msh-street 8s ease-in-out infinite;
}
.scn-marseilles-street-helena .figure-a {
  position: absolute; bottom: 30%; left: 38%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #d4a373 0%, #b8865a 50%, #8b5e3c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msh-walk 4s ease-in-out infinite;
}
.scn-marseilles-street-helena .figure-b {
  position: absolute; bottom: 30%; left: 48%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #c9a87c 0%, #a0805a 50%, #7a5e3e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msh-walk 5s ease-in-out infinite 0.5s;
}
@keyframes msh-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes msh-sun { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(8px,-4px) scale(1.05); } 100% { transform: translate(-4px,2px) scale(0.98); } }
@keyframes msh-build { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes msh-street { 0% { background-position: 0 0; } 50% { background-position: 10px 0; } 100% { background-position: -5px 0; } }
@keyframes msh-walk { 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(0deg); } }

/* Scene 2: gentleman-helps-petition */
.scn-gentleman-helps-petition {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 50%, #b89a7a 100%),
              radial-gradient(ellipse at 40% 20%, #fff3cd 0%, transparent 70%);
}
.scn-gentleman-helps-petition .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #e8d5b0 0%, #ccb898 80%);
  animation: ghp-wall 10s ease-in-out infinite alternate;
}
.scn-gentleman-helps-petition .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
  animation: ghp-floor 8s ease-in-out infinite;
}
.scn-gentleman-helps-petition .window {
  position: absolute; top: 12%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #f0e68c 0%, #fff8dc 80%);
  border: 4px solid #8b6242; border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 60px rgba(255,215,0,0.3), 0 0 30px rgba(255,215,0,0.1);
  animation: ghp-window 12s ease-in-out infinite;
}
.scn-gentleman-helps-petition .desk {
  position: absolute; bottom: 22%; left: 20%; width: 30%; height: 18%;
  background: linear-gradient(180deg, #7a5e3e 0%, #5a4028 100%);
  border-radius: 2% 2% 8% 8%; box-shadow: 0 6px 10px rgba(0,0,0,0.4);
  animation: ghp-desk 6s ease-in-out infinite alternate;
}
.scn-gentleman-helps-petition .gentleman {
  position: absolute; bottom: 25%; left: 45%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #6b4226 0%, #4a2d18 50%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ghp-bow 5s ease-in-out infinite;
}
.scn-gentleman-helps-petition .petitioner {
  position: absolute; bottom: 25%; left: 30%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #a0805a 0%, #7a5e3e 50%, #5a4028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ghp-petition 6s ease-in-out infinite 1s;
}
@keyframes ghp-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes ghp-floor { 0% { background-position: 0 0; } 50% { background-position: 5px 0; } 100% { background-position: -3px 0; } }
@keyframes ghp-window { 0% { box-shadow: inset 0 0 40px rgba(255,215,0,0.2), 0 0 20px rgba(255,215,0,0.1); } 50% { box-shadow: inset 0 0 80px rgba(255,215,0,0.4), 0 0 40px rgba(255,215,0,0.2); } 100% { box-shadow: inset 0 0 50px rgba(255,215,0,0.25), 0 0 25px rgba(255,215,0,0.12); } }
@keyframes ghp-desk { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-0.5deg); } }
@keyframes ghp-bow { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-5deg); } 50% { transform: translateX(8px) rotate(5deg); } 75% { transform: translateX(6px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ghp-petition { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-2px) translateY(-3px); } 50% { transform: translateX(2px) translateY(-1px); } 75% { transform: translateX(-1px) translateY(-4px); } 100% { transform: translateX(0) translateY(0); } }

/* Scene 3: king-gone-to-rousillon */
.scn-king-gone-to-rousillon {
  background: linear-gradient(180deg, #2e2e3e 0%, #4a4a5e 40%, #6a6a7e 100%),
              radial-gradient(ellipse at 50% 40%, #8a8a9e 0%, transparent 70%);
}
.scn-king-gone-to-rousillon .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #5a5a6a 0%, #3a3a4a 80%);
  animation: kgr-wall 12s ease-in-out infinite alternate;
}
.scn-king-gone-to-rousillon .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  animation: kgr-floor 10s ease-in-out infinite;
}
.scn-king-gone-to-rousillon .throne {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b6242 0%, #5a4028 50%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: kgr-throne 8s ease-in-out infinite;
}
.scn-king-gone-to-rousillon .door {
  position: absolute; bottom: 15%; right: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border: 3px solid #2a1a0a; border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: kgr-door 15s ease-in-out infinite alternate;
}
.scn-king-gone-to-rousillon .courtier {
  position: absolute; bottom: 22%; left: 30%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #6b4a3a 0%, #4a2a1a 50%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kgr-look 6s ease-in-out infinite;
}
.scn-king-gone-to-rousillon .letter {
  position: absolute; bottom: 35%; left: 38%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #f5e6c8 0%, #d4b896 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: kgr-letter 9s ease-in-out infinite;
}
@keyframes kgr-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes kgr-floor { 0% { background-position: 0 0; } 50% { background-position: 3px 0; } 100% { background-position: -2px 0; } }
@keyframes kgr-throne { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(1px) rotate(-0.5deg); } }
@keyframes kgr-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1.02); } }
@keyframes kgr-look { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(3deg); } 50% { transform: translateX(10px) rotate(-2deg); } 75% { transform: translateX(5px) rotate(4deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kgr-letter { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(5deg); } 50% { transform: translateY(-1px) rotate(-3deg); } 75% { transform: translateY(-2px) rotate(4deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* Scene 4: helena-follows-to-roussillon */
.scn-helena-follows-to-roussillon {
  background: linear-gradient(180deg, #87ceeb 0%, #f5deb3 40%, #d2b48c 100%),
              radial-gradient(ellipse at 60% 20%, #fffacd 0%, transparent 60%);
}
.scn-helena-follows-to-roussillon .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d4f1 0%, #f5e6c8 70%);
  animation: hfr-sky 18s ease-in-out infinite alternate;
}
.scn-helena-follows-to-roussillon .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5335 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  animation: hfr-hills 14s ease-in-out infinite;
}
.scn-helena-follows-to-roussillon .road {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 30% 30% 0 0;
  animation: hfr-road 10s ease-in-out infinite;
}
.scn-helena-follows-to-roussillon .horse {
  position: absolute; bottom: 18%; left: 30%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #6b4a3a 0%, #4a2a1a 50%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: center bottom;
  animation: hfr-horse 3s ease-in-out infinite;
}
.scn-helena-follows-to-roussillon .rider {
  position: absolute; bottom: 30%; left: 27%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #d4a373 0%, #b8865a 50%, #8b5e3c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hfr-rider 3s ease-in-out infinite 0.2s;
}
.scn-helena-follows-to-roussillon .tree-l {
  position: absolute; bottom: 15%; left: 5%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a5a2a 0%, #1a3a0a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset -4px 0 6px rgba(0,0,0,0.4);
  animation: hfr-tree 12s ease-in-out infinite alternate;
}
.scn-helena-follows-to-roussillon .tree-r {
  position: absolute; bottom: 15%; right: 5%; width: 36px; height: 54px;
  background: linear-gradient(180deg, #2a4a1a 0%, #0a2a00 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 4px 0 6px rgba(0,0,0,0.4);
  animation: hfr-tree 14s ease-in-out infinite alternate-reverse;
}
@keyframes hfr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hfr-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }
@keyframes hfr-road { 0% { background-position: 0 0; } 50% { background-position: 8px 0; } 100% { background-position: -4px 0; } }
@keyframes hfr-horse { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(4deg); } 75% { transform: translateY(-5px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hfr-rider { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-5deg); } 50% { transform: translateY(-1px) rotate(3deg); } 75% { transform: translateY(-4px) rotate(-4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hfr-tree { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(0.97) rotate(1deg); } 100% { transform: scaleX(1.02) rotate(-0.5deg); } }

/* soldiers-tease-parolles */
.scn-soldiers-tease-parolles {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0c090 40%, #c8a060 100%),
              radial-gradient(circle at 30% 20%, #fff8e0, transparent 70%);
}
.scn-soldiers-tease-parolles .sun-bg {
  position: absolute; inset: 0; background: radial-gradient(circle at 20% 10%, #fff5d0 0%, transparent 80%);
  animation: stp-sun-pulse 6s ease-in-out infinite;
}
.scn-soldiers-tease-parolles .parolles-body {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #6a4a3a, #3a2a1a);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: stp-bob 2s ease-in-out infinite;
}
.scn-soldiers-tease-parolles .parolles-head {
  position: absolute; bottom: 73%; left: 44%; width: 28px; height: 32px;
  background: radial-gradient(ellipse at 50% 40%, #c8a070, #8a6a4a);
  border-radius: 50%;
  animation: stp-head-shake 1.2s ease-in-out infinite;
}
.scn-soldiers-tease-parolles .soldier-left {
  position: absolute; bottom: 26%; left: 15%; width: 35px; height: 72px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a1a);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  animation: stp-sway 3s ease-in-out infinite;
}
.scn-soldiers-tease-parolles .soldier-right {
  position: absolute; bottom: 26%; right: 15%; width: 35px; height: 72px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a1a);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  animation: stp-sway 3s ease-in-out infinite reverse;
}
.scn-soldiers-tease-parolles .soldier-back {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a, #1a1010);
  border-radius: 30% 30% 15% 15% / 50% 50% 30% 30%;
  animation: stp-sway 4s ease-in-out infinite 0.5s;
}
.scn-soldiers-tease-parolles .mock-arm {
  position: absolute; bottom: 58%; left: 52%; width: 20px; height: 8px;
  background: #5a3a2a; border-radius: 40%; transform-origin: left center;
  animation: stp-arm-wave 0.8s ease-in-out infinite;
}
.scn-soldiers-tease-parolles .shadow-shape {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 8px;
  background: rgba(0,0,0,0.15); filter: blur(4px);
  animation: stp-shadow-pulse 3s ease-in-out infinite;
}
.scn-soldiers-tease-parolles .dust {
  position: absolute; bottom: 20%; left: 30%; width: 4px; height: 4px;
  background: #d0b080; border-radius: 50%; filter: blur(1px);
  animation: stp-dust 5s ease-out infinite;
}
@keyframes stp-sun-pulse {
  0%, 100% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
}
@keyframes stp-bob {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-2deg); }
}
@keyframes stp-head-shake {
  0%, 100% { transform: translateY(0) rotate(-3deg); }
  25% { transform: translateY(-2px) rotate(5deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(4deg); }
}
@keyframes stp-sway {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(2deg); }
}
@keyframes stp-arm-wave {
  0%, 100% { transform: rotate(-20deg); }
  50% { transform: rotate(40deg); }
}
@keyframes stp-shadow-pulse {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 0.8; }
}
@keyframes stp-dust {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  100% { transform: translateY(-30px) scale(0.3); opacity: 0; }
}

/* feigned-foreign-language */
.scn-feigned-foreign-language {
  background: linear-gradient(180deg, #fce4b8 0%, #e8c880 50%, #d4a850 100%),
              radial-gradient(ellipse at 70% 20%, #fff8dc, transparent 60%);
}
.scn-feigned-foreign-language .sky-sun {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fff0c0 0%, transparent 100%);
  animation: ffl-sky 10s ease-in-out infinite;
}
.scn-feigned-foreign-language .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #c8a050, #a08030);
  border-radius: 60% 60% 0 0 / 80% 80% 0 0;
}
.scn-feigned-foreign-language .parolles-torso {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 44px; height: 70px;
  background: linear-gradient(180deg, #6a4a3a, #3a2a1a);
  border-radius: 30% 30% 15% 15% / 50% 50% 30% 30%;
  animation: ffl-body 4s ease-in-out infinite;
}
.scn-feigned-foreign-language .parolles-arm-left {
  position: absolute; bottom: 55%; left: 44%; width: 18px; height: 6px;
  background: #5a3a2a; border-radius: 40%; transform-origin: right center;
  animation: ffl-arm-left 0.9s ease-in-out infinite;
}
.scn-feigned-foreign-language .parolles-arm-right {
  position: absolute; bottom: 55%; left: 52%; width: 18px; height: 6px;
  background: #5a3a2a; border-radius: 40%; transform-origin: left center;
  animation: ffl-arm-right 0.8s ease-in-out infinite;
}
.scn-feigned-foreign-language .drum {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #c8a060, #a08040);
  border-radius: 10% 10% 10% 10% / 30% 30% 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: ffl-drum 3s ease-in-out infinite;
}
.scn-feigned-foreign-language .speech-puff {
  position: absolute; bottom: 70%; left: 40%; width: 30px; height: 30px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 70%);
  border-radius: 50%;
  animation: ffl-puff 2s ease-in-out infinite;
}
.scn-feigned-foreign-language .sparkle-1 {
  position: absolute; bottom: 75%; left: 50%; width: 4px; height: 4px;
  background: #ffec80; border-radius: 50%;
  animation: ffl-sparkle 3s ease-in-out infinite;
}
.scn-feigned-foreign-language .sparkle-2 {
  position: absolute; bottom: 80%; left: 45%; width: 3px; height: 3px;
  background: #ffd060; border-radius: 50%;
  animation: ffl-sparkle 2.5s ease-in-out infinite 0.5s;
}
@keyframes ffl-sky {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes ffl-body {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(-3deg) translateY(-2px); }
}
@keyframes ffl-arm-left {
  0%, 100% { transform: rotate(30deg); }
  50% { transform: rotate(-40deg); }
}
@keyframes ffl-arm-right {
  0%, 100% { transform: rotate(-20deg); }
  50% { transform: rotate(50deg); }
}
@keyframes ffl-drum {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05) rotate(5deg); }
}
@keyframes ffl-puff {
  0%, 100% { transform: scale(0.8); opacity: 0.5; }
  50% { transform: scale(1.2); opacity: 0.8; }
}
@keyframes ffl-sparkle {
  0%, 100% { transform: translateY(0) scale(1); opacity: 1; }
  50% { transform: translateY(-8px) scale(0.6); opacity: 0.5; }
}

/* parolles-betrayal-offer */
.scn-parolles-betrayal-offer {
  background: linear-gradient(180deg, #c8a878 0%, #a08050 40%, #806040 100%),
              radial-gradient(ellipse at 40% 20%, #e8d0a0, transparent 60%);
}
.scn-parolles-betrayal-offer .sun-bg-dark {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 60% 30%, #d0b080 0%, transparent 70%);
  animation: pbo-sun 8s ease-in-out infinite;
}
.scn-parolles-betrayal-offer .figure-kneeling {
  position: absolute; bottom: 22%; left: 38%; width: 38px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a, #1a1010);
  border-radius: 20% 20% 30% 30% / 40% 40% 50% 50%;
  animation: pbo-kneel 5s ease-in-out infinite;
}
.scn-parolles-betrayal-offer .captor-left {
  position: absolute; bottom: 30%; left: 20%; width: 34px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a1a);
  border-radius: 15% 15% 10% 10% / 30% 30% 20% 20%;
  animation: pbo-stand 6s ease-in-out infinite;
}
.scn-parolles-betrayal-offer .captor-right {
  position: absolute; bottom: 30%; right: 15%; width: 34px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a1a);
  border-radius: 15% 15% 10% 10% / 30% 30% 20% 20%;
  animation: pbo-stand 6s ease-in-out infinite reverse;
}
.scn-parolles-betrayal-offer .sword-blade {
  position: absolute; bottom: 55%; left: 22%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #c0b0a0, #807060);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: pbo-sword 3s ease-in-out infinite;
}
.scn-parolles-betrayal-offer .shadow-pool {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 10px;
  background: rgba(0,0,0,0.25); filter: blur(6px);
  animation: pbo-shadow 4s ease-in-out infinite;
}
.scn-parolles-betrayal-offer .dust-motes {
  position: absolute; bottom: 40%; left: 50%; width: 3px; height: 3px;
  background: #b09870; border-radius: 50%; filter: blur(1px);
  animation: pbo-dust 10s linear infinite;
}
@keyframes pbo-sun {
  0%, 100% { opacity: 0.6; }
  50% { opacity: 0.8; }
}
@keyframes pbo-kneel {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes pbo-stand {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes pbo-sword {
  0%, 100% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(12deg) translateX(2px); }
}
@keyframes pbo-shadow {
  0%, 100% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
}
@keyframes pbo-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  20% { opacity: 0.6; }
  80% { opacity: 0.2; }
  100% { transform: translate(-30px, -40px) scale(0.2); opacity: 0; }
}

/* parolles-spy-promise */
.scn-parolles-spy-promise {
  background: linear-gradient(180deg, #f0d8a0 0%, #d0b070 50%, #b09050 100%),
              radial-gradient(circle at 30% 10%, #fff5e0, transparent 70%);
}
.scn-parolles-spy-promise .bright-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #fff0d0 0%, transparent 100%);
  animation: psp-sky 12s ease-in-out infinite;
}
.scn-parolles-spy-promise .hooded-figure {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 75px;
  background: linear-gradient(180deg, #2a1a1a, #1a1010);
  border-radius: 30% 30% 15% 15% / 60% 60% 30% 30%;
  animation: psp-figure 4s ease-in-out infinite;
}
.scn-parolles-spy-promise .blindfold-band {
  position: absolute; bottom: 60%; left: 40%; width: 30px; height: 6px;
  background: #806040; border-radius: 4px;
  transform: rotate(5deg);
  animation: psp-blindfold 2s ease-in-out infinite;
}
.scn-parolles-spy-promise .leading-hand {
  position: absolute; bottom: 35%; left: 28%; width: 14px; height: 40px;
  background: #5a4a3a;
  border-radius: 20% 20% 30% 30% / 40% 40% 50% 50%;
  transform: rotate(10deg);
  animation: psp-hand 3s ease-in-out infinite;
}
.scn-parolles-spy-promise .chain-link {
  position: absolute; bottom: 18%; left: 38%; width: 20px; height: 6px;
  background: #8a7a6a; border-radius: 4px;
  box-shadow: 0 4px 0 #8a7a6a, 0 8px 0 #7a6a5a, 0 12px 0 #6a5a4a;
  animation: psp-chain 1.5s ease-in-out infinite;
}
.scn-parolles-spy-promise .ground-shadow {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 6px;
  background: rgba(0,0,0,0.2); filter: blur(5px);
  animation: psp-ground 5s ease-in-out infinite;
}
.scn-parolles-spy-promise .lens-flare {
  position: absolute; top: 10%; left: 80%; width: 12px; height: 12px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 70%);
  border-radius: 50%;
  animation: psp-flare 4s ease-in-out infinite;
}
@keyframes psp-sky {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 1; }
}
@keyframes psp-figure {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes psp-blindfold {
  0%, 100% { transform: rotate(5deg) scaleX(1); }
  50% { transform: rotate(5deg) scaleX(1.1); }
}
@keyframes psp-hand {
  0%, 100% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-2px); }
}
@keyframes psp-chain {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes psp-ground {
  0%, 100% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(0.9); }
}
@keyframes psp-flare {
  0%, 100% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 0.8; transform: scale(1.2); }
}

.scn-roussillon-gate-parolles { background: linear-gradient(180deg, #87CEEB 0%, #F5DEB3 60%, #D2B48C 100%), radial-gradient(ellipse at 50% 100%, #D2B48C 0%, transparent 70%); }
.scn-roussillon-gate-parolles .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87CEEB 0%, #F5DEB3 70%); animation: rgp-sky 10s ease-in-out infinite alternate; }
.scn-roussillon-gate-parolles .palace-wall { position:absolute; bottom:30%; left:10%; right:10%; height:50%; background: linear-gradient(90deg, #C4A882 0%, #D2B48C 50%, #C4A882 100%); border-radius: 0% 0% 10% 10%; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.3); }
.scn-roussillon-gate-parolles .gate { position:absolute; bottom:30%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #5C4033 0%, #3E2723 100%); border-radius: 5% 5% 0% 0%; box-shadow: 0 10px 20px rgba(0,0,0,0.5); transform-origin: left center; animation: rgp-gate 8s ease-in-out infinite; }
.scn-roussillon-gate-parolles .column-left { position:absolute; bottom:30%; left:38%; width:1.5%; height:45%; background: linear-gradient(180deg, #E6CCB2 0%, #C4A882 100%); border-radius: 10%; box-shadow: 5px 0 10px rgba(0,0,0,0.2); }
.scn-roussillon-gate-parolles .column-right { position:absolute; bottom:30%; right:38%; width:1.5%; height:45%; background: linear-gradient(180deg, #E6CCB2 0%, #C4A882 100%); border-radius: 10%; box-shadow: -5px 0 10px rgba(0,0,0,0.2); }
.scn-roussillon-gate-parolles .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8B7355 0%, #6B5B45 100%); border-radius: 40% 40% 0% 0% / 20% 20% 0% 0%; }
.scn-roussillon-gate-parolles .figure-parolles { position:absolute; bottom:28%; left:52%; width:8%; height:25%; background: linear-gradient(180deg, #2C1E16 0%, #1A110B 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rgp-figure 4s ease-in-out infinite; }
.scn-roussillon-gate-parolles .letter { position:absolute; bottom:40%; left:48%; width:5%; height:3%; background: #F5F5DC; border-radius: 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: rgp-letter 3s ease-in-out infinite alternate; }
@keyframes rgp-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rgp-gate { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(5deg) } 100% { transform: rotateY(0deg) } }
@keyframes rgp-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4%) translateY(-2%) rotate(2deg) } 50% { transform: translateX(8%) translateY(0) rotate(-2deg) } 75% { transform: translateX(12%) translateY(-1%) rotate(2deg) } 100% { transform: translateX(16%) translateY(0) rotate(0) } }
@keyframes rgp-letter { 0% { transform: scale(1) rotate(0deg) } 100% { transform: scale(1.1) rotate(10deg) } }

.scn-clown-rejects-parolles { background: linear-gradient(180deg, #4FC3F7 0%, #29B6F6 40%, #0288D1 100%), radial-gradient(ellipse at 50% 100%, #0288D1 0%, transparent 60%); }
.scn-clown-rejects-parolles .water { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, #0288D1 100%); border-radius: 0 0 50% 50% / 20% 20%; animation: crp-water 5s ease-in-out infinite alternate; }
.scn-clown-rejects-parolles .fish-1 { position:absolute; bottom:40%; left:30%; width:12%; height:6%; background: linear-gradient(90deg, #FFB74D 0%, #FF9800 100%); border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: crp-fish1 8s linear infinite; }
.scn-clown-rejects-parolles .fish-2 { position:absolute; bottom:50%; left:60%; width:8%; height:4%; background: linear-gradient(90deg, #81C784 0%, #4CAF50 100%); border-radius: 50%; animation: crp-fish2 10s linear infinite reverse; }
.scn-clown-rejects-parolles .cat { position:absolute; bottom:30%; left:20%; width:18%; height:25%; background: linear-gradient(180deg, #8D6E63 0%, #5D4037 100%); border-radius: 60% 60% 40% 40% / 50% 50% 30% 30%; clip-path: polygon(20% 0%, 80% 0%, 100% 70%, 80% 100%, 20% 100%, 0% 70%); animation: crp-cat 6s ease-in-out infinite; }
.scn-clown-rejects-parolles .ripple { position:absolute; bottom:35%; left:50%; width:20%; height:10%; background: transparent; border: 2px solid rgba(255,255,255,0.4); border-radius: 50%; animation: crp-ripple 3s ease-out infinite; }
.scn-clown-rejects-parolles .fishbone { position:absolute; bottom:45%; left:15%; width:6%; height:2%; background: linear-gradient(90deg, #D7CCC8 0%, #BCAAA4 100%); border-radius: 20%; transform: rotate(30deg); animation: crp-bone 4s ease-in-out infinite alternate; }
@keyframes crp-water { 0% { background-position: 0% 0% } 100% { background-position: 10% 10% } }
@keyframes crp-fish1 { 0% { transform: translateX(-20%) translateY(0) scale(1) } 25% { transform: translateX(10%) translateY(-5%) scale(1.2) } 50% { transform: translateX(40%) translateY(0) scale(1) } 75% { transform: translateX(70%) translateY(-8%) scale(0.9) } 100% { transform: translateX(100%) translateY(0) scale(1) } }
@keyframes crp-fish2 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(-30%) translateY(-10%) rotate(15deg) } 100% { transform: translateX(-60%) translateY(0) rotate(0deg) } }
@keyframes crp-cat { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-5%) rotate(5deg) } 50% { transform: translateY(0) rotate(-5deg) } 75% { transform: translateY(-3%) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes crp-ripple { 0% { opacity: 1; transform: scale(0) } 100% { opacity: 0; transform: scale(2) } }
@keyframes crp-bone { 0% { transform: rotate(30deg) scale(1) } 100% { transform: rotate(45deg) scale(1.1) } }

.scn-lafeu-rebuffs-parolles { background: linear-gradient(180deg, #FFF8E1 0%, #FFE0B2 50%, #FFB74D 100%), radial-gradient(ellipse at 50% 70%, #FFB74D 0%, transparent 60%); }
.scn-lafeu-rebuffs-parolles .door-frame { position:absolute; bottom:25%; left:20%; right:20%; height:50%; background: linear-gradient(90deg, #8D6E63 0%, #A1887F 30%, #8D6E63 70%, #6D4C41 100%); border-radius: 10% 10% 0% 0%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3); }
.scn-lafeu-rebuffs-parolles .lafeu-silhouette { position:absolute; bottom:25%; left:35%; width:12%; height:45%; background: linear-gradient(180deg, #4E342E 0%, #3E2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lrp-lafeu 3s ease-in-out infinite; }
.scn-lafeu-rebuffs-parolles .parolles-silhouette { position:absolute; bottom:25%; right:35%; width:10%; height:40%; background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lrp-parolles 5s ease-in-out infinite; }
.scn-lafeu-rebuffs-parolles .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #BCAAA4 0%, #A1887F 100%); border-radius: 30% 30% 0% 0% / 50% 50% 0% 0%; }
.scn-lafeu-rebuffs-parolles .light-beam { position:absolute; top:10%; left:15%; width:10%; height:60%; background: linear-gradient(180deg, rgba(255,236,179,0.5) 0%, transparent 100%); clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%); animation: lrp-beam 4s ease-in-out infinite alternate; }
@keyframes lrp-lafeu { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3%) rotate(-5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lrp-parolles { 0% { transform: translateX(0) scale(1) } 25% { transform: translateX(5%) scale(0.95) } 50% { transform: translateX(10%) scale(1) } 75% { transform: translateX(5%) scale(1.05) } 100% { transform: translateX(0) scale(1) } }
@keyframes lrp-beam { 0% { opacity: 0.5; transform: skewX(5deg) } 100% { opacity: 0.8; transform: skewX(-5deg) } }

.scn-lafeu-parolles-reconciliation { background: linear-gradient(180deg, #FFE082 0%, #FFD54F 40%, #FFC107 100%), radial-gradient(ellipse at 50% 80%, #FFC107 0%, transparent 60%); }
.scn-lafeu-parolles-reconciliation .bg { position:absolute; inset:0; background: radial-gradient(circle at 50% 40%, #FFF9C4 0%, transparent 70%); animation: lpr-bg 6s ease-in-out infinite alternate; }
.scn-lafeu-parolles-reconciliation .lafeu-figure { position:absolute; bottom:25%; left:20%; width:12%; height:45%; background: linear-gradient(180deg, #4E342E 0%, #3E2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lpr-left 4s ease-in-out infinite; }
.scn-lafeu-parolles-reconciliation .parolles-figure { position:absolute; bottom:25%; right:20%; width:10%; height:42%; background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lpr-right 4s ease-in-out infinite; }
.scn-lafeu-parolles-reconciliation .hands { position:absolute; bottom:30%; left:45%; width:10%; height:5%; background: linear-gradient(90deg, #A1887F 0%, #8D6E63 50%, #A1887F 100%); border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: lpr-hands 2s ease-in-out infinite alternate; }
.scn-lafeu-parolles-reconciliation .shadow { position:absolute; bottom:0; left:10%; right:10%; height:12%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%); border-radius: 50%; animation: lpr-shadow 4s ease-in-out infinite; }
@keyframes lpr-bg { 0% { opacity:0.7 } 100% { opacity:1 } }
@keyframes lpr-left { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5%) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lpr-right { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-5%) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lpr-hands { 0% { transform: scale(1) rotate(0deg) } 100% { transform: scale(1.1) rotate(5deg) } }
@keyframes lpr-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

/* scene 1: diana-letter-discovered - tense, moonlit */
.scn-diana-letter-discovered {
  background: linear-gradient(180deg, #0b0d1a 0%, #1a1f3a 40%, #213348 70%, #18202f 100%), radial-gradient(ellipse at 50% 20%, #2d3f5c 0%, transparent 70%);
}
.scn-diana-letter-discovered .moon {
  position: absolute; top: 5%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #dce6f0 0%, #a0b4d4 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(160,180,212,0.3);
  animation: dl-moon-glow 6s ease-in-out infinite alternate;
}
.scn-diana-letter-discovered .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #11182a, #1b2438 40%, #0f1625 100%);
  clip-path: polygon(0 60%, 100% 55%, 100% 100%, 0 100%);
  animation: dl-wall-shift 8s ease-in-out infinite alternate;
}
.scn-diana-letter-discovered .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a110a 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  animation: dl-desk-breathe 5s ease-in-out infinite;
}
.scn-diana-letter-discovered .letter {
  position: absolute; bottom: 40%; left: 45%; width: 90px; height: 60px;
  background: linear-gradient(135deg, #c8b89a 0%, #a08a6a 100%);
  transform: rotate(-5deg); border-radius: 4px; box-shadow: 2px 2px 8px rgba(0,0,0,0.5);
  animation: dl-letter-float 7s ease-in-out infinite;
}
.scn-diana-letter-discovered .hand {
  position: absolute; bottom: 38%; left: 40%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #d6c6b0 0%, #b09a80 100%);
  border-radius: 60% 40% 50% 50% / 80% 70% 40% 40%;
  transform-origin: bottom center; transform: rotate(10deg);
  animation: dl-hand-reach 4s ease-in-out infinite alternate;
}
.scn-diana-letter-discovered .shadow-hand {
  position: absolute; bottom: 36%; left: 38%; width: 55px; height: 85px;
  background: rgba(0,0,0,0.4); border-radius: 60% 40% 50% 50% / 80% 70% 40% 40%;
  transform: rotate(12deg); filter: blur(4px);
  animation: dl-shadow-move 4s ease-in-out infinite alternate;
}
.scn-diana-letter-discovered .glow-letter {
  position: absolute; bottom: 40%; left: 45%; width: 90px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,184,154,0.3) 0%, transparent 100%);
  border-radius: 4px; filter: blur(8px);
  animation: dl-glow-pulse 3s ease-in-out infinite alternate;
}
@keyframes dl-moon-glow {
  0% { opacity: 0.8; box-shadow: 0 0 30px 15px rgba(160,180,212,0.2); }
  50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(160,180,212,0.4); }
  100% { opacity: 0.9; box-shadow: 0 0 35px 18px rgba(160,180,212,0.25); }
}
@keyframes dl-wall-shift {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dl-desk-breathe {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes dl-letter-float {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-6deg) translateY(0); }
}
@keyframes dl-hand-reach {
  0% { transform: rotate(10deg) translateY(0); }
  100% { transform: rotate(15deg) translateY(-4px); }
}
@keyframes dl-shadow-move {
  0% { transform: rotate(12deg) translateY(0); opacity: 0.3; }
  100% { transform: rotate(17deg) translateY(-5px); opacity: 0.5; }
}
@keyframes dl-glow-pulse {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}

/* scene 2: item-parolles-poem - funny, moonlit */
.scn-item-parolles-poem {
  background: linear-gradient(180deg, #0f1420 0%, #1c2740 40%, #2a3550 70%, #1c2028 100%), radial-gradient(ellipse at 30% 10%, #3a4a6a 0%, transparent 70%);
}
.scn-item-parolles-poem .moon {
  position: absolute; top: 3%; left: 20%; width: 55px; height: 55px;
  background: radial-gradient(circle, #e8eef8 0%, #b0c4e0 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(176,196,224,0.25);
  animation: ip-moon-drift 10s ease-in-out infinite alternate;
}
.scn-item-parolles-poem .ground {
  position: absolute; bottom: 0; height: 20%; left: 0; right: 0;
  background: linear-gradient(180deg, #2a3524 0%, #1a2018 100%);
  border-radius: 30% 70% 0 0 / 40% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: ip-ground-roll 6s ease-in-out infinite;
}
.scn-item-parolles-poem .figure-parolles {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ip-figure-bounce 1.5s ease-in-out infinite;
}
.scn-item-parolles-poem .scroll {
  position: absolute; bottom: 30%; left: 52%; width: 70px; height: 25px;
  background: linear-gradient(90deg, #d4c4a0 0%, #c8b48a 50%, #d4c4a0 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  transform: rotate(-15deg);
  animation: ip-scroll-wave 2.5s ease-in-out infinite alternate;
}
.scn-item-parolles-poem .star-1 {
  position: absolute; top: 12%; left: 60%; width: 6px; height: 6px;
  background: #d0e0f0; border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(208,224,240,0.6);
  animation: ip-twinkle 2s ease-in-out infinite alternate;
}
.scn-item-parolles-poem .star-2 {
  position: absolute; top: 18%; left: 75%; width: 4px; height: 4px;
  background: #d0e0f0; border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(208,224,240,0.5);
  animation: ip-twinkle 2.8s ease-in-out infinite alternate 0.5s;
}
.scn-item-parolles-poem .moonbeam {
  position: absolute; top: 0; left: 15%; width: 100px; height: 100%;
  background: linear-gradient(180deg, rgba(208,224,240,0.08) 0%, transparent 80%);
  clip-path: polygon(40% 0, 60% 0, 80% 100%, 20% 100%);
  filter: blur(10px);
  animation: ip-beam-glow 8s ease-in-out infinite alternate;
}
@keyframes ip-moon-drift {
  0% { transform: translate(0, 0); }
  50% { transform: translate(10px, -5px); }
  100% { transform: translate(-5px, 3px); }
}
@keyframes ip-ground-roll {
  0% { transform: scaleY(1); border-radius: 30% 70% 0 0 / 40% 80% 0 0; }
  50% { transform: scaleY(1.03); border-radius: 35% 65% 0 0 / 45% 75% 0 0; }
  100% { transform: scaleY(1); }
}
@keyframes ip-figure-bounce {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-10px) rotate(-3deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-50%) translateY(-8px) rotate(3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes ip-scroll-wave {
  0% { transform: rotate(-15deg) scaleX(1); }
  50% { transform: rotate(-10deg) scaleX(1.1); }
  100% { transform: rotate(-20deg) scaleX(0.9); }
}
@keyframes ip-twinkle {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: 0.5; transform: scale(0.8); }
}
@keyframes ip-beam-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

/* scene 3: poem-read-aloud - funny, moonlit */
.scn-poem-read-aloud {
  background: linear-gradient(180deg, #101828 0%, #1c2a40 50%, #25334a 70%, #1a1f30 100%), radial-gradient(ellipse at 60% 10%, #3a5070 0%, transparent 60%);
}
.scn-poem-read-aloud .moon {
  position: absolute; top: 2%; left: 80%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e6ecf8 0%, #b0c8e0 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 35px 15px rgba(176,200,224,0.3);
  animation: pr-moon-sway 9s ease-in-out infinite alternate;
}
.scn-poem-read-aloud .wall-interior {
  position: absolute; left: 5%; right: 5%; top: 20%; bottom: 10%;
  background: linear-gradient(135deg, #1a2038 0%, #0f1428 100%);
  border-radius: 20px; box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%);
  animation: pr-wall-breathe 6s ease-in-out infinite alternate;
}
.scn-poem-read-aloud .figure-diana {
  position: absolute; bottom: 15%; left: 45%; width: 35px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #15151f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: pr-diana-read 4s ease-in-out infinite;
}
.scn-poem-read-aloud .book {
  position: absolute; bottom: 30%; left: 48%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #a09070 0%, #807050 100%);
  border-radius: 4px; transform: rotate(-8deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: pr-book-tilt 5s ease-in-out infinite alternate;
}
.scn-poem-read-aloud .coin {
  position: absolute; bottom: 40%; left: 60%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0d080 0%, #c8a850 60%, #a08030 100%);
  border-radius: 50%; box-shadow: 0 0 15px 5px rgba(240,208,128,0.5);
  animation: pr-coin-float 3s ease-in-out infinite;
}
.scn-poem-read-aloud .coin-shadow {
  position: absolute; bottom: 38%; left: 60%; width: 20px; height: 8px;
  background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px);
  animation: pr-shadow-dance 3s ease-in-out infinite;
}
.scn-poem-read-aloud .moonlight-shaft {
  position: absolute; top: 0; left: 70%; width: 80px; height: 100%;
  background: linear-gradient(180deg, rgba(200,216,240,0.1) 0%, transparent 80%);
  clip-path: polygon(30% 0, 70% 0, 90% 100%, 10% 100%);
  filter: blur(8px);
  animation: pr-shaft-pulse 7s ease-in-out infinite alternate;
}
.scn-poem-read-aloud .glow-coin {
  position: absolute; bottom: 40%; left: 60%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(240,208,128,0.2) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: pr-glow-pulse 2s ease-in-out infinite alternate;
}
@keyframes pr-moon-sway {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(5px, -3px) scale(1.02); }
  100% { transform: translate(-3px, 2px) scale(0.98); }
}
@keyframes pr-wall-breathe {
  0% { opacity: 0.8; clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%); }
  50% { opacity: 1; clip-path: polygon(2% 0%, 98% 0%, 93% 100%, 7% 100%); }
  100% { opacity: 0.9; clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%); }
}
@keyframes pr-diana-read {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-50%) translateY(-3px) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(2deg); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes pr-book-tilt {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(-11deg) translateY(0); }
}
@keyframes pr-coin-float {
  0% { transform: translateY(0) scale(1); }
  25% { transform: translateY(-10px) scale(1.1); }
  50% { transform: translateY(0) scale(1); }
  75% { transform: translateY(-8px) scale(0.95); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes pr-shadow-dance {
  0% { transform: translateY(0) scaleX(1); opacity: 0.3; }
  50% { transform: translateY(2px) scaleX(0.8); opacity: 0.2; }
  100% { transform: translateY(0) scaleX(1); opacity: 0.3; }
}
@keyframes pr-shaft-pulse {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}
@keyframes pr-glow-pulse {
  0% { opacity: 0.1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(1.5); }
  100% { opacity: 0.2; transform: scale(1.2); }
}

/* scene 4: parrot-call-parolles - tense, moonlit */
.scn-parrot-call-parolles {
  background: linear-gradient(180deg, #0a0e1a 0%, #141d33 40%, #1a263a 70%, #0f141f 100%), radial-gradient(ellipse at 50% 5%, #2a3e5a 0%, transparent 70%);
}
.scn-parrot-call-parolles .moon {
  position: absolute; top: 2%; left: 50%; width: 65px; height: 65px;
  background: radial-gradient(circle, #dce6f0 0%, #a0b8d0 60%, transparent 100%);
  border-radius: 50%; margin-left: -32px;
  box-shadow: 0 0 50px 25px rgba(160,184,208,0.3);
  animation: pc-moon-pulse 8s ease-in-out infinite alternate;
}
.scn-parrot-call-parolles .background {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0e1a 0%, #12162a 40%, #181e34 70%, #0d111e 100%);
  animation: pc-bg-shift 10s ease-in-out infinite alternate;
}
.scn-parrot-call-parolles .noose {
  position: absolute; top: 10%; left: 50%; width: 4px; height: 60%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%);
  transform: translateX(-50%);
  border-radius: 2px;
  animation: pc-noose-sway 4s ease-in-out infinite alternate;
}
.scn-parrot-call-parolles .figure-parolles {
  position: absolute; bottom: 10%; left: 50%; width: 45px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #12121c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: pc-figure-struggle 3s ease-in-out infinite;
}
.scn-parrot-call-parolles .parrot-shadow {
  position: absolute; top: 15%; left: 30%; width: 80px; height: 100px;
  background: rgba(0,0,0,0.5);
  clip-path: polygon(50% 0%, 80% 30%, 70% 60%, 50% 80%, 30% 60%, 20% 30%);
  filter: blur(10px);
  animation: pc-parrot-shift 5s ease-in-out infinite alternate;
}
.scn-parrot-call-parolles .rope-post {
  position: absolute; bottom: 5%; left: 48%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 2px;
  animation: pc-post-bend 6s ease-in-out infinite alternate;
}
.scn-parrot-call-parolles .moon-haze {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(160,184,208,0.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: pc-haze-oscillate 12s ease-in-out infinite alternate;
}
@keyframes pc-moon-pulse {
  0% { box-shadow: 0 0 40px 20px rgba(160,184,208,0.2); transform: scale(1); }
  50% { box-shadow: 0 0 60px 30px rgba(160,184,208,0.4); transform: scale(1.05); }
  100% { box-shadow: 0 0 45px 22px rgba(160,184,208,0.25); transform: scale(0.95); }
}
@keyframes pc-bg-shift {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pc-noose-sway {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes pc-figure-struggle {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  20% { transform: translateX(-50%) translateY(-5px) rotate(-3deg); }
  40% { transform: translateX(-50%) translateY(0) rotate(2deg); }
  60% { transform: translateX(-50%) translateY(-3px) rotate(-1deg); }
  80% { transform: translateX(-50%) translateY(0) rotate(4deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes pc-parrot-shift {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  50% { transform: translate(15px, -10px) scale(1.1); opacity: 0.5; }
  100% { transform: translate(-10px, 5px) scale(0.9); opacity: 0.35; }
}
@keyframes pc-post-bend {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes pc-haze-oscillate {
  0% { opacity: 0.2; }
  50% { opacity: 0.4; }
  100% { opacity: 0.25; }
}

.scn-diana-arrives {
  background: linear-gradient(135deg, #f5e6c8 0%, #e4d2b0 100%),
              radial-gradient(ellipse at 70% 20%, #fff7e0 0%, transparent 60%);
}
.scn-diana-arrives .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #ebe0c8 0%, #d6c8a8 100%);
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.05);
  animation: dar-wall 12s ease-in-out infinite alternate;
}
.scn-diana-arrives .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8a88a 0%, #9a8a6e 100%);
  border-radius: 4% 4% 0 0 / 12% 12% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.15);
  animation: dar-floor 8s ease-in-out infinite;
}
.scn-diana-arrives .window {
  position: absolute; top: 12%; left: 55%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #d0e0f0 0%, #b0c8e0 100%);
  border: 6px solid #c8b898;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: dar-window 6s ease-in-out infinite alternate;
}
.scn-diana-arrives .door {
  position: absolute; bottom: 22%; left: 18%; width: 48px; height: 80px;
  background: linear-gradient(180deg, #8a7256 0%, #6a5236 100%);
  border: 3px solid #5a422a;
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.2);
  animation: dar-door 10s ease-in-out infinite;
}
.scn-diana-arrives .figure {
  position: absolute; bottom: 30%; left: 36%; width: 30px; height: 72px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dar-figure 4s ease-in-out infinite;
}
.scn-diana-arrives .shadow {
  position: absolute; bottom: 12%; left: 30%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: dar-shadow 4s ease-in-out infinite;
}
.scn-diana-arrives .chair {
  position: absolute; bottom: 22%; right: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #7a6a52 0%, #5a4a36 100%);
  border-radius: 6% 6% 4% 4% / 8% 8% 6% 6%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
  animation: dar-chair 7s ease-in-out infinite alternate;
}
@keyframes dar-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes dar-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dar-window { 0% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3); } 50% { box-shadow: inset 0 0 40px rgba(255,255,200,0.6); } 100% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3); } }
@keyframes dar-door { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } }
@keyframes dar-figure { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(16px) translateY(0) rotate(0deg); } 75% { transform: translateX(28px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(36px) translateY(0) rotate(0deg); } }
@keyframes dar-shadow { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(12px) scaleX(0.9); } }
@keyframes dar-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-diana-reveals-self {
  background: linear-gradient(180deg, #f0e8d8 0%, #dcd0b8 100%),
              radial-gradient(ellipse at 50% 30%, #fff5e0 0%, #d4c8b0 100%);
}
.scn-diana-reveals-self .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8dcc8 0%, #d4c4a8 100%);
  animation: drs-bg 16s ease-in-out infinite alternate;
}
.scn-diana-reveals-self .light-spot {
  position: absolute; top: -20%; left: 30%; width: 200px; height: 250px;
  background: radial-gradient(ellipse, rgba(255,250,220,0.8) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(40px);
  animation: drs-light 8s ease-in-out infinite alternate;
}
.scn-diana-reveals-self .figure {
  position: absolute; bottom: 25%; left: 50%; width: 36px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: drs-figure 5s ease-in-out infinite;
}
.scn-diana-reveals-self .cloak {
  position: absolute; bottom: 30%; left: 38%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #6a5240 0%, #3a2a1a 100%);
  border-radius: 60% 60% 40% 40% / 80% 80% 40% 40%;
  transform-origin: top center;
  animation: drs-cloak 4s ease-in-out infinite alternate;
  z-index: -1;
}
.scn-diana-reveals-self .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8b898 0%, #a8906e 100%);
  border-radius: 8% 8% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.1);
  animation: drs-floor 10s ease-in-out infinite;
}
.scn-diana-reveals-self .mirror-frame {
  position: absolute; top: 10%; right: 15%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #b09878 0%, #88684a 100%);
  border: 4px solid #6a5236;
  border-radius: 6px;
  box-shadow: 0 0 15px rgba(0,0,0,0.2);
  animation: drs-mirror 20s ease-in-out infinite alternate;
}
.scn-diana-reveals-self .mirror-glass {
  position: absolute; top: 13%; right: 18%; width: 38px; height: 56px;
  background: linear-gradient(135deg, #b0c8e0 0%, #90b0d0 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 15px rgba(255,255,220,0.3);
  animation: drs-mglass 6s ease-in-out infinite alternate;
}
@keyframes drs-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes drs-light { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes drs-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes drs-cloak { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(0.9); } 100% { transform: rotate(-3deg) scaleY(1); } }
@keyframes drs-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes drs-mirror { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes drs-mglass { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }

.scn-diana-accuses {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%),
              radial-gradient(ellipse at 30% 40%, #fff7e0 0%, transparent 50%);
}
.scn-diana-accuses .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f0e4d0 0%, #d4c0a0 100%);
  animation: dac-bg 14s ease-in-out infinite alternate;
}
.scn-diana-accuses .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, #a89070 0%, #907850 100%);
  border-radius: 6% 6% 0 0 / 18% 18% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.15);
  animation: dac-floor 9s ease-in-out infinite;
}
.scn-diana-accuses .table {
  position: absolute; bottom: 22%; left: 30%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #9a8262 0%, #7a6242 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.25);
  animation: dac-table 12s ease-in-out infinite alternate;
}
.scn-diana-accuses .accuser {
  position: absolute; bottom: 25%; left: 18%; width: 30px; height: 78px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dac-acc 3s ease-in-out infinite;
}
.scn-diana-accuses .defendant {
  position: absolute; bottom: 26%; right: 22%; width: 28px; height: 64px;
  background: linear-gradient(180deg, #5a4a3e 0%, #3a2a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dac-def 4s ease-in-out infinite;
  filter: brightness(0.85);
}
.scn-diana-accuses .document {
  position: absolute; bottom: 26%; left: 35%; width: 32px; height: 22px;
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b898 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 4px rgba(0,0,0,0.1);
  transform: rotate(-10deg);
  animation: dac-doc 5s ease-in-out infinite alternate;
}
.scn-diana-accuses .shadow-acc {
  position: absolute; bottom: 10%; left: 10%; width: 100px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: dac-shad-a 3s ease-in-out infinite;
}
.scn-diana-accuses .shadow-def {
  position: absolute; bottom: 12%; right: 15%; width: 90px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: dac-shad-d 4s ease-in-out infinite;
}
@keyframes dac-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes dac-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dac-table { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dac-acc { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(8px) translateY(0) rotate(0deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(16px) translateY(0) rotate(2deg); } }
@keyframes dac-def { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-3px) translateY(-1px) rotate(0deg); } 50% { transform: translateX(-6px) translateY(0) rotate(-1deg); } 75% { transform: translateX(-9px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(-12px) translateY(0) rotate(1deg); } }
@keyframes dac-doc { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes dac-shad-a { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(8px) scaleX(0.95); } }
@keyframes dac-shad-d { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-6px) scaleX(0.9); } }

.scn-ring-proof {
  background: linear-gradient(135deg, #e8dcc8 0%, #d4c0a0 100%),
              radial-gradient(ellipse at 60% 40%, #fff7e0 0%, transparent 60%);
}
.scn-ring-proof .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%);
  animation: rpo-bg 15s ease-in-out infinite alternate;
}
.scn-ring-proof .light-cone {
  position: absolute; top: 10%; left: 35%; width: 180px; height: 240px;
  background: radial-gradient(ellipse, rgba(255,245,200,0.3) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(50px);
  animation: rpo-light 7s ease-in-out infinite alternate;
}
.scn-ring-proof .hand {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: rpo-hand 5s ease-in-out infinite;
}
.scn-ring-proof .ring {
  position: absolute; bottom: 45%; left: 50%; width: 12px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0e0b0 0%, #c0a060 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(240,224,176,0.5), 0 0 24px 8px rgba(240,224,176,0.2);
  animation: rpo-ring 3s ease-in-out infinite alternate;
}
.scn-ring-proof .silhouette {
  position: absolute; bottom: 20%; left: 30%; width: 34px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: brightness(0.5);
  animation: rpo-sil 6s ease-in-out infinite;
}
.scn-ring-proof .table-edge {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 20px;
  background: linear-gradient(180deg, #8a7256 0%, #6a5236 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: 0 -6px 10px rgba(0,0,0,0.15);
  animation: rpo-table 10s ease-in-out infinite alternate;
}
@keyframes rpo-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes rpo-light { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.15); } 100% { opacity:0.6; transform: scale(0.95); } }
@keyframes rpo-hand { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(3deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes rpo-ring { 0% { transform: translateX(-50%) scale(1) rotate(0deg); box-shadow: 0 0 12px 4px rgba(240,224,176,0.5); } 50% { transform: translateX(-50%) scale(1.1) rotate(10deg); box-shadow: 0 0 20px 8px rgba(240,224,176,0.7); } 100% { transform: translateX(-50%) scale(1) rotate(0deg); box-shadow: 0 0 12px 4px rgba(240,224,176,0.5); } }
@keyframes rpo-sil { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes rpo-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* Scene 1: parolles-vilifies-dumain-again */
.scn-parolles-vilifies-dumain-again {
  background: linear-gradient(180deg, #0c1a2e 0%, #1a2a4a 50%, #2a3a5a 100%), radial-gradient(ellipse at 50% 100%, #3a4a6a 0%, transparent 70%);
}
.scn-parolles-vilifies-dumain-again .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, rgba(200,220,255,0.15) 0%, transparent 100%);
  animation: pv-sky 12s ease-in-out infinite alternate;
}
.scn-parolles-vilifies-dumain-again .moon {
  position: absolute; top: 12%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0f0ff 0%, #b0c8e0 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(224,240,255,0.3);
  animation: pv-moon 4s ease-in-out infinite alternate;
}
.scn-parolles-vilifies-dumain-again .cloister-arch {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 40%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  mask-image: radial-gradient(ellipse at 50% 0%, transparent 30%, black 30%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 0%, transparent 30%, black 30%);
  animation: pv-arch 18s ease-in-out infinite alternate;
}
.scn-parolles-vilifies-dumain-again .figure-parolles {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pv-parolles 3s ease-in-out infinite;
}
.scn-parolles-vilifies-dumain-again .figure-dumain {
  position: absolute; bottom: 25%; left: 55%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pv-dumain 5s ease-in-out infinite alternate;
}
.scn-parolles-vilifies-dumain-again .gesture-hand {
  position: absolute; bottom: 47%; left: 32%; width: 10px; height: 12px;
  background: #3a4a5a; border-radius: 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pv-hand 2s ease-in-out infinite;
}
@keyframes pv-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes pv-moon { 0% { transform: scale(1) translateX(0); box-shadow:0 0 20px 5px rgba(224,240,255,0.2); } 50% { transform: scale(1.05) translateX(-2px); box-shadow:0 0 40px 15px rgba(224,240,255,0.4); } 100% { transform: scale(0.98) translateX(1px); box-shadow:0 0 25px 8px rgba(224,240,255,0.25); } }
@keyframes pv-arch { 0% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0); } }
@keyframes pv-parolles { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8px) rotate(3deg) scale(1.02); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes pv-dumain { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pv-hand { 0% { transform: translate(0,0) rotate(-10deg); } 50% { transform: translate(2px,-3px) rotate(15deg); } 100% { transform: translate(0,0) rotate(-8deg); } }

/* Scene 2: bertram-amused-at-parolles */
.scn-bertham-amused-at-parolles {
  background: linear-gradient(180deg, #0c182a 0%, #18283a 50%, #2a3a4a 100%), radial-gradient(ellipse at 50% 0%, #4a5a6a 0%, transparent 70%);
}
.scn-bertham-amused-at-parolles .sky { position: absolute; inset:0 0 60% 0; background:linear-gradient(180deg, rgba(180,200,255,0.1) 0%, transparent 100%); animation: ba-sky 15s ease-in-out infinite alternate; }
.scn-bertham-amused-at-parolles .moon { position: absolute; top:8%; right:20%; width:35px; height:35px; background:radial-gradient(circle, #d0e0f0 0%, #a0b8d0 60%, transparent 100%); border-radius:50%; box-shadow:0 0 25px 8px rgba(208,224,240,0.3); animation: ba-moon 5s ease-in-out infinite alternate; }
.scn-bertham-amused-at-parolles .ground { position: absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:20% 20% 0 0 / 30% 30% 0 0; }
.scn-bertham-amused-at-parolles .figure-bertham { position: absolute; bottom:25%; left:60%; width:20px; height:40px; background:linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ba-bertham 3s ease-in-out infinite; }
.scn-bertham-amused-at-parolles .figure-parolles2 { position: absolute; bottom:25%; left:30%; width:18px; height:36px; background:linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ba-parolles2 4s ease-in-out infinite alternate; }
.scn-bertham-amused-at-parolles .cat-silhouette { position: absolute; bottom:22%; left:45%; width:16px; height:12px; background:#2a3a4a; border-radius:50% 50% 0 0; animation: ba-cat 2s ease-in-out infinite; }
@keyframes ba-sky { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes ba-moon { 0% { transform: scale(1) translateY(0); box-shadow:0 0 15px 3px rgba(208,224,240,0.2); } 50% { transform: scale(1.03) translateY(-1px); box-shadow:0 0 30px 10px rgba(208,224,240,0.4); } 100% { transform: scale(0.98) translateY(1px); box-shadow:0 0 20px 6px rgba(208,224,240,0.25); } }
@keyframes ba-bertham { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(3deg) scale(1.02); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ba-parolles2 { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(5px) rotate(2deg) scale(1.01); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ba-cat { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(2px); } 100% { transform: rotate(-3deg) translateX(0); } }

/* Scene 3: parolles-sells-everything */
.scn-parolles-sells-everything {
  background: linear-gradient(180deg, #0a1628 0%, #182a3a 50%, #2a3a4a 100%), radial-gradient(ellipse at 60% 100%, #3a4a5a 0%, transparent 60%);
}
.scn-parolles-sells-everything .sky { position: absolute; inset:0 0 50% 0; background:linear-gradient(180deg, rgba(170,190,230,0.12) 0%, transparent 100%); animation: ps-sky 10s ease-in-out infinite alternate; }
.scn-parolles-sells-everything .moon { position: absolute; top:10%; left:25%; width:30px; height:30px; background:radial-gradient(circle, #c8d8e8 0%, #a0b8d0 60%, transparent 100%); border-radius:50%; box-shadow:0 0 20px 5px rgba(200,216,232,0.3); animation: ps-moon 6s ease-in-out infinite alternate; }
.scn-parolles-sells-everything .ground-sell { position: absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:30% 70% 0 0 / 40% 50% 0 0; }
.scn-parolles-sells-everything .figure-parolles-sell { position: absolute; bottom:28%; left:40%; width:20px; height:38px; background:linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ps-figure 3s ease-in-out infinite; }
.scn-parolles-sells-everything .coin { position: absolute; bottom:45%; left:48%; width:10px; height:10px; background:radial-gradient(circle, #d0b070 0%, #a08850 100%); border-radius:50%; box-shadow:0 0 8px 2px rgba(208,176,112,0.5); animation: ps-coin 2s ease-in-out infinite alternate; }
.scn-parolles-sells-everything .bag { position: absolute; bottom:33%; left:30%; width:14px; height:18px; background:#2a3a4a; border-radius:30% 30% 50% 50%; transform-origin:bottom center; animation: ps-bag 4s ease-in-out infinite alternate; }
.scn-parolles-sells-everything .item { position: absolute; bottom:35%; left:60%; width:8px; height:8px; background:#3a4a5a; border-radius:20%; animation: ps-item 3s ease-in-out infinite; }
@keyframes ps-sky { 0% { opacity:0.5; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes ps-moon { 0% { transform: scale(1) translateX(0); box-shadow:0 0 15px 3px rgba(200,216,232,0.2); } 50% { transform: scale(1.04) translateX(2px); box-shadow:0 0 30px 10px rgba(200,216,232,0.4); } 100% { transform: scale(0.97) translateX(-1px); box-shadow:0 0 20px 6px rgba(200,216,232,0.25); } }
@keyframes ps-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(6px) rotate(4deg) scale(1.02); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ps-coin { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(180deg) scale(0.9); } 100% { transform: translateY(0) rotate(360deg) scale(1); } }
@keyframes ps-bag { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(3deg) scale(1.02); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ps-item { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(15deg); } 100% { transform: translateY(0) rotate(5deg); } }

/* Scene 4: parolles-promises-treason */
.scn-parolles-promises-treason {
  background: linear-gradient(180deg, #050e1a 0%, #0a1a2a 40%, #1a2a3a 100%), radial-gradient(ellipse at 50% 80%, #2a3a4a 0%, transparent 70%);
  filter: contrast(1.1) brightness(0.8);
}
.scn-parolles-promises-treason .sky-dark { position: absolute; inset:0 0 60% 0; background:linear-gradient(180deg, rgba(100,130,180,0.08) 0%, transparent 100%); animation: pt-sky 8s ease-in-out infinite alternate; }
.scn-parolles-promises-treason .moon-dark { position: absolute; top:5%; left:50%; width:25px; height:25px; background:radial-gradient(circle, #a0b0c0 0%, #708090 60%, transparent 100%); border-radius:50%; box-shadow:0 0 10px 2px rgba(160,176,192,0.3); animation: pt-moon 3s ease-in-out infinite alternate; }
.scn-parolles-promises-treason .cloud { position: absolute; top:12%; left:0; width:60px; height:12px; background:linear-gradient(180deg, rgba(100,120,140,0.4) 0%, transparent 100%); border-radius:50%; filter:blur(4px); animation: pt-cloud 20s linear infinite; }
.scn-parolles-promises-treason .figure-betrayer { position: absolute; bottom:28%; left:35%; width:18px; height:36px; background:linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pt-betrayer 2s ease-in-out infinite alternate; }
.scn-parolles-promises-treason .figure-victim { position: absolute; bottom:28%; left:52%; width:16px; height:34px; background:linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pt-victim 4s ease-in-out infinite; }
.scn-parolles-promises-treason .drum { position: absolute; bottom:18%; left:20%; width:20px; height:12px; background:#3a4a5a; border-radius:30%; transform-origin:center; animation: pt-drum 2s ease-in-out infinite alternate; }
@keyframes pt-sky { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes pt-moon { 0% { transform: scale(0.95) translateY(0); box-shadow:0 0 5px 1px rgba(160,176,192,0.1); } 50% { transform: scale(1.02) translateY(-1px); box-shadow:0 0 15px 4px rgba(160,176,192,0.3); } 100% { transform: scale(0.98) translateY(1px); box-shadow:0 0 8px 2px rgba(160,176,192,0.2); } }
@keyframes pt-cloud { 0% { transform: translateX(-70px); } 100% { transform: translateX(120vw); } }
@keyframes pt-betrayer { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(2deg) scale(1.01); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes pt-victim { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0.5deg); } }
@keyframes pt-drum { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(3px) scale(1.02); } 100% { transform: rotate(-3deg) translateX(0); } }

/* scene: steward-reports-helena-love */
.scn-steward-reports-helena-love {
  background: 
    linear-gradient(180deg, #f9f0e0 0%, #e0d1b8 60%, #c4b196 100%),
    radial-gradient(ellipse at 50% 70%, #f5e8d4 0%, transparent 60%);
}
.scn-steward-reports-helena-love .bg-wall {
  position:absolute; inset:0 0 30% 0; 
  background: linear-gradient(90deg, #e3d3be 0%, #d6c4ac 50%, #e3d3be 100%); 
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1); 
  animation: srh-wall 12s ease-in-out infinite alternate;
}
.scn-steward-reports-helena-love .window {
  position:absolute; top:10%; left:65%; width:22%; height:35%; 
  background: radial-gradient(ellipse at 50% 50%, #fff8e8 0%, #f0dfc8 70%, transparent 100%);
  border-radius: 4px; box-shadow: 0 0 30px 10px rgba(255,235,200,0.3); 
  animation: srh-window 6s ease-in-out infinite alternate;
}
.scn-steward-reports-helena-love .table {
  position:absolute; bottom:20%; left:20%; width:40%; height:8%; 
  background: linear-gradient(180deg, #a0886a 0%, #8b7355 100%); 
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.25); 
  transform: perspective(600px) rotateX(5deg); 
  animation: srh-table 9s ease-in-out infinite;
}
.scn-steward-reports-helena-love .steward {
  position:absolute; bottom:20%; left:30%; width:16%; height:45%; 
  background: linear-gradient(180deg, #5a4c3e 0%, #3e3228 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: srh-steward 5s ease-in-out infinite;
}
.scn-steward-reports-helena-love .countess {
  position:absolute; bottom:20%; left:55%; width:18%; height:50%; 
  background: linear-gradient(180deg, #8a7a66 0%, #6b5c4a 100%); 
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; 
  transform-origin: bottom center; 
  animation: srh-countess 7s ease-in-out infinite alternate;
}
.scn-steward-reports-helena-love .candle {
  position:absolute; bottom:25%; left:45%; width:2%; height:4%; 
  background: linear-gradient(180deg, #f5d6a0 0%, #c8a070 100%); 
  border-radius: 20%; box-shadow: 0 0 16px 4px #ffd080, 0 0 32px 8px rgba(255,208,128,0.3); 
  animation: srh-candle 2s ease-in-out infinite alternate;
}
.scn-steward-reports-helena-love .cloth {
  position:absolute; bottom:16%; left:20%; width:40%; height:4%; 
  background: linear-gradient(90deg, #c8ad8a 0%, #b89c78 50%, #c8ad8a 100%); 
  border-radius: 4px; box-shadow: 0 0 6px rgba(0,0,0,0.15); 
  filter: blur(1px); 
  animation: srh-cloth 4s ease-in-out infinite;
}
@keyframes srh-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes srh-window { 0% { box-shadow: 0 0 20px 6px rgba(255,235,200,0.2); opacity:0.8 } 50% { box-shadow: 0 0 40px 15px rgba(255,235,200,0.5); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(255,235,200,0.25); opacity:0.85 } }
@keyframes srh-table { 0%,100% { transform: perspective(600px) rotateX(5deg) translateY(0) } 50% { transform: perspective(600px) rotateX(5deg) translateY(-1px) } }
@keyframes srh-steward { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(0.5deg) } 50% { transform: translateX(16px) translateY(0) rotate(1deg) } 75% { transform: translateX(8px) translateY(-1px) rotate(0.5deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes srh-countess { 0% { transform: translateY(0) rotate(-0.5deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes srh-candle { 0% { transform: scaleY(1) scaleX(1); opacity:0.9 } 50% { transform: scaleY(1.05) scaleX(0.95); opacity:1 } 100% { transform: scaleY(0.98) scaleX(1.02); opacity:0.85 } }
@keyframes srh-cloth { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }

/* scene: countess-reflects-on-love */
.scn-countess-reflects-on-love {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #dac9a8 40%, #b8a282 80%, #9c8866 100%),
    radial-gradient(ellipse at 60% 50%, #f0dbb0 0%, transparent 70%);
}
.scn-countess-reflects-on-love .bg-room {
  position:absolute; inset:0 0 25% 0; 
  background: linear-gradient(180deg, #e8dac0 0%, #d8c7a8 50%, #e8dac0 100%); 
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.08); 
  animation: crl-room 10s ease-in-out infinite alternate;
}
.scn-countess-reflects-on-love .window {
  position:absolute; top:5%; right:10%; width:25%; height:35%; 
  background: radial-gradient(ellipse at 50% 30%, #fff8e0 0%, #f2dfc0 60%, transparent 100%);
  border-radius: 4px; box-shadow: 0 0 40px 12px rgba(255,235,180,0.25); 
  animation: crl-window 8s ease-in-out infinite alternate;
}
.scn-countess-reflects-on-love .book {
  position:absolute; bottom:15%; left:30%; width:12%; height:6%; 
  background: linear-gradient(180deg, #8a7a5a 0%, #6b5d40 100%); 
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); 
  transform: rotate(-5deg); 
  animation: crl-book 5s ease-in-out infinite;
}
.scn-countess-reflects-on-love .candle {
  position:absolute; bottom:20%; left:45%; width:2%; height:5%; 
  background: linear-gradient(180deg, #f0c880 0%, #d0a050 100%); 
  border-radius: 20%; box-shadow: 0 0 20px 6px #f0c060, 0 0 40px 12px rgba(240,192,96,0.3); 
  animation: crl-candle 2.5s ease-in-out infinite alternate;
}
.scn-countess-reflects-on-love .countess {
  position:absolute; bottom:15%; left:50%; width:20%; height:55%; 
  background: linear-gradient(180deg, #6a5c46 0%, #4a3e2e 100%); 
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; 
  transform-origin: bottom center; 
  animation: crl-countess 6s ease-in-out infinite;
}
.scn-countess-reflects-on-love .chair {
  position:absolute; bottom:12%; left:48%; width:25%; height:20%; 
  background: linear-gradient(180deg, #5a4a32 0%, #3e2e1e 100%); 
  border-radius: 20% 20% 10% 10% / 30% 30% 40% 40%; 
  box-shadow: 0 6px 12px rgba(0,0,0,0.2); 
  animation: crl-chair 7s ease-in-out infinite alternate;
}
.scn-countess-reflects-on-love .shadow-pool {
  position:absolute; bottom:0; left:35%; width:30%; height:12%; 
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.12) 0%, transparent 80%);
  filter: blur(4px); 
  animation: crl-shadow 9s ease-in-out infinite;
}
@keyframes crl-room { 0% { opacity:0.92 } 50% { opacity:1 } 100% { opacity:0.88 } }
@keyframes crl-window { 0% { box-shadow: 0 0 30px 8px rgba(255,235,180,0.2); opacity:0.85 } 50% { box-shadow: 0 0 50px 18px rgba(255,235,180,0.4); opacity:1 } 100% { box-shadow: 0 0 35px 10px rgba(255,235,180,0.25); opacity:0.9 } }
@keyframes crl-book { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-1px) } }
@keyframes crl-candle { 0% { transform: scaleY(1) scaleX(1) rotate(0deg); opacity:0.9 } 50% { transform: scaleY(1.04) scaleX(0.96) rotate(1deg); opacity:1 } 100% { transform: scaleY(0.98) scaleX(1.02) rotate(-1deg); opacity:0.85 } }
@keyframes crl-countess { 0% { transform: translateY(0) rotate(-0.3deg) } 50% { transform: translateY(-2px) rotate(0.3deg) } 100% { transform: translateY(0) rotate(-0.3deg) } }
@keyframes crl-chair { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(0.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes crl-shadow { 0%,100% { opacity:0.5 } 50% { opacity:0.7 } }

/* scene: helena-confesses-love */
.scn-helena-confesses-love {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d6c6aa 40%, #b6a286 70%, #9a8468 100%),
    radial-gradient(ellipse at 30% 60%, #f5edd4 0%, transparent 60%);
}
.scn-helena-confesses-love .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; 
  background: linear-gradient(180deg, #b09a7e 0%, #8a765c 100%); 
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); 
  animation: hcl-floor 8s ease-in-out infinite alternate;
}
.scn-helena-confesses-love .wall {
  position:absolute; inset:0 0 30% 0; 
  background: linear-gradient(180deg, #d8caba 0%, #c8b8a2 50%, #d8caba 100%); 
  box-shadow: inset 0 0 30px rgba(0,0,0,0.08); 
  animation: hcl-wall 10s ease-in-out infinite alternate;
}
.scn-helena-confesses-love .table {
  position:absolute; bottom:20%; left:15%; width:30%; height:10%; 
  background: linear-gradient(180deg, #7a6a52 0%, #5c4e38 100%); 
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); 
  transform: perspective(400px) rotateX(8deg); 
  animation: hcl-table 6s ease-in-out infinite;
}
.scn-helena-confesses-love .helena {
  position:absolute; bottom:20%; left:25%; width:15%; height:45%; 
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: hcl-helena 4s ease-in-out infinite;
}
.scn-helena-confesses-love .countess {
  position:absolute; bottom:20%; left:55%; width:18%; height:50%; 
  background: linear-gradient(180deg, #5a4a38 0%, #3c2e1e 100%); 
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; 
  transform-origin: bottom center; 
  animation: hcl-countess 5s ease-in-out infinite alternate;
}
.scn-helena-confesses-love .candle {
  position:absolute; bottom:26%; left:40%; width:2%; height:4%; 
  background: linear-gradient(180deg, #f0c060 0%, #c88830 100%); 
  border-radius: 20%; box-shadow: 0 0 18px 5px #f0b040, 0 0 36px 10px rgba(240,176,64,0.3); 
  animation: hcl-candle 3s ease-in-out infinite alternate;
}
.scn-helena-confesses-love .shadow-sharp {
  position:absolute; bottom:15%; left:15%; width:35%; height:40%; 
  background: linear-gradient(135deg, rgba(0,0,0,0.15) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%); 
  filter: blur(2px); 
  animation: hcl-shadow 5s ease-in-out infinite alternate;
}
@keyframes hcl-floor { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes hcl-wall { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.995) } 100% { transform: scaleY(1) } }
@keyframes hcl-table { 0%,100% { transform: perspective(400px) rotateX(8deg) translateY(0) } 50% { transform: perspective(400px) rotateX(8deg) translateY(-2px) } }
@keyframes hcl-helena { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(10px) translateY(0) rotate(2deg) } 75% { transform: translateX(5px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes hcl-countess { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes hcl-candle { 0% { transform: scaleY(1) scaleX(1) rotate(0deg); opacity:0.8 } 50% { transform: scaleY(1.08) scaleX(0.92) rotate(2deg); opacity:1 } 100% { transform: scaleY(0.96) scaleX(1.04) rotate(-2deg); opacity:0.85 } }
@keyframes hcl-shadow { 0% { opacity:0.6; transform: scaleX(1) } 50% { opacity:0.8; transform: scaleX(1.05) } 100% { opacity:0.65; transform: scaleX(0.98) } }

/* scene: helena-admits-love */
.scn-helena-admits-love {
  background: 
    linear-gradient(180deg, #e0d4be 0%, #ccbaa0 40%, #ad9478 70%, #8f7860 100%),
    radial-gradient(ellipse at 70% 40%, #f0e4cc 0%, transparent 60%);
}
.scn-helena-admits-love .door {
  position:absolute; top:0; left:40%; width:20%; height:100%; 
  background: linear-gradient(180deg, #7a6a52 0%, #5c4e38 100%); 
  border-radius: 4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.2); 
  animation: hal-door 12s ease-in-out infinite alternate;
}
.scn-helena-admits-love .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%; 
  background: linear-gradient(180deg, #a69074 0%, #867058 100%); 
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15); 
  animation: hal-floor 8s ease-in-out infinite alternate;
}
.scn-helena-admits-love .helena {
  position:absolute; bottom:20%; left:45%; width:14%; height:50%; 
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: hal-helena 3.5s ease-in-out infinite;
}
.scn-helena-admits-love .countess {
  position:absolute; bottom:20%; left:60%; width:16%; height:55%; 
  background: linear-gradient(180deg, #5a4a36 0%, #3c2e1c 100%); 
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; 
  transform-origin: bottom center; 
  animation: hal-countess 4.5s ease-in-out infinite alternate;
}
.scn-helena-admits-love .light-beam {
  position:absolute; bottom:5%; left:50%; width:8%; height:50%; 
  background: linear-gradient(180deg, rgba(255,235,180,0.6) 0%, transparent 80%);
  transform: skewX(-10deg); 
  filter: blur(4px); 
  animation: hal-beam 6s ease-in-out infinite alternate;
}
.scn-helena-admits-love .shadow {
  position:absolute; bottom:0; left:50%; width:25%; height:20%; 
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.2) 0%, transparent 80%);
  filter: blur(6px); 
  animation: hal-shadow 5s ease-in-out infinite alternate;
}
.scn-helena-admits-love .lintel {
  position:absolute; top:0; left:40%; width:20%; height:8%; 
  background: linear-gradient(180deg, #4a3e2e 0%, #3a2e1e 100%); 
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); 
  animation: hal-lintel 10s ease-in-out infinite;
}
@keyframes hal-door { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.995) } 100% { transform: scaleY(1) } }
@keyframes hal-floor { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes hal-helena { 0% { transform: translateX(0) translateY(0) rotate(-1.5deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(8px) translateY(0) rotate(1.5deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-1.5deg) } }
@keyframes hal-countess { 0% { transform: translateY(0) rotate(-0.5deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes hal-beam { 0% { opacity:0.5; transform: skewX(-10deg) translateX(0) } 50% { opacity:0.8; transform: skewX(-10deg) translateX(3px) } 100% { opacity:0.6; transform: skewX(-10deg) translateX(-2px) } }
@keyframes hal-shadow { 0% { opacity:0.4; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(1.02) } 100% { opacity:0.35; transform: scaleX(0.98) } }
@keyframes hal-lintel { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

/* scene 1: virginity-speech-long */
.scn-virginity-speech-long {
  background: linear-gradient(180deg, #fdf5e6 0%, #f0e0c0 60%, #e8c88a 100%), radial-gradient(ellipse at 30% 40%, rgba(255,215,0,0.15) 0%, transparent 70%);
}
.scn-virginity-speech-long .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #faf0e6 0%, #f5e6d0 60%, #eaddc8 100%);
  animation: vsl-wall 10s ease-in-out infinite alternate;
}
.scn-virginity-speech-long .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #d2b48c 0%, #c4a57a 50%, #a8865a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-virginity-speech-long .podium {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 50px;
  background: linear-gradient(180deg, #8b6f47 0%, #6b4e2e 100%);
  border-radius: 6px; box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: vsl-podium 8s ease-in-out infinite;
}
.scn-virginity-speech-long .figure {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: vsl-figure 6s ease-in-out infinite;
}
.scn-virginity-speech-long .arm-left {
  position: absolute; bottom: 55%; left: 40%; width: 20px; height: 10px;
  background: #2a1a0a; border-radius: 50%; transform-origin: right center;
  animation: vsl-arm-l 3s ease-in-out infinite alternate;
}
.scn-virginity-speech-long .arm-right {
  position: absolute; bottom: 55%; right: 40%; width: 20px; height: 10px;
  background: #2a1a0a; border-radius: 50%; transform-origin: left center;
  animation: vsl-arm-r 3.5s ease-in-out infinite alternate;
}
.scn-virginity-speech-long .spotlight {
  position: absolute; top: 0; left: 30%; right: 30%; bottom: 20%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,235,180,0.3) 0%, transparent 70%);
  mix-blend-mode: overlay;
  animation: vsl-spot 12s ease-in-out infinite alternate;
}
.scn-virginity-speech-long .halo {
  position: absolute; top: 30%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,215,0,0.15) 0%, transparent 70%);
  animation: vsl-halo 4s ease-in-out infinite alternate;
}
@keyframes vsl-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes vsl-podium {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes vsl-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(1deg); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes vsl-arm-l {
  0% { transform: rotate(-30deg); }
  100% { transform: rotate(10deg); }
}
@keyframes vsl-arm-r {
  0% { transform: rotate(30deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes vsl-spot {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
  50% { transform: scaleX(1.05) scaleY(1.1); opacity: 0.8; }
  100% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
}
@keyframes vsl-halo {
  0% { opacity: 0.4; transform: scale(0.9); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(1); }
}

/* scene 2: how-to-lose-virginity */
.scn-how-to-lose-virginity {
  background: linear-gradient(180deg, #fff8dc 0%, #f5deb3 60%, #efd9a0 100%), radial-gradient(ellipse at 70% 20%, rgba(255,215,0,0.1) 0%, transparent 60%);
}
.scn-how-to-lose-virginity .backdrop {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8f0e8 0%, #d4e0d0 100%), repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(255,255,255,0.1) 10px, rgba(255,255,255,0.1) 11px);
  animation: hlv-back 20s linear infinite;
}
.scn-how-to-lose-virginity .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a080 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.1);
}
.scn-how-to-lose-virginity .figure-a {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hlv-fig-a 5s ease-in-out infinite;
}
.scn-how-to-lose-virginity .figure-b {
  position: absolute; bottom: 25%; right: 35%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hlv-fig-b 5s ease-in-out infinite reverse;
}
.scn-how-to-lose-virginity .mirror {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: linear-gradient(135deg, #c8d8e8 0%, #a0b8d0 50%, #80a0c0 100%);
  border: 6px solid #8b6f47; border-radius: 4px;
  animation: hlv-mirror 8s ease-in-out infinite alternate;
}
.scn-how-to-lose-virginity .mirror-glow {
  position: absolute; bottom: 42%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.4) 0%, transparent 70%);
  animation: hlv-glow 3s ease-in-out infinite alternate;
}
.scn-how-to-lose-virginity .prop-book {
  position: absolute; bottom: 22%; left: 45%; width: 24px; height: 14px;
  background: #6b4e2e; border-radius: 2px;
  animation: hlv-book 6s ease-in-out infinite;
}
@keyframes hlv-back {
  0% { background-position: 0 0; }
  100% { background-position: 20px 10px; }
}
@keyframes hlv-fig-a {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-5px) translateY(-2px) rotate(-3deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(5px) translateY(-2px) rotate(3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hlv-fig-b {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(5px) translateY(-2px) rotate(3deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-5px) translateY(-2px) rotate(-3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hlv-mirror {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes hlv-glow {
  0% { opacity: 0.3; transform: translateX(-50%) scale(0.9); }
  100% { opacity: 0.6; transform: translateX(-50%) scale(1.1); }
}
@keyframes hlv-book {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0); }
}

/* scene 3: helena-laments-her-love */
.scn-helena-laments-her-love {
  background: linear-gradient(180deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%), radial-gradient(ellipse at 30% 60%, rgba(10,25,50,0.8) 0%, transparent 70%);
}
.scn-helena-laments-her-love .dark-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1c203a 0%, #14182a 100%);
  animation: hll-wall 12s ease-in-out infinite alternate;
}
.scn-helena-laments-her-love .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-helena-laments-her-love .window {
  position: absolute; top: 20%; left: 60%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #3a4a6a 0%, #2a3a5a 100%);
  border: 6px solid #2a2a2a; border-radius: 8px;
  animation: hll-window 15s ease-in-out infinite alternate;
}
.scn-helena-laments-her-love .figure {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hll-figure 4s ease-in-out infinite;
}
.scn-helena-laments-her-love .candle {
  position: absolute; bottom: 35%; left: 45%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #c04020 0%, #8a2a10 100%);
  border-radius: 50% 50% 10% 10%;
  animation: hll-candle 2s ease-in-out infinite alternate;
}
.scn-helena-laments-her-love .candle-glow {
  position: absolute; bottom: 33%; left: 44%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,180,100,0.6) 0%, rgba(200,80,20,0.2) 40%, transparent 70%);
  animation: hll-glow 2s ease-in-out infinite alternate;
}
.scn-helena-laments-her-love .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 20px;
  background: linear-gradient(90deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.2) 100%);
  border-radius: 50%;
  animation: hll-shadow 4s ease-in-out infinite alternate;
}
@keyframes hll-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes hll-window {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.02); }
  100% { opacity: 0.3; transform: scaleX(1); }
}
@keyframes hll-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-2px) translateY(-1px) rotate(0deg); }
  50% { transform: translateX(0) translateY(0) rotate(1deg); }
  75% { transform: translateX(2px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes hll-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.9; }
  25% { transform: scaleY(1.1) scaleX(0.95); opacity: 1; }
  50% { transform: scaleY(0.95) scaleX(1.05); opacity: 0.85; }
  75% { transform: scaleY(1.08) scaleX(0.98); opacity: 0.95; }
  100% { transform: scaleY(1) scaleX(1); opacity: 0.9; }
}
@keyframes hll-glow {
  0% { opacity: 0.6; transform: scale(0.95); }
  25% { opacity: 0.8; transform: scale(1.05); }
  50% { opacity: 0.5; transform: scale(1); }
  75% { opacity: 0.7; transform: scale(1.02); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes hll-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.5; }
  50% { transform: scaleX(1.1) translateX(5px); opacity: 0.7; }
  100% { transform: scaleX(1) translateX(0); opacity: 0.5; }
}

/* scene 4: page-calls-parolles */
.scn-page-calls-parolles {
  background: linear-gradient(180deg, #fdf5e6 0%, #f5e6d0 60%, #eaddc8 100%), radial-gradient(ellipse at 50% 30%, rgba(255,215,0,0.1) 0%, transparent 70%);
}
.scn-page-calls-parolles .light-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #faf0e8 0%, #f0e8d8 100%);
  animation: pcp-wall 15s ease-in-out infinite alternate;
}
.scn-page-calls-parolles .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #d4c4b0 0%, #b8a890 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.1);
}
.scn-page-calls-parolles .doorway {
  position: absolute; bottom: 0; left: 0; width: 100px; height: 100%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 0 40% 0 0 / 0 80% 0 0;
  animation: pcp-door 10s ease-in-out infinite alternate;
}
.scn-page-calls-parolles .page {
  position: absolute; bottom: 15%; left: 5%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pcp-page 5s ease-in-out infinite;
}
.scn-page-calls-parolles .parolles {
  position: absolute; bottom: 15%; right: 15%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pcp-parolles 5s ease-in-out infinite reverse;
}
.scn-page-calls-parolles .scroll {
  position: absolute; bottom: 25%; right: 22%; width: 16px; height: 8px;
  background: #d4c4a8; border-radius: 2px;
  animation: pcp-scroll 4s ease-in-out infinite alternate;
}
.scn-page-calls-parolles .beam {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: linear-gradient(135deg, rgba(255,235,180,0.15) 0%, transparent 40%);
  animation: pcp-beam 8s ease-in-out infinite alternate;
}
@keyframes pcp-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes pcp-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
  100% { transform: scaleX(1); }
}
@keyframes pcp-page {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(0deg); }
  50% { transform: translateX(0) translateY(0) rotate(2deg); }
  75% { transform: translateX(-3px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes pcp-parolles {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-2px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(2px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes pcp-scroll {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes pcp-beam {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.02); }
  100% { opacity: 0.3; transform: scaleX(1); }
}

/* Scene 1: king-remembers-bertrand-father */
.scn-king-remembers-bertrand-father {
  background:
    linear-gradient(180deg, #e8c08a 0%, #c8905a 50%, #a06838 100%),
    radial-gradient(ellipse at 30% 70%, #f0d0a0 0%, transparent 60%);
  animation: krb-bg 20s ease-in-out infinite alternate;
}
.scn-king-remembers-bertrand-father .throne {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 120px;
  height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: krb-throne 12s ease-in-out infinite alternate;
}
.scn-king-remembers-bertrand-father .king {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 60px;
  height: 80px;
  transform: translateX(-50%) translateY(-40px);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: krb-king 6s ease-in-out infinite;
}
.scn-king-remembers-bertrand-father .tomb {
  position: absolute;
  bottom: 22%;
  right: 12%;
  width: 80px;
  height: 50px;
  background: linear-gradient(180deg, #b0a090 0%, #806060 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  animation: krb-tomb 18s ease-in-out infinite;
}
.scn-king-remembers-bertrand-father .window {
  position: absolute;
  top: 8%;
  left: 20%;
  width: 50px;
  height: 70px;
  background: radial-gradient(circle, #ffe8b0 0%, #e0b060 80%, transparent 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 40px 10px rgba(240,200,120,0.5);
  animation: krb-window 3s ease-in-out infinite alternate;
}
.scn-king-remembers-bertrand-father .curtain-l {
  position: absolute;
  top: 0;
  left: 0;
  width: 15%;
  height: 100%;
  background: linear-gradient(180deg, #8a3a2a 0%, #4a1a0a 100%);
  border-radius: 0 20% 20% 0 / 0 40% 40% 0;
  transform-origin: left center;
  animation: krb-curtain 15s ease-in-out infinite alternate;
}
.scn-king-remembers-bertrand-father .curtain-r {
  position: absolute;
  top: 0;
  right: 0;
  width: 15%;
  height: 100%;
  background: linear-gradient(180deg, #8a3a2a 0%, #4a1a0a 100%);
  border-radius: 20% 0 0 20% / 40% 0 0 40%;
  transform-origin: right center;
  animation: krb-curtain 15s ease-in-out infinite alternate-reverse;
}
.scn-king-remembers-bertrand-father .candle {
  position: absolute;
  bottom: 34%;
  left: 25%;
  width: 10px;
  height: 30px;
  background: linear-gradient(180deg, #f0d090 0%, #d0a060 50%, #806030 100%);
  border-radius: 10%;
  box-shadow: 0 0 16px 6px rgba(255,200,80,0.6);
  animation: krb-candle 4s ease-in-out infinite alternate;
}
@keyframes krb-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes krb-throne { 0% { transform: translateX(-50%) rotate(-0.5deg); } 50% { transform: translateX(-50%) rotate(0.5deg) scale(1.01); } 100% { transform: translateX(-50%) rotate(-0.3deg); } }
@keyframes krb-king { 0% { transform: translateX(-50%) translateY(-40px) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-42px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(-40px) rotate(0deg); } }
@keyframes krb-tomb { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes krb-window { 0% { box-shadow: 0 0 30px 8px rgba(240,200,120,0.4); } 50% { box-shadow: 0 0 50px 15px rgba(240,200,120,0.7); } 100% { box-shadow: 0 0 35px 10px rgba(240,200,120,0.5); } }
@keyframes krb-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes krb-candle { 0% { transform: scaleY(1) translateY(0); opacity: 0.9; } 50% { transform: scaleY(1.05) translateY(-2px); opacity: 1; } 100% { transform: scaleY(1) translateY(0); opacity: 0.95; } }

/* Scene 2: rousillon-countess-steward */
.scn-rousillon-countess-steward {
  background:
    linear-gradient(180deg, #e8f0e8 0%, #c8d8c8 40%, #a8b8a8 100%),
    radial-gradient(ellipse at 40% 60%, #f0f8f0 0%, transparent 70%);
}
.scn-rousillon-countess-steward .window {
  position: absolute;
  top: 15%;
  left: 30%;
  width: 80px;
  height: 100px;
  background: radial-gradient(circle, #e0f0e0 0%, #90b090 70%, transparent 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: rcs-window 8s ease-in-out infinite alternate;
}
.scn-rousillon-countess-steward .curtain {
  position: absolute;
  top: 10%;
  left: 15%;
  width: 20%;
  height: 80%;
  background: linear-gradient(180deg, #b8c8b0 0%, #889888 100%);
  border-radius: 0 30% 30% 0 / 0 50% 50% 0;
  transform-origin: left;
  animation: rcs-curtain 20s ease-in-out infinite alternate;
}
.scn-rousillon-countess-steward .table {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 140px;
  height: 30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: rcs-table 18s ease-in-out infinite;
}
.scn-rousillon-countess-steward .countess {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 50px;
  height: 90px;
  background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rcs-countess 6s ease-in-out infinite alternate;
}
.scn-rousillon-countess-steward .steward {
  position: absolute;
  bottom: 30%;
  right: 25%;
  width: 40px;
  height: 80px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rcs-steward 8s ease-in-out infinite alternate;
}
.scn-rousillon-countess-steward .chair {
  position: absolute;
  bottom: 28%;
  left: 25%;
  width: 40px;
  height: 60px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: rcs-chair 12s ease-in-out infinite;
}
.scn-rousillon-countess-steward .rug {
  position: absolute;
  bottom: 10%;
  left: 10%;
  width: 80%;
  height: 15%;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6a4a 30%, #5a3a2a 70%, #6a4a3a 100%);
  border-radius: 30% 30% 10% 10%;
  opacity: 0.6;
  animation: rcs-rug 30s linear infinite alternate;
}
@keyframes rcs-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes rcs-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(1); } }
@keyframes rcs-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rcs-countess { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(-1deg); } }
@keyframes rcs-steward { 0% { transform: rotate(1deg); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(0deg); } }
@keyframes rcs-chair { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes rcs-rug { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }

/* Scene 3: clown-marriage-banter */
.scn-clown-marriage-banter {
  background:
    linear-gradient(135deg, #f0d858 0%, #e8b828 50%, #d09010 100%),
    radial-gradient(ellipse at 30% 20%, #fce68c 0%, transparent 60%);
  animation: cmb-bg 10s ease-in-out infinite alternate;
}
.scn-clown-marriage-banter .clown {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 70px;
  height: 120px;
  background: linear-gradient(180deg, #3a8af0 0%, #1a4aa0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cmb-clown 2s ease-in-out infinite;
}
.scn-clown-marriage-banter .isbel {
  position: absolute;
  bottom: 20%;
  right: 35%;
  width: 60px;
  height: 110px;
  background: linear-gradient(180deg, #f0a03a 0%, #c07018 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: cmb-isbel 2.5s ease-in-out infinite reverse;
}
.scn-clown-marriage-banter .arch {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 60%;
  height: 50%;
  border: 8px solid #fff0b0;
  border-bottom: none;
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 20px rgba(255,240,176,0.5);
  animation: cmb-arch 6s ease-in-out infinite alternate;
}
.scn-clown-marriage-banter .confetti-a {
  position: absolute;
  top: 12%;
  left: 10%;
  width: 12px;
  height: 12px;
  background: #f04040;
  border-radius: 50%;
  animation: cmb-confetti 3s linear infinite;
}
.scn-clown-marriage-banter .confetti-b {
  position: absolute;
  top: 25%;
  right: 15%;
  width: 10px;
  height: 10px;
  background: #40f040;
  border-radius: 50%;
  animation: cmb-confetti 3.5s linear infinite reverse;
}
.scn-clown-marriage-banter .rattle {
  position: absolute;
  bottom: 35%;
  left: 50%;
  width: 20px;
  height: 20px;
  background: radial-gradient(circle, #f0c040 0%, #c08020 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(240,192,64,0.6);
  animation: cmb-rattle 1.5s ease-in-out infinite alternate;
}
.scn-clown-marriage-banter .ring {
  position: absolute;
  bottom: 40%;
  right: 20%;
  width: 14px;
  height: 14px;
  border: 3px solid #f0d080;
  border-radius: 50%;
  background: transparent;
  animation: cmb-ring 4s ease-in-out infinite;
}
@keyframes cmb-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes cmb-clown { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-10px); } 50% { transform: rotate(-2deg) translateY(-5px); } 75% { transform: rotate(4deg) translateY(-15px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes cmb-isbel { 0% { transform: rotate(4deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-8px); } 50% { transform: rotate(3deg) translateY(-4px); } 75% { transform: rotate(-5deg) translateY(-12px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes cmb-arch { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.05) scaleY(1.02); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes cmb-confetti { 0% { transform: translateY(0) rotate(0deg); opacity: 1; } 100% { transform: translateY(300px) rotate(360deg); opacity: 0; } }
@keyframes cmb-rattle { 0% { transform: rotate(-20deg); } 50% { transform: rotate(20deg) scale(1.1); } 100% { transform: rotate(-15deg); } }
@keyframes cmb-ring { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(1); opacity: 0.7; } }

/* Scene 4: clown-dismissed */
.scn-clown-dismissed {
  background:
    linear-gradient(135deg, #f0d858 0%, #e8b828 50%, #c89818 100%),
    radial-gradient(ellipse at 70% 30%, #fce68c 0%, transparent 60%);
}
.scn-clown-dismissed .clown {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 70px;
  height: 120px;
  background: linear-gradient(180deg, #3a8af0 0%, #1a4aa0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cld-clown 3s ease-in-out infinite alternate;
}
.scn-clown-dismissed .hand {
  position: absolute;
  bottom: 30%;
  right: 20%;
  width: 40px;
  height: 30px;
  background: radial-gradient(ellipse, #d0a070 0%, #a07040 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: right center;
  animation: cld-hand 1.8s ease-in-out infinite;
}
.scn-clown-dismissed .door {
  position: absolute;
  right: 5%;
  bottom: 10%;
  width: 80px;
  height: 150px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: cld-door 12s ease-in-out infinite alternate;
}
.scn-clown-dismissed .shade-a {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(0,0,0,0.1) 0%, transparent 30%, transparent 70%, rgba(0,0,0,0.15) 100%);
  pointer-events: none;
  animation: cld-shade 8s ease-in-out infinite alternate;
}
.scn-clown-dismissed .shade-b {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(ellipse at 80% 40%, rgba(0,0,0,0.05) 0%, transparent 50%);
  pointer-events: none;
  animation: cld-shade2 10s ease-in-out infinite alternate;
}
.scn-clown-dismissed .speech {
  position: absolute;
  top: 25%;
  left: 45%;
  width: 50px;
  height: 20px;
  background: #fff;
  border-radius: 30% 30% 30% 0;
  transform: skewX(-10deg);
  opacity: 0.7;
  animation: cld-speech 4s ease-in-out infinite;
}
.scn-clown-dismissed .boot {
  position: absolute;
  bottom: 10%;
  left: 25%;
  width: 20px;
  height: 25px;
  background: #3a2a1a;
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(10deg);
  animation: cld-boot 2.5s ease-in-out infinite;
}
@keyframes cld-clown { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(5deg) translateX(-15px); } 100% { transform: rotate(-1deg) translateX(-5px); } }
@keyframes cld-hand { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(-20deg) scaleX(0.8); } 100% { transform: rotate(10deg) scaleX(1); } }
@keyframes cld-door { 0% { width: 80px; } 50% { width: 85px; } 100% { width: 80px; } }
@keyframes cld-shade { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes cld-shade2 { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes cld-speech { 0% { transform: skewX(-10deg) scale(1); opacity: 0.5; } 50% { transform: skewX(-10deg) scale(1.2); opacity: 0.9; } 100% { transform: skewX(-10deg) scale(1); opacity: 0.6; } }
@keyframes cld-boot { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-5px); } 100% { transform: rotate(10deg) translateY(0); } }

/* Scene: bertram-parolles-marriage (tense, bright interior) */
.scn-bertram-parolles-marriage {
  background: linear-gradient(180deg, #d4c9b8 0%, #b8a99a 40%, #8b7d6f 100%),
              radial-gradient(ellipse at 50% 10%, #f5ede0 0%, transparent 70%);
}
.scn-bertram-parolles-marriage .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #c6b9a6 0%, #a09484 100%); }
.scn-bertram-parolles-marriage .window-light { position:absolute; top:8%; left:12%; width:24%; height:50%; background: linear-gradient(135deg, #fff8e7 0%, #e8dcc5 70%); border-radius: 4% 4% 0 0; box-shadow: 0 20px 40px rgba(255,248,231,0.3), inset 0 -10px 30px rgba(0,0,0,0.1); animation: bpm-window 6s ease-in-out infinite alternate; }
.scn-bertram-parolles-marriage .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8b7d6f 0%, #5a4e43 100%); transform-origin: bottom; transform: perspective(600px) rotateX(10deg); }
.scn-bertram-parolles-marriage .figure-armor { position:absolute; bottom:20%; left:28%; width:28px; height:76px; background: linear-gradient(180deg, #3a3a3a 0%, #1c1c1c 100%); border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%; box-shadow: -4px 0 8px rgba(0,0,0,0.5); transform-origin: bottom center; animation: bpm-turn 8s ease-in-out infinite; }
.scn-bertram-parolles-marriage .figure-court { position:absolute; bottom:22%; left:54%; width:24px; height:66px; background: linear-gradient(180deg, #6b5b4e 0%, #3d322a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: bpm-reach 5s ease-in-out infinite; }
.scn-bertram-parolles-marriage .box-honour { position:absolute; bottom:32%; left:44%; width:16px; height:16px; background: linear-gradient(135deg, #c8945a 0%, #a0723e 100%); border-radius: 8%; box-shadow: 0 4px 8px rgba(0,0,0,0.6), inset 0 1px 2px rgba(255,215,0,0.3); animation: bpm-lift 7s ease-in-out infinite; }
.scn-bertram-parolles-marriage .shadow-cast { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.4) 100%); filter: blur(10px); animation: bpm-shadow 6s ease-in-out infinite alternate; }
@keyframes bpm-window {
  0% { opacity: 0.8; transform: scaleY(1) }
  50% { opacity: 1; transform: scaleY(1.02) }
  100% { opacity: 0.85; transform: scaleY(0.98) }
}
@keyframes bpm-turn {
  0% { transform: rotate(0deg) }
  50% { transform: rotate(-6deg) }
  100% { transform: rotate(2deg) }
}
@keyframes bpm-reach {
  0% { transform: translateY(0) }
  50% { transform: translateY(-4px) translateX(2px) }
  100% { transform: translateY(0) }
}
@keyframes bpm-lift {
  0% { transform: translateY(0) scale(1) }
  50% { transform: translateY(-3px) scale(1.08) }
  100% { transform: translateY(0) scale(1) }
}
@keyframes bpm-shadow {
  0% { opacity: 0.5; transform: scaleY(1) }
  50% { opacity: 0.8; transform: scaleY(1.04) }
  100% { opacity: 0.6; transform: scaleY(0.96) }
}

/* Scene: scene-iv-paris-palace (calm, bright interior) */
.scn-scene-iv-paris-palace {
  background: linear-gradient(180deg, #f2e8d5 0%, #d6c8b2 50%, #b8a78c 100%),
              radial-gradient(ellipse at 50% 100%, #e4d5bc 0%, transparent 70%);
}
.scn-scene-iv-paris-palace .bg-palace { position:absolute; inset:0; background: linear-gradient(180deg, #f0e4cf 0%, #cfbea4 100%); }
.scn-scene-iv-paris-palace .arch-window { position:absolute; top:6%; left:50%; width:30%; height:55%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #fff9ee 0%, #dacbb4 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 -20px 40px rgba(0,0,0,0.05); animation: siv-arch 12s ease-in-out infinite alternate; }
.scn-scene-iv-paris-palace .throne { position:absolute; bottom:20%; left:50%; width:60px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #cba76a 0%, #a07a44 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.2); animation: siv-throne 9s ease-in-out infinite; }
.scn-scene-iv-paris-palace .figure-helena { position:absolute; bottom:15%; left:32%; width:22px; height:68px; background: linear-gradient(180deg, #6b5a48 0%, #3f3328 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: siv-helena 7s ease-in-out infinite; }
.scn-scene-iv-paris-palace .figure-clown { position:absolute; bottom:16%; left:60%; width:20px; height:58px; background: linear-gradient(180deg, #7a684b 0%, #4a3d2c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: siv-clown 8s ease-in-out infinite; }
.scn-scene-iv-paris-palace .flower-vase { position:absolute; bottom:25%; left:44%; width:14px; height:22px; background: linear-gradient(180deg, #8a7b6a 0%, #5a4d3e 100%); border-radius: 20% 20% 10% 10%; }
.scn-scene-iv-paris-palace .flower-vase::after { content:''; position:absolute; top:-10px; left:2px; width:10px; height:12px; background: radial-gradient(circle, #b87878 0%, #702243 100%); border-radius: 50%; animation: siv-flower 5s ease-in-out infinite; }
.scn-scene-iv-paris-palace .soft-shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.12) 100%); filter: blur(8px); }
@keyframes siv-arch {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.9 }
  50% { transform: translateX(-50%) scaleY(1.03); opacity: 1 }
  100% { transform: translateX(-50%) scaleY(0.98); opacity: 0.92 }
}
@keyframes siv-throne {
  0% { transform: translateX(-50%) rotate(0deg) }
  50% { transform: translateX(-50%) rotate(1deg) translateY(-2px) }
  100% { transform: translateX(-50%) rotate(0deg) }
}
@keyframes siv-helena {
  0% { transform: translateY(0) }
  50% { transform: translateY(-3px) rotate(0.5deg) }
  100% { transform: translateY(0) }
}
@keyframes siv-clown {
  0% { transform: translateY(0) rotate(-1deg) }
  50% { transform: translateY(-2px) rotate(1deg) }
  100% { transform: translateY(0) rotate(0deg) }
}
@keyframes siv-flower {
  0% { transform: scale(1) rotate(0deg) }
  50% { transform: scale(1.1) rotate(10deg) }
  100% { transform: scale(1) rotate(0deg) }
}

/* Scene: helena-parolles-exchange (warm, bright interior) */
.scn-helena-parolles-exchange {
  background: linear-gradient(180deg, #edcfa6 0%, #d4ad78 50%, #a8814d 100%),
              radial-gradient(ellipse at 50% 20%, #f8e3c0 0%, transparent 70%);
}
.scn-helena-parolles-exchange .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #e8cca3 0%, #c9a670 100%); }
.scn-helena-parolles-exchange .hearth-glow { position:absolute; bottom:10%; left:10%; width:60px; height:70px; background: radial-gradient(ellipse at 50% 60%, #ff8c42 0%, #d65a1a 50%, transparent 100%); border-radius: 50%; filter: blur(15px); animation: hpe-fire 4s ease-in-out infinite alternate; }
.scn-helena-parolles-exchange .table-wood { position:absolute; bottom:25%; left:50%; width:50px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5c3a 0%, #4d3421 100%); border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-helena-parolles-exchange .figure-helena-right { position:absolute; bottom:18%; left:36%; width:22px; height:64px; background: linear-gradient(180deg, #6b4f3a 0%, #3a2a1c 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom; animation: hpe-helena 6s ease-in-out infinite; }
.scn-helena-parolles-exchange .figure-parolles-left { position:absolute; bottom:20%; left:54%; width:20px; height:60px; background: linear-gradient(180deg, #5a4232 0%, #32241a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: hpe-parolles 7s ease-in-out infinite; }
.scn-helena-parolles-exchange .chair-left { position:absolute; bottom:18%; left:32%; width:30px; height:20px; background: linear-gradient(180deg, #8b6b48 0%, #5c4028 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom; animation: hpe-chair 10s ease-in-out infinite; }
.scn-helena-parolles-exchange .chair-right { position:absolute; bottom:20%; left:58%; width:30px; height:20px; background: linear-gradient(180deg, #8b6b48 0%, #5c4028 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom; animation: hpe-chair2 10s ease-in-out infinite; }
.scn-helena-parolles-exchange .candle-light { position:absolute; bottom:28%; left:50%; width:6px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #f5d88b 0%, #d4a858 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 20px 6px #f5d88b, 0 0 40px 12px rgba(245,216,139,0.4); animation: hpe-candle 3s ease-in-out infinite alternate; }
@keyframes hpe-fire {
  0% { transform: scale(1); opacity: 0.7 }
  50% { transform: scale(1.15); opacity: 0.9 }
  100% { transform: scale(0.95); opacity: 0.75 }
}
@keyframes hpe-helena {
  0% { transform: translateY(0) rotate(1deg) }
  50% { transform: translateY(-3px) rotate(-1deg) }
  100% { transform: translateY(0) rotate(0deg) }
}
@keyframes hpe-parolles {
  0% { transform: translateY(0) rotate(-1deg) }
  50% { transform: translateY(-2px) rotate(1deg) }
  100% { transform: translateY(0) rotate(0deg) }
}
@keyframes hpe-chair {
  0% { transform: rotate(0deg) }
  50% { transform: rotate(-2deg) }
  100% { transform: rotate(0deg) }
}
@keyframes hpe-chair2 {
  0% { transform: rotate(0deg) }
  50% { transform: rotate(2deg) }
  100% { transform: rotate(0deg) }
}
@keyframes hpe-candle {
  0% { transform: translateX(-50%) scaleY(0.95); opacity: 0.8 }
  50% { transform: translateX(-50%) scaleY(1.1); opacity: 1 }
  100% { transform: translateX(-50%) scaleY(0.95); opacity: 0.85 }
}

/* Scene: scene-v-paris-palace (tense, bright interior) */
.scn-scene-v-paris-palace {
  background: linear-gradient(180deg, #e0d4c3 0%, #bfae9a 50%, #9a8873 100%),
              radial-gradient(ellipse at 50% 0%, #f5efe5 0%, transparent 70%);
}
.scn-scene-v-paris-palace .bg-tense { position:absolute; inset:0; background: linear-gradient(180deg, #dacfc0 0%, #b6a793 100%); }
.scn-scene-v-paris-palace .sharp-window { position:absolute; top:5%; right:8%; width:20%; height:50%; background: linear-gradient(135deg, #fffef5 0%, #e2d7c1 100%); border-radius: 2% 2% 0 0; box-shadow: -10px 0 30px rgba(255,254,245,0.3); animation: svp-window 5s ease-in-out infinite alternate; }
.scn-scene-v-paris-palace .figure-lafeu { position:absolute; bottom:18%; left:24%; width:26px; height:72px; background: linear-gradient(180deg, #3d352e 0%, #1e1914 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom; animation: svp-lafeu 6s ease-in-out infinite; }
.scn-scene-v-paris-palace .figure-bertram { position:absolute; bottom:20%; left:52%; width:24px; height:70px; background: linear-gradient(180deg, #4a4038 0%, #262018 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom; animation: svp-bertram 7s ease-in-out infinite; }
.scn-scene-v-paris-palace .dial-clock { position:absolute; top:10%; left:18%; width:40px; height:40px; background: radial-gradient(circle at 30% 30%, #e8dcc5 0%, #b8a387 100%); border-radius: 50%; border: 2px solid #7a6b58; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: svp-clock 15s linear infinite; }
.scn-scene-v-paris-palace .dial-clock::before { content:''; position:absolute; top:50%; left:50%; width:2px; height:14px; background:#2c2620; transform: translate(-50%, -100%) rotate(0deg); transform-origin: bottom center; animation: svp-hand 30s linear infinite; }
.scn-scene-v-paris-palace .lark-bird { position:absolute; top:20%; left:44%; width:10px; height:8px; background: radial-gradient(circle at 30% 50%, #5a4d3e 0%, #332c24 100%); border-radius: 50% 50% 40% 40%; filter: blur(1px); animation: svp-lark 4s ease-in-out infinite; }
.scn-scene-v-paris-palace .cast-shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.35) 100%); filter: blur(8px); animation: svp-shadow 6s ease-in-out infinite alternate; }
@keyframes svp-window {
  0% { transform: scaleX(1); opacity: 0.8 }
  50% { transform: scaleX(1.06); opacity: 1 }
  100% { transform: scaleX(0.97); opacity: 0.85 }
}
@keyframes svp-lafeu {
  0% { transform: translateY(0) rotate(1deg) }
  50% { transform: translateY(-3px) rotate(-2deg) }
  100% { transform: translateY(0) rotate(0deg) }
}
@keyframes svp-bertram {
  0% { transform: translateY(0) rotate(-1deg) }
  50% { transform: translateY(-2px) rotate(2deg) }
  100% { transform: translateY(0) rotate(0deg) }
}
@keyframes svp-clock {
  0% { transform: rotate(0deg) }
  100% { transform: rotate(360deg) }
}
@keyframes svp-hand {
  0% { transform: translate(-50%, -100%) rotate(0deg) }
  100% { transform: translate(-50%, -100%) rotate(360deg) }
}
@keyframes svp-lark {
  0% { transform: translateY(0) scale(1) }
  50% { transform: translateY(-6px) scale(1.1) }
  100% { transform: translateY(0) scale(1) }
}
@keyframes svp-shadow {
  0% { opacity: 0.4; transform: scaleY(1) }
  50% { opacity: 0.7; transform: scaleY(1.03) }
  100% { opacity: 0.5; transform: scaleY(0.97) }
}

.scn-bertram-haste-to-france {
  background: linear-gradient(180deg, #0b0e2a 0%, #1a2040 40%, #2b3a5e 70%, #3a4f72 100%), radial-gradient(ellipse 40% 50% at 70% 20%, #b0c8e0 0%, transparent 70%);
}
.scn-bertram-haste-to-france .moon {
  position: absolute;
  top: 8%;
  right: 18%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, #e0e8f0 0%, #b8c8e0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(176, 200, 224, 0.4);
  animation: b-hf-moon 12s ease-in-out infinite alternate;
}
.scn-bertram-haste-to-france .hills {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 28%;
  background: linear-gradient(180deg, #1e2a3a 0%, #0d141e 100%);
  border-radius: 60% 40% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: b-hf-hills 20s ease-in-out infinite alternate;
}
.scn-bertram-haste-to-france .road {
  position: absolute;
  bottom: 10%;
  left: 20%;
  right: 20%;
  height: 20%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 10%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
}
.scn-bertram-haste-to-france .figure {
  position: absolute;
  bottom: 28%;
  left: 45%;
  width: 22px;
  height: 40px;
  background: linear-gradient(180deg, #2a3040 0%, #141820 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 50% 40%;
  transform-origin: bottom center;
  animation: b-hf-run 2.5s steps(2) infinite;
}
.scn-bertram-haste-to-france .cape {
  position: absolute;
  bottom: 32%;
  left: 42%;
  width: 18px;
  height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 20% 40% 40% / 60% 30% 60% 40%;
  transform-origin: top center;
  animation: b-hf-cape 1.5s ease-in-out infinite alternate;
}
.scn-bertram-haste-to-france .cloud-a {
  position: absolute;
  top: 15%;
  left: 10%;
  width: 80px;
  height: 22px;
  background: linear-gradient(180deg, rgba(176,200,224,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: b-hf-drift-a 40s linear infinite;
}
.scn-bertram-haste-to-france .cloud-b {
  position: absolute;
  top: 25%;
  right: 5%;
  width: 60px;
  height: 16px;
  background: linear-gradient(180deg, rgba(176,200,224,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: b-hf-drift-b 55s linear infinite reverse;
}
@keyframes b-hf-moon { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.85; } }
@keyframes b-hf-hills { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(0.98); } }
@keyframes b-hf-run { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes b-hf-cape { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.1); } 100% { transform: rotate(-8deg) scaleX(0.9); } }
@keyframes b-hf-drift-a { 0% { transform: translateX(-30px) scaleX(1); } 50% { transform: translateX(50vw) scaleX(1.2); } 100% { transform: translateX(110vw) scaleX(0.9); } }
@keyframes b-hf-drift-b { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-30vw) scaleX(1.1); } 100% { transform: translateX(-100vw) scaleX(0.85); } }

.scn-parolles-exposure-plot {
  background: linear-gradient(180deg, #0f142e 0%, #1a2244 50%, #2c3a5a 100%), radial-gradient(ellipse 35% 45% at 50% 10%, #b0c4dd 0%, transparent 70%);
}
.scn-parolles-exposure-plot .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #1e2830 0%, #0e1418 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.7);
}
.scn-parolles-exposure-plot .moon {
  position: absolute;
  top: 6%;
  left: 50%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #dde6f0 0%, #b0c4dd 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 35px 10px rgba(176,196,221,0.3);
  animation: p-ep-moon 15s ease-in-out infinite alternate;
}
.scn-parolles-exposure-plot .soldier-left {
  position: absolute;
  bottom: 28%;
  left: 15%;
  width: 20px;
  height: 45px;
  background: linear-gradient(180deg, #2a3038 0%, #14181e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: p-ep-soldier 4s ease-in-out infinite alternate;
}
.scn-parolles-exposure-plot .soldier-right {
  position: absolute;
  bottom: 28%;
  right: 18%;
  width: 22px;
  height: 48px;
  background: linear-gradient(180deg, #2a3038 0%, #14181e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: p-ep-soldier 4.5s ease-in-out infinite alternate-reverse;
}
.scn-parolles-exposure-plot .parolles-kneeling {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 24px;
  height: 32px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: p-ep-parolles 2s ease-in-out infinite;
}
.scn-parolles-exposure-plot .stake {
  position: absolute;
  bottom: 22%;
  left: 46%;
  width: 4px;
  height: 20px;
  background: #3a3028;
  border-radius: 2px;
  box-shadow: 0 0 4px 1px rgba(0,0,0,0.5);
}
@keyframes p-ep-moon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.03); opacity: 0.9; } 100% { transform: translateY(0) scale(0.97); } }
@keyframes p-ep-soldier { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes p-ep-parolles { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 30% { transform: translateX(-50%) translateY(-2px) rotate(-5deg); } 60% { transform: translateX(-50%) translateY(0) rotate(3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }

.scn-parolles-confession-read {
  background: linear-gradient(180deg, #181e38 0%, #20284a 40%, #2c3460 80%, #384070 100%), radial-gradient(ellipse 30% 40% at 50% 15%, #b8cce0 0%, transparent 60%);
}
.scn-parolles-confession-read .tent-back {
  position: absolute;
  inset: 10% 15% 15% 15%;
  background: linear-gradient(180deg, #2a3050 0%, #1a2038 100%);
  border-radius: 30% 30% 10% 10% / 20% 20% 15% 15%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-parolles-confession-read .tent-flap-left {
  position: absolute;
  top: 12%;
  left: 10%;
  width: 12%;
  height: 70%;
  background: linear-gradient(180deg, #3a4060 0%, #282e48 100%);
  clip-path: polygon(0 10%, 100% 0, 100% 100%, 0 90%);
  animation: p-cr-flap 10s ease-in-out infinite alternate;
}
.scn-parolles-confession-read .tent-flap-right {
  position: absolute;
  top: 12%;
  right: 10%;
  width: 12%;
  height: 70%;
  background: linear-gradient(180deg, #3a4060 0%, #282e48 100%);
  clip-path: polygon(0 0, 100% 10%, 100% 90%, 0 100%);
  animation: p-cr-flap 10s ease-in-out infinite alternate-reverse;
}
.scn-parolles-confession-read .desk {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 80px;
  height: 18px;
  background: linear-gradient(180deg, #4a382a 0%, #2a1e12 100%);
  border-radius: 4px 4px 2px 2px;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-parolles-confession-read .letter {
  position: absolute;
  bottom: 34%;
  left: 50%;
  width: 45px;
  height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #e8dcc0 0%, #c8b898 60%, #a08868 100%);
  border-radius: 4px 4px 8px 8px;
  transform: translateX(-50%) rotate(-5deg);
  box-shadow: 0 0 20px 6px rgba(200,184,152,0.4);
  animation: p-cr-letter 3s ease-in-out infinite alternate;
}
.scn-parolles-confession-read .reader-hand {
  position: absolute;
  bottom: 35%;
  left: 52%;
  width: 10px;
  height: 18px;
  background: linear-gradient(180deg, #3a3840 0%, #28262c 100%);
  border-radius: 60% 40% 50% 50% / 50% 30% 70% 50%;
  transform: rotate(15deg);
  animation: p-cr-hand 5s ease-in-out infinite;
}
.scn-parolles-confession-read .parolles-profile {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 18px;
  height: 34px;
  background: linear-gradient(180deg, #2a2e3a 0%, #1a1c26 100%);
  border-radius: 50% 40% 30% 50% / 60% 40% 60% 40%;
  animation: p-cr-profile 6s ease-in-out infinite;
}
@keyframes p-cr-flap { 0% { transform: translateX(0) skewX(0); } 50% { transform: translateX(5px) skewX(3deg); } 100% { transform: translateX(0) skewX(-2deg); } }
@keyframes p-cr-letter { 0% { transform: translateX(-50%) rotate(-5deg) scale(1); } 50% { transform: translateX(-50%) rotate(-3deg) scale(1.02); box-shadow: 0 0 25px 8px rgba(200,184,152,0.6); } 100% { transform: translateX(-50%) rotate(-6deg) scale(0.98); } }
@keyframes p-cr-hand { 0% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(14deg) translateY(0); } }
@keyframes p-cr-profile { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-3px) rotate(-4deg); } 60% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-parolles-fake-interrogation {
  background: linear-gradient(180deg, #0f1430 0%, #1a2448 50%, #2c3a5e 100%), radial-gradient(ellipse 40% 50% at 50% 10%, #b8c8dc 0%, transparent 70%);
}
.scn-parolles-fake-interrogation .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1e2832 0%, #0e141a 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-parolles-fake-interrogation .moon {
  position: absolute;
  top: 6%;
  right: 20%;
  width: 38px;
  height: 38px;
  background: radial-gradient(circle, #dde6f0 0%, #b0c4dd 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(176,196,221,0.3);
  animation: p-fi-moon 18s ease-in-out infinite alternate;
}
.scn-parolles-fake-interrogation .soldier-interrogator {
  position: absolute;
  bottom: 28%;
  left: 25%;
  width: 22px;
  height: 50px;
  background: linear-gradient(180deg, #2a303a 0%, #141822 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: p-fi-soldier 2s ease-in-out infinite;
}
.scn-parolles-fake-interrogation .parolles-confused {
  position: absolute;
  bottom: 26%;
  right: 25%;
  width: 24px;
  height: 44px;
  background: linear-gradient(180deg, #2a2e3a 0%, #1a1c28 100%);
  border-radius: 50% 40% 30% 50% / 60% 50% 50% 40%;
  transform-origin: bottom center;
  animation: p-fi-parolles 1.8s cubic-bezier(0.42, 0, 0.58, 1) infinite;
}
.scn-parolles-fake-interrogation .note {
  position: absolute;
  bottom: 38%;
  left: 28%;
  width: 28px;
  height: 22px;
  background: linear-gradient(180deg, #e0d4c0 0%, #c8b898 100%);
  border-radius: 2px 2px 4px 4px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: p-fi-note 2.5s cubic-bezier(0.25, 0.1, 0.25, 1) infinite;
}
.scn-parolles-fake-interrogation .star-1 {
  position: absolute;
  top: 12%;
  left: 15%;
  width: 4px;
  height: 4px;
  background: #e0e8f0;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(224,232,240,0.5);
  animation: p-fi-star 3s ease-in-out infinite;
}
.scn-parolles-fake-interrogation .star-2 {
  position: absolute;
  top: 18%;
  right: 30%;
  width: 3px;
  height: 3px;
  background: #e0e8f0;
  border-radius: 50%;
  box-shadow: 0 0 6px 1px rgba(224,232,240,0.4);
  animation: p-fi-star 4s ease-in-out infinite 1.5s;
}
@keyframes p-fi-moon { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.04) translateY(-3px); } 100% { transform: scale(0.96) translateY(0); } }
@keyframes p-fi-soldier { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(4deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes p-fi-parolles { 0% { transform: translateY(0) rotate(0) scaleX(1); } 20% { transform: translateY(-3px) rotate(-8deg) scaleX(1.1); } 40% { transform: translateY(0) rotate(5deg) scaleX(0.9); } 60% { transform: translateY(-2px) rotate(-4deg) scaleX(1.05); } 80% { transform: translateY(0) rotate(2deg) scaleX(0.95); } 100% { transform: translateY(0) rotate(0) scaleX(1); } }
@keyframes p-fi-note { 0% { transform: rotate(-8deg) translateY(0); } 30% { transform: rotate(-15deg) translateY(-4px); } 60% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(-10deg) translateY(-2px); } }
@keyframes p-fi-star { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: 0.6; transform: scale(0.8); } }

/* woodcock-caught-muffled */
.scn-woodcock-caught-muffled {
  background: linear-gradient(180deg, #7bb8d4 0%, #e8d48a 60%, #c49a5c 100%),
              radial-gradient(ellipse at 70% 30%, #fff2c0 0%, transparent 40%);
}
.scn-woodcock-caught-muffled .sky-glow {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d4e6f0 0%, transparent 100%);
  animation: wcm-sky 10s ease-in-out infinite alternate;
}
.scn-woodcock-caught-muffled .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7a9e6b 0%, #4a6b3a 100%);
  border-radius: 20% 0 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.3);
}
.scn-woodcock-caught-muffled .tree-trunk {
  position: absolute; bottom: 35%; left: 20%; width: 16px; height: 40%;
  background: linear-gradient(90deg, #5a3a2a 0%, #7a5a3a 50%, #4a2a1a 100%);
  border-radius: 4px; transform-origin: bottom; animation: wcm-tree 15s ease-in-out infinite;
}
.scn-woodcock-caught-muffled .tree-crown {
  position: absolute; bottom: 65%; left: 14%; width: 90px; height: 60px;
  background: radial-gradient(circle at 40% 40%, #6a9a5a 0%, #3a6a2a 70%, transparent 100%);
  border-radius: 50%; filter: blur(3px); animation: wcm-leaves 12s ease-in-out infinite alternate;
}
.scn-woodcock-caught-muffled .soldier {
  position: absolute; bottom: 30%; left: 55%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: wcm-sold 4s ease-in-out infinite;
}
.scn-woodcock-caught-muffled .prisoner {
  position: absolute; bottom: 30%; left: 42%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,.5);
  animation: wcm-pris 6s ease-in-out infinite;
}
.scn-woodcock-caught-muffled .rope {
  position: absolute; bottom: 28%; left: 43%; width: 20px; height: 2px;
  background: #b08a5a; border-radius: 50%; box-shadow: 0 0 4px #624a2a;
  transform: rotate(-10deg); animation: wcm-rope 3s ease-in-out infinite alternate;
}
.scn-woodcock-caught-muffled .grass-blur {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(60,90,40,.6) 0%, transparent 100%);
  filter: blur(8px); animation: wcm-grass 8s linear infinite;
}
@keyframes wcm-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes wcm-tree { 0%,100% { transform: rotate(0); } 50% { transform: rotate(3deg); } }
@keyframes wcm-leaves { 0% { transform: scale(1); } 50% { transform: scale(1.05) translateX(4px); } 100% { transform: scale(.95); } }
@keyframes wcm-sold { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes wcm-pris { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(1px) rotate(2deg); } }
@keyframes wcm-rope { 0% { opacity: .7; } 100% { opacity: 1; transform: rotate(-5deg); } }
@keyframes wcm-grass { 0% { opacity: .4; } 50% { opacity: .6; } 100% { opacity: .3; } }

/* florence-widow-house-diana */
.scn-florence-widow-house-diana {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a40 40%, #0c0c1a 100%),
              radial-gradient(ellipse at 50% 60%, #3a3a5a 0%, transparent 70%);
}
.scn-florence-widow-house-diana .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a30 100%);
  animation: fwh-bg 12s ease-in-out infinite alternate;
}
.scn-florence-widow-house-diana .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2e2e1e 0%, #1a1a0e 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-florence-widow-house-diana .window {
  position: absolute; top: 15%; right: 10%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #6a7a9a 0%, #4a5a7a 100%);
  border: 3px solid #3a3a4a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,130,180,.3);
  animation: fwh-window 8s ease-in-out infinite;
}
.scn-florence-widow-house-diana .table {
  position: absolute; bottom: 25%; left: 42%; width: 80px; height: 8px;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-florence-widow-house-diana .candle-glow {
  position: absolute; bottom: 34%; left: 48%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #c08030 100%);
  border-radius: 2px 2px 30% 30%;
  box-shadow: 0 0 20px 6px #c08030, 0 0 40px 12px rgba(192,128,48,.3);
  animation: fwh-candle 2s ease-in-out infinite alternate;
}
.scn-florence-widow-house-diana .bertram {
  position: absolute; bottom: 20%; left: 28%; width: 20px; height: 56px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(-4deg); box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: fwh-bert 5s ease-in-out infinite;
}
.scn-florence-widow-house-diana .diana {
  position: absolute; bottom: 20%; left: 55%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a0a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: fwh-diana 6s ease-in-out infinite alternate;
}
@keyframes fwh-bg { 0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .5; } }
@keyframes fwh-window { 0%,100% { opacity: .7; } 50% { opacity: .9; } }
@keyframes fwh-candle { 0% { box-shadow: 0 0 10px 2px #c08030; } 100% { box-shadow: 0 0 30px 10px #ffa040; } }
@keyframes fwh-bert { 0%,100% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } }
@keyframes fwh-diana { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(1px) rotate(2deg); } 100% { transform: translateY(-1px) rotate(-2deg); } }

/* diana-resists-bertram */
.scn-diana-resists-bertram {
  background: linear-gradient(180deg, #1a1a30 0%, #2e2a44 50%, #0c0c1e 100%),
              radial-gradient(ellipse at 30% 70%, #3e3a5a 0%, transparent 60%);
}
.scn-diana-resists-bertram .shadow-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #242438 0%, transparent 100%);
  animation: drb-wall 10s ease-in-out infinite alternate;
}
.scn-diana-resists-bertram .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1c1c14 0%, #0a0a06 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.7);
}
.scn-diana-resists-bertram .door-frame {
  position: absolute; bottom: 38%; left: 60%; width: 8px; height: 55%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px; box-shadow: 4px 0 8px rgba(0,0,0,.3);
}
.scn-diana-resists-bertram .diana-arm {
  position: absolute; bottom: 38%; left: 42%; width: 4px; height: 20px;
  background: #2a1a2e; border-radius: 50% 50% 20% 20%;
  transform-origin: bottom; transform: rotate(-35deg);
  animation: drb-arm 3s ease-in-out infinite alternate;
}
.scn-diana-resists-bertram .bertram-reach {
  position: absolute; bottom: 32%; left: 32%; width: 6px; height: 24px;
  background: #1a1a2a; border-radius: 50% 50% 10% 10%;
  transform-origin: bottom; transform: rotate(20deg);
  animation: drb-reach 3.5s ease-in-out infinite alternate;
}
.scn-diana-resists-bertram .diana-skirt {
  position: absolute; bottom: 15%; left: 54%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a0a2a 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 40% 40%;
  transform: rotate(5deg);
}
.scn-diana-resists-bertram .bertram-boot {
  position: absolute; bottom: 0; left: 20%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-3deg);
  animation: drb-boot 4s ease-in-out infinite;
}
@keyframes drb-wall { 0% { opacity: .5; } 50% { opacity: .7; } 100% { opacity: .6; } }
@keyframes drb-arm { 0% { transform: rotate(-35deg); } 100% { transform: rotate(-15deg); } }
@keyframes drb-reach { 0% { transform: rotate(20deg) translateY(0); } 100% { transform: rotate(35deg) translateY(-4px); } }
@keyframes drb-boot { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } }

/* diana-vows-vs-oaths */
.scn-diana-vows-vs-oaths {
  background: linear-gradient(180deg, #141420 0%, #202438 50%, #0a0a14 100%),
              radial-gradient(ellipse at 40% 50%, #2a2e44 0%, transparent 60%);
}
.scn-diana-vows-vs-oaths .night-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a28 0%, transparent 100%);
  animation: dvv-bg 15s ease-in-out infinite alternate;
}
.scn-diana-vows-vs-oaths .table-wood {
  position: absolute; bottom: 30%; left: 30%; width: 90px; height: 6px;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 0 3px 8px rgba(0,0,0,.5);
}
.scn-diana-vows-vs-oaths .scroll-paper {
  position: absolute; bottom: 32%; left: 35%; width: 40px; height: 26px;
  background: linear-gradient(180deg, #c8b898 0%, #a09070 100%);
  border-radius: 2px; transform: perspective(80px) rotateX(5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: dvv-scroll 8s ease-in-out infinite;
}
.scn-diana-vows-vs-oaths .seal-burst {
  position: absolute; bottom: 34%; left: 42%; width: 10px; height: 10px;
  background: radial-gradient(circle, #a0461a 0%, #6a2a0a 100%);
  border-radius: 50%; box-shadow: 0 0 12px 3px #a0461a;
  animation: dvv-seal 4s ease-in-out infinite alternate;
}
.scn-diana-vows-vs-oaths .diana-hand {
  position: absolute; bottom: 36%; left: 38%; width: 6px; height: 12px;
  background: #2a1a2e; border-radius: 50% 50% 20% 20%;
  transform: rotate(-10deg); animation: dvv-hand 3s ease-in-out infinite alternate;
}
.scn-diana-vows-vs-oaths .bertram-cloak {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(2deg); box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: dvv-cloak 6s ease-in-out infinite;
}
.scn-diana-vows-vs-oaths .ink-splash {
  position: absolute; bottom: 30%; left: 34%; width: 12px; height: 10px;
  background: radial-gradient(circle, #2a2a3a 0%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: dvv-ink 9s ease-in-out infinite alternate;
}
@keyframes dvv-bg { 0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .5; } }
@keyframes dvv-scroll { 0%,100% { transform: perspective(80px) rotateX(5deg); } 50% { transform: perspective(80px) rotateX(12deg); } }
@keyframes dvv-seal { 0% { box-shadow: 0 0 8px 2px #a0461a; } 100% { box-shadow: 0 0 20px 6px #c0602a; } }
@keyframes dvv-hand { 0% { transform: rotate(-10deg); } 100% { transform: rotate(5deg); } }
@keyframes dvv-cloak { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0) translateY(3px); } }
@keyframes dvv-ink { 0% { opacity: .3; transform: scale(1); } 100% { opacity: .6; transform: scale(1.2); } }

.scn-parolles-and-bertram-plot {
  background: linear-gradient(180deg, #d8cfc0 0%, #b8a890 60%, #9a8a78 100%),
              radial-gradient(ellipse at 50% 20%, #f0e8d8 0%, transparent 60%);
  animation: pbp-shift 20s ease-in-out infinite alternate;
}
.scn-parolles-and-bertram-plot .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c4b8a8 0%, #a89880 100%); border-radius:0 0 30% 30%; }
.scn-parolles-and-bertram-plot .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7a68 0%, #6a5a48 100%); border-radius:20% 20% 0 0; }
.scn-parolles-and-bertram-plot .throne { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:40px; height:50px; background: linear-gradient(180deg, #b09878 0%, #8a7050 100%); border-radius:30% 30% 10% 10%; box-shadow:0 4px 8px rgba(0,0,0,.3); }
.scn-parolles-and-bertram-plot .king { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:24px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pbp-king 8s ease-in-out infinite; }
.scn-parolles-and-bertram-plot .parolles { position:absolute; bottom:28%; left:25%; width:20px; height:36px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pbp-retire 12s ease-in-out infinite; }
.scn-parolles-and-bertram-plot .bertram { position:absolute; bottom:28%; right:25%; width:20px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pbp-retire 12s ease-in-out infinite reverse; }
.scn-parolles-and-bertram-plot .curtain-left { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:0 40% 40% 0; box-shadow: inset -10px 0 20px rgba(0,0,0,.4); animation: pbp-curtain 18s ease-in-out infinite; }
.scn-parolles-and-bertram-plot .curtain-right { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:40% 0 0 40%; box-shadow: inset 10px 0 20px rgba(0,0,0,.4); animation: pbp-curtain 18s ease-in-out infinite alternate; }
@keyframes pbp-shift { 0% { background-position:0% 50%; } 50% { background-position:50% 50%; } 100% { background-position:100% 50%; } }
@keyframes pbp-king { 0% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-2px) scale(1.02); } 100% { transform: translateX(-50%) translateY(0) scale(1); } }
@keyframes pbp-retire { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-5deg) scale(0.98); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-5deg) scale(0.98); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pbp-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(0); } }

.scn-lafeu-presents-helena {
  background: linear-gradient(180deg, #f5e8d0 0%, #e0c8a8 50%, #c4a888 100%),
              radial-gradient(ellipse at 30% 70%, #ffe8c0 0%, transparent 50%);
  animation: lph-sun 12s ease-in-out infinite alternate;
}
.scn-lafeu-presents-helena .bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8d8c0 0%, #d0b898 100%); border-radius:0 0 40% 40%; }
.scn-lafeu-presents-helena .lafeu { position:absolute; bottom:30%; left:20%; width:22px; height:42px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: lph-bow 2s ease-in-out infinite; }
.scn-lafeu-presents-helena .helena { position:absolute; bottom:30%; left:45%; width:20px; height:38px; background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: lph-enter 4s ease-in-out infinite; }
.scn-lafeu-presents-helena .king { position:absolute; bottom:28%; left:70%; width:26px; height:44px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: lph-gesture 3s cubic-bezier(0.68, -0.55, 0.27, 1.55) infinite; }
.scn-lafeu-presents-helena .sparkle-a { position:absolute; top:20%; left:30%; width:8px; height:8px; background:radial-gradient(circle, #ffd060 0%, transparent 70%); border-radius:50%; box-shadow:0 0 12px 4px #ffd060; animation: lph-sparkle 1.5s ease-in-out infinite; }
.scn-lafeu-presents-helena .sparkle-b { position:absolute; top:30%; left:60%; width:6px; height:6px; background:radial-gradient(circle, #ffe080 0%, transparent 70%); border-radius:50%; box-shadow:0 0 10px 3px #ffe080; animation: lph-sparkle 1.5s ease-in-out infinite 0.5s; }
.scn-lafeu-presents-helena .flourish { position:absolute; bottom:35%; left:10%; width:30px; height:30px; background: conic-gradient(from 0deg, transparent, #ffd060, transparent); border-radius:50%; filter: blur(6px); animation: lph-spin 3s linear infinite; }
@keyframes lph-sun { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes lph-bow { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-8deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(-8deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lph-enter { 0% { transform: translateX(-10px) scale(0.95); opacity:0.6; } 50% { transform: translateX(0) scale(1); opacity:1; } 100% { transform: translateX(-10px) scale(0.95); opacity:0.6; } }
@keyframes lph-gesture { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(5deg) scale(1.05); } 50% { transform: translateX(0) rotate(-3deg); } 75% { transform: translateX(4px) rotate(5deg) scale(1.05); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lph-sparkle { 0% { transform: scale(0.5); opacity:0; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.5); opacity:0; } }
@keyframes lph-spin { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }

.scn-helena-offers-cure {
  background: linear-gradient(180deg, #c8a878 0%, #a88858 50%, #8a6840 100%),
              radial-gradient(ellipse at 50% 0%, #f0d8a8 0%, transparent 70%);
  animation: hoc-amber 15s ease-in-out infinite alternate;
}
.scn-helena-offers-cure .bg-chamber { position:absolute; inset:0; background: linear-gradient(180deg, #d0b080 0%, #b09060 100%); border-radius:0 0 30% 30%; }
.scn-helena-offers-cure .bed { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:80px; height:40px; background: linear-gradient(180deg, #705040 0%, #503020 100%); border-radius:20% 20% 50% 50%; box-shadow:0 6px 12px rgba(0,0,0,.3); animation: hoc-breath 6s ease-in-out infinite; }
.scn-helena-offers-cure .king-recumbent { position:absolute; bottom:22%; left:50%; transform:translateX(-50%); width:30px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; animation: hoc-breath 6s ease-in-out infinite; }
.scn-helena-offers-cure .helena-stand { position:absolute; bottom:28%; left:35%; width:20px; height:38px; background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: hoc-offer 8s ease-in-out infinite; }
.scn-helena-offers-cure .cure-flask { position:absolute; bottom:32%; left:38%; width:12px; height:18px; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius:30% 30% 20% 20%; box-shadow:0 0 12px 3px #c0a060; animation: hoc-glow 4s ease-in-out infinite; }
.scn-helena-offers-cure .warm-glow { position:absolute; bottom:20%; left:30%; width:60px; height:60px; background: radial-gradient(circle, #f0c060 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: hoc-pulse 8s ease-in-out infinite; }
.scn-helena-offers-cure .window-light { position:absolute; top:10%; left:60%; width:40px; height:50px; background: linear-gradient(180deg, #f0e0c0 0%, #e0c8a0 100%); border-radius:10% 10% 20% 20%; box-shadow: inset 0 0 10px rgba(255,200,100,.4); animation: hoc-window 10s ease-in-out infinite alternate; }
@keyframes hoc-amber { 0% { background-position:0% 0%; } 50% { background-position:50% 0%; } 100% { background-position:100% 0%; } }
@keyframes hoc-breath { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(1px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes hoc-offer { 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 hoc-glow { 0% { opacity:0.7; box-shadow:0 0 8px 2px #c0a060; } 50% { opacity:1; box-shadow:0 0 18px 6px #f0c060; } 100% { opacity:0.7; box-shadow:0 0 8px 2px #c0a060; } }
@keyframes hoc-pulse { 0% { transform: scale(0.9); opacity:0.6; } 50% { transform: scale(1.1); opacity:0.8; } 100% { transform: scale(0.9); opacity:0.6; } }
@keyframes hoc-window { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.6; } }

.scn-helena-persuades-king {
  background: linear-gradient(180deg, #c0a878 0%, #a88858 50%, #8a6840 100%),
              radial-gradient(ellipse at 50% 80%, #f0d8a8 0%, transparent 50%);
  animation: hpk-warm 18s ease-in-out infinite alternate;
}
.scn-helena-persuades-king .bg-throne { position:absolute; inset:0; background: linear-gradient(180deg, #d0b080 0%, #b09060 100%); border-radius:0 0 30% 30%; }
.scn-helena-persuades-king .pillar-left { position:absolute; top:0; left:10%; width:20px; height:100%; background: linear-gradient(180deg, #a88858 0%, #8a6840 100%); border-radius:10% 10% 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.2); animation: hpk-pillar 20s ease-in-out infinite; }
.scn-helena-persuades-king .pillar-right { position:absolute; top:0; right:10%; width:20px; height:100%; background: linear-gradient(180deg, #a88858 0%, #8a6840 100%); border-radius:10% 10% 0 0; box-shadow: 4px 0 8px rgba(0,0,0,.2); animation: hpk-pillar 20s ease-in-out infinite reverse; }
.scn-helena-persuades-king .king-seated { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:28px; height:42px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: hpk-throne 7s ease-in-out infinite; }
.scn-helena-persuades-king .helena-bow { position:absolute; bottom:24%; left:30%; width:20px; height:34px; background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hpk-bow 4s ease-in-out infinite; }
.scn-helena-persuades-king .royal-hand { position:absolute; bottom:30%; left:55%; width:12px; height:16px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 6px 2px #c0a060; animation: hpk-hand 6s ease-in-out infinite; }
.scn-helena-persuades-king .scroll-item { position:absolute; bottom:28%; left:22%; width:10px; height:14px; background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%); border-radius:10% 10% 30% 30%; transform: rotate(-15deg); animation: hpk-scroll 8s ease-in-out infinite; }
.scn-helena-persuades-king .light-beam { position:absolute; bottom:40%; left:50%; transform:translateX(-50%); width:30px; height:60px; background: linear-gradient(180deg, #f0d8a8 0%, transparent 100%); clip-path: polygon(30% 0, 70% 0, 100% 100%, 0% 100%); animation: hpk-beam 5s ease-in-out infinite alternate; }
@keyframes hpk-warm { 0% { background-position:0% 0%; } 50% { background-position:50% 0%; } 100% { background-position:100% 0%; } }
@keyframes hpk-pillar { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes hpk-throne { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(1.01) rotate(1deg); } 100% { transform: translateX(-50%) scale(1) rotate(0deg); } }
@keyframes hpk-bow { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(15deg) translateY(2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(15deg) translateY(2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes hpk-hand { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes hpk-scroll { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes hpk-beam { 0% { opacity:0.6; transform: translateX(-50%) scaleY(0.8); } 50% { opacity:1; transform: translateX(-50%) scaleY(1.1); } 100% { opacity:0.6; transform: translateX(-50%) scaleY(0.8); } }

/* parolles-confesses */
.scn-parolles-confesses {
  background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 40%, #1a0a2a 100%), radial-gradient(ellipse at 30% 40%, #5a4a6a 0%, transparent 60%);
}
.scn-parolles-confesses .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); }
.scn-parolles-confesses .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 20px, #6a5a4a 20px, #6a5a4a 40px); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-parolles-confesses .throne { position:absolute; bottom:30%; left:70%; width:60px; height:80px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 5px 5px 10px 10px; box-shadow: 0 5px 15px rgba(0,0,0,0.6); transform-origin: bottom center; animation: pc1-throne 8s ease-in-out infinite alternate; }
.scn-parolles-confesses .figure-seated { position:absolute; bottom:35%; left:72%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pc1-seated 10s ease-in-out infinite; }
.scn-parolles-confesses .figure-kneeling { position:absolute; bottom:28%; left:45%; width:25px; height:40px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pc1-kneel 6s ease-in-out infinite; }
.scn-parolles-confesses .ring { position:absolute; bottom:27%; left:48%; width:4px; height:4px; background: radial-gradient(circle, #d4a060 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 6px 2px #b08040; animation: pc1-ring 4s ease-in-out infinite; }
.scn-parolles-confesses .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, transparent 40%, rgba(0,0,0,0.4) 100%); pointer-events: none; animation: pc1-shadow 12s ease-in-out infinite alternate; }
.scn-parolles-confesses .light-beam { position:absolute; top:0; left:30%; width:40%; height:60%; background: linear-gradient(180deg, rgba(255,240,200,0.15) 0%, transparent 100%); clip-path: polygon(50% 0%, 30% 100%, 70% 100%); animation: pc1-beam 9s ease-in-out infinite alternate; }
@keyframes pc1-throne { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes pc1-seated { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes pc1-kneel { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pc1-ring { 0%,100% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.5); } }
@keyframes pc1-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes pc1-beam { 0% { opacity:0.1; } 50% { opacity:0.3; } 100% { opacity:0.15; } }

/* parolles-examined */
.scn-parolles-examined {
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 40%, #0a1a2a 100%), radial-gradient(ellipse at 60% 30%, #4a5a6a 0%, transparent 60%);
}
.scn-parolles-examined .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); }
.scn-parolles-examined .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #4a5a4a 0px, #4a5a4a 20px, #5a6a5a 20px, #5a6a5a 40px); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-parolles-examined .column-left { position:absolute; bottom:30%; left:15%; width:12px; height:70%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 3px; box-shadow: 2px 0 8px rgba(0,0,0,0.4); animation: pa2-col 14s ease-in-out infinite alternate; }
.scn-parolles-examined .throne { position:absolute; bottom:30%; right:20%; width:60px; height:80px; background: linear-gradient(180deg, #5a3a3a 0%, #3a2a2a 100%); border-radius: 5px 5px 10px 10px; box-shadow: 0 5px 15px rgba(0,0,0,0.6); transform-origin: bottom center; animation: pa2-throne 7s ease-in-out infinite alternate; }
.scn-parolles-examined .figure-lord { position:absolute; bottom:35%; right:22%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa2-lord 9s ease-in-out infinite; }
.scn-parolles-examined .figure-parolles { position:absolute; bottom:28%; left:40%; width:25px; height:40px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa2-stand 5s ease-in-out infinite; }
.scn-parolles-examined .figure-scribe { position:absolute; bottom:30%; left:10%; width:20px; height:35px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa2-scribe 11s ease-in-out infinite; }
.scn-parolles-examined .scroll { position:absolute; bottom:32%; left:12%; width:6px; height:8px; background: #b8a080; border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: pa2-scroll 6s ease-in-out infinite; }
@keyframes pa2-col { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes pa2-throne { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.02); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes pa2-lord { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pa2-stand { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pa2-scribe { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pa2-scroll { 0%,100% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } }

/* parolles-equivocates */
.scn-parolles-equivocates {
  background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 40%, #2a3a1a 100%), radial-gradient(ellipse at 50% 40%, #6a7a5a 0%, transparent 60%);
}
.scn-parolles-equivocates .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); }
.scn-parolles-equivocates .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #6a7a5a 0px, #6a7a5a 20px, #7a8a6a 20px, #7a8a6a 40px); box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); }
.scn-parolles-equivocates .drum { position:absolute; bottom:35%; left:50%; width:40px; height:40px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 50%; box-shadow: 0 4px 10px rgba(0,0,0,0.5); transform: translateX(-50%); animation: pa3-drum 4s ease-in-out infinite; }
.scn-parolles-equivocates .figure-parolles { position:absolute; bottom:28%; left:35%; width:25px; height:40px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa3-hop 3s ease-in-out infinite; }
.scn-parolles-equivocates .figure-orator { position:absolute; bottom:28%; left:65%; width:25px; height:40px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa3-hop 3s ease-in-out infinite reverse; }
.scn-parolles-equivocates .banner { position:absolute; top:10%; left:20%; width:40px; height:60px; background: linear-gradient(180deg, #c8a060 0%, #a08040 50%, #806020 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); transform-origin: top center; animation: pa3-banner 7s ease-in-out infinite alternate; }
.scn-parolles-equivocates .sparkle { position:absolute; top:20%; left:50%; width:6px; height:6px; background: #f0e0a0; border-radius: 50%; box-shadow: 0 0 8px 2px #f0e0a0; animation: pa3-spark 2s ease-in-out infinite; }
@keyframes pa3-drum { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 25% { transform: translateX(-50%) rotate(10deg) scale(1.05); } 50% { transform: translateX(-50%) rotate(0deg) scale(1); } 75% { transform: translateX(-50%) rotate(-10deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(0deg) scale(1); } }
@keyframes pa3-hop { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-6px) rotate(3deg); } 66% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pa3-banner { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.05); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes pa3-spark { 0%,100% { opacity:0.2; transform: scale(1); } 50% { opacity:1; transform: scale(1.8); } }

/* diana-asks-marriage */
.scn-diana-asks-marriage {
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 40%, #0a1a2a 100%), radial-gradient(ellipse at 30% 50%, #4a5a6a 0%, transparent 60%);
}
.scn-diana-asks-marriage .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); }
.scn-diana-asks-marriage .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #4a5a4a 0px, #4a5a4a 20px, #5a6a5a 20px, #5a6a5a 40px); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-diana-asks-marriage .altar { position:absolute; bottom:30%; left:50%; width:40px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 5px 15px rgba(0,0,0,0.6); transform: translateX(-50%); animation: da1-altar 12s ease-in-out infinite alternate; }
.scn-diana-asks-marriage .figure-diana { position:absolute; bottom:32%; left:40%; width:25px; height:45px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da1-diana 8s ease-in-out infinite; }
.scn-diana-asks-marriage .figure-bertram { position:absolute; bottom:32%; left:55%; width:25px; height:45px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da1-bertram 8s ease-in-out infinite reverse; }
.scn-diana-asks-marriage .contract { position:absolute; bottom:33%; left:48%; width:8px; height:10px; background: #b8a080; border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: da1-contract 5s ease-in-out infinite; }
.scn-diana-asks-marriage .candle { position:absolute; bottom:35%; left:45%; width:4px; height:20px; background: linear-gradient(180deg, #e0c0a0 0%, #b09070 100%); border-radius: 1px; animation: da1-candle 6s ease-in-out infinite; }
.scn-diana-asks-marriage .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, transparent 30%, rgba(0,0,0,0.5) 100%); pointer-events: none; animation: da1-shadow 15s ease-in-out infinite alternate; }
@keyframes da1-altar { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes da1-diana { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes da1-bertram { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes da1-contract { 0%,100% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.3); } }
@keyframes da1-candle { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.9; transform: scaleY(1); } }
@keyframes da1-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* parolles-unmasked – moonlit, funny */
.scn-parolles-unmasked {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 40%, #334155 100%),
              radial-gradient(ellipse at 50% 100%, #475569 0%, transparent 60%);
}
.scn-parolles-unmasked .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #0b1120 0%, transparent 100%); animation: pm-sky 12s ease-in-out infinite alternate; }
.scn-parolles-unmasked .moon { position:absolute; top:8%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #fef9c3 0%, #fde68a 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(254,249,195,.3); animation: pm-moon 20s linear infinite; }
.scn-parolles-unmasked .stars { position:absolute; top:10%; left:0; right:0; height:30%; background: radial-gradient(2px 2px at 20% 30%, #fff, transparent), radial-gradient(1px 1px at 50% 10%, #fff, transparent), radial-gradient(2px 2px at 85% 25%, #fff, transparent); animation: pm-stars 6s ease-in-out infinite alternate; }
.scn-parolles-unmasked .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); animation: pm-ground 8s ease-in-out infinite alternate; }
.scn-parolles-unmasked .parolles { position:absolute; bottom:30%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #334155 0%, #1e293b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -4px 0 8px rgba(0,0,0,.5); animation: pm-parolles 4s ease-in-out infinite; }
.scn-parolles-unmasked .blindfold { position:absolute; bottom:35%; left:38%; width:18px; height:8px; background: #64748b; border-radius: 20%; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: pm-blindfold 3s ease-in-out infinite alternate; }
.scn-parolles-unmasked .soldier-l { position:absolute; bottom:30%; left:25%; width:25px; height:65px; background: linear-gradient(180deg, #475569 0%, #1e293b 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: pm-soldier 5s ease-in-out infinite; }
.scn-parolles-unmasked .soldier-r { position:absolute; bottom:30%; right:25%; width:25px; height:65px; background: linear-gradient(180deg, #475569 0%, #1e293b 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: pm-soldier 5s ease-in-out infinite reverse; }
@keyframes pm-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pm-moon { 0% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(-8px) translateY(-4px) scale(1.02); } 100% { transform: translateX(0) translateY(0) scale(1); } }
@keyframes pm-stars { 0% { opacity:0.5; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.6; transform: scale(0.95); } }
@keyframes pm-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pm-parolles { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-3deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes pm-blindfold { 0% { transform: rotate(-10deg) translateX(0); opacity:0.8; } 50% { transform: rotate(0deg) translateX(2px); opacity:1; } 100% { transform: rotate(-10deg) translateX(0); opacity:0.8; } }
@keyframes pm-soldier { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* parolles-humbled – dark, moonlit */
.scn-parolles-humbled {
  background: linear-gradient(180deg, #0c0f1a 0%, #161b2b 40%, #222a3a 100%),
              radial-gradient(ellipse at 80% 100%, #2a3345 0%, transparent 60%);
}
.scn-parolles-humbled .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #080b14 0%, transparent 100%); animation: ph-sky 15s ease-in-out infinite alternate; }
.scn-parolles-humbled .moon { position:absolute; top:12%; right:20%; width:40px; height:40px; background: radial-gradient(circle at 30% 30%, #fef9c3 0%, #e2e8f0 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(226,232,240,.2); animation: ph-moon 25s linear infinite; }
.scn-parolles-humbled .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1f2e 0%, #0c0f1a 100%); border-radius: 20% 80% 0 0 / 30% 50% 0 0; box-shadow: inset 0 15px 40px rgba(0,0,0,.7); animation: ph-ground 10s ease-in-out infinite alternate; }
.scn-parolles-humbled .parolles { position:absolute; bottom:28%; left:45%; width:28px; height:55px; background: linear-gradient(180deg, #2a3345 0%, #161b2b 100%); border-radius: 50% 50% 45% 45% / 60% 60% 35% 35%; transform-origin: bottom center; box-shadow: -2px 0 6px rgba(0,0,0,.5); animation: ph-parolles 6s ease-in-out infinite; }
.scn-parolles-humbled .shadow { position:absolute; bottom:27%; left:42%; width:40px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); border-radius:50%; animation: ph-shadow 4s ease-in-out infinite alternate; }
.scn-parolles-humbled .chain { position:absolute; bottom:32%; left:46%; width:12px; height:20px; border: 2px solid #64748b; border-radius: 40%; background: transparent; box-shadow: 0 0 4px rgba(100,116,139,.5); animation: ph-chain 3s ease-in-out infinite; }
.scn-parolles-humbled .dust { position:absolute; bottom:30%; left:35%; width:4px; height:4px; background: #cbd5e1; border-radius:50%; box-shadow: 6px -2px 2px rgba(203,213,225,.3), -4px 4px 2px rgba(203,213,225,.2); animation: ph-dust 8s linear infinite; }
@keyframes ph-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes ph-moon { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-6px) scale(0.98); } 100% { transform: translateX(0) scale(1); } }
@keyframes ph-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ph-parolles { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-1px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes ph-shadow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(1); } }
@keyframes ph-chain { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ph-dust { 0% { transform: translate(0,0) rotate(0deg); opacity:0; } 50% { opacity:0.5; transform: translate(-8px, -6px) rotate(180deg); } 100% { transform: translate(-16px, -12px) rotate(360deg); opacity:0; } }

/* widows-house-helena-reveals-plan – warm, bright interior */
.scn-widows-house-helena-reveals-plan {
  background: linear-gradient(180deg, #f5e6c8 0%, #e3c79a 40%, #c9a46b 100%),
              radial-gradient(ellipse at 20% 80%, #f0dbb0 0%, transparent 70%);
}
.scn-widows-house-helena-reveals-plan .backwall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d9b785 0%, #f0dbb0 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.1); animation: wh-wall 12s ease-in-out infinite alternate; }
.scn-widows-house-helena-reveals-plan .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #c49a64 0%, #a67c4a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.2); animation: wh-floor 8s ease-in-out infinite alternate; }
.scn-widows-house-helena-reveals-plan .fireplace { position:absolute; bottom:35%; left:10%; width:80px; height:100px; background: linear-gradient(180deg, #6b4a2e 0%, #4a3320 100%); border-radius: 8px 8px 20px 20px; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.scn-widows-house-helena-reveals-plan .fireglow { position:absolute; bottom:40%; left:12%; width:60px; height:50px; background: radial-gradient(circle, #f59e0b 0%, #d97706 40%, transparent 75%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(245,158,11,.5); animation: wh-fire 3s ease-in-out infinite alternate; }
.scn-widows-house-helena-reveals-plan .table { position:absolute; bottom:30%; left:40%; width:100px; height:30px; background: linear-gradient(180deg, #4a3320 0%, #2d2012 100%); border-radius: 4px; transform: perspective(200px) rotateX(10deg); box-shadow: 0 6px 10px rgba(0,0,0,.3); animation: wh-table 10s ease-in-out infinite; }
.scn-widows-house-helena-reveals-plan .helena { position:absolute; bottom:30%; left:50%; width:28px; height:75px; background: linear-gradient(180deg, #7f5a3e 0%, #4a3320 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -2px 0 6px rgba(0,0,0,.3); animation: wh-helena 6s ease-in-out infinite; }
.scn-widows-house-helena-reveals-plan .widow { position:absolute; bottom:30%; left:35%; width:32px; height:70px; background: linear-gradient(180deg, #6b4a2e 0%, #3d2b1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -2px 0 6px rgba(0,0,0,.3); animation: wh-widow 7s ease-in-out infinite; }
.scn-widows-house-helena-reveals-plan .diana { position:absolute; bottom:30%; left:62%; width:26px; height:72px; background: linear-gradient(180deg, #8b6e4e 0%, #5a4020 100%); border-radius: 45% 55% 40% 40% / 55% 60% 35% 45%; transform-origin: bottom center; box-shadow: 2px 0 6px rgba(0,0,0,.3); animation: wh-diana 5s ease-in-out infinite; }
.scn-widows-house-helena-reveals-plan .window-light { position:absolute; top:20%; right:15%; width:30px; height:40px; background: radial-gradient(circle, #fef9c3 0%, transparent 70%); border-radius: 2px; box-shadow: 0 0 30px 10px rgba(254,249,195,.4); animation: wh-window 7s ease-in-out infinite alternate; }
@keyframes wh-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes wh-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes wh-fire { 0% { transform: scale(0.95) translateY(0); opacity:0.8; } 50% { transform: scale(1.1) translateY(-3px); opacity:1; } 100% { transform: scale(0.95) translateY(0); opacity:0.85; } }
@keyframes wh-table { 0% { transform: perspective(200px) rotateX(10deg) translateY(0); } 50% { transform: perspective(200px) rotateX(12deg) translateY(-1px); } 100% { transform: perspective(200px) rotateX(10deg) translateY(0); } }
@keyframes wh-helena { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wh-widow { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wh-diana { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wh-window { 0% { opacity:0.6; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(0.95); } }

/* diana-dower-promised – warm, bright interior */
.scn-diana-dower-promised {
  background: linear-gradient(180deg, #faf3e0 0%, #f0dbb0 40%, #e3c79a 100%),
              radial-gradient(ellipse at 50% 90%, #f5e6c8 0%, transparent 60%);
}
.scn-diana-dower-promised .room { position:absolute; inset:0; background: linear-gradient(180deg, #faf3e0 0%, #f0dbb0 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.08); animation: dd-room 15s ease-in-out infinite alternate; }
.scn-diana-dower-promised .window { position:absolute; top:15%; right:10%; width:40px; height:50px; background: radial-gradient(circle, #fef9c3 0%, transparent 60%); border-radius: 2px; box-shadow: 0 0 40px 15px rgba(254,249,195,.5); animation: dd-window 8s ease-in-out infinite alternate; }
.scn-diana-dower-promised .helena { position:absolute; bottom:25%; left:35%; width:30px; height:80px; background: linear-gradient(180deg, #7f5a3e 0%, #4a3320 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -2px 0 8px rgba(0,0,0,.2); animation: dd-helena 6s ease-in-out infinite; }
.scn-diana-dower-promised .diana { position:absolute; bottom:25%; right:35%; width:28px; height:78px; background: linear-gradient(180deg, #8b6e4e 0%, #5a4020 100%); border-radius: 45% 55% 40% 40% / 55% 60% 35% 45%; transform-origin: bottom center; box-shadow: 2px 0 8px rgba(0,0,0,.2); animation: dd-diana 5s ease-in-out infinite; }
.scn-diana-dower-promised .dower { position:absolute; bottom:35%; left:50%; width:16px; height:16px; background: radial-gradient(circle, #fbbf24 0%, #f59e0b 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(251,191,36,.7); animation: dd-dower 3s ease-in-out infinite alternate; }
.scn-diana-dower-promised .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #c49a64 0%, #a67c4a 100%); border-radius: 15% 15% 0 0 / 25% 25% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.15); animation: dd-ground 10s ease-in-out infinite alternate; }
.scn-diana-dower-promised .warm-glow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, rgba(251,191,36,.08) 0%, transparent 70%); animation: dd-glow 7s ease-in-out infinite alternate; }
@keyframes dd-room { 0% { opacity:0.95; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes dd-window { 0% { opacity:0.7; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes dd-helena { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dd-diana { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dd-dower { 0% { transform: scale(0.9) translateY(0); opacity:0.8; box-shadow: 0 0 20px 8px rgba(251,191,36,.5); } 50% { transform: scale(1.15) translateY(-3px); opacity:1; box-shadow: 0 0 40px 15px rgba(251,191,36,.8); } 100% { transform: scale(0.9) translateY(0); opacity:0.9; box-shadow: 0 0 25px 10px rgba(251,191,36,.6); } }
@keyframes dd-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes dd-glow { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }

/* king-accepts-bet – warm bright interior */
.scn-king-accepts-bet {
  background: linear-gradient(180deg, #f4d8a8 0%, #e0b87a 50%, #c89b6c 100%),
    radial-gradient(ellipse at 70% 40%, rgba(255,230,170,0.4) 0%, transparent 60%);
}
.scn-king-accepts-bet .bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #d4a05a 0%, #c28b4e 100%);
  animation: kab-bg 12s ease-in-out infinite alternate;
}
.scn-king-accepts-bet .window {
  position:absolute; top:8%; left:55%; width:32%; height:45%;
  background: radial-gradient(ellipse at 50% 30%, #b0d4f0 0%, #87b6d0 80%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 30px rgba(255,230,180,0.6);
  animation: kab-window 8s ease-in-out infinite alternate;
}
.scn-king-accepts-bet .sunbeam {
  position:absolute; top:8%; left:55%; width:45%; height:80%;
  background: linear-gradient(135deg, rgba(255,230,150,0.25) 0%, transparent 70%);
  transform: skewX(-15deg) translateX(-20%);
  animation: kab-sunbeam 6s ease-in-out infinite alternate;
}
.scn-king-accepts-bet .throne {
  position:absolute; bottom:18%; left:50%; width:120px; height:80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8862a 0%, #8b6914 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: kab-throne 4s ease-in-out infinite;
}
.scn-king-accepts-bet .king {
  position:absolute; bottom:22%; left:47%; width:50px; height:80px;
  background: linear-gradient(180deg, #2e1f14 0%, #1f1208 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kab-king 5s ease-in-out infinite;
}
.scn-king-accepts-bet .crown {
  position:absolute; bottom:72%; left:49%; width:24px; height:16px;
  background: linear-gradient(180deg, #f0d060 0%, #c89f30 100%);
  clip-path: polygon(0% 100%,20% 0%,40% 40%,60% 0%,80% 40%,100% 0%,100% 100%);
  animation: kab-crown 3s ease-in-out infinite alternate;
}
.scn-king-accepts-bet .floor {
  position:absolute; bottom:0; left:0; right:0; height:18%;
  background: linear-gradient(180deg, #9a7a4e 0%, #7a5a2e 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  animation: kab-floor 20s linear infinite;
}
@keyframes kab-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes kab-window { 0% { opacity:0.7; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.02) } 100% { opacity:0.75; transform:scaleY(1) } }
@keyframes kab-sunbeam { 0% { opacity:0.3; transform:skewX(-15deg) translateX(-20%) } 50% { opacity:0.6; transform:skewX(-12deg) translateX(-15%) } 100% { opacity:0.35; transform:skewX(-18deg) translateX(-25%) } }
@keyframes kab-throne { 0%,100% { transform:translateX(-50%) } 50% { transform:translateX(-50%) translateY(-2px) } }
@keyframes kab-king { 0%,100% { transform:translateX(0) rotate(0) } 25% { transform:translateX(1px) rotate(1deg) } 75% { transform:translateX(-1px) rotate(-1deg) } }
@keyframes kab-crown { 0% { transform:rotate(-2deg) } 50% { transform:rotate(0) } 100% { transform:rotate(2deg) } }
@keyframes kab-floor { 0% { background-position:0 0 } 100% { background-position:0 20px } }

/* rousillon-clown-again – funny bright interior */
.scn-rousillon-clown-again {
  background: linear-gradient(180deg, #ffe066 0%, #fbb03b 50%, #f28a2e 100%),
    radial-gradient(ellipse at 50% 0%, #fff3a8 0%, transparent 80%);
}
.scn-rousillon-clown-again .wall {
  position:absolute; inset:0 0 30% 0;
  background: repeating-linear-gradient(0deg, #c8823a 0px, #c8823a 4px, #b8782e 4px, #b8782e 8px);
  animation: rca-wall 30s linear infinite;
}
.scn-rousillon-clown-again .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-rousillon-clown-again .clown-body {
  position:absolute; bottom:28%; left:50%; width:60px; height:80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #9c27b0 0%, #6a1b9a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rca-body 0.8s ease-in-out infinite alternate;
}
.scn-rousillon-clown-again .clown-head {
  position:absolute; bottom:62%; left:50%; width:45px; height:45px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe0b2 0%, #ffb74d 100%);
  border-radius: 50%;
  animation: rca-head 1.2s ease-in-out infinite alternate;
}
.scn-rousillon-clown-again .arm-left {
  position:absolute; bottom:42%; left:38%; width:50px; height:8px;
  background: linear-gradient(90deg, #e65100 0%, #bf360c 100%);
  border-radius: 4px;
  transform-origin: 100% 50%;
  animation: rca-arm-left 0.6s ease-in-out infinite alternate;
}
.scn-rousillon-clown-again .arm-right {
  position:absolute; bottom:42%; right:38%; width:50px; height:8px;
  background: linear-gradient(90deg, #bf360c 0%, #e65100 100%);
  border-radius: 4px;
  transform-origin: 0% 50%;
  animation: rca-arm-right 0.6s ease-in-out infinite alternate;
}
.scn-rousillon-clown-again .bells {
  position:absolute; bottom:70%; left:42%; width:12px; height:12px;
  background: radial-gradient(circle, #ffd54f 0%, #ff8f00 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(255,143,0,0.6);
  animation: rca-bells 0.9s ease-in-out infinite alternate;
}
@keyframes rca-wall { 0% { background-position:0 0 } 100% { background-position:0 16px } }
@keyframes rca-body { 0% { transform:translateX(-50%) translateY(0) rotate(-2deg) } 100% { transform:translateX(-50%) translateY(-4px) rotate(2deg) } }
@keyframes rca-head { 0% { transform:translateX(-50%) rotate(-5deg) } 100% { transform:translateX(-50%) rotate(5deg) } }
@keyframes rca-arm-left { 0% { transform:rotate(-40deg) } 100% { transform:rotate(40deg) } }
@keyframes rca-arm-right { 0% { transform:rotate(40deg) } 100% { transform:rotate(-40deg) } }
@keyframes rca-bells { 0% { transform:translateY(0) scale(1) } 100% { transform:translateY(-6px) scale(1.2) } }

/* clown-answer-fitness – funny, stage close-up */
.scn-clown-answer-fitness {
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0d0f 50%, #2a080a 100%),
    radial-gradient(circle at 50% 30%, #7a2a2d 0%, transparent 70%);
}
.scn-clown-answer-fitness .curtain-bg {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(90deg, #4a1012 0%, #6a2022 20%, #4a1012 40%, #6a2022 60%, #4a1012 80%, #6a2022 100%);
  animation: caf-curtain 12s ease-in-out infinite alternate;
}
.scn-clown-answer-fitness .stage {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #6b4226 0%, #3e2414 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
}
.scn-clown-answer-fitness .clown-torso {
  position:absolute; bottom:20%; left:50%; width:70px; height:90px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #76ff03 0%, #64dd17 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: caf-torso 1.5s ease-in-out infinite alternate;
}
.scn-clown-answer-fitness .clown-hat {
  position:absolute; bottom:74%; left:50%; width:80px; height:30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1b5e20 0%, #0d3b10 100%);
  border-radius: 50% 50% 10% 10% / 70% 70% 10% 10%;
  animation: caf-hat 2s ease-in-out infinite;
}
.scn-clown-answer-fitness .scroll {
  position:absolute; bottom:42%; left:50%; width:120px; height:40px;
  transform: translateX(-50%) rotate(-5deg);
  background: linear-gradient(180deg, #fff3e0 0%, #ffe0b2 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: caf-scroll 3s ease-in-out infinite alternate;
}
.scn-clown-answer-fitness .hand-left {
  position:absolute; bottom:38%; left:35%; width:20px; height:25px;
  background: radial-gradient(circle, #ffcc80 0%, #ffa726 100%);
  border-radius: 50%;
  animation: caf-hand-left 1.2s ease-in-out infinite alternate;
}
.scn-clown-answer-fitness .hand-right {
  position:absolute; bottom:38%; right:30%; width:20px; height:25px;
  background: radial-gradient(circle, #ffcc80 0%, #ffa726 100%);
  border-radius: 50%;
  animation: caf-hand-right 1.2s ease-in-out infinite alternate;
}
@keyframes caf-curtain { 0% { opacity:0.8; transform:scaleX(1) } 50% { opacity:1; transform:scaleX(1.05) } 100% { opacity:0.85; transform:scaleX(0.95) } }
@keyframes caf-torso { 0% { transform:translateX(-50%) translateY(0) rotate(-2deg) } 100% { transform:translateX(-50%) translateY(-8px) rotate(2deg) } }
@keyframes caf-hat { 0%,100% { transform:translateX(-50%) rotate(-3deg) } 50% { transform:translateX(-50%) rotate(3deg) translateY(-2px) } }
@keyframes caf-scroll { 0% { transform:translateX(-50%) rotate(-5deg) scaleX(0.9) } 50% { transform:translateX(-50%) rotate(0deg) scaleX(1.1) } 100% { transform:translateX(-50%) rotate(5deg) scaleX(1) } }
@keyframes caf-hand-left { 0% { transform:translateX(0) rotate(0) } 100% { transform:translateX(-10px) rotate(-20deg) } }
@keyframes caf-hand-right { 0% { transform:translateX(0) rotate(0) } 100% { transform:translateX(10px) rotate(20deg) } }

/* countess-dismisses-clown – calm bright interior */
.scn-countess-dismisses-clown {
  background: linear-gradient(180deg, #e3d6c8 0%, #c9b8a0 50%, #a9957d 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
}
.scn-countess-dismisses-clown .interior-bg {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #d7c4b0 0%, #b8a48e 100%);
  animation: cdc-bg 20s ease-in-out infinite alternate;
}
.scn-countess-dismisses-clown .window {
  position:absolute; top:6%; left:10%; width:25%; height:40%;
  background: radial-gradient(ellipse at 50% 30%, #aecfdf 0%, #8bb3c7 80%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 20px rgba(255,240,200,0.4);
  animation: cdc-window 10s ease-in-out infinite alternate;
}
.scn-countess-dismisses-clown .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #8b6f4e 0%, #6b4f2e 100%);
  border-radius: 8% 8% 0 0 / 20% 20% 0 0;
}
.scn-countess-dismisses-clown .table {
  position:absolute; bottom:20%; left:55%; width:80px; height:30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-countess-dismisses-clown .letter {
  position:absolute; bottom:32%; left:55%; width:30px; height:20px;
  transform: translateX(-50%) rotate(-15deg);
  background: linear-gradient(180deg, #f5f0e0 0%, #dfd4b8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: cdc-letter 4s ease-in-out infinite alternate;
}
.scn-countess-dismisses-clown .countess {
  position:absolute; bottom:20%; left:30%; width:55px; height:90px;
  background: linear-gradient(180deg, #4a6fa5 0%, #2c4d7a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: cdc-countess 6s ease-in-out infinite;
}
.scn-countess-dismisses-clown .clown-fig {
  position:absolute; bottom:18%; left:62%; width:35px; height:65px;
  background: linear-gradient(180deg, #f0c068 0%, #c08a3e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cdc-clown 3s ease-in-out infinite alternate;
}
.scn-countess-dismisses-clown .shadow {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.1) 100%);
  animation: cdc-shadow 15s ease-in-out infinite alternate;
}
@keyframes cdc-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cdc-window { 0% { opacity:0.65; transform:scaleY(1) } 50% { opacity:0.9; transform:scaleY(1.01) } 100% { opacity:0.7; transform:scaleY(1) } }
@keyframes cdc-letter { 0% { transform:translateX(-50%) rotate(-15deg) translateY(0) } 100% { transform:translateX(-50%) rotate(-10deg) translateY(-2px) } }
@keyframes cdc-countess { 0%,100% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-2px) rotate(1deg) } }
@keyframes cdc-clown { 0% { transform:translateY(0) rotate(-2deg) } 100% { transform:translateY(-3px) rotate(2deg) } }
@keyframes cdc-shadow { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.4 } }

.scn-diana-accepts-role {
  background: 
    linear-gradient(135deg, #f5e6c8 0%, #b89a76 60%, #6a5a4a 100%),
    radial-gradient(ellipse at 20% 30%, rgba(255,255,200,0.4) 0%, transparent 70%);
}
.scn-diana-accepts-role .da-room { position:absolute; inset:0; background: inherit; }
.scn-diana-accepts-role .da-window {
  position:absolute; top:10%; left:15%; width:28%; height:35%;
  background: linear-gradient(180deg, #ffe0b0 0%, #ffdd99 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 0 40px 10px rgba(255,210,130,0.6);
  animation: da-window-glow 4s ease-in-out infinite alternate;
}
.scn-diana-accepts-role .da-light-shaft {
  position:absolute; top:10%; left:15%; width:30%; height:60%;
  background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: da-light-sway 6s ease-in-out infinite;
}
.scn-diana-accepts-role .da-figure {
  position:absolute; bottom:20%; left:50%; width:16%; height:45%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: da-figure-sway 5s ease-in-out infinite;
}
.scn-diana-accepts-role .da-shadow {
  position:absolute; bottom:15%; left:44%; width:22%; height:8%;
  background: rgba(20,15,10,0.5); border-radius: 50%;
  filter: blur(8px);
  animation: da-shadow-move 5s ease-in-out infinite;
}
.scn-diana-accepts-role .da-table {
  position:absolute; bottom:22%; left:35%; width:30%; height:4%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-diana-accepts-role .da-hand {
  position:absolute; bottom:28%; left:40%; width:4%; height:6%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30%;
  animation: da-hand-reach 4s ease-in-out infinite;
}
@keyframes da-window-glow { 0% { opacity:0.9; box-shadow:0 0 20px #ffd080; } 50% { opacity:1; box-shadow:0 0 40px #ffe0a0; } 100% { opacity:0.85; box-shadow:0 0 20px #ffd080; } }
@keyframes da-light-sway { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes da-figure-sway { 0% { transform: translateY(0) rotate(0); } 40% { transform: translateY(-2px) rotate(2deg); } 80% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes da-shadow-move { 0% { transform: translateX(0); opacity:0.5; } 50% { transform: translateX(4px); opacity:0.4; } 100% { transform: translateX(0); opacity:0.5; } }
@keyframes da-hand-reach { 0% { transform: translateX(0) translateY(0); } 40% { transform: translateX(8px) translateY(-4px); } 70% { transform: translateX(4px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }

.scn-rousillon-countess-lafeu {
  background: 
    linear-gradient(180deg, #f2d9b3 0%, #c49a6c 50%, #8a6a4a 100%),
    radial-gradient(ellipse at 80% 20%, rgba(255,230,180,0.5) 0%, transparent 60%);
}
.scn-rousillon-countess-lafeu .rc-back { position:absolute; inset:0; background: inherit; }
.scn-rousillon-countess-lafeu .rc-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3a2a 100%);
  border-radius: 30% 0 0 0;
}
.scn-rousillon-countess-lafeu .rc-window {
  position:absolute; top:12%; right:18%; width:22%; height:30%;
  background: linear-gradient(180deg, #ffe8c0 0%, #ffdd99 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: 0 0 30px 8px rgba(255,210,130,0.5);
  animation: rc-warmpulse 6s ease-in-out infinite alternate;
}
.scn-rousillon-countess-lafeu .rc-countess {
  position:absolute; bottom:25%; left:30%; width:14%; height:40%;
  background: linear-gradient(180deg, #28445e 0%, #1a2d3f 60%, #0e1a24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rc-nod 8s ease-in-out infinite;
}
.scn-rousillon-countess-lafeu .rc-lafeu {
  position:absolute; bottom:25%; right:25%; width:12%; height:45%;
  background: linear-gradient(180deg, #3e4a3a 0%, #2a3a2a 60%, #1a2a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: rc-bow 10s ease-in-out infinite;
}
.scn-rousillon-countess-lafeu .rc-cushion {
  position:absolute; bottom:28%; left:28%; width:18%; height:6%;
  background: linear-gradient(180deg, #9a6a3a 0%, #7a4a2a 100%);
  border-radius: 40% 40% 20% 20%;
}
.scn-rousillon-countess-lafeu .rc-ornament {
  position:absolute; top:6%; left:6%; width:8%; height:12%;
  background: radial-gradient(circle, #c08040 0%, #806030 100%);
  border-radius: 50%; box-shadow: 0 0 10px rgba(192,128,64,0.5);
  animation: rc-ornament-sway 5s ease-in-out infinite;
}
@keyframes rc-warmpulse { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes rc-nod { 0% { transform: rotate(-1deg); } 30% { transform: rotate(0); } 60% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes rc-bow { 0% { transform: translateY(0); } 40% { transform: translateY(-2px); } 80% { transform: translateY(0); } 100% { transform: translateY(0); } }
@keyframes rc-ornament-sway { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

.scn-countess-laments-helena {
  background: 
    linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 40%, #1a2a3a 100%),
    radial-gradient(ellipse at 70% 20%, rgba(180,200,220,0.3) 0%, transparent 60%);
}
.scn-countess-laments-helena .cl-wall { position:absolute; inset:0; background: inherit; }
.scn-countess-laments-helena .cl-window {
  position:absolute; top:15%; right:10%; width:20%; height:25%;
  background: linear-gradient(180deg, #a0b8c8 0%, #809aa8 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: 0 0 30px 8px rgba(160,184,200,0.4);
  animation: cl-coldpulse 5s ease-in-out infinite alternate;
}
.scn-countess-laments-helena .cl-figure {
  position:absolute; bottom:20%; left:40%; width:16%; height:50%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 60%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cl-figure-shake 7s ease-in-out infinite;
}
.scn-countess-laments-helena .cl-chair {
  position:absolute; bottom:18%; left:38%; width:20%; height:15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-countess-laments-helena .cl-rosary {
  position:absolute; bottom:25%; left:55%; width:2%; height:16%;
  background: linear-gradient(180deg, #988060 0%, #5a4a3a 100%);
  border-radius: 20%; transform-origin: top center;
  animation: cl-rosary-sway 6s ease-in-out infinite;
}
.scn-countess-laments-helena .cl-shadow {
  position:absolute; bottom:15%; left:35%; width:30%; height:6%;
  background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(10px);
  animation: cl-shadow-fade 7s ease-in-out infinite;
}
.scn-countess-laments-helena .cl-dust {
  position:absolute; top:25%; left:20%; width:8%; height:8%;
  background: radial-gradient(circle, rgba(200,200,220,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: cl-dust-drift 20s linear infinite;
}
@keyframes cl-coldpulse { 0% { opacity:0.8; box-shadow:0 0 20px #8faabc; } 50% { opacity:1; box-shadow:0 0 40px #b0c4d8; } 100% { opacity:0.7; box-shadow:0 0 20px #8faabc; } }
@keyframes cl-figure-shake { 0% { transform: translateY(0) rotate(0); } 20% { transform: translateY(-2px) rotate(1deg); } 40% { transform: translateY(0) rotate(-1deg); } 60% { transform: translateY(-1px) rotate(0); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cl-rosary-sway { 0% { transform: rotate(-8deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-8deg); } }
@keyframes cl-shadow-fade { 0% { opacity:0.4; transform: scaleX(1); } 50% { opacity:0.3; transform: scaleX(1.1); } 100% { opacity:0.4; transform: scaleX(1); } }
@keyframes cl-dust-drift { 0% { transform: translateX(0); opacity:0.2; } 50% { transform: translateX(40px); opacity:0.5; } 100% { transform: translateX(0); opacity:0.2; } }

.scn-clown-nose-herbs-banter {
  background: 
    radial-gradient(circle at 30% 50%, #f0c040 0%, #e88030 40%, #a05020 100%),
    linear-gradient(135deg, #fad680 0%, #d09040 100%);
}
.scn-clown-nose-herbs-banter .cn-bg { position:absolute; inset:0; background: inherit; }
.scn-clown-nose-herbs-banter .cn-head {
  position:absolute; bottom:20%; left:25%; width:40%; height:45%;
  background: linear-gradient(180deg, #f0c080 0%, #e0a060 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
}
.scn-clown-nose-herbs-banter .cn-nose {
  position:absolute; bottom:30%; left:48%; width:12%; height:12%;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius: 50%;
  animation: cn-nose-wobble 2s ease-in-out infinite;
}
.scn-clown-nose-herbs-banter .cn-hat {
  position:absolute; top:5%; left:30%; width:30%; height:20%;
  background: linear-gradient(180deg, #8040c0 0%, #5a2a8a 100%);
  border-radius: 40% 40% 0 0;
  transform-origin: bottom center;
  animation: cn-hat-bounce 3s ease-in-out infinite;
}
.scn-clown-nose-herbs-banter .cn-herbs {
  position:absolute; bottom:20%; right:20%; width:18%; height:20%;
  background: linear-gradient(180deg, #60a040 0%, #408020 100%);
  border-radius: 40% 40% 30% 30%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  transform-origin: bottom center;
  animation: cn-herbs-sway 4s ease-in-out infinite;
}
.scn-clown-nose-herbs-banter .cn-sparkle1 {
  position:absolute; top:30%; left:10%; width:5%; height:5%;
  background: radial-gradient(circle, #fff8d0 0%, #ffe080 100%);
  border-radius: 50%; box-shadow: 0 0 10px #ffe080;
  animation: cn-sparkle 2.5s ease-in-out infinite;
  animation-delay: 0s;
}
.scn-clown-nose-herbs-banter .cn-sparkle2 {
  position:absolute; top:40%; left:75%; width:4%; height:4%;
  background: radial-gradient(circle, #fff8d0 0%, #ffe080 100%);
  border-radius: 50%; box-shadow: 0 0 8px #ffe080;
  animation: cn-sparkle 3.2s ease-in-out infinite;
  animation-delay: 1s;
}
@keyframes cn-nose-wobble { 0% { transform: scale(1) rotate(0); } 25% { transform: scale(1.2) rotate(-10deg); } 50% { transform: scale(1) rotate(0); } 75% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes cn-hat-bounce { 0% { transform: translateY(0); } 20% { transform: translateY(-15px); } 40% { transform: translateY(0); } 60% { transform: translateY(-8px); } 80% { transform: translateY(0); } 100% { transform: translateY(0); } }
@keyframes cn-herbs-sway { 0% { transform: rotate(0); } 40% { transform: rotate(20deg); } 80% { transform: rotate(-15deg); } 100% { transform: rotate(0); } }
@keyframes cn-sparkle { 0% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0; transform: scale(0.5); } }

/* one block per scene id. Append to style.css. */
.scn-diana-negotiates-ring { background: linear-gradient(180deg, #1a0e06 0%, #2a180a 40%, #0d0500 100%), radial-gradient(ellipse at 50% 100%, #3a2210 0%, transparent 70%); }
.scn-diana-negotiates-ring .wall { position:absolute; inset:0 0 35% 0; background:linear-gradient(180deg,#2a180a 0%,#0d0500 100%); animation:dn-wall 12s ease-in-out infinite alternate; }
.scn-diana-negotiates-ring .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(0deg,#1a0e06 0%,#2a1a0a 100%); }
.scn-diana-negotiates-ring .table { position:absolute; bottom:28%; left:30%; width:40%; height:6%; background:linear-gradient(180deg,#4a3018,#2a180a); border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,.6); animation:dn-table 6s ease-in-out infinite; }
.scn-diana-negotiates-ring .candle { position:absolute; bottom:38%; left:50%; width:6px; height:36px; margin-left:-3px; background:linear-gradient(180deg,#ffdd90 0%,#a06a20 100%); border-radius:2px; box-shadow:0 0 16px 6px rgba(255,200,100,.5); animation:dn-candle 3s ease-in-out infinite alternate; }
.scn-diana-negotiates-ring .figure-left { position:absolute; bottom:20%; left:22%; width:60px; height:110px; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:dn-figL 4s ease-in-out infinite; }
.scn-diana-negotiates-ring .figure-right { position:absolute; bottom:20%; right:22%; width:55px; height:105px; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:dn-figR 4s ease-in-out infinite; }
.scn-diana-negotiates-ring .ring { position:absolute; bottom:36%; left:48%; width:18px; height:18px; border-radius:50%; border:3px solid #c0a070; background:transparent; box-shadow:0 0 10px 3px rgba(192,160,112,.6); animation:dn-ring 2s ease-in-out infinite alternate; }
.scn-diana-negotiates-ring .shadow { position:absolute; bottom:10%; left:20%; width:60%; height:8%; background:radial-gradient(ellipse,rgba(0,0,0,.5),transparent); animation:dn-shadow 4s ease-in-out infinite; }
@keyframes dn-wall { 0%{opacity:.7} 100%{opacity:1} }
@keyframes dn-table { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes dn-candle { 0%{opacity:.8;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(1.03)} 100%{opacity:.85;transform:scaleY(.97)} }
@keyframes dn-figL { 0%{transform:translateX(0) rotate(0)} 50%{transform:translateX(4px) rotate(-2deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes dn-figR { 0%{transform:translateX(0) rotate(0)} 50%{transform:translateX(-4px) rotate(2deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes dn-ring { 0%{transform:scale(1) translateY(0);box-shadow:0 0 8px 2px rgba(192,160,112,.4)} 100%{transform:scale(1.08) translateY(-2px);box-shadow:0 0 16px 5px rgba(192,160,112,.7)} }
@keyframes dn-shadow { 0%{opacity:.3;transform:translateX(8px)} 50%{opacity:.15;transform:translateX(4px)} 100%{opacity:.3;transform:translateX(8px)} }

.scn-bertrams-ring-reluctance { background: linear-gradient(180deg, #1a0e06 0%, #2a180a 60%, #0d0500 100%), radial-gradient(ellipse at 50% 100%, #3a2210 0%, transparent 80%); }
.scn-bertrams-ring-reluctance .wall { position:absolute; inset:0 0 35% 0; background:linear-gradient(180deg,#2a180a 0%,#0d0500 100%); animation:br-wall 10s ease-in-out infinite alternate; }
.scn-bertrams-ring-reluctance .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(0deg,#1a0e06 0%,#2a1a0a 100%); }
.scn-bertrams-ring-reluctance .table { position:absolute; bottom:28%; left:30%; width:40%; height:6%; background:linear-gradient(180deg,#4a3018,#2a180a); border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,.6); animation:br-table 5s ease-in-out infinite; }
.scn-bertrams-ring-reluctance .candle { position:absolute; bottom:38%; left:45%; width:6px; height:36px; margin-left:-3px; background:linear-gradient(180deg,#ffdd90 0%,#a06a20 100%); border-radius:2px; box-shadow:0 0 16px 6px rgba(255,200,100,.5); animation:br-candle 3s ease-in-out infinite alternate; }
.scn-bertrams-ring-reluctance .figure { position:absolute; bottom:20%; left:28%; width:55px; height:110px; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:br-figure 4s ease-in-out infinite; }
.scn-bertrams-ring-reluctance .hand { position:absolute; bottom:32%; left:55%; width:40px; height:28px; background:linear-gradient(135deg,#3a2010,#1a0a00); border-radius:60% 40% 30% 50%; transform:rotate(-15deg); transform-origin:right center; animation:br-hand 3s ease-in-out infinite alternate; }
.scn-bertrams-ring-reluctance .ring { position:absolute; bottom:34%; left:57%; width:16px; height:16px; border-radius:50%; border:3px solid #b89050; background:transparent; box-shadow:0 0 10px 3px rgba(184,144,80,.6); animation:br-ring 2s ease-in-out infinite alternate; }
.scn-bertrams-ring-reluctance .shadow { position:absolute; bottom:10%; left:15%; width:70%; height:10%; background:radial-gradient(ellipse,rgba(0,0,0,.5),transparent); animation:br-shadow 4s ease-in-out infinite; }
@keyframes br-wall { 0%{opacity:.8} 100%{opacity:1} }
@keyframes br-table { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-1px)} }
@keyframes br-candle { 0%{opacity:.85;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(1.02)} 100%{opacity:.9;transform:scaleY(.98)} }
@keyframes br-figure { 0%{transform:translateX(0) rotate(0)} 50%{transform:translateX(-3px) rotate(1deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes br-hand { 0%{transform:rotate(-15deg) translateX(0)} 50%{transform:rotate(-10deg) translateX(-2px)} 100%{transform:rotate(-15deg) translateX(0)} }
@keyframes br-ring { 0%{transform:scale(1) translateY(0);box-shadow:0 0 8px 2px rgba(184,144,80,.4)} 100%{transform:scale(1.05) translateY(-1px);box-shadow:0 0 14px 4px rgba(184,144,80,.7)} }
@keyframes br-shadow { 0%{opacity:.4;transform:translateX(5px)} 50%{opacity:.2;transform:translateX(2px)} 100%{opacity:.4;transform:translateX(5px)} }

.scn-diana-gains-ring { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #0a0a1a 100%), radial-gradient(ellipse at 70% 100%, #2a2a5a 0%, transparent 60%); }
.scn-diana-gains-ring .wall { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg,#1a1a3a 0%,#0a0a1a 100%); animation:dg-wall 15s ease-in-out infinite alternate; }
.scn-diana-gains-ring .window { position:absolute; top:15%; left:65%; width:80px; height:120px; background:linear-gradient(180deg,#4a4a7a 0%,#2a2a5a 100%); border:6px solid #2a1a10; box-shadow:inset 0 0 30px rgba(100,100,200,.2); animation:dg-window 8s ease-in-out infinite; }
.scn-diana-gains-ring .moonbeam { position:absolute; top:20%; left:68%; width:60px; height:300px; background:linear-gradient(180deg,rgba(200,200,255,.15) 0%,rgba(200,200,255,.05) 100%); transform:rotate(10deg); transform-origin:top left; filter:blur(4px); animation:dg-beam 12s ease-in-out infinite alternate; }
.scn-diana-gains-ring .figure { position:absolute; bottom:15%; left:40%; width:55px; height:120px; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:dg-figure 5s ease-in-out infinite; }
.scn-diana-gains-ring .hand { position:absolute; bottom:30%; left:38%; width:35px; height:25px; background:linear-gradient(135deg,#2a1a0a,#1a0a00); border-radius:50% 40% 30% 50%; transform:rotate(5deg); transform-origin:left center; animation:dg-hand 3s ease-in-out infinite alternate; }
.scn-diana-gains-ring .ring { position:absolute; bottom:33%; left:37%; width:18px; height:18px; border-radius:50%; border:3px solid #c0a070; background:transparent; box-shadow:0 0 12px 4px rgba(192,160,112,.7); animation:dg-ring 2s ease-in-out infinite alternate; }
.scn-diana-gains-ring .curtain { position:absolute; top:12%; left:62%; width:100px; height:180px; background:linear-gradient(180deg,#3a1a1a 0%,#1a0a0a 100%); border-radius:10% / 20%; box-shadow:0 0 20px rgba(0,0,0,.5); animation:dg-curtain 9s ease-in-out infinite; }
.scn-diana-gains-ring .shadow { position:absolute; bottom:8%; left:35%; width:50%; height:10%; background:radial-gradient(ellipse,rgba(0,0,0,.6),transparent); animation:dg-shadow 4s ease-in-out infinite; }
@keyframes dg-wall { 0%{opacity:.7} 50%{opacity:.9} 100%{opacity:.75} }
@keyframes dg-window { 0%,100%{opacity:.8} 50%{opacity:1} }
@keyframes dg-beam { 0%{opacity:.3;transform:rotate(10deg) scaleX(1)} 50%{opacity:.5;transform:rotate(12deg) scaleX(1.05)} 100%{opacity:.2;transform:rotate(8deg) scaleX(.95)} }
@keyframes dg-figure { 0%{transform:translateX(0) rotate(0)} 50%{transform:translateX(-3px) rotate(2deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes dg-hand { 0%{transform:rotate(5deg) translateY(0)} 50%{transform:rotate(8deg) translateY(-2px)} 100%{transform:rotate(5deg) translateY(0)} }
@keyframes dg-ring { 0%{transform:scale(1) translateY(0);box-shadow:0 0 10px 3px rgba(192,160,112,.5)} 100%{transform:scale(1.1) translateY(-2px);box-shadow:0 0 20px 6px rgba(192,160,112,.8)} }
@keyframes dg-curtain { 0%{transform:scaleX(1)} 50%{transform:scaleX(1.02)} 100%{transform:scaleX(1)} }
@keyframes dg-shadow { 0%{opacity:.4;transform:translateX(5px)} 50%{opacity:.2;transform:translateX(2px)} 100%{opacity:.4;transform:translateX(5px)} }

.scn-diana-soliloquy-plot { background: linear-gradient(180deg, #1a0e06 0%, #0d0500 40%, #1a0e06 100%), radial-gradient(ellipse at 50% 30%, #3a2010 0%, transparent 70%); }
.scn-diana-soliloquy-plot .wall { position:absolute; inset:0 0 35% 0; background:linear-gradient(180deg,#1a0e06 0%,#0d0500 100%); animation:ds-wall 14s ease-in-out infinite alternate; }
.scn-diana-soliloquy-plot .desk { position:absolute; bottom:20%; left:25%; width:50%; height:8%; background:linear-gradient(180deg,#4a3018,#2a180a); border-radius:2px; box-shadow:0 4px 10px rgba(0,0,0,.6); animation:ds-desk 5s ease-in-out infinite; }
.scn-diana-soliloquy-plot .candle { position:absolute; bottom:38%; left:50%; width:6px; height:36px; margin-left:-3px; background:linear-gradient(180deg,#ffdd90 0%,#a06a20 100%); border-radius:2px; box-shadow:0 0 16px 6px rgba(255,200,100,.5); animation:ds-candle 3s ease-in-out infinite alternate; }
.scn-diana-soliloquy-plot .figure { position:absolute; bottom:15%; left:35%; width:55px; height:120px; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:ds-figure 4s ease-in-out infinite; }
.scn-diana-soliloquy-plot .hands { position:absolute; bottom:22%; left:40%; width:30px; height:20px; background:linear-gradient(135deg,#2a1a0a,#1a0a00); border-radius:50% 40% 30% 50%; transform:rotate(10deg); animation:ds-hands 3s ease-in-out infinite alternate; }
.scn-diana-soliloquy-plot .paper { position:absolute; bottom:24%; left:45%; width:60px; height:40px; background:linear-gradient(135deg,#4a3a2a,#3a2a1a); border:1px solid #5a4a3a; transform:rotate(-5deg); animation:ds-paper 6s ease-in-out infinite; }
.scn-diana-soliloquy-plot .shadow { position:absolute; bottom:8%; left:30%; width:40%; height:10%; background:radial-gradient(ellipse,rgba(0,0,0,.5),transparent); animation:ds-shadow 4s ease-in-out infinite; }
@keyframes ds-wall { 0%{opacity:.7} 100%{opacity:1} }
@keyframes ds-desk { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes ds-candle { 0%{opacity:.8;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(1.03)} 100%{opacity:.85;transform:scaleY(.97)} }
@keyframes ds-figure { 0%{transform:translateX(0) rotate(0)} 50%{transform:translateX(-2px) rotate(1deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes ds-hands { 0%{transform:rotate(10deg) translateX(0)} 50%{transform:rotate(15deg) translateX(-2px)} 100%{transform:rotate(10deg) translateX(0)} }
@keyframes ds-paper { 0%,100%{transform:rotate(-5deg) translateY(0)} 50%{transform:rotate(-3deg) translateY(-3px)} }
@keyframes ds-shadow { 0%{opacity:.3;transform:translateX(3px)} 50%{opacity:.15;transform:translateX(0)} 100%{opacity:.3;transform:translateX(3px)} }

.scn-helena-bertram-parting {
  background: linear-gradient(180deg, #fefae0 0%, #faedcd 50%, #d4a373 100%), radial-gradient(ellipse at 50% 30%, rgba(255,255,255,.8) 0%, transparent 70%);
}
.scn-helena-bertram-parting .window {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%); width: 110px; height: 150px; border: 6px solid #8b6f47; border-radius: 4px; background: linear-gradient(180deg, #a8dadc 0%, #457b9d 100%); box-shadow: inset 0 0 30px rgba(255,255,240,.3); animation: hbp-glow 6s ease-in-out infinite alternate;
}
.scn-helena-bertram-parting .lightbeam {
  position: absolute; top: 20%; left: 42%; width: 160px; height: 60px; transform: rotate(-10deg); background: linear-gradient(90deg, rgba(255,255,240,.5) 0%, transparent 100%); filter: blur(4px); animation: hbp-light 8s ease-in-out infinite alternate;
}
.scn-helena-bertram-parting .figure-left {
  position: absolute; bottom: 22%; left: 35%; width: 28px; height: 80px; background: #3a2a1a; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: hbp-walk 5s ease-in-out infinite;
}
.scn-helena-bertram-parting .figure-right {
  position: absolute; bottom: 18%; left: 55%; width: 32px; height: 90px; background: #2e1f12; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: hbp-breathe 4s ease-in-out infinite alternate;
}
.scn-helena-bertram-parting .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #c4a882 0%, #9a7b5a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.15);
}
.scn-helena-bertram-parting .curtain-left {
  position: absolute; top: 0; left: 0; width: 60px; height: 100%; background: linear-gradient(180deg, #5e1a1d 0%, #8b2f3a 50%, #5e1a1d 100%); transform-origin: left top; animation: hbp-sway 7s ease-in-out infinite alternate;
}
.scn-helena-bertram-parting .curtain-right {
  position: absolute; top: 0; right: 0; width: 60px; height: 100%; background: linear-gradient(180deg, #5e1a1d 0%, #8b2f3a 50%, #5e1a1d 100%); transform-origin: right top; animation: hbp-sway 7s ease-in-out infinite alternate-reverse;
}
@keyframes hbp-glow { 0% { box-shadow: inset 0 0 20px rgba(255,255,240,.2); } 50% { box-shadow: inset 0 0 40px rgba(255,255,240,.5); } 100% { box-shadow: inset 0 0 20px rgba(255,255,240,.2); } }
@keyframes hbp-light { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes hbp-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(12px) translateY(-3px) rotate(2deg); } 50% { transform: translateX(24px) translateY(-1px) rotate(-1deg); } 75% { transform: translateX(36px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(48px) translateY(0) rotate(0); } }
@keyframes hbp-breathe { 0% { transform: translateY(0) scaleY(1); } 100% { transform: translateY(-3px) scaleY(1.01); } }
@keyframes hbp-sway { 0% { transform: rotate(0); } 50% { transform: rotate(-4deg); } 100% { transform: rotate(0); } }

.scn-scene-i-florence-duke {
  background: linear-gradient(180deg, #e0d8c0 0%, #c4b8a0 40%, #a8967a 100%), radial-gradient(ellipse at 50% 10%, #ffffff 0%, transparent 60%);
}
.scn-scene-i-florence-duke .throne-back {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%); width: 160px; height: 120px; background: radial-gradient(ellipse at 50% 100%, #b8860b 0%, #4a1a2c 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; animation: fid-throne 10s ease-in-out infinite alternate;
}
.scn-scene-i-florence-duke .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 12px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: fid-shadow 12s ease-in-out infinite;
}
.scn-scene-i-florence-duke .figure-king {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%); width: 44px; height: 120px; background: #2a1a0a; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: fid-nod 6s ease-in-out infinite;
}
.scn-scene-i-florence-duke .figure-advisor-left {
  position: absolute; bottom: 22%; left: 28%; width: 30px; height: 90px; background: #3a2a1a; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: fid-bow 8s ease-in-out infinite;
}
.scn-scene-i-florence-duke .figure-advisor-right {
  position: absolute; bottom: 22%; right: 28%; width: 30px; height: 90px; background: #3a2a1a; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: fid-bow 8s ease-in-out infinite 2s;
}
.scn-scene-i-florence-duke .chandelier {
  position: absolute; top: 2%; left: 48%; width: 40px; height: 50px; background: radial-gradient(ellipse at 50% 0%, #d4a373 0%, #b8860b 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: 0 0 30px 8px rgba(212,163,115,.4); animation: fid-chandelier 5s ease-in-out infinite alternate;
}
@keyframes fid-throne { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes fid-shadow { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fid-nod { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(4deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes fid-bow { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(6deg) translateY(4px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes fid-chandelier { 0% { box-shadow: 0 0 20px 5px rgba(212,163,115,.3); } 50% { box-shadow: 0 0 40px 12px rgba(212,163,115,.6); } 100% { box-shadow: 0 0 20px 5px rgba(212,163,115,.3); } }

.scn-scene-ii-roussillon {
  background: linear-gradient(180deg, #fdf6e3 0%, #e8dcc8 40%, #c4b698 100%), radial-gradient(ellipse at 30% 40%, #ffffff 0%, transparent 60%);
}
.scn-scene-ii-roussillon .countess {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 110px; background: #3a2a1a; border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%; animation: s2r-tap 5s ease-in-out infinite;
}
.scn-scene-ii-roussillon .clown {
  position: absolute; bottom: 20%; left: 55%; width: 32px; height: 100px; background: #4a3a2a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s2r-bow 7s ease-in-out infinite;
}
.scn-scene-ii-roussillon .window {
  position: absolute; top: 12%; right: 10%; width: 100px; height: 130px; border: 6px solid #8b6f47; border-radius: 4px; background: linear-gradient(180deg, #a8dadc 0%, #457b9d 100%); box-shadow: inset 0 0 20px rgba(255,255,240,.2); animation: s2r-glint 8s ease-in-out infinite alternate;
}
.scn-scene-ii-roussillon .chair {
  position: absolute; bottom: 18%; left: 28%; width: 40px; height: 50px; background: #5e3a1a; border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; animation: s2r-creak 10s ease-in-out infinite;
}
.scn-scene-ii-roussillon .boot {
  position: absolute; bottom: 18%; left: 58%; width: 18px; height: 24px; background: #2a1a0a; border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; animation: s2r-boot-shift 6s ease-in-out infinite;
}
.scn-scene-ii-roussillon .curtain {
  position: absolute; top: 0; right: 0; width: 50px; height: 100%; background: linear-gradient(180deg, #5e1a1d 0%, #8b2f3a 50%, #5e1a1d 100%); transform-origin: right top; animation: s2r-curtain 9s ease-in-out infinite alternate;
}
.scn-scene-ii-roussillon .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%; background: linear-gradient(180deg, #c4a882 0%, #9a7b5a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.1);
}
@keyframes s2r-tap { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes s2r-bow { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(8deg) translateY(3px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes s2r-glint { 0% { box-shadow: inset 0 0 15px rgba(255,255,240,.15); } 50% { box-shadow: inset 0 0 30px rgba(255,255,240,.4); } 100% { box-shadow: inset 0 0 15px rgba(255,255,240,.15); } }
@keyframes s2r-creak { 0% { transform: rotate(0); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0); } }
@keyframes s2r-boot-shift { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes s2r-curtain { 0% { transform: skew(0); } 50% { transform: skew(2deg); } 100% { transform: skew(0); } }

.scn-helena-soliloquy-departure {
  background: linear-gradient(180deg, #0b132b 0%, #1c2541 30%, #3a506b 100%), radial-gradient(ellipse at 50% 70%, #d4a373 0%, transparent 70%);
}
.scn-helena-soliloquy-departure .helena {
  position: absolute; bottom: 20%; left: 38%; width: 36px; height: 110px; background: #1a1a2e; border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%; animation: hsd-tremble 2s ease-in-out infinite;
}
.scn-helena-soliloquy-departure .candle {
  position: absolute; bottom: 35%; left: 58%; width: 8px; height: 40px; background: linear-gradient(180deg, #ffffff 0%, #f4d03f 40%, #d35400 100%); border-radius: 2px 2px 4px 4px; animation: hsd-flicker 1.5s ease-in-out infinite alternate;
}
.scn-helena-soliloquy-departure .glow {
  position: absolute; bottom: 25%; left: 54%; width: 80px; height: 80px; background: radial-gradient(circle, rgba(244,208,63,.6) 0%, rgba(211,84,0,.2) 40%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: hsd-glow-pulse 3s ease-in-out infinite alternate;
}
.scn-helena-soliloquy-departure .shadow {
  position: absolute; top: 10%; right: 10%; width: 100px; height: 200px; background: linear-gradient(180deg, rgba(10,10,20,.7) 0%, transparent 100%); transform: rotate(8deg); border-radius: 30% 0 30% 0; animation: hsd-shadow-drift 8s linear infinite alternate;
}
.scn-helena-soliloquy-departure .door {
  position: absolute; top: 5%; left: 5%; width: 60px; height: 180px; border: 2px solid #3a2a1a; border-radius: 30% 30% 4% 4% / 50% 50% 4% 4%; background: transparent; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: hsd-door-creak 10s ease-in-out infinite;
}
.scn-helena-soliloquy-departure .table {
  position: absolute; bottom: 15%; left: 55%; width: 50px; height: 10px; background: #2a1a0a; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.6);
}
@keyframes hsd-tremble { 0% { transform: translate(0,0); } 25% { transform: translate(1px, -1px); } 50% { transform: translate(-1px, 2px); } 75% { transform: translate(2px, 0); } 100% { transform: translate(0,0); } }
@keyframes hsd-flicker { 0% { opacity: .9; transform: scaleY(1); } 25% { opacity: 1; transform: scaleY(1.02); } 50% { opacity: .85; transform: scaleY(0.98); } 75% { opacity: 1; transform: scaleY(1.01); } 100% { opacity: .9; transform: scaleY(1); } }
@keyframes hsd-glow-pulse { 0% { transform: scale(1); opacity: .5; } 50% { transform: scale(1.15); opacity: .8; } 100% { transform: scale(1); opacity: .5; } }
@keyframes hsd-shadow-drift { 0% { transform: translate(0,0) rotate(8deg); } 100% { transform: translate(6px, -4px) rotate(9deg); } }
@keyframes hsd-door-creak { 0% { transform: rotate(0); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0); } }

/* bertram-goodbye – warm bright interior exit */
.scn-bertram-goodbye { background: linear-gradient(180deg, #f5e1c0 0%, #d4a373 50%, #b5835a 100%), radial-gradient(ellipse at 30% 70%, #f5e1c0 0%, transparent 60%); }
.scn-bertram-goodbye .bg-wall-left { position:absolute; left:0; top:0; width:30%; height:100%; background: linear-gradient(90deg, #8c5a3a 0%, #b5835a 100%); transform: skewY(-2deg); animation: bg-wall-shimmer 12s ease-in-out infinite alternate; }
.scn-bertram-goodbye .bg-wall-right { position:absolute; right:0; top:0; width:30%; height:100%; background: linear-gradient(270deg, #8c5a3a 0%, #b5835a 100%); transform: skewY(2deg); animation: bg-wall-shimmer 12s ease-in-out infinite alternate reverse; }
.scn-bertram-goodbye .bg-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #a67c52 0%, #6a4e32 100%); border-radius: 20% 20% 0 0; animation: bg-floor-breathe 15s ease-in-out infinite alternate; }
.scn-bertram-goodbye .bg-doorway { position:absolute; bottom:35%; left:45%; width:10%; height:40%; background: #f5e1c0; border:4px solid #5a3e2b; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,240,200,0.5); animation: bg-door-glow 4s ease-in-out infinite alternate; }
.scn-bertram-goodbye .bg-figure-exit { position:absolute; bottom:35%; left:45%; width:8%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: bg-walk 5s ease-in-out infinite; }
.scn-bertram-goodbye .bg-lamp { position:absolute; bottom:40%; left:20%; width:4%; height:8%; background: radial-gradient(circle, #fce4b0 0%, #e6b86a 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(230,184,106,0.6); animation: bg-lamp-flicker 3s ease-in-out infinite alternate; }
.scn-bertram-goodbye .bg-shadow { position:absolute; bottom:0; left:15%; width:20%; height:30%; background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(8px); transform: translateX(10px); animation: bg-shadow-move 8s ease-in-out infinite alternate; }
@keyframes bg-wall-shimmer { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes bg-floor-breathe { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bg-door-glow { 0% { box-shadow: inset 0 0 15px rgba(255,240,200,0.3) } 50% { box-shadow: inset 0 0 30px rgba(255,240,200,0.7) } 100% { box-shadow: inset 0 0 20px rgba(255,240,200,0.4) } }
@keyframes bg-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(-5px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(-10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(-15px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-20px) translateY(0) rotate(0deg) } }
@keyframes bg-lamp-flicker { 0% { transform: scale(0.9); opacity:0.6 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:0.7 } }
@keyframes bg-shadow-move { 0% { transform: translateX(0px) scale(1) } 50% { transform: translateX(5px) scale(0.95) } 100% { transform: translateX(0px) scale(1) } }

/* helena-soliloquy-love – tense dim interior */
.scn-helena-soliloquy-love { background: linear-gradient(180deg, #1a1a3e 0%, #2c2a4a 40%, #16162e 100%), radial-gradient(ellipse at 50% 30%, #1a3a5a 0%, transparent 70%); }
.scn-helena-soliloquy-love .hs-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a2a4e 0%, #12122a 100%); animation: hs-wall-pulse 20s ease-in-out infinite alternate; }
.scn-helena-soliloquy-love .hs-table { position:absolute; bottom:20%; left:50%; width:40%; height:10%; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: hs-table-breathe 12s ease-in-out infinite alternate; }
.scn-helena-soliloquy-love .hs-candle { position:absolute; bottom:27%; left:50%; width:2%; height:8%; transform:translateX(-50%); background: linear-gradient(180deg, #f5e1c0 0%, #c8854a 50%, #804020 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 20px 10px rgba(200,133,74,0.6); animation: hs-candle-flicker 2s ease-in-out infinite alternate; }
.scn-helena-soliloquy-love .hs-figure-sit { position:absolute; bottom:30%; left:45%; width:10%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hs-sigh 7s ease-in-out infinite; }
.scn-helena-soliloquy-love .hs-shadow-large { position:absolute; bottom:0; left:30%; width:40%; height:60%; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(15px); animation: hs-shadow-sway 15s ease-in-out infinite alternate; }
.scn-helena-soliloquy-love .hs-window { position:absolute; top:10%; right:10%; width:15%; height:25%; background: #2a4a6a; border: 3px solid #1a2a3a; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); animation: hs-window-glow 6s ease-in-out infinite alternate; }
.scn-helena-soliloquy-love .hs-curtain { position:absolute; top:10%; right:10%; width:15%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); clip-path: polygon(0 0, 100% 0, 95% 100%, 5% 100%); animation: hs-curtain-swish 10s ease-in-out infinite alternate; }
@keyframes hs-wall-pulse { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes hs-table-breathe { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes hs-candle-flicker { 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.8 } }
@keyframes hs-sigh { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(0deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes hs-shadow-sway { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(5px) scale(0.95) } 100% { transform: translateX(0) scale(1) } }
@keyframes hs-window-glow { 0% { box-shadow: inset 0 0 5px rgba(100,150,200,0.2) } 50% { box-shadow: inset 0 0 20px rgba(100,150,200,0.5) } 100% { box-shadow: inset 0 0 10px rgba(100,150,200,0.3) } }
@keyframes hs-curtain-swish { 0% { transform: skewX(0deg) } 50% { transform: skewX(3deg) } 100% { transform: skewX(-2deg) } }

/* parolles-enters – calm bright entrance */
.scn-parolles-enters { background: linear-gradient(180deg, #f8f0e4 0%, #e0d5c0 50%, #c8bca0 100%), radial-gradient(ellipse at 50% 50%, #fff5e0 0%, transparent 80%); }
.scn-parolles-enters .pe-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c4a882 0%, #a88b6a 100%); border-radius: 10% 10% 0 0; animation: pe-floor-breathe 20s ease-in-out infinite alternate; }
.scn-parolles-enters .pe-doorway { position:absolute; bottom:30%; left:20%; width:15%; height:40%; background: #d4c4b0; border:4px solid #8a7050; border-radius: 4px; box-shadow: inset 0 0 15px rgba(255,255,200,0.3); animation: pe-door-light 8s ease-in-out infinite alternate; }
.scn-parolles-enters .pe-figure-enter { position:absolute; bottom:30%; left:22%; width:8%; height:35%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pe-enter 6s ease-in-out infinite; }
.scn-parolles-enters .pe-figure-seated { position:absolute; bottom:30%; left:60%; width:9%; height:32%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pe-seated-sway 10s ease-in-out infinite alternate; }
.scn-parolles-enters .pe-window-light { position:absolute; top:15%; right:15%; width:12%; height:20%; background: #fff5e0; border: 2px solid #b09070; border-radius: 4px; box-shadow: 0 0 20px 5px rgba(255,245,224,0.4); animation: pe-window-drift 30s linear infinite; }
.scn-parolles-enters .pe-rug { position:absolute; bottom:0; left:40%; width:20%; height:15%; background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 20% 20% 0 0; transform: skewX(-5deg); animation: pe-rug-wave 15s ease-in-out infinite alternate; }
@keyframes pe-floor-breathe { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pe-door-light { 0% { box-shadow: inset 0 0 10px rgba(255,255,200,0.2) } 50% { box-shadow: inset 0 0 25px rgba(255,255,200,0.5) } 100% { box-shadow: inset 0 0 15px rgba(255,255,200,0.3) } }
@keyframes pe-enter { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(20px) translateY(0) rotate(0deg) } }
@keyframes pe-seated-sway { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes pe-window-drift { 0% { transform: translateX(0); opacity:0.6 } 50% { transform: translateX(-15px); opacity:0.9 } 100% { transform: translateX(-30px); opacity:0.6 } }
@keyframes pe-rug-wave { 0% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(0deg) translateY(-1px) } 100% { transform: skewX(-5deg) translateY(0) } }

/* virginity-banter – funny bright interior banter */
.scn-virginity-banter { background: linear-gradient(180deg, #fef9e0 0%, #fce38a 50%, #f5d76e 100%), radial-gradient(circle at 60% 40%, #fef9e0 0%, transparent 60%); }
.scn-virginity-banter .vb-wall { position:absolute; inset:0; background: linear-gradient(135deg, #f5d76e 0%, #fce38a 100%); animation: vb-wall-shimmer 5s ease-in-out infinite alternate; }
.scn-virginity-banter .vb-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #c0943e 0%, #a0702a 100%); border-radius: 20% 20% 0 0; animation: vb-floor-bounce 3s ease-in-out infinite; }
.scn-virginity-banter .vb-figure-left { position:absolute; bottom:25%; left:25%; width:10%; height:40%; background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vb-left-gesture 4s ease-in-out infinite; }
.scn-virginity-banter .vb-figure-right { position:absolute; bottom:25%; right:25%; width:10%; height:35%; background: linear-gradient(180deg, #7a4a3a 0%, #5a2a1a 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vb-right-recoil 3.5s ease-in-out infinite; }
.scn-virginity-banter .vb-hat { position:absolute; bottom:55%; left:30%; width:8%; height:8%; background: radial-gradient(circle, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 10% 10%; transform: rotate(15deg); animation: vb-hat-toss 2s ease-in-out infinite; }
.scn-virginity-banter .vb-sparkle { position:absolute; bottom:65%; right:35%; width:4%; height:4%; background: radial-gradient(circle, #fff 0%, #fce38a 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 10px 5px rgba(255,255,200,0.8); animation: vb-sparkle-flicker 1.5s ease-in-out infinite alternate; }
@keyframes vb-wall-shimmer { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes vb-floor-bounce { 0% { transform: translateY(0) } 25% { transform: translateY(-3px) } 50% { transform: translateY(0) } 75% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes vb-left-gesture { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(10deg) } 50% { transform: translateX(0) rotate(-5deg) } 75% { transform: translateX(3px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes vb-right-recoil { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-4px) rotate(-8deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(-4deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes vb-hat-toss { 0% { transform: translateY(0) rotate(15deg) } 25% { transform: translateY(-20px) rotate(45deg) } 50% { transform: translateY(0) rotate(60deg) } 75% { transform: translateY(-15px) rotate(80deg) } 100% { transform: translateY(0) rotate(15deg) } }
@keyframes vb-sparkle-flicker { 0% { opacity:0.3; transform: scale(0.5) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.5; transform: scale(0.8) } }

/* Rousillon Arrival – Black */
.scn-rousillon-arrival-black {
  background:
    linear-gradient(180deg, #d6b88a 0%, #c9a06a 40%, #b08050 70%, #8a6040 100%),
    radial-gradient(ellipse at 70% 30%, #f0d0a0 0%, transparent 70%);
}
.scn-rousillon-arrival-black .ra-bg { 
  position: absolute; inset: 0 0 35% 0; 
  background: linear-gradient(180deg, #e8cfa0 0%, #c9a06a 50%, #a07850 100%); 
  animation: ra-bg-pulse 12s ease-in-out infinite alternate; 
}
.scn-rousillon-arrival-black .ra-floor { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; 
  background: linear-gradient(0deg, #6a4a2a 0%, #8a6030 40%, #a07840 100%); 
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); 
}
.scn-rousillon-arrival-black .ra-arch { 
  position: absolute; top: 0; left: 10%; width: 80%; height: 65%; 
  background: radial-gradient(ellipse at 50% 100%, transparent 60%, #7a5030 60.5%, #5a3a1a 65%, #3a2a1a 100%); 
  border-radius: 50% 50% 0 0 / 60% 60% 0 0; 
  animation: ra-arch-breath 20s ease-in-out infinite; 
}
.scn-rousillon-arrival-black .ra-window { 
  position: absolute; top: 8%; left: 35%; width: 30%; height: 40%; 
  background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #ffe8b0 30%, #ffd080 60%, transparent 100%); 
  border-radius: 4% 4% 8% 8%; 
  box-shadow: 0 0 60px 30px rgba(255,208,128,0.5), 0 0 120px 60px rgba(255,208,128,0.2); 
  animation: ra-window-glow 4s ease-in-out infinite alternate; 
}
.scn-rousillon-arrival-black .ra-figure-left { 
  position: absolute; bottom: 30%; left: 22%; width: 28px; height: 60px; 
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: ra-figure-left 6s ease-in-out infinite; 
}
.scn-rousillon-arrival-black .ra-figure-center { 
  position: absolute; bottom: 28%; left: 47%; width: 30px; height: 64px; 
  background: linear-gradient(180deg, #222 0%, #111 100%); 
  border-radius: 45% 45% 35% 35% / 65% 65% 45% 45%; 
  transform-origin: bottom center; 
  animation: ra-figure-center 7s ease-in-out infinite; 
}
.scn-rousillon-arrival-black .ra-figure-right { 
  position: absolute; bottom: 32%; left: 68%; width: 24px; height: 52px; 
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); 
  border-radius: 35% 35% 30% 30% / 55% 55% 35% 35%; 
  transform-origin: bottom center; 
  animation: ra-figure-right 5s ease-in-out infinite; 
}
@keyframes ra-bg-pulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ra-arch-breath {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes ra-window-glow {
  0% { opacity: 0.85; box-shadow: 0 0 40px 20px rgba(255,208,128,0.4); }
  50% { opacity: 1; box-shadow: 0 0 80px 40px rgba(255,208,128,0.6); }
  100% { opacity: 0.9; box-shadow: 0 0 50px 25px rgba(255,208,128,0.45); }
}
@keyframes ra-figure-left {
  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 ra-figure-center {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  33% { transform: translateY(-3px) rotate(0.5deg) scaleX(1.01); }
  66% { transform: translateY(0) rotate(0deg) scaleX(1); }
  100% { transform: translateY(-1px) rotate(-0.5deg) scaleX(1); }
}
@keyframes ra-figure-right {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(-1deg); }
  60% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-1px) rotate(1deg); }
}

/* Paris Miracles Debate */
.scn-paris-miracles-debate {
  background:
    linear-gradient(180deg, #e8d4b0 0%, #d4b890 40%, #b89870 80%, #a07858 100%),
    radial-gradient(ellipse at 60% 30%, #f0e0c0 0%, transparent 70%);
}
.scn-paris-miracles-debate .pm-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0dcc0 0%, #d4b890 50%, #b89870 100%);
  animation: pm-bg-fade 15s ease-in-out infinite alternate;
}
.scn-paris-miracles-debate .pm-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #6a4a2a 0%, #8a6030 50%, #a07840 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.2);
}
.scn-paris-miracles-debate .pm-window {
  position: absolute; top: 5%; left: 60%; width: 25%; height: 45%;
  background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #ffe8b0 30%, #ffd080 60%, transparent 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: 0 0 50px 25px rgba(255,208,128,0.4), 0 0 100px 50px rgba(255,208,128,0.15);
  animation: pm-window-glow 5s ease-in-out infinite alternate;
}
.scn-paris-miracles-debate .pm-lectern {
  position: absolute; bottom: 28%; left: 40%; width: 34px; height: 40px;
  background: linear-gradient(180deg, #8a6040 0%, #5a3a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: perspective(300px) rotateX(5deg);
  animation: pm-lectern-steady 8s ease-in-out infinite;
}
.scn-paris-miracles-debate .pm-speaker {
  position: absolute; bottom: 25%; left: 36%; width: 46px; height: 70px;
  background: linear-gradient(180deg, #2a2a2a 0%, #111 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-speaker-gesture 6s ease-in-out infinite;
}
.scn-paris-miracles-debate .pm-listener {
  position: absolute; bottom: 28%; left: 55%; width: 30px; height: 54px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: pm-listener-nod 4s ease-in-out infinite;
}
.scn-paris-miracles-debate .pm-books {
  position: absolute; bottom: 28%; left: 28%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #b08050 0%, #8a6040 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: pm-books-stack 10s ease-in-out infinite;
}
@keyframes pm-bg-fade {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes pm-window-glow {
  0% { opacity: 0.8; box-shadow: 0 0 40px 20px rgba(255,208,128,0.35); }
  50% { opacity: 1; box-shadow: 0 0 80px 40px rgba(255,208,128,0.55); }
  100% { opacity: 0.85; box-shadow: 0 0 50px 25px rgba(255,208,128,0.4); }
}
@keyframes pm-lectern-steady {
  0% { transform: perspective(300px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(300px) rotateX(6deg) translateY(-1px); }
  100% { transform: perspective(300px) rotateX(5deg) translateY(0); }
}
@keyframes pm-speaker-gesture {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  30% { transform: translateY(-4px) rotate(2deg) scaleX(1.02); }
  60% { transform: translateY(-2px) rotate(-1deg) scaleX(0.98); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes pm-listener-nod {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pm-books-stack {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}

.scn-roussillon-gate-parolles {
  background:
    linear-gradient(180deg, #4a6a7a 0%, #7a9a8a 40%, #c0a070 70%, #8b7a5a 100%),
    radial-gradient(ellipse at 20% 15%, #f0d090 0%, transparent 60%);
}
.scn-roussillon-gate-parolles .sun {
  position: absolute;
  top: 8%;
  left: 12%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, #ffe080 0%, #d4a030 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(212,160,48,0.5);
  animation: rp-sun 10s ease-in-out infinite alternate;
}
.scn-roussillon-gate-parolles .sunrays {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(135deg, rgba(255,224,128,0.08) 0px, rgba(255,224,128,0.08) 30px, transparent 30px, transparent 60px);
  animation: rp-rays 15s linear infinite;
}
.scn-roussillon-gate-parolles .gate-arch {
  position: absolute;
  bottom: 25%;
  left: 10%;
  width: 35%;
  height: 55%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -30px 60px rgba(0,0,0,0.6), 0 0 30px rgba(0,0,0,0.3);
  animation: rp-gate 8s ease-in-out infinite;
}
.scn-roussillon-gate-parolles .figure-parolles {
  position: absolute;
  bottom: 22%;
  left: 48%;
  width: 22px;
  height: 55px;
  background: linear-gradient(180deg, #252535 0%, #151525 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: rp-figure 4.2s ease-in-out infinite;
}
.scn-roussillon-gate-parolles .figure-clown {
  position: absolute;
  bottom: 22%;
  left: 54%;
  width: 18px;
  height: 45px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rp-figure 4.8s ease-in-out infinite;
  animation-delay: -1.2s;
}
.scn-roussillon-gate-parolles .ground-shadow {
  position: absolute;
  bottom: 22%;
  left: 46%;
  width: 40px;
  height: 6px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: rp-shadow 4s ease-in-out infinite alternate;
}
@keyframes rp-sun {
  0% { transform: scale(0.95); opacity: 0.8; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.98); opacity: 0.85; }
}
@keyframes rp-rays {
  0% { opacity: 0.3; transform: rotate(0deg); }
  50% { opacity: 0.7; transform: rotate(3deg); }
  100% { opacity: 0.4; transform: rotate(-2deg); }
}
@keyframes rp-gate {
  0% { box-shadow: inset 0 -30px 60px rgba(0,0,0,0.6), 0 0 30px rgba(0,0,0,0.3); }
  50% { box-shadow: inset 0 -40px 80px rgba(0,0,0,0.8), 0 0 20px rgba(0,0,0,0.2); }
  100% { box-shadow: inset 0 -30px 60px rgba(0,0,0,0.6), 0 0 30px rgba(0,0,0,0.3); }
}
@keyframes rp-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rp-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.5; }
  50% { transform: scaleX(1.1) translateX(2px); opacity: 0.8; }
  100% { transform: scaleX(0.95) translateX(-1px); opacity: 0.6; }
}

/* king-chooses-husband – warm bright interior */
.scn-king-chooses-husband {
  background: linear-gradient(180deg, #f5e6c8 0%, #c8a97e 40%, #8b5e3c 100%),
              radial-gradient(ellipse at 50% 20%, #ffefd5 0%, transparent 60%);
}
.scn-king-chooses-husband .kch-door {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 170px;
  transform: translateX(-50%); border-radius: 60% 60% 8% 8% / 70% 70% 4% 4%;
  background: linear-gradient(180deg, #c49a6c 0%, #9a6d3e 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,.3), 0 0 30px 8px #f0c070;
  animation: kch-door-glow 6s ease-in-out infinite;
}
.scn-king-chooses-husband .kch-light {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%); background: radial-gradient(circle, #ffe499 0%, #ffd080 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 40px #f0c060;
  animation: kch-light-pulse 4s ease-in-out infinite alternate;
}
.scn-king-chooses-husband .kch-maid {
  position: absolute; bottom: 20%; left: 45%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #b08060 0%, #6a4020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kch-maid-sway 5s ease-in-out infinite;
}
.scn-king-chooses-husband .kch-suitor-left {
  position: absolute; bottom: 22%; left: 28%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #8b6b4b 0%, #4a3020 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kch-suitor-bob 4s ease-in-out infinite;
}
.scn-king-chooses-husband .kch-suitor-right {
  position: absolute; bottom: 22%; right: 28%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #8b6b4b 0%, #4a3020 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kch-suitor-bob 4s ease-in-out infinite 1s;
}
.scn-king-chooses-husband .kch-candle {
  position: absolute; bottom: 30%; left: 52%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 10px 4px #ffd700;
  animation: kch-candle-flicker 2s ease-in-out infinite;
}
@keyframes kch-door-glow {
  0% { box-shadow: inset 0 0 20px rgba(0,0,0,.3), 0 0 30px 8px #f0c070; }
  50% { box-shadow: inset 0 0 20px rgba(0,0,0,.3), 0 0 50px 16px #ffd080; }
  100% { box-shadow: inset 0 0 20px rgba(0,0,0,.3), 0 0 30px 8px #f0c070; }
}
@keyframes kch-light-pulse {
  0% { opacity: 0.7; transform: translateX(-50%) scale(0.95); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.8; transform: translateX(-50%) scale(1); }
}
@keyframes kch-maid-sway {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes kch-suitor-bob {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes kch-candle-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 8px 2px #ffd700; }
  50% { opacity: 1; box-shadow: 0 0 16px 6px #ffe44d; }
  100% { opacity: 0.85; box-shadow: 0 0 10px 3px #ffd700; }
}

/* bertram-amused-at-parolles – moonlit funny scene */
.scn-bertram-amused-at-parolles {
  background: linear-gradient(180deg, #1a2030 0%, #2c3a50 40%, #4a6080 100%),
              radial-gradient(circle at 70% 20%, #c0d0e0 0%, transparent 60%);
}
.scn-bertram-amused-at-parolles .bap-moon {
  position: absolute; top: 8%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle at 35% 35%, #f0f4ff 0%, #d0d8e8 100%);
  border-radius: 50%; box-shadow: 0 0 30px 15px #c8d0e0;
  animation: bap-moon-drift 20s ease-in-out infinite;
}
.scn-bertram-amused-at-parolles .bap-wall {
  position: absolute; bottom: 25%; left: 10%; width: 15%; height: 55%;
  background: linear-gradient(180deg, #304050 0%, #202830 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 0 15px rgba(0,0,0,.5);
}
.scn-bertram-amused-at-parolles .bap-bertram {
  position: absolute; bottom: 28%; left: 32%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #384448 0%, #202830 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 80%;
  animation: bap-bertram-laugh 2s ease-in-out infinite;
}
.scn-bertram-amused-at-parolles .bap-parolles {
  position: absolute; bottom: 26%; left: 52%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 40% 50% 40% 40% / 50% 60% 40% 40%;
  transform-origin: 50% 80%;
  animation: bap-parolles-gesture 3s ease-in-out infinite;
}
.scn-bertram-amused-at-parolles .bap-cat {
  position: absolute; bottom: 22%; left: 42%; width: 16px; height: 20px;
  background: linear-gradient(135deg, #505050 0%, #303030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bap-cat-twitch 4s ease-in-out infinite;
}
.scn-bertram-amused-at-parolles .bap-star {
  position: absolute; width: 3px; height: 3px;
  background: #e0e8f0; border-radius: 50%;
  box-shadow: 0 0 4px 1px #c0d0e0;
}
.scn-bertram-amused-at-parolles .bap-star1 { top: 12%; left: 35%; animation: bap-star-twinkle 3s ease-in-out infinite; }
.scn-bertram-amused-at-parolles .bap-star2 { top: 25%; left: 65%; animation: bap-star-twinkle 3s ease-in-out infinite 1s; }
.scn-bertram-amused-at-parolles .bap-star3 { top: 5%; left: 50%; animation: bap-star-twinkle 3s ease-in-out infinite 2s; }
@keyframes bap-moon-drift {
  0% { transform: translate(0, 0); }
  50% { transform: translate(10px, -5px) scale(1.02); }
  100% { transform: translate(0, 0); }
}
@keyframes bap-bertram-laugh {
  0% { transform: rotate(0deg) scaleY(1); }
  30% { transform: rotate(3deg) scaleY(1.02); }
  60% { transform: rotate(-2deg) scaleY(0.98); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes bap-parolles-gesture {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(15deg) translateX(4px); }
  50% { transform: rotate(-10deg) translateX(-2px); }
  75% { transform: rotate(8deg) translateX(2px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes bap-cat-twitch {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(-1); }
  100% { transform: scaleX(1); }
}
@keyframes bap-star-twinkle {
  0% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(0.9); }
}

.scn-lafeu-parolles-banter {
  background: linear-gradient(180deg, #f5e6ca 0%, #d4c3a3 50%, #b8a88a 100%), radial-gradient(ellipse at 50% 50%, #fff0d0 0%, transparent 70%);
}
.lb-bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #c9b89a 0%, #8a7a5a 100%);
}
.lb-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 0 0;
}
.lb-wall-left {
  position:absolute; top:0; left:0; width:30%; height:70%;
  background: linear-gradient(90deg, #b8a88a 0%, #9a8a6a 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.2);
}
.lb-wall-right {
  position:absolute; top:0; right:0; width:30%; height:70%;
  background: linear-gradient(-90deg, #b8a88a 0%, #9a8a6a 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.2);
}
.lb-window {
  position:absolute; top:15%; left:37%; width:26%; height:40%;
  background: radial-gradient(ellipse at center, #fffbe0 0%, #f0d080 50%, #d0b060 100%);
  border: 6px solid #6a5a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px #fff, 0 0 40px rgba(255,240,200,0.5);
  animation: lb-windowglow 4s ease-in-out infinite alternate;
}
.lb-table {
  position:absolute; bottom:20%; left:38%; width:24%; height:10%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.lb-figure-l {
  position:absolute; bottom:20%; left:20%; width:12%; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 40% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lb-figurel 3s ease-in-out infinite;
}
.lb-figure-p {
  position:absolute; bottom:20%; right:20%; width:12%; height:28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lb-figurep 3.5s ease-in-out infinite;
}
.lb-hat {
  position:absolute; bottom:45%; right:22%; width:10%; height:8%;
  background: #2a1a0a;
  border-radius: 50% 50% 0 0;
  transform: rotate(10deg);
  animation: lb-hatbob 2s ease-in-out infinite;
}
@keyframes lb-windowglow {
  0% { opacity:0.8; box-shadow: inset 0 0 20px #fff, 0 0 20px rgba(255,240,200,0.3); }
  50% { opacity:1; box-shadow: inset 0 0 40px #fff, 0 0 60px rgba(255,240,200,0.7); }
  100% { opacity:0.85; box-shadow: inset 0 0 25px #fff, 0 0 30px rgba(255,240,200,0.4); }
}
@keyframes lb-figurel {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lb-figurep {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  33% { transform: translateX(-4px) rotate(-4deg) scale(1.02); }
  66% { transform: translateX(4px) rotate(4deg) scale(0.98); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes lb-hatbob {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-5px); }
  100% { transform: rotate(10deg) translateY(0); }
}

.scn-king-enters-court {
  background: linear-gradient(180deg, #c8c0b0 0%, #a8a090 30%, #807868 70%, #605850 100%), radial-gradient(ellipse at 50% 50%, #f0e8d0 0%, transparent 60%);
}
.kc-bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #908878 0%, #706860 100%);
}
.kc-floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: repeating-conic-gradient(#b0a898 0% 25%, #a09080 0% 50%) 0 0 / 40px 40px;
  perspective: 600px;
  transform: rotateX(60deg);
  transform-origin: bottom;
  animation: kc-floorglow 6s ease-in-out infinite alternate;
}
.kc-column-l {
  position:absolute; top:0; left:15%; width:8%; height:80%;
  background: linear-gradient(90deg, #b0a898 0%, #908070 50%, #706050 100%);
  border-radius: 4px;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
}
.kc-column-r {
  position:absolute; top:0; right:15%; width:8%; height:80%;
  background: linear-gradient(-90deg, #b0a898 0%, #908070 50%, #706050 100%);
  border-radius: 4px;
  box-shadow: -4px 0 12px rgba(0,0,0,0.3);
}
.kc-throne {
  position:absolute; bottom:20%; left:42%; width:16%; height:20%;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 50%, #8a7a5a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: kc-thronepulse 8s ease-in-out infinite;
}
.kc-king {
  position:absolute; bottom:20%; left:38%; width:10%; height:30%;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%);
  border-radius: 50% 30% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kc-kingwalk 12s ease-in-out infinite;
}
.kc-helena {
  position:absolute; bottom:20%; left:50%; width:8%; height:28%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kc-helenastep 12s ease-in-out infinite;
}
.kc-attendants {
  position:absolute; bottom:20%; left:58%; width:20%; height:25%;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: kc-attendantsway 10s ease-in-out infinite;
}
.kc-crown {
  position:absolute; bottom:50%; left:40%; width:6%; height:4%;
  background: #d4af37;
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 10px #f0d080;
  animation: kc-crownfloat 4s ease-in-out infinite;
}
@keyframes kc-floorglow {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes kc-thronepulse {
  0% { transform: scale(1); box-shadow: 0 8px 16px rgba(0,0,0,0.4); }
  50% { transform: scale(1.01); box-shadow: 0 12px 24px rgba(0,0,0,0.5); }
  100% { transform: scale(1); box-shadow: 0 8px 16px rgba(0,0,0,0.4); }
}
@keyframes kc-kingwalk {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(-2deg); }
  50% { transform: translateX(20px) rotate(0deg); }
  75% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes kc-helenastep {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(1deg); }
  50% { transform: translateX(15px) rotate(0deg); }
  75% { transform: translateX(8px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes kc-attendantsway {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(-5px) rotate(-2deg); }
  66% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes kc-crownfloat {
  0% { transform: translateY(0) rotate(-5deg); opacity:0.8; }
  50% { transform: translateY(-8px) rotate(5deg); opacity:1; }
  100% { transform: translateY(0) rotate(-5deg); opacity:0.8; }
}

.scn-king-enters-court {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 40%, #b8a880 100%),
    radial-gradient(ellipse at 50% 20%, rgba(255, 255, 230, 0.6) 0%, transparent 70%);
}
.scn-king-enters-court .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background:
    linear-gradient(180deg, #8b6f4a 0%, #5a4426 100%),
    repeating-linear-gradient(90deg, transparent 0px, transparent 30px, rgba(0,0,0,0.08) 30px, rgba(0,0,0,0.08) 31px);
}
.scn-king-enters-court .walls {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 60%, #a88a68 100%);
}
.scn-king-enters-court .columns {
  position: absolute;
  bottom: 30%;
  width: 24px;
  height: 55%;
  background:
    linear-gradient(90deg, #b8a080 0%, #d4b898 30%, #c8a880 50%, #b09070 70%, #a08060 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 2px 0 4px rgba(0,0,0,0.2);
}
.scn-king-enters-court .column-left {
  left: 15%;
}
.scn-king-enters-court .column-right {
  right: 15%;
}
.scn-king-enters-court .throne {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 80px;
  height: 100px;
  transform: translateX(-50%);
  background:
    linear-gradient(180deg, #6b3a1a 0%, #4a2a0a 40%, #3a1a00 100%);
  border-radius: 20px 20px 6px 6px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-king-enters-court .throne::before {
  content: '';
  position: absolute;
  top: -12px;
  left: -8px;
  right: -8px;
  height: 18px;
  background: linear-gradient(90deg, #b08040, #e8c060, #b08040);
  border-radius: 50% / 100% 100% 0 0;
}
.scn-king-enters-court .window-light {
  position: absolute;
  top: 8%;
  left: 35%;
  width: 30%;
  height: 40%;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(255, 230, 180, 0.5) 0%, transparent 60%),
    radial-gradient(ellipse at 50% 100%, rgba(255, 230, 160, 0.3) 0%, transparent 50%);
  filter: blur(8px);
  animation: ki-light 6s ease-in-out infinite alternate;
}
.scn-king-enters-court .king {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 30px;
  height: 80px;
  transform: translateX(-50%);
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.4);
  animation: ki-breathe 4s ease-in-out infinite;
}
.scn-king-enters-court .king::after {
  content: '';
  position: absolute;
  top: -16px;
  left: -4px;
  right: -4px;
  height: 20px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 50% 50% 0 0;
}
.scn-king-enters-court .attendant {
  position: absolute;
  bottom: 30%;
  width: 22px;
  height: 70px;
  background: linear-gradient(180deg, #3a2e24 0%, #1f1610 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: ki-bow 8s ease-in-out infinite;
}
.scn-king-enters-court .attendant-left {
  left: 35%;
  animation-delay: -2s;
}
.scn-king-enters-court .attendant-right {
  right: 35%;
  animation-delay: 0s;
}
@keyframes ki-light {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.2); }
  100% { opacity: 0.7; transform: scaleY(0.95); }
}
@keyframes ki-breathe {
  0%, 100% { transform: translateX(-50%) translateY(0) scaleY(1); }
  50% { transform: translateX(-50%) translateY(-2px) scaleY(1.02); }
}
@keyframes ki-bow {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(3deg) scaleY(0.98); }
  50% { transform: rotate(0deg) scaleY(1); }
  75% { transform: rotate(-3deg) scaleY(0.98); }
  100% { transform: rotate(0deg) scaleY(1); }
}

.scn-rousillon-gate-parolles {
  background:
    linear-gradient(180deg, #6b8bb3 0%, #d4b077 40%, #c8965a 70%, #8a6b3a 100%),
    radial-gradient(ellipse at 30% 20%, #ffd58a 0%, transparent 50%);
}
.scn-rousillon-gate-parolles .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a6a82 0%, #b0a070 60%, transparent 100%);
  animation: rgp-sky 16s ease-in-out infinite alternate;
}
.scn-rousillon-gate-parolles .cloud-a {
  position: absolute; top: 12%; left: 20%; width: 100px; height: 24px;
  background: linear-gradient(180deg, rgba(255,255,240,0.5) 0%, rgba(200,180,140,0.2) 100%);
  border-radius: 50%; filter: blur(7px);
  animation: rgp-drift-a 30s linear infinite;
}
.scn-rousillon-gate-parolles .cloud-b {
  position: absolute; top: 18%; right: 10%; width: 70px; height: 18px;
  background: linear-gradient(180deg, rgba(240,230,210,0.4) 0%, rgba(180,160,120,0.1) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: rgp-drift-b 45s linear infinite;
}
.scn-rousillon-gate-parolles .palace-wall {
  position: absolute; bottom: 40%; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.6), 0 -10px 20px rgba(0,0,0,0.3);
}
.scn-rousillon-gate-parolles .gate-arch {
  position: absolute; bottom: 40%; left: 38%; right: 38%; height: 30%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.7);
}
.scn-rousillon-gate-parolles .gate-dark {
  position: absolute; bottom: 40%; left: 42%; right: 42%; height: 25%;
  background: #1a1a2a; border-radius: 50% 50% 5% 5% / 70% 70% 5% 5%;
  box-shadow: inset 0 0 30px #0a0a1a;
  animation: rgp-gate-pulse 8s ease-in-out infinite alternate;
}
.scn-rousillon-gate-parolles .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 30px 40px rgba(0,0,0,0.7);
}
.scn-rousillon-gate-parolles .figure-parolles {
  position: absolute; bottom: 30%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rgp-walk-parolles 6s ease-in-out infinite;
}
.scn-rousillon-gate-parolles .figure-clown {
  position: absolute; bottom: 30%; left: 48%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a2218 0%, #0e0c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rgp-walk-clown 6s ease-in-out infinite 0.8s;
}
@keyframes rgp-sky {
  0% { opacity: 0.75; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes rgp-drift-a {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(130vw); }
}
@keyframes rgp-drift-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}
@keyframes rgp-gate-pulse {
  0% { opacity: 0.8; box-shadow: inset 0 0 20px #0a0a1a; }
  50% { opacity: 1; box-shadow: inset 0 0 40px #0a0a1a; }
  100% { opacity: 0.85; box-shadow: inset 0 0 25px #0a0a1a; }
}
@keyframes rgp-walk-parolles {
  0%,100% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(6px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(12px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(18px) translateY(-1px) rotate(1deg); }
}
@keyframes rgp-walk-clown {
  0%,100% { transform: translateX(0) translateY(0) rotate(1deg); }
  25% { transform: translateX(5px) translateY(-2px) rotate(-1deg); }
  50% { transform: translateX(10px) translateY(0) rotate(2deg); }
  75% { transform: translateX(15px) translateY(-1px) rotate(-1deg); }
}

.scn-king-chooses-husband {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4a373 42%, #8b5a2b 42.1%, #5c3a1e 100%),
    radial-gradient(ellipse at 25% 20%, rgba(255,230,180,0.25) 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-king-chooses-husband .window-light {
  position: absolute;
  top: 5%;
  left: 8%;
  width: 12%;
  height: 35%;
  background: linear-gradient(135deg, rgba(255,240,200,0.5) 0%, rgba(255,240,200,0.05) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  filter: blur(4px);
  animation: kch-window-light 6s ease-in-out infinite alternate;
}
.scn-king-chooses-husband .throne {
  position: absolute;
  bottom: 18%;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 110px;
  background: linear-gradient(180deg, #a0522d 0%, #5c3a1e 100%);
  border-radius: 20px 20px 12px 12px;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4), 0 8px 16px rgba(0,0,0,0.5);
  animation: kch-throne 20s ease-in-out infinite;
}
.scn-king-chooses-husband .king-figure {
  position: absolute;
  bottom: 30%;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: kch-king-breathe 4s ease-in-out infinite;
  z-index: 2;
}
.scn-king-chooses-husband .king-figure::before {
  content: '';
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  width: 20px;
  height: 16px;
  background: linear-gradient(180deg, #f0c060 0%, #c08040 100%);
  clip-path: polygon(0% 100%, 25% 0%, 50% 20%, 75% 0%, 100% 100%);
  animation: kch-crown-gleam 4s ease-in-out infinite alternate;
}
.scn-king-chooses-husband .suitor {
  position: absolute;
  bottom: 22%;
  width: 24px;
  height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
}
.scn-king-chooses-husband .suitor-left {
  left: 30%;
  animation: kch-bow 7s ease-in-out infinite;
}
.scn-king-chooses-husband .suitor-right {
  right: 30%;
  animation: kch-bow 7s ease-in-out infinite reverse;
  animation-delay: 3.5s;
}
.scn-king-chooses-husband .banner {
  position: absolute;
  top: 2%;
  left: 10%;
  width: 8%;
  height: 40%;
  background: linear-gradient(180deg, #b08040 0%, #8a5a20 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  transform-origin: top center;
  animation: kch-banner-sway 15s ease-in-out infinite;
}
@keyframes kch-window-light {
  0% { opacity: 0.6; transform: scaleY(0.9); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.7; transform: scaleY(0.95); }
}
@keyframes kch-throne {
  0% { transform: translateX(-50%) translateY(0px); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0px); }
}
@keyframes kch-king-breathe {
  0% { transform: translateX(-50%) translateY(0) scaleY(1); }
  50% { transform: translateX(-50%) translateY(-1px) scaleY(1.02); }
  100% { transform: translateX(-50%) translateY(0) scaleY(1); }
}
@keyframes kch-crown-gleam {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.3); }
  100% { filter: brightness(0.9); }
}
@keyframes kch-bow {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(4deg) translateY(-3px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes kch-banner-sway {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-3deg); }
}

.scn-lafeu-parolles-banter {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4b896 30%, #c4a880 60%) no-repeat 0 0 / 100% 60%,
    radial-gradient(ellipse at 30% 40%, rgba(255,235,150,0.2) 0%, transparent 50%),
    linear-gradient(180deg, #b8956a 0%, #9a7c5a 100%) no-repeat 0 60% / 100% 40%;
}
.scn-lafeu-parolles-banter .room-bg {
  position: absolute;
  inset: 0;
  background: inherit;
  pointer-events: none;
}
.scn-lafeu-parolles-banter .window {
  position: absolute;
  top: 15%;
  left: 30%;
  width: 40%;
  height: 35%;
  background: radial-gradient(ellipse, #fff8c0 0%, #ffeb99 60%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(255,235,150,0.8), inset 0 0 20px rgba(255,255,255,0.3);
  animation: lb-window 4s ease-in-out infinite alternate;
}
.scn-lafeu-parolles-banter .curtain {
  position: absolute;
  top: 15%;
  left: 25%;
  width: 10%;
  height: 35%;
  background: linear-gradient(180deg, #c8553d 0%, #a33a2a 100%);
  border-radius: 0 10px 10px 0;
  transform-origin: top left;
  animation: lb-curtain 6s ease-in-out infinite alternate;
}
.scn-lafeu-parolles-banter .table {
  position: absolute;
  bottom: 15%;
  left: 20%;
  width: 60%;
  height: 8%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-lafeu-parolles-banter .figure-lafeu {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 8%;
  height: 20%;
  background: linear-gradient(180deg, #c8a080 0%, #5a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lb-lafeu 3s ease-in-out infinite;
}
.scn-lafeu-parolles-banter .figure-parolles {
  position: absolute;
  bottom: 10%;
  left: 55%;
  width: 8%;
  height: 18%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lb-parolles 4s ease-in-out infinite;
}
.scn-lafeu-parolles-banter .lightray {
  position: absolute;
  top: 20%;
  left: 25%;
  width: 60%;
  height: 60%;
  background: linear-gradient(135deg, rgba(255,235,150,0.3) 0%, transparent 100%);
  transform-origin: top left;
  transform: rotate(20deg);
  animation: lb-lightray 5s ease-in-out infinite alternate;
}
.scn-lafeu-parolles-banter .shadow {
  position: absolute;
  bottom: 8%;
  left: 15%;
  width: 70%;
  height: 5%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: lb-shadow 8s ease-in-out infinite alternate;
}
@keyframes lb-window {
  0% { opacity: 0.9; box-shadow: 0 0 30px 10px rgba(255,235,150,0.8); }
  50% { opacity: 1; box-shadow: 0 0 50px 15px rgba(255,235,150,1); }
  100% { opacity: 0.95; box-shadow: 0 0 35px 12px rgba(255,235,150,0.85); }
}
@keyframes lb-curtain {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-2px) scaleX(0.95); }
  100% { transform: translateX(1px) scaleX(1); }
}
@keyframes lb-lafeu {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(5deg); }
  60% { transform: translateY(0) rotate(-2deg); }
  100% { transform: translateY(-1px) rotate(3deg); }
}
@keyframes lb-parolles {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lb-lightray {
  0% { opacity: 0.3; transform: rotate(20deg) scaleX(1); }
  50% { opacity: 0.6; transform: rotate(22deg) scaleX(1.05); }
  100% { opacity: 0.4; transform: rotate(18deg) scaleX(0.95); }
}
@keyframes lb-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.1); opacity: 0.4; }
  100% { transform: scaleX(0.95); opacity: 0.25; }
}

.scn-paris-miracles-debate {
  background: 
    linear-gradient(180deg, #f4e8d0 0%, #e0d0b8 100%),
    radial-gradient(ellipse at 15% 50%, #ffe0a0 0%, transparent 70%);
}
.scn-paris-miracles-debate .pmd-floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%);
  border-radius: 4px 4px 0 0;
}
.scn-paris-miracles-debate .pmd-window {
  position: absolute;
  top: 5%;
  bottom: 25%;
  left: 10%;
  width: 30%;
  background: linear-gradient(135deg, #87CEEB 0%, #ffffff 100%);
  border: 4px solid #d4c8b0;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.3);
  border-radius: 4px;
  animation: pmd-window-light 12s ease-in-out infinite alternate;
}
.scn-paris-miracles-debate .pmd-bookshelf {
  position: absolute;
  top: 5%;
  bottom: 25%;
  right: 8%;
  width: 18%;
  background: linear-gradient(180deg, #6b4c3a 0%, #4a3320 100%);
  border-radius: 4px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
  animation: pmd-breathe 10s ease-in-out infinite;
}
.scn-paris-miracles-debate .pmd-table {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 40%;
  height: 8%;
  background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%);
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: pmd-table-sway 15s ease-in-out infinite alternate;
}
.scn-paris-miracles-debate .pmd-figure1 {
  position: absolute;
  bottom: 22%;
  left: 32%;
  width: 12%;
  height: 40%;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pmd-breathe 6s ease-in-out infinite;
}
.scn-paris-miracles-debate .pmd-figure2 {
  position: absolute;
  bottom: 22%;
  right: 32%;
  width: 12%;
  height: 45%;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pmd-breathe 6s ease-in-out infinite;
  animation-delay: 2s;
}
.scn-paris-miracles-debate .pmd-lamp {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 10px;
  height: 10px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd68a 0%, #c8a45c 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200,164,92,0.6);
  animation: pmd-lamp-glow 3s ease-in-out infinite;
}
.scn-paris-miracles-debate .pmd-curtain {
  position: absolute;
  top: 5%;
  bottom: 25%;
  left: 5%;
  width: 8%;
  background: linear-gradient(90deg, #d4a06a 0%, #b08050 30%, #a07040 70%, #c09060 100%);
  border-radius: 4px;
  animation: pmd-curtain-sway 8s ease-in-out infinite;
}
@keyframes pmd-window-light {
  0% { opacity:0.8; box-shadow: inset 0 0 30px rgba(255,255,255,0.3); }
  50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,255,255,0.4); }
  100% { opacity:0.85; box-shadow: inset 0 0 35px rgba(255,255,255,0.35); }
}
@keyframes pmd-breathe {
  0%,100% { transform: scaleY(1) scaleX(1) translateY(0); }
  50% { transform: scaleY(1.02) scaleX(0.98) translateY(-1px); }
}
@keyframes pmd-table-sway {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pmd-lamp-glow {
  0% { opacity:0.8; box-shadow: 0 0 15px 6px rgba(200,164,92,0.5); }
  50% { opacity:1; box-shadow: 0 0 25px 12px rgba(200,164,92,0.7); }
  100% { opacity:0.85; box-shadow: 0 0 20px 8px rgba(200,164,92,0.6); }
}
@keyframes pmd-curtain-sway {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.scn { position: absolute; pointer-events: none; }
.star { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-rousillon-clown-poverty { background: linear-gradient(180deg, #f2e0c0 0%, #d4c4a0 30%, #b8a880 100%), radial-gradient(ellipse at 60% 80%, #e6d4a8 0%, transparent 50%); }
.scn-rousillon-clown-poverty .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #e8d8b8 0%, #c8b890 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,0.1); }
.scn-rousillon-clown-poverty .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b8a070 0%, #8a7a5a 100%); border-radius: 0 0 20% 20%; }
.scn-rousillon-clown-poverty .table { position:absolute; bottom:30%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #8c6a40 0%, #6a4e2a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: rcp1-table 6s ease-in-out infinite; }
.scn-rousillon-clown-poverty .jug { position:absolute; bottom:38%; left:38%; width:6%; height:12%; background: radial-gradient(ellipse at 50% 30%, #d09060 0%, #a05830 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: rcp1-jug 6s ease-in-out infinite; }
.scn-rousillon-clown-poverty .clown { position:absolute; bottom:22%; left:20%; width:20%; height:45%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rcp1-clown 4s ease-in-out infinite; }
.scn-rousillon-clown-poverty .wife-figure { position:absolute; bottom:25%; right:20%; width:16%; height:40%; background: linear-gradient(180deg, #7a5a4a 0%, #4a3222 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: rcp1-wife 6s ease-in-out infinite; }
.scn-rousillon-clown-poverty .light-shaft { position:absolute; top:0; left:40%; width:20%; height:60%; background: linear-gradient(180deg, rgba(255,240,200,0.8) 0%, rgba(255,240,200,0) 100%); filter: blur(8px); animation: rcp1-light 3s ease-in-out infinite alternate; }
@keyframes rcp1-table { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rcp1-jug { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rcp1-clown { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes rcp1-wife { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes rcp1-light { 0% { opacity:0.6; } 100% { opacity:1; } }

.scn-rousillon-clown-marriage-repent { background: linear-gradient(180deg, #e6d6c0 0%, #c8b898 30%, #a08060 100%), radial-gradient(ellipse at 50% 100%, #c0a080 0%, transparent 60%); }
.scn-rousillon-clown-marriage-repent .altar { position:absolute; bottom:30%; left:50%; width:30%; height:12%; transform:translateX(-50%); background: linear-gradient(180deg, #a08068 0%, #705040 100%); border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: rcm2-altar 8s ease-in-out infinite alternate; }
.scn-rousillon-clown-marriage-repent .cross { position:absolute; bottom:50%; left:50%; width:4%; height:25%; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 0 8px rgba(0,0,0,0.5); }
.scn-rousillon-clown-marriage-repent .clown-kneel { position:absolute; bottom:20%; left:40%; width:18%; height:35%; background: linear-gradient(180deg, #4a3222 0%, #2a1a0a 100%); border-radius: 50% 40% 40% 40% / 60% 50% 40% 50%; transform-origin: bottom center; animation: rcm2-kneel 5s ease-in-out infinite; }
.scn-rousillon-clown-marriage-repent .book { position:absolute; bottom:28%; left:42%; width:6%; height:8%; background: linear-gradient(180deg, #b0a090 0%, #807060 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: rcm2-book 5s ease-in-out infinite; }
.scn-rousillon-clown-marriage-repent .candle { position:absolute; bottom:35%; left:55%; width:2%; height:18%; background: linear-gradient(180deg, #f0e0c0 0%, #c8a080 100%); border-radius: 2px; box-shadow: 0 0 12px 4px rgba(255,200,100,0.5); animation: rcm2-candle 7s ease-in-out infinite alternate; }
.scn-rousillon-clown-marriage-repent .halo { position:absolute; bottom:52%; left:50%; width:12%; height:12%; transform:translateX(-50%); background: radial-gradient(circle, rgba(255,220,100,0.6) 0%, rgba(255,220,100,0) 70%); border-radius:50%; animation: rcm2-halo 4s ease-in-out infinite alternate; }
.scn-rousillon-clown-marriage-repent .shadow { position:absolute; bottom:0; left:30%; width:40%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: rcm2-shadow 7s ease-in-out infinite; }
@keyframes rcm2-altar { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02) rotate(-1deg); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes rcm2-kneel { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes rcm2-book { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rcm2-candle { 0% { opacity:0.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.9; transform: scaleY(0.95); } }
@keyframes rcm2-halo { 0% { opacity:0.5; } 100% { opacity:1; } }
@keyframes rcm2-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }

.scn-rousillon-clown-prophesy { background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 30%, #a89880 100%), radial-gradient(ellipse at 70% 60%, #d8c0a0 0%, transparent 60%); }
.scn-rousillon-clown-prophesy .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d0c0a8 0%, #b0a088 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,0.1); }
.scn-rousillon-clown-prophesy .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a08870 0%, #7a6a52 100%); border-radius: 0 0 30% 30%; }
.scn-rousillon-clown-prophesy .clown-stand { position:absolute; bottom:22%; left:25%; width:18%; height:48%; background: linear-gradient(180deg, #4a3222 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rcp3-clown 6s ease-in-out infinite; }
.scn-rousillon-clown-prophesy .scroll { position:absolute; bottom:38%; left:35%; width:4%; height:16%; background: linear-gradient(180deg, #e0d0c0 0%, #b0a090 100%); border-radius: 2px; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: rcp3-scroll 5s ease-in-out infinite; }
.scn-rousillon-clown-prophesy .cuckoo-bird { position:absolute; bottom:65%; left:55%; width:8%; height:8%; background: radial-gradient(circle, #806040 0%, #403020 100%); border-radius: 50%; clip-path: ellipse(40% 50% at 50% 50%); animation: rcp3-bird 4s ease-in-out infinite; }
.scn-rousillon-clown-prophesy .branch { position:absolute; bottom:68%; left:50%; width:15%; height:2%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 2px; transform: rotate(-10deg); animation: rcp3-branch 7s ease-in-out infinite alternate; }
.scn-rousillon-clown-prophesy .music-notes { position:absolute; bottom:50%; left:40%; width:10%; height:10%; background: radial-gradient(circle at 50% 50%, #c0a080 0%, transparent 60%); filter: blur(2px); animation: rcp3-notes 3s ease-in-out infinite alternate; }
@keyframes rcp3-clown { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(3deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes rcp3-scroll { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes rcp3-bird { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rcp3-branch { 0% { transform: rotate(-10deg) scaleY(1); } 100% { transform: rotate(-8deg) scaleY(1.1); } }
@keyframes rcp3-notes { 0% { opacity:0.3; transform: scale(0.8); } 100% { opacity:0.8; transform: scale(1.2); } }

/* === Scene: rousillon-page-enters === */
.scn-roussillon-page-enters {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e0c9a0 60%, #c8a77a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100vh;
  width: 100%;
}
.scn-roussillon-page-enters .room-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #e8d4b0 0%, #d0b88a 100%);
  animation: rpe-back 20s ease-in-out infinite;
}
.scn-roussillon-page-enters .window {
  position: absolute; top: 5%; right: 10%;
  width: 25%; height: 40%;
  background: linear-gradient(180deg, #a0d0e8 0%, #70b0d0 70%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.3);
  animation: rpe-window 8s ease-in-out infinite alternate;
}
.scn-roussillon-page-enters .table {
  position: absolute; bottom: 10%; left: 50%;
  width: 60%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b6b4a 0%, #5a3d2a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-roussillon-page-enters .page {
  position: absolute; bottom: 18%; left: 30%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #c09060 0%, #a07050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rpe-page 6s ease-in-out infinite;
}
.scn-roussillon-page-enters .parolles {
  position: absolute; bottom: 18%; right: 35%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: rpe-parolles 10s ease-in-out infinite;
}
.scn-roussillon-page-enters .letter {
  position: absolute; bottom: 22%; left: 45%;
  width: 14px; height: 10px;
  background: #f0e0c0;
  border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: rpe-letter 4s ease-in-out infinite alternate;
}
.scn-roussillon-page-enters .shadow {
  position: absolute; bottom: 8%; left: 20%; right: 20%;
  height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 70%);
  animation: rpe-shadow 12s ease-in-out infinite;
}
@keyframes rpe-back {
  0%,100% { opacity: 0.9; }
  50% { opacity: 1; }
}
@keyframes rpe-window {
  0% { transform: scaleY(0.95); opacity: 0.8; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(0.98); opacity: 0.85; }
}
@keyframes rpe-page {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  30% { transform: translateX(8px) translateY(-2px) rotate(1deg); }
  60% { transform: translateX(16px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(24px) translateY(0) rotate(0); }
}
@keyframes rpe-parolles {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  50% { transform: translateX(-5px) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes rpe-letter {
  0% { transform: translateY(0) rotate(-5deg); opacity: 0.6; }
  50% { transform: translateY(-4px) rotate(3deg); opacity: 1; }
  100% { transform: translateY(0) rotate(-2deg); opacity: 0.7; }
}
@keyframes rpe-shadow {
  0%,100% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.1); opacity: 0.9; }
}

/* === Scene: rousillon-parolles-departure === */
.scn-roussillon-parolles-departure {
  background:
    linear-gradient(180deg, #ffd680 0%, #f0b040 50%, #d08020 100%),
    radial-gradient(ellipse at 30% 70%, #ffe080 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  height: 100vh;
  width: 100%;
}
.scn-roussillon-parolles-departure .hall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #f5d080 0%, #d8a040 100%);
  animation: rpd-hall 12s ease-in-out infinite alternate;
}
.scn-roussillon-parolles-departure .door {
  position: absolute; top: 10%; left: 80%;
  width: 15%; height: 60%;
  background: linear-gradient(90deg, #5a3020 0%, #3a1a10 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: rpd-door 8s ease-in-out infinite;
}
.scn-roussillon-parolles-departure .parolles {
  position: absolute; bottom: 20%; left: 20%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: rpd-parolles 4s ease-in-out infinite alternate;
}
.scn-roussillon-parolles-departure .cape {
  position: absolute; bottom: 20%; left: 15%;
  width: 40px; height: 50px;
  background: linear-gradient(135deg, #6a2a1a 0%, #3a1000 100%);
  border-radius: 60% 20% 40% 40% / 70% 30% 50% 50%;
  transform-origin: top left;
  animation: rpd-cape 2s ease-in-out infinite alternate;
}
.scn-roussillon-parolles-departure .hat {
  position: absolute; bottom: 70%; left: 18%;
  width: 30px; height: 20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 70% 70% 20% 20% / 80% 80% 30% 30%;
  transform-origin: bottom center;
  animation: rpd-hat 3s ease-in-out infinite;
}
.scn-roussillon-parolles-departure .footstep {
  position: absolute; bottom: 12%; left: 25%;
  width: 12px; height: 6px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: rpd-footstep 4s ease-in-out infinite;
}
.scn-roussillon-parolles-departure .sparkle {
  position: absolute; top: 40%; left: 50%;
  width: 8px; height: 8px;
  background: #ffd700;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #ffd700;
  animation: rpd-sparkle 1.5s ease-in-out infinite alternate;
}
@keyframes rpd-hall {
  0% { transform: scaleX(0.98); opacity: 0.9; }
  50% { transform: scaleX(1.02); opacity: 1; }
  100% { transform: scaleX(0.99); opacity: 0.95; }
}
@keyframes rpd-door {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-5px) rotate(2deg); }
  60% { transform: translateX(10px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes rpd-parolles {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  50% { transform: translateX(30px) translateY(-5px) rotate(5deg); }
  100% { transform: translateX(60px) translateY(0) rotate(0); }
}
@keyframes rpd-cape {
  0% { transform: rotate(0) scaleX(1); }
  50% { transform: rotate(15deg) scaleX(1.2); }
  100% { transform: rotate(-5deg) scaleX(0.9); }
}
@keyframes rpd-hat {
  0% { transform: translateY(0) rotate(-5deg); }
  30% { transform: translateY(-3px) rotate(8deg); }
  60% { transform: translateY(2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes rpd-footstep {
  0% { opacity: 0; transform: scale(0.5); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0; transform: scale(0.8); }
}
@keyframes rpd-sparkle {
  0% { transform: scale(1); opacity: 0.8; }
  100% { transform: scale(1.8); opacity: 1; }
}

/* === Scene: paris-king-palace-war-news === */
.scn-paris-king-palace-war-news {
  background:
    linear-gradient(180deg, #2a1a3a 0%, #1a1020 40%, #0a0820 100%),
    radial-gradient(ellipse at 70% 30%, #4a2a5a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  height: 100vh;
  width: 100%;
}
.scn-paris-king-palace-war-news .throne-room {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(135deg, #3a2a4a 0%, #1a1a2a 100%);
  animation: pkw-throne-room 18s ease-in-out infinite alternate;
}
.scn-paris-king-palace-war-news .king {
  position: absolute; bottom: 20%; left: 45%;
  width: 28px; height: 70px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pkw-king 6s ease-in-out infinite;
}
.scn-paris-king-palace-war-news .throne {
  position: absolute; bottom: 15%; left: 40%;
  width: 50px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: pkw-throne 10s ease-in-out infinite alternate;
}
.scn-paris-king-palace-war-news .crown {
  position: absolute; bottom: 72%; left: 46%;
  width: 20px; height: 15px;
  background: linear-gradient(180deg, #f0c040 0%, #c09020 100%);
  clip-path: polygon(0% 100%, 20% 0%, 40% 60%, 60% 0%, 80% 60%, 100% 0%, 100% 100%);
  animation: pkw-crown 4s ease-in-out infinite alternate;
}
.scn-paris-king-palace-war-news .letter {
  position: absolute; bottom: 35%; left: 55%;
  width: 18px; height: 12px;
  background: #d0b080;
  border-radius: 1px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: pkw-letter 5s ease-in-out infinite;
}
.scn-paris-king-palace-war-news .soldier {
  position: absolute; bottom: 18%; right: 20%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pkw-soldier 7s ease-in-out infinite;
}
.scn-paris-king-palace-war-news .shadow-sword {
  position: absolute; bottom: 22%; right: 18%;
  width: 40px; height: 4px;
  background: rgba(200,100,50,0.6);
  transform: rotate(45deg);
  border-radius: 2px;
  filter: blur(1px);
  animation: pkw-shadows-sword 3s ease-in-out infinite alternate;
}
.scn-paris-king-palace-war-news .rubble {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 15%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  animation: pkw-rubble 9s ease-in-out infinite;
}
@keyframes pkw-throne-room {
  0%,100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes pkw-king {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-4px) rotate(2deg); }
  60% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes pkw-throne {
  0% { transform: translateY(0) scaleX(0.98); }
  50% { transform: translateY(-3px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(0.99); }
}
@keyframes pkw-crown {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes pkw-letter {
  0% { transform: translateX(0) translateY(0); opacity: 0.7; }
  30% { transform: translateX(4px) translateY(-2px); opacity: 1; }
  60% { transform: translateX(-2px) translateY(1px); opacity: 0.8; }
  100% { transform: translateX(0) translateY(0); opacity: 0.7; }
}
@keyframes pkw-soldier {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  50% { transform: translateX(-8px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes pkw-shadows-sword {
  0% { transform: rotate(40deg) scaleX(1); opacity: 0.5; }
  50% { transform: rotate(50deg) scaleX(1.3); opacity: 1; }
  100% { transform: rotate(35deg) scaleX(0.8); opacity: 0.6; }
}
@keyframes pkw-rubble {
  0% { transform: translateY(0) scaleX(1); }
  30% { transform: translateY(-2px) scaleX(1.02); }
  60% { transform: translateY(1px) scaleX(0.98); }
  100% { transform: translateY(0) scaleX(1); }
}

/* === Scene: paris-florence-denial === */
.scn-paris-florence-denial {
  background:
    linear-gradient(180deg, #1a2a3a 0%, #102030 50%, #0a1820 100%),
    radial-gradient(ellipse at 40% 60%, #2a4a5a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100vh;
  width: 100%;
}
.scn-paris-florence-denial .chamber {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%);
  animation: pfd-chamber 15s ease-in-out infinite alternate;
}
.scn-paris-florence-denial .king {
  position: absolute; bottom: 15%; left: 35%;
  width: 26px; height: 65px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pfd-king 8s ease-in-out infinite;
}
.scn-paris-florence-denial .noble {
  position: absolute; bottom: 15%; left: 55%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pfd-noble 10s ease-in-out infinite alternate;
}
.scn-paris-florence-denial .denial-scroll {
  position: absolute; bottom: 25%; left: 45%;
  width: 16px; height: 14px;
  background: #c0a080;
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: pfd-scroll 6s ease-in-out infinite;
}
.scn-paris-florence-denial .map {
  position: absolute; top: 10%; right: 5%;
  width: 30%; height: 40%;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: pfd-map 20s ease-in-out infinite alternate;
}
.scn-paris-florence-denial .lamp {
  position: absolute; top: 5%; left: 10%;
  width: 12px; height: 20px;
  background: linear-gradient(180deg, #d0b060 0%, #a08040 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(200,160,80,0.5);
  animation: pfd-lamp 4s ease-in-out infinite alternate;
}
.scn-paris-florence-denial .guard {
  position: absolute; bottom: 10%; right: 10%;
  width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pfd-guard 7s ease-in-out infinite;
}
.scn-paris-florence-denial .shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%;
  height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: pfd-shadow 12s ease-in-out infinite;
}
@keyframes pfd-chamber {
  0%,100% { opacity: 0.85; }
  50% { opacity: 1; }
}
@keyframes pfd-king {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-5px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes pfd-noble {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-8px) translateY(-3px) rotate(3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes pfd-scroll {
  0% { transform: translateY(0) rotate(-3deg); opacity: 0.6; }
  30% { transform: translateY(-4px) rotate(5deg); opacity: 1; }
  60% { transform: translateY(2px) rotate(-2deg); opacity: 0.8; }
  100% { transform: translateY(0) rotate(0); opacity: 0.6; }
}
@keyframes pfd-map {
  0% { transform: scaleX(0.95) translateY(0); }
  50% { transform: scaleX(1.02) translateY(-2px); }
  100% { transform: scaleX(0.97) translateY(0); }
}
@keyframes pfd-lamp {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 15px 4px rgba(200,160,80,0.4); }
  100% { transform: scale(1.2); opacity: 1; box-shadow: 0 0 30px 10px rgba(200,160,80,0.7); }
}
@keyframes pfd-guard {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  75% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes pfd-shadow {
  0%,100% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.1); opacity: 0.8; }
}

/* rousillon-moderate-lamentation */
.scn-roussillon-moderate-lamentation {
  background: linear-gradient(180deg, #f5ecd4 0%, #e6d2a8 50%, #cbb584 100%), radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
}
.scn-roussillon-moderate-lamentation .window {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #ffe 0%, #eef 50%, #dde 100%);
  border: 2px solid #a98c62; border-radius: 2px;
  box-shadow: inset 0 0 30px rgba(255,255,230,0.6);
  animation: ml-window 12s ease-in-out infinite alternate;
}
.scn-roussillon-moderate-lamentation .figure {
  position: absolute; bottom: 30%; left: 44%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #5a4230 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ml-figure 6s ease-in-out infinite alternate;
}
.scn-roussillon-moderate-lamentation .chair {
  position: absolute; bottom: 25%; left: 42%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ml-chair 8s ease-in-out infinite;
}
.scn-roussillon-moderate-lamentation .shadow {
  position: absolute; bottom: 22%; left: 38%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%);
  filter: blur(4px);
  animation: ml-shadow 6s ease-in-out infinite alternate;
}
.scn-roussillon-moderate-lamentation .candle {
  position: absolute; bottom: 35%; left: 30%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0c080 0%, #a07030 100%);
  border-radius: 2px 2px 1px 1px;
  animation: ml-candle 3s ease-in-out infinite;
}
.scn-roussillon-moderate-lamentation .glow {
  position: absolute; bottom: 35%; left: 30%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 40%, transparent 70%);
  border-radius: 50%;
  animation: ml-glow 3s ease-in-out infinite alternate;
}
.scn-roussillon-moderate-lamentation .beam {
  position: absolute; top: 12%; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(135deg, rgba(255,255,200,0.15) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 0% 100%);
  animation: ml-beam 10s ease-in-out infinite alternate;
}
.scn-roussillon-moderate-lamentation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #c8b08a 0%, #a08868 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  animation: ml-floor 15s ease-in-out infinite alternate;
}
@keyframes ml-window {
  0% { opacity: 0.8; background: linear-gradient(135deg, #ffe 0%, #eef 50%, #dde 100%); }
  50% { opacity: 1; background: linear-gradient(135deg, #fff 0%, #f0f0f8 50%, #dde 100%); }
  100% { opacity: 0.9; background: linear-gradient(135deg, #f5f5e5 0%, #ddd 50%, #cce 100%); }
}
@keyframes ml-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ml-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes ml-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.05); }
  100% { opacity: 0.4; transform: scaleX(1); }
}
@keyframes ml-candle {
  0% { transform: scaleY(1) translateY(0); }
  25% { transform: scaleY(1.02) translateY(-1px); }
  50% { transform: scaleY(0.98) translateY(1px); }
  75% { transform: scaleY(1.01) translateY(-0.5px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes ml-glow {
  0% { opacity: 0.6; box-shadow: 0 0 10px #ffd080; }
  50% { opacity: 0.8; box-shadow: 0 0 20px #ffd080; }
  100% { opacity: 0.7; box-shadow: 0 0 15px #ffd080; }
}
@keyframes ml-beam {
  0% { opacity: 0.1; transform: translateX(-5px); }
  50% { opacity: 0.25; transform: translateX(5px); }
  100% { opacity: 0.15; transform: translateX(-3px); }
}
@keyframes ml-floor {
  0% { background: linear-gradient(180deg, #c8b08a 0%, #a08868 100%); }
  50% { background: linear-gradient(180deg, #d0b894 0%, #a89070 100%); }
  100% { background: linear-gradient(180deg, #c0a880 0%, #9a7a5a 100%); }
}

/* rousillon-bertram-blessing */
.scn-roussillon-bertram-blessing {
  background: linear-gradient(180deg, #f0e8d0 0%, #dcc9a8 50%, #b8a080 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-roussillon-bertram-blessing .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b8d0e8 0%, #e0f0ff 70%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  animation: bb-sky 20s ease-in-out infinite alternate;
}
.scn-roussillon-bertram-blessing .arch {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #c8b898 0%, #a08868 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.1);
  animation: bb-arch 15s ease-in-out infinite;
}
.scn-roussillon-bertram-blessing .figure-blesser {
  position: absolute; bottom: 28%; left: 48%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bb-blesser 5s ease-in-out infinite alternate;
}
.scn-roussillon-bertram-blessing .figure-depart {
  position: absolute; bottom: 28%; left: 60%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bb-depart 7s ease-in-out infinite alternate;
}
.scn-roussillon-bertram-blessing .light-ray {
  position: absolute; top: 8%; left: 42%; width: 16%; height: 60%;
  background: linear-gradient(135deg, rgba(255,255,200,0.2) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  animation: bb-ray 12s ease-in-out infinite alternate;
}
.scn-roussillon-bertram-blessing .shadow {
  position: absolute; bottom: 22%; left: 44%; width: 70px; height: 18px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 70%);
  filter: blur(3px);
  animation: bb-shadow 7s ease-in-out infinite alternate;
}
.scn-roussillon-bertram-blessing .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #d0b898 0%, #a88868 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  animation: bb-floor 14s ease-in-out infinite alternate;
}
@keyframes bb-sky {
  0% { background: linear-gradient(180deg, #b8d0e8 0%, #e0f0ff 70%); }
  50% { background: linear-gradient(180deg, #c0d8f0 0%, #e8f8ff 70%); }
  100% { background: linear-gradient(180deg, #b0c8e0 0%, #d8e8f8 70%); }
}
@keyframes bb-arch {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(0.99); }
}
@keyframes bb-blesser {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes bb-depart {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(4px) rotate(-1deg); }
  100% { transform: translateX(2px) rotate(0deg); }
}
@keyframes bb-ray {
  0% { opacity: 0.1; transform: translateX(-3px); }
  50% { opacity: 0.25; transform: translateX(3px); }
  100% { opacity: 0.15; transform: translateX(-2px); }
}
@keyframes bb-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.1); }
  100% { opacity: 0.35; transform: scaleX(0.95); }
}
@keyframes bb-floor {
  0% { background: linear-gradient(180deg, #d0b898 0%, #a88868 100%); }
  50% { background: linear-gradient(180deg, #d8c0a0 0%, #b09070 100%); }
  100% { background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); }
}

/* rousillon-helena-soliloquy */
.scn-roussillon-helena-soliloquy {
  background: linear-gradient(180deg, #f5e8dc 0%, #e3d0c0 50%, #c8b0a0 100%), radial-gradient(ellipse at 50% 0%, #ffe8d8 0%, transparent 60%);
}
.scn-roussillon-helena-soliloquy .window {
  position: absolute; top: 12%; left: 30%; width: 40%; height: 35%;
  background: linear-gradient(135deg, #fff5e8 0%, #f0e0d0 50%, #e0c8b8 100%);
  border: 2px solid #9a7a5a; border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,240,220,0.6);
  animation: hs-window 14s ease-in-out infinite alternate;
}
.scn-roussillon-helena-soliloquy .curtain {
  position: absolute; top: 12%; left: 28%; width: 44%; height: 38%;
  background: linear-gradient(90deg, #c8a890 0%, transparent 30%, transparent 70%, #c8a890 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  filter: blur(2px);
  animation: hs-curtain 18s ease-in-out infinite alternate;
}
.scn-roussillon-helena-soliloquy .figure {
  position: absolute; bottom: 32%; left: 46%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs-figure 6s ease-in-out infinite alternate;
}
.scn-roussillon-helena-soliloquy .desk {
  position: absolute; bottom: 28%; left: 38%; width: 70px; height: 20px;
  background: linear-gradient(180deg, #a08060 0%, #886850 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: hs-desk 10s ease-in-out infinite;
}
.scn-roussillon-helena-soliloquy .book {
  position: absolute; bottom: 32%; left: 50%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 2px 2px 8px 2px;
  transform-origin: bottom right;
  animation: hs-book 4s ease-in-out infinite alternate;
}
.scn-roussillon-helena-soliloquy .tear {
  position: absolute; bottom: 38%; left: 48%; width: 6px; height: 8px;
  background: radial-gradient(circle, #c0e0ff 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: hs-tear 3s ease-in-out infinite;
}
.scn-roussillon-helena-soliloquy .shadow {
  position: absolute; bottom: 24%; left: 42%; width: 60px; height: 16px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.12) 0%, transparent 70%);
  filter: blur(4px);
  animation: hs-shadow 6s ease-in-out infinite alternate;
}
@keyframes hs-window {
  0% { opacity: 0.85; background: linear-gradient(135deg, #fff5e8 0%, #f0e0d0 50%, #e0c8b8 100%); }
  50% { opacity: 1; background: linear-gradient(135deg, #fffaf0 0%, #f5e8d8 50%, #e8d0c0 100%); }
  100% { opacity: 0.9; background: linear-gradient(135deg, #f5e8d8 0%, #e8d0c0 50%, #d8b8a8 100%); }
}
@keyframes hs-curtain {
  0% { transform: translateX(-3px); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(-2px); }
}
@keyframes hs-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes hs-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes hs-book {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes hs-tear {
  0% { opacity: 0.3; transform: translateY(0) scale(1); }
  50% { opacity: 0.8; transform: translateY(-4px) scale(1.3); }
  100% { opacity: 0.2; transform: translateY(-2px) scale(0.9); }
}
@keyframes hs-shadow {
  0% { opacity: 0.2; transform: scaleX(1); }
  50% { opacity: 0.4; transform: scaleX(1.08); }
  100% { opacity: 0.25; transform: scaleX(0.95); }
}

/* rousillon-parolles-arrival */
.scn-roussillon-parolles-arrival {
  background: linear-gradient(180deg, #c8b8a0 0%, #a88a6a 50%, #7a5a3a 100%), radial-gradient(ellipse at 40% 0%, #eee0c8 0%, transparent 60%);
}
.scn-roussillon-parolles-arrival .doorway {
  position: absolute; top: 5%; left: 38%; width: 24%; height: 60%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 -30px 40px rgba(0,0,0,0.5);
  animation: pa-doorway 9s ease-in-out infinite alternate;
}
.scn-roussillon-parolles-arrival .figure {
  position: absolute; bottom: 28%; left: 46%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-figure 1.5s ease-in-out infinite alternate;
}
.scn-roussillon-parolles-arrival .shadow-harsh {
  position: absolute; bottom: 22%; left: 44%; width: 50px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(2px);
  animation: pa-shadow 2s ease-in-out infinite alternate;
}
.scn-roussillon-parolles-arrival .light-flare {
  position: absolute; top: 8%; left: 44%; width: 12%; height: 50%;
  background: linear-gradient(135deg, rgba(255,220,160,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 60% 100%, 0 100%);
  animation: pa-flare 0.8s ease-in-out infinite alternate;
}
.scn-roussillon-parolles-arrival .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #8a7058 0%, #5a3a2a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: pa-floor 10s ease-in-out infinite alternate;
}
.scn-roussillon-parolles-arrival .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 72%;
  background: linear-gradient(180deg, #b8a088 0%, #8a7058 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  animation: pa-wall 12s ease-in-out infinite alternate;
}
.scn-roussillon-parolles-arrival .step {
  position: absolute; bottom: 25%; left: 42%; width: 16%; height: 4%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: pa-step 2s ease-in-out infinite alternate;
}
@keyframes pa-doorway {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(0.99); }
}
@keyframes pa-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(3deg); }
  50% { transform: translateX(16px) rotate(-1deg); }
  75% { transform: translateX(8px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes pa-shadow {
  0% { opacity: 0.2; transform: translateX(0) scaleX(1); }
  50% { opacity: 0.5; transform: translateX(10px) scaleX(1.2); }
  100% { opacity: 0.3; transform: translateX(0) scaleX(0.9); }
}
@keyframes pa-flare {
  0% { opacity: 0.1; transform: translateX(-5px); }
  50% { opacity: 0.4; transform: translateX(5px); }
  100% { opacity: 0.15; transform: translateX(-3px); }
}
@keyframes pa-floor {
  0% { background: linear-gradient(180deg, #8a7058 0%, #5a3a2a 100%); }
  50% { background: linear-gradient(180deg, #90785e 0%, #604030 100%); }
  100% { background: linear-gradient(180deg, #846852 0%, #543422 100%); }
}
@keyframes pa-wall {
  0% { background: linear-gradient(180deg, #b8a088 0%, #8a7058 100%); }
  50% { background: linear-gradient(180deg, #c0a890 0%, #90785e 100%); }
  100% { background: linear-gradient(180deg, #b09880 0%, #846852 100%); }
}
@keyframes pa-step {
  0% { transform: translateX(0); }
  50% { transform: translateX(10px); }
  100% { transform: translateX(0); }
}

/* paris-king-reminisce */
.scn-paris-king-reminisce {
  background:
    linear-gradient(180deg, #d4c8a8 0%, #b8a888 35%, #a09070 100%),
    radial-gradient(ellipse at 50% 100%, #c8b898 0%, transparent 70%);
}
.scn-paris-king-reminisce .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8bc9c 0%, #b0a080 100%);
  box-shadow: inset 0 -8px 16px rgba(90,70,40,0.3);
  animation: pkr-wall 20s ease-in-out infinite alternate;
}
.scn-paris-king-reminisce .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-top: 2px solid #a09070;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.15);
}
.scn-paris-king-reminisce .window {
  position: absolute; top: 12%; left: 18%; width: 28%; height: 40%;
  background: linear-gradient(135deg, #e8e0d0 0%, #c8c0b0 50%, #a8a090 100%);
  border: 4px solid #7a6a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,240,200,0.5), 0 8px 16px rgba(0,0,0,0.2);
  animation: pkr-window 8s ease-in-out infinite alternate;
}
.scn-paris-king-reminisce .curtain-left,
.scn-paris-king-reminisce .curtain-right {
  position: absolute; top: 10%; width: 12%; height: 44%;
  background: linear-gradient(180deg, #b08868 0%, #906850 50%, #785840 100%);
  border-radius: 0 0 20px 20px;
  filter: drop-shadow(4px 0 6px rgba(0,0,0,0.3));
}
.scn-paris-king-reminisce .curtain-left {
  left: 12%;
  transform-origin: top left;
  animation: pkr-curtain-l 12s ease-in-out infinite alternate;
}
.scn-paris-king-reminisce .curtain-right {
  right: 12%;
  transform-origin: top right;
  animation: pkr-curtain-r 12s ease-in-out infinite alternate;
}
.scn-paris-king-reminisce .king-figure {
  position: absolute; bottom: 22%; left: 48%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 60%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: pkr-king 6s ease-in-out infinite;
}
.scn-paris-king-reminisce .chair {
  position: absolute; bottom: 20%; left: 44%; width: 20%; height: 28%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: translateX(-50%);
  animation: pkr-chair 8s ease-in-out infinite alternate;
}
.scn-paris-king-reminisce .candle-glow {
  position: absolute; bottom: 30%; left: 34%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd090 0%, #e8b060 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.6), 0 0 40px 16px rgba(255,200,100,0.3);
  animation: pkr-candle 3s ease-in-out infinite alternate;
}
.scn-paris-king-reminisce .dust-motes {
  position: absolute; top: 15%; left: 5%; width: 5%; height: 5%;
  background: radial-gradient(circle, rgba(255,240,200,0.3) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(3px);
  animation: pkr-dust 20s linear infinite;
}
@keyframes pkr-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pkr-window { 0% { opacity: 0.7; box-shadow: inset 0 0 30px rgba(255,240,200,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 60px rgba(255,240,200,0.6); } 100% { opacity: 0.8; box-shadow: inset 0 0 40px rgba(255,240,200,0.4); } }
@keyframes pkr-curtain-l { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(0.98); } 100% { transform: rotate(-1deg) scaleY(1.01); } }
@keyframes pkr-curtain-r { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-2deg) scaleY(0.98); } 100% { transform: rotate(1deg) scaleY(1.01); } }
@keyframes pkr-king { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(0.5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes pkr-chair { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.97); } 100% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes pkr-candle { 0% { opacity: 0.6; box-shadow: 0 0 15px 6px rgba(255,200,100,0.4); } 50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(255,200,100,0.7); } 100% { opacity: 0.7; box-shadow: 0 0 20px 8px rgba(255,200,100,0.5); } }
@keyframes pkr-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; } 10% { opacity: 0.5; } 50% { transform: translateY(-40px) translateX(20px) scale(1.5); opacity: 0.3; } 100% { transform: translateY(-80px) translateX(50px) scale(2); opacity: 0; } }

/* paris-bertram-remembrance */
.scn-paris-bertram-remembrance {
  background:
    linear-gradient(180deg, #c8bc9c 0%, #b0a080 40%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 100%, #b8a888 0%, transparent 80%);
}
.scn-paris-bertram-remembrance .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b8ac8c 0%, #a09070 100%);
  box-shadow: inset 0 -4px 8px rgba(60,40,20,0.2);
}
.scn-paris-bertram-remembrance .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-top: 2px solid #9a8a6a;
}
.scn-paris-bertram-remembrance .column {
  position: absolute; bottom: 20%; left: 30%; width: 8%; height: 50%;
  background: linear-gradient(90deg, #c8b898 0%, #b0a080 40%, #c8b898 80%);
  border-radius: 4px;
  box-shadow: 0 0 12px rgba(120,100,60,0.3);
}
.scn-paris-bertram-remembrance .pedestal {
  position: absolute; bottom: 18%; left: 28%; width: 12%; height: 8%;
  background: linear-gradient(180deg, #a89878 0%, #887860 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.15);
}
.scn-paris-bertram-remembrance .urn {
  position: absolute; bottom: 26%; left: 30%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #b8a080 0%, #9a7a5a 50%, #7a5a3a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform: translateX(18%);
  animation: pbr-urn 10s ease-in-out infinite alternate;
}
.scn-paris-bertram-remembrance .bertram-figure {
  position: absolute; bottom: 22%; left: 56%; width: 12%; height: 36%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0804 60%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: pbr-figure 7s ease-in-out infinite;
}
.scn-paris-bertram-remembrance .wreath {
  position: absolute; bottom: 32%; left: 29%; width: 8%; height: 6%;
  background: radial-gradient(ellipse, #5a7a3a 0%, #3a5a2a 60%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(60,100,40,0.3);
  transform: translateX(22%);
  animation: pbr-wreath 15s ease-in-out infinite alternate;
}
.scn-paris-bertram-remembrance .light-shaft {
  position: absolute; top: 5%; left: 25%; width: 20%; height: 70%;
  background: linear-gradient(180deg, rgba(255,245,220,0.2) 0%, rgba(255,245,220,0) 100%);
  filter: blur(8px);
  animation: pbr-shaft 12s ease-in-out infinite alternate;
}
@keyframes pbr-urn { 0% { transform: translateX(18%) translateY(0) scale(1); } 50% { transform: translateX(18%) translateY(-2px) scale(0.98); } 100% { transform: translateX(18%) translateY(0) scale(1.01); } }
@keyframes pbr-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-1px) rotate(1.5deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(0.5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes pbr-wreath { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes pbr-shaft { 0% { opacity: 0.1; transform: scaleY(0.8); } 50% { opacity: 0.3; transform: scaleY(1.1); } 100% { opacity: 0.15; transform: scaleY(0.9); } }

/* paris-king-ailment-question */
.scn-paris-king-ailment-question {
  background:
    linear-gradient(180deg, #c8bc9c 0%, #b0a080 35%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 100%, #b8a888 0%, transparent 75%);
}
.scn-paris-king-ailment-question .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c0b490 0%, #a89878 100%);
  box-shadow: inset 0 -6px 12px rgba(60,40,20,0.2);
}
.scn-paris-king-ailment-question .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-top: 2px solid #9a8a6a;
}
.scn-paris-king-ailment-question .window {
  position: absolute; top: 10%; left: 12%; width: 22%; height: 36%;
  background: linear-gradient(135deg, #e0d8c8 0%, #c0b8a8 60%, #a8a090 100%);
  border: 4px solid #6a5a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,240,200,0.4);
  animation: pkaq-window 9s ease-in-out infinite alternate;
}
.scn-paris-king-ailment-question .king-figure {
  position: absolute; bottom: 24%; left: 40%; width: 14%; height: 36%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 60%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: pkaq-king 6s ease-in-out infinite;
}
.scn-paris-king-ailment-question .courtier-figure {
  position: absolute; bottom: 22%; left: 60%; width: 12%; height: 34%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0804 60%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: pkaq-courtier 7s ease-in-out infinite;
}
.scn-paris-king-ailment-question .stool {
  position: absolute; bottom: 18%; left: 48%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform: translateX(-50%);
  animation: pkaq-stool 10s ease-in-out infinite alternate;
}
.scn-paris-king-ailment-question .mortar {
  position: absolute; bottom: 28%; left: 34%; width: 6%; height: 6%;
  background: radial-gradient(circle, #c8a080 0%, #a08060 80%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: translateX(-50%);
  animation: pkaq-mortar 15s ease-in-out infinite alternate;
}
.scn-paris-king-ailment-question .glow {
  position: absolute; bottom: 32%; left: 36%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd090 0%, #e8b060 60%);
  border-radius: 50%;
  box-shadow: 0 0 24px 10px rgba(255,200,100,0.5);
  animation: pkaq-glow 3s ease-in-out infinite alternate;
}
.scn-paris-king-ailment-question .shadow-veil {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 50%, transparent 30%, rgba(40,30,10,0.15) 100%);
  pointer-events: none;
  animation: pkaq-veil 20s ease-in-out infinite alternate;
}
@keyframes pkaq-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pkaq-king { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(0.5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes pkaq-courtier { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-1px) rotate(-0.5deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0.5deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-0.3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes pkaq-stool { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.96); } 100% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes pkaq-mortar { 0% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-1px) scale(0.95); } 100% { transform: translateX(-50%) translateY(0) scale(1.02); } }
@keyframes pkaq-glow { 0% { opacity: 0.6; box-shadow: 0 0 18px 8px rgba(255,200,100,0.4); } 50% { opacity: 1; box-shadow: 0 0 30px 14px rgba(255,200,100,0.7); } 100% { opacity: 0.8; box-shadow: 0 0 22px 10px rgba(255,200,100,0.5); } }
@keyframes pkaq-veil { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* rousillon-countess-steward-clown */
.scn-roussillon-countess-steward-clown {
  background:
    linear-gradient(180deg, #c8bc9c 0%, #b0a080 40%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 100%, #b8a888 0%, transparent 80%);
}
.scn-roussillon-countess-steward-clown .backdrop {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #b8ac8c 0%, #a09070 100%);
  box-shadow: inset 0 -4px 8px rgba(60,40,20,0.2);
}
.scn-roussillon-countess-steward-clown .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-top: 3px solid #9a8a6a;
}
.scn-roussillon-countess-steward-clown .countess-figure {
  position: absolute; bottom: 24%; left: 30%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 60%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: rcsc-countess 7s ease-in-out infinite;
}
.scn-roussillon-countess-steward-clown .steward-figure {
  position: absolute; bottom: 22%; left: 55%; width: 12%; height: 36%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0804 60%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: rcsc-steward 8s ease-in-out infinite;
}
.scn-roussillon-countess-steward-clown .clown-figure {
  position: absolute; bottom: 20%; left: 75%; width: 12%; height: 34%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 60%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: rcsc-clown 6s ease-in-out infinite;
}
.scn-roussillon-countess-steward-clown .clown-hat {
  position: absolute; bottom: 46%; left: 74%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #8a6040 0%, #6a4020 100%);
  border-radius: 50% 50% 0 0;
  transform: translateX(-50%) rotate(-8deg);
  animation: rcsc-hat 4s ease-in-out infinite alternate;
}
.scn-roussillon-countess-steward-clown .curtain-left,
.scn-roussillon-countess-steward-clown .curtain-right {
  position: absolute; top: 0; width: 10%; height: 75%;
  background: linear-gradient(180deg, #a08060 0%, #806040 50%, #604020 100%);
  border-radius: 0 0 20px 20px;
  filter: drop-shadow(2px 0 4px rgba(0,0,0,0.3));
}
.scn-roussillon-countess-steward-clown .curtain-left {
  left: 0;
  transform-origin: top left;
  animation: rcsc-curtain-l 14s ease-in-out infinite alternate;
}
.scn-roussillon-countess-steward-clown .curtain-right {
  right: 0;
  transform-origin: top right;
  animation: rcsc-curtain-r 14s ease-in-out infinite alternate;
}
.scn-roussillon-countess-steward-clown .candle-light {
  position: absolute; bottom: 34%; left: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd090 0%, #e8b060 60%);
  border-radius: 50%;
  box-shadow: 0 0 28px 12px rgba(255,200,100,0.5), 0 0 50px 20px rgba(255,200,100,0.2);
  animation: rcsc-candle 3s ease-in-out infinite alternate;
}
@keyframes rcsc-countess { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-0.5deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(0.5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes rcsc-steward { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0.5deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-0.5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes rcsc-clown { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(1.5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes rcsc-hat { 0% { transform: translateX(-50%) rotate(-8deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(-2deg) scaleY(0.95); } 100% { transform: translateX(-50%) rotate(-10deg) scaleY(1.05); } }
@keyframes rcsc-curtain-l { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(3deg) scaleX(0.97); } 100% { transform: rotate(-2deg) scaleX(1.03); } }
@keyframes rcsc-curtain-r { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(-3deg) scaleX(0.97); } 100% { transform: rotate(2deg) scaleX(1.03); } }
@keyframes rcsc-candle { 0% { opacity: 0.5; box-shadow: 0 0 20px 10px rgba(255,200,100,0.3); } 50% { opacity: 1; box-shadow: 0 0 35px 16px rgba(255,200,100,0.6); } 100% { opacity: 0.7; box-shadow: 0 0 25px 12px rgba(255,200,100,0.4); } }

.scn-rousillon-virginity-discourse {
  background:
    linear-gradient(180deg, #fef3c7 0%, #fde68a 50%, #facc15 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e1 0%, transparent 70%);
}
.scn-rousillon-virginity-discourse .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #ffedd5 0%, #fed7aa 100%);
  animation: rvd-bg 6s ease-in-out infinite alternate;
}
.scn-rousillon-virginity-discourse .wall {
  position: absolute; bottom: 20%; left: 5%; width: 35%; height: 60%;
  background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 100%);
  border-radius: 12% 12% 4% 4%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: rvd-wall 5s ease-in-out infinite;
}
.scn-rousillon-virginity-discourse .window {
  position: absolute; bottom: 40%; left: 14%; width: 14%; height: 16%;
  background: radial-gradient(circle, #fef3c7 0%, #f59e0b 70%);
  border-radius: 10%; box-shadow: 0 0 30px 10px #fbbf24, 0 0 60px 20px rgba(251,191,36,0.3);
  animation: rvd-window 3s ease-in-out infinite alternate;
}
.scn-rousillon-virginity-discourse .knight {
  position: absolute; bottom: 10%; left: 55%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #1e3a5f 0%, #0f1b33 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rvd-knight 4s ease-in-out infinite;
}
.scn-rousillon-virginity-discourse .ram {
  position: absolute; bottom: 15%; left: 45%; width: 25%; height: 4%;
  background: linear-gradient(90deg, #78350f, #92400e);
  border-radius: 10%; transform-origin: left center;
  animation: rvd-ram 3s ease-in-out infinite;
}
.scn-rousillon-virginity-discourse .bomb {
  position: absolute; bottom: 45%; right: 10%; width: 8%; height: 8%;
  background: radial-gradient(circle, #1c1917 0%, #292524 60%, #44403c 100%);
  border-radius: 50%; box-shadow: 0 0 20px 5px rgba(255,200,50,0.3);
  animation: rvd-bomb 2s ease-in-out infinite alternate;
}
.scn-rousillon-virginity-discourse .spark {
  position: absolute; bottom: 50%; right: 6%; width: 2%; height: 4%;
  background: #facc15; border-radius: 50%; box-shadow: 0 0 12px 6px #fbbf24;
  animation: rvd-spark 0.8s linear infinite;
}
@keyframes rvd-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes rvd-wall { 0% { transform: translateX(0) translateY(0) } 30% { transform: translateX(-2px) translateY(1px) } 60% { transform: translateX(1px) translateY(-1px) } 100% { transform: translateX(0) } }
@keyframes rvd-window { 0% { box-shadow: 0 0 20px 5px #fbbf24; opacity: 0.8 } 50% { box-shadow: 0 0 40px 15px #facc15; opacity: 1 } 100% { box-shadow: 0 0 25px 8px #fbbf24; opacity: 0.85 } }
@keyframes rvd-knight { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(-1deg) } 75% { transform: translateX(9px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(12px) translateY(0) } }
@keyframes rvd-ram { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.2) translateX(10px) } 100% { transform: scaleX(1) translateX(0) } }
@keyframes rvd-bomb { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.1) rotate(15deg) } 100% { transform: scale(0.95) rotate(-5deg) } }
@keyframes rvd-spark { 0% { transform: scale(1) translateY(0); opacity: 1 } 50% { transform: scale(1.5) translateY(-6px); opacity: 0.5 } 100% { transform: scale(1) translateY(0); opacity: 1 } }

.scn-item-virginity-brooch {
  background:
    linear-gradient(180deg, #fafaf9 0%, #f5e6d3 50%, #e2c8a3 100%),
    radial-gradient(circle at 50% 60%, #fef9c3 0%, transparent 80%);
}
.scn-item-virginity-brooch .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #fff3e0 0%, #ffe0b2 100%);
  animation: ivb-bg 10s linear infinite alternate;
}
.scn-item-virginity-brooch .brooch {
  position: absolute; bottom: 35%; left: 50%; width: 30%; height: 30%;
  transform: translateX(-50%); background: radial-gradient(circle, #fbbf24 0%, #d97706 50%, #b45309 100%);
  border-radius: 50%; box-shadow: 0 8px 30px rgba(0,0,0,0.3);
  animation: ivb-brooch 6s ease-in-out infinite alternate;
}
.scn-item-virginity-brooch .gem {
  position: absolute; bottom: 42%; left: 50%; width: 12%; height: 12%;
  transform: translateX(-50%); background: radial-gradient(circle, #60a5fa 0%, #2563eb 60%);
  border-radius: 50%; box-shadow: 0 0 40px 10px #93c5fd;
  animation: ivb-gem 4s ease-in-out infinite alternate;
}
.scn-item-virginity-brooch .pin {
  position: absolute; bottom: 28%; left: 50%; width: 2%; height: 16%;
  transform: translateX(-50%); background: linear-gradient(180deg, #9ca3af, #6b7280);
  border-radius: 20%; transform-origin: top;
  animation: ivb-pin 5s ease-in-out infinite;
}
.scn-item-virginity-brooch .shine {
  position: absolute; bottom: 45%; left: 44%; width: 6%; height: 6%;
  background: radial-gradient(circle, #ffffff 0%, rgba(255,255,255,0) 100%);
  border-radius: 50%;
  animation: ivb-shine 3s linear infinite;
}
.scn-item-virginity-brooch .box {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #d4a373 0%, #b5835a 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: inset 0 -4px 10px rgba(0,0,0,0.2);
  animation: ivb-box 8s ease-in-out infinite alternate;
}
.scn-item-virginity-brooch .shadow {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 8%;
  background: rgba(0,0,0,0.1); border-radius: 50%; filter: blur(8px);
  animation: ivb-shadow 6s ease-in-out infinite;
}
@keyframes ivb-bg { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes ivb-brooch { 0% { transform: translateX(-50%) rotate(-2deg) scale(1) } 50% { transform: translateX(-50%) rotate(2deg) scale(1.05) } 100% { transform: translateX(-50%) rotate(-2deg) scale(1) } }
@keyframes ivb-gem { 0% { box-shadow: 0 0 30px 5px #93c5fd; opacity: 0.9 } 50% { box-shadow: 0 0 60px 20px #60a5fa; opacity: 1 } 100% { box-shadow: 0 0 30px 5px #93c5fd; opacity: 0.9 } }
@keyframes ivb-pin { 0% { transform: translateX(-50%) rotate(-3deg) } 50% { transform: translateX(-50%) rotate(3deg) } 100% { transform: translateX(-50%) rotate(-3deg) } }
@keyframes ivb-shine { 0% { transform: rotate(0deg) translateY(0); opacity: 0.5 } 50% { transform: rotate(180deg) translateY(-10px); opacity: 1 } 100% { transform: rotate(360deg) translateY(0); opacity: 0.5 } }
@keyframes ivb-box { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ivb-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } 100% { transform: scaleX(1) } }

.scn-rousillon-parolles-advice {
  background:
    linear-gradient(180deg, #fdf8e1 0%, #f9e4b5 50%, #edc77b 100%),
    radial-gradient(ellipse at 30% 80%, #fef3c7 0%, transparent 60%);
}
.scn-rousillon-parolles-advice .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #fffbeb 0%, #fde68a 100%);
  animation: rpa-bg 12s linear infinite alternate;
}
.scn-rousillon-parolles-advice .window {
  position: absolute; top: 10%; left: 60%; width: 30%; height: 45%;
  background: linear-gradient(135deg, #bfdbfe 0%, #93c5fd 100%);
  border: 6px solid #b45309; border-radius: 8%;
  animation: rpa-window 5s ease-in-out infinite alternate;
}
.scn-rousillon-parolles-advice .figure {
  position: absolute; bottom: 10%; left: 15%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #292524 0%, #1c1917 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rpa-figure 4s ease-in-out infinite;
}
.scn-rousillon-parolles-advice .cape {
  position: absolute; bottom: 10%; left: 10%; width: 22%; height: 28%;
  background: linear-gradient(180deg, #7c3aed 0%, #5b21b6 100%);
  border-radius: 30% 70% 50% 50% / 40% 60% 50% 50%;
  transform-origin: top center;
  animation: rpa-cape 6s ease-in-out infinite alternate;
}
.scn-rousillon-parolles-advice .stick {
  position: absolute; bottom: 12%; left: 16%; width: 2%; height: 34%;
  background: linear-gradient(180deg, #78350f, #451a03);
  border-radius: 10%; transform-origin: bottom center;
  animation: rpa-stick 3s ease-in-out infinite;
}
.scn-rousillon-parolles-advice .mirror {
  position: absolute; bottom: 25%; left: 72%; width: 10%; height: 14%;
  background: linear-gradient(135deg, #fef3c7 0%, #d97706 100%);
  border: 3px solid #92400e; border-radius: 20%;
  animation: rpa-mirror 8s ease-in-out infinite alternate;
}
.scn-rousillon-parolles-advice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #b45309 0%, #92400e 100%);
  border-radius: 4% 4% 0 0;
  animation: rpa-floor 10s linear infinite alternate;
}
@keyframes rpa-bg { 0% { opacity: 0.95 } 100% { opacity: 1 } }
@keyframes rpa-window { 0% { background-position: 0% 0%; box-shadow: inset 0 0 30px #fff } 50% { background-position: 50% 50%; box-shadow: inset 0 0 60px #fff } 100% { background-position: 100% 100%; box-shadow: inset 0 0 30px #fff } }
@keyframes rpa-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(4px) rotate(-2deg) } 75% { transform: translateX(6px) rotate(1deg) } 100% { transform: translateX(8px) rotate(0deg) } }
@keyframes rpa-cape { 0% { transform: rotate(-3deg) scaleX(1) } 50% { transform: rotate(3deg) scaleX(1.1) } 100% { transform: rotate(-3deg) scaleX(1) } }
@keyframes rpa-stick { 0% { transform: rotate(-2deg) } 50% { transform: rotate(4deg) } 100% { transform: rotate(-2deg) } }
@keyframes rpa-mirror { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.05) translateY(-2px) } 100% { transform: scale(1) translateY(0) } }
@keyframes rpa-floor { 0% { opacity: 0.9 } 100% { opacity: 1 } }

.scn-rousillon-helena-wish {
  background:
    linear-gradient(180deg, #fdf4ff 0%, #e9d5ff 40%, #c084fc 100%),
    radial-gradient(ellipse at 60% 20%, #fff7ed 0%, transparent 70%);
}
.scn-rousillon-helena-wish .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #faf5ff 0%, #f3e8ff 100%);
  animation: rhw-bg 15s ease-in-out infinite alternate;
}
.scn-rousillon-helena-wish .window {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 60%;
  background: linear-gradient(135deg, #bfdbfe 0%, #dbeafe 100%);
  border: 8px solid #d4a373; border-radius: 10%;
  animation: rhw-window 8s ease-in-out infinite alternate;
}
.scn-rousillon-helena-wish .light {
  position: absolute; top: 20%; left: 25%; width: 50%; height: 30%;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 70% 100%, 30% 100%);
  animation: rhw-light 6s ease-in-out infinite alternate;
}
.scn-rousillon-helena-wish .figure {
  position: absolute; bottom: 15%; left: 38%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #292524 0%, #1c1917 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rhw-figure 9s ease-in-out infinite;
}
.scn-rousillon-helena-wish .phoenix {
  position: absolute; top: 20%; right: 20%; width: 12%; height: 12%;
  background: linear-gradient(135deg, #fbbf24 0%, #d97706 50%, #f59e0b 100%);
  border-radius: 50% 50% 0 0; clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: rhw-phoenix 7s ease-in-out infinite alternate;
}
.scn-rousillon-helena-wish .cloud {
  position: absolute; top: 8%; left: 10%; width: 20%; height: 6%;
  background: rgba(255,255,255,0.4); border-radius: 50%; filter: blur(8px);
  animation: rhw-cloud 30s linear infinite;
}
.scn-rousillon-helena-wish .curtain {
  position: absolute; top: 0; width: 8%; height: 100%;
  background: linear-gradient(180deg, #d4a373 0%, #b5835a 100%);
  border-radius: 10%;
}
.scn-rousillon-helena-wish .curtain { left: 12%; animation: rhw-curtain-l 8s ease-in-out infinite alternate; }
.scn-rousillon-helena-wish .curtain:last-child { left: auto; right: 12%; animation: rhw-curtain-r 8s ease-in-out infinite alternate; }
@keyframes rhw-bg { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes rhw-window { 0% { opacity: 0.8; box-shadow: inset 0 0 40px #fff } 50% { opacity: 1; box-shadow: inset 0 0 80px #fff } 100% { opacity: 0.9; box-shadow: inset 0 0 40px #fff } }
@keyframes rhw-light { 0% { opacity: 0.3 } 50% { opacity: 0.7 } 100% { opacity: 0.4 } }
@keyframes rhw-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rhw-phoenix { 0% { transform: translateY(0) rotate(-5deg) scale(1) } 50% { transform: translateY(-8px) rotate(5deg) scale(1.1) } 100% { transform: translateY(0) rotate(-5deg) scale(1) } }
@keyframes rhw-cloud { 0% { transform: translateX(-20px) } 100% { transform: translateX(120vw) } }
@keyframes rhw-curtain-l { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } 100% { transform: scaleX(1) } }
@keyframes rhw-curtain-r { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } 100% { transform: scaleX(1) } }

.scn-rousillon-bertram-leaving {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(180deg, #e3d8c4 0%, #c2a98a 100%), radial-gradient(ellipse at 50% 100%, #a08870 0%, transparent 70%);
}
.scn-rousillon-bertram-leaving .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #d4c5ae 0%, #b2977a 100%); z-index:0; }
.scn-rousillon-bertram-leaving .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b7355, #5a4a35); z-index:1; }
.scn-rousillon-bertram-leaving .window { position:absolute; top:10%; left:35%; width:30%; height:50%; background: linear-gradient(180deg, #fff8e0, #ffe4b5); border-radius: 20% 20% 0 0 / 30% 30% 0 0; z-index:2; animation: rb-window 20s ease-in-out infinite alternate; }
.scn-rousillon-bertram-leaving .arch { position:absolute; top:10%; left:35%; width:30%; height:55%; border: 4px solid #8b7355; border-radius: 50% 50% 0 0 / 60% 60% 0 0; background: transparent; z-index:3; pointer-events:none; animation: rb-arch 8s ease-in-out infinite alternate; }
.scn-rousillon-bertram-leaving .curtain-l { position:absolute; top:10%; left:25%; width:10%; height:60%; background: linear-gradient(180deg, #7a6b56, #4a3f30); border-radius: 0 30% 30% 0; transform-origin: top; z-index:4; animation: rb-curtain 12s ease-in-out infinite alternate; }
.scn-rousillon-bertram-leaving .curtain-r { position:absolute; top:10%; right:25%; width:10%; height:60%; background: linear-gradient(180deg, #7a6b56, #4a3f30); border-radius: 30% 0 0 30%; transform-origin: top; z-index:4; animation: rb-curtain 12s ease-in-out infinite alternate; animation-delay: -3s; }
.scn-rousillon-bertram-leaving .bertram { position:absolute; bottom:30%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a3a, #0a0a1a); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; z-index:5; animation: rb-walk 6s ease-in-out infinite; }
.scn-rousillon-bertram-leaving .countess { position:absolute; bottom:30%; left:55%; width:25px; height:55px; background: linear-gradient(180deg, #3a2a2a, #1a0a0a); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; z-index:5; animation: rb-stand 4s ease-in-out infinite; }
.scn-rousillon-bertram-leaving .arm { position:absolute; bottom:38%; left:57%; width:20px; height:8px; background: #3a2a2a; border-radius: 0 50% 50% 0; transform-origin: left center; z-index:6; animation: rb-reach 6s ease-in-out infinite; }
@keyframes rb-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes rb-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes rb-curtain { 0% { transform: skewY(0deg); } 50% { transform: skewY(4deg); } 100% { transform: skewY(-2deg); } }
@keyframes rb-walk { 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 rb-stand { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes rb-reach { 0% { transform: rotate(-20deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }

.scn-rousillon-gerard-de-narbon {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-rousillon-gerard-de-narbon .wall { position:absolute; inset:0; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); z-index:0; }
.scn-rousillon-gerard-de-narbon .shelf { position:absolute; bottom:30%; left:20%; right:20%; height:10px; background: #4a3a2a; border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,.5); z-index:1; animation: rd-shelf 15s ease-in-out infinite; }
.scn-rousillon-gerard-de-narbon .portrait-frame { position:absolute; bottom:40%; left:35%; width:30%; height:35%; border: 6px solid #6a5a3a; border-radius: 4px; background: transparent; z-index:2; animation: rd-frame 12s ease-in-out infinite alternate; }
.scn-rousillon-gerard-de-narbon .portrait-bust { position:absolute; bottom:42%; left:37%; width:26%; height:28%; background: linear-gradient(180deg, #c8b89a 0%, #6a5a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; z-index:3; animation: rd-bust 8s ease-in-out infinite alternate; }
.scn-rousillon-gerard-de-narbon .book1 { position:absolute; bottom:30%; left:22%; width:40px; height:30px; background: #6a5a3a; border-radius:2px; transform: rotate(-10deg); z-index:4; animation: rd-book1 20s ease-in-out infinite; }
.scn-rousillon-gerard-de-narbon .book2 { position:absolute; bottom:30%; left:30%; width:45px; height:25px; background: #7a6a4a; border-radius:2px; transform: rotate(5deg); z-index:4; animation: rd-book2 20s ease-in-out infinite; animation-delay: -5s; }
.scn-rousillon-gerard-de-narbon .candle { position:absolute; bottom:30%; left:55%; width:8px; height:40px; background: #e8d8b0; border-radius:2px; z-index:5; animation: rd-candle 6s ease-in-out infinite alternate; }
.scn-rousillon-gerard-de-narbon .flame { position:absolute; bottom:70%; left:55.5%; width:12px; height:16px; background: radial-gradient(circle, #ffd080 0%, #ffa060 50%, transparent 100%); border-radius: 50%; z-index:6; animation: rd-flame 2s ease-in-out infinite alternate; }
.scn-rousillon-gerard-de-narbon .glow { position:absolute; bottom:30%; left:50%; width:100px; height:100px; background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%); z-index:4; animation: rd-glow 3s ease-in-out infinite alternate; }
@keyframes rd-shelf { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes rd-frame { 0% { box-shadow: 0 0 10px rgba(0,0,0,0.5); } 50% { box-shadow: 0 0 20px rgba(0,0,0,0.7); } 100% { box-shadow: 0 0 10px rgba(0,0,0,0.5); } }
@keyframes rd-bust { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes rd-book1 { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes rd-book2 { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes rd-candle { 0% { height:40px; } 50% { height:42px; } 100% { height:39px; } }
@keyframes rd-flame { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.2) translateY(-3px); } 100% { transform: scaleY(0.9) translateY(1px); } }
@keyframes rd-glow { 0% { transform: scale(1); opacity:0.5; } 50% { transform: scale(1.1); opacity:0.7; } 100% { transform: scale(0.95); opacity:0.4; } }

.scn-rousillon-helena-praise {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b89a 100%), radial-gradient(ellipse at 50% 100%, #b8a88a 0%, transparent 70%);
}
.scn-rousillon-helena-praise .room { position:absolute; inset:0; background: linear-gradient(180deg, #d8c8b0, #b8a080); z-index:0; }
.scn-rousillon-helena-praise .window { position:absolute; top:5%; right:10%; width:25%; height:40%; background: linear-gradient(180deg, #fff8e8, #efe0c0); border-radius: 10% 10% 0 0; z-index:1; animation: rp-window 25s ease-in-out infinite alternate; }
.scn-rousillon-helena-praise .desk { position:absolute; bottom:20%; left:20%; right:20%; height:20px; background: #8b7b5a; border-radius: 2px; z-index:2; animation: rp-desk 12s ease-in-out infinite; }
.scn-rousillon-helena-praise .book { position:absolute; bottom:21%; left:30%; width:30px; height:20px; background: #6a5a3a; border-radius:2px; transform: rotate(5deg); z-index:3; animation: rp-book 8s ease-in-out infinite alternate; }
.scn-rousillon-helena-praise .helena { position:absolute; bottom:22%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #5a4a3a, #2a1a0a); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; z-index:4; animation: rp-fig1 6s ease-in-out infinite; }
.scn-rousillon-helena-praise .countess { position:absolute; bottom:22%; left:55%; width:28px; height:55px; background: linear-gradient(180deg, #6a5a4a, #3a2a1a); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; z-index:4; animation: rp-fig2 7s ease-in-out infinite; }
.scn-rousillon-helena-praise .lafeu { position:absolute; bottom:22%; left:65%; width:30px; height:58px; background: linear-gradient(180deg, #7a6a5a, #4a3a2a); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; z-index:4; animation: rp-fig3 8s ease-in-out infinite; }
.scn-rousillon-helena-praise .lightbeam { position:absolute; top:5%; left:35%; width:30%; height:90%; background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%); clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%); z-index:5; animation: rp-beam 20s ease-in-out infinite alternate; }
@keyframes rp-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes rp-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes rp-book { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(6deg) translateY(0); } }
@keyframes rp-fig1 { 0% { transform: translateY(0) rotate(-1deg); } 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 rp-fig2 { 0% { transform: translateY(0) rotate(1deg); } 30% { transform: translateY(-3px) rotate(0); } 60% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rp-fig3 { 0% { transform: translateY(0) rotate(-2deg); } 40% { transform: translateY(-2px) rotate(2deg); } 80% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rp-beam { 0% { opacity:0; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

.scn-rousillon-helena-sorrow {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%), radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 70%);
}
.scn-rousillon-helena-sorrow .room-dark { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); z-index:0; }
.scn-rousillon-helena-sorrow .window-dim { position:absolute; top:10%; right:15%; width:20%; height:35%; background: linear-gradient(180deg, #7a6a5a, #5a4a3a); border-radius: 10% 10% 0 0; z-index:1; animation: rs-win 25s ease-in-out infinite alternate; }
.scn-rousillon-helena-sorrow .column { position:absolute; bottom:0; left:10%; width:8%; height:100%; background: linear-gradient(180deg, #6a5a4a, #4a3a2a); z-index:2; animation: rs-column 15s ease-in-out infinite; }
.scn-rousillon-helena-sorrow .bench { position:absolute; bottom:20%; left:30%; right:30%; height:15px; background: #5a4a3a; border-radius:2px; z-index:3; animation: rs-bench 12s ease-in-out infinite; }
.scn-rousillon-helena-sorrow .helena-sorrow { position:absolute; bottom:20%; left:45%; width:24px; height:45px; background: linear-gradient(180deg, #3a2a2a, #1a0a0a); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; z-index:4; animation: rs-helena 6s ease-in-out infinite; }
.scn-rousillon-helena-sorrow .handkerchief { position:absolute; bottom:30%; left:48%; width:16px; height:8px; background: #6a5a4a; border-radius: 50% 50% 30% 30%; z-index:5; animation: rs-cloth 8s ease-in-out infinite alternate; }
.scn-rousillon-helena-sorrow .teardrop { position:absolute; bottom:45%; left:46%; width:4px; height:6px; background: rgba(200,200,220,0.6); border-radius: 50% 50% 0 50%; z-index:6; animation: rs-tear 4s ease-in-out infinite; }
.scn-rousillon-helena-sorrow .shadow-overlay { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%); z-index:7; pointer-events:none; animation: rs-shadow 20s ease-in-out infinite alternate; }
@keyframes rs-win { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.35; } }
@keyframes rs-column { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes rs-bench { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes rs-helena { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-3px) rotate(1deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rs-cloth { 0% { transform: translate(0,0) rotate(-5deg); } 50% { transform: translate(3px,-2px) rotate(8deg); } 100% { transform: translate(-1px,-1px) rotate(-3deg); } }
@keyframes rs-tear { 0% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(8px) scale(1.2); opacity:0; } 100% { transform: translateY(0) scale(0); opacity:0; } }
@keyframes rs-shadow { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.35; } }

.scn-roussillon-moderate-lamentation {
  background: 
    linear-gradient(180deg, #f4e8d0 0%, #dac4a0 50%, #b89868 100%),
    radial-gradient(ellipse at 30% 40%, #fff1d6 0%, transparent 60%);
}
.scn-roussillon-moderate-lamentation .wall-back {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(135deg, #e8d4b8 0%, #dac0a0 100%);
  opacity: 0.6;
}
.scn-roussillon-moderate-lamentation .arch {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 60%;
  background: linear-gradient(180deg, #c8a870 0%, #b89860 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -12px 20px rgba(0,0,0,0.1), 0 0 30px rgba(255,235,180,0.2);
}
.scn-roussillon-moderate-lamentation .window {
  position: absolute; bottom: 30%; left: 38%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #fffae6 0%, #e8d0a0 100%);
  border-radius: 4px; box-shadow: 0 0 40px rgba(255,240,180,0.4);
  animation: rml-glow 6s ease-in-out infinite;
}
.scn-roussillon-moderate-lamentation .candle {
  position: absolute; bottom: 28%; left: 52%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0d090 0%, #c8a060 100%);
  border-radius: 4px 4px 2px 2px;
  transform-origin: bottom center;
  animation: rml-candle 4s ease-in-out infinite;
}
.scn-roussillon-moderate-lamentation .figure-mourn {
  position: absolute; bottom: 22%; left: 30%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 60% 60% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: rml-figure 8s ease-in-out infinite alternate;
}
.scn-roussillon-moderate-lamentation .chair {
  position: absolute; bottom: 18%; left: 44%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform: scale(0.95);
}
.scn-roussillon-moderate-lamentation .light-ray {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, rgba(255,255,200,0.15) 0%, transparent 50%);
  pointer-events: none;
  animation: rml-ray 8s ease-in-out infinite;
}

@keyframes rml-glow {
  0%,100% { opacity: 0.85; box-shadow: 0 0 30px rgba(255,240,180,0.3); }
  50% { opacity: 1; box-shadow: 0 0 50px rgba(255,240,180,0.5); }
}
@keyframes rml-candle {
  0%,100% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(1deg) scaleY(1.02); }
  50% { transform: rotate(-0.5deg) scaleY(0.98); }
  75% { transform: rotate(0.5deg) scaleY(1.01); }
}
@keyframes rml-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes rml-ray {
  0%,100% { opacity: 0.6; }
  50% { opacity: 1; }
}

.scn-roussillon-bertram-blessing {
  background: 
    linear-gradient(180deg, #f2e6d0 0%, #dac4a0 50%, #bea47c 100%),
    radial-gradient(ellipse at 70% 40%, #fff5e0 0%, transparent 60%);
}
.scn-roussillon-bertram-blessing .wall-back {
  position: absolute; inset: 0 0 8% 0;
  background: linear-gradient(135deg, #e4d0b4 0%, #d4be9c 100%);
  opacity: 0.5;
}
.scn-roussillon-bertram-blessing .doorway {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 65%;
  background: linear-gradient(180deg, #c8b090 0%, #a88a6a 100%);
  border-radius: 40% 40% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.1), 0 0 40px rgba(255,235,180,0.15);
}
.scn-roussillon-bertram-blessing .figure-left {
  position: absolute; bottom: 22%; left: 28%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #6b5b4b 0%, #4a3a2a 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: rbb-fig-left 6s ease-in-out infinite alternate;
}
.scn-roussillon-bertram-blessing .figure-right {
  position: absolute; bottom: 22%; right: 28%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 50% 40% 30% / 50% 60% 50% 40%;
  transform-origin: bottom center;
  animation: rbb-fig-right 6s ease-in-out infinite alternate;
  animation-delay: -1s;
}
.scn-roussillon-bertram-blessing .light-shaft {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, rgba(255,245,200,0.2) 0%, transparent 60%);
  pointer-events: none;
  animation: rbb-shaft 10s ease-in-out infinite;
}
.scn-roussillon-bertram-blessing .lantern-bless {
  position: absolute; bottom: 30%; left: 48%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #ffd080 0%, #d09040 70%);
  border-radius: 40%;
  box-shadow: 0 0 20px 6px rgba(255,200,80,0.4), 0 0 40px 12px rgba(255,200,80,0.2);
  animation: rbb-lantern 4s ease-in-out infinite;
}
.scn-roussillon-bertram-blessing .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #b09870 0%, #8a704a 100%);
  border-radius: 20% 20% 0 0 / 60% 60% 0 0;
}

@keyframes rbb-fig-left {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes rbb-fig-right {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-5px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes rbb-shaft {
  0%,100% { opacity: 0.6; }
  50% { opacity: 1; }
}
@keyframes rbb-lantern {
  0%,100% { transform: scale(1) rotate(-3deg); box-shadow: 0 0 20px 6px rgba(255,200,80,0.4), 0 0 40px 12px rgba(255,200,80,0.2); }
  50% { transform: scale(1.05) rotate(3deg); box-shadow: 0 0 30px 10px rgba(255,200,80,0.6), 0 0 60px 18px rgba(255,200,80,0.3); }
}

.scn-rousillon-countess-steward-clown {
  background: 
    radial-gradient(ellipse at 30% 20%, rgba(255,235,180,0.4) 0%, transparent 60%),
    linear-gradient(180deg, #e8dcc4 0%, #cbb89a 100%);
}

.scn-rousillon-countess-steward-clown .wall-back {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #f5e6c8 0%, #d4c4a8 100%);
}

.scn-rousillon-countess-steward-clown .window-arch {
  position: absolute;
  left: 10%;
  top: 15%;
  width: 80px;
  height: 100px;
  background: radial-gradient(ellipse at 50% 30%, #fffbe6 0%, #f0e0b8 70%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 -4px 12px rgba(200,180,140,0.6), 0 0 30px rgba(255,220,150,0.3);
  animation: rc-window 6s ease-in-out infinite alternate;
}

.scn-rousillon-countess-steward-clown .sunbeam {
  position: absolute;
  top: 18%;
  left: 15%;
  width: 120px;
  height: 60px;
  background: linear-gradient(135deg, rgba(255,240,190,0.5) 0%, transparent 80%);
  transform: rotate(20deg) skewX(-10deg);
  transform-origin: left top;
  filter: blur(3px);
  animation: rc-sunbeam 10s ease-in-out infinite alternate;
}

.scn-rousillon-countess-steward-clown .countess-figure {
  position: absolute;
  bottom: 35%;
  left: 45%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: rc-countess 8s ease-in-out infinite;
}

.scn-rousillon-countess-steward-clown .steward-figure {
  position: absolute;
  bottom: 33%;
  left: 62%;
  width: 24px;
  height: 52px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 45% 45%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: rc-steward 12s ease-in-out infinite;
}

.scn-rousillon-countess-steward-clown .clown-figure {
  position: absolute;
  bottom: 28%;
  left: 28%;
  width: 22px;
  height: 48px;
  background: linear-gradient(180deg, #8a7050 0%, #5a4a3a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: rc-clown 5s ease-in-out infinite;
}

.scn-rousillon-countess-steward-clown .floor-tile {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: 
    repeating-linear-gradient(90deg, #cbb89a 0px, #cbb89a 20px, #e8dcc4 20px, #e8dcc4 40px),
    linear-gradient(180deg, transparent 0%, #b8a080 100%);
  opacity: 0.6;
}

.scn-rousillon-countess-steward-clown .chandelier-glow {
  position: absolute;
  top: 5%;
  left: 50%;
  width: 40px;
  height: 30px;
  margin-left: -20px;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,200,100,0.2);
  animation: rc-chandelier 7s ease-in-out infinite alternate;
}

@keyframes rc-window {
  0% { box-shadow: inset 0 -4px 12px rgba(200,180,140,0.6), 0 0 30px rgba(255,220,150,0.3); }
  50% { box-shadow: inset 0 -4px 20px rgba(255,220,150,0.9), 0 0 50px rgba(255,240,180,0.5); }
  100% { box-shadow: inset 0 -4px 12px rgba(200,180,140,0.6), 0 0 30px rgba(255,220,150,0.3); }
}

@keyframes rc-sunbeam {
  0% { transform: rotate(20deg) skewX(-10deg) translateX(0); opacity: 0.7; }
  50% { transform: rotate(22deg) skewX(-8deg) translateX(4px); opacity: 1; }
  100% { transform: rotate(20deg) skewX(-10deg) translateX(0); opacity: 0.75; }
}

@keyframes rc-countess {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes rc-steward {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.9; }
  50% { transform: translateY(-1px) rotate(-0.3deg); opacity: 1; }
  100% { transform: translateY(0) rotate(0deg); opacity: 0.9; }
}

@keyframes rc-clown {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(6px) rotate(0deg); }
  75% { transform: translateX(3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes rc-chandelier {
  0% { transform: rotate(-1deg) scale(1); opacity: 0.8; }
  50% { transform: rotate(1deg) scale(1.02); opacity: 1; }
  100% { transform: rotate(-1deg) scale(1); opacity: 0.85; }
}

/* —————— Scene: rousillon-helena-soliloquy —————— */
.scn-rousillon-helena-soliloquy {
  background:
    radial-gradient(ellipse at 30% 20%, #fff8e7 0%, transparent 50%),
    linear-gradient(180deg, #f2e8d5 0%, #d9cbb5 40%, #b8a78b 100%);
  position: relative;
  overflow: hidden;
}
.scn-rousillon-helena-soliloquy .wall {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(210,190,165,0.4) 0%, transparent 60%),
    radial-gradient(ellipse at 50% 30%, #f5edd6 0%, #d6c4aa 80%);
  border-radius: 0;
}
.scn-rousillon-helena-soliloquy .window-frame {
  position: absolute; left: 30%; top: 15%; width: 28%; height: 40%;
  background:
    linear-gradient(135deg, #9a8872 0%, #6b5e4c 50%, #9a8872 100%);
  border: 4px solid #7a6b56;
  border-radius: 5px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.6);
  animation: rhs-frame 12s ease-in-out infinite alternate;
}
.scn-rousillon-helena-soliloquy .light-ray {
  position: absolute; left: 32%; top: 18%; width: 30%; height: 50%;
  background:
    linear-gradient(135deg, rgba(255,245,210,0.5) 0%, transparent 80%);
  transform: rotate(-15deg);
  filter: blur(6px);
  animation: rhs-ray 16s ease-in-out infinite alternate;
}
.scn-rousillon-helena-soliloquy .figure {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 60px;
  background:
    linear-gradient(180deg, #6a5a4a 0%, #3a2e24 60%, #2a1e15 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.1);
  animation: rhs-figure 8s ease-in-out infinite;
}
.scn-rousillon-helena-soliloquy .chair {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 40px;
  background:
    linear-gradient(180deg, #6b4f3a 0%, #3d2c1f 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(-3deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: rhs-chair 10s ease-in-out infinite alternate;
}
.scn-rousillon-helena-soliloquy .curtain {
  position: absolute; left: 20%; top: 10%; width: 12%; height: 60%;
  background:
    linear-gradient(180deg, #c4a882 0%, #9a8162 50%, #7a6750 100%);
  border-radius: 0% 50% 50% 0%;
  filter: drop-shadow(2px 0 4px rgba(0,0,0,0.2));
  animation: rhs-curtain 14s ease-in-out infinite alternate;
}
.scn-rousillon-helena-soliloquy .dust-a {
  position: absolute; left: 60%; top: 45%; width: 8px; height: 8px;
  background: radial-gradient(circle, #fff9e6 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: rhs-dust1 35s linear infinite;
}
.scn-rousillon-helena-soliloquy .dust-b {
  position: absolute; left: 70%; top: 55%; width: 5px; height: 5px;
  background: radial-gradient(circle, #fff9e6 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: rhs-dust2 40s linear infinite reverse;
}
@keyframes rhs-frame {
  0%   { opacity: 0.85; transform: scale(1); }
  50%  { opacity: 0.95; transform: scale(1.02); }
  100% { opacity: 0.9;  transform: scale(0.98); }
}
@keyframes rhs-ray {
  0%   { transform: rotate(-18deg) translateX(-2px); opacity: 0.4; }
  50%  { transform: rotate(-12deg) translateX(2px);  opacity: 0.7; }
  100% { transform: rotate(-15deg) translateX(0px);  opacity: 0.5; }
}
@keyframes rhs-figure {
  0%   { transform: translateY(0) rotate(0deg); }
  30%  { transform: translateY(-3px) rotate(-1deg); }
  60%  { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rhs-chair {
  0%   { transform: rotate(-3deg) translateY(0); }
  50%  { transform: rotate(-5deg) translateY(-1px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes rhs-curtain {
  0%   { transform: translateX(0); }
  50%  { transform: translateX(4px); }
  100% { transform: translateX(-2px); }
}
@keyframes rhs-dust1 {
  0%   { transform: translate(0,0); opacity: 0; }
  10%  { opacity: 0.6; }
  50%  { transform: translate(20px, -15px); opacity: 0.8; }
  100% { transform: translate(60px, -40px); opacity: 0; }
}
@keyframes rhs-dust2 {
  0%   { transform: translate(0,0); opacity: 0; }
  10%  { opacity: 0.5; }
  50%  { transform: translate(-10px, 5px); opacity: 0.7; }
  100% { transform: translate(-40px, 20px); opacity: 0; }
}

/* —————— Scene: rousillon-parolles-arrival —————— */
.scn-rousillon-parolles-arrival {
  background:
    radial-gradient(ellipse at 80% 10%, #fbe9c8 0%, transparent 60%),
    linear-gradient(135deg, #f0dcc0 0%, #b89a7a 50%, #6c5748 100%);
  position: relative;
  overflow: hidden;
}
.scn-rousillon-parolles-arrival .back-wall {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, #dac6b0 0%, #8a7560 80%),
    radial-gradient(circle at 70% 30%, #e8d2b5 0%, transparent 50%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.3);
}
.scn-rousillon-parolles-arrival .doorway {
  position: absolute; left: 72%; bottom: 0; width: 30%; height: 90%;
  background:
    linear-gradient(180deg, #2d241c 0%, #1e1712 80%);
  border-left: 3px solid #31281e;
  box-shadow: -10px 0 20px rgba(0,0,0,0.6);
  animation: rpa-door 6s ease-in-out infinite alternate;
}
.scn-rousillon-parolles-arrival .entrance-shadow {
  position: absolute; left: 65%; bottom: 0; width: 45%; height: 30%;
  background: linear-gradient(135deg, rgba(0,0,0,0.5) 0%, transparent 60%);
  transform: skewX(-10deg);
  filter: blur(8px);
  animation: rpa-shadow 3s ease-in-out infinite alternate;
}
.scn-rousillon-parolles-arrival .parolles-silhouette {
  position: absolute; left: 70%; bottom: 15%; width: 50px; height: 100px;
  background:
    linear-gradient(180deg, #1f1813 0%, #0f0b08 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: translateX(0);
  box-shadow: -2px 0 8px rgba(0,0,0,0.5);
  animation: rpa-enter 4s ease-in-out infinite;
}
.scn-rousillon-parolles-arrival .table {
  position: absolute; left: 30%; bottom: 14%; width: 90px; height: 12px;
  background:
    linear-gradient(180deg, #6b5544 0%, #4d3b2d 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: perspective(200px) rotateX(20deg);
  animation: rpa-table 8s ease-in-out infinite alternate;
}
.scn-rousillon-parolles-arrival .candle {
  position: absolute; left: 28%; bottom: 30%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e8d6b0 0%, #b58a5c 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  animation: rpa-candle 0.8s ease-in-out infinite alternate;
}
.scn-rousillon-parolles-arrival .sword-silhouette {
  position: absolute; left: 33%; bottom: 20%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #4a3b2e 0%, #2a1f17 100%);
  border-radius: 0 0 3px 3px;
  transform: rotate(-25deg);
  transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(0,0,0,0.4);
  animation: rpa-sword 3s ease-in-out infinite alternate;
}
.scn-rousillon-parolles-arrival .flicker-glint {
  position: absolute; left: 29%; bottom: 32%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffeaa0 0%, #dba868 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: rpa-glint 0.6s ease-in-out infinite alternate;
}
@keyframes rpa-door {
  0%   { transform: scaleY(1); opacity: 0.9; }
  50%  { transform: scaleY(1.01); opacity: 1; }
  100% { transform: scaleY(0.98); opacity: 0.85; }
}
@keyframes rpa-shadow {
  0%   { transform: skewX(-10deg) scaleX(1); opacity: 0.4; }
  50%  { transform: skewX(-12deg) scaleX(1.1); opacity: 0.7; }
  100% { transform: skewX(-8deg) scaleX(0.9); opacity: 0.5; }
}
@keyframes rpa-enter {
  0%   { transform: translateX(-10px) scaleX(0.95); opacity: 0.6; }
  40%  { transform: translateX(0px) scaleX(1); opacity: 1; }
  70%  { transform: translateX(3px) scaleX(1.02); opacity: 0.9; }
  100% { transform: translateX(0px) scaleX(0.98); opacity: 0.8; }
}
@keyframes rpa-table {
  0%   { transform: perspective(200px) rotateX(20deg) translateY(0); }
  50%  { transform: perspective(200px) rotateX(22deg) translateY(-2px); }
  100% { transform: perspective(200px) rotateX(18deg) translateY(0); }
}
@keyframes rpa-candle {
  0%   { transform: scaleY(1) rotate(0deg); opacity: 0.9; }
  30%  { transform: scaleY(1.1) rotate(-2deg); opacity: 1; }
  60%  { transform: scaleY(0.95) rotate(2deg); opacity: 0.7; }
  100% { transform: scaleY(1) rotate(0deg); opacity: 0.8; }
}
@keyframes rpa-sword {
  0%   { transform: rotate(-25deg) translateY(0); }
  50%  { transform: rotate(-22deg) translateY(-2px); }
  100% { transform: rotate(-28deg) translateY(0); }
}
@keyframes rpa-glint {
  0%   { opacity: 0.4; transform: scale(0.9); }
  50%  { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(1); }
}

.scn-rousillon-page-enters {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8d5b0 40%, #d4b890 100%),
    radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 60%);
}
.scn-rousillon-page-enters .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b8956a 0%, #8b6f4a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.15);
}
.scn-rousillon-page-enters .wall-panel {
  position: absolute; top: 0; left: 0; right: 0; bottom: 25%;
  background: repeating-linear-gradient(90deg,
    transparent 0px, transparent 60px,
    rgba(180,150,110,.3) 60px, rgba(180,150,110,.3) 61px
  );
}
.scn-rousillon-page-enters .door {
  position: absolute; bottom: 25%; left: 70%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #6a4f3a 0%, #3d2b1e 100%);
  border-radius: 50% 50% 4% 4% / 80% 80% 4% 4%;
  box-shadow: -4px 0 12px rgba(0,0,0,.3);
  transform-origin: bottom left;
  animation: rp-door 20s ease-in-out infinite;
}
.scn-rousillon-page-enters .window {
  position: absolute; top: 10%; left: 15%; width: 90px; height: 110px;
  background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #ffedc0 70%, #d4b890 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: inset 0 0 40px rgba(255,240,200,.6), 0 0 60px rgba(255,240,200,.3);
  animation: rp-window-glow 4s ease-in-out infinite alternate;
}
.scn-rousillon-page-enters .light-ray {
  position: absolute; top: 8%; left: 18%; width: 120px; height: 180px;
  background: linear-gradient(135deg, rgba(255,248,220,.4) 0%, transparent 100%);
  transform: rotate(-12deg);
  filter: blur(8px);
  animation: rp-ray 8s ease-in-out infinite alternate;
}
.scn-rousillon-page-enters .figure-page {
  position: absolute; bottom: 23%; left: 68%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rp-page-walk 6s ease-in-out infinite;
}
.scn-rousillon-page-enters .figure-courtier {
  position: absolute; bottom: 24%; left: 40%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #5e4a3a 0%, #3a2a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: rp-courtier-bow 6s ease-in-out infinite alternate;
}
.scn-rousillon-page-enters .candle {
  position: absolute; bottom: 40%; left: 55%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #b07030 100%);
  border-radius: 50% 50% 10% 10% / 70% 70% 10% 10%;
  box-shadow: 0 0 16px 6px rgba(255,200,100,.5), 0 0 32px 12px rgba(255,200,100,.2);
  animation: rp-candle-flicker 2s ease-in-out infinite alternate;
}
@keyframes rp-door {
  0% { transform: scaleX(1) rotate(0deg); }
  25% { transform: scaleX(1) rotate(-5deg); }
  50% { transform: scaleX(0.95) rotate(0deg); }
  75% { transform: scaleX(1) rotate(2deg); }
  100% { transform: scaleX(1) rotate(0deg); }
}
@keyframes rp-window-glow {
  0% { opacity: .7; box-shadow: inset 0 0 20px rgba(255,240,200,.4), 0 0 30px rgba(255,240,200,.2); }
  50% { opacity: 1; box-shadow: inset 0 0 50px rgba(255,240,200,.7), 0 0 80px rgba(255,240,200,.4); }
  100% { opacity: .85; box-shadow: inset 0 0 30px rgba(255,240,200,.5), 0 0 50px rgba(255,240,200,.3); }
}
@keyframes rp-ray {
  0% { opacity: .3; transform: rotate(-12deg) scale(1); }
  50% { opacity: .6; transform: rotate(-10deg) scale(1.05); }
  100% { opacity: .4; transform: rotate(-14deg) scale(0.95); }
}
@keyframes rp-page-walk {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(5px) translateY(-1px) rotate(3deg); }
  50% { transform: translateX(10px) translateY(0) rotate(0deg); }
  75% { transform: translateX(15px) translateY(-1px) rotate(-3deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg); }
}
@keyframes rp-courtier-bow {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rp-candle-flicker {
  0% { opacity: .8; transform: scaleY(1) translateY(0); }
  25% { opacity: 1; transform: scaleY(1.1) translateY(-1px); }
  50% { opacity: .9; transform: scaleY(0.95) translateY(0); }
  75% { opacity: .95; transform: scaleY(1.05) translateY(-0.5px); }
  100% { opacity: .85; transform: scaleY(1) translateY(0); }
}

.scn-rousillon-parolles-departure {
  background:
    linear-gradient(180deg, #f0d8b0 0%, #e0c090 40%, #c8a070 100%),
    radial-gradient(ellipse at 70% 30%, #ffe4a0 0%, transparent 70%);
}
.scn-rousillon-parolles-departure .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, #b08050 0%, #c89260 30%, #b08050 60%, #c89260 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.1);
}
.scn-rousillon-parolles-departure .wall-tapestry {
  position: absolute; top: 0; left: 0; right: 0; bottom: 20%;
  background:
    radial-gradient(ellipse at 20% 30%, #c8553d 0%, transparent 60%),
    radial-gradient(ellipse at 80% 40%, #a0461a 0%, transparent 50%),
    linear-gradient(135deg, #d4a070 0%, #b88050 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.2);
}
.scn-rousillon-parolles-departure .curtain {
  position: absolute; top: 0; right: 5%; width: 60px; height: 100%;
  background: linear-gradient(135deg, #5e1a1d 0%, #702243 50%, #5e1a1d 100%);
  border-radius: 10% 10% 0 0;
  transform-origin: top center;
  animation: rpd-curtain 5s ease-in-out infinite;
}
.scn-rousillon-parolles-departure .hat {
  position: absolute; bottom: 50%; left: 55%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e120a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: rpd-hat-bounce 2s ease-in-out infinite;
}
.scn-rousillon-parolles-departure .glove {
  position: absolute; bottom: 22%; left: 40%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #f0d080 0%, #c8a060 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(15deg);
  animation: rpd-glove-twirl 7s ease-in-out infinite;
}
.scn-rousillon-parolles-departure .lantern {
  position: absolute; bottom: 30%; left: 30%; width: 10px; height: 18px;
  background: radial-gradient(ellipse at 50% 50%, #ffd080 0%, #b07030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255,200,100,.5), 0 0 40px 16px rgba(255,200,100,.2);
  transform-origin: top center;
  animation: rpd-lantern-swing 3s ease-in-out infinite alternate;
}
.scn-rousillon-parolles-departure .shadow {
  position: absolute; bottom: 0; left: 50%; width: 50px; height: 100px;
  background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, rgba(0,0,0,.05) 100%);
  transform: skewX(-10deg) translateX(-20px);
  animation: rpd-shadow-stretch 6s ease-in-out infinite alternate;
}
.scn-rousillon-parolles-departure .figure-parolles {
  position: absolute; bottom: 20%; left: 60%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: rpd-figure-walk 4s ease-in-out infinite;
}
@keyframes rpd-curtain {
  0% { transform: scaleX(1) rotate(0deg); }
  25% { transform: scaleX(0.98) rotate(2deg); }
  50% { transform: scaleX(1) rotate(0deg); }
  75% { transform: scaleX(0.97) rotate(-3deg); }
  100% { transform: scaleX(1) rotate(0deg); }
}
@keyframes rpd-hat-bounce {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-8px) rotate(-5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-5px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rpd-glove-twirl {
  0% { transform: rotate(15deg) translateX(0); }
  25% { transform: rotate(60deg) translateX(5px); }
  50% { transform: rotate(100deg) translateX(0); }
  75% { transform: rotate(160deg) translateX(-5px); }
  100% { transform: rotate(200deg) translateX(0); }
}
@keyframes rpd-lantern-swing {
  0% { transform: rotate(-8deg); }
  25% { transform: rotate(6deg); }
  50% { transform: rotate(-4deg); }
  75% { transform: rotate(7deg); }
  100% { transform: rotate(-8deg); }
}
@keyframes rpd-shadow-stretch {
  0% { transform: skewX(-10deg) scaleY(1) translateX(-20px); }
  50% { transform: skewX(-5deg) scaleY(1.1) translateX(-15px); }
  100% { transform: skewX(-12deg) scaleY(0.95) translateX(-25px); }
}
@keyframes rpd-figure-walk {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(8px) translateY(-1px) rotate(3deg); }
  40% { transform: translateX(16px) translateY(0) rotate(0deg); }
  60% { transform: translateX(24px) translateY(-1px) rotate(-3deg); }
  80% { transform: translateX(32px) translateY(0) rotate(0deg); }
  100% { transform: translateX(40px) translateY(0) rotate(0deg); }
}

/* rousillon-moderate-lamentation - calm bright interior */
.scn-roussillon-moderate-lamentation {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e0c8a8 60%, #d4b090 100%),
    radial-gradient(ellipse at 50% 100%, #f5e6d0 0%, transparent 70%);
}
.scn-roussillon-moderate-lamentation .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.05);
}
.scn-roussillon-moderate-lamentation .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 22%;
  background: linear-gradient(180deg, #c8b090 0%, #a88c70 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
}
.scn-roussillon-moderate-lamentation .window {
  position: absolute;
  top: 10%; left: 30%;
  width: 40%; height: 50%;
  background: radial-gradient(ellipse, #fff8e0 0%, #ffe8b0 60%, #d4b080 100%);
  box-shadow: 0 0 30px 10px rgba(255,248,224,0.4), 0 0 60px 20px rgba(255,248,224,0.15);
  animation: rml-glow 6s ease-in-out infinite alternate;
  z-index: 1;
}
.scn-roussillon-moderate-lamentation .curtain-left,
.scn-roussillon-moderate-lamentation .curtain-right {
  position: absolute;
  top: 10%; bottom: 40%;
  width: 16%;
  background: linear-gradient(180deg, #b8a090 0%, #8a7a6a 60%, #6a5a4a 100%);
  border-radius: 0 12% 12% 0;
  transform-origin: left center;
  animation: rml-curtain 12s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-roussillon-moderate-lamentation .curtain-left {
  left: 30%;
}
.scn-roussillon-moderate-lamentation .curtain-right {
  left: 54%; /* right curtain covers right side */
  transform-origin: right center;
  border-radius: 12% 0 0 12%;
  animation-delay: -6s;
}
.scn-roussillon-moderate-lamentation .chair {
  position: absolute;
  bottom: 25%; left: 46%;
  width: 32px; height: 45px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: rml-chair 10s ease-in-out infinite;
  z-index: 2;
}
.scn-roussillon-moderate-lamentation .figure {
  position: absolute;
  bottom: 35%; left: 48%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rml-breathe 5s ease-in-out infinite;
  z-index: 3;
}
.scn-roussillon-moderate-lamentation .book {
  position: absolute;
  bottom: 29%; left: 50%;
  width: 14px; height: 18px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 5%;
  transform: rotate(-8deg);
  animation: rml-book 8s ease-in-out infinite;
  z-index: 4;
}
.scn-roussillon-moderate-lamentation .light-ray {
  position: absolute;
  top: 10%; left: 30%;
  width: 40%; height: 75%;
  background: linear-gradient(180deg, rgba(255,248,224,0.12) 0%, transparent 80%);
  transform: skewX(-6deg);
  filter: blur(8px);
  animation: rml-rays 12s ease-in-out infinite;
  z-index: 1;
}
@keyframes rml-glow {
  0% { opacity:0.8; box-shadow:0 0 20px 5px rgba(255,248,224,0.4),0 0 40px 10px rgba(255,248,224,0.15); }
  50% { opacity:1; box-shadow:0 0 40px 15px rgba(255,248,224,0.7),0 0 80px 25px rgba(255,248,224,0.25); }
  100% { opacity:0.85; box-shadow:0 0 25px 8px rgba(255,248,224,0.5),0 0 50px 15px rgba(255,248,224,0.2); }
}
@keyframes rml-curtain {
  0% { transform: scaleX(1) skewX(0deg); }
  50% { transform: scaleX(0.82) skewX(-3deg); }
  100% { transform: scaleX(1) skewX(0deg); }
}
@keyframes rml-breathe {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes rml-rays {
  0% { opacity:0.25; transform: skewX(-6deg) translateX(0); }
  50% { opacity:0.6; transform: skewX(-6deg) translateX(8px); }
  100% { opacity:0.25; transform: skewX(-6deg) translateX(0); }
}
@keyframes rml-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rml-book {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-1px); }
  100% { transform: rotate(-8deg) translateY(0); }
}

.scn-roussillon-bertram-blessing {
  background: linear-gradient(180deg, #e8ddc0 0%, #d4c9a8 40%, #b8a985 100%),
              radial-gradient(ellipse at 70% 30%, #fff8e7 0%, transparent 70%);
}
.scn-roussillon-bertram-blessing .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8ddc0 0%, #d4c9a8 100%);
  animation: rb1-wall 12s ease-in-out infinite alternate;
}
.scn-roussillon-bertram-blessing .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8996a 0%, #8a7045 100%);
}
.scn-roussillon-bertram-blessing .window {
  position: absolute; top: 18%; left: 62%; width: 28%; height: 42%;
  background: radial-gradient(circle at 50% 50%, #fffef0 0%, #cce0ff 50%, #a0c0e0 100%);
  border: 4px solid #5a4a30;
  box-shadow: inset 0 0 12px rgba(255,255,240,0.4);
  animation: rb1-window 10s ease-in-out infinite alternate;
}
.scn-roussillon-bertram-blessing .lightbeam {
  position: absolute; top: 40%; left: 50%; width: 120%; height: 100%;
  background: linear-gradient(135deg, rgba(255,255,240,0.25) 0%, transparent 70%);
  transform-origin: left center;
  transform: rotate(-4deg) skewX(-2deg);
  animation: rb1-light 8s ease-in-out infinite alternate;
}
.scn-roussillon-bertram-blessing .table {
  position: absolute; bottom: 32%; left: 50%;
  width: 80px; height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: rb1-table 6s ease-in-out infinite alternate;
}
.scn-roussillon-bertram-blessing .figure-countess {
  position: absolute; bottom: 26%; left: 30%;
  width: 22px; height: 60px;
  background: #2a2018;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: rb1-breathe 4s ease-in-out infinite;
}
.scn-roussillon-bertram-blessing .figure-helena {
  position: absolute; bottom: 27%; left: 66%;
  width: 18px; height: 52px;
  background: #1a1410;
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: rb1-breathe 4s ease-in-out infinite 0.5s;
}
@keyframes rb1-wall {
  0% { opacity: 0.9; background-position: 0% 0%; }
  50% { opacity: 1; background-position: 2% 1%; }
  100% { opacity: 0.95; background-position: -1% -1%; }
}
@keyframes rb1-window {
  0% { background-position: 50% 50%; filter: brightness(1); }
  50% { background-position: 55% 45%; filter: brightness(1.1); }
  100% { background-position: 45% 55%; filter: brightness(0.95); }
}
@keyframes rb1-light {
  0% { transform: rotate(-3deg) skewX(0deg); opacity: 0.8; }
  50% { transform: rotate(0deg) skewX(-2deg); opacity: 1; }
  100% { transform: rotate(2deg) skewX(0deg); opacity: 0.85; }
}
@keyframes rb1-table {
  0% { transform: translateX(-50%) rotate(-0.5deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(0.5deg); }
}
@keyframes rb1-breathe {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.015); }
  100% { transform: translateX(-50%) scaleY(1); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.motes { position: absolute; pointer-events: none; }
.seated { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-helena-pilgrim-arrives {
  background: linear-gradient(180deg, #1a1423 0%, #2a1f38 40%, #3c2a4e 80%), radial-gradient(ellipse at 70% 30%, #4a3a2a 0%, transparent 60%);
}
.scn-helena-pilgrim-arrives .wall-left { position:absolute; inset:0 50% 0 0; background: linear-gradient(180deg, #2a1f30 0%, #1a101c 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,.4); animation: hr-shadow-shift 8s ease-in-out infinite alternate; }
.scn-helena-pilgrim-arrives .wall-right { position:absolute; inset:0 0 0 50%; background: linear-gradient(180deg, #2e2338 0%, #1e1428 100%); box-shadow: inset 10px 0 20px rgba(0,0,0,.4); }
.scn-helena-pilgrim-arrives .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-top:2px solid #5a4a3a; }
.scn-helena-pilgrim-arrives .pillar { position:absolute; top:0; width:24px; height:80%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%, #1a0a00 100%); border-radius:4px; box-shadow: 2px 0 8px rgba(0,0,0,.5); }
.scn-helena-pilgrim-arrives .pillar-1 { left:20%; }
.scn-helena-pilgrim-arrives .pillar-2 { right:20%; }
.scn-helena-pilgrim-arrives .figure-pilgrim { position:absolute; bottom:20%; left:45%; width:28px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hr-pilgrim 6s ease-in-out infinite; }
.scn-helena-pilgrim-arrives .light-torch { position:absolute; top:15%; right:25%; width:12px; height:20px; background: radial-gradient(circle, #c08040 0%, #8a5a20 60%, transparent 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 40px 20px rgba(192,128,64,.5), 0 0 80px 40px rgba(192,128,64,.2); animation: hr-torch 3s ease-in-out infinite alternate; }
.scn-helena-pilgrim-arrives .shadow-figure { position:absolute; bottom:20%; left:40%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 80%); opacity:.4; animation: hr-shadow-move 8s ease-in-out infinite alternate; }
@keyframes hr-shadow-shift { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hr-pilgrim { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(-2deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes hr-torch { 0% { opacity:.8; box-shadow:0 0 30px 15px rgba(192,128,64,.4) } 50% { opacity:1; box-shadow:0 0 50px 25px rgba(192,128,64,.6) } 100% { opacity:.9; box-shadow:0 0 35px 18px rgba(192,128,64,.5) } }
@keyframes hr-shadow-move { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(10px) scaleY(1.1) } 100% { transform: translateX(0) scaleY(1) } }

.scn-bed-trick-plan {
  background: linear-gradient(180deg, #1a1420 0%, #2a1f30 50%, #3c2a40 100%), radial-gradient(ellipse at 60% 50%, #3a2a3a 0%, transparent 70%);
}
.scn-bed-trick-plan .chamber-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2e2030 0%, #1e1020 100%); }
.scn-bed-trick-plan .chamber-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); }
.scn-bed-trick-plan .bed-frame { position:absolute; bottom:20%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:4px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-bed-trick-plan .figure-helena { position:absolute; bottom:35%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: btp-helena 5s ease-in-out infinite; }
.scn-bed-trick-plan .figure-widow { position:absolute; bottom:35%; left:55%; width:22px; height:48px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: btp-widow 5s ease-in-out infinite 1s; }
.scn-bed-trick-plan .candle-glow { position:absolute; bottom:45%; left:50%; width:8px; height:16px; background: radial-gradient(circle, #d0a050 0%, #b08040 50%, transparent 100%); border-radius:40%; box-shadow: 0 0 30px 10px rgba(208,160,80,.4), 0 0 60px 20px rgba(208,160,80,.2); animation: btp-candle 2s ease-in-out infinite alternate; }
.scn-bed-trick-plan .window-night { position:absolute; top:10%; right:15%; width:60px; height:80px; background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 100%); border:3px solid #2a1a10; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-bed-trick-plan .embrace-line { position:absolute; bottom:30%; left:42%; width:16%; height:2px; background: linear-gradient(90deg, transparent, #d0a050, transparent); opacity:.5; animation: btp-line 4s ease-in-out infinite; }
@keyframes btp-helena { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(-3deg) } 50% { transform: translateY(2px) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes btp-widow { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(1px) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(1deg) } }
@keyframes btp-candle { 0% { opacity:.7; transform: scaleY(.9) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.8; transform: scaleY(.95) } }
@keyframes btp-line { 0%,100% { transform: scaleX(1); opacity:.3 } 50% { transform: scaleX(1.3); opacity:.6 } }

.scn-parolles-captured-and-betrays {
  background: linear-gradient(180deg, #87ceeb 0%, #b0dff0 60%, #e0f0ff 100%), radial-gradient(ellipse at 50% 100%, #f0e0c0 0%, transparent 70%);
}
.scn-parolles-captured-and-betrays .sky-bright { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0dff0 80%); animation: pc-sky 12s ease-in-out infinite alternate; }
.scn-parolles-captured-and-betrays .ground-sunlit { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c0b080 0%, #8a7a5a 100%); border-radius: 20% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.2); }
.scn-parolles-captured-and-betrays .figure-parolles { position:absolute; bottom:35%; 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: pc-parolles 3s ease-in-out infinite; }
.scn-parolles-captured-and-betrays .figure-lord1 { position:absolute; bottom:35%; left:48%; width:26px; height:68px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pc-lord1 4s ease-in-out infinite; }
.scn-parolles-captured-and-betrays .figure-lord2 { position:absolute; bottom:35%; left:65%; width:26px; height:68px; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pc-lord2 4s ease-in-out infinite 0.5s; }
.scn-parolles-captured-and-betrays .blindfold { position:absolute; bottom:70%; left:29%; width:22px; height:6px; background: #2a1a0a; border-radius:4px; transform: rotate(5deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: pc-blindfold 2s ease-in-out infinite alternate; }
.scn-parolles-captured-and-betrays .rope-coil { position:absolute; bottom:35%; left:55%; width:20px; height:30px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius:50%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.4); animation: pc-rope 6s linear infinite; }
.scn-parolles-captured-and-betrays .gibberish-bubble { position:absolute; top:20%; left:40%; width:40px; height:30px; background: radial-gradient(circle, rgba(255,255,255,.6) 0%, transparent 80%); border-radius:50%; filter: blur(3px); animation: pc-gibberish 2s ease-in-out infinite alternate; }
@keyframes pc-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pc-parolles { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-5px) rotate(-5deg) } 50% { transform: translateY(5px) rotate(5deg) } 75% { transform: translateY(-3px) rotate(-3deg) } }
@keyframes pc-lord1 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes pc-lord2 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes pc-blindfold { 0% { opacity:.7 } 100% { opacity:1 } }
@keyframes pc-rope { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }
@keyframes pc-gibberish { 0% { transform: scale(.8) translateX(0); opacity:.3 } 50% { transform: scale(1.2) translateX(5px); opacity:.7 } 100% { transform: scale(.9) translateX(-5px); opacity:.4 } }

.scn-item-ancestral-ring {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 50%, #2a2a5e 100%), radial-gradient(ellipse at 50% 100%, #1a1a3e 0%, transparent 70%);
}
.scn-item-ancestral-ring .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 100%); animation: ir-stars 20s linear infinite; }
.scn-item-ancestral-ring .moon { position:absolute; top:10%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #e0e0f0 0%, #c0c0d0 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(192,192,208,.3), 0 0 80px 40px rgba(192,192,208,.1); animation: ir-moon 6s ease-in-out infinite alternate; }
.scn-item-ancestral-ring .tent-silhouette { position:absolute; bottom:30%; left:10%; width:30%; height:50%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%); clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); }
.scn-item-ancestral-ring .figure-bertram { position:absolute; bottom:25%; left:40%; width:24px; height:60px; background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ir-bertram 5s ease-in-out infinite; }
.scn-item-ancestral-ring .figure-diana { position:absolute; bottom:25%; left:55%; width:22px; height:58px; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ir-diana 5s ease-in-out infinite 1s; }
.scn-item-ancestral-ring .ring-glow { position:absolute; bottom:55%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #ffd0a0 0%, #b08040 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 10px rgba(255,208,160,.5), 0 0 40px 20px rgba(255,208,160,.2); animation: ir-ring 3s ease-in-out infinite alternate; }
.scn-item-ancestral-ring .ground-camp { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-top:1px solid #2a2a3e; }
@keyframes ir-stars { 0% { opacity:.6 } 100% { opacity:1 } }
@keyframes ir-moon { 0% { transform: translateY(0); opacity:.8 } 50% { transform: translateY(-5px); opacity:1 } 100% { transform: translateY(0); opacity:.9 } }
@keyframes ir-bertram { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-4px) rotate(-3deg) } 50% { transform: translateY(2px) rotate(2deg) } 75% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes ir-diana { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(1px) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(1deg) } }
@keyframes ir-ring { 0% { transform: scale(.8); opacity:.7 } 50% { transform: scale(1.3); opacity:1 } 100% { transform: scale(.9); opacity:.8 } }

.scn-rousil-clown-letter {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%), radial-gradient(ellipse at 30% 50%, #5a3a2a 0%, transparent 70%);
}
.scn-rousil-clown-letter .wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-rousil-clown-letter .window { position:absolute; top:10%; right:15%; width:60px; height:80px; background: radial-gradient(ellipse at center, #6a5a3a 0%, #3a2a1a 100%); border:3px solid #1a1a0a; border-radius:5%; box-shadow:inset 0 0 20px rgba(255,200,100,.2); animation:rcl-window 6s ease-in-out infinite alternate; }
.scn-rousil-clown-letter .table { position:absolute; bottom:10%; left:20%; right:20%; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.6); }
.scn-rousil-clown-letter .letter { position:absolute; bottom:14%; left:35%; width:30px; height:20px; background: #8a7a6a; border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.4); transform:rotate(5deg); animation:rcl-letter 4s ease-in-out infinite; }
.scn-rousil-clown-letter .candle { position:absolute; bottom:15%; left:55%; width:8px; height:30px; background: linear-gradient(180deg, #c8b090 0%, #a09080 100%); border-radius:3px; }
.scn-rousil-clown-letter .candle::after { content:''; position:absolute; top:-8px; left:2px; width:4px; height:8px; background: radial-gradient(circle, #ffd080 0%, #ffb040 100%); border-radius:50%; box-shadow:0 0 12px 6px rgba(255,176,64,.6); animation:rcl-flame 2s ease-in-out infinite alternate; }
.scn-rousil-clown-letter .clown { position:absolute; bottom:12%; left:25%; width:20px; height:40px; background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:rcl-figure 5s ease-in-out infinite; }
.scn-rousil-clown-letter .countess { position:absolute; bottom:12%; right:30%; width:22px; height:44px; background: radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:rcl-figure 5s ease-in-out infinite reverse; }
.scn-rousil-clown-letter .shadow-layer { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, transparent 0%, rgba(0,0,0,.4) 100%); pointer-events:none; animation:rcl-shadow 8s ease-in-out infinite alternate; }
@keyframes rcl-window { 0% { box-shadow:inset 0 0 20px rgba(255,200,100,.1); } 50% { box-shadow:inset 0 0 40px rgba(255,200,100,.3); } 100% { box-shadow:inset 0 0 20px rgba(255,200,100,.15); } }
@keyframes rcl-letter { 0% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(3deg) translateY(-2px); } 100% { transform:rotate(7deg) translateY(0); } }
@keyframes rcl-flame { 0% { transform:scaleY(1) scaleX(1); opacity:.9; } 50% { transform:scaleY(1.2) scaleX(.8); opacity:1; } 100% { transform:scaleY(.9) scaleX(1.1); opacity:.85; } }
@keyframes rcl-figure { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes rcl-shadow { 0% { opacity:.5; } 50% { opacity:.7; } 100% { opacity:.4; } }

.scn-king-cured-marvel {
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%), radial-gradient(ellipse at 50% 20%, #fff0d0 0%, transparent 60%);
}
.scn-king-cured-marvel .throne { position:absolute; bottom:10%; left:40%; width:80px; height:100px; background: linear-gradient(180deg, #c8a070 0%, #a08050 100%); border-radius:10% 10% 5% 5%; box-shadow:0 8px 16px rgba(0,0,0,.3); }
.scn-king-cured-marvel .king { position:absolute; bottom:20%; left:43%; width:30px; height:60px; background: radial-gradient(ellipse at 50% 30%, #d0b090 0%, #b09070 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:kcm-figure 6s ease-in-out infinite; }
.scn-king-cured-marvel .lafeu { position:absolute; bottom:18%; right:25%; width:25px; height:55px; background: radial-gradient(ellipse at 50% 30%, #c0a080 0%, #a08060 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:kcm-figure 7s ease-in-out infinite reverse; }
.scn-king-cured-marvel .light-ray { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(255,240,200,.4) 0%, transparent 100%); animation:kcm-ray 8s ease-in-out infinite alternate; }
.scn-king-cured-marvel .glow { position:absolute; top:15%; left:42%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,230,150,.6) 0%, transparent 100%); animation:kcm-glow 4s ease-in-out infinite alternate; }
.scn-king-cured-marvel .column { position:absolute; top:0; left:10%; width:20px; height:100%; background: linear-gradient(180deg, #d0b8a0 0%, #b09880 100%); box-shadow:4px 0 8px rgba(0,0,0,.2); }
.scn-king-cured-marvel .floor { position:absolute; bottom:0; left:0; right:0; height:8%; background: linear-gradient(180deg, #b09880 0%, #908070 100%); }
@keyframes kcm-figure { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(3deg); } }
@keyframes kcm-ray { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.5; } }
@keyframes kcm-glow { 0% { transform:scale(1); opacity:.6; } 50% { transform:scale(1.2); opacity:.9; } 100% { transform:scale(.9); opacity:.7; } }

.scn-bertram-reluctant-marriage {
  background: linear-gradient(180deg, #e8d8c8 0%, #c0b0a0 100%), radial-gradient(ellipse at 60% 30%, #d0c0b0 0%, transparent 70%);
}
.scn-bertram-reluctant-marriage .floor { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #b0a090 0%, #908070 100%); }
.scn-bertram-reluctant-marriage .king { position:absolute; bottom:12%; left:15%; width:35px; height:65px; background: radial-gradient(ellipse at 50% 30%, #c8a870 0%, #a08050 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:brm-figure-t 4s ease-in-out infinite; }
.scn-bertram-reluctant-marriage .bertram { position:absolute; bottom:12%; right:25%; width:30px; height:60px; background: radial-gradient(ellipse at 50% 30%, #b09080 0%, #806060 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:brm-figure-b 3.5s ease-in-out infinite; }
.scn-bertram-reluctant-marriage .parolles { position:absolute; bottom:15%; left:50%; width:22px; height:50px; background: radial-gradient(ellipse at 50% 30%, #a09080 0%, #706050 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-5deg); animation:brm-figure-p 5s ease-in-out infinite; }
.scn-bertram-reluctant-marriage .lafeu { position:absolute; bottom:14%; right:5%; width:28px; height:58px; background: radial-gradient(ellipse at 50% 30%, #c0a888 0%, #987060 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:brm-figure-l 4.5s ease-in-out infinite; }
.scn-bertram-reluctant-marriage .handshake { position:absolute; bottom:20%; left:43%; width:20px; height:12px; background: linear-gradient(90deg, #c8a070 0%, #a08050 100%); border-radius:4px; box-shadow:0 2px 6px rgba(0,0,0,.3); animation:brm-hand 2s ease-in-out infinite alternate; }
.scn-bertram-reluctant-marriage .shadow { position:absolute; bottom:14%; left:15%; width:70%; height:20px; background: radial-gradient(ellipse at center, rgba(0,0,0,.2) 0%, transparent 100%); animation:brm-shadow 3s ease-in-out infinite alternate; }
@keyframes brm-figure-t { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(4deg); } }
@keyframes brm-figure-b { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(1px) rotate(-3deg); } }
@keyframes brm-figure-p { 0%,100% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-8deg) translateY(-1px); } }
@keyframes brm-figure-l { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(5deg); } }
@keyframes brm-hand { 0% { transform:scaleX(1); } 50% { transform:scaleX(1.15); } 100% { transform:scaleX(.95); } }
@keyframes brm-shadow { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }

.scn-bertram-vows-hate-letter {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #3a2a5a 0%, transparent 70%);
}
.scn-bertram-vows-hate-letter .wall-dark { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-bertram-vows-hate-letter .table { position:absolute; bottom:10%; left:25%; right:25%; height:15px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:3px; }
.scn-bertram-vows-hate-letter .letter { position:absolute; bottom:14%; left:40%; width:30px; height:18px; background: #6a5a5a; border-radius:2px; transform:rotate(-10deg); animation:bvl-letter 2s ease-in-out infinite; }
.scn-bertram-vows-hate-letter .candle { position:absolute; bottom:15%; left:55%; width:6px; height:24px; background: linear-gradient(180deg, #c8b090 0%, #a09080 100%); border-radius:2px; }
.scn-bertram-vows-hate-letter .candle::after { content:''; position:absolute; top:-6px; left:1px; width:4px; height:6px; background: radial-gradient(circle, #ffd080 0%, #ffa040 100%); border-radius:50%; box-shadow:0 0 8px 4px rgba(255,160,64,.5); animation:bvl-flame 1.5s ease-in-out infinite alternate; }
.scn-bertram-vows-hate-letter .bertram { position:absolute; bottom:12%; left:30%; width:25px; height:55px; background: radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, #1a1a2e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bvl-figure 3s ease-in-out infinite; }
.scn-bertram-vows-hate-letter .shadow { position:absolute; bottom:10%; left:20%; right:20%; height:30px; background: radial-gradient(ellipse at center, rgba(0,0,0,.5) 0%, transparent 100%); animation:bvl-shadow 4s ease-in-out infinite alternate; }
@keyframes bvl-letter { 0%,100% { transform:rotate(-10deg) translateY(0); } 50% { transform:rotate(-15deg) translateY(-2px); } }
@keyframes bvl-flame { 0% { transform:scaleY(1) scaleX(1); opacity:.8; } 50% { transform:scaleY(1.3) scaleX(.7); opacity:1; } 100% { transform:scaleY(.8) scaleX(1.2); opacity:.7; } }
@keyframes bvl-figure { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(8deg); } }
@keyframes bvl-shadow { 0% { opacity:.4; transform:scaleX(1); } 50% { opacity:.7; transform:scaleX(1.05); } 100% { opacity:.5; transform:scaleX(.95); } }

/* scene: rousillon-countess-lament (rcl) */
.scn-roustilllon-countess-lament {
  background:
    linear-gradient(180deg, #2a1e0e 0%, #1a1208 30%, #0f0b05 60%, #1a1208 100%),
    radial-gradient(ellipse at 30% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-roustilllon-countess-lament .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1e0e 0%, #1a1208 100%);
  box-shadow: inset 0 0 40px #0a0703; animation: rcl-fade 12s ease-in-out infinite alternate;
}
.scn-roustilllon-countess-lament .window {
  position: absolute; top: 18%; left: 12%; width: 40px; height: 50px;
  background: radial-gradient(circle at 50% 30%, #c4a882 0%, #6b5b4a 70%, #2a1e0e 100%);
  border: 2px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px #c4a88220;
  animation: rcl-window 9s ease-in-out infinite alternate;
}
.scn-roustilllon-countess-lament .candle {
  position: absolute; bottom: 35%; left: 45%; width: 6px; height: 22px;
  background: linear-gradient(0deg, #c8a060 0%, #f0d080 50%, #ffc060 100%); border-radius: 2px;
  box-shadow: 0 0 20px 6px #f0d08080, 0 0 40px 12px #f0d08040;
  animation: rcl-candle 2s ease-in-out infinite alternate;
}
.scn-roustilllon-countess-lament .chair {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px #0a0703;
  animation: rcl-chair 8s ease-in-out infinite;
}
.scn-roustilllon-countess-lament .figure-lady {
  position: absolute; bottom: 22%; left: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: rcl-lady 6s ease-in-out infinite alternate;
}
.scn-roustilllon-countess-lament .figure-man {
  position: absolute; bottom: 22%; left: 48%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: rcl-man 7s ease-in-out infinite alternate;
}
@keyframes rcl-fade { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes rcl-window { 0% { opacity: .6; transform: scaleY(1) } 50% { opacity: .8; transform: scaleY(1.02) } 100% { opacity: .7; transform: scaleY(1) } }
@keyframes rcl-candle { 0% { transform: scaleY(1); opacity: .9 } 50% { transform: scaleY(1.05); opacity: 1 } 100% { transform: scaleY(1); opacity: .95 } }
@keyframes rcl-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes rcl-lady { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes rcl-man { 0% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) } 100% { transform: rotate(0) } }

/* scene: physician-praise-and-tears (pph) */
.scn-physician-praise-and-tears {
  background:
    linear-gradient(180deg, #2a1e12 0%, #1a1208 40%, #0f0b05 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-physician-praise-and-tears .bg-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1e12 0%, #1a1208 100%);
  box-shadow: inset 0 0 30px #0a0703; animation: pph-fade 10s ease-in-out infinite alternate;
}
.scn-physician-praise-and-tears .table {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 8px;
  background: linear-gradient(90deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 4px; box-shadow: 0 4px 8px #0a0703;
  animation: pph-table 8s ease-in-out infinite;
}
.scn-physician-praise-and-tears .candle {
  position: absolute; bottom: 28%; left: 48%; width: 5px; height: 20px;
  background: linear-gradient(0deg, #c8a060 0%, #f0d080 50%, #ffc060 100%);
  border-radius: 2px; box-shadow: 0 0 18px 6px #f0d08080, 0 0 36px 12px #f0d08040;
  animation: pph-candle 2.5s ease-in-out infinite alternate;
}
.scn-physician-praise-and-tears .figure-countess {
  position: absolute; bottom: 22%; left: 22%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: pph-countess 7s ease-in-out infinite alternate;
}
.scn-physician-praise-and-tears .figure-helena {
  position: absolute; bottom: 22%; left: 38%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: pph-helena 6s ease-in-out infinite alternate;
}
.scn-physician-praise-and-tears .figure-lafeu {
  position: absolute; bottom: 22%; left: 55%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: pph-lafeu 8s ease-in-out infinite alternate;
}
.scn-physician-praise-and-tears .wreath {
  position: absolute; bottom: 40%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #5a6a3a 0%, #3a4a2a 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 12px 4px #5a6a3a40;
  animation: pph-wreath 12s ease-in-out infinite alternate;
}
@keyframes pph-fade { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes pph-table { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-1px) scaleX(1.01) } }
@keyframes pph-candle { 0% { transform: scaleY(1); opacity: .9 } 50% { transform: scaleY(1.04); opacity: 1 } 100% { transform: scaleY(1); opacity: .95 } }
@keyframes pph-countess { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes pph-helena { 0% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) } 100% { transform: rotate(0) } }
@keyframes pph-lafeu { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes pph-wreath { 0% { transform: scale(.95) rotate(-5deg); opacity: .7 } 50% { transform: scale(1) rotate(0); opacity: .9 } 100% { transform: scale(.95) rotate(5deg); opacity: .8 } }

/* scene: farewell-and-love-confession (flc) */
.scn-farewell-and-love-confession {
  background:
    linear-gradient(180deg, #2a1e0e 0%, #1a1208 35%, #0f0b05 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-farewell-and-love-confession .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1e0e 0%, #1a1208 100%);
  box-shadow: inset 0 0 40px #0a0703; animation: flc-fade 12s ease-in-out infinite alternate;
}
.scn-farewell-and-love-confession .arch {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 0 20px #0a0703;
  animation: flc-arch 15s ease-in-out infinite alternate;
}
.scn-farewell-and-love-confession .figure-bertram {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: flc-bertram 6s ease-in-out infinite alternate;
}
.scn-farewell-and-love-confession .figure-helena {
  position: absolute; bottom: 22%; left: 48%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: flc-helena 7s ease-in-out infinite alternate;
}
.scn-farewell-and-love-confession .letter {
  position: absolute; bottom: 30%; left: 42%; width: 12px; height: 8px;
  background: linear-gradient(135deg, #c4a882 0%, #8a7050 100%);
  border-radius: 2px; box-shadow: 0 2px 4px #0a0703;
  animation: flc-letter 4s ease-in-out infinite alternate;
}
.scn-farewell-and-love-confession .tear {
  position: absolute; bottom: 28%; left: 50%; width: 4px; height: 6px;
  background: radial-gradient(circle at 50% 50%, #c8b8a8 0%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 6px 2px #c8b8a880;
  animation: flc-tear 3s ease-in-out infinite;
}
@keyframes flc-fade { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes flc-arch { 0% { transform: scaleY(1); opacity: .8 } 50% { transform: scaleY(1.02); opacity: .9 } 100% { transform: scaleY(1); opacity: .85 } }
@keyframes flc-bertram { 0% { transform: rotate(-3deg) translateX(0) } 50% { transform: rotate(0) translateX(2px) } 100% { transform: rotate(-1deg) translateX(0) } }
@keyframes flc-helena { 0% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(1deg) } }
@keyframes flc-letter { 0% { transform: translate(0, 0) rotate(0) } 50% { transform: translate(1px, -1px) rotate(5deg) } 100% { transform: translate(0, 0) rotate(0) } }
@keyframes flc-tear { 0%,100% { transform: translateY(0); opacity: .7 } 50% { transform: translateY(-2px); opacity: 1 } }

/* scene: virginity-wishes-and-departure (vwd) */
.scn-virginity-wishes-and-departure {
  background:
    linear-gradient(180deg, #2a1e12 0%, #1a1208 40%, #0f0b05 100%),
    radial-gradient(ellipse at 40% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-virginity-wishes-and-departure .bg-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1e12 0%, #1a1208 100%);
  box-shadow: inset 0 0 30px #0a0703; animation: vwd-fade 8s ease-in-out infinite alternate;
}
.scn-virginity-wishes-and-departure .figure-helena {
  position: absolute; bottom: 22%; left: 28%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: vwd-helena 5s ease-in-out infinite alternate;
}
.scn-virginity-wishes-and-departure .figure-parolles {
  position: absolute; bottom: 22%; left: 50%; width: 24px; height: 54px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: vwd-parolles 4s ease-in-out infinite alternate;
  box-shadow: 0 0 10px 2px #5a5a3a40;
}
.scn-virginity-wishes-and-departure .thought-bubble {
  position: absolute; top: 12%; left: 25%; width: 30px; height: 20px;
  background: radial-gradient(circle at 30% 40%, #c8b8a8 0%, #8a7a6a 60%, transparent 70%);
  border-radius: 60% 60% 40% 40% / 50% 50% 50% 50%;
  filter: blur(2px); animation: vwd-thought 6s ease-in-out infinite;
}
.scn-virginity-wishes-and-departure .door {
  position: absolute; bottom: 0; right: 10%; width: 30px; height: 100%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-left: 2px solid #3a2a1a; box-shadow: inset 0 0 20px #0a0703;
  animation: vwd-door 8s ease-in-out infinite alternate;
}
.scn-virginity-wishes-and-departure .key {
  position: absolute; bottom: 22%; right: 20%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #c8b060 0%, #a08040 100%);
  border-radius: 3px 3px 2px 2px; box-shadow: 0 0 8px 2px #c8b06060;
  animation: vwd-key 3s ease-in-out infinite alternate;
}
@keyframes vwd-fade { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes vwd-helena { 0% { transform: rotate(-2deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(-1deg) scaleY(1) } }
@keyframes vwd-parolles { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(3px) } 100% { transform: rotate(3deg) translateX(0) } }
@keyframes vwd-thought { 0% { transform: scale(.9); opacity: .6 } 50% { transform: scale(1.1); opacity: .9 } 100% { transform: scale(.95); opacity: .7 } }
@keyframes vwd-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes vwd-key { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }

.scn-bertram-cold-farewell {
  background: linear-gradient(180deg, #2e3a4f 0%, #4a5a6b 40%, #6b7d8a 100%), radial-gradient(ellipse at 70% 30%, #8a9ba8 0%, transparent 70%);
}
.scn-bertram-cold-farewell .wall-left {
  position: absolute; left: 0; top: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #1e2a36 0%, #2e3a47 100%);
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.3);
}
.scn-bertram-cold-farewell .wall-right {
  position: absolute; right: 0; top: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #1e2a36 0%, #2e3a47 100%);
  box-shadow: inset 8px 0 12px rgba(0,0,0,0.3);
}
.scn-bertram-cold-farewell .floor {
  position: absolute; bottom: 0; left: 20%; right: 30%; height: 25%;
  background: linear-gradient(0deg, #3a4a5a 0%, #4a5a6a 100%);
  border-radius: 4% 4% 0 0;
}
.scn-bertram-cold-farewell .window {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #c0d5e5 0%, #a0b8c8 100%);
  border: 3px solid #5a6a7a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.2), 0 0 30px rgba(160,180,200,0.3);
  animation: bf-window 6s ease-in-out infinite alternate;
}
.scn-bertram-cold-farewell .figure-bertram {
  position: absolute; bottom: 20%; left: 42%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bf-bertram 8s ease-in-out infinite;
}
.scn-bertram-cold-farewell .figure-helena {
  position: absolute; bottom: 20%; left: 55%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bf-helena 8s ease-in-out infinite;
}
.scn-bertram-cold-farewell .shadow {
  position: absolute; bottom: 18%; left: 40%; width: 40%; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: bf-shadow 8s ease-in-out infinite;
}
.scn-bertram-cold-farewell .lightbeam {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(200,215,230,0.15) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  animation: bf-beam 12s ease-in-out infinite alternate;
}
@keyframes bf-window {
  0% { opacity: 0.9; box-shadow: inset 0 0 15px rgba(255,255,255,0.1), 0 0 20px rgba(160,180,200,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 25px rgba(255,255,255,0.3), 0 0 40px rgba(160,180,200,0.4); }
  100% { opacity: 0.85; box-shadow: inset 0 0 10px rgba(255,255,255,0.05), 0 0 15px rgba(160,180,200,0.15); }
}
@keyframes bf-bertram {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(0deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(-3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes bf-helena {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  33% { transform: translateX(-2px) translateY(1px) rotate(-1deg); }
  66% { transform: translateX(2px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes bf-shadow {
  0% { opacity: 0.4; transform: scaleX(0.8); }
  50% { opacity: 0.6; transform: scaleX(1); }
  100% { opacity: 0.3; transform: scaleX(0.7); }
}
@keyframes bf-beam {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.2; }
}

.scn-florentine-camp-welcome {
  background: linear-gradient(180deg, #6a8ba5 0%, #8bb5d0 40%, #c5d8e0 100%), radial-gradient(ellipse at 50% 30%, #d4e4b0 0%, transparent 60%);
}
.scn-florentine-camp-welcome .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8bb5d0 0%, #a8c8d8 100%);
  animation: fc-sky 20s ease-in-out infinite alternate;
}
.scn-florentine-camp-welcome .sun {
  position: absolute; top: 8%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #f5e6a0 0%, #d4c080 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px #f0d070, 0 0 80px rgba(240,208,112,0.3);
  animation: fc-sun 40s linear infinite;
}
.scn-florentine-camp-welcome .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a7a5a 0%, #2a5a3a 100%);
  border-radius: 50% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.2);
}
.scn-florentine-camp-welcome .tent {
  position: absolute; bottom: 30%; left: 30%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #c8b898 0%, #a09070 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: fc-tent 12s ease-in-out infinite alternate;
}
.scn-florentine-camp-welcome .duke {
  position: absolute; bottom: 28%; left: 34%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #d4c080 0%, #b0a070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fc-duke 6s ease-in-out infinite;
}
.scn-florentine-camp-welcome .lords-group {
  position: absolute; bottom: 27%; left: 42%; width: 50px; height: 38px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 2px 0 4px rgba(0,0,0,0.2);
  animation: fc-lords 8s ease-in-out infinite;
}
.scn-florentine-camp-welcome .banners {
  position: absolute; bottom: 55%; left: 28%; width: 8px; height: 30px;
  background: #6a4a2a;
  transform: rotate(-5deg);
  box-shadow: 30px 0 #6a4a2a, 60px 0 #6a4a2a;
  animation: fc-banners 15s ease-in-out infinite alternate;
}
.scn-florentine-camp-welcome .dust-particles {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 60%;
  background: radial-gradient(circle at 20% 30%, rgba(200,180,140,0.15) 0%, transparent 50%),
              radial-gradient(circle at 80% 70%, rgba(200,180,140,0.1) 0%, transparent 40%);
  animation: fc-dust 30s linear infinite;
}
@keyframes fc-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes fc-sun {
  0% { transform: translateX(0); }
  50% { transform: translateX(-20px) scale(1.05); }
  100% { transform: translateX(0); }
}
@keyframes fc-tent {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(0.97); }
}
@keyframes fc-duke {
  0% { transform: translateY(0) rotate(-1deg); }
  33% { transform: translateY(-2px) rotate(0deg); }
  66% { transform: translateY(1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes fc-lords {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(5px) scaleX(0.95); }
  100% { transform: translateX(-5px) scaleX(1.05); }
}
@keyframes fc-banners {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes fc-dust {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 100%; }
}

.scn-countess-reads-bertrand-letter {
  background: linear-gradient(180deg, #2a1a1a 0%, #4a2a2a 50%, #5a3a3a 100%), radial-gradient(ellipse at 50% 20%, #7a4a3a 0%, transparent 70%);
}
.scn-countess-reads-bertrand-letter .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
}
.scn-countess-reads-bertrand-letter .table {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
}
.scn-countess-reads-bertrand-letter .candle {
  position: absolute; bottom: 25%; left: 48%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 4px 4px 2px 2px;
}
.scn-countess-reads-bertrand-letter .candle-glow {
  position: absolute; bottom: 22%; left: 45%; width: 16%; height: 20%;
  background: radial-gradient(ellipse, #ffd080 0%, #e0a050 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: cr-glow 4s ease-in-out infinite alternate;
}
.scn-countess-reads-bertrand-letter .countess {
  position: absolute; bottom: 18%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 60% 60% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cr-countess 7s ease-in-out infinite;
}
.scn-countess-reads-bertrand-letter .letter {
  position: absolute; bottom: 23%; left: 47%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b898 100%);
  border: 1px solid #a08868;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: cr-letter 5s ease-in-out infinite alternate;
}
.scn-countess-reads-bertrand-letter .shadow-countess {
  position: absolute; bottom: 16%; left: 30%; width: 40%; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: cr-shadow 7s ease-in-out infinite;
}
@keyframes cr-glow {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes cr-countess {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-2px) rotate(1deg); }
  66% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cr-letter {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-1px); }
  100% { transform: rotate(-7deg) translateY(1px); }
}
@keyframes cr-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(0.8); }
  100% { opacity: 0.5; transform: scaleX(1.1); }
}

.scn-diana-warned-against-bertrand {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a2a3a 100%), radial-gradient(ellipse at 40% 60%, #4a3a4a 0%, transparent 70%);
}
.scn-diana-warned-against-bertrand .wall-dark {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
}
.scn-diana-warned-against-bertrand .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #1a0a1a 0%, #2a1a2a 100%);
}
.scn-diana-warned-against-bertrand .figure-diana {
  position: absolute; bottom: 20%; left: 35%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dw-diana 6s ease-in-out infinite;
}
.scn-diana-warned-against-bertrand .figure-widow {
  position: absolute; bottom: 20%; left: 48%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 60% 60% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dw-widow 7s ease-in-out infinite;
}
.scn-diana-warned-against-bertrand .lamp {
  position: absolute; bottom: 40%; left: 55%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 8px rgba(192,160,96,0.5);
}
.scn-diana-warned-against-bertrand .lamp-glow {
  position: absolute; bottom: 38%; left: 50%; width: 30%; height: 25%;
  background: radial-gradient(ellipse, #f0c060 0%, #d0a040 40%, transparent 100%);
  filter: blur(4px);
  animation: dw-lamp 5s ease-in-out infinite alternate;
}
.scn-diana-warned-against-bertrand .curtain {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #4a2a2a 0%, #3a1a1a 100%);
  clip-path: polygon(100% 0%, 0% 10%, 0% 90%, 100% 100%);
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: dw-curtain 10s ease-in-out infinite alternate;
}
@keyframes dw-diana {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(1px) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dw-widow {
  0% { transform: translateX(0) translateY(0); }
  33% { transform: translateX(3px) translateY(-1px); }
  66% { transform: translateX(-2px) translateY(1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes dw-lamp {
  0% { opacity: 0.5; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes dw-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}

.scn-paris-king-bertrand-father {
  background: 
    linear-gradient(180deg, #d9c3a0 0%, #c8a87c 30%, #9e7a54 70%, #7a5e3a 100%),
    radial-gradient(ellipse at 60% 30%, #fce8c0 0%, transparent 60%);
}
.scn-paris-king-bertrand-father .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #8c6e4a 0%, #6b4f30 100%);
}
.scn-paris-king-bertrand-father .window-shine {
  position: absolute; top: 10%; left: 55%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #fff8e7 0%, #f0d8a8 40%, #d4b882 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 10px 0 40px #f0d8a8, inset 0 0 20px #fff8e7;
  animation: pkbf-window 6s ease-in-out infinite alternate;
}
.scn-paris-king-bertrand-father .king-figure {
  position: absolute; bottom: 25%; left: 32%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pkbf-king-breathe 5s ease-in-out infinite;
}
.scn-paris-king-bertrand-father .king-throne {
  position: absolute; bottom: 24%; left: 28%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #7a6030 0%, #4d3a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-paris-king-bertrand-father .bertrand-figure {
  position: absolute; bottom: 26%; left: 58%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pkbf-bertrand-bow 7s ease-in-out infinite alternate;
}
.scn-paris-king-bertrand-father .council-table {
  position: absolute; bottom: 22%; left: 25%; width: 120px; height: 12px;
  background: linear-gradient(90deg, #5c3c20 0%, #7a4e2a 50%, #5c3c20 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-paris-king-bertrand-father .light-beam {
  position: absolute; top: 8%; left: 52%; width: 100px; height: 200px;
  background: linear-gradient(180deg, rgba(255,248,231,0.25) 0%, rgba(255,248,231,0.05) 100%);
  transform: rotate(12deg); transform-origin: top left;
  filter: blur(6px);
  animation: pkbf-beam-dance 10s ease-in-out infinite alternate;
}
@keyframes pkbf-window {
  0% { box-shadow: 10px 0 30px #e8d0a0, inset 0 0 10px #fff8e7; opacity: 0.9; }
  50% { box-shadow: 10px 0 50px #f0d8a8, inset 0 0 30px #fff8e7; opacity: 1; }
  100% { box-shadow: 10px 0 20px #d4b882, inset 0 0 5px #fff8e7; opacity: 0.8; }
}
@keyframes pkbf-king-breathe {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(1px); }
}
@keyframes pkbf-bertrand-bow {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes pkbf-beam-dance {
  0% { opacity: 0.3; transform: rotate(10deg) translateX(0); }
  50% { opacity: 0.7; transform: rotate(14deg) translateX(5px); }
  100% { opacity: 0.2; transform: rotate(12deg) translateX(-3px); }
}

.scn-rousillon-clown-and-steward {
  background: 
    linear-gradient(180deg, #3a3128 0%, #2c2218 50%, #1e140c 100%),
    radial-gradient(ellipse at 50% 90%, #4a3a2a 0%, transparent 60%);
}
.scn-rousillon-clown-and-steward .bg-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2c2016 0%, #1a100a 100%);
}
.scn-rousillon-clown-and-steward .hearth-glow {
  position: absolute; bottom: 10%; left: 15%; width: 40px; height: 30px;
  background: radial-gradient(circle at 50% 100%, #ffa040 0%, #c07020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px #c07020, 0 0 100px rgba(192,112,32,0.3);
  animation: rcsc-hearth 4s ease-in-out infinite alternate;
}
.scn-rousillon-clown-and-steward .countess-figure {
  position: absolute; bottom: 28%; left: 35%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #3a2a22 0%, #1e120c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rcsc-countess-lecture 6s ease-in-out infinite alternate;
}
.scn-rousillon-clown-and-steward .clown-figure {
  position: absolute; bottom: 26%; left: 55%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #5a3a28 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rcsc-clown-shift 5s ease-in-out infinite;
}
.scn-rousillon-clown-and-steward .dim-window {
  position: absolute; top: 15%; right: 12%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #4a4038 0%, #2a2220 100%);
  border-radius: 6%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: rcsc-window-breath 8s ease-in-out infinite alternate;
}
.scn-rousillon-clown-and-steward .floor-rug {
  position: absolute; bottom: 16%; left: 20%; width: 140px; height: 30px;
  background: radial-gradient(ellipse, #4a3220 0%, #2a1a0c 100%);
  border-radius: 50%;
  opacity: 0.7;
}
@keyframes rcsc-hearth {
  0% { box-shadow: 0 0 30px #b06820, 0 0 80px rgba(176,104,32,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 60px #f09030, 0 0 120px rgba(240,144,48,0.5); opacity: 1; }
  100% { box-shadow: 0 0 40px #c07020, 0 0 90px rgba(192,112,32,0.3); opacity: 0.9; }
}
@keyframes rcsc-countess-lecture {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(1px) rotate(1deg); }
}
@keyframes rcsc-clown-shift {
  0% { transform: translateX(0) translateY(0); }
  35% { transform: translateX(4px) translateY(-1px); }
  70% { transform: translateX(-2px) translateY(1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes rcsc-window-breath {
  0% { opacity: 0.5; box-shadow: inset 0 0 20px rgba(0,0,0,0.7); }
  50% { opacity: 0.7; box-shadow: inset 0 0 40px rgba(0,0,0,0.4); }
  100% { opacity: 0.4; box-shadow: inset 0 0 10px rgba(0,0,0,0.9); }
}

.scn-helena-confesses-love-and-plan {
  background: 
    linear-gradient(180deg, #4a2e1a 0%, #6b4028 30%, #8c5840 60%, #5a3822 100%),
    radial-gradient(ellipse at 70% 80%, #d09050 0%, transparent 60%);
}
.scn-helena-confesses-love-and-plan .bg-chamber {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2214 0%, #2a160a 100%);
}
.scn-helena-confesses-love-and-plan .table-wood {
  position: absolute; bottom: 20%; left: 10%; width: 140px; height: 14px;
  background: linear-gradient(90deg, #3a2010 0%, #5a3820 50%, #3a2010 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-helena-confesses-love-and-plan .candle-light {
  position: absolute; bottom: 28%; left: 18%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 80%, #ffcc60 0%, #e09030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px #e09030, 0 0 60px rgba(224,144,48,0.4);
  animation: hclp-candle 2s ease-in-out infinite alternate;
}
.scn-helena-confesses-love-and-plan .helena-silhouette {
  position: absolute; bottom: 26%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1408 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hclp-helena-tremble 4s ease-in-out infinite;
}
.scn-helena-confesses-love-and-plan .countess-silhouette {
  position: absolute; bottom: 28%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #5a3822 0%, #3a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hclp-countess-listen 6s ease-in-out infinite alternate;
}
.scn-helena-confesses-love-and-plan .remedy-book {
  position: absolute; bottom: 24%; left: 50%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #2a1a0c 0%, #4a3020 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-8deg);
  animation: hclp-book-hover 10s ease-in-out infinite alternate;
}
.scn-helena-confesses-love-and-plan .cast-shadow {
  position: absolute; bottom: 20%; left: 30%; width: 90px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: hclp-shadow 4s ease-in-out infinite alternate;
}
@keyframes hclp-candle {
  0% { box-shadow: 0 0 20px #d08030, 0 0 50px rgba(208,128,48,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 40px #f0a050, 0 0 80px rgba(240,160,80,0.5); opacity: 1; }
  100% { box-shadow: 0 0 15px #c07030, 0 0 40px rgba(192,112,48,0.3); opacity: 0.8; }
}
@keyframes hclp-helena-tremble {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(-1deg); }
  50% { transform: translateX(-1px) rotate(1deg); }
  75% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hclp-countess-listen {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(1px) rotate(0.5deg); }
}
@keyframes hclp-book-hover {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(1px); }
}
@keyframes hclp-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.05); opacity: 0.8; }
  100% { transform: scaleX(0.95); opacity: 0.5; }
}

.scn-paris-young-lords-depart {
  background: 
    linear-gradient(180deg, #e8e0d0 0%, #d0c4b0 40%, #b0a08c 70%, #908070 100%),
    radial-gradient(ellipse at 60% 40%, #f0e8d8 0%, transparent 60%);
}
.scn-paris-young-lords-depart .bg-court {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d4c8b8 0%, #b8a898 100%);
}
.scn-paris-young-lords-depart .bertrand-tense {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pyld-bertrand-pace 3s ease-in-out infinite alternate;
}
.scn-paris-young-lords-depart .parolles-grin {
  position: absolute; bottom: 26%; left: 45%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pyld-parolles-nod 3.5s ease-in-out infinite;
}
.scn-paris-young-lords-depart .departing-lord {
  position: absolute; bottom: 24%; left: 60%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1006 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pyld-lord-bow 4s ease-in-out infinite alternate;
}
.scn-paris-young-lords-depart .court-column {
  position: absolute; bottom: 5%; left: 20%; width: 20px; height: 180px;
  background: linear-gradient(180deg, #d0c0a8 0%, #a09078 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 0 20px rgba(0,0,0,0.1);
}
.scn-paris-young-lords-depart .war-banner {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #b07040 0%, #a06030 40%, #804020 100%);
  border-radius: 0 0 20% 20%;
  transform-origin: top center;
  animation: pyld-banner-flap 1.8s ease-in-out infinite alternate;
}
.scn-paris-young-lords-depart .marble-step {
  position: absolute; bottom: 18%; left: 10%; width: 200px; height: 12px;
  background: linear-gradient(90deg, #b8a890 0%, #d0c0a8 50%, #a89880 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.2);
}
@keyframes pyld-bertrand-pace {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(-2deg); }
  100% { transform: translateX(-2px) rotate(1deg); }
}
@keyframes pyld-parolles-nod {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-1px) rotate(2deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pyld-lord-bow {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pyld-banner-flap {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-5deg); }
}

.scn-parolles-begs-charity { background: linear-gradient(180deg, #87CEEB 0%, #f0d8a0 100%), radial-gradient(ellipse at 50% 0%, #fff7d0 0%, transparent 70%); }
.scn-parolles-begs-charity .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0d0f0, transparent); animation: pb-sky 12s ease-in-out infinite alternate; }
.scn-parolles-begs-charity .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #d4a373, #b2875a); animation: pb-ground 6s ease-in-out infinite alternate; }
.scn-parolles-begs-charity .parolles { position:absolute; bottom:20%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #8b5a2b, #5c3a1e); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pb-beg 3s ease-in-out infinite; }
.scn-parolles-begs-charity .lafeu { position:absolute; bottom:18%; left:55%; width:22px; height:50px; background: linear-gradient(180deg, #3b5998, #2c4270); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: pb-stand 5s ease-in-out infinite alternate; }
.scn-parolles-begs-charity .coin-1 { position:absolute; bottom:22%; left:44%; width:8px; height:8px; background: radial-gradient(circle, #ffd700, #b8860b); border-radius:50%; box-shadow:0 0 6px #ffd700; animation: pb-coin 1.5s ease-in-out infinite; }
.scn-parolles-begs-charity .coin-2 { position:absolute; bottom:22%; left:47%; width:6px; height:6px; background: radial-gradient(circle, #ffd700, #b8860b); border-radius:50%; box-shadow:0 0 4px #ffd700; animation: pb-coin2 2s ease-in-out infinite; }
.scn-parolles-begs-charity .king-approach { position:absolute; bottom:18%; right:10%; width:30px; height:55px; background: linear-gradient(180deg, #4a4a6a, #2a2a4a); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: pb-approach 8s linear infinite; }
@keyframes pb-sky { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.6} }
@keyframes pb-ground { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(2px)} }
@keyframes pb-beg { 0%{transform:translateY(0) rotate(-2deg)} 25%{transform:translateY(2px) rotate(3deg)} 50%{transform:translateY(0) rotate(-1deg)} 75%{transform:translateY(1px) rotate(2deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes pb-stand { 0%{transform:translateY(0)} 50%{transform:translateY(-4px) rotate(2deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes pb-coin { 0%{transform:translateY(0) scale(1)} 25%{transform:translateY(-6px) scale(1.1)} 50%{transform:translateY(-10px) scale(0.9)} 75%{transform:translateY(-4px) scale(1)} 100%{transform:translateY(0) scale(1)} }
@keyframes pb-coin2 { 0%{transform:translateY(0) rotate(0)} 25%{transform:translateY(-4px) rotate(10deg)} 50%{transform:translateY(-8px) rotate(20deg)} 75%{transform:translateY(-2px) rotate(10deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes pb-approach { 0%{transform:translateX(30px) scale(0.95)} 50%{transform:translateX(10px) scale(1)} 100%{transform:translateX(-10px) scale(1.05)} }

.scn-king-accuses-bertrand-ring { background: linear-gradient(135deg, #f5e6c8 0%, #d4c4a8 50%, #c4b49a 100%), radial-gradient(ellipse at 30% 50%, #f0e0c0, transparent 80%); }
.scn-king-accuses-bertrand-ring .wall { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #e8dcc8, #d4c4a8); box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: ka-wall 10s ease-in-out infinite alternate; }
.scn-king-accuses-bertrand-ring .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8b7b6b, #6b5b4b); animation: ka-floor 12s ease-in-out infinite alternate; }
.scn-king-accuses-bertrand-ring .table { position:absolute; bottom:15%; left:40%; width:80px; height:15px; background: linear-gradient(180deg, #5c4033, #3a2a1e); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,0.5); animation: ka-table 8s ease-in-out infinite alternate; }
.scn-king-accuses-bertrand-ring .ring { position:absolute; bottom:18%; left:48%; width:12px; height:12px; background: radial-gradient(circle, #ffd700, #b8860b); border-radius:50%; box-shadow:0 0 20px #ffd700, 0 0 40px rgba(255,215,0,0.5); animation: ka-ring 1s ease-in-out infinite; }
.scn-king-accuses-bertrand-ring .king { position:absolute; bottom:25%; left:50%; width:25px; height:60px; background: linear-gradient(180deg, #5e1a1d, #4a0e10); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: ka-king 3s ease-in-out infinite alternate; }
.scn-king-accuses-bertrand-ring .bertram { position:absolute; bottom:25%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #2c4a3a, #1a2a1a); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: ka-bertram 4s ease-in-out infinite alternate; }
.scn-king-accuses-bertrand-ring .shadow { position:absolute; bottom:0; left:0; right:0; height:100%; background: linear-gradient(0deg, rgba(60,40,20,0.4), transparent); animation: ka-shadow 15s ease-in-out infinite alternate; }
@keyframes ka-wall { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes ka-floor { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(1px)} }
@keyframes ka-table { 0%{transform:translateY(0) scaleX(1)} 50%{transform:translateY(-1px) scaleX(1.02)} 100%{transform:translateY(0) scaleX(1)} }
@keyframes ka-ring { 0%{transform:scale(1); box-shadow:0 0 20px #ffd700} 50%{transform:scale(1.3); box-shadow:0 0 30px #ffd700,0 0 50px rgba(255,215,0,0.7)} 100%{transform:scale(1); box-shadow:0 0 20px #ffd700} }
@keyframes ka-king { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(2deg)} }
@keyframes ka-bertram { 0%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(-3deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes ka-shadow { 0%{opacity:.5} 50%{opacity:.3} 100%{opacity:.6} }

.scn-diana-petitions-ring-proof { background: linear-gradient(180deg, #f0e0c8, #d4b896), radial-gradient(ellipse at 50% 20%, #ffeedd, transparent 80%); }
.scn-diana-petitions-ring-proof .chamber { position:absolute; inset:10% 5% 30% 5%; background: linear-gradient(135deg, #e8d8b8, #c8b898); border-radius:4px; box-shadow:inset 0 0 30px rgba(0,0,0,0.2); animation: dr-chamber 20s ease-in-out infinite alternate; }
.scn-diana-petitions-ring-proof .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #9a8a7a, #7a6a5a); animation: dr-floor 15s ease-in-out infinite alternate; }
.scn-diana-petitions-ring-proof .diana { position:absolute; bottom:20%; left:45%; width:20px; height:55px; background: linear-gradient(180deg, #6a4a3a, #3a2a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dr-diana 5s ease-in-out infinite; }
.scn-diana-petitions-ring-proof .ring { position:absolute; bottom:25%; left:46%; width:10px; height:10px; background: radial-gradient(circle, #ffd700, #b8860b); border-radius:50%; box-shadow:0 0 15px #ffd700, 0 0 30px rgba(255,215,0,0.6); animation: dr-ring 1.5s ease-in-out infinite; }
.scn-diana-petitions-ring-proof .bertram { position:absolute; bottom:20%; left:30%; width:18px; height:48px; background: linear-gradient(180deg, #4a5a4a, #2a3a2a); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: dr-bertram 6s ease-in-out infinite alternate; }
.scn-diana-petitions-ring-proof .countess { position:absolute; bottom:20%; left:60%; width:22px; height:50px; background: linear-gradient(180deg, #6a5a4a, #4a3a2a); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: dr-countess 8s ease-in-out infinite alternate; }
@keyframes dr-chamber { 0%{opacity:.8; transform:scale(1)} 50%{opacity:1; transform:scale(1.02)} 100%{opacity:.9; transform:scale(1)} }
@keyframes dr-floor { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(1px)} }
@keyframes dr-diana { 0%{transform:translateY(0) rotate(-2deg)} 25%{transform:translateY(3px) rotate(3deg)} 50%{transform:translateY(0) rotate(-1deg)} 75%{transform:translateY(2px) rotate(2deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes dr-ring { 0%{transform:scale(1)} 50%{transform:scale(1.4); box-shadow:0 0 25px #ffd700,0 0 40px rgba(255,215,0,0.8)} 100%{transform:scale(1)} }
@keyframes dr-bertram { 0%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-3px) rotate(-5deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes dr-countess { 0%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(4deg)} 100%{transform:translateY(0) rotate(0)} }

.scn-king-interrogates-parolles { background: linear-gradient(180deg, #e8dcc0, #c8b898), radial-gradient(ellipse at 50% 30%, #f5e8d0, transparent 80%); }
.scn-king-interrogates-parolles .hall { position:absolute; inset:5% 5% 35% 5%; background: linear-gradient(135deg, #d4c4a8, #b8a888); box-shadow:inset 0 0 40px rgba(0,0,0,0.3); animation: ki-hall 18s ease-in-out infinite alternate; }
.scn-king-interrogates-parolles .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8a7a6a, #6a5a4a); animation: ki-floor 12s ease-in-out infinite alternate; }
.scn-king-interrogates-parolles .throne { position:absolute; bottom:18%; left:52%; width:30px; height:40px; background: linear-gradient(180deg, #6b3a1a, #4a2a0e); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow:0 4px 8px rgba(0,0,0,0.5); animation: ki-throne 8s ease-in-out infinite alternate; }
.scn-king-interrogates-parolles .king { position:absolute; bottom:25%; left:50%; width:20px; height:50px; background: linear-gradient(180deg, #4a3a6a, #2a1a4a); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: ki-king 4s ease-in-out infinite alternate; }
.scn-king-interrogates-parolles .parolles { position:absolute; bottom:15%; left:35%; width:18px; height:45px; background: linear-gradient(180deg, #8b6b4b, #5c3a2a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ki-parolles 3s ease-in-out infinite; }
.scn-king-interrogates-parolles .document { position:absolute; bottom:18%; left:42%; width:12px; height:16px; background:#f0e0c0; border:1px solid #8b7b6b; animation: ki-doc 6s ease-in-out infinite alternate; }
@keyframes ki-hall { 0%{opacity:.8; transform:scale(1)} 50%{opacity:1; transform:scale(1.01)} 100%{opacity:.9; transform:scale(1)} }
@keyframes ki-floor { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(1px)} }
@keyframes ki-throne { 0%{transform:translateY(0) scaleY(1)} 50%{transform:translateY(-2px) scaleY(1.02)} 100%{transform:translateY(0) scaleY(1)} }
@keyframes ki-king { 0%{transform:translateY(0) rotate(-3deg)} 50%{transform:translateY(-2px) rotate(2deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes ki-parolles { 0%{transform:translateY(0) rotate(-1deg)} 25%{transform:translateY(4px) rotate(3deg)} 50%{transform:translateY(0) rotate(-2deg)} 75%{transform:translateY(2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes ki-doc { 0%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-3px) rotate(5deg)} 100%{transform:translateY(0) rotate(0)} }

.scn-helena-reveals-alive-pregnant {
  background: 
    linear-gradient(135deg, #ffe6b3 0%, #d4a85a 40%, #b08040 100%),
    radial-gradient(ellipse at 20% 30%, rgba(255,230,179,0.5) 0%, transparent 60%);
}
.scn-helena-reveals-alive-pregnant .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c8945a 0%, #a07040 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}
.scn-helena-reveals-alive-pregnant .window-arch {
  position: absolute; top: 10%; left: 55%; width: 28%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, #fff5e0 0%, #ffe0a0 70%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 20px rgba(255,230,179,0.6), 0 0 40px rgba(255,215,140,0.3);
  animation: hp-window-glow 5s ease-in-out infinite alternate;
}
.scn-helena-reveals-alive-pregnant .sun-rays {
  position: absolute; inset: 0; background: linear-gradient(115deg, rgba(255,245,220,0.4) 0%, transparent 40%, transparent 60%, rgba(255,245,220,0.15) 100%);
  animation: hp-rays 7s ease-in-out infinite alternate;
  transform-origin: 55% 10%;
}
.scn-helena-reveals-alive-pregnant .fig-head {
  position: absolute; bottom: 52%; left: 42%; width: 12px; height: 12px;
  border-radius: 50%; background: #2a2a3a;
  animation: hp-head-bob 4s ease-in-out infinite;
}
.scn-helena-reveals-alive-pregnant .fig-body {
  position: absolute; bottom: 30%; left: 40%; width: 22px; height: 35px;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: hp-body-breathe 4s ease-in-out infinite;
}
.scn-helena-reveals-alive-pregnant .fig-belly {
  position: absolute; bottom: 34%; left: 46%; width: 16px; height: 18px;
  border-radius: 50%; background: #2a2a3a;
  animation: hp-belly-grow 6s ease-in-out infinite;
}
.scn-helena-reveals-alive-pregnant .shadow {
  position: absolute; bottom: 18%; left: 38%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: hp-shadow-pulse 4s ease-in-out infinite;
}
.scn-helena-reveals-alive-pregnant .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #b08040 0%, #906030 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}

@keyframes hp-window-glow {
  0% { box-shadow: inset 0 0 15px rgba(255,230,179,0.4), 0 0 30px rgba(255,215,140,0.2); opacity: 0.9; }
  50% { box-shadow: inset 0 0 30px rgba(255,230,179,0.8), 0 0 60px rgba(255,215,140,0.5); opacity: 1; }
  100% { box-shadow: inset 0 0 20px rgba(255,230,179,0.6), 0 0 40px rgba(255,215,140,0.3); opacity: 0.95; }
}
@keyframes hp-rays {
  0% { opacity: 0.6; transform: scale(1) rotate(-1deg); }
  50% { opacity: 1; transform: scale(1.05) rotate(0deg); }
  100% { opacity: 0.7; transform: scale(0.98) rotate(1deg); }
}
@keyframes hp-head-bob {
  0% { transform: translate(0, 0); }
  25% { transform: translate(2px, -1px); }
  50% { transform: translate(0, 1px); }
  75% { transform: translate(-1px, -1px); }
  100% { transform: translate(0, 0); }
}
@keyframes hp-body-breathe {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.01) translateY(-2px); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes hp-belly-grow {
  0% { transform: scale(1); }
  50% { transform: scale(1.03); }
  100% { transform: scale(1); }
}
@keyframes hp-shadow-pulse {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.8; }
  50% { transform: scaleX(1.05) scaleY(1.2); opacity: 0.5; }
  100% { transform: scaleX(1) scaleY(1); opacity: 0.8; }
}

.scn-alls-well-that-ends-well {
  background: 
    linear-gradient(180deg, #fae6c8 0%, #e4c08a 50%, #c0945a 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,230,179,0.3) 0%, transparent 70%);
}
.scn-alls-well-that-ends-well .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d4a85a 0%, #b08040 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.12);
}
.scn-alls-well-that-ends-well .throne {
  position: absolute; bottom: 20%; left: 15%; width: 25%; height: 45%;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: aww-throne-sway 8s ease-in-out infinite alternate;
}
.scn-alls-well-that-ends-well .king {
  position: absolute; bottom: 28%; left: 18%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: aww-king-bow 6s ease-in-out infinite;
}
.scn-alls-well-that-ends-well .king::before {
  content: ''; position: absolute; top: -18%; left: 15%; width: 70%; height: 20%;
  background: radial-gradient(ellipse, #f0c060 0%, #c09040 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -4px 8px rgba(240,192,96,0.5);
  animation: aww-crown-gleam 4s ease-in-out infinite alternate;
}
.scn-alls-well-that-ends-well .helena {
  position: absolute; bottom: 22%; left: 40%; width: 10%; height: 36%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: aww-helena-curtsey 5s ease-in-out infinite alternate;
}
.scn-alls-well-that-ends-well .bertram {
  position: absolute; bottom: 20%; left: 55%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: aww-bertram-bow 5s ease-in-out infinite alternate;
}
.scn-alls-well-that-ends-well .ring {
  position: absolute; bottom: 32%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #c09040 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(255,208,128,0.7), 0 0 32px 8px rgba(255,208,128,0.3);
  animation: aww-ring-glow 3s ease-in-out infinite;
}
.scn-alls-well-that-ends-well .light-beam {
  position: absolute; top: 0; left: 45%; width: 10%; height: 70%;
  background: linear-gradient(180deg, rgba(255,245,220,0.5) 0%, rgba(255,230,179,0.2) 50%, transparent 100%);
  clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%);
  animation: aww-beam-pulse 8s ease-in-out infinite alternate;
}
.scn-alls-well-that-ends-well .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #c0945a 0%, #a07840 100%);
  border-radius: 20% 80% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.2);
}
.scn-alls-well-that-ends-well .banner {
  position: absolute; top: 5%; right: 10%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 4px;
  transform-origin: top center;
  animation: aww-banner-flutter 6s ease-in-out infinite;
}

@keyframes aww-throne-sway {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes aww-king-bow {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(2px) rotate(2deg); }
  60% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(-2px) rotate(-2deg); }
}
@keyframes aww-crown-gleam {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes aww-helena-curtsey {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-2px) rotate(3deg); }
}
@keyframes aww-bertram-bow {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(2px) rotate(-3deg); }
}
@keyframes aww-ring-glow {
  0% { box-shadow: 0 0 12px 2px rgba(255,208,128,0.5), 0 0 24px 4px rgba(255,208,128,0.2); transform: scale(0.95); }
  50% { box-shadow: 0 0 24px 6px rgba(255,208,128,0.8), 0 0 48px 12px rgba(255,208,128,0.4); transform: scale(1.05); }
  100% { box-shadow: 0 0 12px 2px rgba(255,208,128,0.5), 0 0 24px 4px rgba(255,208,128,0.2); transform: scale(0.95); }
}
@keyframes aww-beam-pulse {
  0% { opacity: 0.6; transform: scaleY(1) translateY(0); }
  50% { opacity: 1; transform: scaleY(1.05) translateY(-3px); }
  100% { opacity: 0.7; transform: scaleY(0.98) translateY(0); }
}
@keyframes aww-banner-flutter {
  0% { transform: skew(0deg) scaleY(1); }
  25% { transform: skew(2deg) scaleY(1.02); }
  50% { transform: skew(0deg) scaleY(1); }
  75% { transform: skew(-2deg) scaleY(0.98); }
  100% { transform: skew(0deg) scaleY(1); }
}

/* lords-discuss-disgrace — tense, dim-interior */
.scn-lords-discuss-disgrace {
  background:
    linear-gradient(180deg, #1e1a14 0%, #2a2218 30%, #1e1812 60%, #14100c 100%),
    radial-gradient(ellipse at 40% 60%, #3a2e1e 0%, transparent 70%);
}
.scn-lords-discuss-disgrace .bg-wall {
  position:absolute; inset:0 0 0 0;
  background: linear-gradient(180deg, #2a2218 0%, #1e1812 50%, #14100c 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 60px rgba(0,0,0,.7);
  animation: ldd-wall-pulse 12s ease-in-out infinite alternate;
}
.scn-lords-discuss-disgrace .window-arch {
  position:absolute; top:8%; left:12%; width:28%; height:48%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 50%, #1a2a3a 100%);
  border-radius: 50% 50% 6% 6% / 40% 40% 6% 6%;
  box-shadow: inset 0 0 30px rgba(100,140,180,.15), 0 0 40px rgba(60,80,100,.1);
  animation: ldd-win-flicker 8s ease-in-out infinite alternate;
}
.scn-lords-discuss-disgrace .table-heavy {
  position:absolute; bottom:14%; left:22%; width:56%; height:18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 50%, #100c08 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 18px rgba(0,0,0,.8), inset 0 2px 4px rgba(100,80,40,.15);
  animation: ldd-table-creak 15s ease-in-out infinite;
}
.scn-lords-discuss-disgrace .figure-lord-a {
  position:absolute; bottom:26%; left:30%; width:16%; height:36%;
  background: linear-gradient(180deg, #1a1612 0%, #0e0a08 60%, #080604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 12px rgba(0,0,0,.5);
  animation: ldd-lord-a-shift 6s ease-in-out infinite alternate;
}
.scn-lords-discuss-disgrace .figure-lord-b {
  position:absolute; bottom:26%; right:30%; width:15%; height:34%;
  background: linear-gradient(180deg, #1a1612 0%, #0e0a08 60%, #080604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 4px 0 12px rgba(0,0,0,.5);
  animation: ldd-lord-b-shift 7s ease-in-out infinite alternate;
}
.scn-lords-discuss-disgrace .candle-stand {
  position:absolute; bottom:32%; left:48%; width:4%; height:22%;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1e0e 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: 0 0 14px 4px rgba(200,160,80,.25);
  animation: ldd-candle-glow 3s ease-in-out infinite alternate;
}
.scn-lords-discuss-disgrace .shadow-crawl {
  position:absolute; bottom:14%; left:24%; width:52%; height:10%;
  background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,.2) 100%);
  border-radius: 60% 60% 20% 20%;
  filter: blur(14px);
  animation: ldd-shadow-creep 10s ease-in-out infinite alternate;
}
.scn-lords-discuss-disgrace .tapestry {
  position:absolute; top:10%; right:10%; width:22%; height:46%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a12 40%, #1a0e0a 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: ldd-tap-sway 14s ease-in-out infinite alternate;
}
@keyframes ldd-wall-pulse { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ldd-win-flicker { 0% { opacity:.4; transform:scaleY(.98) } 30% { opacity:.7; transform:scaleY(1) } 60% { opacity:.5; transform:scaleY(.99) } 100% { opacity:.8; transform:scaleY(1) } }
@keyframes ldd-table-creak { 0% { transform:translateY(0) } 25% { transform:translateY(-1px) } 50% { transform:translateY(0) } 75% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes ldd-lord-a-shift { 0% { transform:translateX(0) rotate(0) } 50% { transform:translateX(4px) rotate(2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes ldd-lord-b-shift { 0% { transform:translateX(0) rotate(0) } 50% { transform:translateX(-3px) rotate(-1.5deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes ldd-candle-glow { 0% { box-shadow:0 0 10px 2px rgba(200,160,80,.2); opacity:.8 } 40% { box-shadow:0 0 22px 8px rgba(220,180,100,.4); opacity:1 } 70% { box-shadow:0 0 14px 4px rgba(200,160,80,.25); opacity:.9 } 100% { box-shadow:0 0 18px 6px rgba(200,160,80,.3); opacity:.95 } }
@keyframes ldd-shadow-creep { 0% { transform:scaleX(.9) translateX(-4px); opacity:.4 } 50% { transform:scaleX(1.1) translateX(4px); opacity:.7 } 100% { transform:scaleX(.95) translateX(-2px); opacity:.5 } }
@keyframes ldd-tap-sway { 0% { transform:rotate(-1deg) } 50% { transform:rotate(1.5deg) } 100% { transform:rotate(-.5deg) } }

/* parolles-unmasked-shamed — funny, sunlit */
.scn-parolles-unmasked-shamed {
  background:
    linear-gradient(180deg, #7a9ab5 0%, #a0c8e0 35%, #b8dce8 60%, #c8e8f0 100%),
    radial-gradient(ellipse at 50% 20%, #c8e8f0 0%, transparent 60%);
}
.scn-parolles-unmasked-shamed .sky-bright {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #6a8aaa 0%, #8ab8d8 40%, #a8d8e8 100%);
  animation: pus-sky-dance 20s ease-in-out infinite alternate;
}
.scn-parolles-unmasked-shamed .ground-sunlit {
  position:absolute; bottom:0; left:0; right:0; height:48%;
  background: linear-gradient(180deg, #8aaa6a 0%, #6a8a4a 40%, #4a6a2a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,.15);
  animation: pus-grass-shimmer 14s ease-in-out infinite alternate;
}
.scn-parolles-unmasked-shamed .tent-ridge {
  position:absolute; bottom:38%; left:8%; width:30%; height:30%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 50%, #887868 100%);
  border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 6px 18px rgba(0,0,0,.2);
  animation: pus-tent-sway 9s ease-in-out infinite alternate;
}
.scn-parolles-unmasked-shamed .figure-parolles {
  position:absolute; bottom:28%; left:44%; width:14%; height:34%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a22 100%);
  border-radius: 50% 50% 30% 40% / 60% 60% 30% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,.25);
  animation: pus-parolles-reel 4s ease-in-out infinite;
}
.scn-parolles-unmasked-shamed .figure-lord-x {
  position:absolute; bottom:30%; left:22%; width:12%; height:30%;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 50%, #2a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pus-lord-x-jab 5s ease-in-out infinite;
}
.scn-parolles-unmasked-shamed .figure-lord-y {
  position:absolute; bottom:30%; right:22%; width:12%; height:30%;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 50%, #2a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pus-lord-y-laugh 6s ease-in-out infinite;
}
.scn-parolles-unmasked-shamed .banner-drape {
  position:absolute; top:8%; right:14%; width:18%; height:28%;
  background: linear-gradient(180deg, #b87878 0%, #a06050 40%, #804840 100%);
  border-radius: 6% 6% 20% 20% / 20% 20% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.15);
  animation: pus-banner-flap 7s ease-in-out infinite alternate;
}
.scn-parolles-unmasked-shamed .shadow-comic {
  position:absolute; bottom:10%; left:36%; width:28%; height:12%;
  background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.1) 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: pus-shadow-bob 4s ease-in-out infinite alternate;
}
@keyframes pus-sky-dance { 0% { opacity:.85; transform:scaleY(.98) } 50% { opacity:1; transform:scaleY(1) } 100% { opacity:.9; transform:scaleY(.99) } }
@keyframes pus-grass-shimmer { 0% { background-position:0 0 } 50% { background-position:20px 0 } 100% { background-position:0 0 } }
@keyframes pus-tent-sway { 0% { transform:rotate(-1deg) translateX(-2px) } 50% { transform:rotate(2deg) translateX(3px) } 100% { transform:rotate(0) translateX(0) } }
@keyframes pus-parolles-reel { 0% { transform:translateX(0) rotate(0) scaleY(1) } 20% { transform:translateX(6px) rotate(4deg) scaleY(.95) } 40% { transform:translateX(-4px) rotate(-3deg) scaleY(1.02) } 60% { transform:translateX(8px) rotate(2deg) scaleY(.97) } 80% { transform:translateX(-6px) rotate(-4deg) scaleY(1) } 100% { transform:translateX(0) rotate(0) scaleY(1) } }
@keyframes pus-lord-x-jab { 0% { transform:translateX(0) rotate(0) } 30% { transform:translateX(6px) rotate(3deg) } 60% { transform:translateX(-2px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes pus-lord-y-laugh { 0% { transform:translateY(0) rotate(0) scaleY(1) } 25% { transform:translateY(-2px) rotate(-2deg) scaleY(1.03) } 50% { transform:translateY(0) rotate(0) scaleY(1) } 75% { transform:translateY(-3px) rotate(2deg) scaleY(1.05) } 100% { transform:translateY(0) rotate(0) scaleY(1) } }
@keyframes pus-banner-flap { 0% { transform:rotate(-3deg) scaleX(.95) } 50% { transform:rotate(4deg) scaleX(1.05) } 100% { transform:rotate(-2deg) scaleX(.98) } }
@keyframes pus-shadow-bob { 0% { transform:scaleX(1) translateX(0); opacity:.5 } 50% { transform:scaleX(1.2) translateX(8px); opacity:.3 } 100% { transform:scaleX(1) translateX(0); opacity:.5 } }

/* helena-assures-widow — warm, dim-interior */
.scn-helena-assures-widow {
  background:
    linear-gradient(180deg, #3a2e1e 0%, #4a3a2a 25%, #5a4a3a 50%, #4a3a2a 75%, #2a1e12 100%),
    radial-gradient(ellipse at 50% 60%, #6a5a4a 0%, transparent 70%);
}
.scn-helena-assures-widow .bg-warm {
  position:absolute; inset:0 0 0 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1e12 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 80px rgba(0,0,0,.4);
  animation: haw-bg-breathe 16s ease-in-out infinite alternate;
}
.scn-helena-assures-widow .window-soft {
  position:absolute; top:10%; right:14%; width:22%; height:40%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 40px rgba(160,140,100,.15), 0 0 30px rgba(120,100,70,.1);
  animation: haw-win-soft 10s ease-in-out infinite alternate;
}
.scn-helena-assures-widow .glow-amber {
  position:absolute; bottom:30%; left:44%; width:12%; height:18%;
  background: radial-gradient(circle, #d8b88a 0%, #c8a070 40%, #b08860 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(200,160,100,.3), 0 0 100px 40px rgba(200,160,100,.1);
  animation: haw-glow-pulse 5s ease-in-out infinite alternate;
}
.scn-helena-assures-widow .figure-helena {
  position:absolute; bottom:24%; left:38%; width:14%; height:40%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3222 50%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px rgba(160,120,80,.15);
  animation: haw-helena-soothe 7s ease-in-out infinite alternate;
}
.scn-helena-assures-widow .figure-widow {
  position:absolute; bottom:24%; right:36%; width:16%; height:38%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 16px rgba(80,60,40,.1);
  animation: haw-widow-listen 8s ease-in-out infinite alternate;
}
.scn-helena-assures-widow .chair-wood {
  position:absolute; bottom:16%; left:20%; width:16%; height:20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: haw-chair-rock 12s ease-in-out infinite;
}
.scn-helena-assures-widow .table-small {
  position:absolute; bottom:16%; right:22%; width:14%; height:12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,.35);
  animation: haw-table-steady 14s ease-in-out infinite;
}
.scn-helena-assures-widow .dust-motes {
  position:absolute; top:20%; left:30%; width:40%; height:30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,140,.08) 0%, transparent 70%);
  filter: blur(8px);
  animation: haw-dust-drift 25s linear infinite;
}
@keyframes haw-bg-breathe { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.92 } }
@keyframes haw-win-soft { 0% { opacity:.6; transform:scaleY(.97) } 50% { opacity:.8; transform:scaleY(1) } 100% { opacity:.7; transform:scaleY(.98) } }
@keyframes haw-glow-pulse { 0% { box-shadow:0 0 40px 16px rgba(200,160,100,.2); opacity:.85 } 40% { box-shadow:0 0 70px 30px rgba(220,180,120,.35); opacity:1 } 70% { box-shadow:0 0 50px 20px rgba(200,160,100,.25); opacity:.9 } 100% { box-shadow:0 0 60px 24px rgba(200,160,100,.3); opacity:.95 } }
@keyframes haw-helena-soothe { 0% { transform:translateX(0) rotate(0) } 30% { transform:translateX(-4px) rotate(-1.5deg) } 60% { transform:translateX(2px) rotate(.5deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes haw-widow-listen { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(2px) rotate(1deg) } 50% { transform:translateX(-1px) rotate(-.5deg) } 75% { transform:translateX(3px) rotate(1.5deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes haw-chair-rock { 0% { transform:rotate(0) } 25% { transform:rotate(-1deg) } 50% { transform:rotate(0) } 75% { transform:rotate(1deg) } 100% { transform:rotate(0) } }
@keyframes haw-table-steady { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes haw-dust-drift { 0% { transform:translateX(0) translateY(0); opacity:.3 } 25% { transform:translateX(20px) translateY(-10px); opacity:.5 } 50% { transform:translateX(40px) translateY(0); opacity:.2 } 75% { transform:translateX(20px) translateY(10px); opacity:.4 } 100% { transform:translateX(0) translateY(0); opacity:.3 } }

/* countess-mourns-lafeu-plan — dark, dim-interior */
.scn-countess-mourns-lafeu-plan {
  background:
    linear-gradient(180deg, #0a0808 0%, #1a1410 30%, #100c0a 60%, #080606 100%),
    radial-gradient(ellipse at 50% 40%, #1a1410 0%, transparent 70%);
}
.scn-countess-mourns-lafeu-plan .bg-deep-dark {
  position:absolute; inset:0 0 0 0;
  background: linear-gradient(180deg, #0a0808 0%, #14100c 30%, #0e0a08 60%, #060404 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.8);
  animation: cml-bg-sink 18s ease-in-out infinite alternate;
}
.scn-countess-mourns-lafeu-plan .window-dim {
  position:absolute; top:12%; left:14%; width:24%; height:42%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0e1a24 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 40px rgba(60,80,100,.1), 0 0 30px rgba(40,60,80,.08);
  animation: cml-window-dim 12s ease-in-out infinite alternate;
}
.scn-countess-mourns-lafeu-plan .figure-countess {
  position:absolute; bottom:22%; left:28%; width:16%; height:42%;
  background: linear-gradient(180deg, #1e1410 0%, #0e0a08 50%, #060404 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 16px rgba(0,0,0,.6);
  animation: cml-countess-bow 8s ease-in-out infinite alternate;
}
.scn-countess-mourns-lafeu-plan .figure-lafeu {
  position:absolute; bottom:24%; right:26%; width:14%; height:38%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 50%, #060404 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 4px 0 16px rgba(0,0,0,.6);
  animation: cml-lafeu-stand 10s ease-in-out infinite alternate;
}
.scn-countess-mourns-lafeu-plan .candle-single {
  position:absolute; bottom:32%; left:46%; width:3%; height:16%;
  background: linear-gradient(180deg, #3a2a18 0%, #1a1008 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: 0 0 16px 4px rgba(180,140,80,.2), 0 0 40px 12px rgba(180,140,80,.08);
  animation: cml-candle-flicker 3s ease-in-out infinite alternate;
}
.scn-countess-mourns-lafeu-plan .chair-empty {
  position:absolute; bottom:14%; right:14%; width:16%; height:20%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: 0 4px 16px rgba(0,0,0,.6);
  animation: cml-chair-empty 14s ease-in-out infinite;
}
.scn-countess-mourns-lafeu-plan .shadow-heavy {
  position:absolute; bottom:0; left:10%; width:80%; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,.7) 0%, rgba(0,0,0,.3) 40%, transparent 100%);
  border-radius: 40% 40% 0 0;
  filter: blur(20px);
  animation: cml-shadow-deepen 16s ease-in-out infinite alternate;
}
.scn-countess-mourns-lafeu-plan .veil-drape {
  position:absolute; top:6%; left:40%; width:20%; height:30%;
  background: linear-gradient(180deg, rgba(30,20,16,.6) 0%, rgba(20,14,10,.3) 60%, transparent 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(4px);
  box-shadow: 0 4px 20px rgba(0,0,0,.3);
  animation: cml-veil-drift 11s ease-in-out infinite alternate;
}
@keyframes cml-bg-sink { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cml-window-dim { 0% { opacity:.4; transform:scaleX(.97) } 30% { opacity:.6; transform:scaleX(1) } 70% { opacity:.5; transform:scaleX(.98) } 100% { opacity:.7; transform:scaleX(1) } }
@keyframes cml-countess-bow { 0% { transform:translateY(0) rotate(0) } 30% { transform:translateY(-2px) rotate(-2deg) } 50% { transform:translateY(0) rotate(0) } 70% { transform:translateY(-1px) rotate(-1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes cml-lafeu-stand { 0% { transform:translateX(0) rotate(0) } 40% { transform:translateX(-3px) rotate(1deg) } 70% { transform:translateX(2px) rotate(-.5deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes cml-candle-flicker { 0% { box-shadow:0 0 12px 2px rgba(180,140,80,.15); opacity:.7 } 30% { box-shadow:0 0 22px 6px rgba(200,160,100,.25); opacity:.9 } 60% { box-shadow:0 0 16px 4px rgba(180,140,80,.18); opacity:.8 } 80% { box-shadow:0 0 26px 8px rgba(200,160,100,.22); opacity:.95 } 100% { box-shadow:0 0 14px 3px rgba(180,140,80,.16); opacity:.75 } }
@keyframes cml-chair-empty { 0% { transform:rotate(0) } 30% { transform:rotate(-.5deg) } 60% { transform:rotate(.5deg) } 100% { transform:rotate(0) } }
@keyframes cml-shadow-deepen { 0% { opacity:.5; transform:scaleY(.9) } 50% { opacity:.8; transform:scaleY(1.1) } 100% { opacity:.6; transform:scaleY(.95) } }
@keyframes cml-veil-drift { 0% { transform:translateX(0) rotate(0); opacity:.5 } 50% { transform:translateX(6px) rotate(2deg); opacity:.7 } 100% { transform:translateX(0) rotate(0); opacity:.55 } }

.scn-roussillon-countess-lament {
  background: linear-gradient(180deg, #2a1f18 0%, #1a120e 30%, #0d0a07 100%),
              radial-gradient(ellipse at 30% 40%, #5a3f2b 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-roussillon-countess-lament .wall-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #1e1611 0%, #2a1f18 100%);
  animation: cl-wall 15s ease-in-out infinite alternate;
}
.scn-roussillon-countess-lament .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
}
.scn-roussillon-countess-lament .window {
  position: absolute; top: 8%; left: 50%; width: 30%; height: 45%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1e 100%);
  border: 2px solid #4a3a2a;
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: cl-window 12s ease-in-out infinite alternate;
}
.scn-roussillon-countess-lament .candle-glow {
  position: absolute; bottom: 35%; left: 20%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffb060 0%, #ff9040 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,160,80,0.4), 0 0 60px 20px rgba(255,160,80,0.2);
  animation: cl-candle 3s ease-in-out infinite alternate;
}
.scn-roussillon-countess-lament .figure-countess {
  position: absolute; bottom: 28%; left: 30%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: cl-figure 6s ease-in-out infinite;
}
.scn-roussillon-countess-lament .chair {
  position: absolute; bottom: 24%; left: 28%; width: 16%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: cl-chair 8s ease-in-out infinite;
}
.scn-roussillon-countess-lament .drapes {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f18 100%);
  border-radius: 0 30% 30% 0 / 0 10% 10% 0;
  filter: blur(2px);
  animation: cl-drapes 9s ease-in-out infinite alternate;
}
@keyframes cl-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cl-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cl-candle { 0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 20px 8px rgba(255,160,80,0.3); } 50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 40px 15px rgba(255,160,80,0.5); } 100% { transform: scale(0.95); opacity: 0.7; box-shadow: 0 0 20px 8px rgba(255,160,80,0.3); } }
@keyframes cl-figure { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes cl-chair { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes cl-drapes { 0% { transform: translateX(0) skewX(0); } 50% { transform: translateX(-2px) skewX(-2deg); } 100% { transform: translateX(0) skewX(0); } }

.scn-roussillon-clown-letter {
  background: linear-gradient(180deg, #2a1f18 0%, #1a120e 30%, #0d0a07 100%),
              radial-gradient(ellipse at 70% 50%, #4a3525 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-roussillon-clown-letter .wall-dark {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #1e1611 0%, #2a1f18 100%);
  animation: cc-wall 18s ease-in-out infinite alternate;
}
.scn-roussillon-clown-letter .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
}
.scn-roussillon-clown-letter .figure-left {
  position: absolute; bottom: 25%; left: 15%; width: 10%; height: 45%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: cc-figure-left 7s ease-in-out infinite;
}
.scn-roussillon-clown-letter .figure-right {
  position: absolute; bottom: 25%; right: 15%; width: 10%; height: 45%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: cc-figure-right 7s ease-in-out infinite alternate;
}
.scn-roussillon-clown-letter .letter {
  position: absolute; bottom: 40%; left: 45%; width: 8%; height: 5%;
  background: linear-gradient(135deg, #c8a878 0%, #a08050 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: cc-letter 5s ease-in-out infinite;
}
.scn-roussillon-clown-letter .table {
  position: absolute; bottom: 28%; left: 40%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-roussillon-clown-letter .candle {
  position: absolute; bottom: 38%; left: 48%; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffb060 0%, #ff9040 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,160,80,0.4);
  animation: cc-candle 3.5s ease-in-out infinite alternate;
}
@keyframes cc-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cc-figure-left { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(-2px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes cc-figure-right { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes cc-letter { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cc-candle { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.7; } }

.scn-rousillon-clown-letter {
  background: linear-gradient(180deg, #2a1f1d 0%, #3d2a24 40%, #4c342d 70%, #2a1f1d 100%),
              radial-gradient(ellipse at 50% 70%, #4c342d 0%, transparent 70%);
}
.scn-rousillon-clown-letter .rcl-room {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, #1a1010 100%);
  animation: rcl-room-pulse 6s ease-in-out infinite alternate;
}
.scn-rousillon-clown-letter .rcl-wall {
  position: absolute; inset: 0 15% 30% 15%; background: linear-gradient(180deg, #4a3530 0%, #3a2a26 100%);
  border-radius: 0 0 20% 20%; box-shadow: inset 0 -30px 50px rgba(0,0,0,.6);
}
.scn-rousillon-clown-letter .rcl-window {
  position: absolute; top: 10%; left: 20%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, #4a4040 0%, #1a1515 80%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 0 40px 10px rgba(40,30,25,.4);
  animation: rcl-window-glow 8s ease-in-out infinite alternate;
}
.scn-rousillon-clown-letter .rcl-table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #5a3d30 0%, #3a2820 100%);
  border-radius: 2px 2px 20px 20px; box-shadow: 0 -4px 12px rgba(0,0,0,.5);
}
.scn-rousillon-clown-letter .rcl-candle {
  position: absolute; bottom: 32%; left: 48%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #cc9966 0%, #8a6633 100%);
  border-radius: 2px 2px 4px 4px; transform-origin: bottom center;
  animation: rcl-candle-sway 4s ease-in-out infinite;
}
.scn-rousillon-clown-letter .rcl-flame {
  position: absolute; bottom: 58%; left: 48.5%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd89c 0%, #e8a050 40%, #804020 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px #e8a050, 0 0 40px 12px rgba(200,100,40,.4);
  animation: rcl-flame-flicker 0.8s ease-in-out infinite alternate;
}
.scn-rousillon-clown-letter .rcl-letter {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 20px;
  background: #d4c4a0; border: 1px solid #a08860; border-radius: 1px;
  transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,.4);
  animation: rcl-letter-pass 8s ease-in-out infinite;
}
.scn-rousillon-clown-letter .rcl-countess {
  position: absolute; bottom: 22%; left: 30%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2a26 0%, #1a1412 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rcl-breathe 4s ease-in-out infinite;
}
.scn-rousillon-clown-letter .rcl-clown {
  position: absolute; bottom: 22%; right: 30%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #2a1f1d 0%, #16100e 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: rcl-breathe 4s ease-in-out infinite reverse;
}
@keyframes rcl-room-pulse {
  0% { opacity: 0.7; }
  50% { opacity: 0.85; }
  100% { opacity: 0.7; }
}
@keyframes rcl-window-glow {
  0% { box-shadow: 0 0 30px 6px rgba(40,30,25,.3); }
  50% { box-shadow: 0 0 50px 12px rgba(40,30,25,.5); }
  100% { box-shadow: 0 0 30px 6px rgba(40,30,25,.3); }
}
@keyframes rcl-candle-sway {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1.5deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes rcl-flame-flicker {
  0% { transform: scaleY(1) scaleX(0.9); opacity: 0.9; }
  50% { transform: scaleY(1.15) scaleX(1); opacity: 1; }
  100% { transform: scaleY(1) scaleX(0.9); opacity: 0.9; }
}
@keyframes rcl-letter-pass {
  0% { transform: translate(0, 0) rotate(-5deg); }
  25% { transform: translate(10px, -2px) rotate(-3deg); }
  50% { transform: translate(20px, -4px) rotate(-1deg); }
  75% { transform: translate(10px, -2px) rotate(-3deg); }
  100% { transform: translate(0, 0) rotate(-5deg); }
}
@keyframes rcl-breathe {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}

.scn-roussillon-countess-lament {
  background: 
    linear-gradient(180deg, #2a1a2a 0%, #4a3a3a 40%, #5a4a3a 100%),
    radial-gradient(ellipse at 60% 20%, #6a5a4a 0%, transparent 60%);
}

.scn-roussillon-countess-lament .cl-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a1a 0%, #3a2a1a 50%, #2a1a2a 100%);
  animation: cl-bg 20s ease-in-out infinite alternate;
}

.scn-roussillon-countess-lament .cl-window {
  position: absolute; top: 10%; left: 8%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #5a6a7a 0%, #7a8a9a 60%, #9aaaab 100%);
  border-radius: 4px 4px 8px 8px; opacity: 0.4;
  box-shadow: inset 0 0 30px #8a9aaa;
  animation: cl-window 15s ease-in-out infinite alternate;
}

.scn-roussillon-countess-lament .cl-curtain {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #4a2a1a 0%, #6a4a3a 50%, transparent 100%);
  border-radius: 0 40% 60% 0;
  transform-origin: top left;
  animation: cl-curtain 8s ease-in-out infinite alternate;
}

.scn-roussillon-countess-lament .cl-figure {
  position: absolute; bottom: 20%; left: 45%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cl-figure 6s ease-in-out infinite;
}

.scn-roussillon-countess-lament .cl-chair {
  position: absolute; bottom: 20%; left: 42%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 -8px 10px #1a1a1a;
  animation: cl-chair 12s ease-in-out infinite alternate;
}

.scn-roussillon-countess-lament .cl-candle {
  position: absolute; bottom: 30%; right: 20%; width: 1.5%; height: 6%;
  background: linear-gradient(180deg, #f5d080 0%, #d4a050 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 10px #f5d080;
  animation: cl-candle 3s ease-in-out infinite;
}

.scn-roussillon-countess-lament .cl-glow {
  position: absolute; bottom: 28%; right: 17%; width: 10%; height: 15%;
  background: radial-gradient(ellipse, rgba(245,208,128,0.6) 0%, transparent 70%);
  pointer-events: none;
  animation: cl-glow 3s ease-in-out infinite alternate;
}

.scn-roussillon-countess-lament .cl-dust {
  position: absolute; top: 30%; left: 30%; width: 100%; height: 40%;
  background: transparent;
  transform-origin: center;
  animation: cl-dust 25s linear infinite;
}

.scn-roussillon-countess-lament .cl-dust::before {
  content: '';
  position: absolute;
  top: 10%; left: 20%;
  width: 4px; height: 4px;
  background: rgba(200,180,160,0.3);
  border-radius: 50%;
  box-shadow: 40px 60px 0 rgba(200,180,160,0.2), 80px 120px 0 rgba(200,180,160,0.25), 120px 40px 0 rgba(200,180,160,0.15);
  animation: cl-dust-particle 30s linear infinite;
}

@keyframes cl-bg {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

@keyframes cl-window {
  0% { opacity: 0.3; box-shadow: inset 0 0 20px #8a9aaa; }
  50% { opacity: 0.5; box-shadow: inset 0 0 40px #aabbcc; }
  100% { opacity: 0.35; box-shadow: inset 0 0 25px #8a9aaa; }
}

@keyframes cl-curtain {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

@keyframes cl-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}

@keyframes cl-chair {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(0.98) translateY(-2px); }
  100% { transform: scale(1) translateY(0); }
}

@keyframes cl-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.05) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.97) translateY(0); opacity: 0.85; }
}

@keyframes cl-glow {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.1); opacity: 0.9; }
  100% { transform: scale(0.95); opacity: 0.5; }
}

@keyframes cl-dust {
  0% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
  100% { transform: translateY(0); }
}

@keyframes cl-dust-particle {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 0; }
  25% { opacity: 1; }
  50% { transform: translate(50px, -20px) rotate(180deg); }
  75% { opacity: 0.8; }
  100% { transform: translate(100px, 0) rotate(360deg); opacity: 0; }
}
/* end per-scene blocks */
