/* style.css -- merged from per-tier scene CSS by wizard2.stages.build_deploy */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-item-nightly-linen { background: linear-gradient(180deg, #0e0806 0%, #1a0f0a 40%, #2e1c12 100%), radial-gradient(ellipse at 50% 40%, #3a2216 0%, transparent 70%); }
.scn-item-nightly-linen .bg-bed { position:absolute; inset:0; background: linear-gradient(180deg, #0a0604 0%, #1a0f0a 100%); }
.scn-item-nightly-linen .pillow { position:absolute; bottom:25%; left:25%; width:40px; height:20px; background: radial-gradient(ellipse at 50% 40%, #4a3828 0%, #2e1c12 100%); border-radius: 50%; animation: nl-pillow 9s ease-in-out infinite; }
.scn-item-nightly-linen .linen { position:absolute; bottom:30%; left:20%; right:30%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%); border-radius: 10% 10% 40% 40%; opacity:.8; animation: nl-linen 6s ease-in-out infinite alternate; }
.scn-item-nightly-linen .lc-hand { position:absolute; bottom:30%; left:35%; width:10px; height:14px; background: linear-gradient(180deg, #3a2a1e 0%, #1a0f0a 100%); border-radius: 40% 40% 20% 20%; animation: nl-hand 4s ease-in-out infinite; }
.scn-item-nightly-linen .tq-face { position:absolute; bottom:45%; right:30%; width:18px; height:22px; background: linear-gradient(180deg, #0a0504 0%, #1a0f0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: nl-face 5s ease-in-out infinite; }
.scn-item-nightly-linen .candle { position:absolute; bottom:35%; left:10%; width:6px; height:15px; background: linear-gradient(180deg, #d0a060 0%, #a05818 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 12px 3px #c08030, 0 0 24px 6px rgba(180,100,30,.3); animation: nl-candle 5s ease-in-out infinite; }
.scn-item-nightly-linen .shadow { position:absolute; bottom:25%; right:20%; width:50px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); filter: blur(6px); animation: nl-shadow 8s ease-in-out infinite alternate; }
@keyframes nl-pillow { 0% { transform:scaleY(1) translateY(0) } 50% { transform:scaleY(1.05) translateY(-2px) } 100% { transform:scaleY(1) translateY(0) } }
@keyframes nl-linen { 0% { opacity:.7; transform:translateY(0) } 50% { opacity:.9; transform:translateY(3px) } 100% { opacity:.75; transform:translateY(-2px) } }
@keyframes nl-hand { 0% { transform:translateX(0) rotate(0deg) } 33% { transform:translateX(3px) rotate(5deg) } 66% { transform:translateX(0) rotate(-3deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes nl-face { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(-2px) rotate(3deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes nl-candle { 0% { transform:scaleY(1); opacity:.8 } 50% { transform:scaleY(1.12) translateY(-3px); opacity:1 } 100% { transform:scaleY(.95); opacity:.75 } }
@keyframes nl-shadow { 0% { opacity:.4; transform:scale(1) } 50% { opacity:.7; transform:scale(1.1) } 100% { opacity:.5; transform:scale(.95) } }

.scn-item-letter {
  background: linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 40%, #4a4a5e 70%, #5a4a3e 100%), radial-gradient(ellipse at 30% 80%, #5a4a3e 0%, transparent 60%);
}
.scn-item-letter .il-desk { position:absolute; bottom:10%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 -6px 12px rgba(0,0,0,.5); }
.scn-item-letter .il-paper { position:absolute; bottom:22%; left:35%; width:25%; height:12%; background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: il-flutter 4s ease-in-out infinite; }
.scn-item-letter .il-hand { position:absolute; bottom:30%; left:42%; width:10%; height:16%; background: linear-gradient(180deg, #d0b080 0%, #a08060 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: 50% 100%; animation: il-write 3s ease-in-out infinite; }
.scn-item-letter .il-quill { position:absolute; bottom:36%; left:44%; width:1.5%; height:10%; background: linear-gradient(180deg, #e0e0e0 0%, #a0a0a0 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-20deg); animation: il-scribble 2s ease-in-out infinite; }
.scn-item-letter .il-inkwell { position:absolute; bottom:20%; left:30%; width:6%; height:6%; background: radial-gradient(circle, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.6); }
.scn-item-letter .il-candle { position:absolute; bottom:32%; left:60%; width:2%; height:14%; background: linear-gradient(180deg, #e0c080 0%, #806040 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 4px rgba(224,192,128,.7); animation: il-flicker 2s ease-in-out infinite alternate; }
.scn-item-letter .il-shadow { position:absolute; bottom:18%; left:25%; width:40%; height:4%; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(4px); animation: il-shift 6s ease-in-out infinite; }
@keyframes il-flutter { 0%,100% { transform: rotate(-2deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(1.02); } }
@keyframes il-write { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2%) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1%) rotate(1deg); } }
@keyframes il-scribble { 0%,100% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2%); } }
@keyframes il-flicker { 0% { opacity:.7; box-shadow: 0 0 10px 2px rgba(224,192,128,.5); } 50% { opacity:1; box-shadow: 0 0 24px 6px rgba(255,200,100,.9); } 100% { opacity:.8; box-shadow: 0 0 14px 3px rgba(224,192,128,.6); } }
@keyframes il-shift { 0%,100% { transform: translateX(0); } 50% { transform: translateX(5%); } }

/* Scene 3: messenger-sent – tense mood, bright interior */

.scn-brutus-oath {
  background: 
    linear-gradient(180deg, #5b8cb8 0%, #a6c8e0 30%, #fce4a8 60%, #e8b84a 100%),
    radial-gradient(circle at 70% 25%, #fff5c0 0%, transparent 50%);
}
.scn-brutus-oath .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a6c8e0 0%, transparent 100%);
  animation: bo-sky 15s ease-in-out infinite alternate;
}
.scn-brutus-oath .sun {
  position: absolute; top: 5%; right: 25%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, #ffe67a 0%, #ffd04a 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255, 214, 80, 0.4);
  animation: bo-sun 10s ease-in-out infinite alternate;
}
.scn-brutus-oath .clouds {
  position: absolute; top: 12%; 
  width: 120px; height: 25px;
  background: rgba(230, 240, 255, 0.6);
  border-radius: 50%;
  filter: blur(8px);
}
.scn-brutus-oath .cloud-a {
  left: -10%; 
  animation: bo-drift-a 40s linear infinite;
}
.scn-brutus-oath .cloud-b {
  left: 30%; width: 90px; height: 20px;
  animation: bo-drift-b 55s linear infinite reverse;
}
.scn-brutus-oath .hills {
  position: absolute; bottom: 30%; left: 0; right: 0;
  height: 20%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: bo-hills 18s ease-in-out infinite alternate;
}
.scn-brutus-oath .ground {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}
.scn-brutus-oath .figure {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bo-figure 6s ease-in-out infinite;
}
.scn-brutus-oath .blade {
  position: absolute; bottom: 42%; left: 50%; width: 4px; height: 35px;
  transform: translateX(-50%) rotate(-25deg);
  background: linear-gradient(180deg, #e0d8c0 0%, #b0a890 70%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 10px 2px rgba(255,255,200,0.3);
  animation: bo-blade 4s ease-in-out infinite alternate;
}
.scn-brutus-oath .shadow {
  position: absolute; bottom: 25%; left: 44%;
  width: 80px; height: 4px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: bo-shadow 6s ease-in-out infinite;
}
@keyframes bo-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes bo-sun {
  0% { transform: scale(1); box-shadow: 0 0 40px 10px rgba(255,214,80,0.3); }
  50% { transform: scale(1.05); box-shadow: 0 0 80px 20px rgba(255,214,80,0.5); }
  100% { transform: scale(0.95); box-shadow: 0 0 50px 15px rgba(255,214,80,0.4); }
}
@keyframes bo-drift-a {
  0% { transform: translateX(-100px); }
  100% { transform: translateX(110vw); }
}
@keyframes bo-drift-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}
@keyframes bo-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes bo-figure {
  0% { transform: translateX(-50%) rotate(-1deg); }
  25% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes bo-blade {
  0% { transform: translateX(-50%) rotate(-25deg) scaleY(1); opacity: 0.9; }
  50% { transform: translateX(-50%) rotate(-20deg) scaleY(1.02); opacity: 1; }
  100% { transform: translateX(-50%) rotate(-28deg) scaleY(0.98); opacity: 0.85; }
}
@keyframes bo-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.2); opacity: 0.3; }
  100% { transform: scaleX(0.9); opacity: 0.45; }
}

.scn-public-justice {
  background:
    linear-gradient(180deg, #6b7b8b 0%, #9bb0c0 30%, #d4c4a0 60%, #c8a88a 100%),
    radial-gradient(ellipse at 30% 20%, #efd8a0 0%, transparent 50%);
}
.scn-public-justice .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #8fa8c0 0%, transparent 100%);
  animation: pj-sky 14s ease-in-out infinite alternate;
}
.scn-public-justice .sun {
  position: absolute; top: 8%; left: 30%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe8a0 0%, #e8c870 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(232, 200, 112, 0.3);
  animation: pj-sun 8s ease-in-out infinite alternate;
}
.scn-public-justice .clouds {
  position: absolute; top: 15%; 
  width: 100px; height: 20px;
  background: rgba(200, 210, 220, 0.5);
  border-radius: 50%;
  filter: blur(6px);
}
.scn-public-justice .cloud-a {
  left: -15%;
  animation: pj-drift-a 50s linear infinite;
}
.scn-public-justice .cloud-b {
  left: 40%; width: 80px; height: 15px;
  animation: pj-drift-b 45s linear infinite reverse;
}
.scn-public-justice .columns {
  position: absolute; bottom: 20%; left: 10%; right: 10%;
  height: 45%;
  background: 
    linear-gradient(90deg, #b8a890 0%, #d4c8b8 20%, #b8a890 40%, #c8b8a8 60%, #b8a890 80%, #d0c0b0 100%);
  clip-path: polygon(0% 0%, 8% 0%, 8% 100%, 0% 100%, 100% 100%, 92% 100%, 92% 0%, 100% 0%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
  animation: pj-columns 20s ease-in-out infinite alternate;
}
.scn-public-justice .altar {
  position: absolute; bottom: 18%; left: 50%;
  width: 60px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a09070 0%, #706050 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: pj-altar 12s ease-in-out infinite;
}
.scn-public-justice .figure-kneeling {
  position: absolute; bottom: 18%; left: 50%;
  width: 28px; height: 50px;
  transform: translateX(-50%) translateY(-15px);
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pj-figure 5s ease-in-out infinite;
}
.scn-public-justice .arms {
  position: absolute; bottom: 30%; left: 48%;
  width: 40px; height: 14px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%) rotate(-5deg);
  clip-path: polygon(0% 40%, 60% 0%, 100% 40%, 100% 60%, 60% 100%, 0% 60%);
  animation: pj-arms 7s ease-in-out infinite alternate;
}
.scn-public-justice .shadow {
  position: absolute; bottom: 15%; left: 44%;
  width: 100px; height: 6px;
  background: rgba(0,0,0,0.35);
  border-radius: 50%;
  filter: blur(5px);
  animation: pj-shadow 6s ease-in-out infinite;
}
@keyframes pj-sky {
  0% { opacity: 0.75; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes pj-sun {
  0% { transform: scale(0.95); opacity: 0.8; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(1); opacity: 0.9; }
}
@keyframes pj-drift-a {
  0% { transform: translateX(-80px); }
  100% { transform: translateX(100vw); }
}
@keyframes pj-drift-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-90vw); }
}
@keyframes pj-columns {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes pj-altar {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes pj-figure {
  0% { transform: translateX(-50%) translateY(-15px) rotate(-2deg); }
  25% { transform: translateX(-50%) translateY(-16px) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-15px) rotate(2deg); }
  75% { transform: translateX(-50%) translateY(-14px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(-15px) rotate(-2deg); }
}
@keyframes pj-arms {
  0% { transform: translateX(-50%) rotate(-5deg); }
  50% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(-8deg); }
}
@keyframes pj-shadow {
  0% { transform: scaleX(1); opacity: 0.35; }
  50% { transform: scaleX(1.3); opacity: 0.25; }
  100% { transform: scaleX(0.9); opacity: 0.4; }
}

.scn-invocation-night-1 {
  background:
    linear-gradient(180deg, #0b0b1a 0%, #1a1a3a 40%, #0f0f1f 100%),
    radial-gradient(ellipse at 30% 50%, #2a1a3a 0%, transparent 70%);
}
.scn-invocation-night-1 .sky {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #0f0f2a 0%, #1a1a3e 60%, transparent 100%);
  animation: in1-sky 14s ease-in-out infinite alternate;
}
.scn-invocation-night-1 .mist-bg {
  position: absolute;
  bottom: 25%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(0deg, rgba(25,20,40,0.8) 0%, rgba(15,10,25,0.2) 100%);
  border-radius: 60% 40% 50% 50% / 80% 70% 30% 20%;
  filter: blur(12px);
  animation: in1-mist 22s ease-in-out infinite alternate;
}
.scn-invocation-night-1 .trees {
  position: absolute;
  bottom: 20%;
  width: 30px;
  height: 80px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 10% 10% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 -8px 10px rgba(0,0,0,0.6);
}
.scn-invocation-night-1 .tree-left {
  left: 20%;
  transform: rotate(-5deg);
  animation: in1-tree 8s ease-in-out infinite;
}
.scn-invocation-night-1 .tree-right {
  right: 20%;
  transform: rotate(5deg);
  animation: in1-tree 8s ease-in-out infinite reverse;
}
.scn-invocation-night-1 .figure {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 16px;
  height: 40px;
  background: linear-gradient(180deg, #0d0d1a 0%, #05050f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(2deg);
  animation: in1-figure 4s ease-in-out infinite;
}
.scn-invocation-night-1 .lantern {
  position: absolute;
  bottom: 28%;
  left: 45%;
  width: 6px;
  height: 6px;
  background: radial-gradient(circle, #c09040 0%, #705020 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(192,144,64,0.5), 0 0 40px 20px rgba(192,144,64,0.2);
  animation: in1-lantern 3s ease-in-out infinite alternate;
}
.scn-invocation-night-1 .vapour {
  position: absolute;
  bottom: 15%;
  width: 120px;
  height: 40px;
  background: rgba(20,15,30,0.3);
  border-radius: 60% 40% 50% 50% / 50% 50% 50% 50%;
  filter: blur(14px);
}
.scn-invocation-night-1 .vapour-1 {
  left: -10%;
  animation: in1-vapour 35s linear infinite;
}
.scn-invocation-night-1 .vapour-2 {
  right: -10%;
  animation: in1-vapour 45s linear infinite reverse;
}
@keyframes in1-sky { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes in1-mist { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); } 100% { transform: translateY(2px) scale(0.95); } }
@keyframes in1-tree { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes in1-figure { 0% { transform: translateX(-50%) rotate(2deg) translateY(0); } 25% { transform: translateX(-48%) rotate(3deg) translateY(-1px); } 50% { transform: translateX(-50%) rotate(2deg) translateY(0); } 75% { transform: translateX(-52%) rotate(1deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(2deg) translateY(0); } }
@keyframes in1-lantern { 0% { opacity:0.7; box-shadow: 0 0 15px 8px rgba(192,144,64,0.4); } 100% { opacity:1; box-shadow: 0 0 30px 15px rgba(192,144,64,0.7); } }
@keyframes in1-vapour { 0% { transform: translateX(0); } 100% { transform: translateX(100vw); } }

.scn-invocation-night-2 {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a1a2e 80%, #0f0f1f 100%),
    radial-gradient(ellipse at 50% 0%, #2a1a3a 0%, transparent 60%);
}
.scn-invocation-night-2 .shaft-bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #1f1f2f 0%, #0a0a1a 70%);
  animation: in2-bg 20s ease-in-out infinite alternate;
}
.scn-invocation-night-2 .smoke-top {
  position: absolute;
  top: 5%;
  left: 30%;
  width: 100px;
  height: 60px;
  background: rgba(30,20,40,0.4);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  filter: blur(16px);
  animation: in2-smoke 12s ease-in-out infinite alternate;
}
.scn-invocation-night-2 .smoke-mid {
  position: absolute;
  top: 30%;
  left: 20%;
  width: 80px;
  height: 50px;
  background: rgba(20,15,30,0.3);
  border-radius: 60% 40% 40% 60% / 50% 60% 40% 50%;
  filter: blur(14px);
  animation: in2-smoke 15s ease-in-out infinite alternate-reverse;
}
.scn-invocation-night-2 .smoke-bottom {
  position: absolute;
  top: 55%;
  left: 40%;
  width: 120px;
  height: 70px;
  background: rgba(15,10,25,0.5);
  border-radius: 40% 60% 50% 50% / 30% 40% 60% 70%;
  filter: blur(18px);
  animation: in2-smoke 18s ease-in-out infinite alternate;
}
.scn-invocation-night-2 .light-beam {
  position: absolute;
  top: 0;
  left: 45%;
  width: 10px;
  height: 40%;
  background: linear-gradient(180deg, rgba(100,80,60,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: in2-beam 5s ease-in-out infinite alternate;
}
.scn-invocation-night-2 .figure-fallen {
  position: absolute;
  bottom: 15%;
  left: 50%;
  width: 22px;
  height: 30px;
  background: linear-gradient(180deg, #0d0d1a 0%, #05050f 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  transform: translateX(-50%) rotate(80deg);
  animation: in2-fallen 10s ease-in-out infinite;
}
.scn-invocation-night-2 .ember {
  position: absolute;
  width: 4px;
  height: 4px;
  background: radial-gradient(circle, #b08040 0%, #604020 100%);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-invocation-night-2 .ember-1 {
  bottom: 30%;
  left: 30%;
  animation: in2-ember 4s linear infinite;
}
.scn-invocation-night-2 .ember-2 {
  bottom: 35%;
  left: 55%;
  animation: in2-ember 5s linear infinite 1s;
}
.scn-invocation-night-2 .ember-3 {
  bottom: 25%;
  left: 70%;
  animation: in2-ember 6s linear infinite 2s;
}
@keyframes in2-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes in2-smoke { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(10px) scale(1.1); } 100% { transform: translateX(-5px) scale(0.9); } }
@keyframes in2-beam { 0% { opacity:0.2; transform: scaleY(0.8); } 100% { opacity:0.6; transform: scaleY(1.2); } }
@keyframes in2-fallen { 0%,100% { transform: translateX(-50%) rotate(80deg) translateY(0); } 50% { transform: translateX(-50%) rotate(85deg) translateY(-3px); } }
@keyframes in2-ember { 0% { transform: translateY(0) scale(1); opacity:0; } 30% { opacity:1; } 70% { opacity:1; } 100% { transform: translateY(-50px) scale(0.5); opacity:0; } }

.scn-invocation-night-3 {
  background:
    linear-gradient(180deg, #0f0f1a 0%, #1a1a2a 60%, #0a0a15 100%),
    radial-gradient(ellipse at 50% 80%, #1f1f2f 0%, transparent 70%);
}
.scn-invocation-night-3 .bg-arch {
  position: absolute;
  inset: 0 10% 0 10%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1f 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: in3-arch 20s ease-in-out infinite alternate;
}
.scn-invocation-night-3 .wall-left {
  position: absolute;
  top: 0;
  left: 0;
  width: 15%;
  height: 100%;
  background: linear-gradient(90deg, #0f0f1a 0%, transparent 100%);
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.6);
}
.scn-invocation-night-3 .wall-right {
  position: absolute;
  top: 0;
  right: 0;
  width: 15%;
  height: 100%;
  background: linear-gradient(270deg, #0f0f1a 0%, transparent 100%);
  box-shadow: inset 8px 0 12px rgba(0,0,0,0.6);
}
.scn-invocation-night-3 .floor {
  position: absolute;
  bottom: 0;
  left: 15%;
  right: 15%;
  height: 20%;
  background: linear-gradient(0deg, #0a0a15 0%, #14142a 100%);
  border-radius: 0 0 10% 10%;
}
.scn-invocation-night-3 .figure-kneeling {
  position: absolute;
  bottom: 15%;
  left: 35%;
  width: 18px;
  height: 36px;
  background: linear-gradient(180deg, #0d0d1a 0%, #05050f 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: in3-kneel 6s ease-in-out infinite;
}
.scn-invocation-night-3 .figure-other {
  position: absolute;
  bottom: 15%;
  right: 30%;
  width: 16px;
  height: 38px;
  background: linear-gradient(180deg, #0f0f1f 0%, #070710 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform: rotate(-5deg);
  animation: in3-other 7s ease-in-out infinite alternate;
}
.scn-invocation-night-3 .shadow-pool {
  position: absolute;
  bottom: 12%;
  left: 25%;
  width: 150px;
  height: 20px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(10px);
  animation: in3-shadow 10s ease-in-out infinite alternate;
}
.scn-invocation-night-3 .candle {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 6px;
  height: 18px;
  background: linear-gradient(0deg, #302010 0%, #4a3020 100%);
  border-radius: 2px;
  transform: translateX(-50%);
}
.scn-invocation-night-3 .candle-glow {
  position: absolute;
  bottom: 24%;
  left: 50%;
  width: 12px;
  height: 12px;
  background: radial-gradient(circle, #d0a050 0%, #805020 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 10px rgba(208,160,80,0.5), 0 0 40px 20px rgba(208,160,80,0.2);
  animation: in3-glow 2s ease-in-out infinite alternate;
}
@keyframes in3-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes in3-kneel { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(0deg); } }
@keyframes in3-other { 0% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(-7deg) translateY(-2px); } }
@keyframes in3-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.2); opacity:0.7; } 100% { transform: scaleX(0.9); opacity:0.4; } }
@keyframes in3-glow { 0% { opacity:0.7; transform: translateX(-50%) scale(0.9); } 100% { opacity:1; transform: translateX(-50%) scale(1.1); } }

.scn-invocation-night-4 {
  background:
    linear-gradient(180deg, #0a0a12 0%, #1a1a2a 50%, #0f0f1f 100%),
    radial-gradient(ellipse at 50% 30%, #2a1a2e 0%, transparent 60%);
}
.scn-invocation-night-4 .sky-dark {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #151525 80%);
  animation: in4-sky 18s ease-in-out infinite alternate;
}
.scn-invocation-night-4 .smoke-billow {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 200px;
  height: 100px;
  background: rgba(20,15,25,0.4);
  border-radius: 50% 40% 60% 30% / 40% 60% 50% 50%;
  filter: blur(20px);
  animation: in4-smoke 25s ease-in-out infinite alternate;
}
.scn-invocation-night-4 .figure-silhouette {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 20px;
  height: 45px;
  background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) scale(1.2);
  animation: in4-figure 8s ease-in-out infinite;
}
.scn-invocation-night-4 .face-mask {
  position: absolute;
  bottom: 32%;
  left: 50%;
  width: 14px;
  height: 16px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0f0f0f 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.8);
  animation: in4-mask 6s ease-in-out infinite alternate;
}
.scn-invocation-night-4 .tear-drop {
  position: absolute;
  bottom: 18%;
  width: 4px;
  height: 6px;
  background: linear-gradient(180deg, rgba(100,120,180,0.8) 0%, rgba(40,50,80,0.4) 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  opacity: 0.7;
}
.scn-invocation-night-4 .tear-1 {
  left: 48%;
  animation: in4-tear 4s ease-in-out infinite;
}
.scn-invocation-night-4 .tear-2 {
  left: 52%;
  animation: in4-tear 5s ease-in-out infinite 0.5s;
}
.scn-invocation-night-4 .tear-3 {
  left: 50.5%;
  animation: in4-tear 4.5s ease-in-out infinite 1s;
}
.scn-invocation-night-4 .ground-mist {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(0deg, rgba(15,10,20,0.6) 0%, transparent 100%);
  filter: blur(15px);
  animation: in4-mist 15s ease-in-out infinite alternate;
}
@keyframes in4-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes in4-smoke { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(20px) scale(1.15); } 100% { transform: translateX(-10px) scale(0.9); } }
@keyframes in4-figure { 0%,100% { transform: translateX(-50%) scale(1.2); } 50% { transform: translateX(-50%) scale(1.25) translateY(-2px); } }
@keyframes in4-mask { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(2deg) scale(1.02); } }
@keyframes in4-tear { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { opacity:0.9; } 100% { transform: translateY(12px) scale(0.8); opacity:0; } }
@keyframes in4-mist { 0% { opacity:0.3; transform: scaleY(1); } 50% { opacity:0.6; transform: scaleY(1.2); } 100% { opacity:0.4; transform: scaleY(0.9); } }

.scn-invocation-night-5 { background: linear-gradient(180deg, #0a0a12 0%, #141624 40%, #1a1c2c 100%), radial-gradient(ellipse at 30% 60%, #2a2a3e 0%, transparent 70%); }
.scn-invocation-night-5 .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #06060e 80%); }
.scn-invocation-night-5 .moon    { position:absolute; top:12%; left:65%; width:60px; height:60px; background: radial-gradient(circle, #b8c8d8 0%, #6a7a8a 80%); border-radius:50%; box-shadow: 0 0 40px 10px #7a8a9a, 0 0 80px 30px rgba(90,100,120,0.3); animation: in5-moon 10s ease-in-out infinite alternate; }
.scn-invocation-night-5 .cloud   { position:absolute; top:10%; left:40%; width:120px; height:30px; background: rgba(20,24,36,0.7); border-radius:50%; filter: blur(12px); animation: in5-cloud 30s linear infinite; }
.scn-invocation-night-5 .figure-profile { position:absolute; bottom:10%; left:30%; width:50px; height:120px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 40% 20% 30% 30% / 60% 40% 50% 50%; transform-origin: bottom center; animation: in5-figure 6s ease-in-out infinite; }
.scn-invocation-night-5 .hand    { position:absolute; bottom:42%; left:36%; width:20px; height:30px; background: #2a2a3e; border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; transform: rotate(-20deg); animation: in5-hand 4s ease-in-out infinite alternate; }
.scn-invocation-night-5 .brow-light { position:absolute; bottom:48%; left:28%; width:8px; height:8px; background: radial-gradient(circle, #c8d8e0 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 15px 5px #6a8a9a; animation: in5-brow 3s ease-in-out infinite alternate; }
.scn-invocation-night-5 .scar-mark { position:absolute; bottom:45%; left:30%; width:12px; height:3px; background: #6a3a3a; border-radius: 50%; box-shadow: 0 0 6px 2px #9a4a4a; animation: in5-scar 5s ease-in-out infinite; }

@keyframes in5-moon  { 0% { opacity:.6; transform: scale(1); } 50% { opacity:.9; transform: scale(1.02); } 100% { opacity:.7; transform: scale(0.98); } }
@keyframes in5-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(200px); } }
@keyframes in5-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes in5-hand   { 0% { transform: translate(0,0) rotate(-25deg); } 100% { transform: translate(5px,-5px) rotate(-15deg); } }
@keyframes in5-brow   { 0% { opacity:.3; } 50% { opacity:.8; } 100% { opacity:.4; } }
@keyframes in5-scar   { 0% { opacity:0; } 50% { opacity:.9; } 100% { opacity:0; } }

.scn-invocation-night-6 { background: linear-gradient(180deg, #0c0c10 0%, #10141c 50%, #1a1a22 100%), radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, transparent 80%); }
.scn-invocation-night-6 .bg-shadow { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #050508 100%); }
.scn-invocation-night-6 .stage-light { position:absolute; top:10%; left:35%; width:120px; height:200px; background: radial-gradient(ellipse at 50% 0%, #4a4a5a 0%, transparent 70%); opacity:.4; animation: in6-light 8s ease-in-out infinite alternate; }
.scn-invocation-night-6 .pillory  { position:absolute; bottom:20%; left:45%; width:40px; height:100px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 10px 2px #2a2a3a; animation: in6-pillory 5s ease-in-out infinite; }
.scn-invocation-night-6 .figure-bound { position:absolute; bottom:28%; left:44%; width:30px; height:80px; background: #1a1a2a; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; }
.scn-invocation-night-6 .crowd   { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(0deg, #0e0e16 0px, #0e0e16 4px, #12121e 4px, #12121e 8px); mask: linear-gradient(90deg, transparent 10%, #000 30%, #000 70%, transparent 90%); animation: in6-crowd 3s ease-in-out infinite alternate; }
.scn-invocation-night-6 .minstrel-silhouette { position:absolute; bottom:35%; left:20%; width:20px; height:60px; background: #0a0a12; border-radius: 30% 30% 20% 20%; transform-origin: bottom; animation: in6-minstrel 4s ease-in-out infinite; }
.scn-invocation-night-6 .sound-ripple { position:absolute; bottom:50%; left:40%; width:60px; height:60px; border: 1px solid #3a3a5a; border-radius:50%; animation: in6-sound 2s ease-out infinite; }

@keyframes in6-light { 0% { opacity:.3; transform: scaleY(0.8); } 100% { opacity:.6; transform: scaleY(1.2); } }
@keyframes in6-pillory { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes in6-crowd { 0% { opacity:.4; transform: scaleX(0.95); } 100% { opacity:.8; transform: scaleX(1.05); } }
@keyframes in6-minstrel { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(10px) rotate(10deg); } 100% { transform: translateX(20px) rotate(0); } }
@keyframes in6-sound { 0% { opacity:.8; transform: scale(0.5); } 100% { opacity:0; transform: scale(2); } }

.scn-invocation-night-7 { background: linear-gradient(180deg, #0e0e14 0%, #12121a 50%, #181822 100%), radial-gradient(ellipse at 70% 30%, #2a2a3e 0%, transparent 70%); }
.scn-invocation-night-7 .bg-void { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #06060c 100%); }
.scn-invocation-night-7 .private-chamber { position:absolute; bottom:0; left:15%; right:15%; top:30%; background: linear-gradient(180deg, #1e1e2a 0%, #12121c 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 0 30px 10px #0a0a10; }
.scn-invocation-night-7 .figure-kneeling { position:absolute; bottom:15%; left:45%; width:30px; height:90px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; transform-origin: bottom; animation: in7-kneel 7s ease-in-out infinite alternate; }
.scn-invocation-night-7 .shield-emboss { position:absolute; bottom:35%; left:48%; width:40px; height:50px; background: #2a2a3e; border-radius: 30% 30% 20% 20%; border: 2px solid #4a4a5e; box-shadow: 0 0 8px 2px #3a3a4e; animation: in7-shield 5s ease-in-out infinite; }
.scn-invocation-night-7 .scar-ribbon { position:absolute; bottom:28%; left:45%; width:20px; height:4px; background: #5a2a2a; border-radius: 50%; box-shadow: 0 0 10px 2px #7a3a3a; animation: in7-scar 4s ease-in-out infinite; }
.scn-invocation-night-7 .candle  { position:absolute; bottom:40%; left:55%; width:8px; height:25px; background: #6a5a4a; border-radius: 20% 20% 10% 10%; }
.scn-invocation-night-7 .candle-haze { position:absolute; bottom:55%; left:53%; width:30px; height:30px; background: radial-gradient(circle, #c88040 0%, transparent 100%); opacity:.5; animation: in7-candle 3s ease-in-out infinite alternate; }

@keyframes in7-kneel { 0% { transform: rotate(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes in7-shield { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes in7-scar { 0% { opacity:0; transform: scaleX(0.5); } 50% { opacity:.8; transform: scaleX(1); } 100% { opacity:0; transform: scaleX(0.5); } }
@keyframes in7-candle { 0% { opacity:.4; transform: scale(0.9); } 100% { opacity:.7; transform: scale(1.2); } }

.scn-invocation-night-8 { background: linear-gradient(180deg, #0a0a0e 0%, #141418 50%, #1a1a1e 100%), radial-gradient(ellipse at 40% 70%, #2a2a32 0%, transparent 70%); }
.scn-invocation-night-8 .bg-hive { position:absolute; inset:0; background: repeating-linear-gradient(45deg, #12121c 0px, #12121c 8px, #1a1a24 8px, #1a1a24 16px); opacity:.3; }
.scn-invocation-night-8 .broken-comb { position:absolute; bottom:0; left:20%; right:20%; top:40%; background: #1e1e2a; clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); box-shadow: inset 0 0 20px #0a0a10; animation: in8-comb 12s ease-in-out infinite alternate; }
.scn-invocation-night-8 .drone-figure { position:absolute; bottom:25%; left:42%; width:40px; height:50px; background: #2a2a3a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: in8-drone 6s ease-in-out infinite; }
.scn-invocation-night-8 .honey-drip { position:absolute; bottom:30%; left:45%; width:4px; height:15px; background: linear-gradient(180deg, #8a7a4a 0%, transparent 100%); border-radius: 50%; animation: in8-drip 4s ease-in-out infinite; }
.scn-invocation-night-8 .theft-mark { position:absolute; bottom:45%; left:48%; width:15px; height:15px; border: 2px solid #6a3a3a; border-radius: 50%; transform: rotate(45deg); animation: in8-theft 3s ease-in-out infinite alternate; }
.scn-invocation-night-8 .swarm-ghost { position:absolute; top:10%; left:30%; width:80px; height:80px; background: radial-gradient(circle, rgba(40,40,50,0.4) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: in8-swarm 20s linear infinite; }
.scn-invocation-night-8 .light-flicker { position:absolute; top:20%; left:60%; width:10px; height:10px; background: radial-gradient(circle, #c88040 0%, transparent 100%); box-shadow: 0 0 30px 8px rgba(200,128,64,0.3); animation: in8-flicker 2s ease-in-out infinite; }

@keyframes in8-comb { 0% { transform: translateY(0); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0); } }
@keyframes in8-drone { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(10px) rotate(10deg); } 75% { transform: translateX(-10px) rotate(-10deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes in8-drip { 0% { transform: translateY(0); opacity:1; } 50% { transform: translateY(20px); opacity:.5; } 100% { transform: translateY(0); opacity:1; } }
@keyframes in8-theft { 0% { opacity:.3; transform: rotate(45deg) scale(0.8); } 100% { opacity:.9; transform: rotate(45deg) scale(1.2); } }
@keyframes in8-swarm { 0% { transform: translate(0,0) scale(1); } 33% { transform: translate(50px,-20px) scale(1.3); } 66% { transform: translate(-30px,10px) scale(0.8); } 100% { transform: translate(0,0) scale(1); } }
@keyframes in8-flicker { 0% { opacity:.5; } 50% { opacity:1; } 100% { opacity:.4; } }

.scn-lucretius-lament {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a18 40%, #3a2220 100%), radial-gradient(ellipse at 50% 60%, rgba(100, 60, 40, .3) 0%, transparent 70%);
}
.scn-lucretius-lament .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2c1e1a 0%, #1a1210 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-lucretius-lament .floor {
  position: absolute; top: 50%; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #1c1412 0%, #0e0a08 100%);
}
.scn-lucretius-lament .bier {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #4a3028 0%, #3a2018 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.6);
}
.scn-lucretius-lament .body {
  position: absolute; bottom: 34%; left: 35%; width: 30%; height: 14%;
  background: linear-gradient(180deg, #6a4840 0%, #4a3028 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.4);
  animation: ll-breath 6s ease-in-out infinite alternate;
}
.scn-lucretius-lament .old-man {
  position: absolute; bottom: 30%; left: 20%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ll-bend 8s ease-in-out infinite;
}
.scn-lucretius-lament .candle {
  position: absolute; bottom: 48%; left: 55%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #e8c0a0 0%, #a07050 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(200, 140, 100, .6);
  animation: ll-flicker 2s ease-in-out infinite alternate;
}
.scn-lucretius-lament .halo {
  position: absolute; bottom: 48%; left: 55%; width: 60px; height: 60px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(200, 140, 100, .3) 0%, transparent 70%);
  border-radius: 50%;
  animation: ll-halo 4s ease-in-out infinite alternate;
}
@keyframes ll-breath {
  0% { transform: scaleY(1); opacity: .9; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(1); opacity: .9; }
}
@keyframes ll-bend {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes ll-flicker {
  0% { opacity: .7; box-shadow: 0 0 8px 2px rgba(200,140,100,.4); }
  50% { opacity: 1; box-shadow: 0 0 20px 6px rgba(200,140,100,.7); }
  100% { opacity: .8; box-shadow: 0 0 12px 4px rgba(200,140,100,.5); }
}
@keyframes ll-halo {
  0% { transform: translate(-50%, -50%) scale(1); opacity: .5; }
  50% { transform: translate(-50%, -50%) scale(1.2); opacity: .7; }
  100% { transform: translate(-50%, -50%) scale(1); opacity: .5; }
}

.scn-collatine-grief {
  background: linear-gradient(180deg, #1a1018 0%, #2a1820 40%, #3a2028 100%), radial-gradient(ellipse at 50% 70%, rgba(80, 30, 40, .3) 0%, transparent 70%);
}
.scn-collatine-grief .wall {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #2c1a1e 0%, #1a1018 100%);
  border-radius: 0 0 10% 10%;
}
.scn-collatine-grief .floor {
  position: absolute; top: 40%; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #1c1216 0%, #0e0a0c 100%);
}
.scn-collatine-grief .body {
  position: absolute; bottom: 38%; left: 32%; width: 36%; height: 18%;
  background: linear-gradient(180deg, #6a4048 0%, #4a2830 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.4);
  animation: cg-still 12s ease-in-out infinite;
}
.scn-collatine-grief .collatine {
  position: absolute; bottom: 38%; left: 60%; width: 16%; height: 38%;
  background: linear-gradient(180deg, #2a1a20 0%, #1a0e12 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: cg-fall 6s ease-in-out infinite;
}
.scn-collatine-grief .blood {
  position: absolute; bottom: 36%; left: 40%; width: 20%; height: 4%;
  background: radial-gradient(ellipse, #5e1a1d 0%, #3a0a0e 60%, transparent 100%);
  border-radius: 50%;
  animation: cg-spread 8s ease-in-out infinite alternate;
}
.scn-collatine-grief .shadow {
  position: absolute; bottom: 36%; left: 55%; width: 20%; height: 30%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: cg-shift 6s ease-in-out infinite alternate;
}
.scn-collatine-grief .vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,.6) 100%);
  pointer-events: none;
}
@keyframes cg-still {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cg-fall {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(-8deg) translateY(10px); }
  60% { transform: rotate(-15deg) translateY(18px) scaleX(.95); }
  100% { transform: rotate(-10deg) translateY(8px); }
}
@keyframes cg-spread {
  0% { transform: scaleX(1); opacity: .7; }
  50% { transform: scaleX(1.3); opacity: 1; }
  100% { transform: scaleX(1); opacity: .7; }
}
@keyframes cg-shift {
  0% { transform: translateX(0); }
  100% { transform: translateX(-8px); }
}

.scn-brutus-speech {
  background: linear-gradient(180deg, #1a1412 0%, #2a201c 40%, #3a2a24 100%), radial-gradient(ellipse at 50% 30%, rgba(120, 80, 60, .2) 0%, transparent 60%);
}
.scn-brutus-speech .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%);
}
.scn-brutus-speech .podium {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #4a3830 0%, #2a1e1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.4);
}
.scn-brutus-speech .brutus {
  position: absolute; bottom: 28%; left: 44%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bs-orate 4s ease-in-out infinite;
}
.scn-brutus-speech .crowd-left {
  position: absolute; bottom: 20%; left: 10%; width: 25%; height: 25%;
  background: linear-gradient(180deg, #1c1614 0%, #120e0c 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: bs-sway 6s ease-in-out infinite alternate;
}
.scn-brutus-speech .crowd-right {
  position: absolute; bottom: 20%; right: 10%; width: 25%; height: 25%;
  background: linear-gradient(180deg, #1c1614 0%, #120e0c 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: bs-sway 5s ease-in-out infinite alternate-reverse;
}
.scn-brutus-speech .banner {
  position: absolute; top: 10%; left: 45%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a1e14 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: bs-flag 8s ease-in-out infinite alternate;
}
.scn-brutus-speech .brazier {
  position: absolute; bottom: 30%; left: 35%; width: 12px; height: 16px;
  background: radial-gradient(circle, #c08050 0%, #7a4020 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200, 120, 60, .5);
  animation: bs-fire 3s ease-in-out infinite alternate;
}
@keyframes bs-orate {
  0% { transform: rotate(-2deg) translateY(0); }
  25% { transform: rotate(0deg) translateY(-1px); }
  50% { transform: rotate(3deg) translateY(0); }
  75% { transform: rotate(0deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes bs-sway {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.02) translateX(3px); }
  100% { transform: scaleX(1) translateX(0); }
}
@keyframes bs-flag {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes bs-fire {
  0% { transform: scale(1); opacity: .8; box-shadow: 0 0 12px 4px rgba(200,120,60,.4); }
  50% { transform: scale(1.3); opacity: 1; box-shadow: 0 0 30px 12px rgba(200,120,60,.7); }
  100% { transform: scale(1); opacity: .8; box-shadow: 0 0 15px 6px rgba(200,120,60,.5); }
}

.scn-brutus-vow {
  background: linear-gradient(180deg, #0e0a0c 0%, #1a1214 50%, #2a1a1c 100%), radial-gradient(ellipse at 60% 40%, rgba(80, 30, 40, .2) 0%, transparent 70%);
}
.scn-brutus-vow .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,.5) 100%);
}
.scn-brutus-vow .table {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #3a2824 0%, #1c1412 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.4);
}
.scn-brutus-vow .hand {
  position: absolute; bottom: 30%; left: 42%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bv-reach 5s ease-in-out infinite;
}
.scn-brutus-vow .knife {
  position: absolute; bottom: 36%; left: 46%; width: 4px; height: 16%;
  background: linear-gradient(180deg, #8a7060 0%, #4a3830 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: bv-blade 5s ease-in-out infinite;
}
.scn-brutus-vow .blood-drop {
  position: absolute; bottom: 50%; left: 48%; width: 4px; height: 6px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #3a0a0e 100%);
  border-radius: 50%;
  animation: bv-drip 3s ease-in-out infinite;
}
.scn-brutus-vow .glow {
  position: absolute; bottom: 36%; left: 46%; width: 40px; height: 40px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(200, 120, 60, .3) 0%, transparent 60%);
  border-radius: 50%;
  animation: bv-glow 4s ease-in-out infinite alternate;
}
@keyframes bv-reach {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes bv-blade {
  0% { transform: rotate(-3deg) scaleY(1); }
  50% { transform: rotate(3deg) scaleY(1.02); }
  100% { transform: rotate(-3deg) scaleY(1); }
}
@keyframes bv-drip {
  0% { transform: translateY(0); opacity: 0; }
  30% { opacity: 1; }
  70% { opacity: 1; }
  100% { transform: translateY(20px); opacity: 0; }
}
@keyframes bv-glow {
  0% { transform: translate(-50%, -50%) scale(1); opacity: .4; }
  100% { transform: translate(-50%, -50%) scale(1.5); opacity: .7; }
}

/* one block per scene id. Append to style.css. */
.scn-debated-soul { background: linear-gradient(180deg, #1a0e0a 0%, #3d1f12 40%, #6a2e1a 70%, #2c140e 100%), radial-gradient(ellipse at 50% 30%, #c8553d 0%, transparent 60%); }
.scn-debated-soul .fire-warm { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, #a0461a 0%, transparent 50%), radial-gradient(ellipse at 20% 80%, #b85a3a 0%, transparent 40%); mix-blend-mode: screen; animation: db-fire 6s ease-in-out infinite alternate; }
.scn-debated-soul .wall-shadow { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, rgba(20,10,8,0.8) 0%, transparent 100%); }
.scn-debated-soul .figure-profile { position:absolute; bottom:18%; left:30%; width:40px; height:80px; background: radial-gradient(ellipse at 30% 20%, #2c140e 40%, #8a3a1a 100%); border-radius: 60% 40% 40% 60% / 80% 60% 40% 20%; transform: scaleX(-1); box-shadow: inset -10px 0 10px rgba(0,0,0,0.6); animation: db-breath 4s ease-in-out infinite; }
.scn-debated-soul .hand-temple { position:absolute; bottom:36%; left:35%; width:12px; height:18px; background: linear-gradient(180deg, #5e2a14 0%, #3a1a0e 100%); border-radius: 50% 50% 30% 30%; transform: rotate(20deg); animation: db-hand 4s ease-in-out infinite; }
.scn-debated-soul .glow-aura { position:absolute; bottom:10%; left:20%; width:80px; height:100px; background: radial-gradient(circle at 50% 40%, #ffb080 0%, #c8553d 40%, transparent 70%); filter: blur(12px); animation: db-glow 3s ease-in-out infinite alternate; }
.scn-debated-soul .spark { position:absolute; width:4px; height:4px; background: #ffb080; border-radius:50%; box-shadow: 0 0 6px 2px #c8553d; animation: db-spark 2s ease-in-out infinite; }
.scn-debated-soul .particle-a { bottom:50%; left:50%; animation-delay:0s; }
.scn-debated-soul .particle-b { bottom:45%; left:55%; animation-delay:0.5s; }
.scn-debated-soul .particle-c { bottom:55%; left:48%; animation-delay:1s; }

@keyframes db-fire { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.8; transform: scaleY(0.98); } }
@keyframes db-breath { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-2px) rotate(-1deg); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes db-hand { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes db-glow { 0% { opacity:0.5; transform: scale(0.9); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.6; transform: scale(0.95); } }
@keyframes db-spark { 0% { opacity:0; transform: translateY(0) scale(0.5); } 50% { opacity:1; transform: translateY(-10px) scale(1); } 100% { opacity:0; transform: translateY(-20px) scale(0.3); } }

.scn-shakes-aloft-blade { background: linear-gradient(180deg, #1f0f0a 0%, #4a2212 40%, #7a3318 70%, #2c120a 100%), radial-gradient(ellipse at 40% 20%, #c8553d 0%, transparent 50%); }
.scn-shakes-aloft-blade .sky-fire { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8a3a1a 0%, #3d1f12 100%); animation: sb-sky 8s ease-in-out infinite alternate; }
.scn-shakes-aloft-blade .ground-dark { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 100%); }
.scn-shakes-aloft-blade .silhouette-figure { position:absolute; bottom:25%; left:35%; width:35px; height:90px; background: #0a0604; border-radius: 40% 40% 30% 30%; box-shadow: 0 0 20px rgba(0,0,0,0.8); animation: sb-stand 4s ease-in-out infinite; }
.scn-shakes-aloft-blade .blade-raise { position:absolute; bottom:65%; left:37%; width:6px; height:50px; background: linear-gradient(180deg, #c8a880 0%, #8a6a40 100%); border-radius: 10% 10% 20% 20%; transform-origin: bottom center; animation: sb-blade 2s ease-in-out infinite; }
.scn-shakes-aloft-blade .blade-gleam { position:absolute; bottom:65%; left:37.5%; width:3px; height:60px; background: linear-gradient(180deg, #ffd080 0%, transparent 100%); opacity:0.6; filter: blur(2px); animation: sb-gleam 1.5s ease-in-out infinite alternate; }
.scn-shakes-aloft-blade .ember { position:absolute; width:5px; height:5px; background: #ffa060; border-radius:50%; box-shadow: 0 0 8px 3px #c8553d; animation: sb-ember 3s ease-in-out infinite; }
.scn-shakes-aloft-blade .ember-a { top:30%; left:20%; animation-delay:0s; }
.scn-shakes-aloft-blade .ember-b { top:40%; left:70%; animation-delay:0.4s; }
.scn-shakes-aloft-blade .ember-c { top:25%; left:55%; animation-delay:0.8s; }

@keyframes sb-sky { 0% { opacity:0.8; } 50% { opacity:1; background: linear-gradient(180deg, #a0421a 0%, #5a2a14 100%); } 100% { opacity:0.7; } }
@keyframes sb-stand { 0% { transform: translateY(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0); } }
@keyframes sb-blade { 0% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-10deg); } }
@keyframes sb-gleam { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes sb-ember { 0% { transform: translateY(0) scale(1); opacity:0; } 20% { opacity:1; } 60% { opacity:0.6; transform: translateY(-30px) scale(0.5); } 100% { transform: translateY(-60px) scale(0); opacity:0; } }

.scn-tarquin-threatens-enjoy { background: linear-gradient(180deg, #0e0806 0%, #2a140e 40%, #5a2a14 70%, #1a0e0a 100%), radial-gradient(ellipse at 60% 60%, #b85a3a 0%, transparent 40%); }
.scn-tarquin-threatens-enjoy .bed-shadow { position:absolute; bottom:0; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.7); }
.scn-tarquin-threatens-enjoy .body-reclined { position:absolute; bottom:30%; left:35%; width:50px; height:70px; background: linear-gradient(180deg, #2c140e 0%, #1a0e0a 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: tt-recline 5s ease-in-out infinite; }
.scn-tarquin-threatens-enjoy .arm-threatening { position:absolute; bottom:45%; left:40%; width:12px; height:50px; background: linear-gradient(180deg, #5e2a14 0%, #3a1a0e 100%); border-radius: 30% 30% 20% 20%; transform: rotate(20deg); transform-origin: bottom; animation: tt-arm 2s ease-in-out infinite alternate; }
.scn-tarquin-threatens-enjoy .blade-hand { position:absolute; bottom:75%; left:42%; width:6px; height:40px; background: linear-gradient(180deg, #c8a880 0%, #8a6a40 100%); border-radius: 10%; transform: rotate(10deg); box-shadow: 0 0 10px 2px #ffa060; animation: tt-blade 1.5s ease-in-out infinite; }
.scn-tarquin-threatens-enjoy .candle-light { position:absolute; bottom:20%; left:60%; width:8px; height:20px; background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: tt-candle 4s ease-in-out infinite alternate; }
.scn-tarquin-threatens-enjoy .drape { position:absolute; top:0; width:30%; height:100%; background: linear-gradient(180deg, #5e2a14 0%, #3a1a0e 100%); box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-tarquin-threatens-enjoy .drape-left { left:0; border-radius: 0 30% 50% 0; animation: tt-drape 6s ease-in-out infinite; }
.scn-tarquin-threatens-enjoy .drape-right { right:0; border-radius: 30% 0 0 50%; animation: tt-drape 6s ease-in-out infinite reverse; }
.scn-tarquin-threatens-enjoy .pool-blood { position:absolute; bottom:10%; left:40%; width:30px; height:15px; background: radial-gradient(ellipse at 50% 50%, #5e1a1d 0%, #3a1012 80%); border-radius: 50%; filter: blur(4px); animation: tt-blood 8s ease-in-out infinite alternate; }

@keyframes tt-recline { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg); } }
@keyframes tt-arm { 0% { transform: rotate(20deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(20deg); } }
@keyframes tt-blade { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.05); } 100% { transform: rotate(10deg) scaleY(1); } }
@keyframes tt-candle { 0% { opacity:0.7; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.8; transform: scaleY(0.95); } }
@keyframes tt-drape { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes tt-blood { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(0.98); } }

.scn-surviving-husband-scorn { background: linear-gradient(180deg, #140c08 0%, #2a1810 40%, #4a2618 70%, #1a0e0a 100%), radial-gradient(ellipse at 50% 80%, #8a3a1a 0%, transparent 50%); }
.scn-surviving-husband-scorn .wall-dark { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a0e0a 0%, transparent 100%); }
.scn-surviving-husband-scorn .floor-slate { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #0a0604 0%, #140c08 100%); }
.scn-surviving-husband-scorn .figure-husband { position:absolute; bottom:15%; left:45%; width:30px; height:100px; background: #0e0806; border-radius: 40% 40% 30% 30%; box-shadow: 0 0 15px rgba(0,0,0,0.8); animation: sh-stand 5s ease-in-out infinite; }
.scn-surviving-husband-scorn .head-bowed { position:absolute; bottom:75%; left:45%; width:20px; height:30px; background: #0a0604; border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: sh-bow 4s ease-in-out infinite; }
.scn-surviving-husband-scorn .shadow-stretch { position:absolute; bottom:0; left:35%; width:80px; height:30px; background: radial-gradient(ellipse at 50% 0%, #0a0604 0%, transparent 100%); animation: sh-shadow 7s ease-in-out infinite; }
.scn-surviving-husband-scorn .chain { position:absolute; bottom:50%; width:4px; height:60px; background: linear-gradient(180deg, #5a3a20 0%, #2a1a0e 100%); border-radius: 10%; animation: sh-chain 3s ease-in-out infinite; }
.scn-surviving-husband-scorn .chain-left { left:30%; transform: rotate(5deg); }
.scn-surviving-husband-scorn .chain-right { right:30%; transform: rotate(-5deg); animation-delay:0.5s; }
.scn-surviving-husband-scorn .dust-mote { position:absolute; top:30%; left:50%; width:6px; height:6px; background: rgba(200,150,100,0.3); border-radius:50%; filter: blur(2px); animation: sh-dust 12s linear infinite; }

@keyframes sh-stand { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes sh-bow { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } }
@keyframes sh-shadow { 0% { opacity:0.8; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.2); } 100% { opacity:0.8; transform: scaleX(1); } }
@keyframes sh-chain { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes sh-dust { 0% { transform: translateX(0) translateY(0); opacity:0; } 30% { opacity:0.5; } 70% { opacity:0.2; transform: translateX(30px) translateY(-40px); } 100% { transform: translateX(60px) translateY(-80px); opacity:0; } }

/* dead-of-night */
.scn-dead-of-night {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 40%, #2c2244 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a5e 0%, transparent 70%);
}
.scn-dead-of-night .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0d0d2a 0%, transparent 100%);
  animation: dn-sky 12s ease-in-out infinite alternate;
}
.scn-dead-of-night .moon {
  position: absolute; top: 10%; left: 40%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c0c8e0 0%, #8090b0 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(128,144,176,.4), 0 0 80px 20px rgba(80,90,120,.2);
  animation: dn-moon 20s ease-in-out infinite alternate;
}
.scn-dead-of-night .stars {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: radial-gradient(1px 1px at 20% 30%, #fff, transparent),
              radial-gradient(1px 1px at 40% 70%, #fff, transparent),
              radial-gradient(1px 1px at 60% 10%, #fff, transparent),
              radial-gradient(1px 1px at 80% 50%, #fff, transparent),
              radial-gradient(1px 1px at 10% 80%, #fff, transparent);
  animation: dn-stars 3s ease-in-out infinite alternate;
}
.scn-dead-of-night .clouds {
  position: absolute; top: 15%; left: 0; width: 120px; height: 15px;
  background: linear-gradient(90deg, rgba(60,50,80,.4) 0%, rgba(60,50,80,.1) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: dn-clouds 40s linear infinite;
}
.scn-dead-of-night .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: dn-hills 18s ease-in-out infinite alternate;
}
.scn-dead-of-night .owl {
  position: absolute; bottom: 35%; left: 25%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: dn-owl 4s ease-in-out infinite;
}
.scn-dead-of-night .sheep {
  position: absolute; bottom: 30%; right: 20%; width: 24px; height: 12px;
  background: radial-gradient(ellipse at 30% 50%, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: dn-sheep 5s ease-in-out infinite;
}
@keyframes dn-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes dn-moon { 0% { transform: translateX(-5px) translateY(0) } 50% { transform: translateX(0) translateY(-3px) } 100% { transform: translateX(5px) translateY(0) } }
@keyframes dn-stars { 0% { opacity: .3 } 50% { opacity: .7 } 100% { opacity: .4 } }
@keyframes dn-clouds { 0% { transform: translateX(-30px) } 100% { transform: translateX(100vw) } }
@keyframes dn-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dn-owl { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-1px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes dn-sheep { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }

/* tarquin-leaps-from-bed */
.scn-tarquin-leaps-from-bed {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 20%, #3a3a4e 0%, transparent 60%);
}
.scn-tarquin-leaps-from-bed .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
  animation: tl-wall 15s ease-in-out infinite;
}
.scn-tarquin-leaps-from-bed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 0 0 10% 10%;
}
.scn-tarquin-leaps-from-bed .bed {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: tl-bed 6s ease-in-out infinite;
}
.scn-tarquin-leaps-from-bed .mantle {
  position: absolute; bottom: 38%; left: 30%; width: 40%; height: 20px;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 50%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: tl-mantle 8s ease-in-out infinite alternate;
}
.scn-tarquin-leaps-from-bed .figure {
  position: absolute; bottom: 18%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tl-figure 1.5s ease-in-out infinite;
}
.scn-tarquin-leaps-from-bed .pillow {
  position: absolute; bottom: 22%; left: 25%; width: 30px; height: 12px;
  background: radial-gradient(ellipse at 30% 50%, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: tl-pillow 4s ease-in-out infinite;
}
@keyframes tl-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes tl-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes tl-mantle { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tl-figure { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-15px) rotate(10deg) } 50% { transform: translateY(0) rotate(-20deg) } 75% { transform: translateY(-10px) rotate(15deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes tl-pillow { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-2px) scale(1.05) } 100% { transform: translateX(0) scale(1) } }

/* item-torch-lit */
.scn-item-torch-lit {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 30%, #3a2a0a 60%, #1a0a0a 100%),
              radial-gradient(ellipse at 50% 60%, #4a3a1a 0%, transparent 70%);
}
.scn-item-torch-lit .hand {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: tf-hand 4s ease-in-out infinite;
}
.scn-item-torch-lit .flint {
  position: absolute; bottom: 35%; left: 35%; width: 12px; height: 8px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40%;
  transform: rotate(30deg);
  animation: tf-flint 2s ease-in-out infinite;
}
.scn-item-torch-lit .spark-1 {
  position: absolute; bottom: 45%; left: 36%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffd080 0%, #ff8020 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,128,32,.6);
  animation: tf-spark1 0.6s ease-in-out infinite;
}
.scn-item-torch-lit .spark-2 {
  position: absolute; bottom: 48%; left: 38%; width: 3px; height: 3px;
  background: radial-gradient(circle, #ffe0a0 0%, #ffa040 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 1px rgba(255,160,64,.5);
  animation: tf-spark2 0.8s ease-in-out infinite;
}
.scn-item-torch-lit .torch {
  position: absolute; bottom: 20%; left: 50%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  transform: translateX(-50%) rotate(5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: tf-torch 5s ease-in-out infinite;
}
.scn-item-torch-lit .flame {
  position: absolute; bottom: 60%; left: 50%; width: 14px; height: 24px;
  background: radial-gradient(ellipse at 50% 30%, #ffe070 0%, #ff8020 50%, #a04010 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 8px rgba(255,128,32,.5), 0 0 40px 15px rgba(160,64,16,.3);
  animation: tf-flame 0.8s ease-in-out infinite alternate;
}
@keyframes tf-hand { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(25deg) translateY(-2px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes tf-flint { 0% { transform: rotate(30deg) scale(1) } 50% { transform: rotate(35deg) scale(1.1) } 100% { transform: rotate(30deg) scale(1) } }
@keyframes tf-spark1 { 0% { opacity: .8; transform: translate(0,0) } 25% { opacity: 1; transform: translate(4px,-6px) } 50% { opacity: .6; transform: translate(8px,-12px) } 75% { opacity: .3; transform: translate(12px,-18px) } 100% { opacity: 0; transform: translate(16px,-24px) } }
@keyframes tf-spark2 { 0% { opacity: 0; transform: translate(0,0) } 25% { opacity: .3; transform: translate(-3px,-5px) } 50% { opacity: .7; transform: translate(-6px,-10px) } 75% { opacity: .4; transform: translate(-9px,-15px) } 100% { opacity: 0; transform: translate(-12px,-20px) } }
@keyframes tf-torch { 0% { transform: translateX(-50%) rotate(5deg) } 50% { transform: translateX(-50%) rotate(8deg) } 100% { transform: translateX(-50%) rotate(5deg) } }
@keyframes tf-flame { 0% { transform: translateX(-50%) scaleY(1) translateY(0) } 50% { transform: translateX(-50%) scaleY(1.2) translateY(-2px) } 100% { transform: translateX(-50%) scaleY(.9) translateY(0) } }

/* tarquin-premeditates */
.scn-tarquin-premeditates {
  background: linear-gradient(180deg, #1a1010 0%, #2a1a1a 50%, #1a1010 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-tarquin-premeditates .background {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1010 0%, #0a0a0a 100%);
  opacity: .6;
}
.scn-tarquin-premeditates .armor {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.4), 0 4px 8px rgba(0,0,0,.3);
  transform: rotate(-5deg);
  animation: tp-armor 10s ease-in-out infinite;
}
.scn-tarquin-premeditates .figure {
  position: absolute; bottom: 20%; left: 50%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: tp-figure 3s ease-in-out infinite;
}
.scn-tarquin-premeditates .shadow {
  position: absolute; bottom: 10%; left: 35%; width: 60px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 100%);
  filter: blur(3px);
  animation: tp-shadow 4s ease-in-out infinite;
}
.scn-tarquin-premeditates .candle {
  position: absolute; bottom: 50%; left: 70%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
}
.scn-tarquin-premeditates .flame {
  position: absolute; bottom: 68%; left: 70%; width: 8px; height: 14px;
  background: radial-gradient(ellipse at 50% 30%, #ffe080 0%, #ffa040 50%, #802020 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 0 12px 4px rgba(255,160,64,.5), 0 0 24px 8px rgba(128,32,32,.3);
  animation: tp-flame 1.2s ease-in-out infinite alternate;
}
.scn-tarquin-premeditates .spear {
  position: absolute; bottom: 30%; left: 20%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: tp-spear 5s ease-in-out infinite;
}
@keyframes tp-armor { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes tp-figure { 0% { transform: translateX(-50%) rotate(0) translateY(0) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(0) translateY(0) } }
@keyframes tp-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }
@keyframes tp-flame { 0% { transform: translateX(-50%) scaleY(1) translateY(0) } 50% { transform: translateX(-50%) scaleY(1.3) translateY(-2px) } 100% { transform: translateX(-50%) scaleY(.9) translateY(0) } }
@keyframes tp-spear { 0% { transform: rotate(15deg) } 50% { transform: rotate(18deg) } 100% { transform: rotate(15deg) } }

/* morning-arrives-2 – warm sunlit swimmer/water scene */
.scn-morning-arrives-2 {
  background: linear-gradient(180deg, #ffd9a0 0%, #ffb060 40%, #f09050 100%),
              radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%);
}
.scn-morning-arrives-2 .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffeedd 0%, #ffcc88 60%, transparent 100%); }
.scn-morning-arrives-2 .sun { position:absolute; top:10%; left:60%; width:60px; height:60px; background: radial-gradient(circle, #fff8ee 0%, #ffd080 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,208,128,0.6); animation: ma2-sunrise 15s ease-in-out infinite alternate; }
.scn-morning-arrives-2 .water { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a7a9a 0%, #1a5a7a 100%); border-radius: 20% 40% 0 0 / 30% 50% 0 0; }
.scn-morning-arrives-2 .hills { position:absolute; bottom:50%; left:0; right:0; height:12%; background: linear-gradient(180deg, #6a8a4a 0%, #3a5a2a 100%); border-radius: 60% 40% 0 0 / 100% 60% 0 0; }
.scn-morning-arrives-2 .figure { position:absolute; bottom:42%; left:35%; width:16px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ma2-swim 6s ease-in-out infinite; transform-origin: bottom center; }
.scn-morning-arrives-2 .ripple { position:absolute; bottom:20%; left:20%; width:60px; height:6px; background: rgba(255,255,255,0.2); border-radius:50%; filter: blur(2px); }
.scn-morning-arrives-2 .r1 { left:20%; animation: ma2-ripple 8s ease-in-out infinite; }
.scn-morning-arrives-2 .r2 { left:55%; animation: ma2-ripple 8s ease-in-out infinite 4s; }
@keyframes ma2-sunrise { 0% { transform: scale(0.9) translateY(10px); opacity:0.7; } 50% { transform: scale(1.1) translateY(-5px); opacity:1; } 100% { transform: scale(1) translateY(0); opacity:0.9; } }
@keyframes ma2-swim { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-3px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-2deg); } 75% { transform: translateX(24px) translateY(-3px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes ma2-ripple { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.5); opacity:0.1; } 100% { transform: scaleX(0.8); opacity:0; } }

/* morning-arrives-3 – warm sunlit interior with shifting shadows */
.scn-morning-arrives-3 {
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b090 50%, #a88870 100%),
              radial-gradient(circle at 40% 60%, #ffe0b0 0%, transparent 60%);
}
.scn-morning-arrives-3 .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #d8c8b0 0%, #b09880 100%); }
.scn-morning-arrives-3 .window-frame { position:absolute; top:15%; left:15%; width:50%; height:50%; border: 6px solid #6a523a; background: #a0c0d0; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,200,100,0.3); }
.scn-morning-arrives-3 .window-glow { position:absolute; top:15%; left:15%; width:50%; height:50%; background: radial-gradient(ellipse at 30% 20%, rgba(255,230,180,0.6) 0%, transparent 70%); animation: ma3-glow 6s ease-in-out infinite alternate; }
.scn-morning-arrives-3 .shadow-shape { position:absolute; bottom:10%; left:10%; width:40%; height:50%; background: linear-gradient(180deg, rgba(30,20,10,0.2) 0%, rgba(10,5,0,0.4) 100%); border-radius: 40% 60% 20% 80% / 50% 40% 60% 50%; }
.scn-morning-arrives-3 .s1 { animation: ma3-shift 12s ease-in-out infinite; }
.scn-morning-arrives-3 .s2 { left:50%; width:35%; height:60%; bottom:5%; animation: ma3-shift 12s ease-in-out infinite 6s; }
.scn-morning-arrives-3 .figure { position:absolute; bottom:15%; left:50%; width:14px; height:45px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ma3-fig 5s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-morning-arrives-3 .grief-motes { position:absolute; top:30%; left:20%; width:4px; height:4px; background: #ffd080; border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,208,128,0.5); animation: ma3-motes 7s ease-in-out infinite; }
@keyframes ma3-glow { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.5; transform: scale(0.95); } }
@keyframes ma3-shift { 0% { transform: translate(0,0) scale(1) rotate(0deg); } 50% { transform: translate(-10px,5px) scale(1.1) rotate(-5deg); } 100% { transform: translate(5px,-10px) scale(0.9) rotate(3deg); } }
@keyframes ma3-fig { 0% { transform: translateX(-5px) rotate(-3deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(-5px) rotate(-3deg); } }
@keyframes ma3-motes { 0% { transform: translate(0,0) scale(0.8); opacity:0.2; } 50% { transform: translate(15px,-20px) scale(1.2); opacity:0.6; } 100% { transform: translate(30px,-40px) scale(0.6); opacity:0; } }

/* lucrece-mourning-soliloquy – dark dawn, silhouette at window, birds */
.scn-lucrece-mourning-soliloquy {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a3a6e 100%),
              radial-gradient(ellipse at 50% 100%, #6a4a8e 0%, transparent 70%);
}
.scn-lucrece-mourning-soliloquy .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4e 100%); }
.scn-lucrece-mourning-soliloquy .dawn-line { position:absolute; bottom:40%; left:0; right:0; height:4px; background: linear-gradient(90deg, transparent 0%, #f0c080 20%, #ffa040 50%, #f0c080 80%, transparent 100%); animation: lms-dawn 20s ease-in-out infinite alternate; }
.scn-lucrece-mourning-soliloquy .window-bars { position:absolute; top:10%; left:20%; width:60%; height:50%; border: 8px solid #3a2a1a; background: transparent; box-shadow: inset 0 0 40px rgba(200,150,50,0.1); }
.scn-lucrece-mourning-soliloquy .window-bars::before, .scn-lucrece-mourning-soliloquy .window-bars::after { content:''; position:absolute; top:0; bottom:0; left:50%; width:4px; background:#2a1a0a; margin-left:-2px; }
.scn-lucrece-mourning-soliloquy .figure-sil { position:absolute; bottom:30%; left:50%; width:20px; height:60px; background: #0a0a1a; border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: translateX(-50%); animation: lms-fig 9s ease-in-out infinite; }
.scn-lucrece-mourning-soliloquy .bird { position:absolute; width:12px; height:8px; background: #2a1a1a; border-radius: 50% 50% 0 0 / 60% 60% 0 0; }
.scn-lucrece-mourning-soliloquy .b1 { top:25%; left:10%; animation: lms-bird1 14s linear infinite; }
.scn-lucrece-mourning-soliloquy .b2 { top:30%; right:15%; animation: lms-bird2 18s linear infinite; }
.scn-lucrece-mourning-soliloquy .song-waves { position:absolute; top:20%; left:30%; width:30px; height:30px; border: 2px solid rgba(200,180,100,0.3); border-radius:50%; animation: lms-song 4s ease-in-out infinite; }
@keyframes lms-dawn { 0% { opacity:0.2; } 50% { opacity:0.8; } 100% { opacity:0.3; } }
@keyframes lms-fig { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-45%) translateY(-3px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); } 75% { transform: translateX(-55%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes lms-bird1 { 0% { transform: translateX(-20px) translateY(0); } 50% { transform: translateX(40vw) translateY(-5px); } 100% { transform: translateX(80vw) translateY(0); } }
@keyframes lms-bird2 { 0% { transform: translateX(20px) translateY(0); } 50% { transform: translateX(-30vw) translateY(-3px); } 100% { transform: translateX(-80vw) translateY(0); } }
@keyframes lms-song { 0% { transform: scale(0.5); opacity:0.6; } 50% { transform: scale(1.5); opacity:0.2; } 100% { transform: scale(0.8); opacity:0.8; } }

/* lucrece-laments-philomel – dark dawn, nightingale, thorn, tears */
.scn-lucrece-laments-philomel {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a3a6e 100%),
              radial-gradient(ellipse at 50% 30%, #6a4a8e 0%, transparent 70%);
}
.scn-lucrece-laments-philomel .dawn-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a4e 0%, #4a4a6e 100%); }
.scn-lucrece-laments-philomel .dank-earth { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-lucrece-laments-philomel .weeping-tear { position:absolute; bottom:40%; width:6px; height:10px; background: radial-gradient(circle, #a0c0e0 0%, #506a80 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 4px 2px rgba(160,192,224,0.3); animation: llp-tear 4s ease-in-out infinite; }
.scn-lucrece-laments-philomel .t1 { left:40%; animation-delay:0s; }
.scn-lucrece-laments-philomel .t2 { left:55%; animation-delay:2s; }
.scn-lucrece-laments-philomel .nightingale { position:absolute; bottom:45%; left:50%; width:12px; height:8px; background: #2a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: llp-bird 7s ease-in-out infinite; }
.scn-lucrece-laments-philomel .nightingale::before { content:''; position:absolute; top:-2px; left:50%; width:8px; height:4px; background: #4a3a2a; border-radius:50%; transform: translateX(-50%); } /* beak */
.scn-lucrece-laments-philomel .thorn-branch { position:absolute; bottom:46%; left:40%; width:30%; height:4px; background: linear-gradient(90deg, #3a2a1a, #5a3a2a, #3a2a1a); border-radius:2px; transform: rotate(-10deg); }
.scn-lucrece-laments-philomel .thorn-branch::after { content:''; position:absolute; top:-8px; right:20%; width:2px; height:10px; background: #5a3a2a; transform: rotate(30deg); border-radius:1px; }
.scn-lucrece-laments-philomel .lament-burden { position:absolute; top:10%; left:20%; width:40px; height:40px; border: 2px solid rgba(200,180,100,0.2); border-radius:50%; animation: llp-burden 6s ease-in-out infinite; }
@keyframes llp-tear { 0% { transform: translateY(0) scaleX(1); opacity:0.6; } 50% { transform: translateY(10px) scaleX(1.2); opacity:0.8; } 100% { transform: translateY(20px) scaleX(0.8); opacity:0; } }
@keyframes llp-bird { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-45%) translateY(-2px) rotate(3deg); } 50% { transform: translateX(-50%) translateY(-1px) rotate(-2deg); } 75% { transform: translateX(-55%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes llp-burden { 0% { transform: scale(0.8); opacity:0.3; } 50% { transform: scale(1.2); opacity:0.6; } 100% { transform: scale(0.9); opacity:0.4; } }

/* yield-secret-friend */
.scn-yield-secret-friend {
  background: radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, #1a0e06 60%, #0a0502 100%);
}
.scn-yield-secret-friend .ysf-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2c1a10 0%, #120803 60%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.6);
}
.scn-yield-secret-friend .ysf-table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #5e3a1a 0%, #301a08 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,.5);
  animation: ysf-table 6s ease-in-out infinite;
}
.scn-yield-secret-friend .ysf-candle {
  position: absolute; bottom: 18%; left: 50%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #e8c88a 0%, #b08040 60%, #5e3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 0 10px rgba(200,150,80,.3);
}
.scn-yield-secret-friend .ysf-flame {
  position: absolute; bottom: 55%; left: 50%; width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 60%, #ffd060 0%, #e08020 40%, #a04010 70%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 10px #e08020, 0 0 60px 20px rgba(220,120,30,.4);
  animation: ysf-flame 0.8s ease-in-out infinite alternate;
}
.scn-yield-secret-friend .ysf-hand-l {
  position: absolute; bottom: 16%; left: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c8a080 0%, #8a6040 100%);
  border-radius: 40% 60% 30% 50% / 50% 40% 60% 50%;
  transform: rotate(-10deg);
  animation: ysf-hand 3s ease-in-out infinite;
}
.scn-yield-secret-friend .ysf-hand-r {
  position: absolute; bottom: 16%; right: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c8a080 0%, #8a6040 100%);
  border-radius: 60% 40% 50% 30% / 40% 50% 50% 60%;
  transform: rotate(10deg) scaleX(-1);
  animation: ysf-hand 3s ease-in-out infinite reverse;
}
.scn-yield-secret-friend .ysf-vial {
  position: absolute; bottom: 22%; left: 50%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #b0d080 0%, #608040 100%);
  border-radius: 30% 30% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
  animation: ysf-vial 4s ease-in-out infinite;
}
.scn-yield-secret-friend .ysf-shadow-1 {
  position: absolute; bottom: 8%; left: 15%; width: 40%; height: 10%;
  background: rgba(0,0,0,.5);
  filter: blur(12px);
  border-radius: 50%;
  animation: ysf-shadow-pulse 5s ease-in-out infinite;
}
.scn-yield-secret-friend .ysf-shadow-2 {
  position: absolute; bottom: 8%; right: 15%; width: 30%; height: 8%;
  background: rgba(0,0,0,.3);
  filter: blur(10px);
  border-radius: 50%;
  animation: ysf-shadow-pulse 5s ease-in-out infinite reverse;
}
@keyframes ysf-table { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes ysf-flame { 0% { transform: translateX(-50%) scale(1) rotate(-2deg); } 50% { transform: translateX(-50%) scale(1.3) rotate(2deg); } 100% { transform: translateX(-50%) scale(0.95) rotate(-1deg); } }
@keyframes ysf-hand { 0% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-3px) rotate(-8deg); } 100% { transform: translateY(0) rotate(-10deg); } }
@keyframes ysf-vial { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(15deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ysf-shadow-pulse { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }

/* for-husband-children */
.scn-for-husband-children {
  background: radial-gradient(ellipse at 50% 40%, #3a1a0a 0%, #1a0802 60%, #0a0300 100%);
}
.scn-for-husband-children .fhc-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1208 0%, #1a0802 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.7);
}
.scn-for-husband-children .fhc-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a1a0a 0%, #120602 100%);
  border-radius: 10% 10% 0 0;
}
.scn-for-husband-children .fhc-figure {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a4040 0%, #3a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 60% 60%;
  transform: translateX(-50%);
  box-shadow: -4px 0 12px rgba(0,0,0,.5);
  animation: fhc-figure 4s ease-in-out infinite;
}
.scn-for-husband-children .fhc-arms {
  position: absolute; bottom: 32%; left: 45%; width: 40px; height: 20px;
  background: linear-gradient(90deg, transparent 0%, #4a2820 30%, #4a2820 70%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: fhc-arms 5s ease-in-out infinite;
}
.scn-for-husband-children .fhc-child {
  position: absolute; bottom: 30%; left: 30%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #8a6040 0%, #4a2818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translate(-50%, 0);
  animation: fhc-child 6s ease-in-out infinite;
}
.scn-for-husband-children .fhc-fire {
  position: absolute; bottom: 35%; left: 65%; width: 40px; height: 60px;
  background: radial-gradient(circle at 50% 80%, #ff8020 0%, #c04010 30%, #601808 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(4px);
  box-shadow: 0 0 40px 20px rgba(200,60,10,.6);
  animation: fhc-fire 1.5s ease-in-out infinite alternate;
}
.scn-for-husband-children .fhc-smoke-1 {
  position: absolute; bottom: 65%; left: 60%; width: 30px; height: 40px;
  background: rgba(80,40,20,.3);
  filter: blur(8px);
  border-radius: 50%;
  animation: fhc-smoke 8s ease-in-out infinite;
}
.scn-for-husband-children .fhc-smoke-2 {
  position: absolute; bottom: 70%; left: 70%; width: 20px; height: 30px;
  background: rgba(80,40,20,.2);
  filter: blur(6px);
  border-radius: 50%;
  animation: fhc-smoke 10s ease-in-out infinite reverse;
}
@keyframes fhc-figure { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(1.02) rotate(1deg); } 100% { transform: translateX(-50%) scale(1) rotate(0deg); } }
@keyframes fhc-arms { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(10deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes fhc-child { 0% { transform: translate(-50%,0); } 50% { transform: translate(-50%,-2px); } 100% { transform: translate(-50%,0); } }
@keyframes fhc-fire { 0% { opacity: 0.8; transform: scale(1); } 100% { opacity: 1; transform: scale(1.2); } }
@keyframes fhc-smoke { 0% { transform: translate(0,0) scale(1); opacity: 0.4; } 50% { transform: translate(-10px,-10px) scale(1.5); opacity: 0.6; } 100% { transform: translate(0,-20px) scale(2); opacity: 0; } }

/* cockatrice-dead-killing */
.scn-cockatrice-dead-killing {
  background: radial-gradient(ellipse at 50% 30%, #1a0a06 0%, #0a0402 70%, #020100 100%);
}
.scn-cockatrice-dead-killing .cdk-bg {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #120604 0%, #080202 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.8);
}
.scn-cockatrice-dead-killing .cdk-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a0e08 0%, #080402 100%);
  border-radius: 20% 20% 0 0;
}
.scn-cockatrice-dead-killing .cdk-cockatrice {
  position: absolute; bottom: 35%; left: 35%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg) scaleX(-1);
  box-shadow: 0 0 30px rgba(200,50,10,.3);
  animation: cdk-cockatrice 3s ease-in-out infinite;
}
.scn-cockatrice-dead-killing .cdk-eye {
  position: absolute; bottom: 70%; left: 38%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 50%, #ff3000 0%, #a01000 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px #ff2000;
  animation: cdk-eye 2s ease-in-out infinite alternate;
}
.scn-cockatrice-dead-killing .cdk-hind {
  position: absolute; bottom: 38%; right: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c0a080 0%, #806040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 60% 60%;
  transform: rotate(5deg);
  animation: cdk-hind 4s ease-in-out infinite;
}
.scn-cockatrice-dead-killing .cdk-fireglow {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 80px;
  background: radial-gradient(circle at 50% 50%, #e05020 0%, #802010 40%, transparent 70%);
  filter: blur(10px);
  animation: cdk-glow 2s ease-in-out infinite alternate;
}
.scn-cockatrice-dead-killing .cdk-embers-1 {
  position: absolute; bottom: 25%; left: 50%; width: 4px; height: 4px;
  background: #ff6030;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #ff4010;
  animation: cdk-embers 1.5s ease-out infinite;
}
.scn-cockatrice-dead-killing .cdk-embers-2 {
  position: absolute; bottom: 30%; left: 45%; width: 3px; height: 3px;
  background: #ff8040;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px #ff6020;
  animation: cdk-embers 2s ease-out infinite 0.5s;
}
@keyframes cdk-cockatrice { 0% { transform: rotate(-10deg) scaleX(-1) translateY(0); } 50% { transform: rotate(-8deg) scaleX(-1) translateY(-3px); } 100% { transform: rotate(-10deg) scaleX(-1) translateY(0); } }
@keyframes cdk-eye { 0% { opacity: 0.8; transform: scale(1); } 100% { opacity: 1; transform: scale(1.3); } }
@keyframes cdk-hind { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes cdk-glow { 0% { opacity: 0.6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.2); } }
@keyframes cdk-embers { 0% { transform: translateY(0) scale(1); opacity: 1; } 100% { transform: translateY(-20px) scale(0); opacity: 0; } }

/* black-faced-cloud */
.scn-black-faced-cloud {
  background: radial-gradient(ellipse at 50% 60%, #3a1a0a 0%, #120602 60%, #040100 100%);
}
.scn-black-faced-cloud .bfc-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a2a18 0%, #1a0e06 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.7);
}
.scn-black-faced-cloud .bfc-mountains {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0602 100%);
  border-radius: 30% 50% 0 0 / 40% 60% 0 0;
  clip-path: polygon(0% 100%, 10% 50%, 20% 70%, 30% 30%, 40% 60%, 50% 20%, 60% 50%, 70% 40%, 80% 60%, 90% 30%, 100% 70%, 100% 100%);
  animation: bfc-mountains 12s ease-in-out infinite alternate;
}
.scn-black-faced-cloud .bfc-cloud {
  position: absolute; top: 10%; left: 20%; width: 80px; height: 30px;
  background: linear-gradient(180deg, rgba(60,40,20,.6) 0%, rgba(30,20,10,.3) 100%);
  filter: blur(8px);
  border-radius: 50%;
  animation: bfc-cloud 20s linear infinite;
}
.scn-black-faced-cloud .bfc-gust {
  position: absolute; top: 25%; left: 40%; width: 50px; height: 15px;
  background: rgba(80,60,40,.2);
  filter: blur(6px);
  border-radius: 50%;
  animation: bfc-gust 8s ease-in-out infinite;
}
.scn-black-faced-cloud .bfc-fire {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 50px;
  background: radial-gradient(circle at 50% 80%, #ff9020 0%, #c05010 30%, #602008 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(3px);
  transform: translateX(-50%);
  box-shadow: 0 0 50px 25px rgba(200,60,10,.5);
  animation: bfc-fire 1.2s ease-in-out infinite alternate;
}
.scn-black-faced-cloud .bfc-smoke {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 60px;
  background: rgba(60,30,15,.3);
  filter: blur(10px);
  border-radius: 50%;
  animation: bfc-smoke 15s ease-out infinite;
}
.scn-black-faced-cloud .bfc-sparks-1 {
  position: absolute; bottom: 25%; left: 48%; width: 4px; height: 4px;
  background: #ff8040;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #ff6020;
  animation: bfc-sparks 1.5s ease-out infinite;
}
.scn-black-faced-cloud .bfc-sparks-2 {
  position: absolute; bottom: 28%; left: 52%; width: 3px; height: 3px;
  background: #ffa060;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px #ff8030;
  animation: bfc-sparks 2s ease-out infinite 0.7s;
}
@keyframes bfc-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bfc-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes bfc-gust { 0% { transform: translateX(0) scale(1); opacity: 0.3; } 50% { transform: translateX(20px) scale(1.5); opacity: 0.6; } 100% { transform: translateX(0) scale(1); opacity: 0.3; } }
@keyframes bfc-fire { 0% { opacity: 0.8; transform: translateX(-50%) scale(1) rotate(-2deg); } 100% { opacity: 1; transform: translateX(-50%) scale(1.15) rotate(2deg); } }
@keyframes bfc-smoke { 0% { transform: translate(0,0) scale(1); opacity: 0.5; } 100% { transform: translate(-20px,-40px) scale(2); opacity: 0; } }
@keyframes bfc-sparks { 0% { transform: translateY(0) scale(1); opacity: 1; } 100% { transform: translateY(-30px) scale(0); opacity: 0; } }

/* lucrece-lament */
.scn-lucrece-lament {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a14 50%, #1e1410 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1e 0%, transparent 60%);
}
.scn-lucrece-lament .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1e18 0%, #1a120e 100%); }
.scn-lucrece-lament .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a120e 0%, #0e0a08 100%); }
.scn-lucrece-lament .window { position:absolute; top:15%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 4% 4% 8% 8%; box-shadow: inset 0 0 20px rgba(100,120,140,0.3); animation: lul-window 12s ease-in-out infinite alternate; }
.scn-lucrece-lament .figure { position:absolute; bottom:38%; left:50%; width:50px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lul-figure 8s ease-in-out infinite; }
.scn-lucrece-lament .candle { position:absolute; bottom:42%; right:30%; width:8px; height:20px; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%); border-radius: 50% 50% 20% 20%; animation: lul-candle 3s ease-in-out infinite alternate; }
.scn-lucrece-lament .glow { position:absolute; bottom:42%; right:30%; width:60px; height:60px; background: radial-gradient(circle, rgba(200,160,100,0.6) 0%, rgba(200,160,100,0.1) 60%, transparent 100%); transform:translate(50%,50%); animation: lul-glow 3s ease-in-out infinite alternate; }
.scn-lucrece-lament .dust-a { position:absolute; bottom:50%; right:20%; width:4px; height:4px; background: rgba(200,180,160,0.3); border-radius:50%; animation: lul-dust 15s linear infinite; }
.scn-lucrece-lament .dust-b { position:absolute; top:30%; left:20%; width:3px; height:3px; background: rgba(200,180,160,0.2); border-radius:50%; animation: lul-dust 20s linear infinite reverse; }
@keyframes lul-window { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes lul-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } 75% { transform: translateX(-50%) translateY(0) rotate(-2deg) } }
@keyframes lul-candle { 0% { transform: scaleY(1); opacity:0.9 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(0.9); opacity:0.7 } }
@keyframes lul-glow { 0% { opacity:0.5; transform: scale(0.8) } 50% { opacity:0.7; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(0.9) } }
@keyframes lul-dust { 0% { transform: translateY(0) translateX(0); opacity:0.3 } 50% { transform: translateY(-40px) translateX(10px); opacity:0.6 } 100% { transform: translateY(-80px) translateX(-10px); opacity:0 } }

/* lucrece-appeal */
.scn-lucrece-appeal {
  background: linear-gradient(180deg, #1e1814 0%, #2a1e18 50%, #1c1410 100%),
              radial-gradient(ellipse at 50% 70%, #3a2820 0%, transparent 70%);
}
.scn-lucrece-appeal .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1e18 0%, #1a120e 100%); }
.scn-lucrece-appeal .bg-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a120e 0%, #0e0a08 100%); }
.scn-lucrece-appeal .figure-left { position:absolute; bottom:32%; left:25%; width:45px; height:110px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lua-left 6s ease-in-out infinite; }
.scn-lucrece-appeal .figure-left::after { content:''; position:absolute; top:15%; right:-10px; width:20px; height:6px; background: #1a1410; border-radius: 40% 90% 40% 60%; transform: rotate(30deg); animation: lua-arm 6s ease-in-out infinite; }
.scn-lucrece-appeal .figure-right { position:absolute; bottom:32%; right:25%; width:45px; height:110px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lua-right 8s ease-in-out infinite; }
.scn-lucrece-appeal .table { position:absolute; bottom:30%; left:40%; right:40%; height:12px; background: linear-gradient(180deg, #3a2a1e 0%, #2a1a14 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-lucrece-appeal .candle { position:absolute; bottom:42%; left:50%; width:8px; height:22px; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%); border-radius: 50% 50% 20% 20%; transform:translateX(-50%); animation: lua-candle 3s ease-in-out infinite alternate; }
.scn-lucrece-appeal .candle-glow { position:absolute; bottom:42%; left:50%; width:70px; height:70px; background: radial-gradient(circle, rgba(200,160,100,0.5) 0%, rgba(200,160,100,0.1) 60%, transparent 100%); transform:translate(-50%,50%); animation: lua-glow 3s ease-in-out infinite alternate; }
@keyframes lua-left { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(3deg) } 75% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes lua-arm { 0%,100% { transform: rotate(30deg) } 50% { transform: rotate(45deg) } }
@keyframes lua-right { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes lua-candle { 0% { transform: translateX(-50%) scaleY(1); opacity:0.9 } 50% { transform: translateX(-50%) scaleY(1.1); opacity:1 } 100% { transform: translateX(-50%) scaleY(0.9); opacity:0.7 } }
@keyframes lua-glow { 0% { opacity:0.4; transform: translate(-50%,50%) scale(0.8) } 50% { opacity:0.6; transform: translate(-50%,50%) scale(1.1) } 100% { opacity:0.3; transform: translate(-50%,50%) scale(0.9) } }

/* lucrece-question */
.scn-lucrece-question {
  background: linear-gradient(180deg, #181210 0%, #221a16 50%, #181210 100%),
              radial-gradient(ellipse at 50% 60%, #2a201c 0%, transparent 70%);
}
.scn-lucrece-question .bg-dark { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #221a16 0%, #14100e 100%); }
.scn-lucrece-question .desk { position:absolute; bottom:35%; left:20%; right:20%; height:10px; background: linear-gradient(180deg, #3a2a1e 0%, #2a1a14 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
.scn-lucrece-question .figure { position:absolute; bottom:38%; left:45%; width:50px; height:100px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: luq-figure 7s ease-in-out infinite; }
.scn-lucrece-question .hand { position:absolute; bottom:58%; left:38%; width:14px; height:16px; background: #1a1410; border-radius: 50% 50% 40% 40%; transform: rotate(-15deg); animation: luq-hand 7s ease-in-out infinite; }
.scn-lucrece-question .lamp { position:absolute; bottom:46%; right:30%; width:12px; height:24px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%); border-radius: 50% 50% 20% 20%; transform: rotate(5deg); animation: luq-lamp 4s ease-in-out infinite alternate; }
.scn-lucrece-question .lamp-glow { position:absolute; bottom:46%; right:30%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,170,120,0.4) 0%, rgba(200,170,120,0.1) 50%, transparent 100%); transform:translate(20%,20%); animation: luq-glow 4s ease-in-out infinite alternate; }
.scn-lucrece-question .papers { position:absolute; bottom:38%; left:25%; width:30px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%); border-radius: 2px; transform: rotate(-8deg); animation: luq-papers 9s ease-in-out infinite; }
@keyframes luq-figure { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(2deg) } 70% { transform: translateY(0) rotate(-1deg) } }
@keyframes luq-hand { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-5deg) } }
@keyframes luq-lamp { 0% { transform: rotate(5deg) scaleY(1) } 50% { transform: rotate(8deg) scaleY(1.05) } 100% { transform: rotate(2deg) scaleY(0.95) } }
@keyframes luq-glow { 0% { opacity:0.4; transform: scale(0.8) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.3; transform: scale(0.9) } }
@keyframes luq-papers { 0%,100% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-1px) } }

/* lucrece-denial */
.scn-lucrece-denial {
  background: linear-gradient(180deg, #14100e 0%, #1e1814 50%, #14100e 100%),
              radial-gradient(ellipse at 50% 40%, #2a1e18 0%, transparent 70%);
}
.scn-lucrece-denial .bg-shadow { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); }
.scn-lucrece-denial .figure { position:absolute; bottom:35%; left:55%; width:55px; height:120px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: lud-figure 10s ease-in-out infinite; }
.scn-lucrece-denial .arm { position:absolute; bottom:50%; left:40%; width:30px; height:8px; background: #1a1410; border-radius: 40% 90% 40% 60%; transform-origin: right center; transform: rotate(-40deg); animation: lud-arm 10s ease-in-out infinite; }
.scn-lucrece-denial .light-source { position:absolute; bottom:45%; left:20%; width:20px; height:20px; background: radial-gradient(circle, rgba(180,140,100,0.8) 0%, rgba(180,140,100,0.2) 60%, transparent 100%); border-radius:50%; animation: lud-light 5s ease-in-out infinite alternate; }
.scn-lucrece-denial .light-beam { position:absolute; bottom:45%; left:20%; width:60px; height:100px; background: linear-gradient(90deg, rgba(180,140,100,0.15) 0%, rgba(180,140,100,0.05) 50%, transparent 100%); transform-origin: left center; transform: rotate(20deg); animation: lud-beam 5s ease-in-out infinite alternate; }
.scn-lucrece-denial .cloak { position:absolute; bottom:30%; left:50%; width:50px; height:80px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: translateX(-50%); animation: lud-cloak 12s ease-in-out infinite; }
@keyframes lud-figure { 0%,100% { transform: scaleX(-1) translateY(0) } 25% { transform: scaleX(-1) translateY(-2px) rotate(2deg) } 75% { transform: scaleX(-1) translateY(0) rotate(-2deg) } }
@keyframes lud-arm { 0%,100% { transform: rotate(-40deg) } 50% { transform: rotate(-30deg) } }
@keyframes lud-light { 0% { opacity:0.5; transform: scale(0.8) } 50% { opacity:0.7; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(0.9) } }
@keyframes lud-beam { 0% { opacity:0.3; transform: rotate(20deg) scaleX(1) } 50% { opacity:0.5; transform: rotate(25deg) scaleX(1.1) } 100% { opacity:0.2; transform: rotate(15deg) scaleX(0.9) } }
@keyframes lud-cloak { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }

.scn-letter-delivered {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 80%);
}
.scn-letter-delivered .ld-wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a1e2e 0%, #1e1e1e 100%);
  animation: ld-wall 8s ease-in-out infinite alternate;
}
.scn-letter-delivered .ld-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 80% 0 0 / 10% 20% 0 0;
}
.scn-letter-delivered .ld-lamp {
  position: absolute; bottom: 50%; left: 30%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px 2px 4px 4px;
  transform-origin: bottom center;
  animation: ld-lamp 6s ease-in-out infinite;
}
.scn-letter-delivered .ld-lamp::after {
  content: ''; position: absolute; top: -8px; left: -8px; width: 24px; height: 16px;
  background: radial-gradient(circle, #ffcc66 0%, #cc8844 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #cc8844, 0 0 60px 20px rgba(204,136,68,0.3);
}
.scn-letter-delivered .ld-figure-a {
  position: absolute; bottom: 42%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  animation: ld-figure-a 4s ease-in-out infinite alternate;
}
.scn-letter-delivered .ld-figure-b {
  position: absolute; bottom: 42%; right: 20%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%;
  animation: ld-figure-b 5s ease-in-out infinite alternate;
}
.scn-letter-delivered .ld-letter {
  position: absolute; bottom: 52%; left: 40%; width: 12px; height: 16px;
  background: linear-gradient(135deg, #c8a87a 0%, #a08050 100%);
  border-radius: 2px;
  opacity: 0.9;
  animation: ld-letter 3s ease-in-out infinite;
}
.scn-letter-delivered .ld-shadow {
  position: absolute; bottom: 42%; left: 25%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: ld-shadow 4s ease-in-out infinite alternate;
}
.scn-letter-delivered .ld-flicker {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 60%, rgba(255,200,100,0.08) 0%, transparent 60%);
  animation: ld-flicker 0.4s steps(3) infinite;
}
@keyframes ld-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ld-lamp {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
}
@keyframes ld-figure-a {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes ld-figure-b {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ld-letter {
  0%, 100% { transform: translateY(0) rotate(0deg); opacity: 0.9; }
  50% { transform: translateY(-3px) rotate(5deg); opacity: 1; }
}
@keyframes ld-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  100% { opacity: 0.6; transform: scaleX(1.1); }
}
@keyframes ld-flicker {
  0% { opacity: 0; }
  33% { opacity: 0.15; }
  66% { opacity: 0.05; }
  100% { opacity: 0.1; }
}

.scn-groom-courtesies {
  background:
    linear-gradient(180deg, #2a1e2e 0%, #3a2a3a 40%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a3a 0%, transparent 80%);
}
.scn-groom-courtesies .gc-back {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1e1e2e 0%, #2a2a3a 100%);
  animation: gc-back 12s ease-in-out infinite alternate;
}
.scn-groom-courtesies .gc-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 10% 90% 0 0 / 15% 30% 0 0;
}
.scn-groom-courtesies .gc-table {
  position: absolute; bottom: 30%; left: 35%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-groom-courtesies .gc-figure-l {
  position: absolute; bottom: 38%; left: 20%; width: 36px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  animation: gc-figure-l 6s ease-in-out infinite alternate;
}
.scn-groom-courtesies .gc-figure-g {
  position: absolute; bottom: 38%; right: 20%; width: 40px; height: 75px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%;
  transform-origin: bottom;
  animation: gc-figure-g 7s ease-in-out infinite alternate;
}
.scn-groom-courtesies .gc-scroll {
  position: absolute; bottom: 45%; left: 48%; width: 14px; height: 10px;
  background: linear-gradient(135deg, #d4b88a 0%, #b89868 100%);
  border-radius: 2px;
  opacity: 0.9;
  animation: gc-scroll 4s ease-in-out infinite;
}
.scn-groom-courtesies .gc-candle {
  position: absolute; bottom: 40%; left: 55%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #cc9966 0%, #a07040 100%);
  border-radius: 1px;
  transform-origin: bottom;
  animation: gc-candle 3s ease-in-out infinite;
}
.scn-groom-courtesies .gc-candle::after {
  content: ''; position: absolute; top: -6px; left: -5px; width: 14px; height: 10px;
  background: radial-gradient(circle, #ffdd88 0%, #cc8844 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #cc8844, 0 0 40px 12px rgba(204,136,68,0.3);
}
.scn-groom-courtesies .gc-glow {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 55% 45%, rgba(255,200,100,0.06) 0%, transparent 70%);
  animation: gc-glow 5s ease-in-out infinite alternate;
}
@keyframes gc-back {
  0% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes gc-figure-l {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(2px); }
  100% { transform: rotate(-1deg) translateX(-1px); }
}
@keyframes gc-figure-g {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(1deg) translateY(0); }
}
@keyframes gc-scroll {
  0%, 100% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(3deg) scale(1.05); }
}
@keyframes gc-candle {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes gc-glow {
  0% { opacity: 0.3; }
  100% { opacity: 0.6; }
}

.scn-weary-waiting {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #1e1e3a 50%, #2a2a4a 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a4a 0%, transparent 80%);
}
.scn-weary-waiting .ww-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1e1e3a 0%, #12122a 100%);
  animation: ww-wall 10s ease-in-out infinite alternate;
}
.scn-weary-waiting .ww-window {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%);
  border-radius: 4px;
  border: 3px solid #4a3a2a;
  box-shadow: inset 0 0 20px rgba(100,140,200,0.1);
  animation: ww-window 8s ease-in-out infinite alternate;
}
.scn-weary-waiting .ww-chair {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.5);
}
.scn-weary-waiting .ww-figure {
  position: absolute; bottom: 32%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: ww-figure 6s ease-in-out infinite alternate;
}
.scn-weary-waiting .ww-drape {
  position: absolute; top: 10%; left: 40%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%);
  border-radius: 0 10% 10% 0;
  filter: blur(1px);
  animation: ww-drape 7s ease-in-out infinite alternate;
}
.scn-weary-waiting .ww-moonlight {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 15%, rgba(180,200,240,0.08) 0%, transparent 60%);
  animation: ww-moonlight 12s ease-in-out infinite alternate;
}
.scn-weary-waiting .ww-shadow {
  position: absolute; bottom: 30%; left: 25%; width: 60px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(3px);
  animation: ww-shadow 5s ease-in-out infinite alternate;
}
.scn-weary-waiting .ww-breath {
  position: absolute; bottom: 45%; left: 40%; width: 20px; height: 10px;
  background: rgba(200,220,255,0.1);
  border-radius: 50%;
  filter: blur(4px);
  animation: ww-breath 4s ease-in-out infinite;
}
@keyframes ww-wall {
  0% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes ww-window {
  0% { box-shadow: inset 0 0 20px rgba(100,140,200,0.1); }
  50% { box-shadow: inset 0 0 30px rgba(100,140,200,0.15); }
  100% { box-shadow: inset 0 0 10px rgba(100,140,200,0.05); }
}
@keyframes ww-figure {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes ww-drape {
  0% { transform: scaleY(1); }
  100% { transform: scaleY(0.95); }
}
@keyframes ww-moonlight {
  0% { opacity: 0.3; }
  100% { opacity: 0.5; }
}
@keyframes ww-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  100% { opacity: 0.5; transform: scaleX(1.05); }
}
@keyframes ww-breath {
  0%, 100% { transform: scale(1); opacity: 0.1; }
  50% { transform: scale(1.2); opacity: 0.2; }
}

.scn-painting-troy {
  background:
    linear-gradient(180deg, #1e1e2e 0%, #2a1a2e 40%, #1a0a1a 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a2e 0%, transparent 80%);
}
.scn-painting-troy .pt-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e2e 0%, #1a0a1a 100%);
  animation: pt-wall 9s ease-in-out infinite alternate;
}
.scn-painting-troy .pt-frame {
  position: absolute; top: 8%; left: 50%; width: 160px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  border: 6px solid #4a2a0a;
}
.scn-painting-troy .pt-painting {
  position: absolute; top: 10%; left: 50%; width: 148px; height: 108px;
  transform: translateX(-50%);
  background:
    linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 30%, #5a4a3a 60%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
  overflow: hidden;
  animation: pt-painting 12s ease-in-out infinite alternate;
}
.scn-painting-troy .pt-painting::before {
  content: '';
  position: absolute; top: 20%; left: 10%; width: 80px; height: 60px;
  background: radial-gradient(circle at 30% 40%, #6a5a3a 0%, transparent 70%),
              linear-gradient(180deg, #4a3a2a 0%, transparent 100%);
  border-radius: 20% 80% 60% 40% / 30% 70% 30% 70%;
  opacity: 0.6;
  animation: pt-painting-elem 15s linear infinite;
}
.scn-painting-troy .pt-figure {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: pt-figure 5s ease-in-out infinite alternate;
}
.scn-painting-troy .pt-hand {
  position: absolute; bottom: 35%; left: 60%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: pt-hand 4s ease-in-out infinite;
}
.scn-painting-troy .pt-lamp {
  position: absolute; bottom: 40%; left: 20%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px 2px 4px 4px;
}
.scn-painting-troy .pt-lamp::after {
  content: ''; position: absolute; top: -6px; left: -5px; width: 16px; height: 12px;
  background: radial-gradient(circle, #ffcc66 0%, #cc8844 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #cc8844, 0 0 40px 10px rgba(204,136,68,0.3);
}
.scn-painting-troy .pt-lightbeam {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 20% 40%, rgba(255,200,100,0.04) 0%, transparent 70%);
  animation: pt-lightbeam 6s ease-in-out infinite alternate;
}
@keyframes pt-wall {
  0% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes pt-painting {
  0% { opacity: 0.8; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1); }
  100% { opacity: 0.85; filter: brightness(0.95); }
}
@keyframes pt-painting-elem {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(2px, -1px) rotate(1deg); }
  100% { transform: translate(-2px, 1px) rotate(-1deg); }
}
@keyframes pt-figure {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes pt-hand {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
}
@keyframes pt-lightbeam {
  0% { opacity: 0.2; }
  100% { opacity: 0.4; }
}

.scn-tongue-parley { background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 60%, #1a0a00 100%), radial-gradient(ellipse at 40% 50%, #b85a3a 0%, transparent 60%); }
.scn-tongue-parley .bg-fire { position: absolute; inset: 0; background: radial-gradient(circle at 60% 40%, #d47a4a 0%, transparent 50%); mix-blend-mode: screen; opacity: 0.4; animation: tp1-fire 3s ease-in-out infinite alternate; }
.scn-tongue-parley .wall-shadow { position: absolute; inset: 30% 20% 0 10%; background: linear-gradient(90deg, rgba(0,0,0,0.6) 0%, transparent 40%, rgba(0,0,0,0.3) 100%); border-radius: 30% 70% 0 0; }
.scn-tongue-parley .figure-pro { position: absolute; bottom: 15%; left: 35%; width: 50px; height: 90px; background: linear-gradient(135deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: tp1-breathe 6s ease-in-out infinite; }
.scn-tongue-parley .hand-tongue { position: absolute; bottom: 48%; left: 43%; width: 20px; height: 14px; background: radial-gradient(circle at 50% 50%, #3a1a0a 30%, #1a0a00 70%); border-radius: 40% 40% 20% 20%; transform: rotate(-20deg); animation: tp1-hand 4s ease-in-out infinite alternate; }
.scn-tongue-parley .eye-glow { position: absolute; bottom: 62%; left: 34%; width: 6px; height: 4px; background: radial-gradient(circle, #e8b080 0%, #c07030 100%); border-radius: 50%; box-shadow: 0 0 10px 3px #c07030; animation: tp1-eye 2s ease-in-out infinite alternate; }
.scn-tongue-parley .flame-flicker { position: absolute; bottom: 20%; right: 30%; width: 16px; height: 30px; background: linear-gradient(180deg, #d47a3a 0%, #b85a2a 50%, #8a3a1a 100%); border-radius: 60% 60% 20% 20%; transform-origin: bottom center; animation: tp1-flame 1s ease-in-out infinite alternate; }
.scn-tongue-parley .ember-a { position: absolute; top: 35%; left: 55%; width: 4px; height: 4px; background: radial-gradient(circle, #f0a050 0%, transparent 100%); border-radius: 50%; animation: tp1-ember 5s linear infinite; }
.scn-tongue-parley .ember-b { position: absolute; top: 50%; left: 70%; width: 3px; height: 3px; background: radial-gradient(circle, #f0a050 0%, transparent 100%); border-radius: 50%; animation: tp1-ember 7s linear infinite; animation-delay: 2s; }
@keyframes tp1-fire { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.1); } 100% { opacity: 0.35; transform: scale(0.95); } }
@keyframes tp1-breathe { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(13deg) scaleY(1.02); } 100% { transform: rotate(15deg) scaleY(0.98); } }
@keyframes tp1-hand { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(3px); } 100% { transform: rotate(-22deg) translateX(1px); } }
@keyframes tp1-eye { 0% { opacity: 0.7; box-shadow: 0 0 6px 2px #c07030; } 50% { opacity: 1; box-shadow: 0 0 14px 5px #e8b080; } 100% { opacity: 0.8; box-shadow: 0 0 8px 3px #c07030; } }
@keyframes tp1-flame { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.3) translateY(-4px); } 100% { transform: scaleY(0.9) translateY(2px); } }
@keyframes tp1-ember { 0% { transform: translateY(0) scale(1); opacity: 1; } 50% { transform: translateY(-30px) scale(0.8); opacity: 0.5; } 100% { transform: translateY(-60px) scale(0.3); opacity: 0; } }

.scn-tarquin-replies-colour { background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%), radial-gradient(ellipse at 40% 30%, #c85a2a 0%, transparent 70%); }
.scn-tarquin-replies-colour .bg-deep { position: absolute; inset: 0; background: radial-gradient(circle at 30% 60%, #e08040 0%, transparent 50%); opacity: 0.5; animation: trc2-pulse 4s ease-in-out infinite alternate; }
.scn-tarquin-replies-colour .cheek-blush { position: absolute; bottom: 45%; left: 35%; width: 30px; height: 18px; background: radial-gradient(circle, #d08040 0%, transparent 70%); border-radius: 50%; opacity: 0.6; animation: trc2-blush 5s ease-in-out infinite; }
.scn-tarquin-replies-colour .face-profile { position: absolute; bottom: 20%; left: 30%; width: 50px; height: 80px; background: linear-gradient(135deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); }
.scn-tarquin-replies-colour .eye-bright { position: absolute; bottom: 55%; left: 28%; width: 5px; height: 6px; background: radial-gradient(circle, #e8b080 0%, #c07030 100%); border-radius: 50%; box-shadow: 0 0 12px 4px #c07030; animation: trc2-eye 2.5s ease-in-out infinite alternate; }
.scn-tarquin-replies-colour .hand-reaching { position: absolute; bottom: 35%; left: 50%; width: 18px; height: 40px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%; transform: rotate(15deg); transform-origin: bottom center; animation: trc2-reach 6s ease-in-out infinite alternate; }
.scn-tarquin-replies-colour .fire-ring { position: absolute; bottom: 10%; left: 10%; width: 120px; height: 120px; border-radius: 50%; background: radial-gradient(circle, #c85a2a 0%, transparent 60%); box-shadow: 0 0 40px 20px rgba(200,90,42,0.3); animation: trc2-ring 8s ease-in-out infinite; }
.scn-tarquin-replies-colour .shadow-stripe { position: absolute; inset: 30% 0 0 60%; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 80%); width: 40%; height: 70%; }
@keyframes trc2-pulse { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.05); } 100% { opacity: 0.45; transform: scale(0.95); } }
@keyframes trc2-blush { 0% { opacity: 0.4; transform: scale(0.9); } 50% { opacity: 0.7; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.95); } }
@keyframes trc2-eye { 0% { opacity: 0.5; box-shadow: 0 0 8px 2px #c07030; } 50% { opacity: 1; box-shadow: 0 0 18px 6px #e8b080; } 100% { opacity: 0.6; box-shadow: 0 0 10px 3px #c07030; } }
@keyframes trc2-reach { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-5px); } 100% { transform: rotate(12deg) translateY(-2px); } }
@keyframes trc2-ring { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.15); } 100% { opacity: 0.35; transform: scale(0.9); } }

.scn-tarquin-forestalls { background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%), radial-gradient(ellipse at 50% 80%, #b85a2a 0%, transparent 60%); }
.scn-tarquin-forestalls .bg-hearth { position: absolute; inset: 0; background: radial-gradient(circle at 60% 70%, #d47a3a 0%, transparent 40%); mix-blend-mode: screen; opacity: 0.3; animation: tf3-hearth 3s ease-in-out infinite alternate; }
.scn-tarquin-forestalls .figure-standing { position: absolute; bottom: 10%; left: 30%; width: 60px; height: 120px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleY(1); animation: tf3-stand 7s ease-in-out infinite; }
.scn-tarquin-forestalls .hand-halt { position: absolute; bottom: 55%; left: 38%; width: 22px; height: 16px; background: radial-gradient(circle at 40% 50%, #2a1a0a 60%, #0a0500 100%); border-radius: 40% 20% 40% 20%; transform: rotate(10deg); animation: tf3-halt 4s ease-in-out infinite alternate; }
.scn-tarquin-forestalls .halo-fire { position: absolute; bottom: 30%; left: 25%; width: 100px; height: 100px; border-radius: 50%; background: radial-gradient(circle, #c85a2a 0%, transparent 60%); box-shadow: 0 0 60px 30px rgba(200,90,42,0.3); animation: tf3-halo 6s ease-in-out infinite; }
.scn-tarquin-forestalls .chain-link { position: absolute; top: 40%; right: 20%; width: 10px; height: 10px; border: 3px solid #7a3a1a; border-radius: 50%; background: transparent; animation: tf3-chain 3s linear infinite; }
.scn-tarquin-forestalls .chain-2 { top: 50%; right: 28%; animation-delay: 1s; }
.scn-tarquin-forestalls .ground-scorch { position: absolute; bottom: 0; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 100%); border-radius: 60% 40% 0 0; }
@keyframes tf3-hearth { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.4; transform: scale(1.08); } 100% { opacity: 0.25; transform: scale(0.95); } }
@keyframes tf3-stand { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.03) translateY(-2px); } 100% { transform: scaleY(0.98) translateY(0); } }
@keyframes tf3-halt { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(15deg) translateX(4px); } 100% { transform: rotate(8deg) translateX(2px); } }
@keyframes tf3-halo { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.9); } }
@keyframes tf3-chain { 0% { transform: rotate(0deg) translateX(0); opacity: 0.8; } 50% { transform: rotate(180deg) translateX(10px); opacity: 0.5; } 100% { transform: rotate(360deg) translateX(0); opacity: 0.8; } }

.scn-crosses-attempt { background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%), radial-gradient(ellipse at 30% 40%, #a0461a 0%, transparent 60%); }
.scn-crosses-attempt .bg-thorn { position: absolute; inset: 0; background: radial-gradient(circle at 40% 60%, #d47a3a 0%, transparent 50%); mix-blend-mode: screen; opacity: 0.25; animation: ca4-fire 3s ease-in-out infinite alternate; }
.scn-crosses-attempt .rose-stem { position: absolute; bottom: 20%; left: 45%; width: 8px; height: 60%; background: linear-gradient(180deg, #2a5a2a 0%, #1a3a1a 100%); border-radius: 20% 20% 0 0; transform: rotate(-10deg); transform-origin: bottom center; }
.scn-crosses-attempt .thorn { position: absolute; bottom: 50%; left: 46%; width: 4px; height: 10px; background: linear-gradient(180deg, #3a3a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 0 0; transform: rotate(-40deg); }
.scn-crosses-attempt .spike-2 { bottom: 35%; left: 44%; width: 3px; height: 8px; transform: rotate(30deg); }
.scn-crosses-attempt .rose-bloom { position: absolute; bottom: 55%; left: 35%; width: 70px; height: 60px; background: radial-gradient(circle at 40% 40%, #c8553d 0%, #8a2a1a 60%, #4a1a0a 100%); border-radius: 50% 60% 40% 50% / 60% 40% 60% 50%; transform: rotate(-20deg); animation: ca4-bloom 8s ease-in-out infinite; }
.scn-crosses-attempt .glow-center { position: absolute; bottom: 60%; left: 38%; width: 20px; height: 20px; background: radial-gradient(circle, #e8a060 0%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(232,160,96,0.4); animation: ca4-glint 3s ease-in-out infinite alternate; }
.scn-crosses-attempt .shadow-drop { position: absolute; bottom: 5%; left: 20%; right: 20%; height: 15%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); border-radius: 40% 40% 0 0; }
.scn-crosses-attempt .dust { position: absolute; top: 20%; left: 10%; width: 10px; height: 10px; background: radial-gradient(circle, #b87878 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: ca4-dust 12s linear infinite; }
@keyframes ca4-fire { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.35; transform: scale(1.1); } 100% { opacity: 0.25; transform: scale(0.95); } }
@keyframes ca4-bloom { 0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-15deg) scale(1.05); } 100% { transform: rotate(-22deg) scale(0.98); } }
@keyframes ca4-glint { 0% { opacity: 0.5; box-shadow: 0 0 20px 5px rgba(232,160,96,0.3); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(232,160,96,0.6); } 100% { opacity: 0.6; box-shadow: 0 0 25px 8px rgba(232,160,96,0.4); } }
@keyframes ca4-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0.2; } 50% { transform: translate(30px, -20px) scale(1.5); opacity: 0.6; } 100% { transform: translate(60px, -40px) scale(0.5); opacity: 0; } }

.scn-lucrece-accusation {
  background:
    linear-gradient(180deg, #2a1e18 0%, #3d2a1f 40%, #1a0f0a 100%),
    radial-gradient(ellipse at 40% 60%, #5a3a2a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-lucrece-accusation .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3525 0%, #2a1e14 100%);
  opacity: 0.8;
}
.scn-lucrece-accusation .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #3e2d20 0%, #2a1e14 100%);
  box-shadow: inset 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-lucrece-accusation .floor {
  position: absolute; top: 60%; left: 0; right: 0; bottom: 0;
  background: linear-gradient(0deg, #1a100c 0%, #2a1e14 40%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-lucrece-accusation .chair {
  position: absolute; bottom: 30%; left: 35%;
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  transform: perspective(200px) rotateX(5deg);
  box-shadow: 4px 0 8px rgba(0,0,0,0.5);
  animation: la-chair 6s ease-in-out infinite;
}
.scn-lucrece-accusation .figure {
  position: absolute; bottom: 25%; left: 45%;
  width: 36px; height: 80px;
  background: linear-gradient(180deg, #2d1a12 0%, #1a0e0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: la-figure 8s ease-in-out infinite;
}
.scn-lucrece-accusation .table {
  position: absolute; bottom: 30%; left: 52%;
  width: 50px; height: 30px;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  transform: perspective(150px) rotateX(8deg);
}
.scn-lucrece-accusation .candle {
  position: absolute; bottom: 45%; left: 55%;
  width: 6px; height: 16px;
  background: linear-gradient(180deg, #c89a4a 0%, #8a5a2a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,154,74,0.6);
  animation: la-candle 4s ease-in-out infinite alternate;
}
.scn-lucrece-accusation .glow {
  position: absolute; top: 20%; left: 50%; width: 30%; height: 50%;
  background: radial-gradient(ellipse, rgba(200,154,74,0.15) 0%, transparent 70%);
  animation: la-glow 7s ease-in-out infinite alternate;
}
.scn-lucrece-accusation .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, #0a0604 0%, transparent 70%);
  opacity: 0.6;
  animation: la-shadow 8s ease-in-out infinite;
}
@keyframes la-chair {
  0% { transform: perspective(200px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(7deg) translateY(-2px); }
  100% { transform: perspective(200px) rotateX(5deg) translateY(0); }
}
@keyframes la-figure {
  0% { transform: rotate(-2deg) translateY(0); }
  30% { transform: rotate(1deg) translateY(-3px); }
  60% { transform: rotate(-1deg) translateY(0); }
  100% { transform: rotate(0deg) translateY(-1px); }
}
@keyframes la-candle {
  0% { transform: scaleY(1); opacity: 0.9; box-shadow: 0 0 20px 6px rgba(200,154,74,0.6); }
  50% { transform: scaleY(1.1); opacity: 1; box-shadow: 0 0 30px 10px rgba(200,154,74,0.8); }
  100% { transform: scaleY(0.95); opacity: 0.85; box-shadow: 0 0 15px 4px rgba(200,154,74,0.5); }
}
@keyframes la-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes la-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.2); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.6; }
}

.scn-item-bloody-knife {
  background:
    linear-gradient(180deg, #0f0a08 0%, #1a100c 50%, #080504 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a12 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-item-bloody-knife .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0d0805 0%, #1a100c 100%);
  opacity: 0.9;
}
.scn-item-bloody-knife .hand {
  position: absolute; bottom: 30%; left: 40%;
  width: 50px; height: 70px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(15deg);
  animation: bk-hand 5s ease-in-out infinite;
}
.scn-item-bloody-knife .knife {
  position: absolute; bottom: 35%; left: 48%;
  width: 8px; height: 50px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 40% 40% 10% 10% / 30% 30% 5% 5%;
  transform: rotate(20deg);
  box-shadow: 0 0 10px 2px rgba(128,96,64,0.4);
  animation: bk-knife 4s ease-in-out infinite;
}
.scn-item-bloody-knife .blade-edge {
  position: absolute; bottom: 40%; left: 49%;
  width: 2px; height: 30px;
  background: #b0a090;
  border-radius: 50%;
  opacity: 0.7;
  filter: blur(1px);
}
.scn-item-bloody-knife .blood-drip {
  position: absolute; bottom: 28%; left: 50%;
  width: 4px; height: 20px;
  background: linear-gradient(180deg, #6e2a1a 0%, #4a1810 100%);
  border-radius: 50% 50% 30% 30%;
  opacity: 0.8;
  animation: bk-drip 3s ease-in-out infinite;
}
.scn-item-bloody-knife .pool {
  position: absolute; bottom: 20%; left: 42%;
  width: 60px; height: 20px;
  background: radial-gradient(ellipse, #6e2a1a 0%, #3a100a 70%);
  border-radius: 50%;
  opacity: 0.7;
  box-shadow: 0 0 20px 10px rgba(110,42,26,0.3);
  animation: bk-pool 6s ease-in-out infinite alternate;
}
.scn-item-bloody-knife .light-beam {
  position: absolute; top: 10%; left: 45%; width: 20%; height: 80%;
  background: linear-gradient(180deg, rgba(180,150,100,0.1) 0%, transparent 80%);
  transform: rotate(10deg);
  animation: bk-beam 8s ease-in-out infinite alternate;
}
@keyframes bk-hand {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(12deg) translateX(5px); }
  100% { transform: rotate(15deg) translateX(0); }
}
@keyframes bk-knife {
  0% { transform: rotate(20deg) scaleY(1); }
  50% { transform: rotate(22deg) scaleY(1.05); }
  100% { transform: rotate(20deg) scaleY(1); }
}
@keyframes bk-drip {
  0% { transform: translateY(0); opacity: 0.8; height: 20px; }
  50% { transform: translateY(10px); opacity: 0.6; height: 15px; }
  100% { transform: translateY(0); opacity: 0.8; height: 20px; }
}
@keyframes bk-pool {
  0% { transform: scaleX(1); opacity: 0.7; }
  50% { transform: scaleX(1.3); opacity: 0.9; }
  100% { transform: scaleX(1); opacity: 0.7; }
}
@keyframes bk-beam {
  0% { opacity: 0.2; transform: rotate(10deg); }
  100% { opacity: 0.5; transform: rotate(5deg); }
}

.scn-item-purple-fountain {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1a14 40%, #0a0806 100%),
    radial-gradient(ellipse at 50% 30%, #3a2018 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-item-purple-fountain .backdrop {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1f1410 0%, #120a08 100%);
}
.scn-item-purple-fountain .body-fallen {
  position: absolute; bottom: 20%; left: 30%;
  width: 70px; height: 50px;
  background: linear-gradient(180deg, #3a2218 0%, #1a100a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-20deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.8);
  animation: pf-body-fallen 7s ease-in-out infinite;
}
.scn-item-purple-fountain .body-father {
  position: absolute; bottom: 20%; left: 45%;
  width: 60px; height: 70px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(30deg) translateY(10px);
  transform-origin: bottom center;
  animation: pf-body-father 6s ease-in-out infinite;
}
.scn-item-purple-fountain .knife-held {
  position: absolute; bottom: 35%; left: 52%;
  width: 6px; height: 40px;
  background: linear-gradient(180deg, #b0a090 0%, #706050 100%);
  border-radius: 40% 40% 10% 10% / 20% 20% 5% 5%;
  transform: rotate(-40deg);
  box-shadow: 0 0 8px 2px rgba(128,96,64,0.3);
  animation: pf-knife 3s ease-in-out infinite alternate;
}
.scn-item-purple-fountain .fountain {
  position: absolute; bottom: 35%; left: 38%;
  width: 20px; height: 60px;
  background: linear-gradient(180deg, #6e2a1a 0%, #4a1810 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  filter: blur(3px);
  opacity: 0.8;
  animation: pf-fountain 4s ease-in-out infinite;
}
.scn-item-purple-fountain .splatter-a {
  position: absolute; bottom: 40%; left: 32%;
  width: 15px; height: 15px;
  background: radial-gradient(circle, #8a3a22 0%, transparent 70%);
  border-radius: 50%;
  animation: pf-splatter-a 5s ease-in-out infinite;
}
.scn-item-purple-fountain .splatter-b {
  position: absolute; bottom: 38%; left: 48%;
  width: 10px; height: 10px;
  background: radial-gradient(circle, #7a2e1a 0%, transparent 70%);
  border-radius: 50%;
  animation: pf-splatter-b 6s ease-in-out infinite 1s;
}
.scn-item-purple-fountain .dust-motes {
  position: absolute; top: 15%; left: 20%; width: 60%; height: 60%;
  background: radial-gradient(ellipse, rgba(180,150,100,0.05) 0%, transparent 70%);
  animation: pf-motes 12s ease-in-out infinite alternate;
}
@keyframes pf-body-fallen {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-22deg) translateX(5px); }
  100% { transform: rotate(-20deg) translateX(0); }
}
@keyframes pf-body-father {
  0% { transform: rotate(30deg) translateY(10px); }
  50% { transform: rotate(28deg) translateY(8px); }
  100% { transform: rotate(30deg) translateY(10px); }
}
@keyframes pf-knife {
  0% { transform: rotate(-40deg); opacity: 0.9; }
  50% { transform: rotate(-35deg); opacity: 1; }
  100% { transform: rotate(-40deg); opacity: 0.9; }
}
@keyframes pf-fountain {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.2); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.8; }
}
@keyframes pf-splatter-a {
  0% { transform: translateX(0) scale(1); opacity: 0.6; }
  50% { transform: translateX(-10px) scale(1.5); opacity: 0.3; }
  100% { transform: translateX(0) scale(1); opacity: 0.6; }
}
@keyframes pf-splatter-b {
  0% { transform: translateX(0) scale(1); opacity: 0.5; }
  50% { transform: translateX(8px) scale(1.3); opacity: 0.2; }
  100% { transform: translateX(0) scale(1); opacity: 0.5; }
}
@keyframes pf-motes {
  0% { opacity: 0.1; transform: scale(0.9); }
  100% { opacity: 0.4; transform: scale(1.1); }
}

.scn-blood-description {
  background:
    linear-gradient(180deg, #0f0a08 0%, #1a100c 60%, #060404 100%),
    radial-gradient(ellipse at 50% 50%, #2a1a10 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-blood-description .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #140e0a 0%, #0a0604 100%);
}
.scn-blood-description .figure.prone {
  position: absolute; bottom: 25%; left: 30%;
  width: 80px; height: 50px;
  background: linear-gradient(180deg, #3a2218 0%, #1a100a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: bd-figure 9s ease-in-out infinite;
}
.scn-blood-description .river-left {
  position: absolute; bottom: 15%; left: 20%;
  width: 30%; height: 8px;
  background: linear-gradient(90deg, #6e2a1a 0%, #4a1810 100%);
  border-radius: 50% / 100%;
  filter: blur(2px);
  opacity: 0.7;
  animation: bd-river-l 6s ease-in-out infinite alternate;
}
.scn-blood-description .river-right {
  position: absolute; bottom: 15%; right: 20%;
  width: 30%; height: 8px;
  background: linear-gradient(270deg, #7a3020 0%, #4a1810 100%);
  border-radius: 50% / 100%;
  filter: blur(2px);
  opacity: 0.7;
  animation: bd-river-r 6s ease-in-out infinite alternate 1s;
}
.scn-blood-description .blood-circle {
  position: absolute; bottom: 5%; left: 25%;
  width: 50%; height: 30%;
  background: radial-gradient(ellipse, #5a1c12 0%, transparent 70%);
  border-radius: 50%;
  opacity: 0.5;
  animation: bd-circle 8s ease-in-out infinite;
}
.scn-blood-description .pool-patch {
  position: absolute; bottom: 10%; left: 35%;
  width: 30%; height: 10%;
  background: radial-gradient(ellipse, #4a1a0e 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(4px);
  opacity: 0.6;
  animation: bd-pool 10s ease-in-out infinite alternate;
}
.scn-blood-description .shadow-rim {
  position: absolute; inset: 5% 5% 5% 5%;
  background: radial-gradient(ellipse, transparent 60%, #0a0604 90%);
  pointer-events: none;
}
.scn-blood-description .vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse, transparent 40%, #040202 100%);
  opacity: 0.7;
  animation: bd-vignette 11s ease-in-out infinite alternate;
}
@keyframes bd-figure {
  0% { transform: rotate(-5deg) translateY(0); opacity: 0.9; }
  50% { transform: rotate(-3deg) translateY(-2px); opacity: 0.85; }
  100% { transform: rotate(-5deg) translateY(0); opacity: 0.9; }
}
@keyframes bd-river-l {
  0% { transform: translateX(0) scaleY(1); opacity: 0.7; }
  50% { transform: translateX(5px) scaleY(1.2); opacity: 0.9; }
  100% { transform: translateX(0) scaleY(1); opacity: 0.7; }
}
@keyframes bd-river-r {
  0% { transform: translateX(0) scaleY(1); opacity: 0.7; }
  50% { transform: translateX(-5px) scaleY(1.2); opacity: 0.9; }
  100% { transform: translateX(0) scaleY(1); opacity: 0.7; }
}
@keyframes bd-circle {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.05); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes bd-pool {
  0% { opacity: 0.5; transform: scaleX(1); }
  100% { opacity: 0.8; transform: scaleX(1.2); }
}
@keyframes bd-vignette {
  0% { opacity: 0.6; }
  100% { opacity: 0.9; }
}

.scn-lucrece-weeps-for-hecuba {
  background: 
    linear-gradient(180deg, #1a1423 0%, #2a1e2f 30%, #3a2a3a 70%, #1a1020 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a4a 0%, transparent 60%);
}
.scn-lucrece-weeps-for-hecuba .wall { position:absolute; inset:0; background:linear-gradient(135deg, #2a1e2f 0%, #1a1423 100%); opacity:.7; }
.scn-lucrece-weeps-for-hecuba .frame { position:absolute; left:20%; right:20%; top:10%; bottom:40%; border:8px solid #5a4a3a; border-radius:4px; background: #1a1420; box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 10px 20px rgba(0,0,0,.5); }
.scn-lucrece-weeps-for-hecuba .painting-hecuba { position:absolute; left:22%; right:22%; top:13%; bottom:43%; background: radial-gradient(ellipse at 40% 30%, #ffb080 0%, #6a3a2a 30%, #2a1a1a 70%); border-radius:2px; opacity:.8; animation: lwh1-paint 12s ease-in-out infinite alternate; }
.scn-lucrece-weeps-for-hecuba .lucrece-figure { position:absolute; left:38%; bottom:18%; width:30px; height:70px; background:linear-gradient(180deg, #3a2a3a 0%, #1a1220 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: lwh1-lucrece 5s ease-in-out infinite; }
.scn-lucrece-weeps-for-hecuba .candle { position:absolute; left:70%; bottom:30%; width:6px; height:60px; background:linear-gradient(180deg, #d0a060 0%, #8a6a3a 100%); border-radius:2px; box-shadow: 0 0 20px 5px #ffa060; animation: lwh1-candle 3s ease-in-out infinite alternate; }
.scn-lucrece-weeps-for-hecuba .tear-drop { position:absolute; left:44%; bottom:20%; width:4px; height:8px; background:radial-gradient(circle, #c0d0ff 0%, #8090c0 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; animation: lwh1-tear 2s ease-in-out infinite; }
.scn-lucrece-weeps-for-hecuba .shadow-layer { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 40%, transparent 0%, rgba(0,0,0,.6) 100%); pointer-events:none; }
@keyframes lwh1-paint { 0% { opacity:.6; transform: scale(1); } 50% { opacity:.9; transform: scale(1.02); } 100% { opacity:.7; transform: scale(0.98); } }
@keyframes lwh1-lucrece { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lwh1-candle { 0% { box-shadow: 0 0 15px 3px #ffa060; } 50% { box-shadow: 0 0 30px 8px #ffb080; } 100% { box-shadow: 0 0 20px 5px #ffa060; } }
@keyframes lwh1-tear { 0% { opacity:0; transform: translateY(0) scaleY(1); } 30% { opacity:1; } 70% { opacity:1; transform: translateY(15px) scaleY(1.2); } 100% { opacity:0; transform: translateY(25px) scaleY(0.6); } }

.scn-lucrece-vows-revenge {
  background: linear-gradient(180deg, #1a0f1e 0%, #2a1a2a 40%, #1a1218 100%), radial-gradient(ellipse at 30% 70%, #3a1a2a 0%, transparent 60%);
}
.scn-lucrece-vows-revenge .backdrop { position:absolute; inset:0; background:linear-gradient(0deg, #0a060a 0%, #1a1218 100%); opacity:.8; }
.scn-lucrece-vows-revenge .lucrece-vengeful { position:absolute; left:40%; bottom:15%; width:36px; height:80px; background:linear-gradient(180deg, #2a1a2a 0%, #0e0a10 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lvr2-figure 6s ease-in-out infinite; }
.scn-lucrece-vows-revenge .knife { position:absolute; left:52%; bottom:45%; width:4px; height:40px; background:linear-gradient(180deg, #c0c0c0 0%, #606060 100%); border-radius:2px; transform-origin: bottom center; clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: lvr2-knife 4s ease-in-out infinite alternate; }
.scn-lucrece-vows-revenge .hand { position:absolute; left:48%; bottom:40%; width:12px; height:14px; background:radial-gradient(circle at 50% 30%, #4a3a3a 0%, #2a1a1a 100%); border-radius:40% 60% 30% 30%; transform-origin: 50% 100%; animation: lvr2-hand 4s ease-in-out infinite; }
.scn-lucrece-vows-revenge .candle-flame { position:absolute; left:70%; bottom:35%; width:8px; height:12px; background:radial-gradient(circle, #ffd080 0%, #ff8020 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #ff8020; animation: lvr2-flame 1.5s ease-in-out infinite; }
.scn-lucrece-vows-revenge .blood-stain { position:absolute; left:55%; bottom:20%; width:20px; height:20px; background:radial-gradient(circle at 50% 50%, #702030 0%, #1a0a10 100%); border-radius:50%; opacity:.6; mix-blend-mode: multiply; animation: lvr2-blood 8s ease-in-out infinite; }
.scn-lucrece-vows-revenge .drape { position:absolute; right:0; top:0; bottom:0; width:30%; background: linear-gradient(135deg, #3a1a2a 0%, #1a0a14 100%); clip-path: polygon(100% 0, 100% 100%, 0% 100%, 20% 0%); animation: lvr2-drape 20s ease-in-out infinite alternate; }
@keyframes lvr2-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lvr2-knife { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(5deg) translateX(3px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes lvr2-hand { 0% { transform: rotate(0deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes lvr2-flame { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.3); } 100% { opacity:.7; transform: scaleY(1); } }
@keyframes lvr2-blood { 0% { opacity:.4; transform: scale(1); } 50% { opacity:.7; transform: scale(1.1); } 100% { opacity:.4; transform: scale(1); } }
@keyframes lvr2-drape { 0% { clip-path: polygon(100% 0, 100% 100%, 0% 100%, 20% 0%); } 100% { clip-path: polygon(100% 0, 100% 100%, 10% 100%, 30% 0%); } }

.scn-lucrece-weeps-painted-woes {
  background: linear-gradient(180deg, #1a121a 0%, #2a1e2a 40%, #1a0c1a 100%), radial-gradient(ellipse at 50% 30%, #3a2a3a 0%, transparent 70%);
}
.scn-lucrece-weeps-painted-woes .wall-dark { position:absolute; inset:0; background:linear-gradient(135deg, #1a121a, #120e12); }
.scn-lucrece-weeps-painted-woes .tapestry { position:absolute; left:10%; right:10%; top:8%; bottom:35%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border:6px solid #4a3a2a; border-radius:6px; overflow:hidden; box-shadow: inset 0 0 40px rgba(0,0,0,.8); }
.scn-lucrece-weeps-painted-woes .figure-hector { position:absolute; left:20%; bottom:40%; width:20px; height:40px; background:linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform:rotate(-10deg); animation: lwp3-figures 8s ease-in-out infinite; }
.scn-lucrece-weeps-painted-woes .figure-priam { position:absolute; left:40%; bottom:38%; width:18px; height:36px; background:linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform:rotate(5deg); animation: lwp3-figures 8s ease-in-out infinite reverse; }
.scn-lucrece-weeps-painted-woes .figure-troilus { position:absolute; left:60%; bottom:42%; width:22px; height:38px; background:linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform:rotate(-5deg); animation: lwp3-figures 10s ease-in-out infinite; }
.scn-lucrece-weeps-painted-woes .lucrece-grieving { position:absolute; left:35%; bottom:10%; width:40px; height:60px; background:linear-gradient(180deg, #2a1e2a 0%, #120812 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lwp3-lucrece 5s ease-in-out infinite; }
.scn-lucrece-weeps-painted-woes .oil-lamp { position:absolute; left:75%; bottom:25%; width:10px; height:30px; background:linear-gradient(180deg, #b09050 0%, #6a4a2a 100%); border-radius:4px 4px 2px 2px; box-shadow: 0 0 30px 8px #ffb060; animation: lwp3-lamp 4s ease-in-out infinite alternate; }
.scn-lucrece-weeps-painted-woes .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 75% 25%, rgba(255,176,96,.2) 0%, transparent 60%); pointer-events:none; }
@keyframes lwp3-figures { 0% { transform: translateY(0) rotate(var(--r,0deg)); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(var(--r,0deg)); } }
/* Note: in the above keyframe we use a custom property, but for simplicity we'll duplicate with unique angles. Instead let's use separate keyframes for each figure */
@keyframes lwp3-hector { 0% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-2px) rotate(-8deg); } 100% { transform: translateY(0) rotate(-10deg); } }
@keyframes lwp3-priam { 0% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-3px) rotate(7deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes lwp3-troilus { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes lwp3-lucrece { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lwp3-lamp { 0% { box-shadow: 0 0 20px 4px #ffb060; } 50% { box-shadow: 0 0 40px 12px #ffd080; } 100% { box-shadow: 0 0 20px 4px #ffb060; } }

.scn-painting-sinon-bound {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, transparent 70%);
}
.scn-painting-sinon-bound .background { position:absolute; inset:0; background:linear-gradient(135deg, #1a1a2a, #12121a); }
.scn-painting-sinon-bound .painting-frame { position:absolute; left:15%; right:15%; top:10%; bottom:35%; background:#2a2a3a; border:6px solid #4a4a5a; border-radius:12px; box-shadow: inset 0 0 40px rgba(0,0,0,.6), 0 10px 20px rgba(0,0,0,.4); }
.scn-painting-sinon-bound .sinon-bound { position:absolute; left:40%; bottom:40%; width:24px; height:40px; background:linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: psb4-sinon 6s ease-in-out infinite; }
.scn-painting-sinon-bound .shepherd-left { position:absolute; left:25%; bottom:38%; width:18px; height:36px; background:linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform:rotate(10deg); animation: psb4-shepherd-left 7s ease-in-out infinite; }
.scn-painting-sinon-bound .shepherd-right { position:absolute; left:58%; bottom:40%; width:18px; height:34px; background:linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform:rotate(-5deg); animation: psb4-shepherd-right 7s ease-in-out infinite; }
.scn-painting-sinon-bound .lucrece-observes { position:absolute; left:35%; bottom:10%; width:32px; height:65px; background:linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: psb4-lucrece 5s ease-in-out infinite; }
.scn-painting-sinon-bound .chandelier { position:absolute; left:50%; top:2%; width:60px; height:20px; background:linear-gradient(180deg, #b09070 0%, #6a5a4a 100%); border-radius:50% 50% 0 0; transform:translateX(-50%); box-shadow: 0 10px 20px rgba(0,0,0,.4); animation: psb4-chandelier 20s linear infinite; }
.scn-painting-sinon-bound .soft-light { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, rgba(200,180,120,.15) 0%, transparent 60%); pointer-events:none; }
@keyframes psb4-sinon { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes psb4-shepherd-left { 0% { transform: translateY(0) rotate(10deg); } 50% { transform: translateY(-3px) rotate(12deg); } 100% { transform: translateY(0) rotate(10deg); } }
@keyframes psb4-shepherd-right { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes psb4-lucrece { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes psb4-chandelier { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-48%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }

.scn-curse-tarquin-3 {
  background: linear-gradient(180deg, #0b0e1a 0%, #141829 40%, #1a2035 100%),
              radial-gradient(ellipse at 50% 20%, #2a3a5a 0%, transparent 60%);
}
.scn-curse-tarquin-3 .sky-night {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0d18 0%, #1a2235 100%);
  animation: ct3-sky 12s ease-in-out infinite alternate;
}
.scn-curse-tarquin-3 .moon {
  position: absolute; top: 8%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle at 40% 40%, #e8e0c0 0%, #c0b898 40%, #8a8070 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,190,160,0.3), inset 0 0 10px rgba(0,0,0,0.5);
  animation: ct3-moon 20s ease-in-out infinite alternate;
}
.scn-curse-tarquin-3 .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a1f2a 0%, #0e1118 100%);
  border-radius: 40% 30% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-curse-tarquin-3 .beggar {
  position: absolute; bottom: 25%; left: 40%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #2a2530 0%, #101018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ct3-beggar 4s ease-in-out infinite;
}
.scn-curse-tarquin-3 .fool-1 {
  position: absolute; bottom: 28%; left: 20%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a3040 0%, #1a1820 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  animation: ct3-fool 6s ease-in-out infinite 0s;
}
.scn-curse-tarquin-3 .fool-2 {
  position: absolute; bottom: 30%; left: 30%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #353040 0%, #151820 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg) scale(0.9);
  animation: ct3-fool 6s ease-in-out infinite 1s;
}
.scn-curse-tarquin-3 .fool-3 {
  position: absolute; bottom: 26%; left: 55%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #403040 0%, #201820 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(15deg) scale(1.05);
  animation: ct3-fool 6s ease-in-out infinite 2s;
}
.scn-curse-tarquin-3 .shadow {
  position: absolute; bottom: 18%; left: 38%; width: 50px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ct3-shadow 4s ease-in-out infinite alternate;
}
@keyframes ct3-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ct3-moon { 0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 40px 20px rgba(200,190,160,0.3); } 50% { transform: translate(5px, -3px) scale(1.02); box-shadow: 0 0 60px 30px rgba(200,190,160,0.5); } 100% { transform: translate(-5px, 2px) scale(0.98); box-shadow: 0 0 30px 15px rgba(200,190,160,0.2); } }
@keyframes ct3-beggar { 0% { transform: translateX(0) translateY(0) rotate(-2deg) scale(1); } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg) scale(1.01); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) scale(0.98); } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) scale(1.02); } 100% { transform: translateX(16px) translateY(0) rotate(0deg) scale(1); } }
@keyframes ct3-fool { 0% { transform: translateY(0) rotate(var(--r, 0deg)); } 25% { transform: translateY(-3px) rotate(var(--r, 0deg) + 10deg); } 50% { transform: translateY(0) rotate(var(--r, 0deg)); } 75% { transform: translateY(-4px) rotate(var(--r, 0deg) - 8deg); } 100% { transform: translateY(0) rotate(var(--r, 0deg)); } }
@keyframes ct3-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.5; } 50% { transform: scaleX(1.2) translateX(5px); opacity: 0.7; } 100% { transform: scaleX(0.9) translateX(-3px); opacity: 0.4; } }

.scn-curse-tarquin-4 {
  background: linear-gradient(180deg, #0a0d12 0%, #121624 50%, #0e111a 100%),
              radial-gradient(ellipse at 50% 80%, #1a2233 0%, transparent 70%);
}
.scn-curse-tarquin-4 .void {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #080b10 0%, #141a24 100%);
}
.scn-curse-tarquin-4 .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1e2a 0%, #0c0f16 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 5px 20px rgba(0,0,0,0.8);
}
.scn-curse-tarquin-4 .thief {
  position: absolute; bottom: 30%; left: 42%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #2a2630 0%, #121018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-8deg);
  animation: ct4-thief 6s ease-in-out infinite;
}
.scn-curse-tarquin-4 .shadow-thief {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 70px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 70%);
  filter: blur(6px);
  transform: skewX(-20deg);
  animation: ct4-shadow 6s ease-in-out infinite alternate;
}
.scn-curse-tarquin-4 .knife {
  position: absolute; bottom: 40%; left: 46%; width: 3px; height: 25px;
  background: linear-gradient(180deg, #a0a8b0 0%, #606870 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(15deg) translate(0, 0);
  box-shadow: 0 0 4px rgba(200,200,220,0.3);
  animation: ct4-knife 4s ease-in-out infinite;
}
.scn-curse-tarquin-4 .eye-1 {
  position: absolute; top: 25%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #d0c0a0 0%, #a09070 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 6px rgba(200,190,160,0.4);
  animation: ct4-eye 3s ease-in-out infinite alternate;
}
.scn-curse-tarquin-4 .eye-2 {
  position: absolute; top: 25%; left: 58%; width: 6px; height: 6px;
  background: radial-gradient(circle, #d0c0a0 0%, #a09070 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 4px rgba(200,190,160,0.3);
  animation: ct4-eye 3s ease-in-out infinite alternate 0.5s;
}
@keyframes ct4-thief { 0% { transform: translateX(0) translateY(0) rotate(-8deg); } 33% { transform: translateX(8px) translateY(-3px) rotate(-5deg); } 66% { transform: translateX(16px) translateY(0) rotate(-11deg); } 100% { transform: translateX(24px) translateY(-1px) rotate(-8deg); } }
@keyframes ct4-shadow { 0% { transform: skewX(-20deg) translateX(0) scaleX(1); opacity: 0.6; } 50% { transform: skewX(-25deg) translateX(15px) scaleX(1.2); opacity: 0.8; } 100% { transform: skewX(-15deg) translateX(-10px) scaleX(0.9); opacity: 0.5; } }
@keyframes ct4-knife { 0% { transform: rotate(15deg) translate(0, 0); } 30% { transform: rotate(20deg) translate(2px, -5px); } 60% { transform: rotate(10deg) translate(-1px, 2px); } 100% { transform: rotate(15deg) translate(0, 0); } }
@keyframes ct4-eye { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.6; } }

.scn-curse-tarquin-5 {
  background: linear-gradient(180deg, #0c0e16 0%, #161b2a 50%, #1e2638 100%),
              radial-gradient(ellipse at 50% 30%, #2a3a4a 0%, transparent 70%);
}
.scn-curse-tarquin-5 .sky-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0c14 0%, #181e2e 100%);
  animation: ct5-sky 15s ease-in-out infinite alternate;
}
.scn-curse-tarquin-5 .moon-clouded {
  position: absolute; top: 10%; left: 25%; width: 70px; height: 70px;
  background: radial-gradient(circle at 35% 35%, #d8d0b8 0%, #a09878 40%, #686058 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px rgba(200,190,160,0.3), inset 0 0 20px rgba(0,0,0,0.5);
  animation: ct5-moon 30s ease-in-out infinite alternate;
}
.scn-curse-tarquin-5 .cloud-1 {
  position: absolute; top: 8%; left: 10%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(180,180,200,0.4) 0%, rgba(100,110,130,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ct5-cloud1 40s linear infinite;
}
.scn-curse-tarquin-5 .cloud-2 {
  position: absolute; top: 15%; left: 40%; width: 100px; height: 25px;
  background: linear-gradient(180deg, rgba(200,200,220,0.3) 0%, rgba(120,130,150,0.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ct5-cloud2 35s linear infinite reverse;
}
.scn-curse-tarquin-5 .crow {
  position: absolute; bottom: 45%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #1a1a20 0%, #0c0c10 100%);
  clip-path: polygon(0% 50%, 30% 0%, 70% 0%, 100% 50%, 70% 100%, 30% 100%);
  transform-origin: center bottom;
  animation: ct5-crow 5s ease-in-out infinite alternate;
}
.scn-curse-tarquin-5 .star-1 {
  position: absolute; top: 20%; left: 70%; width: 3px; height: 3px;
  background: #c0b8a0;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,190,160,0.5);
  animation: ct5-star 4s ease-in-out infinite alternate;
}
.scn-curse-tarquin-5 .star-2 {
  position: absolute; top: 30%; left: 80%; width: 2px; height: 2px;
  background: #a09880;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(200,190,160,0.3);
  animation: ct5-star 5s ease-in-out infinite alternate 1s;
}
.scn-curse-tarquin-5 .star-3 {
  position: absolute; top: 12%; left: 55%; width: 2px; height: 2px;
  background: #b0a890;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(200,190,160,0.3);
  animation: ct5-star 6s ease-in-out infinite alternate 2s;
}
.scn-curse-tarquin-5 .mire {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1e2a 0%, #0c0f16 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
@keyframes ct5-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ct5-moon { 0% { transform: translate(0, 0) scale(1); opacity: 0.8; } 50% { transform: translate(8px, -5px) scale(1.03); opacity: 1; } 100% { transform: translate(-6px, 3px) scale(0.97); opacity: 0.7; } }
@keyframes ct5-cloud1 { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }
@keyframes ct5-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes ct5-crow { 0% { transform: translateY(0) rotate(-5deg) scaleX(1); } 50% { transform: translateY(-8px) rotate(3deg) scaleX(1.1); } 100% { transform: translateY(2px) rotate(-2deg) scaleX(0.9); } }
@keyframes ct5-star { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.9); } }

.scn-curse-tarquin-6 {
  background: linear-gradient(180deg, #070a10 0%, #0e121e 40%, #141a26 100%),
              radial-gradient(ellipse at 50% 80%, #1a2235 0%, transparent 70%);
}
.scn-curse-tarquin-6 .sky-shaft {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #060810 0%, #101622 100%);
  animation: ct6-sky 10s ease-in-out infinite alternate;
}
.scn-curse-tarquin-6 .eagle {
  position: absolute; top: 5%; left: 40%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #1a1a20 0%, #0c0c12 100%);
  clip-path: polygon(20% 30%, 50% 0%, 80% 30%, 70% 80%, 50% 60%, 30% 80%);
  transform-origin: center 20%;
  animation: ct6-eagle 7s ease-in-out infinite alternate;
}
.scn-curse-tarquin-6 .gnat-1 {
  position: absolute; bottom: 40%; left: 20%; width: 4px; height: 2px;
  background: #a09080;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(160,150,130,0.3);
  animation: ct6-gnat 3s ease-in-out infinite 0s;
}
.scn-curse-tarquin-6 .gnat-2 {
  position: absolute; bottom: 45%; left: 50%; width: 3px; height: 2px;
  background: #908070;
  border-radius: 50%;
  box-shadow: 0 0 3px 1px rgba(160,150,130,0.2);
  animation: ct6-gnat 3.5s ease-in-out infinite 1s;
}
.scn-curse-tarquin-6 .gnat-3 {
  position: absolute; bottom: 38%; left: 70%; width: 5px; height: 2px;
  background: #b0a090;
  border-radius: 50%;
  box-shadow: 0 0 5px 2px rgba(160,150,130,0.3);
  animation: ct6-gnat 4s ease-in-out infinite 2s;
}
.scn-curse-tarquin-6 .ground-void {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #10131e 0%, #060910 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
@keyframes ct6-sky { 0% { opacity: 0.5 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes ct6-eagle { 0% { transform: translateY(0) rotate(-3deg) scale(1); } 50% { transform: translateY(-10px) rotate(2deg) scale(1.05); } 100% { transform: translateY(5px) rotate(-1deg) scale(0.95); } }
@keyframes ct6-gnat { 0% { transform: translateX(0) translateY(0); opacity: 0.2; } 25% { transform: translateX(15px) translateY(-8px); opacity: 0.6; } 50% { transform: translateX(30px) translateY(0); opacity: 0.8; } 75% { transform: translateX(45px) translateY(-5px); opacity: 0.4; } 100% { transform: translateX(60px) translateY(0); opacity: 0.1; } }

/* quiet-cabinet-alarmed */
.scn-quiet-cabinet-alarmed {
  background:
    linear-gradient(180deg, #1a0e0a 0%, #2a1a12 40%, #3a1f14 70%, #1f0d08 100%),
    radial-gradient(ellipse at 50% 30%, #5a2a18 0%, transparent 60%);
}
.scn-quiet-cabinet-alarmed .cabinet {
  position: absolute; bottom: 20%; left: 30%; width: 50%; height: 55%;
  background: linear-gradient(180deg, #3a1f0e 0%, #2a140a 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 -4px 12px #0a0502, 0 0 30px #1a0a04;
  transform: perspective(600px) rotateX(2deg);
  animation: qca-cabinet 14s ease-in-out infinite alternate;
}
.scn-quiet-cabinet-alarmed .figure-gov {
  position: absolute; bottom: 35%; left: 48%; width: 14%; height: 30%;
  background: radial-gradient(ellipse at 50% 40%, #5a3020 0%, #2a140a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qca-figure 3s ease-in-out infinite;
  box-shadow: 0 0 20px #6a2a12;
}
.scn-quiet-cabinet-alarmed .flame-torch {
  position: absolute; bottom: 50%; left: 20%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #ffc070 0%, #e06020 50%, #601808 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  filter: blur(1px);
  animation: qca-flame 1.2s ease-in-out infinite alternate;
  box-shadow: 0 0 30px #e06020, 0 0 60px #b04018;
}
.scn-quiet-cabinet-alarmed .glow-pulse {
  position: absolute; inset: 0; opacity: 0.2;
  background: radial-gradient(ellipse at 20% 50%, #ff8030 0%, transparent 60%);
  animation: qca-glow 3s ease-in-out infinite alternate;
  pointer-events: none;
}
.scn-quiet-cabinet-alarmed .shadow-panel {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 70% 80%, #0a0502 0%, transparent 50%);
  animation: qca-shadow 8s ease-in-out infinite alternate;
}
.scn-quiet-cabinet-alarmed .ember {
  position: absolute; bottom: 52%; left: 18%; width: 1.5%; height: 1.5%;
  background: #ff8040; border-radius: 50%; box-shadow: 0 0 12px #ff8040;
  animation: qca-ember 2.4s ease-in-out infinite;
}
.scn-quiet-cabinet-alarmed .cry-lines {
  position: absolute; bottom: 38%; left: 50%; width: 0; height: 0;
  border-left: 2px solid rgba(255,200,150,0.3);
  border-right: 2px solid rgba(255,200,150,0.3);
  animation: qca-cry 4s ease-in-out infinite;
}
@keyframes qca-cabinet {
  0%,100% { transform: perspective(600px) rotateX(2deg) translateY(0); }
  50% { transform: perspective(600px) rotateX(2deg) translateY(-3px); }
}
@keyframes qca-figure {
  0% { transform: rotate(-2deg); }
  30% { transform: rotate(3deg) translateX(2px); }
  60% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(2deg); }
}
@keyframes qca-flame {
  0% { transform: scaleY(1) scaleX(0.8); opacity: 0.9; }
  50% { transform: scaleY(1.3) scaleX(1.2); opacity: 1; }
  100% { transform: scaleY(0.9) scaleX(1); opacity: 0.8; }
}
@keyframes qca-glow {
  0% { opacity: 0.1; }
  50% { opacity: 0.3; }
  100% { opacity: 0.15; }
}
@keyframes qca-shadow {
  0% { transform: scale(0.95); opacity: 0.7; }
  50% { transform: scale(1); opacity: 1; }
  100% { transform: scale(0.98); opacity: 0.8; }
}
@keyframes qca-ember {
  0% { transform: translate(0,0) scale(1); opacity: 1; }
  50% { transform: translate(-8px, -10px) scale(0.3); opacity: 0.3; }
  100% { transform: translate(4px, -4px) scale(0.6); opacity: 0.7; }
}
@keyframes qca-cry {
  0%,100% { transform: scaleY(0); opacity: 0; }
  25% { transform: scaleY(1); opacity: 0.4; }
  50% { transform: scaleY(0.5) translateX(5px); opacity: 0.1; }
  75% { transform: scaleY(1.2) translateX(-3px); opacity: 0.3; }
}

/* lucrece-wakes */
.scn-lucrece-wakes {
  background:
    linear-gradient(180deg, #0d0608 0%, #1f0d10 40%, #2a1218 70%, #0d0608 100%),
    radial-gradient(ellipse at 40% 60%, #4a1a1e 0%, transparent 70%);
}
.scn-lucrece-wakes .bed {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 45%;
  background: linear-gradient(180deg, #2a1018 0%, #1a0a10 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 -8px 20px #080204;
  transform: perspective(500px) rotateX(5deg);
  animation: luw-bed 16s ease-in-out infinite alternate;
}
.scn-lucrece-wakes .lucrece {
  position: absolute; bottom: 35%; left: 42%; width: 16%; height: 35%;
  background: radial-gradient(ellipse at 50% 30%, #6a2a2a 0%, #2a1018 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: luw-figure 2.8s ease-in-out infinite;
  box-shadow: 0 0 25px #4a1a1a;
}
.scn-lucrece-wakes .sprite {
  position: absolute; top: 15%; right: 10%; width: 25%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #703040 0%, transparent 70%);
  border-radius: 50%; filter: blur(6px);
  animation: luw-sprite 5s ease-in-out infinite alternate;
  opacity: 0.7;
}
.scn-lucrece-wakes .curtain {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: linear-gradient(180deg, transparent 60%, #1a0a0e 80%, #0d0508 100%);
  animation: luw-curtain 12s ease-in-out infinite alternate;
}
.scn-lucrece-wakes .floor {
  position: absolute; bottom: -5%; left: 0; width: 100%; height: 15%;
  background: linear-gradient(0deg, #0d0508 0%, #1a0a0e 100%);
  border-radius: 60% 60% 0 0;
}
.scn-lucrece-wakes .fire-glow {
  position: absolute; bottom: 10%; left: 10%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, #c04020 0%, transparent 60%);
  animation: luw-fire 3s ease-in-out infinite alternate;
  pointer-events: none;
}
.scn-lucrece-wakes .shudder {
  position: absolute; inset: 0;
  background: transparent;
  animation: luw-shudder 0.5s ease-in-out infinite;
}
@keyframes luw-bed {
  0% { transform: perspective(500px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(500px) rotateX(5deg) translateY(-4px); }
  100% { transform: perspective(500px) rotateX(5deg) translateY(2px); }
}
@keyframes luw-figure {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(5deg) translateY(-8px); }
  50% { transform: rotate(-2deg) translateY(-3px); }
  80% { transform: rotate(3deg) translateY(-6px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes luw-sprite {
  0% { transform: scale(0.8) translate(0,0); opacity: 0.4; }
  50% { transform: scale(1.2) translate(-10px, 15px); opacity: 0.9; }
  100% { transform: scale(0.9) translate(5px, -5px); opacity: 0.5; }
}
@keyframes luw-curtain {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes luw-fire {
  0% { transform: scale(0.8); opacity: 0.4; }
  50% { transform: scale(1.1); opacity: 0.7; }
  100% { transform: scale(0.9); opacity: 0.5; }
}
@keyframes luw-shudder {
  0%,100% { transform: translate(0,0); }
  20% { transform: translate(-1px, 0); }
  40% { transform: translate(1px, -1px); }
  60% { transform: translate(-1px, 1px); }
  80% { transform: translate(1px, 0); }
}

/* wrapped-confounded-fears */
.scn-wrapped-confounded-fears {
  background:
    linear-gradient(180deg, #0f070a 0%, #1c0d12 40%, #291318 70%, #0f070a 100%),
    radial-gradient(ellipse at 60% 40%, #3a1a1e 0%, transparent 80%);
}
.scn-wrapped-confounded-fears .bird-body {
  position: absolute; bottom: 30%; left: 45%; width: 12%; height: 18%;
  background: radial-gradient(ellipse at 50% 50%, #3a1a1e 0%, #1a0a0e 70%);
  border-radius: 50% 50% 40% 50% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: wcf-birdbody 2s ease-in-out infinite;
  box-shadow: 0 0 20px #1a0a0e;
}
.scn-wrapped-confounded-fears .bird-wing {
  position: absolute; bottom: 35%; left: 42%; width: 15%; height: 10%;
  background: linear-gradient(180deg, #2a1018 0%, #1a0a0e 100%);
  border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%;
  transform-origin: right center;
  animation: wcf-wing 1.5s ease-in-out infinite alternate;
}
.scn-wrapped-confounded-fears .eye-pupil {
  position: absolute; bottom: 40%; left: 49%; width: 3%; height: 3%;
  background: radial-gradient(circle, #600808 0%, #1a0a0e 60%);
  border-radius: 50%;
  animation: wcf-eye 3s ease-in-out infinite;
  box-shadow: 0 0 10px #801010;
}
.scn-wrapped-confounded-fears .shadow-antic {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, rgba(30,10,15,0.6) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: wcf-antic 9s ease-in-out infinite alternate;
}
.scn-wrapped-confounded-fears .shadow-antic-b {
  position: absolute; bottom: 10%; right: 5%; width: 50%; height: 40%;
  background: radial-gradient(ellipse at 30% 70%, rgba(40,12,16,0.7) 0%, transparent 60%);
  border-radius: 40% 60% 50% 50%; filter: blur(6px);
  animation: wcf-anticb 11s ease-in-out infinite alternate;
}
.scn-wrapped-confounded-fears .ground {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 25%;
  background: linear-gradient(0deg, #0f070a 0%, #1c0d12 100%);
  border-radius: 80% 80% 0 0;
}
.scn-wrapped-confounded-fears .tremble {
  position: absolute; inset: 0;
  animation: wcf-tremble 0.8s ease-in-out infinite;
}
@keyframes wcf-birdbody {
  0% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(4deg) scale(1.05); }
  50% { transform: rotate(-3deg) scale(0.95); }
  75% { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(-1deg) scale(1); }
}
@keyframes wcf-wing {
  0% { transform: rotate(20deg) scaleX(0.8); }
  50% { transform: rotate(-30deg) scaleX(1.2); }
  100% { transform: rotate(15deg) scaleX(0.9); }
}
@keyframes wcf-eye {
  0%,100% { transform: scale(1); opacity: 0.9; }
  30% { transform: scale(1.5); opacity: 1; }
  70% { transform: scale(0.8); opacity: 0.7; }
}
@keyframes wcf-antic {
  0% { transform: scale(0.7) translate(0,0); opacity: 0.3; }
  50% { transform: scale(1.1) translate(20px, -10px); opacity: 0.6; }
  100% { transform: scale(0.8) translate(-10px, 15px); opacity: 0.4; }
}
@keyframes wcf-anticb {
  0% { transform: scale(0.8) rotate(0deg); opacity: 0.4; }
  50% { transform: scale(1.2) rotate(10deg); opacity: 0.7; }
  100% { transform: scale(0.9) rotate(-5deg); opacity: 0.5; }
}
@keyframes wcf-tremble {
  0%,100% { transform: translate(0,0); }
  10% { transform: translate(-1px, 1px); }
  20% { transform: translate(2px, -1px); }
  30% { transform: translate(-1px, -2px); }
  40% { transform: translate(1px, 2px); }
  50% { transform: translate(-2px, 1px); }
  60% { transform: translate(1px, -1px); }
  70% { transform: translate(-1px, 2px); }
  80% { transform: translate(2px, -2px); }
  90% { transform: translate(-2px, 1px); }
}

/* hand-on-breast */
.scn-hand-on-breast {
  background:
    linear-gradient(180deg, #12080a 0%, #241016 40%, #361622 70%, #12080a 100%),
    radial-gradient(ellipse at 50% 50%, #4a1e28 0%, transparent 60%);
}
.scn-hand-on-breast .torso {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 40%, #6a2a2a 0%, #2a1218 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hob-torso 6s ease-in-out infinite;
  box-shadow: inset 0 -10px 20px #0d0508;
}
.scn-hand-on-breast .hand-ram {
  position: absolute; bottom: 35%; left: 46%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #5a2020 0%, #3a1216 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 60% 60%;
  transform-origin: 50% 100%;
  animation: hob-hand 2.2s ease-in-out infinite alternate;
  box-shadow: 0 0 15px #4a1a1a;
}
.scn-hand-on-breast .heart-beat {
  position: absolute; bottom: 38%; left: 48%; width: 5%; height: 5%;
  background: radial-gradient(circle, #802030 0%, transparent 70%);
  border-radius: 50%;
  animation: hob-heart 1.2s ease-in-out infinite;
  box-shadow: 0 0 30px #802030, 0 0 60px #601828;
}
.scn-hand-on-breast .arm-line {
  position: absolute; bottom: 40%; left: 50%; width: 12%; height: 4%;
  background: linear-gradient(180deg, #4a1a1a 0%, #2a1018 100%);
  border-radius: 40% 20% 20% 40% / 50% 50%;
  transform-origin: right center;
  animation: hob-arm 2.2s ease-in-out infinite alternate;
}
.scn-hand-on-breast .ivory-wall {
  position: absolute; bottom: 25%; left: 42%; width: 16%; height: 2%;
  background: linear-gradient(90deg, #d4c0a0 0%, #b8a484 50%, #d4c0a0 100%);
  border-radius: 30%;
  opacity: 0.3;
  box-shadow: 0 0 10px #b8a484;
  animation: hob-ivory 6s ease-in-out infinite;
}
.scn-hand-on-breast .rage-burst {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 50% 80%, #c04020 0%, transparent 70%);
  opacity: 0.2;
  animation: hob-rage 4s ease-in-out infinite alternate;
  pointer-events: none;
}
.scn-hand-on-breast .pulse-ring {
  position: absolute; bottom: 38%; left: 48%; width: 0%; height: 0%;
  border: 2px solid rgba(128,32,48,0.5);
  border-radius: 50%;
  animation: hob-pulse 1.2s ease-out infinite;
}
@keyframes hob-torso {
  0%,100% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(2deg) scale(1.02); }
  50% { transform: rotate(-1deg) scale(0.98); }
  75% { transform: rotate(1deg) scale(1.01); }
}
@keyframes hob-hand {
  0% { transform: rotate(5deg) translateY(0) scale(1); }
  50% { transform: rotate(-8deg) translateY(-4px) scale(1.1); }
  100% { transform: rotate(3deg) translateY(2px) scale(0.95); }
}
@keyframes hob-heart {
  0%,100% { transform: scale(0.8); opacity: 0.7; }
  20% { transform: scale(1.3); opacity: 1; }
  40% { transform: scale(1); opacity: 0.8; }
  60% { transform: scale(1.2); opacity: 0.9; }
  80% { transform: scale(0.9); opacity: 0.7; }
}
@keyframes hob-arm {
  0% { transform: rotate(-10deg) scaleX(0.9); }
  50% { transform: rotate(15deg) scaleX(1.1); }
  100% { transform: rotate(-5deg) scaleX(0.95); }
}
@keyframes hob-ivory {
  0%,100% { transform: scaleX(1); opacity: 0.2; }
  50% { transform: scaleX(1.3); opacity: 0.4; }
}
@keyframes hob-rage {
  0% { transform: scale(0.5); opacity: 0.1; }
  50% { transform: scale(1.2); opacity: 0.3; }
  100% { transform: scale(0.8); opacity: 0.15; }
}
@keyframes hob-pulse {
  0% { width: 0%; height: 0%; opacity: 1; }
  100% { width: 30%; height: 30%; opacity: 0; }
}

/* ===== invocation-time-4 ===== */
.scn-invocation-time-4 {
  background: linear-gradient(180deg, #0a0a1e 0%, #141426 30%, #1a1a30 60%, #10101a 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a3e 0%, transparent 70%);
}
.scn-invocation-time-4 .bg-deep {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #0e0e24 0%, #0a0a1a 40%, #060612 100%);
  animation: it4-pulse 12s ease-in-out infinite alternate;
}
.scn-invocation-time-4 .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #0f0f1a 0%, #141424 50%, #1a1a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.7);
}
.scn-invocation-time-4 .oak-tree {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 150px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 50%, #0e0804 100%);
  border-radius: 20% 20% 40% 40% / 10% 10% 60% 60%;
  transform-origin: bottom center;
  animation: it4-sway 8s ease-in-out infinite;
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
}
.scn-invocation-time-4 .oak-tree::before {
  content: ''; position: absolute; top: -40px; left: -20px; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #2a1a12 0%, transparent 70%);
  border-radius: 50%;
}
.scn-invocation-time-4 .lantern {
  position: absolute; bottom: 38%; left: 38%; width: 12px; height: 18px;
  background: radial-gradient(circle, #c89848 0%, #a07030 60%, #402010 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 24px 6px #b08040, 0 0 48px 12px rgba(176,128,64,0.3);
  animation: it4-lantern 4s ease-in-out infinite alternate;
}
.scn-invocation-time-4 .tiger-figure {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a05 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%;
  animation: it4-stalk 6s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-invocation-time-4 .sparkle {
  position: absolute; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffe8a0 0%, transparent 100%);
  border-radius: 50%;
  animation: it4-sparkle 5s ease-in-out infinite;
}
.scn-invocation-time-4 .sparkle-a { top: 20%; left: 60%; animation-delay: 0s; }
.scn-invocation-time-4 .sparkle-b { top: 40%; left: 20%; animation-delay: 2.5s; }

@keyframes it4-pulse { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes it4-sway {
  0% { transform: rotate(-2deg) }
  50% { transform: rotate(2deg) translateY(-2px) }
  100% { transform: rotate(-1deg) }
}
@keyframes it4-lantern {
  0% { box-shadow: 0 0 18px 3px #b08040, 0 0 36px 6px rgba(176,128,64,0.2); opacity: 0.8 }
  50% { box-shadow: 0 0 30px 8px #e0a850, 0 0 60px 16px rgba(224,168,80,0.4); opacity: 1 }
  100% { box-shadow: 0 0 22px 5px #b08040, 0 0 40px 10px rgba(176,128,64,0.3); opacity: 0.9 }
}
@keyframes it4-stalk {
  0% { transform: translateX(0) translateY(0) rotate(-5deg) scaleX(1) }
  25% { transform: translateX(10px) translateY(-3px) rotate(3deg) scaleX(0.95) }
  50% { transform: translateX(20px) translateY(0) rotate(-2deg) scaleX(1) }
  75% { transform: translateX(30px) translateY(-2px) rotate(4deg) scaleX(0.95) }
  100% { transform: translateX(40px) translateY(0) rotate(-1deg) scaleX(1) }
}
@keyframes it4-sparkle {
  0% { opacity: 0; transform: scale(0.5) translateY(0) }
  20% { opacity: 1; transform: scale(1.2) translateY(-10px) }
  50% { opacity: 0.8; transform: scale(0.8) translateY(-20px) }
  80% { opacity: 0.3; transform: scale(0.4) translateY(-30px) }
  100% { opacity: 0; transform: scale(0.2) translateY(-40px) }
}

/* ===== invocation-time-5 ===== */
.scn-invocation-time-5 {
  background: linear-gradient(180deg, #0a0a1a 0%, #14142a 30%, #1a1a30 60%, #0e0e1e 100%),
              radial-gradient(ellipse at 50% 80%, #1e1e38 0%, transparent 70%);
}
.scn-invocation-time-5 .bg-mid {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0e22 0%, #0a0a18 50%, #050510 100%);
  animation: it5-fade 15s ease-in-out infinite alternate;
}
.scn-invocation-time-5 .stone {
  position: absolute; bottom: 30%; left: 35%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a28 50%, #0e0e16 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6), 0 4px 10px rgba(0,0,0,0.4);
  animation: it5-stone 10s ease-in-out infinite alternate;
}
.scn-invocation-time-5 .drip {
  position: absolute; top: 20%; left: 50%; width: 3px; height: 8px;
  background: linear-gradient(180deg, rgba(200,220,255,0.8) 0%, rgba(100,140,200,0.6) 100%);
  border-radius: 50%;
  animation: it5-drip 4s ease-in-out infinite;
  transform-origin: top center;
}
.scn-invocation-time-5 .splash {
  position: absolute; bottom: 33%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(180,200,255,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: it5-splash 3s ease-in-out infinite;
}
.scn-invocation-time-5 .figure {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: it5-figure 8s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-invocation-time-5 .glimmer {
  position: absolute; top: 15%; right: 30%; width: 6px; height: 6px;
  background: radial-gradient(circle, #a0c0e0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(160,192,224,0.3);
  animation: it5-glimmer 6s ease-in-out infinite alternate;
}

@keyframes it5-fade { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes it5-stone {
  0% { transform: translateY(0) rotate(-3deg) }
  50% { transform: translateY(-5px) rotate(3deg) }
  100% { transform: translateY(0) rotate(-2deg) }
}
@keyframes it5-drip {
  0% { transform: translateY(0) scaleY(1); opacity: 1 }
  40% { transform: translateY(100px) scaleY(2); opacity: 0.8 }
  50% { transform: translateY(120px) scaleY(0.2); opacity: 0 }
  100% { transform: translateY(0) scaleY(1); opacity: 0 }
}
@keyframes it5-splash {
  0% { transform: scale(0.3); opacity: 0.8 }
  50% { transform: scale(1.5); opacity: 0.3 }
  100% { transform: scale(0.8); opacity: 0 }
}
@keyframes it5-figure {
  0% { transform: translateX(0) rotate(-2deg) }
  25% { transform: translateX(-5px) translateY(-1px) rotate(2deg) }
  50% { transform: translateX(-10px) translateY(0) rotate(-1deg) }
  75% { transform: translateX(-15px) translateY(-1px) rotate(3deg) }
  100% { transform: translateX(-20px) rotate(0) }
}
@keyframes it5-glimmer {
  0% { opacity: 0.2; transform: scale(1) }
  50% { opacity: 1; transform: scale(1.5) rotate(30deg) }
  100% { opacity: 0.4; transform: scale(0.8) rotate(-30deg) }
}

/* ===== curse-tarquin-1 ===== */
.scn-curse-tarquin-1 {
  background: linear-gradient(180deg, #0a0a1e 0%, #10102c 30%, #14142e 60%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 120%, #1a1a3e 0%, transparent 70%);
}
.scn-curse-tarquin-1 .sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0e28 0%, #0a0a1a 50%, #050510 100%);
  animation: ct1-sky 20s ease-in-out infinite alternate;
}
.scn-curse-tarquin-1 .moon {
  position: absolute; top: 12%; right: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle, #4a4a6a 0%, #2a2a4a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(74,74,106,0.4);
  animation: ct1-moon 8s ease-in-out infinite alternate;
}
.scn-curse-tarquin-1 .bush {
  position: absolute; bottom: 20%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, #0a100a 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ct1-bush 7s ease-in-out infinite alternate;
}
.scn-curse-tarquin-1 .bush-left { left: 15%; transform-origin: bottom center; }
.scn-curse-tarquin-1 .bush-right { right: 15%; animation-delay: 3.5s; transform-origin: bottom center; }
.scn-curse-tarquin-1 .shadow-figure {
  position: absolute; bottom: 18%; left: 45%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 50% 50%;
  animation: ct1-run 4s linear infinite;
  transform-origin: bottom center;
}
.scn-curse-tarquin-1 .devil-face {
  position: absolute; bottom: 25%; left: 20%; width: 30px; height: 25px;
  background: radial-gradient(ellipse at 50% 40%, #2a0a0a 0%, #1a0505 60%, transparent 100%);
  border-radius: 50% 50% 40% 40%;
  filter: blur(1px);
  animation: ct1-devil 3s ease-in-out infinite alternate;
}

@keyframes ct1-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes ct1-moon {
  0% { transform: translateX(0) scale(1); opacity: 0.6 }
  50% { transform: translateX(5px) scale(1.1); opacity: 1 }
  100% { transform: translateX(-3px) scale(0.95); opacity: 0.7 }
}
@keyframes ct1-bush {
  0% { transform: scaleX(1) rotate(-5deg); filter: blur(2px) }
  50% { transform: scaleX(1.2) rotate(5deg); filter: blur(1px) }
  100% { transform: scaleX(0.9) rotate(-2deg); filter: blur(3px) }
}
@keyframes ct1-run {
  0% { transform: translateX(0) translateY(0) rotate(-3deg) scaleX(1) }
  20% { transform: translateX(15px) translateY(-2px) rotate(2deg) scaleX(0.95) }
  40% { transform: translateX(30px) translateY(0) rotate(-1deg) scaleX(1) }
  60% { transform: translateX(45px) translateY(-2px) rotate(3deg) scaleX(0.95) }
  80% { transform: translateX(60px) translateY(0) rotate(-2deg) scaleX(1) }
  100% { transform: translateX(75px) translateY(-1px) rotate(1deg) scaleX(0.95) }
}
@keyframes ct1-devil {
  0% { transform: scale(0.8) translateY(0); opacity: 0.4 }
  50% { transform: scale(1.3) translateY(-5px); opacity: 0.9 }
  100% { transform: scale(0.7) translateY(3px); opacity: 0.3 }
}

/* ===== curse-tarquin-2 ===== */
.scn-curse-tarquin-2 {
  background: linear-gradient(180deg, #0a0a1a 0%, #12122a 30%, #181830 60%, #0e0e1e 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a32 0%, transparent 70%);
}
.scn-curse-tarquin-2 .bg-court {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0c0c20 0%, #080818 50%, #040410 100%);
  animation: ct2-bg 18s ease-in-out infinite alternate;
}
.scn-curse-tarquin-2 .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0a0a14 0%, #121222 50%, #1a1a2a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.7);
}
.scn-curse-tarquin-2 .crowd {
  position: absolute; bottom: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ct2-crowd 5s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-curse-tarquin-2 .crowd-left { left: 20%; animation-delay: 0s; }
.scn-curse-tarquin-2 .crowd-right { right: 20%; animation-delay: 2.5s; }
.scn-curse-tarquin-2 .stone {
  position: absolute; width: 8px; height: 8px;
  background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50%;
  animation: ct2-stone 3s ease-in-out infinite;
  top: 20%;
}
.scn-curse-tarquin-2 .stone-a { left: 35%; animation-delay: 0s; }
.scn-curse-tarquin-2 .stone-b { left: 55%; animation-delay: 1.5s; }
.scn-curse-tarquin-2 .victim {
  position: absolute; bottom: 22%; left: 50%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform: translateX(-50%);
  animation: ct2-victim 6s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-curse-tarquin-2 .tears {
  position: absolute; bottom: 46%; left: 50%; width: 3px; height: 6px;
  background: linear-gradient(180deg, rgba(180,200,255,0.7) 0%, rgba(100,140,200,0.4) 100%);
  border-radius: 50%;
  animation: ct2-tears 4s ease-in-out infinite;
  transform-origin: top center;
}

@keyframes ct2-bg { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ct2-crowd {
  0% { transform: translateY(0) rotate(-2deg) scaleY(1) }
  50% { transform: translateY(-5px) rotate(4deg) scaleY(1.1) }
  100% { transform: translateY(0) rotate(-1deg) scaleY(0.95) }
}
@keyframes ct2-stone {
  0% { transform: translateY(0) scale(1); opacity: 1 }
  40% { transform: translateY(80px) scale(1.2); opacity: 0.8 }
  60% { transform: translateY(100px) scale(0.5); opacity: 0 }
  100% { transform: translateY(0) scale(1); opacity: 0 }
}
@keyframes ct2-victim {
  0% { transform: translateX(-50%) rotate(0) scale(1) }
  25% { transform: translateX(-50%) rotate(-5deg) scale(0.95) }
  50% { transform: translateX(-50%) rotate(3deg) scale(1) }
  75% { transform: translateX(-50%) rotate(-2deg) scale(0.95) }
  100% { transform: translateX(-50%) rotate(0) scale(1) }
}
@keyframes ct2-tears {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.8 }
  30% { transform: translateX(-50%) translateY(20px) scaleY(2); opacity: 0.6 }
  50% { transform: translateX(-50%) translateY(30px) scaleY(0.2); opacity: 0 }
  100% { transform: translateX(-50%) scaleY(1); opacity: 0 }
}

.scn-collatinus-dreams {
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 30%, #1a0e08 70%, #0a0503 100%),
              radial-gradient(ellipse at 20% 60%, #c8623a 0%, transparent 60%);
}
.scn-collatinus-dreams .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2010 0%, #1a1008 100%);
}
.scn-collatinus-dreams .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%);
  opacity: 0.8;
  animation: cd-wall 12s ease-in-out infinite alternate;
}
.scn-collatinus-dreams .window {
  position: absolute; top: 10%; left: 60%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #d08050 0%, #682a1a 60%, transparent 70%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 0 80px 20px #b85a30;
  animation: cd-window 8s ease-in-out infinite alternate;
}
.scn-collatinus-dreams .bed {
  position: absolute; bottom: 15%; left: 20%; width: 35%; height: 18%;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2818 100%);
  border-radius: 10%;
  box-shadow: 0 -8px 30px #2a1a0e;
}
.scn-collatinus-dreams .figure-sleeping {
  position: absolute; bottom: 18%; left: 28%; width: 16%; height: 20%;
  background: radial-gradient(ellipse at 50% 30%, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cd-figure 5s ease-in-out infinite alternate;
}
.scn-collatinus-dreams .dream-orb {
  position: absolute; top: 25%; left: 40%; width: 12%; height: 16%;
  background: radial-gradient(circle, #ffb05a 0%, #d08030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #c85a20;
  animation: cd-orb 6s ease-in-out infinite alternate;
}
.scn-collatinus-dreams .fire-glow {
  position: absolute; bottom: 12%; left: 5%; width: 30%; height: 30%;
  background: radial-gradient(circle, #ff9040 0%, #c85a20 40%, transparent 70%);
  mix-blend-mode: screen;
  animation: cd-fire 3s ease-in-out infinite alternate;
}
@keyframes cd-wall { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.7; } }
@keyframes cd-window { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.98); } }
@keyframes cd-figure { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(1px) rotate(2deg); } }
@keyframes cd-orb { 0% { transform: translate(0, 0) scale(0.95); } 50% { transform: translate(5px, -8px) scale(1.05); } 100% { transform: translate(-3px, 4px) scale(0.98); } }
@keyframes cd-fire { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.85; } }

.scn-excuse-invention {
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 40%, #0e0503 100%),
              radial-gradient(ellipse at 50% 70%, #a85a30 0%, transparent 80%);
}
.scn-excuse-invention .bg-shadows {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, #1a0e08 60%, #0e0503 100%);
  animation: ei-shadows 15s ease-in-out infinite alternate;
}
.scn-excuse-invention .desk {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 60%; height: 12%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 4%;
  box-shadow: 0 4px 20px #0a0503;
}
.scn-excuse-invention .book {
  position: absolute; bottom: 18%; left: 42%; width: 14%; height: 18%;
  background: linear-gradient(135deg, #6a4a2a 40%, #4a2a18 100%);
  border-radius: 6% 6% 2% 2%;
  transform: rotate(-5deg);
  animation: ei-book 7s ease-in-out infinite alternate;
}
.scn-excuse-invention .candle {
  position: absolute; bottom: 20%; left: 58%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #c8a06a 0%, #a08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 8px #e8a040;
  animation: ei-candle 4s ease-in-out infinite alternate;
}
.scn-excuse-invention .figure-hand {
  position: absolute; bottom: 15%; left: 35%; width: 10%; height: 24%;
  background: radial-gradient(ellipse at 50% 20%, #5a3a28 0%, #2a1a10 100%);
  border-radius: 30% 30% 0 0;
  transform: rotate(15deg);
  animation: ei-hand 5s ease-in-out infinite alternate;
}
.scn-excuse-invention .invention-shape {
  position: absolute; top: 25%; left: 45%; width: 20%; height: 30%;
  background: radial-gradient(circle, #ffa05a 0%, #c86a30 50%, transparent 70%);
  border-radius: 40% 60% 50% 50% / 50% 50% 50% 50%;
  box-shadow: 0 0 40px 10px #a84a1a;
  animation: ei-shape 8s ease-in-out infinite alternate;
}
.scn-excuse-invention .firelight-pool {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #e08040 0%, transparent 70%);
  mix-blend-mode: screen;
  animation: ei-pool 6s ease-in-out infinite alternate;
}
@keyframes ei-shadows { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.8; } }
@keyframes ei-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ei-candle { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.05) translateX(1px); } 100% { transform: scaleY(0.98) translateX(-1px); } }
@keyframes ei-hand { 0% { transform: rotate(15deg) translate(0, 0); } 50% { transform: rotate(20deg) translate(2px, -1px); } 100% { transform: rotate(15deg) translate(0, 0); } }
@keyframes ei-shape { 0% { transform: scale(0.95) rotate(-5deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(0.98) rotate(-3deg); } }
@keyframes ei-pool { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.1); opacity: 0.9; } 100% { transform: scale(0.95); opacity: 0.7; } }

.scn-kinsman-friend {
  background: linear-gradient(180deg, #2a1810 0%, #1a0e08 40%, #0a0503 100%),
              radial-gradient(ellipse at 50% 20%, #a85a30 0%, transparent 70%);
}
.scn-kinsman-friend .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 0 0;
}
.scn-kinsman-friend .sky-fire {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #c86030 0%, #6a2a10 60%, #1a0e08 100%);
  opacity: 0.4;
  animation: kf-sky 10s ease-in-out infinite alternate;
}
.scn-kinsman-friend .figure-left {
  position: absolute; bottom: 20%; left: 25%; width: 16%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #3a2018 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: kf-left 8s ease-in-out infinite alternate;
}
.scn-kinsman-friend .figure-right {
  position: absolute; bottom: 20%; right: 25%; width: 16%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #3a2018 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: kf-right 8s ease-in-out infinite alternate;
}
.scn-kinsman-friend .fire-pit {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 12%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, #ffb060 0%, #c85a20 60%, #1a0e08 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 60px 30px #c85a20;
  animation: kf-fire 6s ease-in-out infinite alternate;
}
.scn-kinsman-friend .ember {
  position: absolute; bottom: 20%; width: 4%; height: 4%;
  background: radial-gradient(circle, #ffd080 0%, #e08030 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px #e08030;
}
.scn-kinsman-friend .drift-1 {
  left: 48%;
  animation: kf-drift-1 6s ease-in-out infinite alternate;
}
.scn-kinsman-friend .drift-2 {
  left: 52%;
  animation: kf-drift-2 7s ease-in-out infinite alternate;
  animation-delay: -2s;
}
@keyframes kf-sky { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes kf-left { 0% { transform: rotate(-10deg) translate(0, 0); } 50% { transform: rotate(-15deg) translate(-3px, 2px); } 100% { transform: rotate(-10deg) translate(0, 0); } }
@keyframes kf-right { 0% { transform: rotate(10deg) translate(0, 0); } 50% { transform: rotate(15deg) translate(3px, 2px); } 100% { transform: rotate(10deg) translate(0, 0); } }
@keyframes kf-fire { 0% { transform: translateX(-50%) scale(0.9); } 50% { transform: translateX(-50%) scale(1.1); } 100% { transform: translateX(-50%) scale(0.95); } }
@keyframes kf-drift-1 { 0% { transform: translate(0, 0) scale(1); opacity: 0.8; } 50% { transform: translate(-10px, -15px) scale(1.3); opacity: 1; } 100% { transform: translate(0, -5px) scale(0.8); opacity: 0.5; } }
@keyframes kf-drift-2 { 0% { transform: translate(0, 0) scale(1); opacity: 0.6; } 50% { transform: translate(8px, -12px) scale(1.2); opacity: 0.9; } 100% { transform: translate(-3px, -2px) scale(0.9); opacity: 0.4; } }

.scn-shameless-justification {
  background: linear-gradient(180deg, #3a2018 0%, #1a0e08 50%, #0a0503 100%),
              radial-gradient(ellipse at 50% 0%, #c86a30 0%, transparent 80%);
}
.scn-shameless-justification .depth-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, #1a0e08 40%, #0a0503 100%);
  animation: sj-depth 14s ease-in-out infinite alternate;
}
.scn-shameless-justification .pillar {
  position: absolute; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 10%; height: 50%;
  background: linear-gradient(180deg, #5a3a28 0%, #2a1a10 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 0 20px #1a0e08;
  animation: sj-pillar 10s ease-in-out infinite alternate;
}
.scn-shameless-justification .figure-kneeling {
  position: absolute; bottom: 12%; left: 40%; width: 16%; height: 30%;
  background: radial-gradient(ellipse at 50% 40%, #3a2018 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(1.05);
  animation: sj-figure 7s ease-in-out infinite alternate;
}
.scn-shameless-justification .arm-reaching {
  position: absolute; bottom: 25%; left: 42%; width: 12%; height: 8%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1810 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-40deg);
  transform-origin: right bottom;
  animation: sj-arm 5s ease-in-out infinite alternate;
}
.scn-shameless-justification .flame-tongue {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 8%; height: 20%;
  background: radial-gradient(ellipse at 50% 80%, #ffa050 0%, #c85a20 60%, transparent 80%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 50px 20px #c85a20;
  animation: sj-flame 4s ease-in-out infinite alternate;
}
.scn-shameless-justification .shadow-self {
  position: absolute; bottom: 12%; right: 42%; width: 14%; height: 28%;
  background: radial-gradient(ellipse at 50% 40%, #1a0e08 0%, #0a0503 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.5;
  transform: scaleX(-1) translateX(0);
  animation: sj-shadow 7s ease-in-out infinite alternate;
}
.scn-shameless-justification .circle-will {
  position: absolute; top: 30%; left: 48%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffe0a0 0%, #c86020 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px #c86020;
  animation: sj-will 6s ease-in-out infinite alternate;
}
@keyframes sj-depth { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sj-pillar { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes sj-figure { 0% { transform: scale(1.05) translateY(0); } 50% { transform: scale(1.02) translateY(-3px); } 100% { transform: scale(1.05) translateY(0); } }
@keyframes sj-arm { 0% { transform: rotate(-40deg); } 50% { transform: rotate(-50deg); } 100% { transform: rotate(-40deg); } }
@keyframes sj-flame { 0% { transform: translateX(-50%) scaleY(0.9); opacity: 0.8; } 50% { transform: translateX(-50%) scaleY(1.1); opacity: 1; } 100% { transform: translateX(-50%) scaleY(0.95); opacity: 0.85; } }
@keyframes sj-shadow { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(5px); } 100% { transform: scaleX(-1) translateX(0); } }
@keyframes sj-will { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.15) rotate(180deg); } 100% { transform: scale(1) rotate(360deg); } }

/* lucrece-pleads-6 */
.scn-lucrece-pleads-6 {
  background: linear-gradient(180deg, #1a0f1a 0%, #2a1420 40%, #1a0a12 100%), radial-gradient(ellipse at 30% 80%, #3a1a2a 0%, transparent 60%);
}
.scn-lucrece-pleads-6 .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0f0810 0%, #1a0a12 100%); opacity: 0.8; animation: lp6-need 12s ease-in-out infinite alternate;
}
.scn-lucrece-pleads-6 .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(0deg, #0a0608 0%, #1a0e12 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.7); animation: lp6-ground 14s ease-in-out infinite alternate;
}
.scn-lucrece-pleads-6 .figure {
  position: absolute; bottom: 22%; left: 18%; width: 40px; height: 90px; background: linear-gradient(180deg, #2a1820 0%, #0f0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lp6-kneel 4s ease-in-out infinite;
}
.scn-lucrece-pleads-6 .arm {
  position: absolute; bottom: 55%; left: 30%; width: 8px; height: 50px; background: linear-gradient(180deg, #2a1820 0%, #1a0e12 100%); border-radius: 40%; transform-origin: bottom; transform: rotate(20deg); animation: lp6-arm 3s ease-in-out infinite;
}
.scn-lucrece-pleads-6 .sword {
  position: absolute; bottom: 20%; right: 25%; width: 6px; height: 80px; background: linear-gradient(180deg, #706060 0%, #3a2a2a 100%); border-radius: 2px; box-shadow: inset 0 0 6px rgba(100,70,70,.4); transform: rotate(8deg); animation: lp6-sword 2.5s ease-in-out infinite;
}
.scn-lucrece-pleads-6 .candle {
  position: absolute; bottom: 40%; left: 50%; width: 6px; height: 12px; background: linear-gradient(180deg, #c8a068 0%, #8a6030 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px rgba(200,160,100,.3); animation: lp6-candle 1.8s ease-in-out infinite alternate;
}
@keyframes lp6-need { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes lp6-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes lp6-kneel { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lp6-arm { 0% { transform: rotate(20deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(18deg) } }
@keyframes lp6-sword { 0% { transform: rotate(8deg) } 50% { transform: rotate(11deg) } 100% { transform: rotate(6deg) } }
@keyframes lp6-candle { 0% { box-shadow: 0 0 15px 6px rgba(200,160,100,.2) } 50% { box-shadow: 0 0 30px 12px rgba(200,160,100,.4) } 100% { box-shadow: 0 0 18px 8px rgba(200,160,100,.25) } }

/* lucrece-pleads-7 */
.scn-lucrece-pleads-7 {
  background: linear-gradient(180deg, #0f0812 0%, #1a0e1a 40%, #0a0610 100%), radial-gradient(ellipse at 50% 120%, #2a1a2a 0%, transparent 70%);
}
.scn-lucrece-pleads-7 .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1220 0%, #0a0610 100%); opacity:0.6; animation: lp7-deep 15s ease-in-out infinite alternate;
}
.scn-lucrece-pleads-7 .bg-mid {
  position: absolute; inset: 0 0 30% 0; background: radial-gradient(ellipse at 50% 100%, #2a1a2a 0%, transparent 80%); animation: lp7-mid 12s ease-in-out infinite alternate;
}
.scn-lucrece-pleads-7 .figure {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1220 0%, #0a0610 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; animation: lp7-body 6s ease-in-out infinite;
}
.scn-lucrece-pleads-7 .hand-left {
  position: absolute; bottom: 55%; left: 32%; width: 12px; height: 30px; background: linear-gradient(180deg, #2a1a2a 0%, #0f0812 100%); border-radius: 50% 50% 40% 40%; transform-origin: bottom; transform: rotate(-30deg); animation: lp7-hand-l 3s ease-in-out infinite;
}
.scn-lucrece-pleads-7 .hand-right {
  position: absolute; bottom: 52%; right: 30%; width: 12px; height: 32px; background: linear-gradient(180deg, #2a1a2a 0%, #0f0812 100%); border-radius: 50% 50% 40% 40%; transform-origin: bottom; transform: rotate(25deg); animation: lp7-hand-r 3.5s ease-in-out infinite alternate;
}
@keyframes lp7-deep { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.55 } }
@keyframes lp7-mid { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.45 } }
@keyframes lp7-body { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-3px) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0deg) } 75% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes lp7-hand-l { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-35deg) translateY(-2px) } 100% { transform: rotate(-28deg) } }
@keyframes lp7-hand-r { 0% { transform: rotate(25deg) } 50% { transform: rotate(30deg) translateY(-3px) } 100% { transform: rotate(22deg) } }

/* tarquin-refuses-1 */
.scn-tarquin-refuses-1 {
  background: linear-gradient(180deg, #1a0a08 0%, #2a1208 40%, #1a0604 100%), radial-gradient(ellipse at 70% 100%, #4a1a0a 0%, transparent 60%);
}
.scn-tarquin-refuses-1 .bg-fire {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 80%, #3a1a0a 0%, #1a0a08 100%); opacity:0.9; animation: tq1-firebg 10s ease-in-out infinite alternate;
}
.scn-tarquin-refuses-1 .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(0deg, #0a0402 0%, #1a0a06 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.8); animation: tq1-ground 18s ease-in-out infinite alternate;
}
.scn-tarquin-refuses-1 .figure {
  position: absolute; bottom: 18%; left: 35%; width: 50px; height: 80px; background: linear-gradient(180deg, #0a0402 0%, #1a0a06 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tq1-figure 4s ease-in-out infinite;
}
.scn-tarquin-refuses-1 .flame-a {
  position: absolute; bottom: 45%; right: 20%; width: 20px; height: 40px; background: radial-gradient(ellipse at 50% 0%, #c86030 0%, #6a2010 100%); border-radius: 50% 50% 20% 20%; filter: blur(2px); animation: tq1-flame-a 2s ease-in-out infinite alternate;
}
.scn-tarquin-refuses-1 .flame-b {
  position: absolute; bottom: 50%; right: 30%; width: 14px; height: 30px; background: radial-gradient(ellipse at 50% 0%, #e08040 0%, #8a3018 100%); border-radius: 50% 50% 20% 20%; filter: blur(3px); animation: tq1-flame-b 2.7s ease-in-out infinite alternate;
}
.scn-tarquin-refuses-1 .ember {
  position: absolute; bottom: 70%; right: 25%; width: 4px; height: 4px; background: #ffa060; border-radius: 50%; box-shadow: 0 0 10px 4px rgba(255,160,96,.6); animation: tq1-ember 3s ease-in-out infinite;
}
@keyframes tq1-firebg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes tq1-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(2px) } }
@keyframes tq1-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tq1-flame-a { 0% { transform: scaleX(1) scaleY(1) translateY(0); opacity:0.8 } 50% { transform: scaleX(1.2) scaleY(1.1) translateY(-5px); opacity:1 } 100% { transform: scaleX(0.9) scaleY(0.95) translateY(0); opacity:0.7 } }
@keyframes tq1-flame-b { 0% { transform: scaleX(1) scaleY(1) translateY(0); opacity:0.6 } 50% { transform: scaleX(0.8) scaleY(1.2) translateY(-3px); opacity:1 } 100% { transform: scaleX(1.1) scaleY(0.9) translateY(0); opacity:0.65 } }
@keyframes tq1-ember { 0% { transform: translateY(0) scale(1); opacity:0.5 } 50% { transform: translateY(-10px) scale(1.5); opacity:1 } 100% { transform: translateY(0) scale(1); opacity:0.5 } }

/* lucrece-argues-1 */
.scn-lucrece-argues-1 {
  background: linear-gradient(180deg, #0a0a1a 0%, #12122a 40%, #08081a 100%), radial-gradient(ellipse at 50% 0%, #1a1a3a 0%, transparent 70%);
}
.scn-lucrece-argues-1 .bg-ocean {
  position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #0f1220 0%, #1a2030 100%); animation: la1-ocean 20s ease-in-out infinite alternate;
}
.scn-lucrece-argues-1 .sky {
  position: absolute; inset: 0 0 60% 0; background: radial-gradient(ellipse at 50% 100%, #2a2a4a 0%, transparent 80%); animation: la1-sky 15s ease-in-out infinite alternate;
}
.scn-lucrece-argues-1 .puddle {
  position: absolute; bottom: 10%; left: 30%; width: 120px; height: 40px; background: radial-gradient(ellipse at 50% 50%, #1a2030 0%, #0a1020 100%); border-radius: 50%; box-shadow: inset 0 4px 12px rgba(0,0,0,.6); animation: la1-puddle 12s ease-in-out infinite alternate;
}
.scn-lucrece-argues-1 .reflection {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 50px; background: linear-gradient(180deg, #2a2a4a 0%, #1a2440 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(180deg); opacity:0.6; animation: la1-reflect 6s ease-in-out infinite;
}
.scn-lucrece-argues-1 .wave-1 {
  position: absolute; bottom: 32%; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, transparent 0%, #1a2840 100%); border-radius: 50%; filter: blur(4px); animation: la1-wave1 8s ease-in-out infinite alternate;
}
.scn-lucrece-argues-1 .wave-2 {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 12%; background: linear-gradient(180deg, transparent 0%, #2a3850 100%); border-radius: 50%; filter: blur(5px); animation: la1-wave2 11s ease-in-out infinite alternate reverse;
}
@keyframes la1-ocean { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes la1-sky { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.55 } }
@keyframes la1-puddle { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.05) translateY(-2px) } 100% { transform: scaleY(0.95) translateY(1px) } }
@keyframes la1-reflect { 0% { transform: rotate(180deg) scaleY(1) } 50% { transform: rotate(180deg) scaleY(1.1) translateY(-3px) } 100% { transform: rotate(180deg) scaleY(0.95) translateY(1px) } }
@keyframes la1-wave1 { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-15px) scaleY(1.2) } 100% { transform: translateX(10px) scaleY(0.9) } }
@keyframes la1-wave2 { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(10px) scaleY(1.3) } 100% { transform: translateX(-20px) scaleY(0.85) } }

/* tarquin-departs-ardea - tense, sunlit departure */
.scn-tarquin-departs-ardea {
  background: linear-gradient(180deg, #f9e4b7 0%, #d9b982 40%, #8c6b4a 100%), radial-gradient(ellipse at 60% 30%, #fce8c0 0%, transparent 60%);
}
.scn-tarquin-departs-ardea .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f6d9a3 0%, #e8c48a 60%, #b8915a 100%);
  animation: tda-sky 8s ease-in-out infinite alternate;
}
.scn-tarquin-departs-ardea .dust {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,170,120,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: tda-dust 4s ease-in-out infinite alternate;
}
.scn-tarquin-departs-ardea .walls {
  position: absolute; bottom: 28%; left: 5%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #a08a6e 0%, #7a684c 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: tda-walls 6s ease-in-out infinite alternate;
}
.scn-tarquin-departs-ardea .horse {
  position: absolute; bottom: 22%; left: 40%; width: 70px; height: 45px;
  background: linear-gradient(180deg, #5c4a36 0%, #3b2f22 100%);
  border-radius: 50% 60% 40% 40% / 40% 40% 60% 60%;
  transform-origin: 30% 100%;
  animation: tda-horse 2s ease-in-out infinite;
}
.scn-tarquin-departs-ardea .rider {
  position: absolute; bottom: 42%; left: 44%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #3b2f22 0%, #1f1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tda-rider 2s ease-in-out infinite;
}
.scn-tarquin-departs-ardea .cloak {
  position: absolute; bottom: 39%; left: 42%; width: 24px; height: 20px;
  background: linear-gradient(180deg, #7a4e3a 0%, #5a3424 100%);
  border-radius: 30% 30% 60% 60% / 40% 40% 60% 60%;
  filter: blur(1px);
  animation: tda-cloak 2s ease-in-out infinite alternate;
}
@keyframes tda-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes tda-dust { 0% { transform: translateX(-5px) scale(1) } 50% { transform: translateX(10px) scale(1.1) } 100% { transform: translateX(-5px) scale(1) } }
@keyframes tda-walls { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tda-horse { 0% { transform: translateX(0) rotate(-1deg) scaleX(1) } 25% { transform: translateX(8px) rotate(1deg) scaleX(1.02) } 50% { transform: translateX(16px) rotate(-1deg) scaleX(1) } 75% { transform: translateX(24px) rotate(1deg) scaleX(1.02) } 100% { transform: translateX(32px) rotate(0) scaleX(1) } }
@keyframes tda-rider { 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 tda-cloak { 0% { transform: translateX(0) rotate(-5deg) scaleY(1) } 50% { transform: translateX(8px) rotate(3deg) scaleY(1.1) } 100% { transform: translateX(16px) rotate(-5deg) scaleY(1) } }

/* collatine-unwise-boast - tense, sunlit boasting in camp */
.scn-collatine-unwise-boast {
  background: linear-gradient(180deg, #ffebc0 0%, #d6b882 40%, #8f6e4a 100%), radial-gradient(ellipse at 50% 80%, #f2d7a0 0%, transparent 70%);
}
.scn-collatine-unwise-boast .tent {
  position: absolute; bottom: 20%; left: 25%; width: 40%; height: 45%;
  background: linear-gradient(135deg, #b8a08a 0%, #9a846c 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
  animation: cwb-tent 12s ease-in-out infinite alternate;
}
.scn-collatine-unwise-boast .tent-ropes {
  position: absolute; bottom: 60%; left: 25%; width: 40%; height: 10%;
  background: linear-gradient(90deg, transparent 20%, #7a684c 22%, #7a684c 28%, transparent 30%);
  background-size: 40% 100%;
  animation: cwb-ropes 6s ease-in-out infinite alternate;
}
.scn-collatine-unwise-boast .figure-a {
  position: absolute; bottom: 30%; left: 32%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cwb-figure-a 3s ease-in-out infinite;
}
.scn-collatine-unwise-boast .figure-b {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2e22 0%, #1f1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cwb-figure-b 3.5s ease-in-out infinite reverse;
}
.scn-collatine-unwise-boast .shield {
  position: absolute; bottom: 45%; left: 44%; width: 24px; height: 28px;
  background: radial-gradient(circle at 50% 40%, #c8b090 0%, #a08a6e 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: cwb-shield 4s ease-in-out infinite alternate;
}
.scn-collatine-unwise-boast .sunburst {
  position: absolute; top: 5%; left: 40%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffe680 0%, #ffcc40 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: cwb-sun 15s ease-in-out infinite;
}
@keyframes cwb-tent { 0% { transform: rotate(-1deg) scaleY(1) } 50% { transform: rotate(1deg) scaleY(1.02) } 100% { transform: rotate(-1deg) scaleY(1) } }
@keyframes cwb-ropes { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes cwb-figure-a { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cwb-figure-b { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cwb-shield { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes cwb-sun { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.6 } }

/* peerless-dame-vaunt - warm, sunlit praise of beauty */
.scn-peerless-dame-vaunt {
  background: linear-gradient(180deg, #ffda8a 0%, #f5c06a 30%, #e0a44a 60%, #c6853a 100%);
}
.scn-peerless-dame-vaunt .golden-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffeac0 0%, #ffd080 40%, #f5b850 100%);
  animation: pdv-sky 12s ease-in-out infinite alternate;
}
.scn-peerless-dame-vaunt .garden-wall {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d4b088 0%, #a6885a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: pdv-wall 20s ease-in-out infinite alternate;
}
.scn-peerless-dame-vaunt .rose-bush {
  position: absolute; bottom: 40%; left: 20%; width: 30%; height: 18%;
  background: radial-gradient(ellipse at 50% 100%, #9a6a3a 0%, transparent 70%);
  filter: blur(2px);
  animation: pdv-rose 6s ease-in-out infinite;
}
.scn-peerless-dame-vaunt .silhouette {
  position: absolute; bottom: 30%; left: 45%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f1206 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pdv-silhouette 8s ease-in-out infinite;
}
.scn-peerless-dame-vaunt .jewel {
  position: absolute; bottom: 52%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffe080 0%, #d4a040 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,208,96,0.5);
  animation: pdv-jewel 3s ease-in-out infinite alternate;
}
.scn-peerless-dame-vaunt .glow {
  position: absolute; bottom: 35%; left: 35%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,220,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: pdv-glow 5s ease-in-out infinite alternate;
}
@keyframes pdv-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes pdv-wall { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes pdv-rose { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }
@keyframes pdv-silhouette { 0% { transform: translateX(-2px) rotate(-3deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(2px) rotate(3deg) } }
@keyframes pdv-jewel { 0% { box-shadow: 0 0 16px 4px #d4a040, 0 0 32px 10px rgba(212,160,64,0.4); opacity: 0.9 } 50% { box-shadow: 0 0 28px 8px #ffd060, 0 0 56px 18px rgba(255,208,96,0.6); opacity: 1 } 100% { box-shadow: 0 0 20px 5px #d4a040, 0 0 40px 12px rgba(212,160,64,0.5); opacity: 0.9 } }
@keyframes pdv-glow { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }

/* beauty-self-persuasion - calm, sunlit scene of serene beauty */
.scn-beauty-self-persuasion {
  background: linear-gradient(180deg, #f2e5c6 0%, #d4c099 40%, #a68f6a 100%), radial-gradient(ellipse at 50% 20%, #faf0d8 0%, transparent 60%);
}
.scn-beauty-self-persuasion .peaceful-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffeac0 0%, #f2d7a0 60%, #d4b880 100%);
  animation: bsp-sky 20s ease-in-out infinite alternate;
}
.scn-beauty-self-persuasion .pool {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #4a7a8a 0%, #2a5a6a 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5), 0 4px 12px rgba(0,0,0,0.3);
  animation: bsp-pool 15s ease-in-out infinite alternate;
}
.scn-beauty-self-persuasion .pool-ripple {
  position: absolute; bottom: 30%; left: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,255,255,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: bsp-ripple 6s ease-in-out infinite;
}
.scn-beauty-self-persuasion .tree {
  position: absolute; bottom: 35%; left: 65%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 100%, #5a7a3a 0%, #3a5a2a 60%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: bsp-tree 25s ease-in-out infinite alternate;
}
.scn-beauty-self-persuasion .figure-profile {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 40% 50% 40% 40% / 50% 60% 40% 50%;
  transform-origin: bottom center;
  animation: bsp-figure 10s ease-in-out infinite;
}
.scn-beauty-self-persuasion .narcissus {
  position: absolute; bottom: 12%; left: 35%; width: 12px; height: 18px;
  background: radial-gradient(ellipse at 50% 0%, #e0c080 0%, #c0a060 100%);
  border-radius: 50% 50% 0 0;
  animation: bsp-narcissus 8s ease-in-out infinite alternate;
}
@keyframes bsp-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes bsp-pool { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes bsp-ripple { 0% { transform: scale(0) rotate(0deg); opacity: 1 } 25% { transform: scale(2) rotate(30deg); opacity: 0.7 } 50% { transform: scale(3.5) rotate(60deg); opacity: 0.4 } 75% { transform: scale(5) rotate(90deg); opacity: 0.2 } 100% { transform: scale(0) rotate(120deg); opacity: 0 } }
@keyframes bsp-tree { 0% { transform: rotate(-2deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.03) } 100% { transform: rotate(-2deg) scaleY(1) } }
@keyframes bsp-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes bsp-narcissus { 0% { transform: scaleY(0.2) } 50% { transform: scaleY(1) } 100% { transform: scaleY(0.2) } }

/* painting-lamentable-objects */
.scn-plo { background: linear-gradient(135deg, #0e0e1a 0%, #1a1a2e 30%, #2a1a1a 60%, #0a0a12 100%), radial-gradient(ellipse at 30% 70%, #3a2a2a 0%, transparent 60%); }
.scn-plo .canvas { position:absolute; inset:12% 10% 10% 12%; background: linear-gradient(180deg, #1e1a18 0%, #2a2218 40%, #1c1410 100%); border-radius:6px; box-shadow: inset 0 0 30px rgba(0,0,0,.7), 0 4px 12px rgba(0,0,0,.5); }
.scn-plo .eye { position:absolute; top:35%; left:42%; width:20px; height:24px; background: radial-gradient(circle, #f5e8d8 0%, #b8a090 30%, #1a1210 100%); border-radius:50% 50% 40% 40%; transform:rotate(-10deg); box-shadow: 0 0 8px #1a1210; animation: plo-blink 4s ease-in-out infinite; }
.scn-plo .tear1 { position:absolute; top:48%; left:44%; width:6px; height:10px; background: radial-gradient(circle, #b0a8a0 0%, #5a5048 100%); border-radius:50% 50% 40% 40%; animation: plo-drop1 4s ease-in-out infinite; animation-delay:-1s; }
.scn-plo .tear2 { position:absolute; top:50%; left:50%; width:5px; height:8px; background: radial-gradient(circle, #b0a8a0 0%, #5a5048 100%); border-radius:50% 50% 40% 40%; animation: plo-drop2 5s ease-in-out infinite; animation-delay:-2.5s; }
.scn-plo .blood { position:absolute; top:62%; left:58%; width:12px; height:14px; background: radial-gradient(circle at 40% 30%, #c8553d 0%, #a0461a 50%, #3a1a0a 100%); border-radius:50% 60% 40% 40%; box-shadow: 0 0 18px 4px rgba(168,70,26,.5); animation: plo-glow 3s ease-in-out infinite; }
.scn-plo .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 70%, rgba(0,0,0,.4) 0%, transparent 70%); animation: plo-amble 8s ease-in-out infinite alternate; }
@keyframes plo-blink { 0%,100% { transform:scaleY(1) rotate(-10deg); } 48% { transform:scaleY(1) rotate(-10deg); } 50% { transform:scaleY(0.2) rotate(-10deg); } 52% { transform:scaleY(1) rotate(-10deg); } }
@keyframes plo-drop1 { 0% { transform:translateY(0); opacity:1; } 40% { transform:translateY(20px); opacity:.9; } 100% { transform:translateY(60px); opacity:0; } }
@keyframes plo-drop2 { 0% { transform:translateY(0); opacity:.8; } 30% { transform:translateY(25px); opacity:.7; } 100% { transform:translateY(70px); opacity:0; } }
@keyframes plo-glow { 0% { box-shadow: 0 0 12px 2px rgba(168,70,26,.3); } 50% { box-shadow: 0 0 30px 8px rgba(168,70,26,.7); } 100% { box-shadow: 0 0 16px 3px rgba(168,70,26,.4); } }
@keyframes plo-amble { 0% { transform:scale(1); opacity:.5; } 50% { transform:scale(1.02); opacity:.7; } 100% { transform:scale(.98); opacity:.4; } }

/* painting-trojan-towers */
.scn-ptt { background: linear-gradient(180deg, #2c241c 0%, #3a2e22 40%, #1e1610 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%); }
.scn-ptt .tower1 { position:absolute; bottom:30%; left:20%; width:60px; height:120px; background: linear-gradient(180deg, #4a3a2a 0%, #2e2014 100%); border-radius:8% 8% 20% 20% / 80% 80% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.4); transform:rotate(2deg); animation: ptt-tower 12s ease-in-out infinite alternate; }
.scn-ptt .tower2 { position:absolute; bottom:28%; right:15%; width:50px; height:100px; background: linear-gradient(180deg, #3e2e1e 0%, #241a10 100%); border-radius:6% 6% 18% 18% / 70% 70% 10% 10%; box-shadow: inset 0 -8px 16px rgba(0,0,0,.4); transform:rotate(-1deg); animation: ptt-tower 14s ease-in-out infinite alternate-reverse; }
.scn-ptt .wall { position:absolute; bottom:20%; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%); border-radius:30% 30% 0 0 / 80% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-ptt .pioner { position:absolute; bottom:22%; left:38%; width:16px; height:30px; background: linear-gradient(180deg, #2e2218 0%, #1a1210 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin:bottom; animation: ptt-dig 3s ease-in-out infinite; }
.scn-ptt .dust { position:absolute; inset:40% 10% 20% 10%; background: radial-gradient(circle at 30% 60%, rgba(160,140,120,.3) 0%, transparent 40%), radial-gradient(circle at 70% 50%, rgba(140,120,100,.2) 0%, transparent 30%); filter: blur(6px); animation: ptt-haze 18s linear infinite; }
.scn-ptt .shadows { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,.5) 0%, transparent 60%); animation: ptt-flicker 6s ease-in-out infinite alternate; }
@keyframes ptt-tower { 0% { transform:rotate(2deg) scale(1); } 50% { transform:rotate(0deg) scale(1.01); } 100% { transform:rotate(-1deg) scale(.99); } }
@keyframes ptt-dig { 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 ptt-haze { 0% { opacity:.3; transform:translateX(0); } 50% { opacity:.5; transform:translateX(-10px); } 100% { opacity:.3; transform:translateX(10px); } }
@keyframes ptt-flicker { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.5; } }

/* painting-greek-commanders */
.scn-pgc { background: linear-gradient(180deg, #3a2e1a 0%, #4a3828 40%, #2e2010 100%), radial-gradient(ellipse at 50% 60%, #6a5030 0%, transparent 70%); }
.scn-pgc .commander1 { position:absolute; bottom:20%; left:25%; width:28px; height:45px; background: linear-gradient(180deg, #c8a870 0%, #8a6a40 100%); border-radius:50% 50% 40% 40% / 80% 80% 20% 20%; box-shadow: inset -4px -4px 10px rgba(0,0,0,.4); transform-origin:bottom; animation: pgc-grace 8s ease-in-out infinite; }
.scn-pgc .commander2 { position:absolute; bottom:22%; left:45%; width:26px; height:42px; background: linear-gradient(180deg, #b89868 0%, #7a5a30 100%); border-radius:50% 50% 40% 40% / 75% 75% 25% 25%; box-shadow: inset -3px -3px 8px rgba(0,0,0,.3); transform-origin:bottom; animation: pgc-youth 8s ease-in-out infinite 2s; }
.scn-pgc .coward { position:absolute; bottom:18%; right:28%; width:22px; height:38px; background: linear-gradient(180deg, #887858 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: pgc-tremble 2s ease-in-out infinite; }
.scn-pgc .spear { position:absolute; bottom:30%; left:35%; width:4px; height:60px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius:2px; transform:rotate(-20deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: pgc-spear 12s ease-in-out infinite alternate; }
.scn-pgc .shield { position:absolute; bottom:25%; left:22%; width:20px; height:24px; background: radial-gradient(circle at 40% 40%, #8a6a40 0%, #5a3a20 100%); border-radius:50%; box-shadow: inset 0 0 10px rgba(0,0,0,.5); transform:rotate(15deg); animation: pgc-shield 10s ease-in-out infinite alternate; }
.scn-pgc .banner { position:absolute; top:15%; left:10%; width:8px; height:50px; background: linear-gradient(180deg, #a08050 0%, #6a4a2a 100%); border-radius:2px; transform:rotate(5deg); transform-origin:top; animation: pgc-wave 6s ease-in-out infinite; }
@keyframes pgc-grace { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes pgc-youth { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-3px) rotate(-2deg); } 75% { transform:translateY(1px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes pgc-tremble { 0% { transform:translate(0,0); } 25% { transform:translate(1px,-1px); } 50% { transform:translate(-1px,1px); } 75% { transform:translate(1px,1px); } 100% { transform:translate(0,0); } }
@keyframes pgc-spear { 0% { transform:rotate(-22deg); } 50% { transform:rotate(-18deg); } 100% { transform:rotate(-20deg); } }
@keyframes pgc-shield { 0% { transform:rotate(12deg) scale(1); } 50% { transform:rotate(18deg) scale(1.02); } 100% { transform:rotate(15deg) scale(1); } }
@keyframes pgc-wave { 0% { transform:rotate(3deg); } 50% { transform:rotate(8deg); } 100% { transform:rotate(3deg); } }

/* painting-ajax-ulysses */
.scn-pau { background: linear-gradient(180deg, #1a1a24 0%, #2a222e 40%, #12101a 100%), radial-gradient(ellipse at 50% 90%, #3a2a3a 0%, transparent 70%); }
.scn-pau .ajax { position:absolute; bottom:20%; left:20%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: pau-rage 8s ease-in-out infinite; clip-path: polygon(0% 0%, 80% 0%, 100% 100%, 0% 100%); }
.scn-pau .ulysses { position:absolute; bottom:22%; right:20%; width:28px; height:48px; background: linear-gradient(180deg, #2a222e 0%, #12101a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin:bottom; animation: pau-mild 10s ease-in-out infinite; clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%); }
.scn-pau .ajax-shadow { position:absolute; bottom:18%; left:18%; width:40px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); transform:rotate(10deg); animation: pau-shadow 8s ease-in-out infinite alternate; }
.scn-pau .ulysses-shadow { position:absolute; bottom:20%; right:18%; width:36px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); transform:rotate(-8deg); animation: pau-shadow 10s ease-in-out infinite alternate-reverse; }
.scn-pau .spear { position:absolute; bottom:30%; left:45%; width:4px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a12 100%); border-radius:2px; transform:rotate(-30deg); animation: pau-spear 14s ease-in-out infinite alternate; }
.scn-pau .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1a20 0%, #0e0c12 100%); border-radius:20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); animation: pau-ground 20s ease-in-out infinite alternate; }
@keyframes pau-rage { 0% { transform:rotate(-5deg) scaleY(1); } 50% { transform:rotate(5deg) scaleY(1.05); } 100% { transform:rotate(-3deg) scaleY(1); } }
@keyframes pau-mild { 0% { transform:rotate(2deg) scaleY(1); } 50% { transform:rotate(-2deg) scaleY(1.02); } 100% { transform:rotate(1deg) scaleY(1); } }
@keyframes pau-shadow { 0% { transform:scaleX(1); opacity:.6; } 50% { transform:scaleX(1.1); opacity:.8; } 100% { transform:scaleX(.9); opacity:.4; } }
@keyframes pau-spear { 0% { transform:rotate(-28deg); } 50% { transform:rotate(-32deg); } 100% { transform:rotate(-30deg); } }
@keyframes pau-ground { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }

/* Scene IDs: rape-aftermath-2, rape-aftermath-3, rape-aftermath-4, lucrece-lament-1 */

/* --- rape-aftermath-2 --- */
.scn-rape-aftermath-2 {
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 50%, #2a1a1a 100%),
              radial-gradient(ellipse at 30% 20%, #1a1a2e 0%, transparent 70%);
}
.scn-rape-aftermath-2 .ra2-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #141428 100%);
  animation: ra2-wallpulse 8s ease-in-out infinite alternate;
}
.scn-rape-aftermath-2 .ra2-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-rape-aftermath-2 .ra2-bed {
  position: absolute; bottom: 15%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1a12 100%);
  border-radius: 5% 5% 2% 2%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  transform: perspective(400px) rotateX(5deg);
  animation: ra2-bedbreathe 6s ease-in-out infinite;
}
.scn-rape-aftermath-2 .ra2-figure {
  position: absolute; bottom: 12%; left: 45%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #0a0a1a 0%, #05050e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra2-figuresway 4s ease-in-out infinite;
}
.scn-rape-aftermath-2 .ra2-window {
  position: absolute; top: 8%; right: 10%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #121228 0%, #0a0a1e 100%);
  border: 2px solid #2a2a3e;
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(255,255,255,.05);
}
.scn-rape-aftermath-2 .ra2-moonlight {
  position: absolute; top: 8%; right: 10%; width: 18%; height: 25%;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,220,255,0.08) 0%, transparent 70%);
  animation: ra2-moonflicker 12s ease-in-out infinite alternate;
}
.scn-rape-aftermath-2 .ra2-cup {
  position: absolute; bottom: 5%; left: 55%; width: 6%; height: 6%;
  background: radial-gradient(circle, #1a1410 0%, #0a0806 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: ra2-cup 14s ease-in-out infinite;
}

@keyframes ra2-wallpulse {
  0% { opacity: .8 }
  50% { opacity: .95 }
  100% { opacity: .85 }
}
@keyframes ra2-bedbreathe {
  0% { transform: perspective(400px) rotateX(5deg) scaleY(1) }
  50% { transform: perspective(400px) rotateX(5deg) scaleY(1.01) translateY(-2px) }
  100% { transform: perspective(400px) rotateX(5deg) scaleY(1) }
}
@keyframes ra2-figuresway {
  0% { transform: translateX(0) rotate(0deg) scaleX(1) }
  25% { transform: translateX(2%) rotate(-2deg) scaleX(1.02) }
  50% { transform: translateX(4%) rotate(0deg) scaleX(1) }
  75% { transform: translateX(2%) rotate(2deg) scaleX(.98) }
  100% { transform: translateX(0) rotate(0deg) scaleX(1) }
}
@keyframes ra2-moonflicker {
  0% { opacity: .4 }
  50% { opacity: 1 }
  100% { opacity: .6 }
}
@keyframes ra2-cup {
  0% { transform: translateX(0) rotate(0deg) }
  50% { transform: translateX(1%) rotate(3deg) translateY(-1%) }
  100% { transform: translateX(0) rotate(0deg) }
}

/* --- rape-aftermath-3 --- */
.scn-rape-aftermath-3 {
  background: linear-gradient(180deg, #0a0a14 0%, #16162a 40%, #1a1a30 100%),
              radial-gradient(ellipse at 60% 50%, #1a1a30 0%, transparent 80%);
}
.scn-rape-aftermath-3 .ra3-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0d0d1a 0%, #1a142a 50%, #0d0d1a 100%);
  animation: ra3-bgshift 20s ease-in-out infinite alternate;
}
.scn-rape-aftermath-3 .ra3-figure {
  position: absolute; bottom: 18%; left: 25%; width: 22%; height: 50%;
  background: radial-gradient(ellipse at 50% 90%, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: ra3-figurerock 5s ease-in-out infinite;
}
.scn-rape-aftermath-3 .ra3-cheek {
  position: absolute; bottom: 34%; left: 20%; width: 8%; height: 6%;
  background: radial-gradient(circle at 50% 50%, rgba(200,190,180,0.03) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ra3-cheekglow 7s ease-in-out infinite;
}
.scn-rape-aftermath-3 .ra3-lamp {
  position: absolute; bottom: 22%; right: 15%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(-5deg);
  box-shadow: 0 0 8px rgba(255,180,100,.2);
}
.scn-rape-aftermath-3 .ra3-lampglow {
  position: absolute; bottom: 22%; right: 15%; width: 12%; height: 20%;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,180,100,0.08) 0%, transparent 70%);
  animation: ra3-lampflicker 3s ease-in-out infinite alternate;
}
.scn-rape-aftermath-3 .ra3-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%);
  transform-origin: bottom;
  animation: ra3-shadowsway 8s ease-in-out infinite;
}
.scn-rape-aftermath-3 .ra3-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #0e0e1a 0%, #06060e 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,.7);
}

@keyframes ra3-bgshift {
  0% { opacity: .7 }
  50% { opacity: 1 }
  100% { opacity: .8 }
}
@keyframes ra3-figurerock {
  0% { transform: rotate(0deg) translateY(0) }
  25% { transform: rotate(2deg) translateY(-1%) }
  50% { transform: rotate(0deg) translateY(0) }
  75% { transform: rotate(-2deg) translateY(-1%) }
  100% { transform: rotate(0deg) translateY(0) }
}
@keyframes ra3-cheekglow {
  0% { opacity: .3 }
  50% { opacity: .8 }
  100% { opacity: .4 }
}
@keyframes ra3-lampflicker {
  0% { opacity: .5 }
  50% { opacity: 1 }
  100% { opacity: .6 }
}
@keyframes ra3-shadowsway {
  0% { transform: translateX(0) scaleX(1) }
  50% { transform: translateX(3%) scaleX(1.05) }
  100% { transform: translateX(0) scaleX(1) }
}

/* --- rape-aftermath-4 --- */
.scn-rape-aftermath-4 {
  background: linear-gradient(180deg, #0c0c1a 0%, #1a1a2e 60%, #2a1a2a 100%),
              radial-gradient(ellipse at 50% 80%, #2a1a2a 0%, transparent 70%);
}
.scn-rape-aftermath-4 .ra4-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0c0c1a 100%);
  animation: ra4-skyfade 15s ease-in-out infinite alternate;
}
.scn-rape-aftermath-4 .ra4-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,.5);
}
.scn-rape-aftermath-4 .ra4-column {
  position: absolute; bottom: 20%; left: 30%; width: 8%; height: 70%;
  background: linear-gradient(90deg, #1a1a1a 0%, #2a2a2a 40%, #1a1a1a 100%);
  border-radius: 5% 5% 8% 8%;
  box-shadow: 5px 0 15px rgba(0,0,0,.4);
  transform-origin: bottom;
  animation: ra4-columnshake 12s ease-in-out infinite;
}
.scn-rape-aftermath-4 .ra4-arch {
  position: absolute; bottom: 75%; left: 20%; width: 28%; height: 20%;
  background: linear-gradient(180deg, #1a1a1a 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  border: 2px solid #2a2a2a;
  border-bottom: none;
  box-shadow: 0 0 20px rgba(0,0,0,.3);
}
.scn-rape-aftermath-4 .ra4-figure {
  position: absolute; bottom: 15%; left: 45%; width: 10%; height: 18%;
  background: radial-gradient(ellipse at 50% 100%, #0a0a14 0%, #03030a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra4-figuretremble 3s ease-in-out infinite;
}
.scn-rape-aftermath-4 .ra4-crack {
  position: absolute; bottom: 50%; left: 28%; width: 5%; height: 25%;
  background: linear-gradient(180deg, #1a1a1a 0%, transparent 100%);
  filter: blur(1px);
  transform: rotate(10deg);
  animation: ra4-crackgrow 25s linear infinite;
}
.scn-rape-aftermath-4 .ra4-star {
  position: absolute; top: 12%; left: 60%; width: 1%; height: 1%;
  background: rgba(255,255,255,.08);
  border-radius: 50%;
  filter: blur(1px);
  animation: ra4-startwinkle 5s ease-in-out infinite alternate;
}

@keyframes ra4-skyfade {
  0% { opacity: .6 }
  50% { opacity: .85 }
  100% { opacity: .7 }
}
@keyframes ra4-columnshake {
  0% { transform: translateX(0) scaleY(1) }
  25% { transform: translateX(1%) scaleY(1.005) }
  50% { transform: translateX(-1%) scaleY(1) }
  75% { transform: translateX(1%) scaleY(.995) }
  100% { transform: translateX(0) scaleY(1) }
}
@keyframes ra4-figuretremble {
  0% { transform: translateX(0) rotate(0deg) }
  20% { transform: translateX(2%) rotate(-1deg) }
  40% { transform: translateX(-2%) rotate(1deg) }
  60% { transform: translateX(1%) rotate(-1deg) }
  80% { transform: translateX(-1%) rotate(0deg) }
  100% { transform: translateX(0) rotate(0deg) }
}
@keyframes ra4-crackgrow {
  0% { transform: rotate(10deg) scaleY(1) }
  50% { transform: rotate(10deg) scaleY(1.1) }
  100% { transform: rotate(10deg) scaleY(1) }
}
@keyframes ra4-startwinkle {
  0% { opacity: .2 }
  100% { opacity: .7 }
}

/* --- lucrece-lament-1 --- */
.scn-lucrece-lament-1 {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #0e0e1e 100%),
              radial-gradient(ellipse at 80% 60%, #1a1a2e 0%, transparent 70%);
}
.scn-lucrece-lament-1 .ll1-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #16162a 0%, #0a0a1a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.3);
  animation: ll1-wallslide 18s ease-in-out infinite alternate;
}
.scn-lucrece-lament-1 .ll1-window {
  position: absolute; top: 10%; right: 10%; width: 22%; height: 35%;
  background: linear-gradient(180deg, #12122a 0%, #0a0a1e 100%);
  border: 2px solid #2a2a3e;
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 30px rgba(200,220,255,.03);
}
.scn-lucrece-lament-1 .ll1-moonbeam {
  position: absolute; top: 10%; right: 10%; width: 22%; height: 35%;
  background: linear-gradient(135deg, rgba(200,220,255,0.05) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ll1-moonbeam 10s ease-in-out infinite alternate;
}
.scn-lucrece-lament-1 .ll1-figure {
  position: absolute; bottom: 22%; left: 40%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #0e0e1e 0%, #05050e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ll1-figurelament 6s ease-in-out infinite;
}
.scn-lucrece-lament-1 .ll1-chair {
  position: absolute; bottom: 10%; left: 55%; width: 15%; height: 20%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: rotate(2deg);
}
.scn-lucrece-lament-1 .ll1-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-lucrece-lament-1 .ll1-shadow {
  position: absolute; bottom: 0; left: 30%; width: 30%; height: 25%;
  background: linear-gradient(0deg, rgba(0,0,0,.45) 0%, transparent 100%);
  transform-origin: bottom left;
  animation: ll1-shadowstretch 9s ease-in-out infinite;
}

@keyframes ll1-wallslide {
  0% { background-position: 0% 0% }
  50% { background-position: 2% 1% }
  100% { background-position: -1% -1% }
}
@keyframes ll1-moonbeam {
  0% { opacity: .3 }
  50% { opacity: .7 }
  100% { opacity: .4 }
}
@keyframes ll1-figurelament {
  0% { transform: translateX(0) rotate(0deg) scaleY(1) }
  20% { transform: translateX(2%) rotate(-2deg) scaleY(1.01) }
  40% { transform: translateX(-2%) rotate(2deg) scaleY(.99) }
  60% { transform: translateX(1%) rotate(0deg) scaleY(1) }
  80% { transform: translateX(-1%) rotate(-1deg) scaleY(1.005) }
  100% { transform: translateX(0) rotate(0deg) scaleY(1) }
}
@keyframes ll1-shadowstretch {
  0% { transform: scaleX(1) scaleY(1) }
  50% { transform: scaleX(1.05) scaleY(0.95) }
  100% { transform: scaleX(1) scaleY(1) }
}

.scn-lucrece-seeks-knife-3 { background: linear-gradient(135deg, #1a1220 0%, #0e0a14 40%, #2a1a2e 100%), radial-gradient(ellipse at 50% 100%, #2a1a2e 0%, transparent 70%); }
.scn-lucrece-seeks-knife-3 .bg { position:absolute; inset:0; background: linear-gradient(180deg, #120e18 0%, #1a1422 100%); animation: lk3-bg 15s ease-in-out infinite alternate; }
.scn-lucrece-seeks-knife-3 .wall { position:absolute; inset:20% 10% 35% 10%; background: linear-gradient(135deg, #221c2a 0%, #14101a 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-lucrece-seeks-knife-3 .window { position:absolute; top:25%; left:35%; width:30%; height:35%; background: linear-gradient(180deg, rgba(100,120,180,.1) 0%, rgba(50,70,130,.3) 100%); border: 2px solid #3a2a44; border-radius: 4px; box-shadow: inset 0 0 20px rgba(100,140,200,.2); animation: lk3-window 12s ease-in-out infinite alternate; }
.scn-lucrece-seeks-knife-3 .figure { position:absolute; bottom:30%; left:40%; width:12%; height:35%; background: linear-gradient(180deg, #1a1422 0%, #0f0a14 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lk3-figure 6s ease-in-out infinite; }
.scn-lucrece-seeks-knife-3 .table { position:absolute; bottom:28%; left:30%; width:20%; height:4%; background: linear-gradient(180deg, #3a2a28 0%, #1a1412 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: lk3-table 10s ease-in-out infinite; }
.scn-lucrece-seeks-knife-3 .knife { position:absolute; bottom:32%; left:38%; width:6%; height:1.5%; background: linear-gradient(90deg, #c0b0a0 0%, #908080 50%, #c0b0a0 100%); border-radius: 2px; box-shadow: 0 0 8px rgba(200,180,160,.3); transform: rotate(-20deg); animation: lk3-knife 4s ease-in-out infinite alternate; }
.scn-lucrece-seeks-knife-3 .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.6) 100%); }
@keyframes lk3-bg { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes lk3-window { 0% { opacity:.3; transform: scaleY(1) } 50% { opacity:.5; transform: scaleY(1.02) } 100% { opacity:.35; transform: scaleY(1) } }
@keyframes lk3-figure { 0% { transform: translateX(0) translateY(0) rotate(0) } 30% { transform: translateX(3%) translateY(-1%) rotate(2deg) } 60% { transform: translateX(6%) translateY(0) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes lk3-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2%) } }
@keyframes lk3-knife { 0% { transform: rotate(-20deg) translateX(0); opacity:.7 } 50% { transform: rotate(-15deg) translateX(2%); opacity:1 } 100% { transform: rotate(-20deg) translateX(0); opacity:.7 } }

.scn-lucrece-seeks-knife-4 { background: linear-gradient(180deg, #151020 0%, #1a1028 100%), radial-gradient(ellipse at 30% 50%, #2a2040 0%, transparent 60%); }
.scn-lucrece-seeks-knife-4 .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0e0a18 0%, #18102a 100%); animation: lk4-bg 18s ease-in-out infinite alternate; }
.scn-lucrece-seeks-knife-4 .column-l { position:absolute; left:10%; top:5%; bottom:0; width:8%; background: linear-gradient(180deg, #2a2040 0%, #1a122a 100%); border-radius: 4px; box-shadow: 4px 0 12px rgba(0,0,0,.5); animation: lk4-column 20s ease-in-out infinite; }
.scn-lucrece-seeks-knife-4 .column-r { position:absolute; right:10%; top:5%; bottom:0; width:8%; background: linear-gradient(180deg, #2a2040 0%, #1a122a 100%); border-radius: 4px; box-shadow: -4px 0 12px rgba(0,0,0,.5); animation: lk4-column 20s ease-in-out infinite reverse; }
.scn-lucrece-seeks-knife-4 .figure { position:absolute; bottom:20%; left:35%; width:14%; height:50%; background: linear-gradient(180deg, #1a1230 0%, #0e0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lk4-figure 8s ease-in-out infinite; }
.scn-lucrece-seeks-knife-4 .hand { position:absolute; bottom:40%; left:50%; width:6%; height:10%; background: linear-gradient(180deg, #1a1230 0%, #0e0a1a 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom left; animation: lk4-hand 3s ease-in-out infinite alternate; }
.scn-lucrece-seeks-knife-4 .knife { position:absolute; bottom:45%; left:55%; width:4%; height:8%; background: linear-gradient(180deg, #b0a090 0%, #706060 100%); border-radius: 2px; transform: rotate(45deg); box-shadow: 0 0 6px rgba(180,160,140,.3); animation: lk4-knife 3s ease-in-out infinite alternate; }
.scn-lucrece-seeks-knife-4 .light { position:absolute; top:30%; left:42%; width:16%; height:20%; background: radial-gradient(ellipse, rgba(140,180,220,.15) 0%, transparent 70%); animation: lk4-light 12s ease-in-out infinite alternate; }
@keyframes lk4-bg { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes lk4-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes lk4-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(2%) translateY(-2%) rotate(1deg) } }
@keyframes lk4-hand { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(-15deg) translateY(-5%) } 100% { transform: rotate(0) translateY(0) } }
@keyframes lk4-knife { 0% { transform: rotate(45deg) scale(1); opacity:.8 } 50% { transform: rotate(40deg) scale(1.1); opacity:1 } 100% { transform: rotate(45deg) scale(1); opacity:.8 } }
@keyframes lk4-light { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.4; transform: scale(1.1) } 100% { opacity:.25; transform: scale(1) } }

.scn-lucrece-seeks-knife-5 { background: linear-gradient(180deg, #101d20 0%, #0a1418 50%, #202a30 100%), radial-gradient(ellipse at 50% 60%, #1a2a2e 0%, transparent 70%); }
.scn-lucrece-seeks-knife-5 .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0e1a20 0%, #182830 100%); animation: lk5-sky 25s ease-in-out infinite alternate; }
.scn-lucrece-seeks-knife-5 .rocks { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a3a38 0%, #1a2828 100%); border-radius: 60% 40% 0 0 / 80% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-lucrece-seeks-knife-5 .waterfall { position:absolute; bottom:30%; left:40%; width:20%; height:30%; background: linear-gradient(180deg, rgba(180,220,230,.3) 0%, rgba(100,150,180,.5) 100%); border-radius: 0 0 30% 30%; filter: blur(2px); animation: lk5-waterfall 6s ease-in-out infinite alternate; }
.scn-lucrece-seeks-knife-5 .pool { position:absolute; bottom:5%; left:25%; width:50%; height:15%; background: linear-gradient(180deg, rgba(60,100,130,.4) 0%, rgba(30,60,80,.2) 100%); border-radius: 0 0 50% 50%; animation: lk5-pool 8s ease-in-out infinite; }
.scn-lucrece-seeks-knife-5 .spray { position:absolute; bottom:35%; left:45%; width:10%; height:20%; background: radial-gradient(ellipse, rgba(200,230,240,.15) 0%, transparent 70%); filter: blur(4px); animation: lk5-spray 4s ease-in-out infinite alternate; }
.scn-lucrece-seeks-knife-5 .moon { position:absolute; top:8%; right:20%; width:8%; aspect-ratio:1; background: radial-gradient(circle, rgba(200,210,220,.3) 0%, transparent 70%); border-radius:50%; filter: blur(6px); animation: lk5-moon 20s linear infinite; }
.scn-lucrece-seeks-knife-5 .tree { position:absolute; left:5%; bottom:10%; width:15%; height:50%; background: linear-gradient(180deg, #1a2a20 0%, #0a1a10 100%); border-radius: 40% 60% 20% 20% / 80% 70% 30% 30%; transform-origin: bottom center; animation: lk5-tree 30s ease-in-out infinite; }
@keyframes lk5-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes lk5-waterfall { 0% { transform: scaleY(1); opacity:.6 } 50% { transform: scaleY(1.05); opacity:.8 } 100% { transform: scaleY(1); opacity:.6 } }
@keyframes lk5-pool { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } }
@keyframes lk5-spray { 0% { transform: translateY(0) scale(1); opacity:.3 } 50% { transform: translateY(-5%) scale(1.2); opacity:.5 } 100% { transform: translateY(0) scale(1); opacity:.3 } }
@keyframes lk5-moon { 0% { transform: rotate(0) translateX(0) } 50% { transform: rotate(5deg) translateX(2%) } 100% { transform: rotate(0) translateX(0) } }
@keyframes lk5-tree { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }

.scn-morning-arrives-1 { background: linear-gradient(180deg, #fadca0 0%, #e8c070 30%, #d0a050 60%, #b08038 100%), radial-gradient(ellipse at 50% 0, #ffe8b0 0%, transparent 60%); }
.scn-morning-arrives-1 .wall { position:absolute; inset:0 20% 30% 20%; background: linear-gradient(180deg, #d0a050 0%, #b89040 100%); border-radius: 8px; box-shadow: inset 0 0 40px rgba(120,60,20,.3); animation: ma1-wall 15s ease-in-out infinite alternate; }
.scn-morning-arrives-1 .window-frame { position:absolute; top:15%; left:35%; width:30%; height:40%; border: 4px solid #6a3a1a; border-radius: 4px; background: transparent; box-shadow: 0 0 20px rgba(200,170,100,.3); animation: ma1-frame 20s ease-in-out infinite; }
.scn-morning-arrives-1 .window-light { position:absolute; top:18%; left:38%; width:24%; height:35%; background: linear-gradient(135deg, #ffebb0 0%, #f0c880 50%, #d0a050 100%); border-radius: 2px; box-shadow: 0 0 30px rgba(255,200,120,.5), 0 0 60px rgba(200,150,80,.2); animation: ma1-light 8s ease-in-out infinite alternate; }
.scn-morning-arrives-1 .figure { position:absolute; bottom:35%; left:45%; width:12%; height:30%; background: linear-gradient(180deg, #5a3020 0%, #3a1a10 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ma1-figure 6s ease-in-out infinite; }
.scn-morning-arrives-1 .bed { position:absolute; bottom:25%; left:30%; width:40%; height:5%; background: linear-gradient(180deg, #7a4a2a 0%, #5a301a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: ma1-bed 12s ease-in-out infinite; }
.scn-morning-arrives-1 .blanket { position:absolute; bottom:28%; left:32%; width:36%; height:3%; background: linear-gradient(180deg, #c08050 0%, #a06030 100%); border-radius: 4px; transform: scaleX(.9); animation: ma1-blanket 10s ease-in-out infinite; }
.scn-morning-arrives-1 .pillow { position:absolute; bottom:29%; left:50%; width:10%; height:4%; background: linear-gradient(180deg, #e0b080 0%, #c09060 100%); border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,.1); animation: ma1-pillow 14s ease-in-out infinite; }
.scn-morning-arrives-1 .flower { position:absolute; top:55%; left:42%; width:4%; height:6%; background: radial-gradient(circle, #e05030 0%, #b03010 70%); border-radius: 50%; box-shadow: 0 0 8px rgba(200,80,40,.4); animation: ma1-flower 5s ease-in-out infinite alternate; }
@keyframes ma1-wall { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes ma1-frame { 0% { transform: rotate(0) } 50% { transform: rotate(.5deg) } 100% { transform: rotate(0) } }
@keyframes ma1-light { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.7; transform: scale(1) } }
@keyframes ma1-figure { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2%) rotate(2deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ma1-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1%) } }
@keyframes ma1-blanket { 0% { transform: scaleX(.9) } 50% { transform: scaleX(.92) } 100% { transform: scaleX(.9) } }
@keyframes ma1-pillow { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(1) } }
@keyframes ma1-flower { 0% { transform: rotate(0) scale(1); opacity:.8 } 50% { transform: rotate(10deg) scale(1.1); opacity:1 } 100% { transform: rotate(0) scale(1); opacity:.8 } }

.scn-lets-attend-the-time {
  background: 
    linear-gradient(180deg, #1a0a0a 0%, #3a1a0a 40%, #6a2a0a 70%, #2a0a05 100%),
    radial-gradient(ellipse at 30% 90%, #8a3a1a 0%, transparent 60%);
}
.scn-lets-attend-the-time .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0505 0%, #1a0a05 50%, #0a0505 100%); animation: let1-sky 8s ease-in-out infinite alternate; }
.scn-lets-attend-the-time .fire { position:absolute; bottom:25%; left:35%; width:80px; height:120px; background: radial-gradient(ellipse at 50% 100%, #ff7a2a 0%, #cc4400 40%, #882200 70%, transparent 100%); border-radius:50% 50% 20% 20%; filter: blur(4px); box-shadow: 0 0 60px 20px rgba(255,100,0,.6), 0 0 100px 40px rgba(200,50,0,.3); animation: let1-fire 0.5s steps(3) infinite; }
.scn-lets-attend-the-time .rocks { position:absolute; bottom:15%; left:10%; width:200px; height:80px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%); border-radius: 40% 60% 30% 50% / 60% 40% 50% 30%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); animation: let1-rocks 12s ease-in-out infinite alternate; }
.scn-lets-attend-the-time .figure { position:absolute; bottom:20%; left:45%; width:30px; height:50px; background: radial-gradient(ellipse at 50% 30%, #1a0a05 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: let1-figure 6s ease-in-out infinite; }
.scn-lets-attend-the-time .tree { position:absolute; bottom:20%; right:20%; width:15px; height:90px; background: linear-gradient(180deg, #1a0a05 0%, #0a0505 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: let1-tree 14s ease-in-out infinite alternate; }
.scn-lets-attend-the-time .birds { position:absolute; top:15%; left:50%; width:12px; height:6px; background: transparent; border-radius:50%; box-shadow: 0 0 0 2px #2a1a0a; animation: let1-birds 20s linear infinite; }
.scn-lets-attend-the-time .stars { position:absolute; top:5%; left:10%; width:4px; height:4px; background: #ffd088; border-radius:50%; box-shadow: 20px 30px 0 1px rgba(255,200,100,.6), 60px 50px 0 0 rgba(255,200,100,.4); animation: let1-stars 4s ease-in-out infinite alternate; }
@keyframes let1-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes let1-fire { 0% { transform: scale(1) rotate(-2deg); opacity:0.9 } 33% { transform: scale(1.05) rotate(2deg); opacity:1 } 66% { transform: scale(0.95) rotate(-1deg); opacity:0.8 } 100% { transform: scale(1) rotate(0deg); opacity:0.9 } }
@keyframes let1-rocks { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes let1-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(5px) rotate(-3deg) } 70% { transform: translateX(-5px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes let1-tree { 0% { transform: rotate(-8deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-8deg) } }
@keyframes let1-birds { 0% { transform: translateX(-10vw) } 50% { transform: translateX(50vw) translateY(-5px) } 100% { transform: translateX(110vw) } }
@keyframes let1-stars { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.9; transform: scale(1.3) } 100% { opacity:0.3; transform: scale(1) } }

.scn-chamber-door-heaven {
  background: 
    linear-gradient(180deg, #0a0a12 0%, #14141e 40%, #0f0f1a 70%, #05050a 100%),
    radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, transparent 70%);
}
.scn-chamber-door-heaven .wall-left { position:absolute; left:0; top:0; width:30%; height:100%; background: linear-gradient(90deg, #0a0a14 0%, #14141e 30%, transparent 100%); animation: cham2-wall 20s ease-in-out infinite alternate; }
.scn-chamber-door-heaven .wall-right { position:absolute; right:0; top:0; width:30%; height:100%; background: linear-gradient(270deg, #0a0a14 0%, #14141e 30%, transparent 100%); animation: cham2-wall 20s ease-in-out infinite alternate-reverse; }
.scn-chamber-door-heaven .door { position:absolute; bottom:15%; left:50%; width:120px; height:200px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 4% 4% 2% 2%; transform: translateX(-50%); box-shadow: inset 0 0 20px rgba(0,0,0,.8); animation: cham2-door 14s ease-in-out infinite; }
.scn-chamber-door-heaven .crack-light { position:absolute; bottom:18%; left:calc(50% - 2px); width:4px; height:160px; background: linear-gradient(180deg, rgba(255,200,100,0.8) 0%, rgba(200,140,50,0.4) 50%, transparent 100%); box-shadow: 0 0 20px 10px rgba(255,200,100,0.3); animation: cham2-light 4s ease-in-out infinite alternate; }
.scn-chamber-door-heaven .figure { position:absolute; bottom:15%; left:calc(50% + 40px); width:36px; height:70px; background: radial-gradient(ellipse at 50% 30%, #0a0a14 0%, #05050a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cham2-figure 7s ease-in-out infinite; }
.scn-chamber-door-heaven .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #0e0e1a 0%, #05050a 100%); animation: cham2-floor 20s ease-in-out infinite alternate; }
.scn-chamber-door-heaven .frame { position:absolute; bottom:15%; left:50%; width:130px; height:210px; background: transparent; border: 4px solid #1a1a2a; border-radius: 4%; transform: translateX(-50%); box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: cham2-frame 18s ease-in-out infinite alternate; }
@keyframes cham2-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cham2-door { 0% { transform: translateX(-50%) rotateY(0deg); } 50% { transform: translateX(-50%) rotateY(5deg); } 100% { transform: translateX(-50%) rotateY(0deg); } }
@keyframes cham2-light { 0% { opacity:0.6; box-shadow: 0 0 10px 5px rgba(255,200,100,0.2); } 50% { opacity:1; box-shadow: 0 0 30px 15px rgba(255,200,100,0.5); } 100% { opacity:0.7; box-shadow: 0 0 15px 8px rgba(255,200,100,0.3); } }
@keyframes cham2-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(2deg); } 75% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cham2-floor { 0% { opacity:0.6; background-position:0 0; } 50% { opacity:0.8; background-position:0 2px; } 100% { opacity:0.7; background-position:0 0; } }
@keyframes cham2-frame { 0% { border-color: #1a1a2a; } 50% { border-color: #2a2a3e; } 100% { border-color: #1a1a2a; } }

.scn-unfruitful-prayer {
  background: 
    linear-gradient(180deg, #0a0a0f 0%, #14141a 40%, #0f0f14 70%, #05050a 100%),
    radial-gradient(ellipse at 50% 30%, #1a1a2e 0%, transparent 60%);
}
.scn-unfruitful-prayer .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #0a0a14 0%, transparent 70%); animation: unfr3-bg 12s ease-in-out infinite alternate; }
.scn-unfruitful-prayer .altar { position:absolute; bottom:20%; left:50%; width:100px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 20% 20% 5% 5%; transform: translateX(-50%); box-shadow: 0 -10px 30px rgba(30,30,60,0.5); animation: unfr3-altar 18s ease-in-out infinite; }
.scn-unfruitful-prayer .figure { position:absolute; bottom:20%; left:50%; width:32px; height:60px; background: radial-gradient(ellipse at 50% 30%, #0a0a14 0%, #05050a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform: translateX(-50%) translateY(10px); transform-origin: bottom center; animation: unfr3-figure 8s ease-in-out infinite; }
.scn-unfruitful-prayer .light-beam { position:absolute; top:5%; left:45%; width:80px; height:200px; background: linear-gradient(180deg, rgba(180,200,255,0.15) 0%, rgba(100,130,200,0.05) 50%, transparent 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; transform: rotate(-5deg); filter: blur(15px); animation: unfr3-beam 10s ease-in-out infinite alternate; }
.scn-unfruitful-prayer .shadow { position:absolute; bottom:15%; left:35%; width:120px; height:30px; background: radial-gradient(ellipse at 50% 50%, #000 0%, transparent 70%); filter: blur(10px); animation: unfr3-shadow 8s ease-in-out infinite alternate; }
.scn-unfruitful-prayer .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #0e0e1a 0%, #05050a 100%); animation: unfr3-floor 20s ease-in-out infinite alternate; }
.scn-unfruitful-prayer .wall { position:absolute; left:0; top:0; width:100%; height:80%; background: linear-gradient(180deg, transparent 0%, #0a0a14 100%); animation: unfr3-wall 25s ease-in-out infinite alternate; }
@keyframes unfr3-bg { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes unfr3-altar { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes unfr3-figure { 0% { transform: translateX(-50%) translateY(10px) rotate(0deg); } 25% { transform: translateX(-50%) translateY(8px) rotate(3deg); } 75% { transform: translateX(-50%) translateY(12px) rotate(-3deg); } 100% { transform: translateX(-50%) translateY(10px) rotate(0deg); } }
@keyframes unfr3-beam { 0% { opacity:0.3; transform: rotate(-5deg) scale(1); } 50% { opacity:0.7; transform: rotate(-3deg) scale(1.05); } 100% { opacity:0.4; transform: rotate(-5deg) scale(1); } }
@keyframes unfr3-shadow { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes unfr3-floor { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes unfr3-wall { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

.scn-love-fortune-guide {
  background: 
    linear-gradient(180deg, #05050a 0%, #0a0a14 30%, #0f0f1a 60%, #05050a 100%),
    radial-gradient(ellipse at 50% 80%, #14141e 0%, transparent 60%);
}
.scn-love-fortune-guide .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #050510 0%, #0a0a15 50%, #050510 100%); animation: love4-sky 15s ease-in-out infinite alternate; }
.scn-love-fortune-guide .mist { position:absolute; bottom:20%; left:0; width:100%; height:200px; background: linear-gradient(180deg, transparent 0%, rgba(20,20,30,0.4) 40%, rgba(10,10,15,0.7) 100%); filter: blur(30px); animation: love4-mist 20s ease-in-out infinite alternate; }
.scn-love-fortune-guide .figure { position:absolute; bottom:25%; left:50%; width:32px; height:70px; background: radial-gradient(ellipse at 50% 30%, #0a0a14 0%, #05050a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform: translateX(-50%); animation: love4-figure 8s ease-in-out infinite; }
.scn-love-fortune-guide .cape { position:absolute; bottom:25%; left:50%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 100%, #0a0a12 0%, transparent 100%); border-radius: 50% 50% 0 0; transform: translateX(-50%) translateY(10px); filter: blur(4px); animation: love4-cape 8s ease-in-out infinite alternate; }
.scn-love-fortune-guide .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #0a0a14 0%, #05050a 100%); animation: love4-ground 18s ease-in-out infinite alternate; }
.scn-love-fortune-guide .stars-faint { position:absolute; top:10%; left:20%; width:3px; height:3px; background: rgba(80,80,120,0.6); border-radius:50%; box-shadow: 30px 40px 0 0 rgba(80,80,120,0.4), 70px 10px 0 0 rgba(80,80,120,0.3), 100px 60px 0 0 rgba(80,80,120,0.5); animation: love4-stars 5s ease-in-out infinite alternate; }
.scn-love-fortune-guide .wind { position:absolute; top:30%; left:0; width:100%; height:1px; background: linear-gradient(90deg, transparent 0%, rgba(30,30,50,0.3) 50%, transparent 100%); animation: love4-wind 12s linear infinite; }
@keyframes love4-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes love4-mist { 0% { opacity:0.3; transform: translateY(0); } 50% { opacity:0.6; transform: translateY(-10px); } 100% { opacity:0.4; transform: translateY(5px); } }
@keyframes love4-figure { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(3deg) translateY(-2px); } 70% { transform: translateX(-50%) rotate(-3deg) translateY(2px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes love4-cape { 0% { transform: translateX(-50%) translateY(10px) rotate(0deg); } 50% { transform: translateX(-50%) translateY(12px) rotate(5deg); } 100% { transform: translateX(-50%) translateY(10px) rotate(0deg); } }
@keyframes love4-ground { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes love4-stars { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(1); } }
@keyframes love4-wind { 0% { transform: translateX(-50px); opacity:0; } 50% { transform: translateX(50vw); opacity:0.4; } 100% { transform: translateX(120vw); opacity:0; } }

/* Scene: item-sharp-knife (tag sk) */
.scn-item-sharp-knife {
  background: linear-gradient(180deg, #2a2244 0%, #3f2d5e 30%, #5a3f7a 60%, #7a5f9a 100%);
}
.scn-item-sharp-knife .dawn-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6a4f8e 0%, #b08a6a 50%, #d4b08a 100%);
  opacity: .3; animation: sk-sky 12s ease-in-out infinite alternate;
}
.scn-item-sharp-knife .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  transform: scaleY(.95); transform-origin: bottom center;
}
.scn-item-sharp-knife .knife-blade {
  position: absolute; bottom: 35%; left: 50%; width: 6px; height: 80px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 50%, #505050 100%);
  border-radius: 2px 2px 6px 6px; transform-origin: bottom center;
  transform: translateX(-50%) rotate(-5deg); box-shadow: 0 0 8px rgba(200,200,200,.4);
  animation: sk-blade 4s ease-in-out infinite alternate;
}
.scn-item-sharp-knife .knife-handle {
  position: absolute; bottom: 28%; left: 50%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 50%, #1a0a0a 100%);
  border-radius: 2px; transform: translateX(-50%) rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.6); z-index: 1;
}
.scn-item-sharp-knife .window-light {
  position: absolute; top: 8%; right: 12%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at center, rgba(220,200,180,.8) 0%, rgba(180,140,100,.2) 60%, transparent 100%);
  border-radius: 8px; box-shadow: 0 0 30px 10px rgba(200,180,160,.3);
  animation: sk-window 8s ease-in-out infinite alternate;
}
.scn-item-sharp-knife .knife-shadow {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 6px;
  background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(4px);
  animation: sk-shadow 4s ease-in-out infinite alternate;
}
.scn-item-sharp-knife .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(255,220,180,.1) 0%, transparent 60%),
              radial-gradient(circle at 70% 20%, rgba(255,200,160,.08) 0%, transparent 50%);
  animation: sk-dust 20s infinite alternate;
}
@keyframes sk-sky {
  0% { opacity: .2; }
  50% { opacity: .35; }
  100% { opacity: .25; }
}
@keyframes sk-blade {
  0% { transform: translateX(-50%) rotate(-8deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-5deg); }
}
@keyframes sk-window {
  0% { opacity: .6; box-shadow: 0 0 20px 5px rgba(200,180,160,.2); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(220,200,180,.5); }
  100% { opacity: .7; box-shadow: 0 0 25px 8px rgba(200,180,160,.3); }
}
@keyframes sk-shadow {
  0% { transform: scaleX(.8); opacity: .3; }
  50% { transform: scaleX(1.1); opacity: .5; }
  100% { transform: scaleX(.9); opacity: .4; }
}
@keyframes sk-dust {
  0% { background-position: 0% 0%; }
  100% { background-position: 20% 30%; }
}

/* Scene: lucrece-contemplates-death (tag ld) */
.scn-lucrece-contemplates-death {
  background: linear-gradient(180deg, #1a2030 0%, #2a3040 30%, #3a4050 60%, #5a6070 100%);
}
.scn-lucrece-contemplates-death .forest-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a2030 0%, #3a4050 40%, #4a5a4a 70%, #2a3a2a 100%);
}
.scn-lucrece-contemplates-death .tree-left {
  position: absolute; bottom: 20%; left: 10%; width: 30px; height: 200px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  transform: rotate(-5deg); transform-origin: bottom center;
  animation: ld-tree 15s ease-in-out infinite alternate;
}
.scn-lucrece-contemplates-death .tree-right {
  position: absolute; bottom: 20%; right: 10%; width: 35px; height: 180px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  transform: rotate(3deg); transform-origin: bottom center;
  animation: ld-tree 18s ease-in-out infinite alternate reverse;
}
.scn-lucrece-contemplates-death .deer {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) scaleX(-1);
  animation: ld-deer 6s ease-in-out infinite;
}
.scn-lucrece-contemplates-death .deer::before {
  content: ''; position: absolute; top: -18px; left: 8px; width: 4px; height: 20px;
  background: #4a3a2a; border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  transform: rotate(10deg);
}
.scn-lucrece-contemplates-death .mist {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(200,200,180,.08) 0%, transparent 100%);
  filter: blur(15px); animation: ld-mist 30s linear infinite;
}
.scn-lucrece-contemplates-death .sunrise {
  position: absolute; top: 5%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #d4a878 0%, #b08050 40%, transparent 80%);
  box-shadow: 0 0 40px 20px rgba(200,160,100,.3);
  animation: ld-sunrise 10s ease-in-out infinite alternate;
}
.scn-lucrece-contemplates-death .grass {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 100% 0 0;
  animation: ld-grass 8s ease-in-out infinite;
}
@keyframes ld-tree {
  0% { transform: rotate(-6deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.02); }
  100% { transform: rotate(-3deg) scaleY(.98); }
}
@keyframes ld-deer {
  0% { transform: translateX(-50%) scaleX(-1) translateY(0); }
  30% { transform: translateX(-50%) scaleX(-1) translateY(-2px); }
  60% { transform: translateX(-50%) scaleX(-1) translateY(1px); }
  100% { transform: translateX(-50%) scaleX(-1) translateY(0); }
}
@keyframes ld-mist {
  0% { transform: translateX(-20%) scaleX(1); opacity: .3; }
  50% { transform: translateX(10%) scaleX(1.2); opacity: .5; }
  100% { transform: translateX(40%) scaleX(1); opacity: .3; }
}
@keyframes ld-sunrise {
  0% { opacity: .5; box-shadow: 0 0 20px 10px rgba(200,160,100,.1); }
  50% { opacity: .9; box-shadow: 0 0 50px 25px rgba(220,180,120,.4); }
  100% { opacity: .7; box-shadow: 0 0 30px 15px rgba(200,160,100,.2); }
}
@keyframes ld-grass {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(.97); }
}

/* Scene: lucrece-debates-suicide (tag ls) */
.scn-lucrece-debates-suicide {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #3a3a5e 80%, #4a4a7e 100%);
}
.scn-lucrece-debates-suicide .room-bg {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a2e 100%);
}
.scn-lucrece-debates-suicide .window-dawn {
  position: absolute; top: 10%; left: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #6a5a8e 0%, #b08a6a 60%, #d4b08a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(200,180,160,.3);
  animation: ls-window 10s ease-in-out infinite alternate;
}
.scn-lucrece-debates-suicide .mother {
  position: absolute; bottom: 25%; left: 45%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ls-mother 8s ease-in-out infinite;
}
.scn-lucrece-debates-suicide .child-left {
  position: absolute; bottom: 20%; left: 36%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ls-child-l 6s ease-in-out infinite alternate;
}
.scn-lucrece-debates-suicide .child-right {
  position: absolute; bottom: 20%; right: 36%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ls-child-r 6s ease-in-out infinite alternate-reverse;
}
.scn-lucrece-debates-suicide .bed {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 6px 6px 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.4);
}
.scn-lucrece-debates-suicide .shadow-mother {
  position: absolute; bottom: 12%; left: 42%; width: 30px; height: 8px;
  background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(6px);
  animation: ls-shadow 8s ease-in-out infinite;
}
@keyframes ls-window {
  0% { opacity: .4; box-shadow: inset 0 0 10px rgba(200,180,160,.1); }
  50% { opacity: .8; box-shadow: inset 0 0 30px rgba(220,200,180,.4); }
  100% { opacity: .5; box-shadow: inset 0 0 15px rgba(200,180,160,.2); }
}
@keyframes ls-mother {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  60% { transform: translateY(1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ls-child-l {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(3px) rotate(5deg); }
  100% { transform: translateX(-1px) rotate(-3deg); }
}
@keyframes ls-child-r {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-3px) rotate(-5deg); }
  100% { transform: translateX(1px) rotate(3deg); }
}
@keyframes ls-shadow {
  0% { transform: scaleX(.9); opacity: .2; }
  50% { transform: scaleX(1.2); opacity: .5; }
  100% { transform: scaleX(1); opacity: .3; }
}

/* Scene: lucrece-plot-of-death (tag lp) */
.scn-lucrece-plot-of-death {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #3a2a5e 80%, #4a3a6e 100%);
}
.scn-lucrece-plot-of-death .chamber-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a2e 100%);
}
.scn-lucrece-plot-of-death .bed {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 30%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 8px 8px 2px 2px; box-shadow: inset 0 4px 10px rgba(0,0,0,.5);
}
.scn-lucrece-plot-of-death .lucrece {
  position: absolute; bottom: 30%; left: 42%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lp-lucrece 7s ease-in-out infinite;
}
.scn-lucrece-plot-of-death .maid {
  position: absolute; bottom: 28%; right: 25%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: lp-maid 5s ease-in-out infinite alternate;
}
.scn-lucrece-plot-of-death .letter {
  position: absolute; bottom: 38%; left: 35%; width: 14px; height: 10px;
  background: #b0a080; border-radius: 1px; transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: lp-letter 12s ease-in-out infinite;
}
.scn-lucrece-plot-of-death .candle {
  position: absolute; bottom: 45%; right: 20%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #d0b080 0%, #806040 100%);
  border-radius: 1px; box-shadow: 0 0 10px 4px rgba(255,200,150,.4);
  animation: lp-candle 3s ease-in-out infinite alternate;
}
.scn-lucrece-plot-of-death .window-dawn {
  position: absolute; top: 8%; right: 12%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #6a5a8e 0%, #b08a6a 50%, #d4b08a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(200,180,160,.3);
  animation: lp-window 10s ease-in-out infinite alternate;
}
@keyframes lp-lucrece {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(1px) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes lp-maid {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-8px) scaleY(1.02); }
  100% { transform: translateX(4px) scaleY(.98); }
}
@keyframes lp-letter {
  0% { transform: rotate(-15deg) translateY(0); opacity: .8; }
  50% { transform: rotate(-10deg) translateY(-3px); opacity: .6; }
  100% { transform: rotate(-18deg) translateY(0); opacity: .9; }
}
@keyframes lp-candle {
  0% { opacity: .6; box-shadow: 0 0 5px 2px rgba(255,200,150,.2); }
  50% { opacity: 1; box-shadow: 0 0 15px 6px rgba(255,220,170,.6); }
  100% { opacity: .7; box-shadow: 0 0 8px 3px rgba(255,200,150,.3); }
}
@keyframes lp-window {
  0% { opacity: .3; box-shadow: inset 0 0 10px rgba(200,180,160,.1); }
  50% { opacity: .7; box-shadow: inset 0 0 30px rgba(220,200,180,.4); }
  100% { opacity: .5; box-shadow: inset 0 0 20px rgba(200,180,160,.2); }
}

/* one block per scene id. Append to style.css. */
.scn-invocation-opportunity-7 {
  background: 
    linear-gradient(135deg, #1a1a2e 0%, #2a2040 40%, #0d0d1a 100%),
    radial-gradient(ellipse at 60% 80%, #4e3a5e 0%, transparent 60%);
}
.scn-invocation-opportunity-7 .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e1a2e 0%, #0a0a14 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-invocation-opportunity-7 .wall-left {
  position: absolute; top: 0; left: 0; width: 45%; height: 70%;
  background: linear-gradient(180deg, #2a2040 0%, #1a1a2e 100%);
  border-right: 1px solid #3a2a4a;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
}
.scn-invocation-opportunity-7 .wall-right {
  position: absolute; top: 0; right: 0; width: 45%; height: 70%;
  background: linear-gradient(180deg, #2a2040 0%, #1a1a2e 100%);
  border-left: 1px solid #3a2a4a;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
}
.scn-invocation-opportunity-7 .door-arch {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2438 0%, #1a1628 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: 0 0 30px rgba(0,0,0,0.8);
}
.scn-invocation-opportunity-7 .figure {
  position: absolute; bottom: 26%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: io7-fig 6s ease-in-out infinite;
}
.scn-invocation-opportunity-7 .hand-reach {
  position: absolute; top: 18%; left: 40%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(25deg);
  animation: io7-hand 8s ease-in-out infinite;
}
.scn-invocation-opportunity-7 .glow-point {
  position: absolute; top: 50%; left: 50%; width: 20px; height: 20px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #c89f5e 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px #c89f5e, 0 0 80px rgba(200,159,94,0.3);
  animation: io7-glow 4s ease-in-out infinite alternate;
}
.scn-invocation-opportunity-7 .mist {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(90deg, transparent 0%, rgba(200,159,94,0.03) 10%, transparent 20%);
  filter: blur(4px);
  animation: io7-mist 20s linear infinite;
}
@keyframes io7-fig {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-4px) scale(1.01); }
}
@keyframes io7-hand {
  0%,100% { transform: rotate(25deg) translate(0,0); }
  50% { transform: rotate(30deg) translate(5px,-10px); }
}
@keyframes io7-glow {
  0% { opacity: 0.6; box-shadow: 0 0 20px #c89f5e, 0 0 40px rgba(200,159,94,0.2); }
  100% { opacity: 1; box-shadow: 0 0 60px #c89f5e, 0 0 120px rgba(200,159,94,0.4); }
}
@keyframes io7-mist {
  0% { background-position: 0 0; }
  100% { background-position: 200% 0; }
}

.scn-invocation-time-1 {
  background: 
    linear-gradient(180deg, #0f0f1f 0%, #1a1630 40%, #0a0a18 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a5a 0%, transparent 70%);
}
.scn-invocation-time-1 .bg-void {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent 0px, rgba(100,100,200,0.02) 2px, transparent 4px);
  animation: ti1-void 30s linear infinite;
}
.scn-invocation-time-1 .hourglass-top {
  position: absolute; bottom: 50%; left: 50%; width: 60px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a6a 0%, #3a2a4a 100%);
  clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: 0 0 20px rgba(90,74,106,0.5);
  animation: ti1-glass 10s ease-in-out infinite;
}
.scn-invocation-time-1 .hourglass-waist {
  position: absolute; bottom: 50%; left: 50%; width: 16px; height: 20px;
  transform: translate(-50%, 50%);
  background: #2a2a4a;
  border-radius: 50%;
}
.scn-invocation-time-1 .hourglass-bottom {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(0deg, #5a4a6a 0%, #3a2a4a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  box-shadow: 0 0 20px rgba(90,74,106,0.5);
  animation: ti1-glass 10s ease-in-out infinite reverse;
}
.scn-invocation-time-1 .sand-upper {
  position: absolute; bottom: 60%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle at top, #c89f5e 0%, #8a6a3a 100%);
  clip-path: polygon(10% 100%, 90% 100%, 80% 0%, 20% 0%);
  animation: ti1-sand-up 12s ease-in-out infinite;
}
.scn-invocation-time-1 .sand-falling {
  position: absolute; bottom: 55%; left: 50%; width: 4px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c89f5e 0%, #b88a4a 50%, transparent 100%);
  border-radius: 0 0 50% 50%;
  animation: ti1-sand-fall 12s linear infinite;
}
.scn-invocation-time-1 .sand-pile {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at bottom, #c89f5e 0%, #8a6a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ti1-pile 12s ease-in-out infinite;
}
.scn-invocation-time-1 .figure-time {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(0deg, #1a1a2e 0%, #2a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: ti1-fig 8s ease-in-out infinite;
}
.scn-invocation-time-1 .scythe-blade {
  position: absolute; bottom: 35%; left: 25%; width: 60px; height: 10px;
  background: linear-gradient(90deg, #4a4a6a 0%, #6a6a8a 100%);
  border-radius: 0 80% 0 0;
  transform: rotate(-40deg) scaleX(0.8);
  box-shadow: 0 0 15px rgba(100,100,140,0.4);
  animation: ti1-scythe 8s ease-in-out infinite;
}
@keyframes ti1-void { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }
@keyframes ti1-glass { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ti1-sand-up { 0% { height:50px } 50% { height:20px } 100% { height:50px } }
@keyframes ti1-sand-fall { 0% { opacity:1; height:80px } 50% { opacity:0.5; height:50px } 100% { opacity:1; height:80px } }
@keyframes ti1-pile { 0% { height:30px; width:40px } 50% { height:50px; width:50px } 100% { height:30px; width:40px } }
@keyframes ti1-fig { 0% { transform: rotate(-10deg) translate(0,0) } 50% { transform: rotate(-5deg) translate(5px,-5px) } 100% { transform: rotate(-10deg) translate(0,0) } }
@keyframes ti1-scythe { 0% { transform: rotate(-40deg) scaleX(0.8) } 50% { transform: rotate(-35deg) scaleX(1) } 100% { transform: rotate(-40deg) scaleX(0.8) } }

.scn-invocation-time-2 {
  background: 
    linear-gradient(180deg, #181830 0%, #2a1a3a 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a5a 0%, transparent 60%);
}
.scn-invocation-time-2 .clock-face {
  position: absolute; top: 10%; left: 50%; width: 180px; height: 180px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #3a2a4a 0%, #2a1a3a 60%, #1a0a2a 100%);
  border-radius: 50%;
  border: 3px solid #5a4a6a;
  box-shadow: 0 0 40px rgba(90,74,106,0.3);
}
.scn-invocation-time-2 .clock-hands {
  position: absolute; top: 50%; left: 50%; width: 80px; height: 4px;
  transform-origin: left center;
  transform: translateY(-50%) rotate(30deg);
  background: linear-gradient(90deg, #8a7a9a 0%, #b8a8c8 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(138,122,154,0.5);
  animation: ti2-hour 60s linear infinite;
}
.scn-invocation-time-2 .clock-hands::after {
  content: '';
  position: absolute; right: 0; top: -6px; width: 12px; height: 12px;
  background: radial-gradient(circle, #c89f5e 0%, #8a6a3a 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px #c89f5e;
}
.scn-invocation-time-2 .clock-gear {
  position: absolute; top: 30%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #5a4a6a 0%, #3a2a4a 100%);
  border-radius: 50%;
  border: 2px solid #7a6a8a;
  box-shadow: 0 0 15px rgba(90,74,106,0.4);
  animation: ti2-gear 12s linear infinite;
}
.scn-invocation-time-2 .figure-kneel {
  position: absolute; bottom: 18%; left: 50%; width: 36px; height: 64px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ti2-kneel 6s ease-in-out infinite;
}
.scn-invocation-time-2 .chain-link {
  position: absolute; top: 25%; left: 30%; width: 100px; height: 6px;
  background: repeating-linear-gradient(90deg, #4a4a6a 0px, #4a4a6a 5px, transparent 5px, transparent 10px);
  transform: rotate(20deg);
  border-radius: 3px;
  animation: ti2-chain 8s ease-in-out infinite;
}
.scn-invocation-time-2 .shadow-pool {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 15%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.7) 0%, transparent 100%);
  filter: blur(6px);
  animation: ti2-shadow 10s ease-in-out infinite;
}
.scn-invocation-time-2 .particle-drift {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 80%;
  background: repeating-linear-gradient(0deg, transparent 0px, rgba(200,159,94,0.02) 1px, transparent 2px);
  filter: blur(4px);
  animation: ti2-particle 25s linear infinite;
}
@keyframes ti2-hour { 0% { transform: translateY(-50%) rotate(30deg) } 100% { transform: translateY(-50%) rotate(390deg) } }
@keyframes ti2-gear { 0% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(360deg) } }
@keyframes ti2-kneel { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-6px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ti2-chain { 0% { opacity:0.5; transform: rotate(20deg) } 50% { opacity:1; transform: rotate(25deg) } 100% { opacity:0.5; transform: rotate(20deg) } }
@keyframes ti2-shadow { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.5 } }
@keyframes ti2-particle { 0% { background-position: 0 0 } 100% { background-position: 0 200% } }

.scn-invocation-time-3 {
  background: 
    linear-gradient(180deg, #12101e 0%, #1a1a2e 40%, #0a0814 100%),
    radial-gradient(ellipse at 30% 80%, #2a2a4a 0%, transparent 70%);
}
.scn-invocation-time-3 .arch-stone {
  position: absolute; bottom: 20%; left: 50%; width: 160px; height: 200px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-invocation-time-3 .stone-block {
  position: absolute; bottom: 25%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border: 1px solid #5a5a6a;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  border-radius: 2px;
}
.scn-invocation-time-3 .stone-block.left { left: 18%; bottom: 30%; animation: ti3-stone-left 18s ease-in-out infinite; }
.scn-invocation-time-3 .stone-block.right { right: 18%; bottom: 28%; animation: ti3-stone-right 20s ease-in-out infinite; }
.scn-invocation-time-3 .ivy-vine {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 100px;
  background: repeating-linear-gradient(45deg, #2a4a2a 0px, #2a4a2a 4px, #1a3a1a 4px, #1a3a1a 8px);
  clip-path: polygon(10% 100%, 90% 100%, 70% 0%, 30% 0%);
  transform-origin: bottom center;
  animation: ti3-ivy 12s ease-in-out infinite;
}
.scn-invocation-time-3 .crack-light {
  position: absolute; bottom: 25%; left: 44%; width: 15px; height: 60px;
  background: linear-gradient(180deg, #c89f5e 0%, transparent 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 0 30px #c89f5e;
  animation: ti3-crack 4s ease-in-out infinite alternate;
}
.scn-invocation-time-3 .worm-hole {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 20px;
  background: radial-gradient(circle, #0a0a0a 0%, #1a1a1a 50%, transparent 100%);
  border-radius: 50%;
  animation: ti3-worm 8s ease-in-out infinite;
}
.scn-invocation-time-3 .dust-mote {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 60%;
  background: radial-gradient(ellipse at 20% 30%, rgba(200,159,94,0.05) 0%, transparent 60%);
  filter: blur(8px);
  animation: ti3-dust 25s linear infinite;
}
@keyframes ti3-stone-left { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-8px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ti3-stone-right { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ti3-ivy { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) translateY(-2px) } 100% { transform: scaleY(1) } }
@keyframes ti3-crack { 0% { opacity:0.4; height:60px } 100% { opacity:1; height:80px } }
@keyframes ti3-worm { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(4px,-3px) rotate(180deg) } 100% { transform: translate(0,0) rotate(360deg) } }
@keyframes ti3-dust { 0% { background-position: 0% 0% } 100% { background-position: 100% 100% } }

/* lucrece-requests-paper */
.scn-lucrece-requests-paper {
  background: 
    linear-gradient(180deg, #1a1010 0%, #2a1a12 40%, #3a2218 100%),
    radial-gradient(ellipse at 50% 30%, #4a3020 0%, transparent 60%);
}
.scn-lucrece-requests-paper .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a12 0%, #1a1010 100%);
  opacity: 0.8;
}
.scn-lucrece-requests-paper .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2218 0%, #1a1010 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-lucrece-requests-paper .desk {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  transform: perspective(300px) rotateX(5deg);
}
.scn-lucrece-requests-paper .candle-glow {
  position: absolute; bottom: 30%; left: 25%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #ffcc80 0%, #d09050 40%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(200,140,70,.5), 0 0 60px 20px rgba(200,140,70,.2);
  animation: lrp-glow 2s ease-in-out infinite alternate;
}
.scn-lucrece-requests-paper .figure {
  position: absolute; bottom: 18%; left: 40%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0606 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lrp-breathe 3s ease-in-out infinite;
}
.scn-lucrece-requests-paper .paper {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 28px;
  background: radial-gradient(ellipse, #d4c8a0 0%, #a89070 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  transform: translateX(-20px) rotate(-2deg);
  animation: lrp-paper 4s ease-in-out infinite;
}
.scn-lucrece-requests-paper .inkpot {
  position: absolute; bottom: 22%; left: 35%; width: 14px; height: 16px;
  background: linear-gradient(180deg, #2a1a12 0%, #0a0606 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: inset 0 2px 4px rgba(255,255,255,.05), 0 3px 6px rgba(0,0,0,.5);
  transform: translateX(-10px);
  animation: lrp-ink 5s ease-in-out infinite;
}
@keyframes lrp-glow {
  0% { box-shadow: 0 0 20px 5px rgba(200,140,70,.4), 0 0 40px 10px rgba(200,140,70,.15); opacity: .8; }
  50% { box-shadow: 0 0 35px 12px rgba(255,180,80,.7), 0 0 70px 20px rgba(255,180,80,.3); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(200,140,70,.5), 0 0 50px 15px rgba(200,140,70,.2); opacity: .9; }
}
@keyframes lrp-breathe {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(0deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes lrp-paper {
  0% { transform: translateX(-20px) rotate(-2deg); opacity: .9; }
  50% { transform: translateX(-18px) rotate(-1deg); opacity: 1; }
  100% { transform: translateX(-20px) rotate(-2deg); opacity: .9; }
}
@keyframes lrp-ink {
  0% { transform: translateX(-10px) rotate(0deg); }
  30% { transform: translateX(-10px) rotate(2deg); }
  70% { transform: translateX(-10px) rotate(-1deg); }
  100% { transform: translateX(-10px) rotate(0deg); }
}

/* lucrece-writes-letter */
.scn-lucrece-writes-letter {
  background: 
    linear-gradient(180deg, #c0d0e0 0%, #b0c0d0 40%, #8090a0 100%),
    radial-gradient(ellipse at 70% 50%, #d0e0f0 0%, transparent 70%);
}
.scn-lucrece-writes-letter .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #b0c0d0 0%, #8090a0 100%);
  opacity: .6;
}
.scn-lucrece-writes-letter .window {
  position: absolute; top: 10%; left: 55%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #d8e8f8 0%, #b0c8e0 100%);
  border: 2px solid #5a6a7a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(200,220,255,.3);
}
.scn-lucrece-writes-letter .window-light {
  position: absolute; top: 10%; left: 55%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(200,220,255,.2) 0%, transparent 100%);
  transform: skewX(-10deg);
  filter: blur(10px);
  animation: lww-light 4s ease-in-out infinite alternate;
}
.scn-lucrece-writes-letter .desk {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 14%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  transform: perspective(200px) rotateX(10deg);
}
.scn-lucrece-writes-letter .figure {
  position: absolute; bottom: 20%; left: 45%; width: 22px; 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: lww-figure 3s ease-in-out infinite;
}
.scn-lucrece-writes-letter .paper {
  position: absolute; bottom: 28%; left: 42%; width: 50px; height: 32px;
  background: radial-gradient(ellipse, #f0e8d0 0%, #d0c0a0 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  transform: rotate(2deg);
  animation: lww-paper 5s ease-in-out infinite;
}
.scn-lucrece-writes-letter .quill {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #d0c8b8 0%, #b0a898 70%, #8a7a6a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  transform: rotate(15deg);
  animation: lww-quill 2s ease-in-out infinite alternate;
}
.scn-lucrece-writes-letter .ink-blot {
  position: absolute; bottom: 29%; left: 46%; width: 10px; height: 6px;
  background: #2a1a1a;
  border-radius: 50%;
  filter: blur(1px);
  opacity: .7;
  animation: lww-blot 6s linear infinite;
}
@keyframes lww-light {
  0% { opacity: .3; transform: skewX(-10deg) scale(1); }
  50% { opacity: .6; transform: skewX(-12deg) scale(1.02); }
  100% { opacity: .4; transform: skewX(-10deg) scale(1); }
}
@keyframes lww-figure {
  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 lww-paper {
  0% { transform: rotate(2deg) scale(1); }
  50% { transform: rotate(3deg) scale(1.01); }
  100% { transform: rotate(2deg) scale(1); }
}
@keyframes lww-quill {
  0% { transform: rotate(12deg); }
  100% { transform: rotate(18deg); }
}
@keyframes lww-blot {
  0% { opacity: .4; transform: scale(1); }
  20% { opacity: 1; transform: scale(1.2); }
  50% { opacity: .8; transform: scale(1.1); }
  80% { opacity: .5; transform: scale(.9); }
  100% { opacity: .4; transform: scale(1); }
}

/* item-letter */
.scn-item-letter {
  background: 
    linear-gradient(180deg, #a0b0c0 0%, #8090a0 50%, #607080 100%),
    radial-gradient(ellipse at 60% 40%, #c0d0e0 0%, transparent 70%);
}
.scn-item-letter .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(160,176,192,.5) 0%, transparent 100%);
}
.scn-item-letter .window-light {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(180,200,220,.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: itl-light 5s ease-in-out infinite alternate;
}
.scn-item-letter .paper-main {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 50%;
  background: radial-gradient(ellipse at 50% 40%, #f0e8d0 0%, #d0c0a0 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  transform: perspective(400px) rotateY(-5deg);
  animation: itl-paper 6s ease-in-out infinite;
}
.scn-item-letter .quill {
  position: absolute; bottom: 35%; left: 25%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #d0c8b8 0%, #b0a898 60%, #8a7a6a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  transform: rotate(20deg);
  animation: itl-quill 1.5s ease-in-out infinite alternate;
}
.scn-item-letter .hand {
  position: absolute; bottom: 30%; left: 30%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #b8a898 0%, #9a8a7a 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(10deg);
  animation: itl-hand 3s ease-in-out infinite;
}
.scn-item-letter .ink-drops {
  position: absolute; bottom: 22%; left: 35%; width: 6px; height: 6px;
  background: #2a1a1a;
  border-radius: 50%;
  box-shadow: 10px 8px 0 #2a1a1a, -5px 12px 0 #2a1a1a;
  animation: itl-ink 4s ease-in-out infinite;
}
@keyframes itl-light {
  0% { opacity: .4; transform: scale(1); }
  50% { opacity: .7; transform: scale(1.05); }
  100% { opacity: .5; transform: scale(1); }
}
@keyframes itl-paper {
  0% { transform: perspective(400px) rotateY(-5deg) translateY(0); }
  50% { transform: perspective(400px) rotateY(-6deg) translateY(-2px); }
  100% { transform: perspective(400px) rotateY(-5deg) translateY(0); }
}
@keyframes itl-quill {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(22deg) translateY(-2px); }
  100% { transform: rotate(18deg) translateY(0); }
}
@keyframes itl-hand {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-1px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes itl-ink {
  0% { opacity: .6; transform: scale(1); }
  30% { opacity: 1; transform: scale(1.2); }
  70% { opacity: .8; transform: scale(1.1); }
  100% { opacity: .6; transform: scale(1); }
}

/* letter-sealed */
.scn-letter-sealed {
  background: 
    linear-gradient(180deg, #1a0a0a 0%, #2a1210 40%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 20%, #3a1a12 0%, transparent 70%);
}
.scn-letter-sealed .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(26,10,10,.8) 0%, transparent 100%);
  opacity: .7;
}
.scn-letter-sealed .table {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1210 100%);
  border-radius: 4px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  transform: perspective(300px) rotateX(8deg);
}
.scn-letter-sealed .candle {
  position: absolute; bottom: 30%; left: 30%; width: 10px; height: 22px;
  background: linear-gradient(180deg, #d4b890 0%, #b09070 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 10px 2px rgba(200,140,70,.3);
}
.scn-letter-sealed .flame {
  position: absolute; bottom: 41%; left: 30.5%; width: 6px; height: 12px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #ffa040 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(255,160,64,.5), 0 0 40px 15px rgba(255,160,64,.2);
  animation: lse-flame 1s ease-in-out infinite alternate;
}
.scn-letter-sealed .letter {
  position: absolute; bottom: 20%; left: 40%; width: 70px; height: 45px;
  background: radial-gradient(ellipse, #c8b890 0%, #a09070 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  transform: rotate(-1deg);
  animation: lse-letter 5s ease-in-out infinite;
}
.scn-letter-sealed .seal {
  position: absolute; bottom: 22%; left: 50%; width: 14px; height: 14px;
  background: radial-gradient(circle at 50% 50%, #b08060 0%, #7a5040 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  transform: translateX(-7px);
  animation: lse-seal 3s ease-in-out infinite;
}
.scn-letter-sealed .knife {
  position: absolute; bottom: 18%; left: 55%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #a09080 0%, #6a5a4a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(25deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-letter-sealed .shadow-hand {
  position: absolute; bottom: 16%; left: 35%; width: 28px; height: 20px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(3px);
  opacity: .6;
  animation: lse-hand 4s ease-in-out infinite;
}
@keyframes lse-flame {
  0% { transform: scaleY(1) rotate(-3deg); opacity: .8; }
  50% { transform: scaleY(1.15) rotate(0deg); opacity: 1; }
  100% { transform: scaleY(1) rotate(3deg); opacity: .8; }
}
@keyframes lse-letter {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes lse-seal {
  0% { transform: translateX(-7px) scale(1); }
  50% { transform: translateX(-7px) scale(1.05); }
  100% { transform: translateX(-7px) scale(1); }
}
@keyframes lse-hand {
  0% { transform: translateY(0) rotate(0deg); opacity: .5; }
  25% { transform: translateY(-3px) rotate(2deg); opacity: .7; }
  50% { transform: translateY(0) rotate(0deg); opacity: .5; }
  75% { transform: translateY(-2px) rotate(-2deg); opacity: .6; }
  100% { transform: translateY(0) rotate(0deg); opacity: .5; }
}

.scn-envy-stings-hope {
  background: linear-gradient(180deg, #fceabb 0%, #f8b500 40%, #d4910a 100%), radial-gradient(ellipse at 30% 80%, #ffd966 0%, transparent 60%);
}
.scn-envy-stings-hope .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffe68a 0%, #fceabb 50%, transparent 100%);
  animation: esh-sky 8s ease-in-out infinite alternate;
}
.scn-envy-stings-hope .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: esh-ground 10s ease-in-out infinite alternate;
}
.scn-envy-stings-hope .figure {
  position: absolute; bottom: 28%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: esh-figure 4s ease-in-out infinite;
}
.scn-envy-stings-hope .thorn {
  position: absolute; bottom: 35%; width: 16px; height: 4px;
  background: #a0461a;
  border-radius: 50% 0 0 50% / 100% 0 0 100%;
  transform-origin: right center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-envy-stings-hope .thorn-1 {
  left: 48%;
  animation: esh-sting1 1.5s ease-in-out infinite;
}
.scn-envy-stings-hope .thorn-2 {
  left: 55%; bottom: 33%;
  transform: rotate(20deg);
  animation: esh-sting2 2s ease-in-out infinite alternate;
}
.scn-envy-stings-hope .shadow {
  position: absolute; bottom: 25%; left: 36%; width: 40px; height: 6px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: esh-shadow 4s ease-in-out infinite;
}
.scn-envy-stings-hope .halo {
  position: absolute; top: 15%; left: 38%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,214,128,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: esh-halo 6s ease-in-out infinite alternate;
}
@keyframes esh-sky { 0%{ opacity:0.7 } 50%{ opacity:1 } 100%{ opacity:0.8 } }
@keyframes esh-ground { 0%{ transform: translateY(0) } 50%{ transform: translateY(-2px) } 100%{ transform: translateY(0) } }
@keyframes esh-figure { 0%,100%{ transform: translateX(0) translateY(0) rotate(-2deg) } 25%{ transform: translateX(4px) translateY(-2px) rotate(1deg) } 50%{ transform: translateX(8px) translateY(0) rotate(-1deg) } 75%{ transform: translateX(4px) translateY(-1px) rotate(2deg) } }
@keyframes esh-sting1 { 0%,100%{ transform: scaleX(1) rotate(0) } 50%{ transform: scaleX(1.3) rotate(-10deg) } }
@keyframes esh-sting2 { 0%,100%{ transform: rotate(20deg) scaleX(1) } 50%{ transform: rotate(30deg) scaleX(1.2) } }
@keyframes esh-shadow { 0%,100%{ transform: scaleX(1) } 50%{ transform: scaleX(1.2) translateX(4px) } }
@keyframes esh-halo { 0%{ opacity:0.3; transform: scale(0.9) } 50%{ opacity:0.7; transform: scale(1.1) } 100%{ opacity:0.4; transform: scale(1) } }

.scn-collatium-arrival-welcome {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #daa520 100%), radial-gradient(ellipse at 50% 0%, #fff4d0 0%, transparent 60%);
}
.scn-collatium-arrival-welcome .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, transparent 100%);
  animation: caw-sky 12s ease-in-out infinite alternate;
}
.scn-collatium-arrival-welcome .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8fbc8f 0%, #6b8e23 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-collatium-arrival-welcome .collatium {
  position: absolute; bottom: 28%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, #d2b48c 0%, #8b7355 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3), inset 0 8px 20px rgba(255,255,255,0.2);
  animation: caw-building 20s ease-in-out infinite alternate;
}
.scn-collatium-arrival-welcome .door {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #5c4033 0%, #3b2f2a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
  animation: caw-door 8s ease-in-out infinite alternate;
}
.scn-collatium-arrival-welcome .lord {
  position: absolute; bottom: 28%; left: 28%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #4a3b32 0%, #2a1f18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: caw-lord 6s ease-in-out infinite;
}
.scn-collatium-arrival-welcome .lady {
  position: absolute; bottom: 30%; left: 52%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: caw-lady 8s ease-in-out infinite;
}
.scn-collatium-arrival-welcome .sun {
  position: absolute; top: 8%; right: 10%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd700 0%, #ffb347 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255,215,0,0.4);
  animation: caw-sun 30s linear infinite;
}
@keyframes caw-sky { 0%{ opacity:0.7 } 50%{ opacity:1 } 100%{ opacity:0.8 } }
@keyframes caw-building { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-3px) } }
@keyframes caw-door { 0%,100%{ transform: scaleY(1) } 50%{ transform: scaleY(1.05) } }
@keyframes caw-lord { 0%,100%{ transform: translateX(0) rotate(0) } 25%{ transform: translateX(10px) rotate(3deg) } 50%{ transform: translateX(20px) rotate(0) } 75%{ transform: translateX(10px) rotate(-3deg) } }
@keyframes caw-lady { 0%,100%{ transform: translateY(0) rotate(-2deg) } 50%{ transform: translateY(-3px) rotate(2deg) } }
@keyframes caw-sun { 0%{ transform: translateX(0) scale(1) } 50%{ transform: translateX(20px) scale(1.1) } 100%{ transform: translateX(0) scale(1) } }

.scn-heraldry-face-strife {
  background: linear-gradient(180deg, #fdf5e6 0%, #f5deb3 50%, #deb887 100%), radial-gradient(ellipse at 50% 100%, #f5deb3 0%, transparent 70%);
}
.scn-heraldry-face-strife .field {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #fff8dc 0%, #f5deb3 100%);
  animation: hfs-field 15s ease-in-out infinite alternate;
}
.scn-heraldry-face-strife .shield {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 55%;
  background: linear-gradient(90deg, #a0461a 0%, #c8553d 50%, #e8d8c8 50%, #f5f5dc 100%);
  border-radius: 10% 10% 20% 20% / 15% 15% 30% 30%;
  box-shadow: 0 0 20px 4px rgba(0,0,0,0.3);
  animation: hfs-shield 12s ease-in-out infinite alternate;
}
.scn-heraldry-face-strife .red-half {
  position: absolute; bottom: 20%; left: 30%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 10% 0 0 20% / 15% 0 0 30%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.2);
  animation: hfs-red 8s ease-in-out infinite alternate;
}
.scn-heraldry-face-strife .white-half {
  position: absolute; bottom: 20%; right: 30%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #fff5ee 0%, #f5f5dc 100%);
  border-radius: 0 10% 20% 0 / 0 15% 30% 0;
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.1);
  animation: hfs-white 10s ease-in-out infinite alternate;
}
.scn-heraldry-face-strife .crest {
  position: absolute; top: 12%; left: 43%; width: 14%; height: 12%;
  background: radial-gradient(circle, #d4af37 0%, #b8860b 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(212,175,55,0.5);
  animation: hfs-crest 6s ease-in-out infinite alternate;
}
.scn-heraldry-face-strife .banner {
  position: absolute; top: 22%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c8553d, #a0461a);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
}
.scn-heraldry-face-strife .banner-l {
  left: 26%;
  animation: hfs-banner-l 4s ease-in-out infinite alternate;
}
.scn-heraldry-face-strife .banner-r {
  right: 26%;
  background: linear-gradient(180deg, #f5f5dc, #e8d8c8);
  animation: hfs-banner-r 4.5s ease-in-out infinite alternate;
}
@keyframes hfs-field { 0%{ opacity:0.7 } 50%{ opacity:1 } 100%{ opacity:0.85 } }
@keyframes hfs-shield { 0%,100%{ transform: rotate(0) scale(1) } 50%{ transform: rotate(3deg) scale(1.02) } }
@keyframes hfs-red { 0%{ opacity:0.9 } 50%{ opacity:1 } 100%{ opacity:0.95 } }
@keyframes hfs-white { 0%{ opacity:0.8 } 50%{ opacity:1 } 100%{ opacity:0.9 } }
@keyframes hfs-crest { 0%{ transform: scale(0.9) rotate(-5deg) } 50%{ transform: scale(1.1) rotate(0) } 100%{ transform: scale(0.95) rotate(5deg) } }
@keyframes hfs-banner-l { 0%,100%{ transform: rotate(-5deg) translateX(0) } 50%{ transform: rotate(5deg) translateX(2px) } }
@keyframes hfs-banner-r { 0%,100%{ transform: rotate(5deg) translateX(0) } 50%{ transform: rotate(-5deg) translateX(-2px) } }

.scn-silent-war-lilies {
  background: linear-gradient(180deg, #f0ffff 0%, #e6e6fa 40%, #d8bfd8 100%), radial-gradient(ellipse at 50% 100%, #e6e6fa 0%, transparent 60%);
}
.scn-silent-war-lilies .field {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f5fffa 0%, #f0fff0 100%);
  animation: swl-field 20s ease-in-out infinite alternate;
}
.scn-silent-war-lilies .mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 60%, rgba(255,255,255,0.4) 0%, transparent 50%), radial-gradient(ellipse at 70% 40%, rgba(230,230,250,0.3) 0%, transparent 50%);
  animation: swl-mist 30s linear infinite alternate;
}
.scn-silent-war-lilies .lily-stalk {
  position: absolute; bottom: 10%; width: 4px; height: 40%;
  background: linear-gradient(180deg, #3cb371 0%, #2e8b57 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  box-shadow: -1px 0 2px rgba(0,0,0,0.2);
}
.scn-silent-war-lilies .stalk-1 {
  left: 25%;
  animation: swl-stalk-l1 6s ease-in-out infinite alternate;
}
.scn-silent-war-lilies .stalk-2 {
  left: 35%;
  height: 45%;
  animation: swl-stalk-l2 8s ease-in-out infinite alternate reverse;
}
.scn-silent-war-lilies .rose-stalk {
  position: absolute; bottom: 10%; width: 4px; height: 35%;
  background: linear-gradient(180deg, #8b4513 0%, #a0522d 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  box-shadow: 1px 0 2px rgba(0,0,0,0.2);
}
.scn-silent-war-lilies .stalk-3 {
  right: 35%;
  animation: swl-stalk-r1 5s ease-in-out infinite alternate;
}
.scn-silent-war-lilies .stalk-4 {
  right: 25%;
  height: 42%;
  animation: swl-stalk-r2 7s ease-in-out infinite alternate reverse;
}
.scn-silent-war-lilies .blossom {
  position: absolute; border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(0,0,0,0.1);
}
.scn-silent-war-lilies .blossom-white {
  width: 30px; height: 30px;
  background: radial-gradient(circle, #fffafa 0%, #f0ffff 70%);
  border: 1px solid #e0e0e0;
}
.scn-silent-war-lilies .blossom-white::after {
  content: ''; position: absolute; top: 30%; left: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd700 0%, #daa520 100%);
  border-radius: 50%;
}
.scn-silent-war-lilies .blossom-red {
  width: 28px; height: 28px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 70%);
  border: 1px solid #8b3a2a;
}
.scn-silent-war-lilies .blossom-red::after {
  content: ''; position: absolute; top: 25%; left: 25%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ff6347 0%, #dc143c 100%);
  border-radius: 50%;
}
.scn-silent-war-lilies .blossom-white { bottom: 48%; left: 28%; animation: swl-lily 4s ease-in-out infinite; }
.scn-silent-war-lilies .blossom-red { bottom: 45%; right: 28%; animation: swl-rose 3.5s ease-in-out infinite; }
@keyframes swl-field { 0%{ opacity:0.8 } 50%{ opacity:1 } 100%{ opacity:0.85 } }
@keyframes swl-mist { 0%{ opacity:0.3 } 50%{ opacity:0.6 } 100%{ opacity:0.2 } }
@keyframes swl-stalk-l1 { 0%,100%{ transform: rotate(-5deg) } 50%{ transform: rotate(5deg) } }
@keyframes swl-stalk-l2 { 0%,100%{ transform: rotate(3deg) } 50%{ transform: rotate(-3deg) } }
@keyframes swl-stalk-r1 { 0%,100%{ transform: rotate(5deg) } 50%{ transform: rotate(-5deg) } }
@keyframes swl-stalk-r2 { 0%,100%{ transform: rotate(-4deg) } 50%{ transform: rotate(4deg) } }
@keyframes swl-lily { 0%,100%{ transform: translateY(0) scale(1) } 50%{ transform: translateY(-4px) scale(1.05) } }
@keyframes swl-rose { 0%,100%{ transform: translateY(0) scale(1) rotate(0) } 50%{ transform: translateY(-3px) scale(1.1) rotate(10deg) } }

/* Scene 1: lucrece-lament-2 */
.scn-lucrece-lament-2 {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1028 40%, #0f0a1a 100%),
              radial-gradient(ellipse at 50% 50%, #2a2040 0%, transparent 70%);
}
.scn-lucrece-lament-2 .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1028 50%, #0f0a1a 100%);
  animation: lc2-bg 20s ease-in-out infinite alternate;
}
.scn-lucrece-lament-2 .wall-left {
  position: absolute; bottom: 30%; left: 0; width: 40%; height: 70%;
  background: linear-gradient(90deg, #2a2035 0%, #1a1028 100%);
  border-radius: 0 10% 10% 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
}
.scn-lucrece-lament-2 .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1525 0%, #0f0a1a 100%);
  box-shadow: inset 0 8px 15px rgba(0,0,0,.5);
}
.scn-lucrece-lament-2 .lucrece {
  position: absolute; bottom: 10%; left: 15%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a5a 0%, #2a2035 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lc2-lucrece 6s ease-in-out infinite;
}
.scn-lucrece-lament-2 .tarquin {
  position: absolute; bottom: 10%; right: 20%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1020 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lc2-tarquin 8s ease-in-out infinite alternate;
}
.scn-lucrece-lament-2 .shadow-creep {
  position: absolute; bottom: 0; right: 10%; width: 60px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%);
  animation: lc2-shadow 8s ease-in-out infinite alternate;
}
.scn-lucrece-lament-2 .window-faint {
  position: absolute; top: 15%; left: 55%; width: 30px; height: 45px;
  background: rgba(20,20,40,.3);
  border: 2px solid #2a2040;
  border-radius: 4px;
  box-shadow: 0 0 8px 2px rgba(30,30,60,.2);
  animation: lc2-window 5s ease-in-out infinite alternate;
}
@keyframes lc2-bg { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes lc2-lucrece { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes lc2-tarquin { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-8px) translateY(-2px) } 100% { transform: translateX(-15px) translateY(-1px) } }
@keyframes lc2-shadow { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.3) translateX(-5px) } 100% { transform: scaleX(0.9) translateX(-10px) } }
@keyframes lc2-window { 0% { opacity: .1; box-shadow: 0 0 6px 1px rgba(30,30,60,.1); } 50% { opacity: .3; box-shadow: 0 0 12px 3px rgba(40,40,80,.2); } 100% { opacity: .15; box-shadow: 0 0 8px 2px rgba(30,30,60,.1); } }

/* Scene 2: lucrece-lament-3 */
.scn-lucrece-lament-3 {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0f0a18 100%),
              radial-gradient(ellipse at 30% 80%, #2a3040 0%, transparent 70%);
}
.scn-lucrece-lament-3 .sky-dawn {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 30%, #3a3a5e 60%, #1a1a2e 100%);
  animation: lc3-sky 30s ease-in-out infinite alternate;
}
.scn-lucrece-lament-3 .horizon {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 8px;
  background: linear-gradient(90deg, transparent 0%, #3a3a5e 20%, #5a5a7a 50%, #3a3a5e 80%, transparent 100%);
  opacity: .4;
  animation: lc3-horizon 20s ease-in-out infinite alternate;
}
.scn-lucrece-lament-3 .departing-figure {
  position: absolute; bottom: 10%; left: 10%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lc3-depart 10s ease-in-out infinite alternate;
}
.scn-lucrece-lament-3 .kneeling-figure {
  position: absolute; bottom: 8%; right: 20%; width: 35px; height: 45px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lc3-kneel 7s ease-in-out infinite;
}
.scn-lucrece-lament-3 .window-beam {
  position: absolute; top: 10%; left: 50%; width: 40px; height: 50px;
  border: 2px solid #2a2a4a;
  background: rgba(40,40,80,.3);
  border-radius: 4px;
  box-shadow: 0 0 10px 2px rgba(40,40,80,.2);
  animation: lc3-window 6s ease-in-out infinite alternate;
}
.scn-lucrece-lament-3 .light-shaft {
  position: absolute; top: 12%; left: 52%; width: 10px; height: 0;
  border-left: 2px solid rgba(60,60,100,.3);
  border-right: 2px solid rgba(60,60,100,.3);
  animation: lc3-shaft 12s ease-in-out infinite alternate;
}
.scn-lucrece-lament-3 .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1525 0%, #0f0a18 100%);
}
@keyframes lc3-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes lc3-horizon { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.5) } 100% { transform: scaleY(0.8) } }
@keyframes lc3-depart { 0% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(-12px) translateY(-3px) rotate(5deg) } 100% { transform: translateX(-20px) translateY(-2px) rotate(8deg) } }
@keyframes lc3-kneel { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes lc3-window { 0% { opacity: .1; box-shadow: 0 0 5px 1px rgba(40,40,80,.1) } 50% { opacity: .3; box-shadow: 0 0 15px 4px rgba(60,60,100,.2) } 100% { opacity: .2; box-shadow: 0 0 8px 2px rgba(40,40,80,.1) } }
@keyframes lc3-shaft { 0% { height: 0; opacity: 0 } 50% { height: 40px; opacity: .3 } 100% { height: 0; opacity: 0 } }

/* Scene 3: lucrece-lament-4 */
.scn-lucrece-lament-4 {
  background: linear-gradient(180deg, #080818 0%, #12102a 40%, #0a0818 100%),
              radial-gradient(circle at 50% 30%, #1a1a3a 0%, transparent 70%);
}
.scn-lucrece-lament-4 .bg-abyss {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #080818 0%, #12102a 50%, #080818 100%);
  animation: lc4-bg 25s ease-in-out infinite alternate;
}
.scn-lucrece-lament-4 .head-profile {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 60% 40%, #3a2a4a 0%, #1a1028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: lc4-head 9s ease-in-out infinite;
}
.scn-lucrece-lament-4 .tear-drop-1 {
  position: absolute; bottom: 35%; left: 48%; width: 6px; height: 8px;
  background: radial-gradient(circle, #8a8aaa 0%, #5a5a7a 100%);
  border-radius: 50%;
  animation: lc4-tear1 4s ease-in-out infinite;
}
.scn-lucrece-lament-4 .tear-drop-2 {
  position: absolute; bottom: 32%; left: 52%; width: 5px; height: 7px;
  background: radial-gradient(circle, #8a8aaa 0%, #5a5a7a 100%);
  border-radius: 50%;
  animation: lc4-tear2 5s ease-in-out infinite 1s;
}
.scn-lucrece-lament-4 .tear-drop-3 {
  position: absolute; bottom: 28%; left: 50%; width: 7px; height: 9px;
  background: radial-gradient(circle, #8a8aaa 0%, #5a5a7a 100%);
  border-radius: 50%;
  animation: lc4-tear3 3.5s ease-in-out infinite 0.5s;
}
.scn-lucrece-lament-4 .tear-stream {
  position: absolute; bottom: 25%; left: 50%; width: 2px; height: 30%;
  background: linear-gradient(180deg, #5a5a7a 0%, transparent 100%);
  transform: translateX(-50%);
  border-radius: 50%;
  animation: lc4-stream 6s ease-in-out infinite;
}
@keyframes lc4-bg { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes lc4-head { 0% { transform: translateX(-50%) translateY(0) rotate(-3deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes lc4-tear1 { 0% { transform: translateY(0); opacity: .7 } 25% { transform: translateY(-10px); opacity: 1 } 50% { transform: translateY(-20px); opacity: .5 } 75% { transform: translateY(-30px); opacity: .2 } 100% { transform: translateY(-40px); opacity: 0 } }
@keyframes lc4-tear2 { 0% { transform: translateY(0); opacity: .6 } 25% { transform: translateY(-10px); opacity: 1 } 50% { transform: translateY(-20px); opacity: .4 } 75% { transform: translateY(-30px); opacity: .1 } 100% { transform: translateY(-40px); opacity: 0 } }
@keyframes lc4-tear3 { 0% { transform: translateY(0); opacity: .8 } 25% { transform: translateY(-8px); opacity: 1 } 50% { transform: translateY(-18px); opacity: .5 } 75% { transform: translateY(-28px); opacity: .2 } 100% { transform: translateY(-38px); opacity: 0 } }
@keyframes lc4-stream { 0% { opacity: .5; transform: translateX(-50%) scaleY(0.8) } 50% { opacity: .8; transform: translateX(-50%) scaleY(1) } 100% { opacity: .3; transform: translateX(-50%) scaleY(0.6) } }

/* Scene 4: lucrece-lament-5 */
.scn-lucrece-lament-5 {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1028 40%, #0f0a1a 100%),
              radial-gradient(ellipse at 70% 50%, #2a2040 0%, transparent 60%);
}
.scn-lucrece-lament-5 .bg-stage {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1028 50%, #0f0a1a 100%);
  animation: lc5-bg 18s ease-in-out infinite alternate;
}
.scn-lucrece-lament-5 .figure-standing {
  position: absolute; bottom: 15%; left: 35%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a1028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lc5-figure 6s ease-in-out infinite;
}
.scn-lucrece-lament-5 .night-entity {
  position: absolute; top: 5%; right: 5%; width: 150px; height: 180px;
  background: radial-gradient(ellipse at 50% 60%, #0a0a1a 0%, transparent 100%);
  border-radius: 50%;
  opacity: .6;
  animation: lc5-night 15s ease-in-out infinite alternate;
}
.scn-lucrece-lament-5 .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a1525 0%, #0f0a1a 100%);
  box-shadow: inset 0 5px 10px rgba(0,0,0,.5);
}
.scn-lucrece-lament-5 .star-1 {
  position: absolute; top: 10%; left: 20%; width: 4px; height: 4px;
  background: #8a8aba;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(138,138,186,.5);
  animation: lc5-star1 4s ease-in-out infinite alternate;
}
.scn-lucrece-lament-5 .star-2 {
  position: absolute; top: 20%; left: 60%; width: 3px; height: 3px;
  background: #8a8aba;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(138,138,186,.4);
  animation: lc5-star2 5s ease-in-out infinite alternate 1s;
}
.scn-lucrece-lament-5 .star-3 {
  position: absolute; top: 5%; right: 30%; width: 5px; height: 5px;
  background: #8a8aba;
  border-radius: 50%;
  box-shadow: 0 0 8px 3px rgba(138,138,186,.6);
  animation: lc5-star3 3.5s ease-in-out infinite alternate 0.5s;
}
@keyframes lc5-bg { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes lc5-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(3deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 75% { transform: translateY(-5px) rotate(4deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes lc5-night { 0% { transform: scale(0.95) translateX(0); opacity: .4 } 50% { transform: scale(1.05) translateX(-10px); opacity: .6 } 100% { transform: scale(1) translateX(0); opacity: .5 } }
@keyframes lc5-star1 { 0% { opacity: .3; transform: scale(0.8) } 50% { opacity: .9; transform: scale(1.2) } 100% { opacity: .5; transform: scale(1) } }
@keyframes lc5-star2 { 0% { opacity: .4; transform: scale(1) } 50% { opacity: .8; transform: scale(1.1) } 100% { opacity: .2; transform: scale(0.9) } }
@keyframes lc5-star3 { 0% { opacity: .2; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.3) } 100% { opacity: .6; transform: scale(1) } }

/* locks-between */
.scn-locks-between {
  background: linear-gradient(180deg, #0c0c2a 0%, #16163a 40%, #1e1e4a 100%), radial-gradient(ellipse at 50% 80%, #28284a 0%, transparent 70%);
}
.scn-locks-between .background {
  position: absolute; inset: 0; background: linear-gradient(0deg, #0a0a1e 0%, transparent 50%), linear-gradient(90deg, #12122e 0%, transparent 30%, transparent 70%, #12122e 100%); animation: lb-bg 8s ease-in-out infinite alternate;
}
.scn-locks-between .door-left {
  position: absolute; top: 20%; left: 15%; width: 30%; height: 70%; background: linear-gradient(180deg, #2e2e4a 0%, #1a1a30 100%); border-radius: 4% 0 0 4%; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: lb-door 6s ease-in-out infinite;
}
.scn-locks-between .door-right {
  position: absolute; top: 20%; right: 15%; width: 30%; height: 70%; background: linear-gradient(180deg, #2e2e4a 0%, #1a1a30 100%); border-radius: 0 4% 4% 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: lb-door 6s ease-in-out infinite reverse;
}
.scn-locks-between .lock {
  position: absolute; top: 45%; left: 50%; width: 12px; height: 18px; transform: translate(-50%, -50%); background: radial-gradient(circle at 50% 40%, #6a6a8e, #3a3a56); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; box-shadow: 0 0 12px rgba(100,100,140,0.6); animation: lb-lock 4s ease-in-out infinite alternate;
}
.scn-locks-between .thief {
  position: absolute; bottom: 12%; left: 40%; width: 24px; height: 50px; background: linear-gradient(180deg, #0c0c1a, #05050e); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lb-thief 3s ease-in-out infinite;
}
.scn-locks-between .weasel-a {
  position: absolute; top: 15%; right: 12%; width: 16px; height: 8px; background: #2a2a3e; border-radius: 60% 40% 30% 20%; filter: blur(2px); animation: lb-weasel 5s ease-in-out infinite;
}
.scn-locks-between .weasel-b {
  position: absolute; top: 25%; right: 8%; width: 14px; height: 7px; background: #222236; border-radius: 50% 30% 20% 10%; filter: blur(2px); animation: lb-weasel 5s ease-in-out 2s infinite reverse;
}
@keyframes lb-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes lb-door { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(8px) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes lb-lock { 0% { transform: translate(-50%, -50%) rotate(-5deg) scale(1); } 50% { transform: translate(-50%, -50%) rotate(5deg) scale(1.1); } 100% { transform: translate(-50%, -50%) rotate(-5deg) scale(0.95); } }
@keyframes lb-thief { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lb-weasel { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(6px,-3px) scale(0.9); } 100% { transform: translate(0,0) scale(1); } }

/* wind-wars-with-torch */
.scn-wind-wars-with-torch {
  background: linear-gradient(180deg, #1a0a05 0%, #2c0a05 30%, #3a1005 60%, #2c0800 100%), radial-gradient(circle at 50% 60%, #2c0a05 0%, transparent 70%);
}
.scn-wind-wars-with-torch .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,3,0,0.6) 0%, transparent 50%, rgba(10,3,0,0.4) 100%); animation: ww-bg 10s ease-in-out infinite alternate;
}
.scn-wind-wars-with-torch .torch-stick {
  position: absolute; bottom: 20%; left: 50%; width: 6px; height: 45%; transform: translateX(-50%); background: linear-gradient(180deg, #3a1a0a, #1a0a00); border-radius: 0 0 15% 15%; animation: ww-stick 3s ease-in-out infinite;
}
.scn-wind-wars-with-torch .flame {
  position: absolute; bottom: 62%; left: 50%; width: 20px; height: 28px; transform: translateX(-50%); background: radial-gradient(circle at 50% 30%, #ffa030, #ff6020 40%, #a02000 70%, transparent 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; box-shadow: 0 0 30px 10px #ff6020, 0 0 60px 20px rgba(255,96,32,0.4); animation: ww-flame 0.4s ease-in-out infinite alternate;
}
.scn-wind-wars-with-torch .smoke-a {
  position: absolute; top: 12%; left: 35%; width: 50px; height: 30px; background: radial-gradient(circle, rgba(60,30,10,0.8), transparent); filter: blur(8px); animation: ww-smoke 4s ease-in-out infinite;
}
.scn-wind-wars-with-torch .smoke-b {
  position: absolute; top: 8%; left: 50%; width: 60px; height: 40px; background: radial-gradient(circle, rgba(50,25,5,0.7), transparent); filter: blur(10px); animation: ww-smoke 4s ease-in-out 2s infinite reverse;
}
.scn-wind-wars-with-torch .figure {
  position: absolute; bottom: 15%; left: 40%; width: 30px; height: 55px; background: linear-gradient(180deg, #0d0502, #050100); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ww-figure 2s ease-in-out infinite;
}
.scn-wind-wars-with-torch .gust {
  position: absolute; top: 25%; right: -20%; width: 100%; height: 20px; background: linear-gradient(90deg, transparent, rgba(80,40,10,0.3) 20%, transparent); filter: blur(6px); animation: ww-gust 5s linear infinite;
}
@keyframes ww-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ww-stick { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes ww-flame { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(0.9) rotate(-3deg); } 100% { transform: translateX(-50%) scale(1.1) rotate(3deg); } }
@keyframes ww-smoke { 0% { transform: translate(0,0) scale(1); opacity: 0.6; } 50% { transform: translate(20px,-15px) scale(1.2); opacity: 1; } 100% { transform: translate(40px,-30px) scale(1.5); opacity: 0; } }
@keyframes ww-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(3deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 75% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ww-gust { 0% { transform: translateX(0); } 100% { transform: translateX(-120%); } }

/* item-lucreces-glove */
.scn-item-lucreces-glove {
  background: linear-gradient(180deg, #2c0a05 0%, #3a1008 30%, #2c0800 60%, #1a0500 100%), radial-gradient(ellipse at 60% 40%, #4a1a0a 0%, transparent 70%);
}
.scn-item-lucreces-glove .bg-fire {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(80,30,5,0.3) 0%, transparent 50%, rgba(80,30,5,0.2) 100%); animation: ig-bg 12s ease-in-out infinite alternate;
}
.scn-item-lucreces-glove .glove {
  position: absolute; bottom: 40%; left: 40%; width: 40px; height: 50px; background: linear-gradient(180deg, #6a3a2a, #3a1a12); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: inset 0 0 10px rgba(0,0,0,0.6); transform: rotate(10deg); animation: ig-glove 5s ease-in-out infinite;
}
.scn-item-lucreces-glove .needle {
  position: absolute; bottom: 53%; left: 46%; width: 2px; height: 18px; background: linear-gradient(180deg, #a0a0b0, #707080); border-radius: 0 0 20% 20%; transform: rotate(15deg); animation: ig-needle 3s ease-in-out infinite alternate;
}
.scn-item-lucreces-glove .hand {
  position: absolute; bottom: 30%; left: 32%; width: 28px; height: 40px; background: linear-gradient(180deg, #2a1008, #0d0502); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ig-hand 4s ease-in-out infinite;
}
.scn-item-lucreces-glove .blood-drop {
  position: absolute; bottom: 48%; left: 47%; width: 4px; height: 4px; background: #5e1a1d; border-radius: 50%; box-shadow: 0 0 6px rgba(94,26,29,0.8); animation: ig-blood 2s ease-in-out infinite;
}
.scn-item-lucreces-glove .rushes {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 12px; background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 4px, #2a1a0a 4px, #2a1a0a 8px); border-radius: 0 0 20% 20%; animation: ig-rushes 6s ease-in-out infinite;
}
@keyframes ig-bg { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes ig-glove { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(5deg) translateX(-2px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes ig-needle { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes ig-hand { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(4px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ig-blood { 0% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.5); opacity: 0.8; } 100% { transform: scale(1); opacity: 1; } }
@keyframes ig-rushes { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }

/* poor-forbiddings-stay */
.scn-poor-forbiddings-stay {
  background: linear-gradient(180deg, #1a0a05 0%, #2c1008 30%, #3a1408 60%, #1a0800 100%), radial-gradient(circle at 50% 30%, #3a180a 0%, transparent 60%);
}
.scn-poor-forbiddings-stay .bg-night {
  position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,3,0,0.5) 0%, transparent 50%, rgba(10,3,0,0.3) 100%); animation: pf-bg 9s ease-in-out infinite alternate;
}
.scn-poor-forbiddings-stay .dial-face {
  position: absolute; top: 20%; left: 50%; width: 80px; height: 80px; transform: translateX(-50%); background: radial-gradient(circle at 50% 50%, #4a3a2a, #2a1a10); border-radius: 50%; border: 3px solid #5a4a3a; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: pf-dial 20s linear infinite;
}
.scn-poor-forbiddings-stay .bar-a {
  position: absolute; top: 25%; left: 40%; width: 8px; height: 60px; background: linear-gradient(180deg, #6a5a4a, #3a2a1a); border-radius: 10%; transform: rotate(15deg); animation: pf-bar 4s ease-in-out infinite alternate;
}
.scn-poor-forbiddings-stay .bar-b {
  position: absolute; top: 25%; right: 40%; width: 8px; height: 60px; background: linear-gradient(180deg, #6a5a4a, #3a2a1a); border-radius: 10%; transform: rotate(-15deg); animation: pf-bar 4s ease-in-out 2s infinite alternate;
}
.scn-poor-forbiddings-stay .reaching-hand {
  position: absolute; bottom: 15%; left: 38%; width: 30px; height: 50px; background: linear-gradient(180deg, #1a0a05, #0d0300); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pf-hand 3s ease-in-out infinite;
}
.scn-poor-forbiddings-stay .candle-flame {
  position: absolute; bottom: 38%; left: 52%; width: 16px; height: 24px; background: radial-gradient(circle at 50% 30%, #ff9030, #ff6020 40%, #a02000 70%, transparent); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; box-shadow: 0 0 24px 8px #ff6020; animation: pf-flame 0.6s ease-in-out infinite alternate;
}
.scn-poor-forbiddings-stay .shadow-door {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%; background: linear-gradient(90deg, transparent, rgba(5,2,0,0.4) 40%, transparent); animation: pf-shadow 8s ease-in-out infinite;
}
@keyframes pf-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes pf-dial { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes pf-bar { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(0.95); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes pf-hand { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(6px) rotate(3deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 75% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pf-flame { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(0.85) rotate(-4deg); } 100% { transform: scale(1.1) rotate(4deg); } }
@keyframes pf-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* tarquin-stories-fame */
.scn-tarquin-stories-fame {
  background:
    linear-gradient(180deg, #f9d979 0%, #f0b85c 40%, #d49a44 70%, #b87d30 100%),
    radial-gradient(ellipse at 50% 100%, #b87d30 0%, transparent 60%);
}
.scn-tarquin-stories-fame .sky-tsf {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #f9e0a0 0%, #f3c570 70%, transparent);
  animation: tsf-sky 12s ease-in-out infinite alternate;
}
.scn-tarquin-stories-fame .sun-tsf {
  position:absolute; top:20%; left:65%; width:60px; height:60px;
  background: radial-gradient(circle, #ffe080 0%, #f0b050 60%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 80px 20px #f0b050;
  animation: tsf-sun 8s ease-in-out infinite alternate;
}
.scn-tarquin-stories-fame .hills-tsf {
  position:absolute; bottom:20%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: tsf-hills 18s ease-in-out infinite alternate;
}
.scn-tarquin-stories-fame .figure-tsf {
  position:absolute; bottom:20%; left:25%; width:24px; height:50px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsf-figure 5s ease-in-out infinite;
}
.scn-tarquin-stories-fame .arm-tsf {
  position:absolute; bottom:38%; left:25%; width:8px; height:30px;
  background: linear-gradient(180deg, #4a2a1a, #2a1a0a);
  border-radius: 50% 50% 30% 30%;
  transform-origin: 50% 100%;
  animation: tsf-arm 4s ease-in-out infinite alternate;
}
.scn-tarquin-stories-fame .olive-tsf {
  position:absolute; bottom:30%; left:60%; width:20px; height:30px;
  background: radial-gradient(ellipse at 50% 60%, #8a9a4a 0%, #5a6a2a 100%);
  border-radius:50%;
  transform: rotate(-15deg);
  animation: tsf-olive 6s ease-in-out infinite;
}
.scn-tarquin-stories-fame .path-tsf {
  position:absolute; bottom:0; left:20%; right:30%; height:10%;
  background: linear-gradient(180deg, #a08040 0%, #705020 100%);
  border-radius: 50% 40% 0 0;
  animation: tsf-path 20s ease-in-out infinite alternate;
}
@keyframes tsf-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes tsf-sun { 0%{transform:scale(.95); opacity:.85} 50%{transform:scale(1.05); opacity:1} 100%{transform:scale(.98); opacity:.9} }
@keyframes tsf-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-4px); border-radius:55% 45% 0 0} 100%{transform:translateY(2px)} }
@keyframes tsf-figure { 0%{transform:translateX(0) rotate(-1deg)} 30%{transform:translateX(4px) rotate(1deg)} 60%{transform:translateX(0) rotate(0)} 100%{transform:translateX(-3px) rotate(-1deg)} }
@keyframes tsf-arm { 0%{transform:rotate(0deg) translateY(0)} 50%{transform:rotate(20deg) translateY(-4px)} 100%{transform:rotate(-5deg) translateY(0)} }
@keyframes tsf-olive { 0%{transform:rotate(-15deg) scale(1)} 50%{transform:rotate(-10deg) scale(1.1)} 100%{transform:rotate(-18deg) scale(.95)} }
@keyframes tsf-path { 0%{transform:translateX(0)} 50%{transform:translateX(8px)} 100%{transform:translateX(-5px)} }

/* night-falls */
.scn-night-falls {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2a1a4a 30%, #3a2a5a 60%, #2a1a3a 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a6a 0%, transparent 70%);
}
.scn-night-falls .sky-nf {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  animation: nf-sky 15s ease-in-out infinite alternate;
}
.scn-night-falls .moon-nf {
  position:absolute; top:12%; left:25%; width:50px; height:50px;
  background: radial-gradient(circle, #e0e0f0 0%, #a0a0c0 60%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 60px 15px #a0a0c0;
  animation: nf-moon 10s ease-in-out infinite alternate;
}
.scn-night-falls .starfield-nf {
  position:absolute; top:5%; left:5%; width:90%; height:30%;
  background:
    radial-gradient(2px 2px at 20% 10%, #fff, transparent),
    radial-gradient(2px 2px at 70% 40%, #fff, transparent),
    radial-gradient(1px 1px at 50% 80%, #fff, transparent),
    radial-gradient(1px 1px at 90% 20%, #fff, transparent),
    radial-gradient(2px 2px at 10% 60%, #fff, transparent);
  background-repeat: no-repeat;
  animation: nf-stars 8s ease-in-out infinite alternate;
}
.scn-night-falls .cloud-nf-a,
.scn-night-falls .cloud-nf-b {
  position:absolute; top:20%; width:100px; height:20px;
  background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, transparent 100%);
  border-radius:50%; filter: blur(6px);
}
.scn-night-falls .cloud-nf-a { left:-10%; animation: nf-cloud-a 40s linear infinite; }
.scn-night-falls .cloud-nf-b { left:50%; width:80px; height:15px; animation: nf-cloud-b 55s linear infinite; animation-delay: -20s; }
.scn-night-falls .tree-nf {
  position:absolute; bottom:20%; left:15%; width:40px; height:80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nf-tree 12s ease-in-out infinite alternate;
}
.scn-night-falls .figure-nf {
  position:absolute; bottom:18%; right:30%; width:20px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nf-figure 6s ease-in-out infinite;
}
@keyframes nf-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.6} }
@keyframes nf-moon { 0%{transform:scale(.9); opacity:.8} 50%{transform:scale(1.05); opacity:1} 100%{transform:scale(.95); opacity:.85} }
@keyframes nf-stars { 0%{opacity:.6} 50%{opacity:1} 100%{opacity:.4} }
@keyframes nf-cloud-a { 0%{transform:translateX(-30px)} 100%{transform:translateX(120vw)} }
@keyframes nf-cloud-b { 0%{transform:translateX(0)} 100%{transform:translateX(-110vw)} }
@keyframes nf-tree { 0%{transform:rotate(-2deg)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-1deg)} }
@keyframes nf-figure { 0%{transform:translateX(0) rotate(-1deg)} 30%{transform:translateX(3px) rotate(1deg)} 60%{transform:translateX(-2px) rotate(0)} 100%{transform:translateX(1px) rotate(-1deg)} }

/* tarquin-led-to-bed */
.scn-tarquin-led-to-bed {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 40%, #0a0505 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a2a 0%, transparent 70%);
}
.scn-tarquin-led-to-bed .wall-tltb {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a1a1a, #1a0a0a);
  animation: tltb-wall 20s ease-in-out infinite alternate;
}
.scn-tarquin-led-to-bed .bed-tltb {
  position:absolute; bottom:5%; left:10%; right:10%; height:35%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 -10px 30px rgba(0,0,0,.5);
  animation: tltb-bed 6s ease-in-out infinite alternate;
}
.scn-tarquin-led-to-bed .candle-tltb {
  position:absolute; bottom:40%; left:65%; width:10px; height:30px;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-tarquin-led-to-bed .flame-tltb {
  position:absolute; bottom:70%; left:65%; width:8px; height:16px;
  margin-left:-4px;
  background: radial-gradient(circle, #ffd080 0%, #e09030 50%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 20px 6px #e09030;
  animation: tltb-flame 2s ease-in-out infinite alternate;
}
.scn-tarquin-led-to-bed .tarquin-tltb {
  position:absolute; bottom:20%; left:20%; width:22px; height:45px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tltb-tarquin 5s ease-in-out infinite;
}
.scn-tarquin-led-to-bed .lucrece-tltb {
  position:absolute; bottom:12%; left:55%; width:30px; height:40px;
  background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%);
  border-radius: 60% 50% 40% 40% / 70% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tltb-lucrece 9s ease-in-out infinite alternate;
}
.scn-tarquin-led-to-bed .window-tltb {
  position:absolute; top:15%; right:10%; width:40px; height:50px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border: 2px solid #3a2a2a; border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.8);
  animation: tltb-window 15s ease-in-out infinite alternate;
}
@keyframes tltb-wall { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes tltb-bed { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(1px)} }
@keyframes tltb-flame { 0%{transform:scaleY(.9) scaleX(1.1); opacity:.85} 50%{transform:scaleY(1.15) scaleX(.95); opacity:1} 100%{transform:scaleY(1) scaleX(1); opacity:.9} }
@keyframes tltb-tarquin { 0%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(2px) rotate(2deg)} 50%{transform:translateX(-1px) rotate(-1deg)} 75%{transform:translateX(3px) rotate(1deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes tltb-lucrece { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.03)} 100%{transform:scaleY(.98)} }
@keyframes tltb-window { 0%{opacity:.6} 50%{opacity:.8} 100%{opacity:.5} }

/* tarquin-revolving-dangers */
.scn-tarquin-revolving-dangers {
  background:
    linear-gradient(180deg, #0a0510 0%, #150a1a 30%, #1a0a1a 60%, #0a050a 100%),
    radial-gradient(ellipse at 50% 70%, #2a1a2a 0%, transparent 80%);
}
.scn-tarquin-revolving-dangers .dark-trd {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #0a0510, #050205);
  animation: trd-dark 30s ease-in-out infinite alternate;
}
.scn-tarquin-revolving-dangers .beam-trd {
  position:absolute; top:10%; left:45%; width:20px; height:60%;
  background: linear-gradient(180deg, rgba(200,200,255,.08) 0%, transparent 100%);
  transform-origin: top center;
  transform: skewX(-5deg);
  animation: trd-beam 8s ease-in-out infinite alternate;
}
.scn-tarquin-revolving-dangers .flame-trd-a,
.scn-tarquin-revolving-dangers .flame-trd-b {
  position:absolute; bottom:50%; left:50%; width:6px; height:10px;
  margin-left:-3px;
  background: radial-gradient(circle, #8a6a3a 0%, #3a2a1a 80%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 12px 4px #3a2a1a;
}
.scn-tarquin-revolving-dangers .flame-trd-a { animation: trd-flame-a 2s ease-in-out infinite alternate; }
.scn-tarquin-revolving-dangers .flame-trd-b { bottom:48%; left:52%; animation: trd-flame-b 3s ease-in-out infinite alternate; animation-delay: -1.5s; }
.scn-tarquin-revolving-dangers .figure-trd {
  position:absolute; bottom:15%; left:40%; width:28px; height:55px;
  background: linear-gradient(180deg, #1a0a1a 0%, #0a050a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: trd-figure 7s ease-in-out infinite;
}
.scn-tarquin-revolving-dangers .shadow-trd-a,
.scn-tarquin-revolving-dangers .shadow-trd-b {
  position:absolute; width:60px; height:40px;
  background: rgba(0,0,0,.5);
  border-radius:50%; filter: blur(8px);
}
.scn-tarquin-revolving-dangers .shadow-trd-a { bottom:10%; left:20%; animation: trd-shadow-a 15s ease-in-out infinite alternate; }
.scn-tarquin-revolving-dangers .shadow-trd-b { bottom:8%; right:20%; animation: trd-shadow-b 20s ease-in-out infinite alternate; animation-delay: -5s; }
@keyframes trd-dark { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes trd-beam { 0%{transform:skewX(-5deg) scaleY(.9); opacity:.5} 50%{transform:skewX(-2deg) scaleY(1.1); opacity:.8} 100%{transform:skewX(-7deg) scaleY(.95); opacity:.4} }
@keyframes trd-flame-a { 0%{transform:scaleY(.8) scaleX(1.2); opacity:.7} 50%{transform:scaleY(1.2) scaleX(.8); opacity:1} 100%{transform:scaleY(.9) scaleX(1.1); opacity:.8} }
@keyframes trd-flame-b { 0%{transform:scaleY(1) scaleX(1)} 50%{transform:scaleY(1.3) scaleX(.7)} 100%{transform:scaleY(.85) scaleX(1.1)} }
@keyframes trd-figure { 0%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(5px) rotate(3deg)} 50%{transform:translateX(-3px) rotate(-2deg)} 75%{transform:translateX(2px) rotate(1deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes trd-shadow-a { 0%{transform:translateX(0) scale(1)} 50%{transform:translateX(10px) scale(1.1)} 100%{transform:translateX(-5px) scale(.9)} }
@keyframes trd-shadow-b { 0%{transform:translateX(0) scale(1)} 50%{transform:translateX(-10px) scale(1.15)} 100%{transform:translateX(5px) scale(.85)} }

/* scene: childish-fear-avaunt */
.scn-childish-fear-avaunt {
  background:
    linear-gradient(180deg, #1a0a0a 0%, #3a1a0a 50%, #5a2a0a 100%),
    radial-gradient(ellipse at 50% 100%, #8a4a2a 0%, transparent 60%);
}
.scn-childish-fear-avaunt .fire {
  position: absolute;
  bottom: 10%; left: 50%;
  width: 80px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #d84c2c 0%, #8a2a1a 60%, transparent 80%);
  filter: blur(4px);
  animation: cfa-fire 1.5s ease-in-out infinite alternate;
}
.scn-childish-fear-avaunt .figure {
  position: absolute;
  bottom: 25%; left: 50%;
  width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(216,76,44,.4);
  animation: cfa-figure 4s ease-in-out infinite;
}
.scn-childish-fear-avaunt .halo {
  position: absolute;
  bottom: 30%; left: 50%;
  width: 100px; height: 100px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,180,100,.3) 0%, transparent 70%);
  animation: cfa-halo 3s ease-in-out infinite alternate;
}
.scn-childish-fear-avaunt .ember-a {
  position: absolute;
  bottom: 20%; left: 45%;
  width: 6px; height: 6px;
  background: #ffa060;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ff8030;
  animation: cfa-ember 6s linear infinite;
}
.scn-childish-fear-avaunt .ember-b {
  position: absolute;
  bottom: 25%; left: 55%;
  width: 4px; height: 4px;
  background: #ff9040;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #ff7020;
  animation: cfa-ember 8s linear infinite;
  animation-delay: -3s;
}
.scn-childish-fear-avaunt .shadow {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.6));
}
@keyframes cfa-fire {
  0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: .8; }
  50% { transform: translateX(-50%) scaleY(1.1) scaleX(.95); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(.95) scaleX(1.05); opacity: .85; }
}
@keyframes cfa-figure {
  0% { transform: translateX(-50%) rotate(-2deg); }
  30% { transform: translateX(-50%) rotate(2deg); }
  60% { transform: translateX(-50%) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes cfa-halo {
  0% { opacity: .3; transform: translate(-50%, -50%) scale(1); }
  100% { opacity: .6; transform: translate(-50%, -50%) scale(1.2); }
}
@keyframes cfa-ember {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 1; }
  50% { transform: translateY(-60px) translateX(20px) scale(.6); opacity: .7; }
  100% { transform: translateY(-120px) translateX(-10px) scale(.2); opacity: 0; }
}

/* scene: heedful-fear-choked */
.scn-heedful-fear-choked {
  background:
    linear-gradient(180deg, #0a0a0a 0%, #1a1a0a 50%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 70%);
}
.scn-heedful-fear-choked .figure {
  position: absolute;
  bottom: 20%; left: 55%;
  width: 25px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a, #0a0a0a);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: hfc-sneak 5s ease-in-out infinite;
}
.scn-heedful-fear-choked .torch {
  position: absolute;
  bottom: 18%; left: 35%;
  width: 8px; height: 40px;
  background: #4a3a2a;
  transform: rotate(-10deg);
}
.scn-heedful-fear-choked .flame {
  position: absolute;
  bottom: 30%; left: 35%;
  width: 16px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #f06830 0%, #d84c2c 60%, transparent 80%);
  filter: blur(3px);
  animation: hfc-flame 1.2s ease-in-out infinite alternate;
}
.scn-heedful-fear-choked .stalk-1,
.scn-heedful-fear-choked .stalk-2 {
  position: absolute;
  bottom: 0; height: 70%;
  width: 8px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
}
.scn-heedful-fear-choked .stalk-1 {
  left: 20%;
  animation: hfc-stalk 6s ease-in-out infinite alternate;
}
.scn-heedful-fear-choked .stalk-2 {
  right: 20%;
  animation: hfc-stalk 6s ease-in-out infinite alternate-reverse;
  animation-delay: -2s;
}
.scn-heedful-fear-choked .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a0a0a 100%);
}
@keyframes hfc-sneak {
  0% { transform: rotate(15deg) translateX(0); }
  25% { transform: rotate(10deg) translateX(-5px); }
  50% { transform: rotate(18deg) translateX(-10px); }
  75% { transform: rotate(12deg) translateX(-5px); }
  100% { transform: rotate(15deg) translateX(0); }
}
@keyframes hfc-flame {
  0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: .8; }
  50% { transform: translateX(-50%) scaleY(1.15) scaleX(.9); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(.9) scaleX(1.1); opacity: .75; }
}
@keyframes hfc-stalk {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(4deg); }
  100% { transform: rotate(-2deg); }
}

/* scene: heavenly-image-sits */
.scn-heavenly-image-sits {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 40%, #2a2a4a 0%, transparent 70%);
}
.scn-heavenly-image-sits .silhouette {
  position: absolute;
  bottom: 20%; left: 30%;
  width: 35px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform: rotate(5deg);
  animation: his-sil 6s ease-in-out infinite;
}
.scn-heavenly-image-sits .vision {
  position: absolute;
  bottom: 35%; right: 25%;
  width: 30px; height: 40px;
  background: linear-gradient(180deg, #e0c8b0, #b09070);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: .7;
  box-shadow: 0 0 30px 10px rgba(224,200,176,.4);
  animation: his-vision 4s ease-in-out infinite alternate;
}
.scn-heavenly-image-sits .glow {
  position: absolute;
  bottom: 32%; right: 25%;
  width: 60px; height: 60px;
  transform: translate(50%, 0);
  background: radial-gradient(circle, rgba(224,200,176,.3) 0%, transparent 70%);
  animation: his-glow 4s ease-in-out infinite alternate;
}
.scn-heavenly-image-sits .halo {
  position: absolute;
  top: 10%; left: 50%;
  width: 120px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,.1) 0%, transparent 80%);
  filter: blur(8px);
  animation: his-halo 10s linear infinite alternate;
}
.scn-heavenly-image-sits .darkness {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 40%, transparent 0%, rgba(0,0,10,.8) 100%);
}
@keyframes his-sil {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-3px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes his-vision {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: .7; transform: scale(.98); }
}
@keyframes his-glow {
  0% { opacity: .3; transform: translate(50%,0) scale(1); }
  100% { opacity: .6; transform: translate(50%,0) scale(1.2); }
}
@keyframes his-halo {
  0% { transform: translateX(-50%) translateY(0); }
  100% { transform: translateX(-50%) translateY(-10px); }
}

/* scene: heartens-servile-powers */
.scn-heartens-servile-powers {
  background:
    linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 50%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 60%, #3a1a0a 0%, transparent 70%);
}
.scn-heartens-servile-powers .leader {
  position: absolute;
  bottom: 20%; left: 50%;
  width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a, #0a0a0a);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  animation: hsp-leader 3s ease-in-out infinite;
}
.scn-heartens-servile-powers .soldier-a,
.scn-heartens-servile-powers .soldier-b {
  position: absolute;
  bottom: 10%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-heartens-servile-powers .soldier-a {
  left: 20%;
  transform: rotate(-10deg);
  animation: hsp-soldier 5s ease-in-out infinite;
}
.scn-heartens-servile-powers .soldier-b {
  right: 20%;
  transform: rotate(10deg);
  animation: hsp-soldier 5s ease-in-out infinite reverse;
  animation-delay: -2s;
}
.scn-heartens-servile-powers .torch {
  position: absolute;
  bottom: 15%; left: 5%;
  width: 6px; height: 30px;
  background: #3a2a1a;
  transform: rotate(-5deg);
}
.scn-heartens-servile-powers .flame {
  position: absolute;
  bottom: 22%; left: 5%;
  width: 14px; height: 18px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #d84c2c 0%, #8a2a1a 60%, transparent 80%);
  filter: blur(2px);
  animation: hsp-flame 1s ease-in-out infinite alternate;
}
.scn-heartens-servile-powers .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
@keyframes hsp-leader {
  0% { transform: translateX(-50%) rotate(-2deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(2deg) scaleY(1.05); }
  100% { transform: translateX(-50%) rotate(-2deg) scaleY(1); }
}
@keyframes hsp-soldier {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-5px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes hsp-flame {
  0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: .8; }
  50% { transform: translateX(-50%) scaleY(1.2) scaleX(.85); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(.9) scaleX(1.1); opacity: .7; }
}

/* curse-tarquin-7 – dark bedchamber interior */
.scn-curse-tarquin-7 {
  background: linear-gradient(180deg, #0c0c1e 0%, #1a142b 30%, #0f0b1a 100%),
              radial-gradient(ellipse at 50% 0%, #2a1f3e 0%, transparent 60%);
}
.scn-curse-tarquin-7 .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #1c1628 0%,#241e2e 50%,#1a1422 100%); animation: ct7-wall 12s ease-in-out infinite alternate; }
.scn-curse-tarquin-7 .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1218 0%, #100a10 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.6); transform-origin: bottom; animation: ct7-floor 9s ease-in-out infinite; }
.scn-curse-tarquin-7 .window { position:absolute; top:10%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #0f0f2a 0%, #1a1a3a 100%); border: 4px solid #2a2030; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.7); }
.scn-curse-tarquin-7 .moon { position:absolute; top:15%; left:50%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, #c0b0d0 0%, #807090 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(192,176,208,0.3); animation: ct7-moon 7s ease-in-out infinite alternate; }
.scn-curse-tarquin-7 .bed { position:absolute; bottom:20%; left:30%; width:50%; height:40%; background: linear-gradient(180deg, #2a1e2a 0%, #1a101a 100%); border-radius: 10% 10% 5% 5% / 60% 60% 30% 30%; box-shadow: 0 -8px 20px rgba(0,0,0,0.5); animation: ct7-bed 6s ease-in-out infinite; }
.scn-curse-tarquin-7 .figure { position:absolute; bottom:30%; left:40%; width:20px; height:60px; background: linear-gradient(180deg, #0a0a12 0%, #1a121a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ct7-figure 4s ease-in-out infinite alternate; }
.scn-curse-tarquin-7 .curtain-left { position:absolute; top:0; left:10%; width:30%; height:50%; background: linear-gradient(180deg, #1a1422 0%, #0c0812 100%); border-radius: 0 40% 40% 0; filter: blur(2px); animation: ct7-curtain 10s ease-in-out infinite; }
.scn-curse-tarquin-7 .curtain-right { position:absolute; top:0; right:10%; width:30%; height:50%; background: linear-gradient(180deg, #1a1422 0%, #0c0812 100%); border-radius: 40% 0 0 40%; filter: blur(2px); animation: ct7-curtain 10s ease-in-out infinite reverse; animation-delay: -5s; }

@keyframes ct7-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ct7-floor { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } }
@keyframes ct7-moon { 0% { box-shadow: 0 0 20px 5px rgba(192,176,208,0.2); opacity:0.8 } 50% { box-shadow: 0 0 40px 15px rgba(192,176,208,0.4); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(192,176,208,0.25); opacity:0.85 } }
@keyframes ct7-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) scaleY(1.01) } }
@keyframes ct7-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(2deg) translateY(-1px) } 100% { transform: translateX(8px) rotate(-1deg) } }
@keyframes ct7-curtain { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-8px) rotate(-2deg) } 100% { transform: translateX(5px) rotate(1deg) } }

/* item-falchion-knife – close-up of knife on dark cloth */
.scn-item-falchion-knife {
  background: linear-gradient(180deg, #0e0e1a 0%, #161220 40%, #0a0a12 100%),
              radial-gradient(ellipse at 50% 50%, #1e1828 0%, transparent 70%);
}
.scn-item-falchion-knife .bg-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 40%, #1a1628 0%, transparent 80%); }
.scn-item-falchion-knife .cloth { position:absolute; bottom:10%; left:15%; right:15%; top:40%; background: linear-gradient(180deg, #2a1e28 0%, #1a101a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 4px 12px rgba(0,0,0,0.7); transform: rotate(-3deg); animation: fk-cloth 8s ease-in-out infinite; }
.scn-item-falchion-knife .blade { position:absolute; left:35%; top:25%; width:8px; height:50%; background: linear-gradient(180deg, #c0b0a0 0%, #a09080 50%, #706050 100%); border-radius: 4px 4px 40% 40%; transform: rotate(-15deg); transform-origin: top center; box-shadow: 2px 0 4px rgba(0,0,0,0.5); animation: fk-blade 5s ease-in-out infinite alternate; }
.scn-item-falchion-knife .handle { position:absolute; left:34%; top:22%; width:12px; height:18px; background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-15deg); transform-origin: top center; box-shadow: 1px 0 3px rgba(0,0,0,0.6); }
.scn-item-falchion-knife .reflection { position:absolute; left:36%; top:40%; width:4px; height:20%; background: linear-gradient(180deg, rgba(255,240,220,0.3) 0%, transparent 100%); border-radius: 2px; transform: rotate(-15deg); opacity:0.6; animation: fk-reflect 3s ease-in-out infinite; }
.scn-item-falchion-knife .shadow { position:absolute; left:33%; top:48%; width:20px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%); transform: rotate(-15deg); animation: fk-shadow 6s ease-in-out infinite alternate; }
.scn-item-falchion-knife .light-source { position:absolute; top:15%; right:20%; width:20px; height:20px; background: radial-gradient(circle, rgba(180,160,140,0.2) 0%, transparent 80%); border-radius:50%; animation: fk-light 10s ease-in-out infinite; }

@keyframes fk-cloth { 0%,100% { transform: rotate(-3deg) scaleY(1) } 50% { transform: rotate(-1deg) scaleY(0.98) translateY(2px) } }
@keyframes fk-blade { 0% { transform: rotate(-15deg) translateY(0); opacity:0.9 } 50% { transform: rotate(-15deg) translateY(-2px); opacity:1 } 100% { transform: rotate(-13deg) translateY(0); opacity:0.95 } }
@keyframes fk-reflect { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes fk-shadow { 0% { transform: rotate(-15deg) scaleX(0.8); opacity:0.4 } 50% { transform: rotate(-15deg) scaleX(1.2); opacity:0.6 } 100% { transform: rotate(-13deg) scaleX(0.9); opacity:0.5 } }
@keyframes fk-light { 0%,100% { opacity:0.3; transform: translateY(0) } 50% { opacity:0.6; transform: translateY(-5px) } }

/* lucrece-seeks-knife-1 – volcanic cave with smoke and lantern */
.scn-lucrece-seeks-knife-1 {
  background: linear-gradient(180deg, #0a0a16 0%, #181428 30%, #0e0a1a 100%),
              radial-gradient(ellipse at 50% 100%, #2a1a2e 0%, transparent 60%);
}
.scn-lucrece-seeks-knife-1 .bg-cave { position:absolute; inset:0; background: linear-gradient(135deg, #0e0e1a 0%, #1a1428 50%, #0c0818 100%); }
.scn-lucrece-seeks-knife-1 .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1220 0%, #0c0810 100%); border-radius: 30% 20% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.6); }
.scn-lucrece-seeks-knife-1 .rock-left { position:absolute; bottom:30%; left:5%; width:30%; height:40%; background: linear-gradient(180deg, #1c1428 0%, #0c0814 100%); border-radius: 60% 40% 20% 20% / 50% 50% 30% 30%; transform: skewX(-5deg); animation: lk1-rock 10s ease-in-out infinite alternate; }
.scn-lucrece-seeks-knife-1 .rock-right { position:absolute; bottom:30%; right:5%; width:25%; height:45%; background: linear-gradient(180deg, #1c1428 0%, #0c0814 100%); border-radius: 40% 60% 20% 20% / 50% 50% 30% 30%; transform: skewX(5deg); animation: lk1-rock 10s ease-in-out infinite alternate-reverse; animation-delay: -5s; }
.scn-lucrece-seeks-knife-1 .figure { position:absolute; bottom:28%; left:48%; width:18px; height:50px; background: linear-gradient(180deg, #0a0a12 0%, #181018 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: lk1-figure 4s ease-in-out infinite alternate; }
.scn-lucrece-seeks-knife-1 .lantern { position:absolute; bottom:35%; left:44%; width:8px; height:8px; background: radial-gradient(circle, #e0b060 0%, #a08040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(224,176,96,0.4); animation: lk1-lantern 3s ease-in-out infinite; }
.scn-lucrece-seeks-knife-1 .smoke-1 { position:absolute; bottom:45%; left:20%; width:80px; height:30px; background: linear-gradient(180deg, rgba(60,50,60,0.3) 0%, transparent 100%); border-radius:50%; filter: blur(6px); animation: lk1-smoke 20s linear infinite; }
.scn-lucrece-seeks-knife-1 .smoke-2 { position:absolute; bottom:48%; right:20%; width:60px; height:25px; background: linear-gradient(180deg, rgba(60,50,60,0.2) 0%, transparent 100%); border-radius:50%; filter: blur(5px); animation: lk1-smoke 25s linear infinite reverse; animation-delay: -8s; }
.scn-lucrece-seeks-knife-1 .ember { position:absolute; bottom:40%; left:35%; width:4px; height:4px; background: radial-gradient(circle, #d08040 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 6px 2px rgba(208,128,64,0.5); animation: lk1-ember 4s ease-in-out infinite; }

@keyframes lk1-rock { 0% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-3deg) translateY(-2px) } 100% { transform: skewX(-6deg) translateY(0) } }
@keyframes lk1-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(6px) rotate(2deg) translateY(-1px) } 100% { transform: translateX(12px) rotate(-1deg) } }
@keyframes lk1-lantern { 0% { box-shadow: 0 0 15px 3px rgba(224,176,96,0.3); opacity:0.8 } 50% { box-shadow: 0 0 30px 10px rgba(224,176,96,0.6); opacity:1 } 100% { box-shadow: 0 0 20px 5px rgba(224,176,96,0.4); opacity:0.85 } }
@keyframes lk1-smoke { 0% { transform: translateY(0) scaleX(1); opacity:0.4 } 50% { transform: translateY(-15px) scaleX(1.2); opacity:0.6 } 100% { transform: translateY(-30px) scaleX(0.8); opacity:0 } }
@keyframes lk1-ember { 0%,100% { transform: translateY(0) scale(1); opacity:0.7 } 50% { transform: translateY(-4px) scale(1.3); opacity:1 } }

/* lucrece-seeks-knife-2 – interior mirror with candle */
.scn-lucrece-seeks-knife-2 {
  background: linear-gradient(180deg, #0c0c1a 0%, #1a1628 40%, #0e0a14 100%),
              radial-gradient(ellipse at 50% 80%, #2a1e2e 0%, transparent 70%);
}
.scn-lucrece-seeks-knife-2 .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #1a1422 0%, #221e2e 50%, #181020 100%); animation: lk2-wall 10s ease-in-out infinite alternate; }
.scn-lucrece-seeks-knife-2 .mirror { position:absolute; top:15%; left:35%; width:35%; height:45%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1c 100%); border: 6px solid #2a2038; border-radius: 8px; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); transform: perspective(400px) rotateY(-2deg); animation: lk2-mirror 8s ease-in-out infinite; }
.scn-lucrece-seeks-knife-2 .frame { position:absolute; top:15%; left:35%; width:35%; height:45%; border: 3px solid #3a2a42; border-radius: 10px; background: transparent; box-shadow: 0 0 15px rgba(0,0,0,0.5); }
.scn-lucrece-seeks-knife-2 .figure { position:absolute; bottom:25%; left:45%; width:20px; height:55px; background: linear-gradient(180deg, #0a0a12 0%, #16101a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: lk2-figure 4s ease-in-out infinite alternate; }
.scn-lucrece-seeks-knife-2 .shadow { position:absolute; bottom:20%; left:42%; width:30px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%); animation: lk2-shadow 5s ease-in-out infinite; }
.scn-lucrece-seeks-knife-2 .candle { position:absolute; bottom:35%; left:30%; width:6px; height:16px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(5deg); animation: lk2-candle 7s ease-in-out infinite; }
.scn-lucrece-seeks-knife-2 .wax-drip { position:absolute; bottom:36%; left:31%; width:3px; height:4px; background: linear-gradient(180deg, #8a7a6a 0%, transparent 100%); border-radius: 50%; transform: rotate(5deg); animation: lk2-drip 3s ease-in-out infinite; }

@keyframes lk2-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lk2-mirror { 0% { transform: perspective(400px) rotateY(-2deg) translateY(0) } 50% { transform: perspective(400px) rotateY(0) translateY(-2px) } 100% { transform: perspective(400px) rotateY(2deg) translateY(0) } }
@keyframes lk2-figure { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(4px) rotate(1deg) translateY(-1px) } 100% { transform: translateX(-4px) rotate(0) } }
@keyframes lk2-shadow { 0% { transform: scaleX(0.9); opacity:0.4 } 50% { transform: scaleX(1.1); opacity:0.6 } 100% { transform: scaleX(0.95); opacity:0.5 } }
@keyframes lk2-candle { 0% { transform: rotate(5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(0.95) translateY(1px) } 100% { transform: rotate(5deg) scaleY(1) } }
@keyframes lk2-drip { 0%,100% { transform: translateY(0); opacity:0.7 } 50% { transform: translateY(4px); opacity:0 } }

.scn-collatine-speaks {
  background: linear-gradient(180deg, #1a1410 0%, #2c1e16 30%, #3a2518 100%),
              radial-gradient(ellipse at 50% 60%, #4a3020 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-collatine-speaks .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2c1e16 0%, transparent 100%);
  animation: cs-wall 12s ease-in-out infinite alternate;
}
.scn-collatine-speaks .floor {
  position: absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-collatine-speaks .window {
  position: absolute; top:15%; right:20%; width:40px; height:60px;
  background: radial-gradient(ellipse at 50% 50%, #3a4a6a 0%, #1a2a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px #4a6a8a, 0 0 30px rgba(74,106,138,.3);
  animation: cs-window 20s ease-in-out infinite alternate;
}
.scn-collatine-speaks .candle {
  position: absolute; bottom:40%; left:25%; width:8px; height:15px;
  background: linear-gradient(180deg, #ffb060 0%, #a06020 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px #b07030, 0 0 40px 16px rgba(176,112,48,.5);
  animation: cs-candle 1.5s ease-in-out infinite alternate;
}
.scn-collatine-speaks .collatine {
  position: absolute; bottom:35%; left:42%; width:28px; height:50px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a100c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-collatine 6s ease-in-out infinite;
}
.scn-collatine-speaks .lucrece {
  position: absolute; bottom:35%; left:58%; width:22px; height:48px;
  background: linear-gradient(180deg, #2a1c14 0%, #120a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-lucrece 2.5s ease-in-out infinite alternate;
}
.scn-collatine-speaks .shadow-candle {
  position: absolute; bottom:40%; left:20%; width:60px; height:2px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: cs-shadow 3s ease-in-out infinite alternate;
}
@keyframes cs-wall { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .7 } }
@keyframes cs-window { 0% { background: radial-gradient(ellipse at 50% 50%, #3a4a6a 0%, #1a2a3a 100%); box-shadow: 0 0 20px rgba(74,106,138,.2); } 50% { background: radial-gradient(ellipse at 50% 50%, #4a5a7a 0%, #2a3a4a 100%); box-shadow: 0 0 30px rgba(74,106,138,.4); } 100% { background: radial-gradient(ellipse at 50% 50%, #3a4a6a 0%, #1a2a3a 100%); box-shadow: 0 0 20px rgba(74,106,138,.2); } }
@keyframes cs-candle { 0% { transform: scaleY(1); opacity:.9; } 50% { transform: scaleY(1.05) scaleX(.95); opacity:1; } 100% { transform: scaleY(.95) scaleX(1.02); opacity:.85; } }
@keyframes cs-collatine { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(5px, -2px) rotate(3deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-3px, -1px) rotate(-2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes cs-lucrece { 0% { transform: translate(0,0) rotate(-2deg) scale(1); } 50% { transform: translate(2px, -1px) rotate(3deg) scale(1.02); } 100% { transform: translate(0,0) rotate(-1deg) scale(1); } }
@keyframes cs-shadow { 0% { transform: translate(-2px, 0) scale(1); opacity:.4; } 50% { transform: translate(0, 0) scale(1.1); opacity:.6; } 100% { transform: translate(2px, 0) scale(.9); opacity:.3; } }

.scn-lucrece-prepares-to-speak {
  background: linear-gradient(180deg, #1a1410 0%, #2c1e16 30%, #3a2518 100%),
              radial-gradient(ellipse at 50% 60%, #4a3020 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-lucrece-prepares-to-speak .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2c1e16 0%, transparent 100%);
  animation: lps-wall 15s ease-in-out infinite alternate;
}
.scn-lucrece-prepares-to-speak .floor {
  position: absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-lucrece-prepares-to-speak .lucrece {
  position: absolute; bottom:35%; left:50%; width:26px; height:50px;
  background: linear-gradient(180deg, #2a1c14 0%, #120a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: lps-lucrece 3.5s ease-in-out infinite;
}
.scn-lucrece-prepares-to-speak .collatine {
  position: absolute; bottom:35%; left:32%; width:28px; height:50px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a100c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lps-collatine 8s ease-in-out infinite;
}
.scn-lucrece-prepares-to-speak .lords {
  position: absolute; bottom:35%; right:15%; width:80px; height:50px;
  background: radial-gradient(ellipse at 50% 100%, #1a1410 0%, transparent 100%);
  border-radius: 30% 30% 0 0;
  filter: blur(3px);
  animation: lps-lords 12s ease-in-out infinite alternate;
}
.scn-lucrece-prepares-to-speak .candle {
  position: absolute; bottom:40%; left:20%; width:8px; height:15px;
  background: linear-gradient(180deg, #ffb060 0%, #a06020 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px #b07030, 0 0 40px 16px rgba(176,112,48,.5);
  animation: lps-candle 1.5s ease-in-out infinite alternate;
}
.scn-lucrece-prepares-to-speak .shadow-candle {
  position: absolute; bottom:40%; left:15%; width:50px; height:2px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: lps-shadow 3s ease-in-out infinite alternate;
}
@keyframes lps-wall { 0% { opacity: .7 } 50% { opacity: .85 } 100% { opacity: .75 } }
@keyframes lps-lucrece { 0% { transform: translateX(-50%) rotate(-1deg) scale(1); } 25% { transform: translateX(-50%) translateY(-3px) rotate(2deg) scale(1.02); } 50% { transform: translateX(-50%) rotate(0deg) scale(1); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg) scale(.98); } 100% { transform: translateX(-50%) rotate(1deg) scale(1); } }
@keyframes lps-collatine { 0% { transform: translate(0,0) rotate(0deg); } 33% { transform: translate(2px, -1px) rotate(2deg); } 66% { transform: translate(-1px, 0) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes lps-lords { 0% { transform: translateX(0) scale(1); opacity:.6; } 50% { transform: translateX(-3px) scale(1.05); opacity:.8; } 100% { transform: translateX(0) scale(1); opacity:.7; } }
@keyframes lps-candle { 0% { transform: scaleY(1); opacity:.9; } 50% { transform: scaleY(1.05) scaleX(.95); opacity:1; } 100% { transform: scaleY(.95) scaleX(1.02); opacity:.85; } }
@keyframes lps-shadow { 0% { transform: translate(-2px, 0) scale(1); opacity:.4; } 50% { transform: translate(0, 0) scale(1.1); opacity:.6; } 100% { transform: translate(2px, 0) scale(.9); opacity:.3; } }

.scn-lucrece-to-her-husband {
  background: linear-gradient(180deg, #0e1419 0%, #16212a 40%, #1a2a36 100%),
              radial-gradient(ellipse at 50% 80%, #1a3a4a 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-lucrece-to-her-husband .water {
  position: absolute; inset: 30% 0 0 0;
  background: linear-gradient(180deg, #1a2a36 0%, #0e1a26 100%);
  border-radius: 30% 30% 0 0;
  animation: lth-water 8s ease-in-out infinite alternate;
}
.scn-lucrece-to-her-husband .nest {
  position: absolute; bottom:20%; left:50%; width:120px; height:30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 50%;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,.4);
}
.scn-lucrece-to-her-husband .lucrece {
  position: absolute; bottom:22%; left:50%; width:30px; height:55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lth-lucrece 10s ease-in-out infinite;
}
.scn-lucrece-to-her-husband .tear-1 {
  position: absolute; bottom:15%; left:45%; width:4px; height:4px;
  background: radial-gradient(circle, #8ab0c0 0%, transparent 100%);
  border-radius: 50%;
  animation: lth-tear 4s ease-in-out infinite, lth-tear-drop 4s linear infinite;
}
.scn-lucrece-to-her-husband .tear-2 {
  position: absolute; bottom:15%; left:55%; width:3px; height:3px;
  background: radial-gradient(circle, #8ab0c0 0%, transparent 100%);
  border-radius: 50%;
  animation: lth-tear 5s ease-in-out 0.5s infinite, lth-tear-drop 5s linear 0.5s infinite;
}
.scn-lucrece-to-her-husband .moon {
  position: absolute; top:12%; right:20%; width:30px; height:30px;
  background: radial-gradient(circle, #b0c8d0 0%, #6a8a9a 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(176,200,208,.4);
  animation: lth-moon 20s ease-in-out infinite alternate;
}
.scn-lucrece-to-her-husband .ripple {
  position: absolute; bottom:18%; left:50%; width:60px; height:6px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, rgba(138,176,192,.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: lth-ripple 6s ease-in-out infinite;
}
@keyframes lth-water { 0% { background: linear-gradient(180deg, #1a2a36 0%, #0e1a26 100%); } 50% { background: linear-gradient(180deg, #1e2e3a 0%, #12202e 100%); } 100% { background: linear-gradient(180deg, #1a2a36 0%, #0e1a26 100%); } }
@keyframes lth-lucrece { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 33% { transform: translateX(-50%) translateY(-2px) rotate(2deg) scale(1.03); } 66% { transform: translateX(-50%) translateY(1px) rotate(-1deg) scale(.98); } 100% { transform: translateX(-50%) rotate(0deg) scale(1); } }
@keyframes lth-tear { 0% { opacity: 0; transform: scale(0); } 20% { opacity: .8; transform: scale(1); } 80% { opacity: .8; transform: scale(1); } 100% { opacity: 0; transform: scale(0); } }
@keyframes lth-tear-drop { 0% { transform: translateY(-10px); } 100% { transform: translateY(40px); } }
@keyframes lth-moon { 0% { transform: translateX(0) scale(1); box-shadow: 0 0 30px 10px rgba(176,200,208,.4); } 50% { transform: translateX(-5px) scale(1.02); box-shadow: 0 0 40px 15px rgba(176,200,208,.5); } 100% { transform: translateX(0) scale(1); box-shadow: 0 0 30px 10px rgba(176,200,208,.4); } }
@keyframes lth-ripple { 0% { transform: translateX(-50%) scaleX(1); opacity:.6; } 50% { transform: translateX(-50%) scaleX(1.5); opacity:0; } 100% { transform: translateX(-50%) scaleX(1); opacity:.6; } }

.scn-lucrece-tells-her-tale {
  background: linear-gradient(180deg, #1a1410 0%, #2c1e16 30%, #3a2518 100%),
              radial-gradient(ellipse at 50% 60%, #4a3020 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-lucrece-tells-her-tale .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2c1e16 0%, transparent 100%);
  animation: ltt-wall 14s ease-in-out infinite alternate;
}
.scn-lucrece-tells-her-tale .floor {
  position: absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-lucrece-tells-her-tale .bed-frame {
  position: absolute; bottom:25%; left:20%; width:60%; height:20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 8px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6), 0 4px 12px rgba(0,0,0,.5);
}
.scn-lucrece-tells-her-tale .pillow {
  position: absolute; bottom:30%; left:25%; width:20%; height:10%;
  background: radial-gradient(ellipse at 50% 50%, #3a2a1e 0%, #1a100c 100%);
  border-radius: 50%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.4);
  animation: ltt-pillow 6s ease-in-out infinite alternate;
}
.scn-lucrece-tells-her-tale .lucrece {
  position: absolute; bottom:35%; left:35%; width:24px; height:52px;
  background: linear-gradient(180deg, #2a1c14 0%, #120a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ltt-lucrece 5s ease-in-out infinite;
}
.scn-lucrece-tells-her-tale .stranger {
  position: absolute; bottom:35%; left:60%; width:28px; height:50px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a100c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  opacity: .7;
  animation: ltt-stranger 12s ease-in-out infinite alternate;
}
.scn-lucrece-tells-her-tale .candle {
  position: absolute; bottom:40%; left:10%; width:8px; height:15px;
  background: linear-gradient(180deg, #ffb060 0%, #a06020 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px #b07030, 0 0 40px 16px rgba(176,112,48,.5);
  animation: ltt-candle 1.8s ease-in-out infinite alternate;
}
.scn-lucrece-tells-her-tale .shadow-candle {
  position: absolute; bottom:40%; left:5%; width:60px; height:2px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ltt-shadow 4s ease-in-out infinite alternate;
}
@keyframes ltt-wall { 0% { opacity: .65 } 50% { opacity: .85 } 100% { opacity: .7 } }
@keyframes ltt-pillow { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(.98) rotate(-1deg); } }
@keyframes ltt-lucrece { 0% { transform: translate(0,0) rotate(-2deg) scale(1); } 33% { transform: translate(3px, -2px) rotate(3deg) scale(1.02); } 66% { transform: translate(-2px, 1px) rotate(-1deg) scale(.98); } 100% { transform: translate(0,0) rotate(0deg) scale(1); } }
@keyframes ltt-stranger { 0% { transform: translateX(0) scale(1); opacity:.7; filter: blur(2px); } 50% { transform: translateX(-5px) scale(1.03); opacity:.8; filter: blur(1px); } 100% { transform: translateX(0) scale(1); opacity:.7; filter: blur(2px); } }
@keyframes ltt-candle { 0% { transform: scaleY(1); opacity:.9; } 50% { transform: scaleY(1.08) scaleX(.92); opacity:1; } 100% { transform: scaleY(.93) scaleX(1.03); opacity:.85; } }
@keyframes ltt-shadow { 0% { transform: translate(-3px, 0) scale(1); opacity:.4; } 50% { transform: translate(0, 0) scale(1.05); opacity:.6; } 100% { transform: translate(3px, 0) scale(.95); opacity:.3; } }

.tarquin-dotes-on-sight { background: linear-gradient(180deg, #1a0e0a 0%, #2d1a10 40%, #4d2a18 70%, #3d2010 100%), radial-gradient(ellipse at 40% 60%, #c8553d 0%, transparent 60%); }
.tarquin-dotes-on-sight .bg-chamber { position:absolute; inset:0; background: linear-gradient(135deg, #1a0e0a 0%, #3d2a1a 50%, #2d1a10 100%); animation: td-bg-pulse 8s ease-in-out infinite alternate; }
.tarquin-dotes-on-sight .fire-glow { position:absolute; bottom:10%; left:30%; width:60%; height:50%; background: radial-gradient(ellipse at 40% 100%, #ff8c42 0%, #c8553d 30%, rgba(200,85,61,0.3) 60%, transparent 80%); mix-blend-mode: screen; animation: td-fire 2s ease-in-out infinite alternate; }
.tarquin-dotes-on-sight .silhouette-tarquin { position:absolute; bottom:15%; left:10%; width:35%; height:70%; background: linear-gradient(180deg, #0d0805 0%, #1a0e0a 40%, #2d1a10 100%); border-radius: 30% 40% 20% 20% / 40% 50% 30% 30%; transform: rotate(-5deg); animation: td-breathe 4s ease-in-out infinite; }
.tarquin-dotes-on-sight .sleeping-form { position:absolute; bottom:8%; right:8%; width:45%; height:55%; background: linear-gradient(180deg, #4d3020 0%, #3d2010 50%, #2d1a10 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; opacity:0.8; animation: td-sleep 6s ease-in-out infinite alternate; }
.tarquin-dotes-on-sight .reaching-hand { position:absolute; bottom:30%; left:38%; width:14%; height:18%; background: linear-gradient(180deg, #5a3a28 0%, #3d2010 100%); border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%; transform: rotate(15deg); transform-origin: 70% 80%; animation: td-reach 5s ease-in-out infinite; }
.tarquin-dotes-on-sight .gleaming-eye { position:absolute; bottom:52%; left:22%; width:4%; height:3%; background: radial-gradient(circle, #ffd060 0%, #c88030 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,208,96,0.5); animation: td-glint 3s ease-in-out infinite; }
.tarquin-dotes-on-sight .veil-azure { position:absolute; bottom:20%; right:15%; width:30%; height:25%; background: linear-gradient(180deg, rgba(70,90,120,0.4) 0%, rgba(50,70,100,0.2) 60%, transparent 100%); border-radius: 40% 30% 50% 40% / 60% 40% 50% 50%; animation: td-veil 12s ease-in-out infinite alternate; }
.tarquin-dotes-on-sight .ember-drift { position:absolute; top:60%; left:20%; width:2%; height:2%; background: radial-gradient(circle, #ff8c42 0%, transparent 100%); border-radius:50%; box-shadow:0 0 10px 4px #ff8c42; animation: td-ember 7s linear infinite; }
@keyframes td-bg-pulse { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes td-fire { 0% { opacity:0.7; transform: scaleY(0.9) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:0.8; transform: scaleY(0.95) } }
@keyframes td-breathe { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-4px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes td-sleep { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes td-reach { 0% { transform: rotate(15deg) translateX(0) } 30% { transform: rotate(12deg) translateX(-4px) } 60% { transform: rotate(18deg) translateX(-2px) } 100% { transform: rotate(15deg) translateX(0) } }
@keyframes td-glint { 0% { opacity:0.6; transform: scale(1) } 40% { opacity:1; transform: scale(1.3) } 70% { opacity:0.5; transform: scale(0.9) } 100% { opacity:0.8; transform: scale(1.1) } }
@keyframes td-veil { 0% { opacity:0.3; transform: translateY(0) } 50% { opacity:0.6; transform: translateY(-5px) } 100% { opacity:0.4; transform: translateY(2px) } }
@keyframes td-ember { 0% { transform: translate(0,0) scale(1); opacity:1 } 50% { transform: translate(30px,-60px) scale(0.5); opacity:0.6 } 100% { transform: translate(60px,-120px) scale(0); opacity:0 } }

.grim-lion-fawns { background: linear-gradient(180deg, #0a0505 0%, #1a0a05 30%, #2d1208 60%, #1a0a05 100%), radial-gradient(ellipse at 50% 80%, #a0461a 0%, transparent 70%); }
.grim-lion-fawns .bg-den { position:absolute; inset:0; background: linear-gradient(135deg, #0a0505 0%, #1a0a05 50%, #2d1208 100%); animation: gl-dark-pulse 10s ease-in-out infinite alternate; }
.grim-lion-fawns .fire-pit { position:absolute; bottom:8%; left:50%; width:30%; height:20%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #ff8c42 0%, #a0461a 40%, rgba(160,70,26,0.3) 70%, transparent 100%); mix-blend-mode: screen; animation: gl-fire 2s ease-in-out infinite alternate; }
.grim-lion-fawns .lion-head { position:absolute; bottom:35%; left:25%; width:30%; height:40%; background: linear-gradient(180deg, #1a0e0a 0%, #2d1a10 50%, #1a0e0a 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform: rotate(-10deg); animation: gl-lion-loom 6s ease-in-out infinite; }
.grim-lion-fawns .lion-mane { position:absolute; bottom:30%; left:18%; width:45%; height:50%; background: radial-gradient(ellipse at 50% 40%, #2d1a10 0%, #1a0e0a 40%, transparent 60%); border-radius: 50%; transform: rotate(-5deg); animation: gl-mane 8s ease-in-out infinite alternate; }
.grim-lion-fawns .sleeping-prey { position:absolute; bottom:5%; right:12%; width:35%; height:40%; background: linear-gradient(180deg, #5a3a28 0%, #3d2010 60%, #1a0e0a 100%); border-radius: 40% 30% 40% 30% / 50% 40% 50% 40%; opacity:0.9; animation: gl-prey 5s ease-in-out infinite alternate; }
.grim-lion-fawns .shadow-paw { position:absolute; bottom:8%; left:35%; width:20%; height:12%; background: linear-gradient(180deg, #0d0805 0%, #1a0e0a 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; transform: rotate(20deg); transform-origin: 80% 100%; animation: gl-paw 7s ease-in-out infinite; }
.grim-lion-fawns .ember-spark { position:absolute; bottom:15%; left:45%; width:1.5%; height:1.5%; background: radial-gradient(circle, #ff8c42 0%, transparent 100%); border-radius:50%; box-shadow:0 0 8px 3px #ff8c42; animation: gl-spark 4s ease-in-out infinite; }
.grim-lion-fawns .hunger-glint { position:absolute; bottom:48%; left:32%; width:3%; height:2.5%; background: radial-gradient(circle, #ffd060 0%, #c88030 60%, transparent 100%); border-radius:50%; box-shadow:0 0 14px 5px rgba(255,208,96,0.4); animation: gl-hunger 3s ease-in-out infinite; }
@keyframes gl-dark-pulse { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes gl-fire { 0% { opacity:0.5; transform: translateX(-50%) scaleY(0.8) } 50% { opacity:1; transform: translateX(-50%) scaleY(1.2) } 100% { opacity:0.6; transform: translateX(-50%) scaleY(0.9) } }
@keyframes gl-lion-loom { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-6px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes gl-mane { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(-3deg) scale(1.05) } 100% { transform: rotate(-5deg) scale(1) } }
@keyframes gl-prey { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gl-paw { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-5px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes gl-spark { 0% { opacity:0; transform: translateY(0) scale(0.5) } 20% { opacity:1; transform: translateY(-10px) scale(1) } 80% { opacity:0.8; transform: translateY(-40px) scale(0.3) } 100% { opacity:0; transform: translateY(-60px) scale(0) } }
@keyframes gl-hunger { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0.7; transform: scale(0.9) } }

.straggling-slaves-pillaging { background: linear-gradient(180deg, #0a0505 0%, #1a0a05 40%, #2d1208 70%, #1a0a05 100%), radial-gradient(ellipse at 50% 60%, #a0461a 0%, transparent 80%); }
.straggling-slaves-pillaging .bg-night { position:absolute; inset:0; background: linear-gradient(135deg, #0a0505 0%, #1a0a05 60%, #2d1208 100%); animation: ss-dark-shift 12s ease-in-out infinite alternate; }
.straggling-slaves-pillaging .smoke-layer { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, rgba(45,18,8,0.8) 0%, rgba(45,18,8,0.2) 60%, transparent 100%); filter: blur(8px); animation: ss-smoke 20s linear infinite; }
.straggling-slaves-pillaging .torch-left { position:absolute; bottom:20%; left:15%; width:4%; height:25%; background: linear-gradient(180deg, #5a3a28 0%, #2d1a10 100%); border-radius: 4px; transform: rotate(-15deg); transform-origin: bottom center; animation: ss-torch-swing 6s ease-in-out infinite; }
.straggling-slaves-pillaging .torch-right { position:absolute; bottom:25%; right:20%; width:4%; height:22%; background: linear-gradient(180deg, #5a3a28 0%, #2d1a10 100%); border-radius: 4px; transform: rotate(10deg); transform-origin: bottom center; animation: ss-torch-swing 7s ease-in-out infinite reverse; }
.straggling-slaves-pillaging .figure-1 { position:absolute; bottom:10%; left:8%; width:18%; height:50%; background: linear-gradient(180deg, #0d0805 0%, #1a0e0a 60%, #2d1a10 100%); border-radius: 30% 20% 20% 20% / 40% 30% 30% 30%; transform: rotate(5deg); animation: ss-fig1 9s ease-in-out infinite; }
.straggling-slaves-pillaging .figure-2 { position:absolute; bottom:12%; left:30%; width:16%; height:45%; background: linear-gradient(180deg, #0d0805 0%, #1a0e0a 60%, #2d1a10 100%); border-radius: 25% 30% 20% 25% / 35% 40% 30% 35%; transform: rotate(-8deg); animation: ss-fig2 11s ease-in-out infinite; }
.straggling-slaves-pillaging .figure-3 { position:absolute; bottom:8%; right:10%; width:20%; height:55%; background: linear-gradient(180deg, #1a0e0a 0%, #2d1a10 50%, #1a0e0a 100%); border-radius: 30% 20% 25% 25% / 45% 30% 35% 35%; transform: rotate(3deg); animation: ss-fig3 13s ease-in-out infinite; }
.straggling-slaves-pillaging .flame-burst { position:absolute; bottom:44%; left:15%; width:6%; height:8%; background: radial-gradient(ellipse at 50% 0%, #ff8c42 0%, #c8553d 30%, rgba(200,85,61,0.3) 60%, transparent 100%); mix-blend-mode: screen; animation: ss-flame 1.5s ease-in-out infinite alternate; }
.straggling-slaves-pillaging .debris-ground { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, transparent 0%, #1a0e0a 30%, #2d1a10 70%, #1a0e0a 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; animation: ss-debris 14s ease-in-out infinite alternate; }
@keyframes ss-dark-shift { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ss-smoke { 0% { transform: translateX(0) translateY(0) scale(1) } 50% { transform: translateX(20px) translateY(-8px) scale(1.05) } 100% { transform: translateX(0) translateY(0) scale(1) } }
@keyframes ss-torch-swing { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-15deg) } }
@keyframes ss-fig1 { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(3deg) translateX(8px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes ss-fig2 { 0% { transform: rotate(-8deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(-6px) } 100% { transform: rotate(-8deg) translateX(0) } }
@keyframes ss-fig3 { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-5px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes ss-flame { 0% { opacity:0.6; transform: scaleY(0.8) } 50% { opacity:1; transform: scaleY(1.3) } 100% { opacity:0.7; transform: scaleY(0.9) } }
@keyframes ss-debris { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }

.drumming-heart-cheers { background: linear-gradient(180deg, #2d1a10 0%, #3d2010 30%, #4d2a18 60%, #3d2010 100%), radial-gradient(ellipse at 50% 40%, #c8553d 0%, transparent 70%); }
.drumming-heart-cheers .bg-close { position:absolute; inset:0; background: linear-gradient(180deg, #2d1a10 0%, #4d2a18 40%, #3d2010 100%); animation: dh-pulse 8s ease-in-out infinite alternate; }
.drumming-heart-cheers .breast-curve { position:absolute; bottom:5%; left:15%; width:70%; height:65%; background: linear-gradient(180deg, #5a3a28 0%, #4d2a18 40%, #3d2010 100%); border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%; transform: rotate(-5deg); animation: dh-breath 4s ease-in-out infinite alternate; }
.drumming-heart-cheers .advancing-hand { position:absolute; bottom:35%; left:20%; width:25%; height:30%; background: linear-gradient(180deg, #5a3a28 0%, #3d2010 60%, #2d1a10 100%); border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%; transform: rotate(25deg); transform-origin: 60% 80%; animation: dh-advance 7s ease-in-out infinite; }
.drumming-heart-cheers .fingers-curled { position:absolute; bottom:38%; left:28%; width:8%; height:15%; background: linear-gradient(180deg, #5a3a28 0%, #3d2010 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: rotate(10deg); transform-origin: 0% 100%; animation: dh-fingers 5s ease-in-out infinite; }
.drumming-heart-cheers .vein-blue { position:absolute; bottom:35%; left:30%; width:12%; height:3%; background: linear-gradient(90deg, transparent 0%, rgba(60,80,120,0.5) 30%, rgba(60,80,120,0.7) 60%, transparent 100%); border-radius: 40% 40% 40% 40% / 50% 50% 50% 50%; transform: rotate(-15deg); animation: dh-vein 6s ease-in-out infinite; }
.drumming-heart-cheers .heart-throb { position:absolute; bottom:25%; left:38%; width:8%; height:8%; background: radial-gradient(circle, #c8553d 0%, #a0461a 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(200,85,61,0.3); animation: dh-throb 1.5s ease-in-out infinite; }
.drumming-heart-cheers .shadow-vignette { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 50%, transparent 30%, rgba(10,5,5,0.6) 70%, #0a0505 100%); animation: dh-shadow 8s ease-in-out infinite alternate; }
.drumming-heart-cheers .sweat-gleam { position:absolute; bottom:45%; left:35%; width:3%; height:3%; background: radial-gradient(circle, rgba(255,255,255,0.2) 0%, transparent 100%); border-radius:50%; animation: dh-sweat 4s ease-in-out infinite; }
@keyframes dh-pulse { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes dh-breath { 0% { transform: rotate(-5deg) translateY(0) scaleY(1) } 50% { transform: rotate(-5deg) translateY(-3px) scaleY(1.02) } 100% { transform: rotate(-5deg) translateY(0) scaleY(1) } }
@keyframes dh-advance { 0% { transform: rotate(25deg) translateX(0) } 50% { transform: rotate(22deg) translateX(-8px) } 100% { transform: rotate(25deg) translateX(0) } }
@keyframes dh-fingers { 0% { transform: rotate(10deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(10deg) } }
@keyframes dh-vein { 0% { opacity:0.3; transform: rotate(-15deg) scaleX(1) } 50% { opacity:0.7; transform: rotate(-12deg) scaleX(1.1) } 100% { opacity:0.4; transform: rotate(-15deg) scaleX(1) } }
@keyframes dh-throb { 0% { transform: scale(1); opacity:0.7 } 25% { transform: scale(1.2); opacity:1 } 50% { transform: scale(1); opacity:0.8 } 75% { transform: scale(1.15); opacity:0.9 } 100% { transform: scale(1); opacity:0.7 } }
@keyframes dh-shadow { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes dh-sweat { 0% { opacity:0; transform: translateY(0) } 50% { opacity:0.4; transform: translateY(-8px) } 100% { opacity:0; transform: translateY(-16px) } }

/* painting-sinon-devil: tense, dim interior */
.scn-painting-sinon-devil { background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1e 50%, #2a1a2a 100%), radial-gradient(ellipse at 20% 80%, #3a2a1a 0%, transparent 70%); }
.scn-painting-sinon-devil .room-walls { position:absolute; inset:0 0 8% 0; background: linear-gradient(180deg, #1f1f2f 0%, #0d0d1a 100%); animation: pd-ambient 12s ease-in-out infinite alternate; }
.scn-painting-sinon-devil .floor { position:absolute; bottom:0; left:0; right:0; height:8%; background: linear-gradient(180deg, #2a221a 0%, #1a140e 100%); border-radius: 0 0 20% 20%; }
.scn-painting-sinon-devil .window-frame { position:absolute; top:15%; right:10%; width:30%; height:40%; background: linear-gradient(135deg, #3a3a4a 0%, #1a1a2a 100%); border: 4px solid #4a3a2a; border-radius: 4%/6%; box-shadow: inset 0 0 20px #000; animation: pd-frame 8s ease-in-out infinite; }
.scn-painting-sinon-devil .window-storm { position:absolute; top:17%; right:12%; width:26%; height:36%; background: linear-gradient(180deg, #1a1a3e 0%, #2a2a4a 40%, #3a3a5e 100%); border-radius: 2%/3%; animation: pd-storm 6s ease-in-out infinite; }
.scn-painting-sinon-devil .figure-devil { position:absolute; bottom:10%; left:15%; width:25%; height:60%; background: linear-gradient(180deg, #0a0a12 0%, #151520 50%, #0d0d16 100%); border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%; transform: skewX(4deg); animation: pd-devil 4s ease-in-out infinite alternate; }
.scn-painting-sinon-devil .shadow-device { position:absolute; bottom:8%; left:10%; width:40%; height:20%; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 80%); border-radius: 50%; filter: blur(10px); animation: pd-shadow 5s ease-in-out infinite; }
.scn-painting-sinon-devil .candle-flame { position:absolute; bottom:20%; left:50%; width:8px; height:12px; background: radial-gradient(ellipse, #ffd080 0%, #b07030 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,180,60,0.6); animation: pd-flame 2s ease-in-out infinite; }
.scn-painting-sinon-devil .candle-wax { position:absolute; bottom:18%; left:49.5%; width:12px; height:20px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%); border-radius: 20% 20% 30% 30%; transform: translateX(-50%); }
@keyframes pd-ambient { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pd-frame { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes pd-storm { 0% { background-position: 0% 0% } 50% { background-position: 50% 50% } 100% { background-position: 100% 100% } }
@keyframes pd-devil { 0% { transform: skewX(4deg) translateY(0) } 50% { transform: skewX(-2deg) translateY(-4px) } 100% { transform: skewX(4deg) translateY(-2px) } }
@keyframes pd-shadow { 0%,100% { opacity:0.5; transform: scaleX(1) } 50% { opacity:0.8; transform: scaleX(1.2) } }
@keyframes pd-flame { 0% { transform: scaleY(1) rotate(0deg) } 25% { transform: scaleY(1.1) rotate(5deg) } 50% { transform: scaleY(0.9) rotate(-3deg) } 75% { transform: scaleY(1.05) rotate(2deg) } 100% { transform: scaleY(1) rotate(0deg) } }

/* painting-sinon-story: dark, dim interior with painter scene */
.scn-painting-sinon-story { background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 50%, #2a1a1a 100%), radial-gradient(ellipse at 50% 90%, #3a2a2a 0%, transparent 70%); }
.scn-painting-sinon-story .studio-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1c1c2c 0%, #141420 100%); animation: ps-bg 15s ease-in-out infinite alternate; }
.scn-painting-sinon-story .canvas-frame { position:absolute; top:10%; left:10%; width:50%; height:60%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border: 6px solid #5a4a3a; border-radius: 4%/6%; box-shadow: 0 8px 24px rgba(0,0,0,0.8); animation: ps-frame 10s ease-in-out infinite; }
.scn-painting-sinon-story .canvas-image { position:absolute; top:13%; left:13%; width:44%; height:54%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%); border-radius: 2%/3%; animation: ps-image 8s ease-in-out infinite; }
.scn-painting-sinon-story .sinon-figure { position:absolute; bottom:15%; right:5%; width:20%; height:50%; background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 50%, #0a0a14 100%); border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%; transform: rotate(5deg); animation: ps-sinon 6s ease-in-out infinite alternate; }
.scn-painting-sinon-story .painter-hand { position:absolute; bottom:20%; left:20%; width:6%; height:12%; background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%); border-radius: 20% 20% 10% 10%; animation: ps-hand 4s ease-in-out infinite; }
.scn-painting-sinon-story .wildfire-spark { position:absolute; top:30%; left:30%; width:10px; height:10px; background: radial-gradient(circle, #ffd080 0%, #b07030 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,180,60,0.7); animation: ps-spark 3s ease-in-out infinite; }
.scn-painting-sinon-story .spark-2 { top:45%; left:50%; width:8px; height:8px; animation-delay: 1.5s; background: radial-gradient(circle, #ffc060 0%, #a06020 60%, transparent 100%); }
@keyframes ps-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ps-frame { 0%,100% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.01) rotate(1deg) } }
@keyframes ps-image { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes ps-sinon { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(-2deg) translateX(3px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes ps-hand { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-5px) rotate(10deg) } 60% { transform: translateY(2px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ps-spark { 0% { transform: scale(0.5) translate(0,0); opacity:0.3 } 50% { transform: scale(1.5) translate(10px,-20px); opacity:1 } 100% { transform: scale(0.8) translate(-5px,10px); opacity:0 } }

/* lucrece-gazes-sinon: calm, dim interior, gazing at portrait */
.scn-lucrece-gazes-sinon { background: linear-gradient(180deg, #1e1e2e 0%, #141422 50%, #2a1a1a 100%), radial-gradient(ellipse at 60% 50%, #3a2a2a 0%, transparent 80%); }
.scn-lucrece-gazes-sinon .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1c1c2c 0%, #12121e 100%); animation: lg-room 20s ease-in-out infinite alternate; }
.scn-lucrece-gazes-sinon .picture-frame { position:absolute; top:12%; left:55%; width:30%; height:45%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border: 8px solid #6a5a4a; border-radius: 6%/8%; box-shadow: 0 10px 30px rgba(0,0,0,0.7); animation: lg-frame 12s ease-in-out infinite; }
.scn-lucrece-gazes-sinon .picture-portrait { position:absolute; top:16%; left:58%; width:24%; height:37%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius: 4%/6%; clip-path: ellipse(50% 60% at 50% 50%); animation: lg-portrait 10s ease-in-out infinite; }
.scn-lucrece-gazes-sinon .lucrece-silhouette { position:absolute; bottom:8%; right:60%; width:18%; height:55%; background: linear-gradient(180deg, #0d0d18 0%, #1a1a2e 50%, #0a0a14 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-2deg); animation: lg-lucrece 8s ease-in-out infinite alternate; }
.scn-lucrece-gazes-sinon .candle-light { position:absolute; top:55%; left:20%; width:10px; height:15px; background: radial-gradient(ellipse, #ffd080 0%, #b07030 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 12px rgba(255,180,60,0.5); animation: lg-candle 3s ease-in-out infinite; }
.scn-lucrece-gazes-sinon .candle-glow { position:absolute; top:50%; left:15%; width:20%; height:25%; background: radial-gradient(ellipse, rgba(255,180,60,0.3) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: lg-glow 5s ease-in-out infinite; }
.scn-lucrece-gazes-sinon .cast-shadow { position:absolute; bottom:8%; left:10%; width:40%; height:15%; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%); border-radius: 50%; filter: blur(8px); animation: lg-shadow 7s ease-in-out infinite; }
@keyframes lg-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes lg-frame { 0%,100% { transform: scale(1) } 50% { transform: scale(1.01) } }
@keyframes lg-portrait { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes lg-lucrece { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes lg-candle { 0% { transform: scaleY(1) rotate(0deg) } 25% { transform: scaleY(1.1) rotate(3deg) } 50% { transform: scaleY(0.9) rotate(-2deg) } 75% { transform: scaleY(1.05) rotate(1deg) } 100% { transform: scaleY(1) rotate(0deg) } }
@keyframes lg-glow { 0%,100% { opacity:0.4; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.2) } }
@keyframes lg-shadow { 0%,100% { opacity:0.3 } 50% { opacity:0.5 } }

/* lucrece-compares-tarquin: dark, dim interior, two figures compared */
.scn-lucrece-compares-tarquin { background: linear-gradient(180deg, #0a0a14 0%, #12121e 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 80%, #1a1a2e 0%, transparent 80%); }
.scn-lucrece-compares-tarquin .dark-room { position:absolute; inset:0; background: linear-gradient(180deg, #0d0d1a 0%, #161622 100%); animation: lc-room 18s ease-in-out infinite alternate; }
.scn-lucrece-compares-tarquin .figure-sinon { position:absolute; bottom:10%; left:10%; width:25%; height:55%; background: linear-gradient(180deg, #0a0a16 0%, #151528 50%, #0d0d1a 100%); border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%; transform: skewX(-3deg); animation: lc-sinon 7s ease-in-out infinite alternate; }
.scn-lucrece-compares-tarquin .figure-tarquin { position:absolute; bottom:10%; right:10%; width:28%; height:60%; background: linear-gradient(180deg, #0d0d20 0%, #1a1a30 50%, #0f0f20 100%); border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%; transform: skewX(4deg); animation: lc-tarquin 9s ease-in-out infinite alternate; }
.scn-lucrece-compares-tarquin .lucrece-center { position:absolute; bottom:5%; left:42%; width:16%; height:40%; background: linear-gradient(180deg, #12122a 0%, #1a1a36 50%, #0e0e20 100%); border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; animation: lc-lucrece 6s ease-in-out infinite; }
.scn-lucrece-compares-tarquin .divider-line { position:absolute; top:10%; bottom:50%; left:49%; width:2%; background: linear-gradient(180deg, rgba(255,200,100,0.3) 0%, transparent 100%); box-shadow: 0 0 10px rgba(255,200,100,0.2); animation: lc-line 5s ease-in-out infinite; }
.scn-lucrece-compares-tarquin .thought-haze { position:absolute; top:20%; left:20%; right:20%; bottom:40%; background: radial-gradient(ellipse, rgba(255,180,60,0.1) 0%, transparent 80%); border-radius: 50%; filter: blur(20px); animation: lc-haze 12s ease-in-out infinite; }
@keyframes lc-room { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes lc-sinon { 0% { transform: skewX(-3deg) translateX(0) } 50% { transform: skewX(1deg) translateX(5px) } 100% { transform: skewX(-3deg) translateX(0) } }
@keyframes lc-tarquin { 0% { transform: skewX(4deg) translateX(0) } 50% { transform: skewX(-2deg) translateX(-5px) } 100% { transform: skewX(4deg) translateX(0) } }
@keyframes lc-lucrece { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(2deg) } 70% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lc-line { 0%,100% { opacity:0.2 } 50% { opacity:0.5 } }
@keyframes lc-haze { 0% { transform: scale(0.8); opacity:0.3 } 50% { transform: scale(1.2); opacity:0.5 } 100% { transform: scale(1); opacity:0.2 } }

.scn-lucrece-sleeping { background: linear-gradient(180deg, #1a0a00 0%, #3a2510 40%, #5a3a1a 100%), radial-gradient(ellipse at 50% 30%, #d08040 0%, transparent 60%); position: relative; overflow: hidden; height: 100%; }
.scn-lucrece-sleeping .bed { position: absolute; bottom: 5%; left: 10%; right: 10%; height: 60%; background: linear-gradient(180deg, #4a2a10 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.7); animation: lu-bed 12s ease-in-out infinite; }
.scn-lucrece-sleeping .pillow-left { position: absolute; bottom: 48%; left: 20%; width: 22%; height: 24%; background: linear-gradient(135deg, #6a4a2a, #3a2a1a); border-radius: 50% 40% 50% 40%; box-shadow: inset 0 -5px 10px rgba(0,0,0,.5), 0 5px 15px rgba(0,0,0,.3); animation: lu-pillow 8s ease-in-out infinite; }
.scn-lucrece-sleeping .pillow-right { position: absolute; bottom: 48%; right: 20%; width: 22%; height: 24%; background: linear-gradient(225deg, #6a4a2a, #3a2a1a); border-radius: 40% 50% 40% 50%; box-shadow: inset 0 -5px 10px rgba(0,0,0,.5), 0 5px 15px rgba(0,0,0,.3); animation: lu-pillow 8s ease-in-out infinite reverse; }
.scn-lucrece-sleeping .head { position: absolute; bottom: 54%; left: 50%; transform: translateX(-50%); width: 18%; height: 22%; background: radial-gradient(ellipse at 50% 40%, #c08050 0%, #5a3a20 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 -10px 30px #d08040; animation: lu-breath 5s ease-in-out infinite; }
.scn-lucrece-sleeping .hand { position: absolute; bottom: 20%; left: 38%; width: 8%; height: 14%; background: linear-gradient(180deg, #d0a070 0%, #a08050 100%); border-radius: 40% 40% 30% 30%; transform: rotate(-15deg); animation: lu-hand 7s ease-in-out infinite; }
.scn-lucrece-sleeping .firelight { position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 60%, rgba(200,120,40,.3) 0%, transparent 70%); animation: lu-flicker 4s ease-in-out infinite alternate; pointer-events: none; }
.scn-lucrece-sleeping .shadow { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%); animation: lu-shadow 10s ease-in-out infinite alternate; }
@keyframes lu-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lu-pillow { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes lu-breath { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes lu-hand { 0% { transform: rotate(-15deg) translateY(0); } 25% { transform: rotate(-17deg) translateY(-2px); } 50% { transform: rotate(-13deg) translateY(0); } 75% { transform: rotate(-16deg) translateY(-1px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes lu-flicker { 0%, 100% { opacity: 0.6; } 50% { opacity: 1; } 75% { opacity: 0.7; } }
@keyframes lu-shadow { 0% { opacity: 0.8; } 50% { opacity: 0.6; } 100% { opacity: 0.8; } }

.scn-sleeping-beauty { background: linear-gradient(180deg, #1a2a0a 0%, #2a3a1a 40%, #4a3a1a 100%), radial-gradient(ellipse at 50% 30%, #e08040 0%, transparent 70%); position: relative; overflow: hidden; height: 100%; }
.scn-sleeping-beauty .coverlet { position: absolute; bottom: 5%; left: 8%; right: 8%; height: 70%; background: linear-gradient(180deg, #3a5a2a 0%, #1a3a0a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: be-coverlet 15s ease-in-out infinite; }
.scn-sleeping-beauty .hand { position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%); width: 12%; height: 16%; background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%); border-radius: 40% 40% 30% 30%; box-shadow: -10px 0 20px rgba(200,120,40,.4); animation: be-hand 6s ease-in-out infinite; }
.scn-sleeping-beauty .daisy { position: absolute; bottom: 35%; left: 40%; width: 6%; height: 6%; background: radial-gradient(circle, #f0e0c0 0%, #e0c0a0 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 15px 5px #e0c0a0; animation: be-daisy 9s ease-in-out infinite; }
.scn-sleeping-beauty .face-sleeping { position: absolute; bottom: 58%; left: 50%; transform: translateX(-50%); width: 16%; height: 18%; background: radial-gradient(ellipse at 50% 40%, #d0a070 0%, #806040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 5px 25px #b08040; animation: be-face 5s ease-in-out infinite; }
.scn-sleeping-beauty .hair { position: absolute; bottom: 60%; left: 48%; width: 20%; height: 25%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 50% 40% 60% 40%; transform: rotate(5deg); animation: be-hair 12s ease-in-out infinite; }
.scn-sleeping-beauty .fire-glow { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 20%, rgba(230,160,60,.4) 0%, transparent 70%); animation: be-flicker 3.5s ease-in-out infinite alternate; pointer-events: none; }
.scn-sleeping-beauty .pearl-sweat { position: absolute; bottom: 52%; left: 48%; width: 2%; height: 2%; background: radial-gradient(circle, #fff 0%, #e0e0c0 80%, transparent 100%); border-radius: 50%; animation: be-sweat 8s ease-in-out infinite; }
.scn-sleeping-beauty .pearl-sweat-2 { position: absolute; bottom: 50%; right: 44%; width: 1.5%; height: 1.5%; background: radial-gradient(circle, #fff 0%, #e0e0c0 80%, transparent 100%); border-radius: 50%; animation: be-sweat 8s ease-in-out infinite reverse; animation-delay: 2s; }
@keyframes be-coverlet { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes be-hand { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 33% { transform: translateX(-50%) rotate(3deg) scaleY(1.02); } 66% { transform: translateX(-50%) rotate(-2deg) scaleY(0.98); } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1); } }
@keyframes be-daisy { 0% { transform: rotate(0deg) scale(1); opacity: 0.8; } 50% { transform: rotate(180deg) scale(1.1); opacity: 1; } 100% { transform: rotate(360deg) scale(1); opacity: 0.8; } }
@keyframes be-face { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.01); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes be-hair { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes be-flicker { 0% { opacity: 0.5; } 50% { opacity: 1; } 75% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes be-sweat { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-5px) scale(0.8); opacity: 0.3; } 100% { transform: translateY(0) scale(1); opacity: 0.6; } }

.scn-hair-golden-threads { background: linear-gradient(180deg, #1a0a00 0%, #3a1a0a 40%, #5a2a10 100%), radial-gradient(ellipse at 50% 30%, #d09040 0%, transparent 60%); position: relative; overflow: hidden; height: 100%; }
.scn-hair-golden-threads .head-silhouette { position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 30%; height: 35%; background: radial-gradient(ellipse at 50% 40%, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 30px #d09040; animation: ha-head 7s ease-in-out infinite; }
.scn-hair-golden-threads .hair-strands { position: absolute; bottom: 40%; left: 36%; width: 12%; height: 40%; background: linear-gradient(180deg, #f0c060 0%, #d0a040 50%, #a08020 100%); border-radius: 50% 50% 20% 20%; transform: rotate(-20deg); box-shadow: 0 0 20px #f0c060; animation: ha-strand-1 6s ease-in-out infinite; }
.scn-hair-golden-threads .hair-strands-2 { position: absolute; bottom: 38%; left: 50%; width: 14%; height: 45%; background: linear-gradient(180deg, #f0b040 0%, #d09030 50%, #a07020 100%); border-radius: 50% 50% 20% 20%; transform: rotate(-5deg); box-shadow: 0 0 20px #f0b040; animation: ha-strand-2 8s ease-in-out infinite; }
.scn-hair-golden-threads .hair-strands-3 { position: absolute; bottom: 42%; right: 34%; width: 10%; height: 38%; background: linear-gradient(180deg, #e8b060 0%, #c89040 50%, #a07020 100%); border-radius: 50% 50% 20% 20%; transform: rotate(15deg); box-shadow: 0 0 20px #e8b060; animation: ha-strand-3 7s ease-in-out infinite; }
.scn-hair-golden-threads .breath-mist { position: absolute; bottom: 30%; left: 45%; width: 8%; height: 4%; background: radial-gradient(ellipse, rgba(200,180,150,.3) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: ha-breath 5s ease-in-out infinite; }
.scn-hair-golden-threads .fire-glow { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 30%, rgba(220,140,60,.4) 0%, transparent 70%); animation: ha-flicker 3.2s ease-in-out infinite alternate; pointer-events: none; }
.scn-hair-golden-threads .shadow-deep { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(0deg, rgba(0,0,0,.8) 0%, transparent 100%); animation: ha-shadow 12s ease-in-out infinite; }
@keyframes ha-head { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.015); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes ha-strand-1 { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-5px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes ha-strand-2 { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-6px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ha-strand-3 { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-4px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes ha-breath { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.5); opacity: 0.6; } 100% { transform: scaleX(1); opacity: 0.3; } }
@keyframes ha-flicker { 0% { opacity: 0.5; } 50% { opacity: 1; } 75% { opacity: 0.6; } 100% { opacity: 0.5; } }
@keyframes ha-shadow { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }

.scn-item-ivory-globes { background: linear-gradient(180deg, #0a0000 0%, #1a0500 40%, #2a0a00 100%), radial-gradient(ellipse at 50% 40%, #e08040 0%, transparent 60%); position: relative; overflow: hidden; height: 100%; }
.scn-item-ivory-globes .ivory-left { position: absolute; bottom: 30%; left: 30%; width: 18%; height: 22%; background: radial-gradient(ellipse at 50% 50%, #f0e0c0 0%, #d0b090 60%, #a08060 100%); border-radius: 50%; box-shadow: 0 0 30px rgba(200,120,40,.3), inset 0 -10px 20px rgba(0,0,0,.3); animation: iv-pulse 2s ease-in-out infinite; }
.scn-item-ivory-globes .ivory-right { position: absolute; bottom: 30%; right: 30%; width: 18%; height: 22%; background: radial-gradient(ellipse at 50% 50%, #f0e0c0 0%, #d0b090 60%, #a08060 100%); border-radius: 50%; box-shadow: 0 0 30px rgba(200,120,40,.3), inset 0 -10px 20px rgba(0,0,0,.3); animation: iv-pulse 2s ease-in-out infinite reverse; }
.scn-item-ivory-globes .blue-veins { position: absolute; bottom: 32%; left: 29%; width: 20%; height: 18%; background: radial-gradient(circle at 50% 50%, transparent 60%, #4a7a8a 62%, transparent 64%), radial-gradient(circle at 40% 40%, transparent 40%, #4a7a8a 42%, transparent 44%); border-radius: 50%; animation: iv-veins 4s ease-in-out infinite; }
.scn-item-ivory-globes .shadow-hand { position: absolute; bottom: 40%; left: 45%; width: 20%; height: 30%; background: linear-gradient(180deg, #1a0500 0%, #0a0000 100%); border-radius: 40% 40% 30% 30%; clip-path: polygon(0 0, 60% 0, 80% 30%, 100% 50%, 90% 80%, 70% 100%, 30% 100%, 10% 80%, 0 50%); transform: rotate(-10deg); animation: iv-hand 1.5s ease-in-out infinite; }
.scn-item-ivory-globes .fire-shadows { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, rgba(200,100,40,.2) 0%, transparent 60%); animation: iv-flicker 3s ease-in-out infinite alternate; pointer-events: none; }
.scn-item-ivory-globes .threat-glow { position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 30%; height: 20%; background: radial-gradient(ellipse, rgba(200,80,40,.4) 0%, transparent 70%); animation: iv-threat 2s ease-in-out infinite; }
.scn-item-ivory-globes .pulse-ring { position: absolute; bottom: 30%; left: 30%; width: 18%; height: 22%; border: 2px solid rgba(200,80,40,.3); border-radius: 50%; animation: iv-ring 2s ease-in-out infinite; }
.scn-item-ivory-globes .pulse-ring-2 { position: absolute; bottom: 30%; right: 30%; width: 18%; height: 22%; border: 2px solid rgba(200,80,40,.3); border-radius: 50%; animation: iv-ring 2s ease-in-out infinite reverse; }
@keyframes iv-pulse { 0% { transform: scale(1); } 50% { transform: scale(1.03); } 100% { transform: scale(1); } }
@keyframes iv-veins { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes iv-hand { 0% { transform: rotate(-10deg) translateY(0); opacity: 0.8; } 25% { transform: rotate(-12deg) translateY(-3px); opacity: 1; } 50% { transform: rotate(-8deg) translateY(0); opacity: 0.8; } 75% { transform: rotate(-11deg) translateY(-2px); opacity: 1; } 100% { transform: rotate(-10deg) translateY(0); opacity: 0.8; } }
@keyframes iv-flicker { 0% { opacity: 0.4; } 50% { opacity: 1; } 75% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes iv-threat { 0% { opacity: 0.2; transform: translateX(-50%) scale(1); } 50% { opacity: 0.6; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.2; transform: translateX(-50%) scale(1); } }
@keyframes iv-ring { 0% { transform: scale(1); opacity: 0.4; } 50% { transform: scale(1.2); opacity: 0.1; } 100% { transform: scale(1); opacity: 0.4; } }

.scn-dispute-will-conscience {
  background:
    radial-gradient(ellipse at 30% 50%, #5e1a1d 0%, transparent 50%),
    radial-gradient(ellipse at 70% 50%, #1a3a4a 0%, transparent 50%),
    linear-gradient(90deg, #3a1a1a 0%, #2a2a3a 30%, #1a1a3a 70%, #0a0a1a 100%);
  position: relative;
  overflow: hidden;
}
.scn-dispute-will-conscience .fire-glow {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 30% 60%, rgba(200, 85, 61, 0.4) 0%, transparent 70%);
  animation: dwc-fireglow 4s ease-in-out infinite alternate;
}
.scn-dispute-will-conscience .bg-hot {
  position: absolute;
  left: 0;
  top: 0;
  width: 50%;
  height: 100%;
  background: linear-gradient(180deg, #4a1a1a 0%, #6a2a1a 40%, #3a1a1a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%);
  opacity: 0.7;
}
.scn-dispute-will-conscience .bg-cold {
  position: absolute;
  right: 0;
  top: 0;
  width: 50%;
  height: 100%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 40%, #0a0a1a 100%);
  clip-path: polygon(20% 0, 100% 0, 100% 100%, 0% 100%);
  opacity: 0.7;
}
.scn-dispute-will-conscience .figure-right {
  position: absolute;
  right: 10%;
  top: 30%;
  width: 30%;
  height: 60%;
  background:
    radial-gradient(ellipse 120% 100% at 70% 40%, #2a1a1a 0%, transparent 100%),
    linear-gradient(180deg, #3a2a2a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.5);
  animation: dwc-figurer 6s ease-in-out infinite;
}
.scn-dispute-will-conscience .figure-left {
  position: absolute;
  left: 10%;
  top: 35%;
  width: 28%;
  height: 55%;
  background:
    radial-gradient(ellipse 100% 100% at 40% 40%, #5e1a1d 0%, transparent 100%),
    linear-gradient(180deg, #4a2a1a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.5);
  animation: dwc-figurel 6s ease-in-out infinite alternate;
}
.scn-dispute-will-conscience .flame {
  position: absolute;
  bottom: 20%;
  left: 25%;
  width: 12px;
  height: 30px;
  background: linear-gradient(180deg, #f0a040 0%, #c8553d 40%, #5e1a1d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  opacity: 0.8;
}
.scn-dispute-will-conscience .flame-a {
  left: 22%;
  height: 35px;
  animation: dwc-flamea 0.8s ease-in-out infinite alternate;
}
.scn-dispute-will-conscience .flame-b {
  left: 28%;
  height: 25px;
  animation: dwc-flameb 1s ease-in-out infinite alternate;
  animation-delay: -0.3s;
}
.scn-dispute-will-conscience .flame-c {
  left: 32%;
  height: 28px;
  animation: dwc-flamec 0.7s ease-in-out infinite alternate;
  animation-delay: -0.5s;
}
.scn-dispute-will-conscience .ember {
  position: absolute;
  left: 27%;
  bottom: 30%;
  width: 4px;
  height: 4px;
  background: #f0c060;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(240, 192, 96, 0.6);
  animation: dwc-ember 3s ease-in-out infinite;
}
.scn-dispute-will-conscience .shadow-divide {
  position: absolute;
  top: 0;
  left: 45%;
  width: 10%;
  height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 30%, rgba(0,0,0,0.5) 50%, rgba(0,0,0,0.3) 70%, transparent 100%);
  animation: dwc-divide 4s ease-in-out infinite alternate;
}
@keyframes dwc-fireglow {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes dwc-figurer {
  0% { transform: scaleX(-1) translateX(0) rotate(0deg); }
  50% { transform: scaleX(-1) translateX(-8px) rotate(3deg); }
  100% { transform: scaleX(-1) translateX(0) rotate(0deg); }
}
@keyframes dwc-figurel {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dwc-flamea {
  0% { transform: scaleY(1) translateY(0); opacity: 0.6; }
  50% { transform: scaleY(1.2) translateY(-5px); opacity: 0.9; }
  100% { transform: scaleY(0.9) translateY(2px); opacity: 0.7; }
}
@keyframes dwc-flameb {
  0% { transform: scaleY(0.8) translateY(0); opacity: 0.5; }
  50% { transform: scaleY(1.1) translateY(-4px); opacity: 0.8; }
  100% { transform: scaleY(1) translateY(2px); opacity: 0.6; }
}
@keyframes dwc-flamec {
  0% { transform: scaleY(1) translateY(0); opacity: 0.7; }
  50% { transform: scaleY(0.9) translateY(-3px); opacity: 0.5; }
  100% { transform: scaleY(1.1) translateY(1px); opacity: 0.8; }
}
@keyframes dwc-ember {
  0% { transform: translate(0, 0) scale(1); opacity: 0.8; }
  25% { transform: translate(10px, -15px) scale(1.5); opacity: 1; }
  50% { transform: translate(-5px, -30px) scale(0.8); opacity: 0.5; }
  75% { transform: translate(15px, -50px) scale(0.4); opacity: 0.2; }
  100% { transform: translate(0, -60px) scale(0); opacity: 0; }
}
@keyframes dwc-divide {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.5); }
  100% { opacity: 0.4; transform: scaleX(0.8); }
}

.scn-tarquin-recalls-welcome {
  background:
    radial-gradient(ellipse at 60% 70%, #c8553d 0%, transparent 50%),
    radial-gradient(ellipse at 40% 30%, #a0461a 0%, transparent 40%),
    linear-gradient(180deg, #4a2a1a 0%, #3a1a1a 40%, #2a1a1a 100%);
  position: relative;
  overflow: hidden;
}
.scn-tarquin-recalls-welcome .room-wall {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%),
    repeating-linear-gradient(0deg, transparent 0px, transparent 20px, rgba(0,0,0,0.1) 20px, rgba(0,0,0,0.1) 21px);
  opacity: 0.5;
}
.scn-tarquin-recalls-welcome .hearth {
  position: absolute;
  bottom: 15%;
  left: 35%;
  width: 30%;
  height: 25%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-tarquin-recalls-welcome .fire-fire {
  position: absolute;
  bottom: 18%;
  left: 42%;
  width: 16%;
  height: 20%;
  background:
    radial-gradient(ellipse at 50% 80%, #f0c060 0%, #c8553d 40%, #5e1a1d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: trw-fire 2s ease-in-out infinite alternate;
}
.scn-tarquin-recalls-welcome .figure-seated {
  position: absolute;
  bottom: 15%;
  left: 20%;
  width: 25%;
  height: 45%;
  background:
    radial-gradient(ellipse 100% 100% at 50% 30%, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
  animation: trw-seated 5s ease-in-out infinite;
}
.scn-tarquin-recalls-welcome .figure-standing {
  position: absolute;
  bottom: 15%;
  right: 22%;
  width: 20%;
  height: 55%;
  background:
    radial-gradient(ellipse 100% 100% at 50% 30%, #5a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
  animation: trw-standing 6s ease-in-out infinite;
}
.scn-tarquin-recalls-welcome .hand-clasp {
  position: absolute;
  bottom: 35%;
  left: 38%;
  width: 8%;
  height: 10%;
  background: radial-gradient(ellipse at 50% 50%, #8a6a5a 0%, #5a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: trw-clasp 4s ease-in-out infinite;
}
.scn-tarquin-recalls-welcome .rose {
  position: absolute;
  width: 4%;
  height: 4%;
  background: radial-gradient(circle, #b87878 0%, #5e1a1d 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(184, 120, 120, 0.4);
}
.scn-tarquin-recalls-welcome .rose-a {
  bottom: 45%;
  left: 30%;
  animation: trw-rosea 6s ease-in-out infinite;
}
.scn-tarquin-recalls-welcome .rose-b {
  bottom: 42%;
  right: 28%;
  animation: trw-roseb 7s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-tarquin-recalls-welcome .warm-glow {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(200, 85, 61, 0.3) 0%, transparent 70%);
  animation: trw-glow 3s ease-in-out infinite alternate;
}
@keyframes trw-fire {
  0% { transform: scaleY(0.9) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.2) translateY(-4px); opacity: 1; }
  100% { transform: scaleY(1) translateY(2px); opacity: 0.9; }
}
@keyframes trw-seated {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(-2deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes trw-standing {
  0% { transform: scaleX(-1) translateX(0) rotate(0deg); }
  50% { transform: scaleX(-1) translateX(-4px) rotate(2deg); }
  100% { transform: scaleX(-1) translateX(0) rotate(0deg); }
}
@keyframes trw-clasp {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.05) translateY(-2px); }
  100% { transform: scale(0.95) translateY(1px); }
}
@keyframes trw-rosea {
  0% { transform: rotate(0deg) scale(1); opacity: 0.7; }
  50% { transform: rotate(10deg) scale(1.2); opacity: 1; }
  100% { transform: rotate(0deg) scale(0.9); opacity: 0.8; }
}
@keyframes trw-roseb {
  0% { transform: rotate(0deg) scale(0.9); opacity: 0.6; }
  50% { transform: rotate(-8deg) scale(1.1); opacity: 0.9; }
  100% { transform: rotate(0deg) scale(1); opacity: 0.7; }
}
@keyframes trw-glow {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

.scn-hand-trembling {
  background:
    radial-gradient(ellipse at 50% 60%, #a0461a 0%, transparent 50%),
    radial-gradient(ellipse at 50% 100%, #3a1a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 40%, #1a0a0a 100%);
  position: relative;
  overflow: hidden;
}
.scn-hand-trembling .bg-dark {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 40%, rgba(0,0,0,0.3) 100%);
}
.scn-hand-trembling .hand-under {
  position: absolute;
  bottom: 20%;
  left: 25%;
  width: 50%;
  height: 40%;
  background:
    radial-gradient(ellipse 100% 100% at 50% 70%, #8a6a5a 0%, #5a3a2a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);
  animation: htb-under 3s ease-in-out infinite;
}
.scn-hand-trembling .hand-over {
  position: absolute;
  bottom: 28%;
  left: 20%;
  width: 55%;
  height: 35%;
  background:
    radial-gradient(ellipse 100% 100% at 50% 60%, #9a7a6a 0%, #6a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: htb-over 2.5s ease-in-out infinite;
}
.scn-hand-trembling .hand-palm {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 35%;
  height: 25%;
  background:
    radial-gradient(ellipse at 50% 60%, #a08070 0%, #7a5a4a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  box-shadow: inset 0 -5px 15px rgba(0,0,0,0.3);
  animation: htb-palm 2s ease-in-out infinite;
}
.scn-hand-trembling .fingers-tremble {
  position: absolute;
  bottom: 40%;
  left: 35%;
  width: 20%;
  height: 15%;
  background: #9a7a6a;
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: htb-fingers 1.5s ease-in-out infinite;
}
.scn-hand-trembling .shadow-hand {
  position: absolute;
  bottom: 18%;
  left: 22%;
  width: 55%;
  height: 30%;
  background: rgba(0,0,0,0.4);
  border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%;
  filter: blur(10px);
  animation: htb-shadowhand 3s ease-in-out infinite;
}
.scn-hand-trembling .glow-point {
  position: absolute;
  bottom: 35%;
  left: 45%;
  width: 8%;
  height: 8%;
  background: radial-gradient(circle, #f0c060 0%, #a0461a 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240, 192, 96, 0.4);
  animation: htb-glow 4s ease-in-out infinite alternate;
}
.scn-hand-trembling .wrist-cuff {
  position: absolute;
  bottom: 22%;
  left: 28%;
  width: 8%;
  height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: htb-cuff 3s ease-in-out infinite;
}
@keyframes htb-under {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  25% { transform: translateY(-3px) rotate(1deg) scaleX(1.01); }
  50% { transform: translateY(0) rotate(-1deg) scaleX(0.99); }
  75% { transform: translateY(-2px) rotate(2deg) scaleX(1.01); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes htb-over {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  33% { transform: translateY(-4px) rotate(-2deg) scale(1.02); }
  66% { transform: translateY(-1px) rotate(1deg) scale(0.98); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes htb-palm {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(0) scale(0.99); }
}
@keyframes htb-fingers {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.8; }
  25% { transform: translateY(-1px) rotate(1deg); opacity: 0.9; }
  50% { transform: translateY(0) rotate(-1deg); opacity: 0.7; }
  75% { transform: translateY(-2px) rotate(2deg); opacity: 0.9; }
  100% { transform: translateY(0) rotate(0deg); opacity: 0.8; }
}
@keyframes htb-shadowhand {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(-3px) scale(0.95); opacity: 0.3; }
  100% { transform: translateY(0) scale(1); opacity: 0.4; }
}
@keyframes htb-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.3); }
  100% { opacity: 0.6; transform: scale(0.9); }
}
@keyframes htb-cuff {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

.scn-hunt-for-colours {
  background:
    radial-gradient(ellipse at 30% 40%, #5e1a1d 0%, transparent 50%),
    radial-gradient(ellipse at 70% 60%, #1a2a3a 0%, transparent 50%),
    linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 40%, #0a0a1a 100%);
  position: relative;
  overflow: hidden;
}
.scn-hunt-for-colours .bg-forest {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0,0,0,0.3) 0%, transparent 30%, transparent 70%, rgba(0,0,0,0.3) 100%),
    repeating-linear-gradient(0deg, transparent 0px, transparent 30px, rgba(0,20,0,0.1) 30px, rgba(0,20,0,0.1) 31px);
}
.scn-hunt-for-colours .figure-huntress {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 28%;
  height: 55%;
  background:
    radial-gradient(ellipse 100% 100% at 50% 30%, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
  animation: hfc-figure 5s ease-in-out infinite;
}
.scn-hunt-for-colours .banner-staff {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 3%;
  height: 55%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: hfc-staff 5s ease-in-out infinite;
}
.scn-hunt-for-colours .banner-cloth {
  position: absolute;
  bottom: 55%;
  left: 48%;
  width: 20%;
  height: 20%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 40%, #5e1a1d 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  clip-path: polygon(0 0, 100% 0, 90% 100%, 0% 100%);
  transform-origin: left center;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.4);
  animation: hfc-banner 4s ease-in-out infinite;
}
.scn-hunt-for-colours .arm-reach {
  position: absolute;
  bottom: 35%;
  left: 42%;
  width: 10%;
  height: 25%;
  background:
    radial-gradient(ellipse 100% 100% at 50% 40%, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%;
  transform: rotate(-15deg);
  animation: hfc-arm 4s ease-in-out infinite alternate;
}
.scn-hunt-for-colours .shadow-self {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 40%;
  height: 20%;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(15px);
  animation: hfc-shadow 5s ease-in-out infinite;
}
.scn-hunt-for-colours .ember-trail {
  position: absolute;
  width: 4px;
  height: 4px;
  background: #f0c060;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(240, 192, 96, 0.5);
}
.scn-hunt-for-colours .ember-a {
  bottom: 30%;
  left: 55%;
  animation: hfc-embera 4s ease-in-out infinite;
}
.scn-hunt-for-colours .ember-b {
  bottom: 25%;
  left: 50%;
  animation: hfc-emberb 5s ease-in-out infinite;
  animation-delay: -1.5s;
}
.scn-hunt-for-colours .ember-c {
  bottom: 35%;
  left: 52%;
  animation: hfc-emberc 3.5s ease-in-out infinite;
  animation-delay: -3s;
}
@keyframes hfc-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(-2deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hfc-staff {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes hfc-banner {
  0% { transform: scaleX(1) rotate(0deg); }
  25% { transform: scaleX(1.05) rotate(-5deg); }
  50% { transform: scaleX(0.95) rotate(3deg); }
  75% { transform: scaleX(1.02) rotate(-2deg); }
  100% { transform: scaleX(1) rotate(0deg); }
}
@keyframes hfc-arm {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-3px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes hfc-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.4; }
  50% { transform: scaleX(1.1) translateX(3px); opacity: 0.3; }
  100% { transform: scaleX(1) translateX(0); opacity: 0.4; }
}
@keyframes hfc-embera {
  0% { transform: translate(0, 0) scale(1); opacity: 0.8; }
  33% { transform: translate(15px, -20px) scale(1.3); opacity: 1; }
  66% { transform: translate(-10px, -40px) scale(0.7); opacity: 0.4; }
  100% { transform: translate(5px, -60px) scale(0); opacity: 0; }
}
@keyframes hfc-emberb {
  0% { transform: translate(0, 0) scale(1); opacity: 0.7; }
  50% { transform: translate(-12px, -25px) scale(1.1); opacity: 0.9; }
  100% { transform: translate(8px, -50px) scale(0); opacity: 0; }
}
@keyframes hfc-emberc {
  0% { transform: translate(0, 0) scale(0.9); opacity: 0.6; }
  50% { transform: translate(10px, -30px) scale(1.2); opacity: 1; }
  100% { transform: translate(-5px, -55px) scale(0); opacity: 0; }
}

/* Scene 1: guilty-hand-plucks */
.scn-guilty-hand-plucks {
  background: 
    linear-gradient(180deg, #0d0a13 0%, #1a1225 40%, #0a0710 100%),
    radial-gradient(ellipse at 70% 50%, #2a1d3d 0%, transparent 60%);
}
.scn-guilty-hand-plucks .door-frame {
  position: absolute; inset: 10% 25% 5% 25%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4030 50%, #3a2a1a 100%);
  border-radius: 2%; box-shadow: inset 0 0 30px rgba(0,0,0,.7);
  animation: gh-frame 8s ease-in-out infinite;
}
.scn-guilty-hand-plucks .door {
  position: absolute; inset: 12% 27% 7% 27%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 1%; box-shadow: inset 0 0 20px #1a1008;
  animation: gh-door 6s ease-in-out infinite alternate;
}
.scn-guilty-hand-plucks .latch {
  position: absolute; top: 50%; left: 52%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%);
  border-radius: 30%; transform-origin: left center;
  animation: gh-latch 3s ease-in-out infinite;
}
.scn-guilty-hand-plucks .hand {
  position: absolute; top: 32%; left: 48%; width: 36px; height: 48px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0803 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform-origin: bottom left;
  animation: gh-hand 4s ease-in-out infinite;
}
.scn-guilty-hand-plucks .owl {
  position: absolute; top: 18%; right: 16%; width: 32px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 6px 2px rgba(255,200,100,.2);
  animation: gh-owl 10s ease-in-out infinite alternate;
}
.scn-guilty-hand-plucks .shadow-ambient {
  position: absolute; inset: 0; background: rgba(0,0,0,.3);
  animation: gh-shadow 8s ease-in-out infinite alternate;
}
@keyframes gh-frame {
  0% { transform: scale(1); } 50% { transform: scale(0.98) translateX(2px); } 100% { transform: scale(1.01); }
}
@keyframes gh-door {
  0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(0.5deg); } 100% { transform: translateX(0); }
}
@keyframes gh-latch {
  0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(0); }
}
@keyframes gh-hand {
  0% { transform: translate(0,0) rotate(-10deg); } 40% { transform: translate(12px, -6px) rotate(5deg); } 70% { transform: translate(10px, -4px) rotate(8deg); } 100% { transform: translate(0,0) rotate(-10deg); }
}
@keyframes gh-owl {
  0% { transform: rotate(-5deg) scale(0.95); opacity: .8; } 50% { transform: rotate(10deg) scale(1.05); opacity: 1; } 100% { transform: rotate(-5deg) scale(0.95); opacity: .8; }
}
@keyframes gh-shadow {
  0% { opacity: .2; } 50% { opacity: .4; } 100% { opacity: .2; }
}

/* Scene 2: tarquin-stalks-in */
.scn-tarquin-stalks-in {
  background: 
    linear-gradient(180deg, #0f0c1a 0%, #1a1528 60%, #0a0712 100%),
    radial-gradient(ellipse at 50% 80%, #1a1530 0%, transparent 70%);
}
.scn-tarquin-stalks-in .curtain-l {
  position: absolute; top: 0; left: 0; bottom: 0; width: 20%;
  background: linear-gradient(90deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 0 40% 40% 0; box-shadow: 2px 0 20px rgba(0,0,0,.6);
  animation: ts-curtain 12s ease-in-out infinite alternate;
}
.scn-tarquin-stalks-in .curtain-r {
  position: absolute; top: 0; right: 0; bottom: 0; width: 20%;
  background: linear-gradient(90deg, #1a0a0a 0%, #2a1a1a 100%);
  border-radius: 40% 0 0 40%; box-shadow: -2px 0 20px rgba(0,0,0,.6);
  animation: ts-curtain 12s ease-in-out infinite alternate-reverse;
}
.scn-tarquin-stalks-in .bed {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 30%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 -8px 20px rgba(0,0,0,.5);
  animation: ts-bed 10s ease-in-out infinite;
}
.scn-tarquin-stalks-in .figure {
  position: absolute; bottom: 25%; left: 35%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ts-figure 8s ease-in-out infinite alternate;
}
.scn-tarquin-stalks-in .eye-l {
  position: absolute; bottom: 55%; left: 42%; width: 6px; height: 8px;
  background: radial-gradient(circle, #d0b070 0%, #907040 100%);
  border-radius: 50%; box-shadow: 0 0 12px 2px #b08040;
  animation: ts-eyes 5s ease-in-out infinite;
}
.scn-tarquin-stalks-in .eye-r {
  position: absolute; bottom: 55%; left: 50%; width: 6px; height: 8px;
  background: radial-gradient(circle, #d0b070 0%, #907040 100%);
  border-radius: 50%; box-shadow: 0 0 12px 2px #b08040;
  animation: ts-eyes 5s ease-in-out infinite 0.5s;
}
.scn-tarquin-stalks-in .shadow-floor {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(0deg, rgba(0,0,0,.4), transparent);
  animation: ts-shadow 12s ease-in-out infinite;
}
@keyframes ts-curtain {
  0% { transform: translateX(0); } 50% { transform: translateX(8px); } 100% { transform: translateX(0); }
}
@keyframes ts-bed {
  0% { transform: scale(1); } 50% { transform: scale(0.98) translateY(2px); } 100% { transform: scale(1); }
}
@keyframes ts-figure {
  0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(10px) rotate(2deg); } 70% { transform: translateX(12px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ts-eyes {
  0% { transform: scale(1) rotate(0deg); } 25% { transform: scale(1.2) rotate(15deg); } 50% { transform: scale(0.9) rotate(-10deg); } 75% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(1); }
}
@keyframes ts-shadow {
  0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .3; }
}

/* Scene 3: curtain-drawn */
.scn-curtain-drawn {
  background: 
    linear-gradient(180deg, #1a0a05 0%, #3a2010 40%, #1a0a05 100%),
    radial-gradient(ellipse at 50% 50%, #ff8040 0%, transparent 70%);
}
.scn-curtain-drawn .curtain-left {
  position: absolute; top: 0; left: 0; bottom: 0; width: 15%;
  background: linear-gradient(90deg, #4a2010 0%, #2a0f05 100%);
  border-radius: 0 50% 50% 0; box-shadow: 2px 0 30px rgba(0,0,0,.7);
  animation: cd-curtain 6s ease-in-out infinite alternate;
}
.scn-curtain-drawn .curtain-right {
  position: absolute; top: 0; right: 0; bottom: 0; width: 15%;
  background: linear-gradient(90deg, #2a0f05 0%, #4a2010 100%);
  border-radius: 50% 0 0 50%; box-shadow: -2px 0 30px rgba(0,0,0,.7);
  animation: cd-curtain 6s ease-in-out infinite alternate-reverse;
}
.scn-curtain-drawn .fire-glow {
  position: absolute; top: 30%; left: 35%; right: 35%; bottom: 30%;
  background: radial-gradient(circle, #ff8c42 0%, #c85a20 30%, transparent 60%);
  animation: cd-glow 3s ease-in-out infinite alternate;
}
.scn-curtain-drawn .flame {
  position: absolute; bottom: 35%; left: 48%; width: 24px; height: 60px;
  background: linear-gradient(0deg, #ff6600 0%, #ffaa00 40%, #ffff80 80%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  filter: blur(2px); transform-origin: bottom center;
  animation: cd-flame 0.8s ease-in-out infinite alternate;
}
.scn-curtain-drawn .figure {
  position: absolute; bottom: 18%; left: 38%; width: 24%; height: 60%;
  background: linear-gradient(180deg, #1a0a05 0%, #0d0502 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cd-figure 10s ease-in-out infinite;
}
.scn-curtain-drawn .shield-hand {
  position: absolute; bottom: 42%; left: 44%; width: 18px; height: 26px;
  background: linear-gradient(180deg, #1a0a05 0%, #0d0502 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 60% 60%;
  transform-origin: bottom center;
  animation: cd-hand 4s ease-in-out infinite;
}
.scn-curtain-drawn .shadow {
  position: absolute; inset: 0; background: rgba(0,0,0,.25);
  animation: cd-shadow 6s ease-in-out infinite alternate;
}
@keyframes cd-curtain {
  0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(0.95); } 100% { transform: translateX(0) scale(1); }
}
@keyframes cd-glow {
  0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .6; transform: scale(1); }
}
@keyframes cd-flame {
  0% { transform: scaleX(1) scaleY(0.8) translateY(0); } 50% { transform: scaleX(1.2) scaleY(1) translateY(-4px); } 100% { transform: scaleX(0.9) scaleY(0.85) translateY(0); }
}
@keyframes cd-figure {
  0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(6px) rotate(2deg); } 70% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0); }
}
@keyframes cd-hand {
  0% { transform: translate(0,0) rotate(-15deg); } 25% { transform: translate(4px, -2px) rotate(-5deg); } 50% { transform: translate(0,0) rotate(5deg); } 75% { transform: translate(-3px, -1px) rotate(-10deg); } 100% { transform: translate(0,0) rotate(-15deg); }
}
@keyframes cd-shadow {
  0% { opacity: .15; } 50% { opacity: .3; } 100% { opacity: .15; }
}

/* Scene 4: darksome-prison */
.scn-darksome-prison {
  background: 
    linear-gradient(180deg, #0a0508 0%, #1a0a10 50%, #0a0508 100%),
    radial-gradient(ellipse at 50% 70%, #2a1018 0%, transparent 60%);
}
.scn-darksome-prison .bar-1 {
  position: absolute; top: 0; bottom: 0; left: 15%; width: 4%;
  background: linear-gradient(90deg, #3a2a2a 0%, #1a1010 50%, #3a2a2a 100%);
  border-radius: 2px; box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: dp-bar 15s ease-in-out infinite;
}
.scn-darksome-prison .bar-2 {
  position: absolute; top: 0; bottom: 0; left: 35%; width: 4%;
  background: linear-gradient(90deg, #3a2a2a 0%, #1a1010 50%, #3a2a2a 100%);
  border-radius: 2px; box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: dp-bar 15s ease-in-out infinite 3s;
}
.scn-darksome-prison .bar-3 {
  position: absolute; top: 0; bottom: 0; left: 55%; width: 4%;
  background: linear-gradient(90deg, #3a2a2a 0%, #1a1010 50%, #3a2a2a 100%);
  border-radius: 2px; box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: dp-bar 15s ease-in-out infinite 6s;
}
.scn-darksome-prison .bar-4 {
  position: absolute; top: 0; bottom: 0; left: 75%; width: 4%;
  background: linear-gradient(90deg, #3a2a2a 0%, #1a1010 50%, #3a2a2a 100%);
  border-radius: 2px; box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: dp-bar 15s ease-in-out infinite 9s;
}
.scn-darksome-prison .candle {
  position: absolute; bottom: 20%; left: 45%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #c8a070 0%, #8a6040 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  box-shadow: -2px 0 10px rgba(0,0,0,.4);
  animation: dp-candle 12s ease-in-out infinite;
}
.scn-darksome-prison .flame {
  position: absolute; bottom: 42%; left: 45.5%; width: 10px; height: 24px;
  background: linear-gradient(0deg, #ff6600 0%, #ffaa00 50%, #ffff80 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  filter: blur(2px);
  animation: dp-flame 0.6s ease-in-out infinite alternate;
}
.scn-darksome-prison .figure {
  position: absolute; bottom: 8%; left: 30%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #1a0a10 0%, #0d0505 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: dp-figure 14s ease-in-out infinite;
}
.scn-darksome-prison .shadow {
  position: absolute; inset: 0; background: rgba(0,0,0,.3);
  animation: dp-shadow 8s ease-in-out infinite alternate;
}
@keyframes dp-bar {
  0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(2px) scaleY(0.98); } 100% { transform: translateX(0) scaleY(1); }
}
@keyframes dp-candle {
  0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.97); } 100% { transform: translateY(0) scale(1); }
}
@keyframes dp-flame {
  0% { transform: scaleX(1) scaleY(0.8) translateY(0); opacity: .9; }
  50% { transform: scaleX(1.3) scaleY(1) translateY(-3px); opacity: 1; }
  100% { transform: scaleX(0.8) scaleY(0.9) translateY(0); opacity: .9; }
}
@keyframes dp-figure {
  0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-0.5deg); } 100% { transform: translateX(0); }
}
@keyframes dp-shadow {
  0% { opacity: .2; } 50% { opacity: .35; } 100% { opacity: .2; }
}

.scn-painting-nestor {
  background:
    linear-gradient(135deg, #2a2218 0%, #1a1410 50%, #2a1f14 100%),
    radial-gradient(circle at 40% 60%, #3a2a1a 0%, transparent 70%);
}

.scn-painting-nestor .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1f1510 0%, #2a1f14 100%);
  border-radius: 0 0 20% 20%;
}
.scn-painting-nestor .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a100c 0%, #2a1a14 100%);
  border-radius: 20% 20% 0 0;
}
.scn-painting-nestor .nestor {
  position: absolute; bottom: 28%; left: 38%; width: 70px; height: 100px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pn-breathe 6s ease-in-out infinite;
}
.scn-painting-nestor .beard {
  position: absolute; bottom: 55%; left: 38%; width: 30px; height: 25px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pn-wag 4s ease-in-out infinite;
}
.scn-painting-nestor .hand {
  position: absolute; bottom: 40%; left: 57%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 30% 30% / 30% 30% 50% 50%;
  transform-origin: left bottom;
  animation: pn-gesture 5s ease-in-out infinite;
}
.scn-painting-nestor .candle {
  position: absolute; bottom: 35%; right: 20%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #d4a060 0%, #806030 100%);
  border-radius: 2px;
}
.scn-painting-nestor .candle-glow {
  position: absolute; bottom: 35%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(212,160,96,0.4) 0%, rgba(212,160,96,0.1) 50%, transparent 100%);
  border-radius: 50%;
  transform: translate(-30px, -20px);
  animation: pn-glow 4s ease-in-out infinite alternate;
}
@keyframes pn-breathe {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(1); }
}
@keyframes pn-wag {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(3deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pn-gesture {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes pn-glow {
  0% { opacity: 0.6; transform: translate(-30px, -20px) scale(1); }
  100% { opacity: 1; transform: translate(-30px, -20px) scale(1.2); }
}

.scn-painting-gaping-faces {
  background:
    linear-gradient(135deg, #2a2018 0%, #1a1410 50%, #221810 100%),
    radial-gradient(circle at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-painting-gaping-faces .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1410 0%, #2a1f14 100%);
  border-radius: 0 0 30% 30%;
}
.scn-painting-gaping-faces .face-high1 {
  position: absolute; bottom: 50%; left: 15%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: pgf-listen 7s ease-in-out infinite;
}
.scn-painting-gaping-faces .face-low1 {
  position: absolute; bottom: 25%; left: 25%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: pgf-listen 8s ease-in-out infinite 1s;
}
.scn-painting-gaping-faces .face-high2 {
  position: absolute; bottom: 55%; left: 45%; width: 32px; height: 42px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-8deg);
  animation: pgf-listen 6s ease-in-out infinite 0.5s;
}
.scn-painting-gaping-faces .face-low2 {
  position: absolute; bottom: 20%; left: 55%; width: 26px; height: 34px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(12deg);
  animation: pgf-listen 9s ease-in-out infinite 2s;
}
.scn-painting-gaping-faces .face-mid {
  position: absolute; bottom: 35%; left: 35%; width: 30px; height: 38px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  animation: pgf-listen 7.5s ease-in-out infinite 1.5s;
}
.scn-painting-gaping-faces .scalp-shadow {
  position: absolute; bottom: 60%; left: 10%; width: 80%; height: 30px;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.3) 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pgf-drift 20s linear infinite;
}
@keyframes pgf-listen {
  0% { transform: rotate(var(--r, 0deg)) translateY(0); }
  50% { transform: rotate(var(--r, 0deg)) translateY(-2px); }
  100% { transform: rotate(var(--r, 0deg)) translateY(0); }
}
/* Note: Using inline style for each face to set rotation, but we can't use CSS variables easily in this static template. Instead, keep individual rotations in the CSS as above. */
@keyframes pgf-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(20px); }
}

.scn-painting-crowd-struggle {
  background:
    linear-gradient(135deg, #1f1510 0%, #120c08 50%, #1a0e0a 100%),
    radial-gradient(circle at 50% 80%, #2a1a10 0%, transparent 70%);
}
.scn-painting-crowd-struggle .bg-shade {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0f0a08 0%, #1a0e0a 100%);
}
.scn-painting-crowd-struggle .crowd-back {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(0deg, transparent 0%, rgba(26,14,10,0.6) 100%);
  border-radius: 40% 40% 0 0;
}
.scn-painting-crowd-struggle .crowd-mid {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(0deg, transparent 0%, #2a1a10 100%);
  border-radius: 30% 30% 0 0;
}
.scn-painting-crowd-struggle .crowd-front {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 35%;
  background: linear-gradient(0deg, transparent 0%, #1a0e0a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-painting-crowd-struggle .hand-clutch {
  position: absolute; bottom: 30%; left: 35%; width: 22px; height: 30px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pcs-clutch 0.8s ease-in-out infinite alternate;
}
.scn-painting-crowd-struggle .arm-swing {
  position: absolute; bottom: 25%; left: 60%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e0a 100%);
  border-radius: 50%;
  transform-origin: left center;
  animation: pcs-swing 0.6s ease-in-out infinite alternate;
}
.scn-painting-crowd-struggle .mouth-open {
  position: absolute; bottom: 35%; left: 48%; width: 12px; height: 8px;
  background: #1a0e0a;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #0a0604;
  animation: pcs-shout 0.4s ease-in-out infinite alternate;
}
@keyframes pcs-clutch {
  0% { transform: scaleY(1) translateY(0); }
  100% { transform: scaleY(1.1) translateY(-2px); }
}
@keyframes pcs-swing {
  0% { transform: rotate(-20deg); }
  100% { transform: rotate(20deg); }
}
@keyframes pcs-shout {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(1.3); }
}

.scn-painting-achilles-absent {
  background:
    linear-gradient(135deg, #1a1410 0%, #0e0a08 50%, #120c0a 100%),
    radial-gradient(circle at 50% 50%, #1f1510 0%, transparent 70%);
}
.scn-painting-achilles-absent .bg-tent {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0a08 0%, #1a1410 100%);
  border-radius: 30% 30% 0 0;
}
.scn-painting-achilles-absent .spear-shaft {
  position: absolute; bottom: 20%; left: 48%; width: 8px; height: 60%;
  background: linear-gradient(180deg, #806040 0%, #503020 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: paa-sway 12s ease-in-out infinite;
}
.scn-painting-achilles-absent .spear-head {
  position: absolute; bottom: 77%; left: 48%; width: 28px; height: 14px;
  background: linear-gradient(180deg, #a0a0a0 0%, #606060 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  transform: translateX(-10px);
  animation: paa-sway 12s ease-in-out infinite;
}
.scn-painting-achilles-absent .hand-grip {
  position: absolute; bottom: 55%; left: 46%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: paa-grip 8s ease-in-out infinite;
}
.scn-painting-achilles-absent .arm-shadow {
  position: absolute; bottom: 50%; left: 42%; width: 30px; height: 10px;
  background: linear-gradient(90deg, #0a0604 0%, transparent 100%);
  border-radius: 50%;
  transform-origin: right center;
  animation: paa-arm 10s ease-in-out infinite;
}
.scn-painting-achilles-absent .achilles-shadow {
  position: absolute; bottom: 10%; left: 35%; right: 35%; height: 80%;
  background: radial-gradient(ellipse at 50% 100%, rgba(10,6,4,0.5) 0%, transparent 70%);
  filter: blur(12px);
  animation: paa-shadow-fade 15s ease-in-out infinite;
}
.scn-painting-achilles-absent .light-glow {
  position: absolute; top: 10%; left: 40%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(180,160,120,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: paa-glow 6s ease-in-out infinite alternate;
}
@keyframes paa-sway {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes paa-grip {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(-3deg) scaleY(1.02); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes paa-arm {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes paa-shadow-fade {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes paa-glow {
  0% { opacity: 0.3; transform: scale(1); }
  100% { opacity: 0.7; transform: scale(1.1); }
}

/* Scene 1: lucrece-tears-sinon */
.scn-lucrece-tears-sinon {
  background: linear-gradient(180deg, #1a1010 0%, #2a1614 40%, #1f0f0d 100%),
              radial-gradient(ellipse at 60% 40%, #3a1e1a 0%, transparent 70%);
}
.scn-lucrece-tears-sinon .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(180deg, #1a0c0a 0%, #0f0705 100%); }
.scn-lucrece-tears-sinon .figure-lu { position:absolute; bottom:22%; left:30%; width:60px; height:120px; background:linear-gradient(180deg, #2a1816 0%, #1a0e0c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: lu-fig 6s ease-in-out infinite; }
.scn-lucrece-tears-sinon .arm { position:absolute; bottom:38%; left:35%; width:50px; height:10px; background:linear-gradient(90deg, #2a1816 0%, #1f0f0d 100%); border-radius:30% 50% 50% 30%; transform-origin:right center; transform:rotate(-20deg); animation: lu-arm 4s ease-in-out infinite; }
.scn-lucrece-tears-sinon .sinon { position:absolute; bottom:10%; right:25%; width:70px; height:80px; background:linear-gradient(180deg, #1a100e 0%, #0f0806 100%); border-radius:40% 40% 50% 50% / 30% 30% 50% 50%; transform:rotate(15deg); animation: lu-sinon 8s ease-in-out infinite; }
.scn-lucrece-tears-sinon .tear { position:absolute; top:40%; left:32%; width:6px; height:12px; background:radial-gradient(circle at 50% 30%, rgba(200,180,160,0.8) 0%, transparent 100%); border-radius:50% 50% 20% 20%; animation: lu-tear 3s ease-in-out infinite alternate; }
.scn-lucrece-tears-sinon .candle { position:absolute; top:30%; left:55%; width:12px; height:20px; background:linear-gradient(180deg, #d48a50 0%, #603020 100%); border-radius:4px 4px 2px 2px; box-shadow:0 0 20px 6px #b06a40, 0 0 40px 12px rgba(176,106,64,0.3); animation: lu-candle 2s ease-in-out infinite alternate; }
@keyframes lu-fig { 0% { transform:translateX(0) rotate(0deg); opacity:0.9; } 50% { transform:translateX(4px) rotate(2deg); opacity:1; } 100% { transform:translateX(-2px) rotate(-1deg); opacity:0.85; } }
@keyframes lu-arm { 0% { transform:rotate(-20deg) scaleX(1); } 50% { transform:rotate(-35deg) scaleX(1.05); } 100% { transform:rotate(-15deg) scaleX(0.95); } }
@keyframes lu-sinon { 0% { transform:rotate(15deg) translateY(0); } 50% { transform:rotate(18deg) translateY(-3px); } 100% { transform:rotate(12deg) translateY(2px); } }
@keyframes lu-tear { 0% { transform:translateY(0) scaleY(1); opacity:0.8; } 50% { transform:translateY(15px) scaleY(1.1); opacity:0.5; } 100% { transform:translateY(30px) scaleY(0.9); opacity:0; } }
@keyframes lu-candle { 0% { box-shadow:0 0 20px 6px #b06a40, 0 0 40px 12px rgba(176,106,64,0.3); height:20px; } 50% { box-shadow:0 0 30px 10px #d48a50, 0 0 60px 18px rgba(212,138,80,0.5); height:22px; } 100% { box-shadow:0 0 18px 4px #a05a30, 0 0 35px 10px rgba(160,90,48,0.2); height:19px; } }

/* Scene 2: sorrows-ebb-and-flow */
.scn-sorrows-ebb-and-flow {
  background: linear-gradient(180deg, #1e1e2a 0%, #2a2a3e 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a52 0%, transparent 70%);
}
.scn-sorrows-ebb-and-flow .window-frame { position:absolute; inset:10% 15% 40% 15%; background:linear-gradient(135deg, #3a2a1a 0%, #1f1410 100%); border-radius:8px 8px 4px 4px; box-shadow:inset 0 0 30px rgba(0,0,0,0.6); }
.scn-sorrows-ebb-and-flow .window-light { position:absolute; inset:12% 17% 42% 17%; background:linear-gradient(180deg, rgba(180,160,140,0.6) 0%, rgba(100,90,80,0.2) 100%); border-radius:6px; animation: so-light 12s ease-in-out infinite alternate; }
.scn-sorrows-ebb-and-flow .figure-sit { position:absolute; bottom:22%; left:30%; width:50px; height:80px; background:linear-gradient(180deg, #1a1618 0%, #0f0c0e 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: so-sit 8s ease-in-out infinite; }
.scn-sorrows-ebb-and-flow .curtain { position:absolute; top:10%; right:20%; width:20px; height:60%; background:linear-gradient(180deg, #2a2022 0%, #1a1214 100%); border-radius:20% 0 0 20%; animation: so-curtain 10s ease-in-out infinite alternate; }
.scn-sorrows-ebb-and-flow .shadow-wall { position:absolute; bottom:25%; left:45%; width:80px; height:40px; background:radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%); animation: so-shadow 14s ease-in-out infinite; }
.scn-sorrows-ebb-and-flow .flow-waves { position:absolute; bottom:10%; left:0; right:0; height:30%; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M0 50 Q25 35 50 50 T100 50 V100 H0 Z' fill='rgba(50,50,70,0.3)'/%3E%3C/svg%3E") repeat-x; background-size:200px 100%; animation: so-flow 20s linear infinite; }
@keyframes so-light { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes so-sit { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(1deg); } 100% { transform:translateY(1px) rotate(-0.5deg); } }
@keyframes so-curtain { 0% { transform:translateX(0) scaleX(1); } 50% { transform:translateX(-8px) scaleX(0.9); } 100% { transform:translateX(5px) scaleX(1.05); } }
@keyframes so-shadow { 0% { transform:scale(1) translateX(0); opacity:0.4; } 50% { transform:scale(1.1) translateX(10px); opacity:0.6; } 100% { transform:scale(0.95) translateX(-5px); opacity:0.3; } }
@keyframes so-flow { 0% { background-position:0 0; } 100% { background-position:200px 0; } }

/* Scene 3: messenger-returns */
.scn-messenger-returns {
  background: linear-gradient(180deg, #1a1a22 0%, #2a2a36 40%, #15151a 100%),
              radial-gradient(ellipse at 40% 30%, #3a3a4a 0%, transparent 70%);
}
.scn-messenger-returns .floor-mid { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #1c1412 0%, #0f0a08 100%); }
.scn-messenger-returns .messenger { position:absolute; bottom:22%; left:15%; width:50px; height:110px; background:linear-gradient(180deg, #2a2024 0%, #161014 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: me-mess 5s ease-in-out infinite; }
.scn-messenger-returns .lucrece { position:absolute; bottom:22%; right:20%; width:55px; height:105px; background:linear-gradient(180deg, #141016 0%, #08060a 100%); border-radius:40% 40% 30% 30% / 55% 55% 35% 35%; transform-origin:bottom center; animation: me-luc 7s ease-in-out infinite; }
.scn-messenger-returns .eye { position:absolute; top:28%; right:23%; width:22px; height:18px; background:radial-gradient(circle at 50% 40%, #b0a080 0%, #6a5a4a 60%, transparent 100%); border-radius:50%; box-shadow:0 0 20px 6px rgba(100,80,60,0.5); animation: me-eye 4s ease-in-out infinite alternate; }
.scn-messenger-returns .tear-drop { position:absolute; top:35%; right:22%; width:4px; height:10px; background:radial-gradient(circle at 40% 20%, rgba(180,160,140,0.8) 0%, transparent 100%); border-radius:50% 50% 20% 20%; animation: me-tear 3s ease-in-out infinite; }
.scn-messenger-returns .blue-ring { position:absolute; top:25%; right:22%; width:32px; height:28px; background:radial-gradient(circle, rgba(80,100,140,0.3) 0%, transparent 60%); border-radius:50%; animation: me-ring 6s ease-in-out infinite alternate; }
.scn-messenger-returns .lamp { position:absolute; bottom:30%; left:18%; width:16px; height:24px; background:linear-gradient(180deg, #c09060 0%, #704028 100%); border-radius:4px; box-shadow:0 0 30px 10px #b08050, 0 0 60px 20px rgba(176,128,80,0.3); animation: me-lamp 3s ease-in-out infinite alternate; }
@keyframes me-mess { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(8px) rotate(2deg); } 100% { transform:translateX(-4px) rotate(-1deg); } }
@keyframes me-luc { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-3px) scaleY(1.02); } 100% { transform:translateY(2px) scaleY(0.98); } }
@keyframes me-eye { 0% { transform:scale(1) rotate(0deg); box-shadow:0 0 20px 6px rgba(100,80,60,0.5); } 50% { transform:scale(1.15) rotate(4deg); box-shadow:0 0 30px 10px rgba(100,80,60,0.7); } 100% { transform:scale(0.95) rotate(-2deg); box-shadow:0 0 18px 4px rgba(100,80,60,0.4); } }
@keyframes me-tear { 0% { transform:translateY(0) scaleY(1); opacity:0.9; } 50% { transform:translateY(18px) scaleY(1.2); opacity:0.5; } 100% { transform:translateY(36px) scaleY(0.8); opacity:0; } }
@keyframes me-ring { 0% { transform:scale(1) rotate(0deg); opacity:0.4; } 50% { transform:scale(1.2) rotate(8deg); opacity:0.7; } 100% { transform:scale(0.9) rotate(-4deg); opacity:0.3; } }
@keyframes me-lamp { 0% { box-shadow:0 0 30px 10px #b08050, 0 0 60px 20px rgba(176,128,80,0.3); height:24px; } 50% { box-shadow:0 0 40px 15px #d0a070, 0 0 80px 30px rgba(208,160,112,0.5); height:26px; } 100% { box-shadow:0 0 25px 8px #a06838, 0 0 50px 15px rgba(160,104,56,0.2); height:22px; } }

/* Scene 4: collatine-sees-lucrece */
.scn-collatine-sees-lucrece {
  background: linear-gradient(180deg, #161218 0%, #221e26 40%, #121016 100%),
              radial-gradient(ellipse at 50% 40%, #2e2836 0%, transparent 70%);
}
.scn-collatine-sees-lucrece .ground { position:absolute; bottom:0; left:0; right:0; height:22%; background:linear-gradient(180deg, #1a1418 0%, #0c080a 100%); }
.scn-collatine-sees-lucrece .figure-col { position:absolute; bottom:20%; left:22%; width:55px; height:110px; background:linear-gradient(180deg, #1a1a22 0%, #0e0e14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: co-col 9s ease-in-out infinite; }
.scn-collatine-sees-lucrece .figure-luc { position:absolute; bottom:20%; right:22%; width:52px; height:105px; background:linear-gradient(180deg, #141016 0%, #08060c 100%); border-radius:50% 50% 40% 40% / 55% 55% 40% 40%; transform-origin:bottom center; animation: co-luc 9s ease-in-out infinite reverse; }
.scn-collatine-sees-lucrece .face { position:absolute; bottom:35%; right:28%; width:30px; height:34px; background:linear-gradient(135deg, #1a1216 0%, #0f0a0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: co-face 7s ease-in-out infinite; }
.scn-collatine-sees-lucrece .eye-left { position:absolute; bottom:42%; right:33%; width:8px; height:8px; background:radial-gradient(circle, #a04030 0%, #602020 100%); border-radius:50%; box-shadow:0 0 12px 4px rgba(160,64,48,0.6); animation: co-eye 4s ease-in-out infinite alternate; }
.scn-collatine-sees-lucrece .eye-right { position:absolute; bottom:42%; right:26%; width:8px; height:8px; background:radial-gradient(circle, #a04030 0%, #602020 100%); border-radius:50%; box-shadow:0 0 12px 4px rgba(160,64,48,0.6); animation: co-eye 4s ease-in-out infinite alternate-reverse; }
.scn-collatine-sees-lucrece .aura { position:absolute; inset:20% 15% 20% 15%; background:radial-gradient(ellipse, rgba(100,50,60,0.2) 0%, transparent 70%); opacity:0; animation: co-aura 6s ease-in-out infinite alternate; }
@keyframes co-col { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(4px) rotate(1.5deg); } 100% { transform:translateX(-3px) rotate(-1deg); } }
@keyframes co-luc { 0% { transform:translateX(0) rotate(0deg); opacity:0.9; } 50% { transform:translateX(-5px) rotate(-1.5deg); opacity:1; } 100% { transform:translateX(3px) rotate(1deg); opacity:0.85; } }
@keyframes co-face { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-3px) scale(1.02); } 100% { transform:translateY(2px) scale(0.98); } }
@keyframes co-eye { 0% { transform:scale(1) translateY(0); box-shadow:0 0 12px 4px rgba(160,64,48,0.6); } 50% { transform:scale(1.2) translateY(-2px); box-shadow:0 0 20px 8px rgba(160,64,48,0.9); } 100% { transform:scale(0.9) translateY(1px); box-shadow:0 0 10px 3px rgba(160,64,48,0.4); } }
@keyframes co-aura { 0% { opacity:0; } 50% { opacity:0.3; } 100% { opacity:0.1; } }

/* ------------------------------------------------------------------ */
/* Scene: covetous-surfeit (dark mood, dark lighting)                 */
/* ------------------------------------------------------------------ */
.scn-covetous-surfeit {
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 50%, #0f0f1a 100%),
              radial-gradient(ellipse at 50% 80%, #2a1a2a 0%, transparent 70%);
}
.scn-covetous-surfeit .bg-void   { position:absolute; inset:0; background: linear-gradient(to top, #0a0a14 20%, transparent 60%); animation: cs1-void 14s ease-in-out infinite alternate; }
.scn-covetous-surfeit .floor     { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1e1a14 0%, #14100a 100%); border-radius: 0 0 12% 12% / 0 0 30% 30%; box-shadow: inset 0 12px 24px rgba(0,0,0,.6); }
.scn-covetous-surfeit .figure    { position:absolute; bottom:28%; left:45%; width:28%; height:40%; background: linear-gradient(160deg, #1a1420 0%, #0a0510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs1-figure 6s ease-in-out infinite; }
.scn-covetous-surfeit .arms      { position:absolute; bottom:38%; left:38%; width:24%; height:12%; background: linear-gradient(90deg, #1a1420 0%, transparent 50%, #1a1420 100%); border-radius: 50%; transform: scaleY(0.5); animation: cs1-arms 8s ease-in-out infinite; }
.scn-covetous-surfeit .heap      { position:absolute; bottom:12%; left:30%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 80%, #5a3a1a 0%, #2a1a0a 60%, #1a1208 100%); border-radius: 50% 50% 30% 30%; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: cs1-heap 4s ease-in-out infinite alternate; }
.scn-covetous-surfeit .glow      { position:absolute; bottom:45%; left:55%; width:10%; height:10%; background: radial-gradient(circle, #d4a04a 0%, rgba(212,160,74,0.4) 60%, transparent 100%); border-radius: 50%; animation: cs1-glow 3s ease-in-out infinite alternate; }

@keyframes cs1-void    { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes cs1-figure  { 0%,100% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(-4px) translateY(-2px) rotate(0deg) } 50% { transform: translateX(0) translateY(-4px) rotate(-2deg) } 75% { transform: translateX(4px) translateY(-2px) rotate(0deg) } }
@keyframes cs1-arms    { 0%,100% { transform: scaleY(0.5) translateX(0) } 50% { transform: scaleY(0.5) translateX(8px) } }
@keyframes cs1-heap    { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.98) } }
@keyframes cs1-glow    { 0% { box-shadow: 0 0 20px 4px #4a3a1a, 0 0 40px 10px rgba(74,58,26,0.3); opacity:0.7 } 50% { box-shadow: 0 0 40px 12px #6a4a2a, 0 0 80px 20px rgba(106,74,42,0.5); opacity:1 } 100% { box-shadow: 0 0 30px 8px #4a3a1a, 0 0 50px 15px rgba(74,58,26,0.4); opacity:0.8 } }

/* ------------------------------------------------------------------ */
/* Scene: aim-of-life (calm mood, dark lighting)                      */
/* ------------------------------------------------------------------ */
.scn-aim-of-life {
  background: linear-gradient(180deg, #0e1124 0%, #1a2040 50%, #0f1428 100%),
              radial-gradient(ellipse at 50% 30%, #2a3050 0%, transparent 70%);
}
.scn-aim-of-life .wall          { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a2040 0%, #121830 100%); border-radius: 0 0 20% 20%; }
.scn-aim-of-life .floor         { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1620 0%, #0d0a10 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-aim-of-life .window-frame  { position:absolute; top:15%; left:50%; width:40%; height:50%; transform: translateX(-50%); background: linear-gradient(180deg, #2a3050 0%, #1a2030 100%); border: 4px solid #3a4060; border-radius: 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.7); }
.scn-aim-of-life .moon-glow     { position:absolute; top:20%; left:50%; width:20%; height:30%; transform: translateX(-50%); background: radial-gradient(circle, #8a9acc 0%, #5a6a9c 50%, transparent 100%); opacity:0.5; animation: al2-moon 12s ease-in-out infinite alternate; }
.scn-aim-of-life .bed           { position:absolute; bottom:18%; left:35%; width:40%; height:15%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: al2-bed 20s ease-in-out infinite; }
.scn-aim-of-life .sleeper       { position:absolute; bottom:20%; left:45%; width:15%; height:18%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: al2-sleeper 9s ease-in-out infinite; }
.scn-aim-of-life .lamp          { position:absolute; bottom:38%; left:25%; width:8%; height:10%; background: radial-gradient(circle, #6a5a2a 0%, #3a2a1a 60%, transparent 100%); border-radius: 50%; animation: al2-lamp 5s ease-in-out infinite alternate; }

@keyframes al2-moon     { 0% { opacity:0.4; transform: translateX(-50%) scale(1) } 50% { opacity:0.7; transform: translateX(-50%) scale(1.05) } 100% { opacity:0.5; transform: translateX(-50%) scale(0.95) } }
@keyframes al2-bed      { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes al2-sleeper  { 0%,100% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(0) translateY(-2px) rotate(-1deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(0deg) } }
@keyframes al2-lamp     { 0% { box-shadow: 0 0 12px 2px #6a5a2a, 0 0 24px 6px rgba(106,90,42,0.3); opacity:0.6 } 50% { box-shadow: 0 0 24px 6px #8a7a3a, 0 0 48px 12px rgba(138,122,58,0.5); opacity:0.9 } 100% { box-shadow: 0 0 16px 4px #6a5a2a, 0 0 32px 8px rgba(106,90,42,0.4); opacity:0.7 } }

/* ------------------------------------------------------------------ */
/* Scene: venturing-ill (dark mood, dark lighting)                    */
/* ------------------------------------------------------------------ */
.scn-venturing-ill {
  background: linear-gradient(90deg, #0a0a14 0%, #1a1a2e 50%, #05050a 100%),
              radial-gradient(ellipse at 80% 50%, #1a1a2e 0%, transparent 80%);
}
.scn-venturing-ill .interior-wall { position:absolute; inset:0 60% 0 0; background: linear-gradient(180deg, #1e1e2e 0%, #121220 100%); border-right: 3px solid #2a2a3a; animation: vi3-wall 20s ease-in-out infinite alternate; }
.scn-venturing-ill .threshold     { position:absolute; bottom:30%; left:50%; width:30%; height:4%; transform: translateX(-50%); background: linear-gradient(90deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 2px; box-shadow: 0 -2px 8px rgba(0,0,0,.8); }
.scn-venturing-ill .figure        { position:absolute; bottom:12%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #1a1420 0%, #0a0510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vi3-figure 7s ease-in-out infinite; }
.scn-venturing-ill .dark-outside  { position:absolute; inset:0 0 0 60%; background: linear-gradient(180deg, #020208 0%, #000004 100%); animation: vi3-outside 15s ease-in-out infinite alternate; }
.scn-venturing-ill .door-frame    { position:absolute; bottom:30%; left:45%; width:40%; height:50%; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border: 4px solid #3a3a4a; border-radius: 4% 4% 0 0; }
.scn-venturing-ill .light-spill   { position:absolute; bottom:30%; left:45%; width:30%; height:20%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 100%); opacity:0.6; animation: vi3-spill 6s ease-in-out infinite alternate; }

@keyframes vi3-wall     { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes vi3-figure   { 0%,100% { transform: translateX(0) translateY(0) rotate(3deg) } 25% { transform: translateX(-6px) translateY(-2px) rotate(0deg) } 50% { transform: translateX(4px) translateY(-4px) rotate(-2deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(1deg) } }
@keyframes vi3-outside  { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes vi3-spill    { 0% { opacity:0.4; transform: translateX(-50%) scaleX(1) } 50% { opacity:0.7; transform: translateX(-50%) scaleX(1.2) } 100% { opacity:0.5; transform: translateX(-50%) scaleX(0.8) } }

/* ------------------------------------------------------------------ */
/* Scene: tarquin-pawns-honour (tense mood, dark lighting)            */
/* ------------------------------------------------------------------ */
.scn-tarquin-pawns-honour {
  background: linear-gradient(180deg, #0a0a14 0%, #1a0e1e 40%, #0a0510 100%),
              radial-gradient(ellipse at 50% 60%, #2a1a2a 0%, transparent 70%);
}
.scn-tarquin-pawns-honour .table   { position:absolute; bottom:20%; left:15%; width:70%; height:10%; background: linear-gradient(90deg, #2a2a3a 0%, #1e1e2e 100%); border-radius: 4px; box-shadow: inset 0 4px 12px rgba(0,0,0,.6); }
.scn-tarquin-pawns-honour .hand    { position:absolute; bottom:30%; left:25%; width:15%; height:20%; background: linear-gradient(180deg, #2a1a20 0%, #1a0a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tp4-hand 3s ease-in-out infinite; }
.scn-tarquin-pawns-honour .balance { position:absolute; bottom:32%; left:50%; width:40%; height:4px; transform: translateX(-50%); background: #3a3a4a; border-radius: 2px; animation: tp4-balance 5s ease-in-out infinite; }
.scn-tarquin-pawns-honour .crown   { position:absolute; bottom:38%; left:45%; width:12%; height:12%; background: radial-gradient(circle, #6a5a3a 0%, #3a2a1a 80%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 12px 2px #5a4a2a; animation: tp4-crown 4s ease-in-out infinite alternate; }
.scn-tarquin-pawns-honour .coin    { position:absolute; bottom:38%; left:65%; width:8%; height:8%; background: radial-gradient(circle, #8a7a4a 0%, #4a3a1a 80%); border-radius: 50%; box-shadow: 0 0 8px 2px #6a5a2a; animation: tp4-coin 4s ease-in-out infinite alternate-reverse; }
.scn-tarquin-pawns-honour .shadow  { position:absolute; bottom:16%; left:30%; width:50%; height:6%; background: radial-gradient(ellipse, #0a0510 0%, transparent 100%); animation: tp4-shadow 6s ease-in-out infinite; }
.scn-tarquin-pawns-honour .glow    { position:absolute; bottom:45%; left:20%; width:10%; height:10%; background: radial-gradient(circle, #6a4a2a 0%, rgba(106,74,42,0.3) 60%, transparent 100%); border-radius: 50%; animation: tp4-glow 2.5s ease-in-out infinite alternate; }

@keyframes tp4-hand    { 0%,100% { transform: translateX(0) translateY(0) rotate(-5deg) } 25% { transform: translateX(-8px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(4px) translateY(-4px) rotate(0deg) } 75% { transform: translateX(-4px) translateY(-1px) rotate(2deg) } }
@keyframes tp4-balance { 0%,100% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(3deg) } }
@keyframes tp4-crown   { 0% { transform: translateY(0) scale(1) rotate(0deg) } 50% { transform: translateY(-4px) scale(1.05) rotate(5deg) } 100% { transform: translateY(0) scale(1) rotate(-5deg) } }
@keyframes tp4-coin    { 0% { transform: translateY(0) scale(1) rotate(0deg) } 50% { transform: translateY(-2px) scale(0.9) rotate(8deg) } 100% { transform: translateY(0) scale(1) rotate(-8deg) } }
@keyframes tp4-shadow  { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes tp4-glow    { 0% { box-shadow: 0 0 16px 2px #4a3a1a, 0 0 32px 6px rgba(74,58,26,0.3); opacity:0.5 } 50% { box-shadow: 0 0 32px 8px #6a4a2a, 0 0 64px 16px rgba(106,74,42,0.6); opacity:1 } 100% { box-shadow: 0 0 24px 4px #4a3a1a, 0 0 48px 10px rgba(74,58,26,0.4); opacity:0.7 } }

/* Scene 2: Lucrece Pleads – Candlelit profile */
.scn-lucrece-pleads-2 {
  background:
    radial-gradient(ellipse at 20% 60%, #2a1a0a 0%, #0a0a1a 80%),
    linear-gradient(135deg, #101020 0%, #1a1a3e 100%);
}

.scn-lucrece-pleads-2 .candle-body {
  position: absolute;
  bottom: 20%;
  left: 18%;
  width: 14px;
  height: 40px;
  background: linear-gradient(180deg, #c8a06e 0%, #8a6a3e 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.6);
}

.scn-lucrece-pleads-2 .candle-flame {
  position: absolute;
  bottom: calc(20% + 40px);
  left: calc(18% + 4px);
  width: 10px;
  height: 24px;
  background: radial-gradient(ellipse at 50% 100%, #f5a623 0%, #d46a3a 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 12px rgba(245,166,35,0.5), 0 0 40px 24px rgba(212,106,58,0.2);
  animation: lp2-flicker 0.6s ease-in-out infinite alternate;
}

.scn-lucrece-pleads-2 .silhouette {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 60px;
  height: 120px;
  background: linear-gradient(135deg, #141420 0%, #0a0a1a 100%);
  border-radius: 40% 50% 40% 40% / 60% 70% 40% 40%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
  animation: lp2-breathe 4s ease-in-out infinite;
}

.scn-lucrece-pleads-2 .tear-1,
.scn-lucrece-pleads-2 .tear-2,
.scn-lucrece-pleads-2 .tear-3 {
  position: absolute;
  bottom: 30%;
  left: 42%;
  width: 5px;
  height: 8px;
  background: radial-gradient(circle, rgba(180,200,255,0.8) 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(180,200,255,0.3);
  animation: lp2-tear-fall 2s ease-in infinite;
}

.scn-lucrece-pleads-2 .tear-2 {
  left: 46%;
  animation-delay: 0.7s;
}

.scn-lucrece-pleads-2 .tear-3 {
  left: 50%;
  animation-delay: 1.4s;
}

@keyframes lp2-flicker {
  0%   { transform: scaleY(1) rotate(-2deg); opacity: 0.9; }
  50%  { transform: scaleY(1.1) rotate(1deg); opacity: 1; }
  100% { transform: scaleY(0.95) rotate(-1deg); opacity: 0.85; }
}

@keyframes lp2-breathe {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

@keyframes lp2-tear-fall {
  0%   { transform: translateY(0) scale(1); opacity: 0.9; }
  50%  { transform: translateY(60px) scale(0.8); opacity: 0.6; }
  100% { transform: translateY(120px) scale(0.4); opacity: 0; }
}

/* Scene 3: Lucrece Pleads – Shadow on wall */
.scn-lucrece-pleads-3 {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #10102a 50%, #060610 100%),
    radial-gradient(ellipse at 50% 80%, #1a1a3e 0%, transparent 70%);
}

.scn-lucrece-pleads-3 .tarquin-shadow {
  position: absolute;
  top: 10%;
  left: 50%;
  width: 160px;
  height: 200px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a10 100%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 30%, 100% 80%, 80% 100%, 20% 100%, 0% 80%, 40% 30%);
  transform: translateX(-50%);
  box-shadow: 0 0 30px rgba(0,0,0,0.8);
  animation: lp3-shadow-pulse 6s ease-in-out infinite;
}

.scn-lucrece-pleads-3 .lucrece-body {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 40px;
  height: 80px;
  background: #141420;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lp3-kneel 4s ease-in-out infinite;
}

.scn-lucrece-pleads-3 .lucrece-hands {
  position: absolute;
  bottom: 22%;
  left: 28%;
  width: 24px;
  height: 16px;
  background: #181828;
  border-radius: 40% 60% 40% 60%;
  transform-origin: bottom center;
  animation: lp3-hands-tremble 1.5s ease-in-out infinite;
}

.scn-lucrece-pleads-3 .gate-left,
.scn-lucrece-pleads-3 .gate-right {
  position: absolute;
  bottom: 0;
  width: 15%;
  height: 100%;
  background: repeating-linear-gradient(90deg, #2a2a3e 0px, #2a2a3e 4px, transparent 4px, transparent 8px);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}

.scn-lucrece-pleads-3 .gate-left  { left: 0; }
.scn-lucrece-pleads-3 .gate-right { right: 0; }

.scn-lucrece-pleads-3 .light-beam {
  position: absolute;
  bottom: 0;
  left: 25%;
  width: 50%;
  height: 40%;
  background: linear-gradient(180deg, rgba(255,200,100,0.1) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: lp3-light-flicker 3s ease-in-out infinite;
}

@keyframes lp3-shadow-pulse {
  0%   { transform: translateX(-50%) scale(1); opacity: 0.8; }
  50%  { transform: translateX(-50%) scale(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.9; }
}

@keyframes lp3-kneel {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}

@keyframes lp3-hands-tremble {
  0%   { transform: rotate(-5deg) scale(1); }
  50%  { transform: rotate(5deg) scale(0.95); }
  100% { transform: rotate(-3deg) scale(1); }
}

@keyframes lp3-light-flicker {
  0%   { opacity: 0.6; transform: scaleY(1); }
  50%  { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.7; transform: scaleY(0.95); }
}

/* Scene 4: Lucrece Pleads – Clasped hands and crown */
.scn-lucrece-pleads-4 {
  background:
    linear-gradient(180deg, #0f0f1a 0%, #1a1a30 40%),
    radial-gradient(ellipse at 50% 70%, #2a2a40 0%, transparent 80%);
}

.scn-lucrece-pleads-4 .hand-left,
.scn-lucrece-pleads-4 .hand-right {
  position: absolute;
  bottom: 30%;
  width: 30px;
  height: 45px;
  background: linear-gradient(180deg, #1e1e2a 0%, #141422 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lp4-hands-clasp 3s ease-in-out infinite;
}

.scn-lucrece-pleads-4 .hand-left {
  left: 40%;
  transform: rotate(15deg);
}

.scn-lucrece-pleads-4 .hand-right {
  right: 40%;
  transform: rotate(-15deg);
}

.scn-lucrece-pleads-4 .crown-silhouette {
  position: absolute;
  top: 15%;
  left: 50%;
  width: 80px;
  height: 50px;
  transform: translateX(-50%);
  background: #1a1a2a;
  clip-path: polygon(0% 100%, 20% 0%, 50% 30%, 80% 0%, 100% 100%);
  box-shadow: 0 0 20px rgba(255,200,100,0.1);
  animation: lp4-crown-glow 5s ease-in-out infinite;
}

.scn-lucrece-pleads-4 .tear-pool {
  position: absolute;
  bottom: 10%;
  left: 50%;
  width: 60px;
  height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, rgba(140,160,255,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: lp4-pool-ripple 6s ease-in-out infinite;
}

.scn-lucrece-pleads-4 .tear-drop-1,
.scn-lucrece-pleads-4 .tear-drop-2 {
  position: absolute;
  bottom: 18%;
  width: 6px;
  height: 10px;
  background: radial-gradient(circle, rgba(180,200,255,0.7) 0%, transparent 100%);
  border-radius: 50%;
  animation: lp4-tear-fall 2.5s ease-in infinite;
}

.scn-lucrece-pleads-4 .tear-drop-1 { left: 45%; }
.scn-lucrece-pleads-4 .tear-drop-2 { left: 52%; animation-delay: 1.2s; }

@keyframes lp4-hands-clasp {
  0%   { transform: rotate(15deg) scale(1); }
  50%  { transform: rotate(18deg) scale(1.02); }
  100% { transform: rotate(13deg) scale(0.98); }
}

@keyframes lp4-crown-glow {
  0%   { opacity: 0.7; filter: brightness(1); }
  50%  { opacity: 1; filter: brightness(1.2); }
  100% { opacity: 0.8; filter: brightness(0.9); }
}

@keyframes lp4-pool-ripple {
  0%   { transform: translateX(-50%) scale(1); opacity: 0.6; }
  50%  { transform: translateX(-50%) scale(1.05); opacity: 0.8; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.5; }
}

@keyframes lp4-tear-fall {
  0%   { transform: translateY(0) rotate(0deg); opacity: 0.8; }
  50%  { transform: translateY(40px) rotate(10deg); opacity: 0.5; }
  100% { transform: translateY(80px) rotate(-5deg); opacity: 0; }
}

/* Scene 5: Lucrece Pleads – Mirror and reflection */
.scn-lucrece-pleads-5 {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #141428 50%),
    radial-gradient(ellipse at 50% 50%, #1a1a3e 0%, transparent 80%);
}

.scn-lucrece-pleads-5 .mirror-frame {
  position: absolute;
  top: 15%;
  left: 50%;
  width: 120px;
  height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #2a2a3e, #1a1a2a);
  border: 4px solid #3a3a4e;
  border-radius: 8px;
  box-shadow: 0 0 30px rgba(0,0,0,0.8);
}

.scn-lucrece-pleads-5 .mirror-glass {
  position: absolute;
  top: calc(15% + 6px);
  left: 50%;
  width: 108px;
  height: 148px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, rgba(200,220,255,0.15) 0%, rgba(100,130,200,0.1) 50%, transparent 100%);
  border-radius: 4px;
  animation: lp5-glass-shimmer 8s ease-in-out infinite;
}

.scn-lucrece-pleads-5 .reflection-silhouette {
  position: absolute;
  top: calc(15% + 20px);
  left: 50%;
  width: 50px;
  height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #141424 0%, #0a0a12 100%);
  border-radius: 40% 50% 40% 40% / 60% 70% 40% 40%;
  opacity: 0.5;
  animation: lp5-reflection-move 6s ease-in-out infinite;
}

.scn-lucrece-pleads-5 .crack-1,
.scn-lucrece-pleads-5 .crack-2 {
  position: absolute;
  top: 30%;
  left: 45%;
  width: 30px;
  height: 2px;
  background: rgba(255,255,255,0.2);
  transform-origin: left center;
  box-shadow: 0 0 4px rgba(255,255,255,0.1);
  animation: lp5-crack-grow 4s ease-in-out infinite;
}

.scn-lucrece-pleads-5 .crack-2 {
  top: 45%;
  left: 50%;
  width: 40px;
  transform: rotate(30deg);
  animation-delay: 1.5s;
}

.scn-lucrece-pleads-5 .hand-touching {
  position: absolute;
  bottom: 18%;
  left: 48%;
  width: 24px;
  height: 30px;
  background: #181828;
  border-radius: 50% 60% 50% 40% / 60% 50% 40% 50%;
  transform: rotate(20deg);
  animation: lp5-hand-tremble 2s ease-in-out infinite;
}

@keyframes lp5-glass-shimmer {
  0%   { opacity: 0.4; }
  50%  { opacity: 0.8; }
  100% { opacity: 0.3; }
}

@keyframes lp5-reflection-move {
  0%   { transform: translateX(-50%) translateY(0); }
  50%  { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(1px); }
}

@keyframes lp5-crack-grow {
  0%   { transform: scaleX(0.2); opacity: 0.3; }
  50%  { transform: scaleX(1); opacity: 0.6; }
  100% { transform: scaleX(0.5); opacity: 0.2; }
}

@keyframes lp5-hand-tremble {
  0%   { transform: rotate(20deg) scale(1); }
  50%  { transform: rotate(22deg) scale(1.02); }
  100% { transform: rotate(18deg) scale(0.98); }
}

.scn-invocation-opportunity-3 {
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 40%, #2a2250 100%), radial-gradient(ellipse at 50% 80%, #1a1a3e 0%, transparent 60%);
}
.scn-invocation-opportunity-3 .cell-wall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2e2a4a 0%, #1a1830 100%);
  animation: i3-wall 15s ease-in-out infinite alternate;
}
.scn-invocation-opportunity-3 .cell-floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1830 0%, #0e0c1a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.6);
}
.scn-invocation-opportunity-3 .wolf-body {
  position: absolute;
  bottom: 30%; left: 20%; width: 70px; height: 40px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: i3-wolf-body 4s ease-in-out infinite;
}
.scn-invocation-opportunity-3 .wolf-head {
  position: absolute;
  bottom: 42%; left: 18%; width: 40px; height: 45px;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: i3-wolf-head 3.5s ease-in-out infinite alternate;
}
.scn-invocation-opportunity-3 .lamb {
  position: absolute;
  bottom: 28%; left: 55%; width: 25px; height: 20px;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: i3-lamb 1.8s ease-in-out infinite alternate;
}
.scn-invocation-opportunity-3 .light-glimmer {
  position: absolute;
  top: 10%; left: 35%; width: 12px; height: 12px;
  background: radial-gradient(circle, #9080c0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(144,128,192,.4);
  animation: i3-glimmer 2.5s ease-in-out infinite;
}
.scn-invocation-opportunity-3 .shadow-cast {
  position: absolute;
  bottom: 38%; left: 12%; width: 60px; height: 30px;
  background: rgba(0,0,0,.3);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(6px);
  animation: i3-shadow 4s ease-in-out infinite;
}
.scn-invocation-opportunity-3 .chain-link {
  position: absolute;
  bottom: 38%; left: 50%; width: 40px; height: 4px;
  background: repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 4px, transparent 4px, transparent 8px);
  border-radius: 2px;
  box-shadow: 0 0 4px #4a3a2a;
  animation: i3-chain 6s ease-in-out infinite;
}
@keyframes i3-wall { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes i3-wolf-body { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes i3-wolf-head { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes i3-lamb { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(.95) translateY(1px) } 100% { transform: scale(1) translateY(0) } }
@keyframes i3-glimmer { 0% { opacity: .3; transform: scale(.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .5; transform: scale(.9) } }
@keyframes i3-shadow { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(-3px) scale(.95) } }
@keyframes i3-chain { 0%,100% { transform: translateY(0) } 50% { transform: translateY(1px) } }

.scn-invocation-opportunity-4 {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #2a1a2a 100%), radial-gradient(ellipse at 40% 60%, #2a1a2a 0%, transparent 70%);
}
.scn-invocation-opportunity-4 .bg-dark {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1a1a2e 0%, #0e0e1a 100%);
  animation: i4-bg 12s ease-in-out infinite alternate;
}
.scn-invocation-opportunity-4 .traitor-figure {
  position: absolute;
  bottom: 20%; left: 30%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: i4-figure 5s ease-in-out infinite;
}
.scn-invocation-opportunity-4 .traitor-arm {
  position: absolute;
  bottom: 45%; left: 38%; width: 30px; height: 8px;
  background: linear-gradient(90deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 4px;
  transform-origin: left center;
  animation: i4-arm 4s ease-in-out infinite;
}
.scn-invocation-opportunity-4 .cup {
  position: absolute;
  bottom: 42%; left: 52%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 40% 40%;
  box-shadow: 0 0 8px #3a2a1a;
  animation: i4-cup 3s ease-in-out infinite;
}
.scn-invocation-opportunity-4 .gall-drip {
  position: absolute;
  bottom: 35%; left: 52%; width: 4px; height: 10px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 0 0 50% 50%;
  animation: i4-drip 2s ease-in-out infinite;
}
.scn-invocation-opportunity-4 .honey-drip {
  position: absolute;
  bottom: 35%; left: 58%; width: 3px; height: 8px;
  background: linear-gradient(180deg, #7a5a2a 0%, #5a3a1a 100%);
  border-radius: 0 0 50% 50%;
  animation: i4-drip2 2.5s ease-in-out infinite alternate;
}
.scn-invocation-opportunity-4 .shadow-traitor {
  position: absolute;
  bottom: 15%; left: 25%; width: 70px; height: 30px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(10px);
  animation: i4-shadow 5s ease-in-out infinite;
}
.scn-invocation-opportunity-4 .eye-glow {
  position: absolute;
  bottom: 70%; left: 38%; width: 6px; height: 6px;
  background: radial-gradient(circle, #b08040 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px #b08040;
  animation: i4-glow 2s ease-in-out infinite alternate;
}
@keyframes i4-bg { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .6 } }
@keyframes i4-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes i4-arm { 0% { transform: rotate(-20deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-15deg) } }
@keyframes i4-cup { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes i4-drip { 0% { height: 6px; opacity: .8 } 50% { height: 18px; opacity: 1 } 100% { height: 6px; opacity: .6 } }
@keyframes i4-drip2 { 0% { height: 4px; opacity: .5 } 50% { height: 14px; opacity: 1 } 100% { height: 4px; opacity: .3 } }
@keyframes i4-shadow { 0%,100% { transform: scale(1) } 50% { transform: scale(.9) translateX(3px) } }
@keyframes i4-glow { 0% { opacity: .3; transform: scale(.8) } 50% { opacity: 1; transform: scale(1.5) } 100% { opacity: .5; transform: scale(1) } }

.scn-invocation-opportunity-5 {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a30 40%, #2a2050 100%), radial-gradient(ellipse at 50% 20%, #2a2050 0%, transparent 80%);
}
.scn-invocation-opportunity-5 .bg-abyss {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #1a1a30 0%, #0a0a1a 100%);
  animation: i5-bg 20s ease-in-out infinite alternate;
}
.scn-invocation-opportunity-5 .suppliant-body {
  position: absolute;
  bottom: 18%; left: 40%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: i5-body 7s ease-in-out infinite;
}
.scn-invocation-opportunity-5 .suppliant-arms {
  position: absolute;
  bottom: 40%; left: 35%; width: 50px; height: 25px;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: left bottom;
  animation: i5-arms 5s ease-in-out infinite;
}
.scn-invocation-opportunity-5 .light-shaft {
  position: absolute;
  top: 0; left: 35%; width: 60px; height: 80%;
  background: linear-gradient(180deg, rgba(200,180,240,.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: i5-shaft 8s ease-in-out infinite alternate;
}
.scn-invocation-opportunity-5 .dust-motes {
  position: absolute;
  top: 20%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c0a0e0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px #a080c0;
  animation: i5-dust 6s ease-in-out infinite;
}
.scn-invocation-opportunity-5 .ground-shadow {
  position: absolute;
  bottom: 12%; left: 30%; width: 80px; height: 20px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(8px);
  animation: i5-shadow 5s ease-in-out infinite;
}
.scn-invocation-opportunity-5 .broken-chain {
  position: absolute;
  bottom: 25%; left: 25%; width: 30px; height: 4px;
  background: repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 3px, transparent 3px, transparent 6px);
  border-radius: 2px;
  box-shadow: 0 2px 4px #4a3a2a;
  transform: rotate(30deg);
  animation: i5-chain 10s ease-in-out infinite;
}
@keyframes i5-bg { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .6 } }
@keyframes i5-body { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes i5-arms { 0% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-2px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes i5-shaft { 0% { opacity: .2; transform: translateX(0) } 50% { opacity: .6; transform: translateX(5px) } 100% { opacity: .3; transform: translateX(-3px) } }
@keyframes i5-dust { 0% { opacity: 0; transform: translate(0, 0) scale(.5) } 50% { opacity: 1; transform: translate(10px, -20px) scale(1.2) } 100% { opacity: 0; transform: translate(20px, -40px) scale(.5) } }
@keyframes i5-shadow { 0%,100% { transform: scale(1) } 50% { transform: scale(.95) translateX(2px) } }
@keyframes i5-chain { 0%,100% { transform: rotate(30deg) translateY(0) } 50% { transform: rotate(35deg) translateY(2px) } }

.scn-invocation-opportunity-6 {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 30%, #2a1a20 100%), radial-gradient(ellipse at 60% 50%, #2a1a20 0%, transparent 70%);
}
.scn-invocation-opportunity-6 .bg-tomb {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1a1a2e 0%, #0a0a1a 100%);
  animation: i6-bg 18s ease-in-out infinite alternate;
}
.scn-invocation-opportunity-6 .oppressor {
  position: absolute;
  bottom: 15%; left: 55%; width: 70px; height: 100px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: i6-oppressor 6s ease-in-out infinite;
}
.scn-invocation-opportunity-6 .feast-table {
  position: absolute;
  bottom: 25%; left: 35%; width: 80px; height: 8px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
  animation: i6-table 4s ease-in-out infinite alternate;
}
.scn-invocation-opportunity-6 .feast-plate {
  position: absolute;
  bottom: 30%; left: 45%; width: 30px; height: 15px;
  background: radial-gradient(ellipse, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px #2a1a0a;
  animation: i6-plate 5s ease-in-out infinite;
}
.scn-invocation-opportunity-6 .orphan {
  position: absolute;
  bottom: 10%; left: 15%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: i6-orphan 3s ease-in-out infinite alternate;
}
.scn-invocation-opportunity-6 .tear-drop {
  position: absolute;
  bottom: 22%; left: 18%; width: 3px; height: 6px;
  background: linear-gradient(180deg, #6a5a8a 0%, #4a3a6a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: i6-tear 2s ease-in-out infinite;
}
.scn-invocation-opportunity-6 .scales-broken {
  position: absolute;
  bottom: 35%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  opacity: .6;
  animation: i6-scales 8s ease-in-out infinite;
}
.scn-invocation-opportunity-6 .shadow-large {
  position: absolute;
  bottom: 5%; left: 20%; width: 120px; height: 40px;
  background: rgba(0,0,0,.6);
  border-radius: 50%;
  filter: blur(12px);
  animation: i6-shadow 7s ease-in-out infinite;
}
@keyframes i6-bg { 0% { opacity: .4 } 50% { opacity: .8 } 100% { opacity: .6 } }
@keyframes i6-oppressor { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes i6-table { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(-2px) } }
@keyframes i6-plate { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.05) translateY(-1px) } 100% { transform: scale(1) translateY(0) } }
@keyframes i6-orphan { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(2px) scale(.95) } 100% { transform: translateY(0) scale(1) } }
@keyframes i6-tear { 0% { opacity: 0; transform: translateY(0) } 50% { opacity: 1; transform: translateY(10px) } 100% { opacity: 0; transform: translateY(20px) } }
@keyframes i6-scales { 0% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }
@keyframes i6-shadow { 0%,100% { transform: scale(1) } 50% { transform: scale(.95) translateX(5px) } }

.scn-tarquin-speaks-to-torch { background: linear-gradient(180deg, #3a1a0a 0%, #2a0e0a 50%, #1a0500 100%), radial-gradient(ellipse at 20% 50%, #ff6a30 0%, transparent 60%); }
.scn-tarquin-speaks-to-torch .wall { position:absolute; top:0; left:0; width:100%; height:60%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); box-shadow: inset 0 0 50px rgba(0,0,0,.7); }
.scn-tarquin-speaks-to-torch .floor { position:absolute; bottom:0; left:0; width:100%; height:40%; background: linear-gradient(0deg, #2a1a0a 0%, #3a2a1a 100%); }
.scn-tarquin-speaks-to-torch .torch-stem { position:absolute; left:15%; bottom:40%; width:8px; height:80px; background: linear-gradient(90deg, #4a3a2a 0%, #6a4a3a 50%, #4a3a2a 100%); border-radius: 2px; transform-origin: bottom; animation: tst-stem 6s ease-in-out infinite; }
.scn-tarquin-speaks-to-torch .flame { position:absolute; left:14%; bottom:75%; width:16px; height:30px; background: radial-gradient(ellipse at 50% 60%, #ffd060 0%, #ff8a30 50%, #ff4a10 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 20px rgba(255,80,20,.6), 0 0 80px 40px rgba(255,80,20,.3); animation: tst-flame 0.5s ease-in-out infinite alternate; }
.scn-tarquin-speaks-to-torch .figure { position:absolute; right:20%; bottom:0; width:60px; height:130px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0500 100%); border-radius: 40% 40% 30% 30%; box-shadow: -10px 0 20px rgba(0,0,0,.5); animation: tst-figure 4s ease-in-out infinite; }
.scn-tarquin-speaks-to-torch .glow { position:absolute; left:10%; bottom:60%; width:200px; height:200px; background: radial-gradient(ellipse, rgba(255,100,20,.3) 0%, transparent 70%); animation: tst-glow 3s ease-in-out infinite alternate; }
.scn-tarquin-speaks-to-torch .shadow { position:absolute; right:10%; bottom:0; width:80px; height:130px; background: linear-gradient(90deg, rgba(0,0,0,.6) 0%, transparent 100%); border-radius: 0 0 30% 30%; animation: tst-shadow 4s ease-in-out infinite; }
@keyframes tst-stem { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes tst-flame { 0% { transform: scaleY(1) scaleX(1); opacity:.8; } 50% { transform: scaleY(1.2) scaleX(0.9); opacity:1; } 100% { transform: scaleY(0.9) scaleX(1.1); opacity:.9; } }
@keyframes tst-figure { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes tst-glow { 0% { opacity:.5; transform: scale(0.8); } 100% { opacity:1; transform: scale(1.2); } }
@keyframes tst-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.8); } }

.scn-shame-to-knighthood { background: linear-gradient(180deg, #2a160a 0%, #1a0a00 100%), radial-gradient(ellipse at 50% 60%, #6a2a0a 0%, transparent 80%); }
.scn-shame-to-knighthood .bg { position:absolute; inset:0; background: linear-gradient(135deg, #3a1a0a 0%, #1a0a00 100%); }
.scn-shame-to-knighthood .armor { position:absolute; bottom:15%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 50%, #2a1a0a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 8px 15px rgba(0,0,0,.6); animation: sh-armor 6s ease-in-out infinite; }
.scn-shame-to-knighthood .shield { position:absolute; left:40%; bottom:25%; width:50px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 0 0 20% 20% / 0 0 30% 30%; box-shadow: -2px -2px 0 #8a6a5a; transform: rotate(-10deg); animation: sh-shield 8s ease-in-out infinite; }
.scn-shame-to-knighthood .banner { position:absolute; top:10%; left:30%; width:80px; height:120px; background: linear-gradient(180deg, #8a3a2a 0%, #5a1a0a 100%); border-radius: 2px; box-shadow: 2px 2px 5px rgba(0,0,0,.4); transform-origin: top center; animation: sh-banner 5s ease-in-out infinite alternate; }
.scn-shame-to-knighthood .crest { position:absolute; top:5%; left:50%; width:40px; height:40px; background: radial-gradient(circle, #c08040 0%, #8a5a2a 70%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(192,128,64,.5); animation: sh-crest 4s ease-in-out infinite alternate; }
.scn-shame-to-knighthood .fire { position:absolute; bottom:5%; left:50%; width:30px; height:50px; background: radial-gradient(ellipse at 50% 70%, #ff8a30 0%, #ff4a10 50%, #6a1a00 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 15px rgba(255,80,20,.5); animation: sh-fire 0.8s ease-in-out infinite alternate; }
.scn-shame-to-knighthood .glow { position:absolute; bottom:0; left:30%; width:200px; height:150px; background: radial-gradient(ellipse, rgba(255,80,20,.3) 0%, transparent 70%); animation: sh-glow 4s ease-in-out infinite alternate; }
@keyframes sh-armor { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } }
@keyframes sh-shield { 0%,100% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(2px); } }
@keyframes sh-banner { 0% { transform: rotate(-2deg); } 100% { transform: rotate(2deg); } }
@keyframes sh-crest { 0% { transform: scale(0.9); opacity:.8; } 100% { transform: scale(1.1); opacity:1; } }
@keyframes sh-fire { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.3) scaleX(0.8); } 100% { transform: scaleY(0.9) scaleX(1.1); } }
@keyframes sh-glow { 0% { opacity:.5; } 100% { opacity:1; } }

.scn-scandal-survives { background: linear-gradient(180deg, #1a0a00 0%, #2a0e00 50%, #0a0500 100%), radial-gradient(ellipse at 40% 50%, #6a2a0a 0%, transparent 70%); }
.scn-scandal-survives .bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a0e00 0%, #0a0000 100%); }
.scn-scandal-survives .coat { position:absolute; left:50%; top:20%; width:90px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a1a0a 100%); border-radius: 0 0 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: sc-coat 6s ease-in-out infinite alternate; }
.scn-scandal-survives .blot { position:absolute; left:55%; top:30%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 50%, #1a0a00 0%, #0a0000 100%); border-radius: 50%; transform: rotate(20deg); animation: sc-blot 8s ease-in-out infinite alternate; }
.scn-scandal-survives .herald { position:absolute; right:10%; bottom:0; width:50px; height:110px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 40% 40% 30% 30%; box-shadow: -5px 0 10px rgba(0,0,0,.4); animation: sc-herald 5s ease-in-out infinite; }
.scn-scandal-survives .scroll { position:absolute; right:12%; bottom:30%; width:40px; height:20px; background: linear-gradient(180deg, #c8a880 0%, #a08060 100%); border-radius: 10% 10% 5% 5%; transform: rotate(-5deg); animation: sc-scroll 7s ease-in-out infinite; }
.scn-scandal-survives .candle { position:absolute; left:20%; bottom:20%; width:10px; height:40px; background: linear-gradient(90deg, #8a6a4a 0%, #c8a880 50%, #8a6a4a 100%); border-radius: 2px; }
.scn-scandal-survives .glow { position:absolute; left:18%; bottom:15%; width:80px; height:80px; background: radial-gradient(ellipse, rgba(255,180,60,.4) 0%, transparent 70%); animation: sc-glow 3s ease-in-out infinite alternate; }
@keyframes sc-coat { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.95); } }
@keyframes sc-blot { 0% { transform: rotate(20deg) scale(1); opacity:.7; } 50% { transform: rotate(30deg) scale(1.1); opacity:1; } 100% { transform: rotate(15deg) scale(0.9); opacity:.8; } }
@keyframes sc-herald { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes sc-scroll { 0%,100% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(2px); } }
@keyframes sc-glow { 0% { opacity:.4; transform: scale(0.8); } 100% { opacity:1; transform: scale(1.2); } }

.scn-what-win-i { background: linear-gradient(180deg, #1a0a00 0%, #2a0e00 50%, #0a0500 100%), radial-gradient(ellipse at 60% 40%, #8a3a0a 0%, transparent 70%); }
.scn-what-win-i .bg { position:absolute; inset:0; background: linear-gradient(135deg, #0a0500 0%, #1a0a00 100%); }
.scn-what-win-i .figure { position:absolute; left:10%; bottom:0; width:50px; height:120px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 40% 40% 30% 30%; box-shadow: 5px 0 10px rgba(0,0,0,.5); animation: ww-figure 5s ease-in-out infinite; }
.scn-what-win-i .hand { position:absolute; left:25%; bottom:50%; width:20px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ww-hand 4s ease-in-out infinite; }
.scn-what-win-i .crown { position:absolute; right:25%; top:15%; width:50px; height:30px; background: radial-gradient(ellipse at 50% 30%, #e0a050 0%, #a06020 70%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 5px rgba(200,100,20,.5); animation: ww-crown 3s ease-in-out infinite alternate; }
.scn-what-win-i .grape { position:absolute; right:35%; top:25%; width:12px; height:12px; background: radial-gradient(circle, #604020 0%, #2a1000 100%); border-radius: 50%; box-shadow: 0 0 5px 1px rgba(0,0,0,.3); animation: ww-grape 6s ease-in-out infinite; }
.scn-what-win-i .vine { position:absolute; right:30%; top:15%; width:4px; height:40px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 2px; transform: rotate(30deg); animation: ww-vine 7s ease-in-out infinite alternate; }
.scn-what-win-i .shadow { position:absolute; right:40%; bottom:0; width:80px; height:120px; background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, transparent 100%); border-radius: 0 0 30% 30%; animation: ww-shadow 5s ease-in-out infinite; }
.scn-what-win-i .glow { position:absolute; right:20%; top:5%; width:150px; height:150px; background: radial-gradient(ellipse, rgba(200,100,20,.3) 0%, transparent 70%); animation: ww-glow 4s ease-in-out infinite alternate; }
@keyframes ww-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes ww-hand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-10px) rotate(15deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ww-crown { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.05); opacity:1; } 100% { transform: translateY(0) scale(0.95); opacity:.9; } }
@keyframes ww-grape { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(30deg); } }
@keyframes ww-vine { 0% { transform: rotate(30deg); } 100% { transform: rotate(20deg); } }
@keyframes ww-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.8); } }
@keyframes ww-glow { 0% { opacity:.3; transform: scale(0.8); } 100% { opacity:1; transform: scale(1.1); } }

/* Scene: tarquin-assault-1 */
.scn-tarquin-assault-1 {
  background:
    linear-gradient(135deg, #0b0d1a 0%, #151a2e 50%, #1c2340 100%),
    radial-gradient(ellipse at 60% 50%, #2a3050 0%, transparent 70%);
}
.scn-tarquin-assault-1 .shadow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,0.8) 100%);
  animation: ta1-shadow 8s ease-in-out infinite alternate;
}
.scn-tarquin-assault-1 .figure-tarq {
  position: absolute; bottom: 10%; left: 35%; width: 70px; height: 140px;
  background: linear-gradient(180deg, #1a1e2e 0%, #0a0d1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: ta1-tarq 6s ease-in-out infinite alternate;
  box-shadow: 0 0 20px rgba(0,0,0,0.7);
}
.scn-tarquin-assault-1 .figure-luc {
  position: absolute; bottom: 20%; left: 52%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2e3a 0%, #111522 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ta1-luc 1.5s ease-in-out infinite alternate;
}
.scn-tarquin-assault-1 .bed {
  position: absolute; bottom: 8%; left: 40%; width: 90px; height: 40px;
  background: linear-gradient(180deg, #2c3040 0%, #161a24 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: ta1-bed 10s ease-in-out infinite;
}
.scn-tarquin-assault-1 .candle {
  position: absolute; bottom: 30%; left: 30%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #3a3020 100%);
  border-radius: 10% 10% 5% 5%;
  animation: ta1-candle 2s ease-in-out infinite alternate;
}
.scn-tarquin-assault-1 .candle::after {
  content: ''; position: absolute; top: -8px; left: -2px; width: 10px; height: 12px;
  background: radial-gradient(circle, #ffc870 0%, #b08030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c09040, 0 0 40px 12px rgba(192,144,64,0.4);
  animation: ta1-flame 0.8s ease-in-out infinite alternate;
}
.scn-tarquin-assault-1 .window {
  position: absolute; top: 15%; right: 15%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a4060 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 10px rgba(255,255,255,0.05);
  animation: ta1-window 12s ease-in-out infinite alternate;
}
.scn-tarquin-assault-1 .moonbeam {
  position: absolute; top: 15%; right: 15%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 0%, rgba(220,230,255,0.08) 0%, transparent 80%);
  animation: ta1-beam 8s linear infinite;
}
.scn-tarquin-assault-1 .curtain-left {
  position: absolute; top: 5%; left: 10%; width: 30px; height: 90%;
  background: linear-gradient(180deg, #1c1424 0%, #0e0a14 100%);
  border-radius: 0 20% 20% 0;
  filter: blur(1px);
  animation: ta1-curtain 15s ease-in-out infinite alternate;
}
.scn-tarquin-assault-1 .curtain-right {
  position: absolute; top: 5%; right: 10%; width: 30px; height: 90%;
  background: linear-gradient(180deg, #1c1424 0%, #0e0a14 100%);
  border-radius: 20% 0 0 20%;
  filter: blur(1px);
  animation: ta1-curtain 15s ease-in-out infinite alternate-reverse;
}
@keyframes ta1-shadow { 0%,100% { opacity:0.7; } 50% { opacity:0.85; } }
@keyframes ta1-tarq { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes ta1-luc { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 70% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0); } }
@keyframes ta1-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes ta1-candle { 0% { opacity:0.9; transform: scaleY(1); } 100% { opacity:1; transform: scaleY(1.02); } }
@keyframes ta1-flame { 0% { transform: scale(1) rotate(-2deg); opacity:0.8; } 50% { transform: scale(1.15) rotate(2deg); opacity:1; } 100% { transform: scale(0.95) rotate(-1deg); opacity:0.9; } }
@keyframes ta1-window { 0%,100% { opacity:0.6; } 50% { opacity:0.8; } }
@keyframes ta1-beam { 0% { opacity:0; } 20% { opacity:0.15; } 80% { opacity:0.15; } 100% { opacity:0; } }
@keyframes ta1-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(5px); } }

/* Scene: tarquin-assault-2 */
.scn-tarquin-assault-2 {
  background:
    linear-gradient(180deg, #0d0e1a 0%, #161a2a 50%, #202438 100%),
    radial-gradient(ellipse at 40% 50%, #1e2440 0%, transparent 70%);
}
.scn-tarquin-assault-2 .shadow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 50%, transparent 30%, rgba(0,0,0,0.7) 90%);
  animation: ta2-shadow 10s ease-in-out infinite alternate;
}
.scn-tarquin-assault-2 .figure-luc-profile {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a2e3a 0%, #141822 100%);
  border-radius: 40% 30% 30% 40% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: ta2-luc 3s ease-in-out infinite alternate;
}
.scn-tarquin-assault-2 .hands {
  position: absolute; bottom: 35%; left: 32%; width: 25px; height: 20px;
  background: #2a2e3a;
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: ta2-hands 1.2s ease-in-out infinite alternate;
}
.scn-tarquin-assault-2 .figure-tarq-2 {
  position: absolute; bottom: 10%; right: 20%; width: 80px; height: 130px;
  background: linear-gradient(180deg, #1a1e2e 0%, #0a0d1a 100%);
  border-radius: 30% 30% 15% 15% / 50% 50% 15% 15%;
  transform-origin: bottom center;
  animation: ta2-tarq 7s ease-in-out infinite alternate;
  box-shadow: 0 0 30px rgba(0,0,0,0.6);
}
.scn-tarquin-assault-2 .candle {
  position: absolute; bottom: 25%; left: 45%; width: 5px; height: 25px;
  background: linear-gradient(180deg, #8a7a5a 0%, #3a3020 100%);
  border-radius: 10%;
}
.scn-tarquin-assault-2 .candle::after {
  content: ''; position: absolute; top: -6px; left: -2px; width: 9px; height: 10px;
  background: radial-gradient(circle, #f0b850 0%, #c08030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 18px 5px #c09040, 0 0 35px 10px rgba(192,144,64,0.3);
  animation: ta2-flame 1.1s ease-in-out infinite alternate;
}
.scn-tarquin-assault-2 .bedpost {
  position: absolute; bottom: 12%; right: 45%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #2c3040 0%, #161a24 100%);
  border-radius: 4%;
  transform: rotate(2deg);
  animation: ta2-post 20s ease-in-out infinite alternate;
}
.scn-tarquin-assault-2 .pillow {
  position: absolute; bottom: 16%; left: 38%; width: 35px; height: 15px;
  background: linear-gradient(180deg, #3a3e4a 0%, #262a34 100%);
  border-radius: 40% 40% 30% 30%;
  animation: ta2-pillow 25s ease-in-out infinite alternate;
}
@keyframes ta2-shadow { 0% { opacity:0.6; } 100% { opacity:0.9; } }
@keyframes ta2-luc { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(1px) rotate(1deg); } }
@keyframes ta2-hands { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-4px) rotate(5deg); } 100% { transform: translateY(-2px) rotate(-3deg); } }
@keyframes ta2-tarq { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(0.5deg); } 70% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0); } }
@keyframes ta2-flame { 0% { transform: scale(1) rotate(-3deg); opacity:0.8; } 50% { transform: scale(1.2) rotate(3deg); opacity:1; } 100% { transform: scale(0.9) rotate(-1deg); opacity:0.85; } }
@keyframes ta2-post { 0% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes ta2-pillow { 0% { transform: translateY(0); } 100% { transform: translateY(2px); } }

/* Scene: tarquin-assault-3 */
.scn-tarquin-assault-3 {
  background:
    linear-gradient(135deg, #0c0e1a 0%, #12162a 50%, #1a1e32 100%),
    radial-gradient(ellipse at 30% 40%, #1a1e30 0%, transparent 60%);
}
.scn-tarquin-assault-3 .shadow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, transparent 30%, rgba(0,0,0,0.75) 100%);
  animation: ta3-shadow 12s ease-in-out infinite alternate;
}
.scn-tarquin-assault-3 .figure-luc-kneel {
  position: absolute; bottom: 15%; left: 40%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #2a2e3a 0%, #141822 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ta3-kneel 4s ease-in-out infinite alternate;
}
.scn-tarquin-assault-3 .figure-tarq-3 {
  position: absolute; bottom: 10%; right: 25%; width: 75px; height: 140px;
  background: linear-gradient(180deg, #1a1e2e 0%, #0a0d1a 100%);
  border-radius: 25% 25% 10% 10% / 45% 45% 10% 10%;
  transform-origin: bottom center;
  animation: ta3-tarq 5s ease-in-out infinite alternate;
  box-shadow: 0 0 25px rgba(0,0,0,0.7);
}
.scn-tarquin-assault-3 .candle {
  position: absolute; bottom: 30%; left: 35%; width: 5px; height: 30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #3a3020 100%);
  border-radius: 10%;
}
.scn-tarquin-assault-3 .candle::after {
  content: ''; position: absolute; top: -7px; left: -2px; width: 9px; height: 11px;
  background: radial-gradient(circle, #f0b850 0%, #c08030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c09040, 0 0 40px 12px rgba(192,144,64,0.3);
  animation: ta3-flame 1.3s ease-in-out infinite alternate;
}
.scn-tarquin-assault-3 .window {
  position: absolute; top: 12%; left: 18%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a4060 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 8px rgba(255,255,255,0.03);
  animation: ta3-window 15s ease-in-out infinite alternate;
}
.scn-tarquin-assault-3 .moon {
  position: absolute; top: 14%; left: 21%; width: 12px; height: 12px;
  background: radial-gradient(circle, #d0d8f0 0%, #a0a8c0 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px rgba(200,210,240,0.3);
  animation: ta3-moon 20s linear infinite alternate;
}
.scn-tarquin-assault-3 .bed-rail {
  position: absolute; bottom: 10%; left: 20%; width: 90px; height: 10px;
  background: linear-gradient(90deg, #2c3040 0%, #161a24 100%);
  border-radius: 4%;
  animation: ta3-rail 8s ease-in-out infinite alternate;
}
.scn-tarquin-assault-3 .cross-niche {
  position: absolute; top: 25%; right: 20%; width: 20px; height: 30px;
  border: 3px solid #2a2e3a;
  border-radius: 4%;
  animation: ta3-cross 30s ease-in-out infinite alternate;
}
@keyframes ta3-shadow { 0% { opacity:0.7; } 100% { opacity:0.9; } }
@keyframes ta3-kneel { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ta3-tarq { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(1deg); } 70% { transform: translateX(-1px) rotate(-0.5deg); } 100% { transform: translateX(0); } }
@keyframes ta3-flame { 0% { transform: scale(1) rotate(-2deg); opacity:0.9; } 50% { transform: scale(1.1) rotate(3deg); opacity:1; } 100% { transform: scale(0.95) rotate(-1deg); opacity:0.85; } }
@keyframes ta3-window { 0% { opacity:0.5; } 100% { opacity:0.8; } }
@keyframes ta3-moon { 0% { transform: translateY(0); opacity:0.8; } 100% { transform: translateY(5px); opacity:1; } }
@keyframes ta3-rail { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.03); } }
@keyframes ta3-cross { 0% { opacity:0.3; } 100% { opacity:0.6; } }

/* Scene: lucrece-pleads-1 */
.scn-lucrece-pleads-1 {
  background:
    linear-gradient(180deg, #0a0c18 0%, #101428 50%, #181c30 100%),
    radial-gradient(ellipse at 70% 40%, #1a1e2e 0%, transparent 70%);
}
.scn-lucrece-pleads-1 .shadow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, transparent 20%, rgba(0,0,0,0.8) 100%);
  animation: lp1-shadow 9s ease-in-out infinite alternate;
}
.scn-lucrece-pleads-1 .hand-grasp {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #2a2e3a 0%, #161a24 100%);
  border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%;
  transform-origin: bottom left;
  animation: lp1-hand 2s ease-in-out infinite alternate;
}
.scn-lucrece-pleads-1 .wrist {
  position: absolute; bottom: 30%; left: 30%; width: 10px; height: 35px;
  background: linear-gradient(180deg, #2a2e3a 0%, #1a1e28 100%);
  border-radius: 20% 20% 30% 30%;
  transform-origin: bottom left;
  animation: lp1-wrist 2.5s ease-in-out infinite alternate;
}
.scn-lucrece-pleads-1 .arm {
  position: absolute; bottom: 30%; left: 32%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #2a2e3a 0%, #1a1e28 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: lp1-arm 3s ease-in-out infinite alternate;
}
.scn-lucrece-pleads-1 .lamp {
  position: absolute; bottom: 25%; right: 25%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a18 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-lucrece-pleads-1 .lamp::after {
  content: ''; position: absolute; top: -10px; left: 2px; width: 16px; height: 16px;
  background: radial-gradient(circle, #f0c060 0%, #b08030 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 25px 8px #c09040, 0 0 50px 15px rgba(192,144,64,0.3);
  animation: lp1-lamp 1.5s ease-in-out infinite alternate;
}
.scn-lucrece-pleads-1 .curtain {
  position: absolute; top: 0; right: 15%; width: 25px; height: 100%;
  background: linear-gradient(180deg, #1c1424 0%, #0e0a14 100%);
  border-radius: 0 0 20% 20%;
  filter: blur(2px);
  animation: lp1-curtain 20s ease-in-out infinite alternate;
}
.scn-lucrece-pleads-1 .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: lp1-floor 15s ease-in-out infinite alternate;
}
.scn-lucrece-pleads-1 .wall-panel {
  position: absolute; top: 10%; left: 10%; width: 25%; height: 70%;
  border: 2px solid #2a2e3a;
  border-radius: 4%;
  background: rgba(20,24,40,0.5);
  animation: lp1-panel 30s ease-in-out infinite alternate;
}
@keyframes lp1-shadow { 0% { opacity:0.6; } 100% { opacity:0.85; } }
@keyframes lp1-hand { 0% { transform: translate(0, 0) rotate(-10deg); } 50% { transform: translate(4px, -2px) rotate(10deg); } 100% { transform: translate(0, 0) rotate(-5deg); } }
@keyframes lp1-wrist { 0% { transform: rotate(0deg); } 100% { transform: rotate(5deg); } }
@keyframes lp1-arm { 0% { transform: rotate(0deg); } 30% { transform: rotate(2deg); } 70% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes lp1-lamp { 0% { transform: scale(1) rotate(-2deg); opacity:0.9; } 50% { transform: scale(1.1) rotate(2deg); opacity:1; } 100% { transform: scale(0.95) rotate(-1deg); opacity:0.85; } }
@keyframes lp1-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(3px); } }
@keyframes lp1-floor { 0% { opacity:0.5; } 100% { opacity:0.8; } }
@keyframes lp1-panel { 0% { opacity:0.3; } 100% { opacity:0.6; } }

/* ---------- painting-trojan-mothers ---------- */
.scn-painting-trojan-mothers {
  background: 
    linear-gradient(180deg, #2a1a0e 0%, #1a0a00 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-painting-trojan-mothers .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a1a0e 0%, #1a0a00 100%);
  opacity: 0.8;
  animation: tm-breathe 8s ease-in-out infinite alternate;
}
.scn-painting-trojan-mothers .wall {
  position: absolute; left: 0; top: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  box-shadow: 2px 0 8px rgba(0,0,0,0.5);
  animation: tm-wall 15s ease-in-out infinite alternate;
}
.scn-painting-trojan-mothers .arch {
  position: absolute; left: 25%; top: 10%; width: 50%; height: 75%;
  background: radial-gradient(ellipse at 50% 40%, transparent 60%, #1a0a00 60%);
  border-radius: 40% 40% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-painting-trojan-mothers .sky-out {
  position: absolute; left: 28%; top: 12%; width: 44%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
  opacity: 0.6;
  animation: tm-sky 20s linear infinite alternate;
}
.scn-painting-trojan-mothers .mother-left {
  position: absolute; bottom: 22%; left: 32%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tm-figure 6s ease-in-out infinite;
}
.scn-painting-trojan-mothers .mother-right {
  position: absolute; bottom: 24%; left: 50%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 45% 55% 35% 45% / 55% 65% 35% 35%;
  transform-origin: bottom center;
  animation: tm-figure 7s ease-in-out infinite 0.5s;
}
.scn-painting-trojan-mothers .candle-glow {
  position: absolute; bottom: 30%; left: 45%; width: 10px; height: 10px;
  background: radial-gradient(circle, #f0c068 0%, #c08040 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,0.4);
  animation: tm-glow 3s ease-in-out infinite alternate;
}
.scn-painting-trojan-mothers .child-hold {
  position: absolute; bottom: 20%; left: 38%; width: 12px; height: 22px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: tm-child 4s ease-in-out infinite 0.2s;
}
@keyframes tm-breathe { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes tm-wall { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(1); } }
@keyframes tm-sky { 0% { background-position: 0% 0%; } 50% { background-position: 10% 20%; } 100% { background-position: 0% 0%; } }
@keyframes tm-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes tm-glow { 0% { box-shadow: 0 0 20px 5px #c08040; opacity:0.8; } 50% { box-shadow: 0 0 40px 15px #f0c068; opacity:1; } 100% { box-shadow: 0 0 25px 8px #c08040; opacity:0.9; } }
@keyframes tm-child { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* ---------- painting-simois-blood ---------- */
.scn-painting-simois-blood {
  background: 
    linear-gradient(135deg, #1a1a1a 0%, #2a1a1a 30%, #1a0a0a 100%),
    radial-gradient(ellipse at 40% 60%, #3a1a1a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-painting-simois-blood .frame {
  position: absolute; inset: 5%;
  background: linear-gradient(90deg, #2a1a0a 0%, #1a0a00 50%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
}
.scn-painting-simois-blood .canvas-bg {
  position: absolute; inset: 8%;
  background: linear-gradient(180deg, #0a0a0a 0%, #2a1a1a 50%, #1a0a0a 100%);
  border-radius: 2px;
}
.scn-painting-simois-blood .river-reeds {
  position: absolute; bottom: 25%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #1a2a1a 40%, #0a1a0a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: sb-reeds 12s ease-in-out infinite alternate;
}
.scn-painting-simois-blood .blood-tide {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 15%;
  background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 50%, #3a0a0a 100%);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
  opacity: 0.8;
  animation: sb-blood 6s ease-in-out infinite alternate;
}
.scn-painting-simois-blood .bank-bluff {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 50% 50% / 20% 20% 40% 40%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
  animation: sb-bank 15s ease-in-out infinite;
}
.scn-painting-simois-blood .spear-down {
  position: absolute; bottom: 35%; left: 55%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  transform: rotate(15deg);
  transform-origin: bottom center;
  border-radius: 20% 20% 0 0;
  animation: sb-spear 4s ease-in-out infinite;
}
.scn-painting-simois-blood .torch-flicker {
  position: absolute; bottom: 10%; right: 12%; width: 16px; height: 16px;
  background: radial-gradient(circle, #f0a040 0%, #c06020 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c06020;
  animation: sb-torch 3s ease-in-out infinite alternate;
}
@keyframes sb-reeds { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sb-blood { 0% { transform: translateX(-5px) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.03); } 100% { transform: translateX(-5px) scaleX(1); } }
@keyframes sb-bank { 0% { border-radius: 30% 30% 50% 50% / 20% 20% 40% 40%; } 50% { border-radius: 35% 35% 55% 45% / 25% 25% 35% 45%; } 100% { border-radius: 30% 30% 50% 50% / 20% 20% 40% 40%; } }
@keyframes sb-spear { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.02); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes sb-torch { 0% { box-shadow: 0 0 20px 5px #c06020; opacity:0.8; } 50% { box-shadow: 0 0 40px 15px #f0a040; opacity:1; } 100% { box-shadow: 0 0 25px 8px #c06020; opacity:0.9; } }

/* ---------- painting-hecuba ---------- */
.scn-painting-hecuba {
  background: 
    linear-gradient(180deg, #1a0a00 0%, #2a1a0a 30%, #0a0500 100%),
    radial-gradient(circle at 70% 20%, #3a2a1a 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-painting-hecuba .chamber-dark {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #0a0500 0%, #1a0a00 50%, #0a0500 100%);
  animation: he-chamber 20s ease-in-out infinite alternate;
}
.scn-painting-hecuba .figure-old {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: he-figure 8s ease-in-out infinite;
}
.scn-painting-hecuba .face-shadow {
  position: absolute; bottom: 55%; left: 38%; width: 14px; height: 18px;
  background: radial-gradient(ellipse at 50% 30%, #1a0a00 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  opacity: 0.7;
  animation: he-face 5s ease-in-out infinite alternate;
}
.scn-painting-hecuba .tear-drop {
  position: absolute; bottom: 58%; left: 43%; width: 3px; height: 8px;
  background: radial-gradient(circle, #b08040 0%, #6a4a3a 100%);
  border-radius: 50%;
  animation: he-tear 6s ease-in-out infinite;
}
.scn-painting-hecuba .light-ray {
  position: absolute; top: 0; left: 20%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(192,128,64,0.15) 0%, transparent 100%);
  transform: skewX(-20deg);
  transform-origin: top left;
  animation: he-ray 9s ease-in-out infinite alternate;
}
.scn-painting-hecuba .floor-band {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 5%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: he-floor 12s ease-in-out infinite alternate;
}
@keyframes he-chamber { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes he-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg) scaleY(1.01); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes he-face { 0% { opacity:0.5; transform: translateY(0); } 50% { opacity:0.8; transform: translateY(-1px); } 100% { opacity:0.6; transform: translateY(0); } }
@keyframes he-tear { 0% { transform: translateY(0) scaleY(1); opacity:0.6; } 50% { transform: translateY(4px) scaleY(1.3); opacity:1; } 100% { transform: translateY(0) scaleY(1); opacity:0.6; } }
@keyframes he-ray { 0% { transform: skewX(-20deg) scaleX(1); } 50% { transform: skewX(-15deg) scaleX(1.05); } 100% { transform: skewX(-20deg) scaleX(1); } }
@keyframes he-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }

/* ---------- painting-hecuba-wrecked ---------- */
.scn-painting-hecuba-wrecked {
  background: 
    linear-gradient(180deg, #0a0a0a 0%, #1a0a05 30%, #0a0500 100%),
    radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-painting-hecuba-wrecked .gallery-dim {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a0a 0%, #1a0a05 100%);
  animation: hw-dim 25s ease-in-out infinite alternate;
}
.scn-painting-hecuba-wrecked .remnant-form {
  position: absolute; bottom: 22%; left: 40%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #1a0a05 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hw-remnant 10s ease-in-out infinite;
}
.scn-painting-hecuba-wrecked .wrinkle-lines {
  position: absolute; bottom: 50%; left: 42%; width: 12px; height: 6px;
  background: radial-gradient(ellipse at 30% 50%, #1a0a05 0%, transparent 60%);
  border-radius: 40%;
  animation: hw-wrinkle 7s ease-in-out infinite alternate;
}
.scn-painting-hecuba-wrecked .blue-vein {
  position: absolute; bottom: 35%; left: 44%; width: 2px; height: 20px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40%;
  opacity: 0.6;
  animation: hw-vein 11s ease-in-out infinite;
}
.scn-painting-hecuba-wrecked .crack-mar {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 2px;
  background: linear-gradient(90deg, #1a0a05 0%, #0a0500 80%, transparent 100%);
  transform: rotate(-25deg);
  animation: hw-crack 8s ease-in-out infinite alternate;
}
.scn-painting-hecuba-wrecked .glass-pane {
  position: absolute; inset: 10% 15% 15% 10%;
  background: radial-gradient(ellipse at 50% 40%, transparent 50%, rgba(10,5,0,0.3) 70%);
  border: 1px solid rgba(26,10,5,0.5);
  border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.7);
  animation: hw-glass 14s ease-in-out infinite alternate;
}
.scn-painting-hecuba-wrecked .dust-mote {
  position: absolute; top: 20%; left: 30%; width: 3px; height: 3px;
  background: rgba(160,128,96,0.3);
  border-radius: 50%;
  animation: hw-dust 20s linear infinite;
}
@keyframes hw-dim { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes hw-remnant { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes hw-wrinkle { 0% { opacity:0.4; transform: scaleX(1); } 50% { opacity:0.7; transform: scaleX(1.1); } 100% { opacity:0.5; transform: scaleX(1); } }
@keyframes hw-vein { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05) translateY(-1px); } 100% { transform: scaleY(1); } }
@keyframes hw-crack { 0% { transform: rotate(-25deg) scaleX(1); } 50% { transform: rotate(-20deg) scaleX(1.2); } 100% { transform: rotate(-25deg) scaleX(1); } }
@keyframes hw-glass { 0% { opacity:0.5; } 50% { opacity:0.7; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); } 100% { opacity:0.6; } }
@keyframes hw-dust { 0% { transform: translate(0,0) scale(1); opacity:0; } 10% { opacity:0.6; } 90% { opacity:0.4; } 100% { transform: translate(20px,-30px) scale(0.5); opacity:0; } }

/* scene: lucrece-argues-2 */
.scn-lucrece-argues-2 {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a1a2e 70%, #0a0a1a 100%), radial-gradient(ellipse at 50% 20%, #2a2a4e 0%, transparent 60%);
}
.scn-lucrece-argues-2 .sky { position:absolute; inset:0 0 60% 0; background: radial-gradient(ellipse at 70% 30%, #2a2a4e 0%, transparent 60%); animation: la2-sky 8s ease-in-out infinite alternate; }
.scn-lucrece-argues-2 .cedar-trunk { position: absolute; bottom: 30%; left: 50%; width: 20px; height: 50%; background: linear-gradient(90deg, #2a1a0a 0%, #4a2a1a 50%, #2a1a0a 100%); transform: translateX(-50%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-lucrece-argues-2 .cedar-top { position: absolute; bottom: 70%; left: 50%; width: 80px; height: 40px; background: radial-gradient(ellipse at 50% 0%, #1a2a1a 0%, #0a1a0a 100%); transform: translateX(-50%) scaleY(0.6); border-radius: 50% 50% 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,0.4); animation: la2-sway 4s ease-in-out infinite alternate; }
.scn-lucrece-argues-2 .shrub { position: absolute; bottom: 25%; left: 30%; width: 40px; height: 20px; background: radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 20% 20%; }
.scn-lucrece-argues-2 .shrub-2 { left: 60%; width: 30px; height: 15px; animation: la2-shrub 6s ease-in-out infinite; }
.scn-lucrece-argues-2 .figure { position: absolute; bottom: 20%; left: 40%; width: 16px; height: 30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: la2-figure 5s ease-in-out infinite; }
.scn-lucrece-argues-2 .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
@keyframes la2-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes la2-sway { 0% { transform: translateX(-50%) scaleY(0.6) rotate(-1deg) } 50% { transform: translateX(-50%) scaleY(0.65) rotate(1deg) } 100% { transform: translateX(-50%) scaleY(0.6) rotate(-1deg) } }
@keyframes la2-shrub { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes la2-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }

/* scene: tarquin-threatens-1 */
.scn-tarquin-threatens-1 {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 40%, #0a0a0a 100%), radial-gradient(ellipse at 50% 50%, #1a1a1a 0%, #0a0a0a 70%);
}
.scn-tarquin-threatens-1 .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: #1a1a1a; }
.scn-tarquin-threatens-1 .lantern { position: absolute; bottom: 25%; left: 50%; width: 20px; height: 30px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 10% 10% 30% 30%; transform: translateX(-50%); }
.scn-tarquin-threatens-1 .glow { position: absolute; bottom: 25%; left: 50%; width: 50px; height: 50px; background: radial-gradient(circle, #ffcc66 0%, #ff9933 30%, transparent 70%); transform: translate(-50%, -50%); animation: tt1-glow 2s ease-in-out infinite alternate; }
.scn-tarquin-threatens-1 .foot { position: absolute; bottom: 30%; left: 45%; width: 30px; height: 12px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 30% 30% 20% 20%; transform: rotate(-10deg); animation: tt1-foot 3s ease-in-out infinite; }
.scn-tarquin-threatens-1 .shadow { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, rgba(0,0,0,0.6) 0%, transparent 70%); animation: tt1-shadow 4s ease-in-out infinite alternate; }
.scn-tarquin-threatens-1 .wall { position: absolute; bottom: 50%; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); animation: tt1-wall 7s ease-in-out infinite alternate; }
.scn-tarquin-threatens-1 .smoke { position: absolute; bottom: 35%; left: 48%; width: 20px; height: 20px; background: radial-gradient(circle, rgba(255,200,150,0.3) 0%, transparent 70%); filter: blur(4px); animation: tt1-smoke 5s ease-in-out infinite; }
@keyframes tt1-glow { 0% { opacity:0.8; box-shadow: 0 0 20px 10px #ff9933; } 50% { opacity:1; box-shadow: 0 0 30px 15px #ffcc66; } 100% { opacity:0.6; box-shadow: 0 0 15px 5px #ff9933; } }
@keyframes tt1-foot { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes tt1-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }
@keyframes tt1-wall { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.3; } }
@keyframes tt1-smoke { 0% { transform: translate(0,0) scale(1); opacity:0.5 } 50% { transform: translate(5px,-10px) scale(1.5); opacity:0.2 } 100% { transform: translate(0,0) scale(1); opacity:0.5 } }

/* scene: item-nightly-linen */
.scn-item-nightly-linen {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 30%, #3a2a4e 0%, transparent 70%);
}
.scn-item-nightly-linen .bed-frame { position: absolute; bottom: 10%; left: 10%; right: 10%; height: 40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 8px 16px rgba(0,0,0,0.5); }
.scn-item-nightly-linen .pillow { position: absolute; bottom: 30%; left: 20%; width: 40px; height: 20px; background: #4a3a2a; border-radius: 40% 40% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: inl-pillow 6s ease-in-out infinite; }
.scn-item-nightly-linen .linen { position: absolute; bottom: 25%; left: 15%; right: 15%; height: 15%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 10% 10% 5% 5%; animation: inl-linen 8s ease-in-out infinite; }
.scn-item-nightly-linen .tear-drop { position: absolute; width: 6px; height: 8px; background: radial-gradient(circle, #88aacc 0%, #446688 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; }
.scn-item-nightly-linen .tear-1 { bottom: 35%; left: 25%; animation: inl-drop 3s ease-in-out infinite; }
.scn-item-nightly-linen .tear-2 { bottom: 32%; left: 35%; animation: inl-drop 3.5s ease-in-out infinite 0.5s; }
.scn-item-nightly-linen .hand { position: absolute; bottom: 28%; left: 55%; width: 20px; height: 30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 40% 40%; transform: rotate(10deg); transform-origin: top; animation: inl-hand 4s ease-in-out infinite; }
.scn-item-nightly-linen .head { position: absolute; bottom: 30%; right: 20%; width: 20px; height: 25px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: inl-head 5s ease-in-out infinite; }
@keyframes inl-pillow { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes inl-linen { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes inl-drop { 0% { transform: translateY(0); opacity:0.8 } 50% { transform: translateY(5px); opacity:0.4 } 100% { transform: translateY(10px); opacity:0 } }
@keyframes inl-hand { 0% { transform: rotate(10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(10deg) } }
@keyframes inl-head { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }

/* scene: rape-aftermath-1 */
.scn-rape-aftermath-1 {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #2a1a2e 0%, transparent 70%);
}
.scn-rape-aftermath-1 .sky-bg { position: absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 80%); animation: ra1-sky 12s ease-in-out infinite alternate; }
.scn-rape-aftermath-1 .hound-body { position: absolute; bottom: 20%; left: 30%; width: 40px; height: 30px; background: #1a1a2a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: scaleX(0.8); }
.scn-rape-aftermath-1 .hound-head { position: absolute; bottom: 35%; left: 35%; width: 20px; height: 15px; background: #1a1a2a; border-radius: 50% 50% 30% 30%; transform: rotate(10deg); animation: ra1-head 4s ease-in-out infinite; }
.scn-rape-aftermath-1 .thief-shadow { position: absolute; bottom: 20%; right: 20%; width: 30px; height: 50px; background: rgba(0,0,0,0.6); border-radius: 40% 40% 30% 30%; transform: skewX(-10deg); animation: ra1-thief 7s ease-in-out infinite alternate; }
.scn-rape-aftermath-1 .drops { position: absolute; bottom: 15%; left: 25%; width: 4px; height: 10px; background: #446688; border-radius: 50%; box-shadow: 0 0 4px #446688; animation: ra1-drip 3s ease-in-out infinite; }
.scn-rape-aftermath-1 .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: #0a0a1a; }
@keyframes ra1-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ra1-head { 0% { transform: rotate(10deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(10deg) } 75% { transform: rotate(15deg) } 100% { transform: rotate(10deg) } }
@keyframes ra1-thief { 0% { transform: skewX(-10deg) translateX(0) } 50% { transform: skewX(-5deg) translateX(5px) } 100% { transform: skewX(-10deg) translateX(0) } }
@keyframes ra1-drip { 0% { transform: translateY(0); opacity:0.8 } 50% { transform: translateY(8px); opacity:0.4 } 100% { transform: translateY(16px); opacity:0 } }

.scn-tarquin-silent-wonder { background: linear-gradient(135deg, #3a2a20 0%, #1a1110 100%), radial-gradient(ellipse at 60% 20%, #e8c49a 0%, transparent 50%); }
.scn-tarquin-silent-wonder .bg-walls { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0px, rgba(60,40,30,.1) 40px, transparent 80px); }
.scn-tarquin-silent-wonder .bg-sunbeam { position:absolute; inset:0; background: linear-gradient(135deg, transparent 30%, rgba(232,196,154,.3) 35%, transparent 40%); clip-path: polygon(30% 0, 70% 0, 60% 100%, 20% 100%); animation: shift-beam-tsw 8s ease-in-out infinite alternate; }
.scn-tarquin-silent-wonder .tapestry { position:absolute; top:5%; left:15%; width:30%; height:60%; background: linear-gradient(180deg, #702243 0%, #4a142e 45%, #8a2a4a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-tarquin-silent-wonder .pillar-left { position:absolute; top:0; left:5%; width:8%; height:100%; background: linear-gradient(90deg, #5a4a3a 0%, #8a7a6a 30%, #4a3a2a 100%); box-shadow: 2px 0 10px rgba(0,0,0,.5); }
.scn-tarquin-silent-wonder .pillar-right { position:absolute; top:0; right:5%; width:8%; height:100%; background: linear-gradient(270deg, #5a4a3a 0%, #8a7a6a 30%, #4a3a2a 100%); box-shadow: -2px 0 10px rgba(0,0,0,.5); }
.scn-tarquin-silent-wonder .figure-tarquin { position:absolute; bottom:15%; left:55%; width:12%; height:40%; background: linear-gradient(180deg, #1a1512 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: breathe-fig-tsw 6s ease-in-out infinite; }
.scn-tarquin-silent-wonder .shadow-creep { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(0deg, rgba(10,10,10,.9) 0%, transparent 100%); animation: creep-up-tsw 12s ease-in-out infinite alternate; }
.scn-tarquin-silent-wonder .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 20% 30%, rgba(255,255,255,.2) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(255,255,255,.1) 0%, transparent 30%); filter: blur(2px); animation: float-dust-tsw 20s linear infinite; }
@keyframes shift-beam-tsw { 0% { opacity:.3; transform: skewX(-2deg) } 50% { opacity:.8; transform: skewX(0deg) } 100% { opacity:.4; transform: skewX(2deg) } }
@keyframes breathe-fig-tsw { 0% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-2px) } 100% { transform: scale(1) } }
@keyframes creep-up-tsw { 0% { height:15% } 50% { height:22% } 100% { height:18% } }
@keyframes float-dust-tsw { 0% { transform: translateY(0) translateX(0) } 50% { transform: translateY(-20px) translateX(10px) } 100% { transform: translateY(0) translateX(0) } }

.scn-earthly-saint-adored { background: linear-gradient(180deg, #fdf8f0 0%, #e8dccc 100%), radial-gradient(circle at 30% 30%, #fffef5 0%, transparent 60%); }
.scn-earthly-saint-adored .bg-warm { position:absolute; inset:0; background: linear-gradient(90deg, rgba(200,160,120,.1) 0%, transparent 50%, rgba(200,160,120,.2) 100%); }
.scn-earthly-saint-adored .halo { position:absolute; top:18%; left:30%; width:25%; height:25%; background: radial-gradient(circle, rgba(255,215,0,.4) 0%, rgba(255,215,0,.1) 40%, transparent 70%); border-radius:50%; animation: pulse-halo-esa 4s ease-in-out infinite alternate; }
.scn-earthly-saint-adored .figure-lucrece { position:absolute; bottom:12%; left:25%; width:18%; height:55%; background: linear-gradient(180deg, #f4e9d8 0%, #c8b8a0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: breathe-fig-esa 5s ease-in-out infinite; }
.scn-earthly-saint-adored .gown { position:absolute; bottom:8%; left:22%; width:24%; height:30%; background: linear-gradient(180deg, #b87878 0%, #8a5a5a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: inset 0 4px 10px rgba(0,0,0,.2); }
.scn-earthly-saint-adored .flowers { position:absolute; bottom:10%; left:15%; width:15%; height:15%; background: radial-gradient(circle at 30% 40%, #e88ca8 0%, transparent 40%), radial-gradient(circle at 70% 60%, #c8553d 0%, transparent 30%); animation: sway-flow-esa 7s ease-in-out infinite alternate; }
.scn-earthly-saint-adored .shadow-devil { position:absolute; bottom:5%; right:10%; width:20%; height:40%; background: linear-gradient(180deg, #2a2020 0%, #0a0a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom right; animation: creep-shadow-esa 10s ease-in-out infinite alternate; }
.scn-earthly-saint-adored .doves { position:absolute; top:10%; right:15%; width:8%; height:6%; background: radial-gradient(circle at 50% 50%, #ffffff 0%, #d0d0d0 100%); border-radius: 50% 50% 50% 0 / 40% 40% 60% 60%; animation: fly-dove-esa 15s ease-in-out infinite; }
.scn-earthly-saint-adored .light-rays { position:absolute; top:0; left:20%; width:60%; height:100%; background: linear-gradient(135deg, transparent 30%, rgba(255,255,255,.15) 35%, transparent 40%); clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); animation: shift-rays-esa 9s ease-in-out infinite alternate; }
@keyframes pulse-halo-esa { 0% { opacity:.6; transform: scale(.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.7; transform: scale(.95) } }
@keyframes breathe-fig-esa { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.02) translateY(-4px) } 100% { transform: scale(1) translateY(0) } }
@keyframes sway-flow-esa { 0% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(5deg) } }
@keyframes creep-shadow-esa { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.1) translateX(-5px) } 100% { opacity:.4; transform: scale(1) } }
@keyframes fly-dove-esa { 0% { transform: translate(0, 0) rotate(0deg) } 50% { transform: translate(-20px, -10px) rotate(-10deg) } 100% { transform: translate(0, 0) rotate(0deg) } }
@keyframes shift-rays-esa { 0% { opacity:.3; transform: skewX(-3deg) } 50% { opacity:.7; transform: skewX(0deg) } 100% { opacity:.4; transform: skewX(3deg) } }

.scn-tarquin-coloured-sin { background: linear-gradient(135deg, #2b161b 0%, #4a1e24 40%, #1a0f11 100%), radial-gradient(circle at 50% 40%, #5e1a1d 0%, transparent 60%); }
.scn-tarquin-coloured-sin .bg-crimson { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent 0px, rgba(0,0,0,.15) 2px, transparent 4px); }
.scn-tarquin-coloured-sin .collar { position:absolute; bottom:15%; left:25%; width:50%; height:20%; background: linear-gradient(180deg, #f0e8d8 0%, #d0c0a8 100%); border-radius: 0 0 50% 50% / 0 0 100% 100%; box-shadow: 0 8px 20px rgba(0,0,0,.6); z-index:2; }
.scn-tarquin-coloured-sin .face-mask { position:absolute; bottom:30%; left:25%; width:50%; height:40%; background: linear-gradient(180deg, #e8d0b0 0%, #c09878 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: shift-face-tcs 8s ease-in-out infinite; }
.scn-tarquin-coloured-sin .eye-wonder { position:absolute; bottom:55%; left:38%; width:10%; height:8%; background: radial-gradient(circle, #f0d080 0%, #806030 100%); border-radius: 50%; box-shadow: 0 0 20px 5px rgba(240,208,128,.4); animation: glare-eye-tcs 3s ease-in-out infinite alternate; z-index:3; }
.scn-tarquin-coloured-sin .eye-shadow { position:absolute; bottom:53%; left:37%; width:12%; height:12%; background: radial-gradient(circle, #1a1010 0%, transparent 100%); border-radius: 50%; opacity: .6; z-index:3; }
.scn-tarquin-coloured-sin .heart-sin { position:absolute; top:15%; left:45%; width:8%; height:8%; background: radial-gradient(circle, #a0461a 0%, #4a1e24 100%); border-radius: 50%; animation: pulse-heart-tcs 2s ease-in-out infinite; box-shadow: 0 0 15px 3px rgba(160,70,26,.3); }
.scn-tarquin-coloured-sin .dagger-hide { position:absolute; top:40%; right:15%; width:3%; height:18%; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius: 2px; transform: rotate(15deg); animation: glint-dagger-tcs 5s ease-in-out infinite alternate; }
.scn-tarquin-coloured-sin .vein-throb { position:absolute; top:45%; left:22%; width:6%; height:3%; background: radial-gradient(ellipse, #2b161b 0%, transparent 100%); border-radius: 50%; animation: throb-vein-tcs 4s ease-in-out infinite; }
@keyframes glare-eye-tcs { 0% { opacity:.7; transform: scale(1); box-shadow: 0 0 15px 3px rgba(240,208,128,.3) } 50% { opacity:1; transform: scale(1.2); box-shadow: 0 0 30px 8px rgba(240,208,128,.6) } 100% { opacity:.8; transform: scale(1); box-shadow: 0 0 20px 5px rgba(240,208,128,.4) } }
@keyframes pulse-heart-tcs { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.15); opacity:1 } 100% { transform: scale(1); opacity:.6 } }
@keyframes glint-dagger-tcs { 0% { opacity:.2; transform: rotate(10deg) translateX(0) } 50% { opacity:.8; transform: rotate(20deg) translateX(-5px) } 100% { opacity:.3; transform: rotate(10deg) translateX(0) } }
@keyframes shift-face-tcs { 0% { transform: translateX(0) } 50% { transform: translateX(-4px) } 100% { transform: translateX(0) } }
@keyframes throb-vein-tcs { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.7; transform: scale(1.3) } 100% { opacity:.3; transform: scale(1) } }

.scn-lucrece-naive-gaze { background: linear-gradient(180deg, #dce3f0 0%, #e8eef5 100%), radial-gradient(circle at 70% 40%, #ffffff 0%, transparent 50%); }
.scn-lucrece-naive-gaze .bg-window { position:absolute; top:5%; left:15%; width:70%; height:65%; background: linear-gradient(180deg, #b5c8d8 0%, #dce3f0 100%); border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%; box-shadow: inset 0 0 30px rgba(0,0,0,.05); }
.scn-lucrece-naive-gaze .drape-left { position:absolute; top:0; left:10%; width:20%; height:80%; background: linear-gradient(90deg, #c09878 0%, #e8d0b0 50%, #a07868 100%); border-radius: 0 40% 40% 0 / 0 60% 60% 0; animation: sway-drape-lng 8s ease-in-out infinite alternate; transform-origin: top left; }
.scn-lucrece-naive-gaze .drape-right { position:absolute; top:0; right:10%; width:20%; height:80%; background: linear-gradient(270deg, #c09878 0%, #e8d0b0 50%, #a07868 100%); border-radius: 40% 0 0 40% / 60% 0 0 60%; animation: sway-drape-lng 8s ease-in-out infinite alternate-reverse; transform-origin: top right; }
.scn-lucrece-naive-gaze .figure-reading { position:absolute; bottom:15%; left:35%; width:15%; height:45%; background: linear-gradient(180deg, #f4e9d8 0%, #d0c0a8 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: breathe-read-lng 6s ease-in-out infinite; }
.scn-lucrece-naive-gaze .book-open { position:absolute; bottom:18%; left:32%; width:20%; height:10%; background: linear-gradient(180deg, #fcf8f0 0%, #e8dccc 100%); border-radius: 5% 5% 20% 20% / 10% 10% 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,.15); animation: flutter-book-lng 10s ease-in-out infinite; }
.scn-lucrece-naive-gaze .sunbeam-soft { position:absolute; inset:0; background: linear-gradient(135deg, transparent 40%, rgba(255,255,255,.15) 45%, transparent 50%); clip-path: polygon(60% 0, 80% 0, 50% 100%, 30% 100%); animation: shift-beam-lng 12s ease-in-out infinite alternate; }
.scn-lucrece-naive-gaze .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 70% 60%, rgba(255,255,255,.3) 0%, transparent 30%), radial-gradient(circle at 40% 30%, rgba(255,255,255,.2) 0%, transparent 40%); filter: blur(2px); animation: float-dust-lng 25s linear infinite; }
.scn-lucrece-naive-gaze .windowsill { position:absolute; bottom:15%; left:10%; width:80%; height:8%; background: linear-gradient(180deg, #a08878 0%, #706060 100%); border-radius: 4px 4px 10px 10px; box-shadow: 0 8px 15px rgba(0,0,0,.2); }
@keyframes sway-drape-lng { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes breathe-read-lng { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.01) translateY(-3px) } 100% { transform: scale(1) translateY(0) } }
@keyframes flutter-book-lng { 0% { transform: scale(1) perspective(400px) rotateX(0deg) } 50% { transform: scale(1.02) perspective(400px) rotateX(2deg) } 100% { transform: scale(1) perspective(400px) rotateX(0deg) } }
@keyframes shift-beam-lng { 0% { opacity:.4; transform: translateX(0) } 50% { opacity:.7; transform: translateX(8px) } 100% { opacity:.5; transform: translateX(0) } }
@keyframes float-dust-lng { 0% { transform: translateY(0) translateX(0) } 50% { transform: translateY(-15px) translateX(5px) } 100% { transform: translateY(0) translateX(0) } }

/* invocation-night-9 */
.scn-invocation-night-9 {
  background: linear-gradient(180deg, #0b0b1a 0%, #1a1a3a 40%, #2a1a2a 70%, #1a0a0a 100%), radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, transparent 70%);
}
.scn-invocation-night-9 .i9-mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 60%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: i9-mist 20s ease-in-out infinite alternate;
}
.scn-invocation-night-9 .i9-figure {
  position: absolute; bottom: 30%; left: 50%;
  width: 60px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: i9-fig 6s ease-in-out infinite;
}
.scn-invocation-night-9 .i9-halo {
  position: absolute; bottom: 35%; left: 50%;
  width: 80px; height: 80px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(100,200,255,0.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: i9-halo 4s ease-in-out infinite alternate;
}
.scn-invocation-night-9 .i9-shadow {
  position: absolute; bottom: 25%; left: 40%;
  width: 40px; height: 20px;
  background: linear-gradient(180deg, #0a0a0a 0%, transparent 100%);
  border-radius: 50%;
  transform: rotate(15deg);
  animation: i9-shad 12s ease-in-out infinite;
}
.scn-invocation-night-9 .i9-speck {
  position: absolute; bottom: 50%; left: 30%;
  width: 4px; height: 4px;
  background: #a0d0ff;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #a0d0ff;
  animation: i9-speck 3s ease-in-out infinite;
}
@keyframes i9-mist { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes i9-fig { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(-1deg) translateY(0); } 75% { transform: translateX(-50%) rotate(3deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes i9-halo { 0% { opacity: 0.3; transform: translate(-50%,-50%) scale(0.9); } 50% { opacity: 0.6; transform: translate(-50%,-50%) scale(1.1); } 100% { opacity: 0.4; transform: translate(-50%,-50%) scale(1); } }
@keyframes i9-shad { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(20deg) scale(0.9); } 100% { transform: rotate(10deg) scale(1); } }
@keyframes i9-speck { 0% { transform: translate(0,0) scale(1); opacity: 0.8; } 50% { transform: translate(15px,-10px) scale(0.5); opacity: 0.4; } 100% { transform: translate(0,0) scale(1); opacity: 0.8; } }

/* invocation-night-10 */
.scn-invocation-night-10 {
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 50%, #2a1a1a 100%), radial-gradient(ellipse at 20% 80%, #1a2a1a 0%, transparent 60%);
}
.scn-invocation-night-10 .i10-room {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1a2a 0%, #2a1a2a 30%, #1a1a1a 100%);
  box-shadow: inset 0 0 50px #000;
  animation: i10-room 15s ease-in-out infinite alternate;
}
.scn-invocation-night-10 .i10-floor {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 20% 20% 0 0;
  animation: i10-flr 10s ease-in-out infinite;
}
.scn-invocation-night-10 .i10-chest {
  position: absolute; bottom: 15%; left: 30%;
  width: 80px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 4px 8px #000;
  animation: i10-chest 8s ease-in-out infinite;
}
.scn-invocation-night-10 .i10-man {
  position: absolute; bottom: 15%; left: 55%;
  width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: i10-man 6s ease-in-out infinite;
}
.scn-invocation-night-10 .i10-glow {
  position: absolute; bottom: 20%; left: 35%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,150,50,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: i10-glow 4s ease-in-out infinite alternate;
}
.scn-invocation-night-10 .i10-window {
  position: absolute; top: 20%; right: 20%;
  width: 30px; height: 40px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 10px #0a0a1a;
  animation: i10-window 12s ease-in-out infinite;
}
@keyframes i10-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes i10-flr { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes i10-chest { 0% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(0.5deg); } 100% { transform: rotate(0deg); } }
@keyframes i10-man { 0% { transform: translateX(-50%) rotate(2deg); } 30% { transform: translateX(-50%) rotate(-1deg) translateY(-2px); } 60% { transform: translateX(-50%) rotate(3deg) translateY(0); } 100% { transform: translateX(-50%) rotate(2deg); } }
@keyframes i10-glow { 0% { opacity: 0.4; transform: scale(0.8); } 50% { opacity: 0.7; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.9); } }
@keyframes i10-window { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

/* invocation-opportunity-1 */
.scn-invocation-opportunity-1 {
  background: linear-gradient(180deg, #0c0c18 0%, #181828 40%, #201818 70%, #0a0a0a 100%), radial-gradient(ellipse at 50% 80%, #1a1a2a 0%, transparent 80%);
}
.scn-invocation-opportunity-1 .o1-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1a2a 0%, #2a1a2a 50%, #1a1a1a 100%);
  animation: o1-wall 20s ease-in-out infinite alternate;
}
.scn-invocation-opportunity-1 .o1-floor {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 25%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  animation: o1-flr 12s ease-in-out infinite;
}
.scn-invocation-opportunity-1 .o1-old {
  position: absolute; bottom: 10%; left: 30%;
  width: 35px; height: 70px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: o1-old 8s ease-in-out infinite;
}
.scn-invocation-opportunity-1 .o1-young {
  position: absolute; bottom: 10%; left: 65%;
  width: 30px; height: 90px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: o1-young 6s ease-in-out infinite;
}
.scn-invocation-opportunity-1 .o1-lamp {
  position: absolute; bottom: 55%; left: 50%;
  width: 8px; height: 12px;
  background: #d0a050;
  border-radius: 50%;
  box-shadow: 0 0 20px 4px #d0a050;
  animation: o1-lamp 3s ease-in-out infinite alternate;
}
.scn-invocation-opportunity-1 .o1-shadow-old {
  position: absolute; bottom: 8%; left: 25%;
  width: 40px; height: 10px;
  background: rgba(0,0,0,0.7);
  border-radius: 50%;
  transform: rotate(-10deg);
  animation: o1-sho 10s ease-in-out infinite;
}
.scn-invocation-opportunity-1 .o1-shadow-young {
  position: absolute; bottom: 8%; left: 60%;
  width: 35px; height: 8px;
  background: rgba(0,0,0,0.7);
  border-radius: 50%;
  transform: rotate(5deg);
  animation: o1-shy 10s ease-in-out infinite reverse;
}
@keyframes o1-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes o1-flr { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes o1-old { 0% { transform: rotate(3deg) translateY(0); } 25% { transform: rotate(0deg) translateY(-2px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes o1-young { 0% { transform: rotate(-2deg) translateY(0); } 30% { transform: rotate(0deg) translateY(-1px); } 60% { transform: rotate(-3deg) translateY(0); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes o1-lamp { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes o1-sho { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-15deg) scale(0.9); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes o1-shy { 0% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(10deg) scale(0.8); } 100% { transform: rotate(5deg) scale(1); } }

/* invocation-opportunity-2 */
.scn-invocation-opportunity-2 {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #1a2a1a 70%, #0a1a0a 100%), radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, transparent 70%);
}
.scn-invocation-opportunity-2 .o2-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a1a1a 100%);
  animation: o2-sky 20s ease-in-out infinite alternate;
}
.scn-invocation-opportunity-2 .o2-ground {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 40%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 0 0;
  animation: o2-gnd 15s ease-in-out infinite;
}
.scn-invocation-opportunity-2 .o2-flower-l {
  position: absolute; bottom: 30%; left: 20%;
  width: 12px; height: 15px;
  background: radial-gradient(circle, #a05030 0%, #602010 100%);
  border-radius: 50% 50% 20% 20%;
  animation: o2-flw 5s ease-in-out infinite;
}
.scn-invocation-opportunity-2 .o2-flower-r {
  position: absolute; bottom: 35%; right: 25%;
  width: 10px; height: 12px;
  background: radial-gradient(circle, #a05030 0%, #602010 100%);
  border-radius: 50% 50% 20% 20%;
  animation: o2-flw 5s ease-in-out infinite 2.5s;
}
.scn-invocation-opportunity-2 .o2-serpent {
  position: absolute; bottom: 20%; left: 40%;
  width: 80px; height: 10px;
  background: linear-gradient(90deg, #2a1a0a 0%, #1a0a0a 100%);
  border-radius: 50%;
  transform: rotate(-10deg);
  animation: o2-serp 10s ease-in-out infinite;
}
.scn-invocation-opportunity-2 .o2-bird-a {
  position: absolute; top: 20%; left: 30%;
  width: 20px; height: 10px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-20deg);
  animation: o2-bird-a 8s linear infinite;
}
.scn-invocation-opportunity-2 .o2-bird-b {
  position: absolute; top: 15%; right: 20%;
  width: 15px; height: 8px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(15deg);
  animation: o2-bird-b 8s linear infinite;
}
.scn-invocation-opportunity-2 .o2-tree {
  position: absolute; bottom: 20%; left: 10%;
  width: 8px; height: 80px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: o2-tree 12s ease-in-out infinite;
}
@keyframes o2-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes o2-gnd { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes o2-flw { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(15deg) scale(0.9); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes o2-serp { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(10px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes o2-bird-a { 0% { transform: rotate(-20deg) translateX(0) translateY(0); } 25% { transform: rotate(-15deg) translateX(20px) translateY(-10px); } 50% { transform: rotate(-25deg) translateX(40px) translateY(0); } 75% { transform: rotate(-10deg) translateX(60px) translateY(-5px); } 100% { transform: rotate(-20deg) translateX(80px) translateY(0); } }
@keyframes o2-bird-b { 0% { transform: rotate(15deg) translateX(0) translateY(0); } 25% { transform: rotate(10deg) translateX(-15px) translateY(-8px); } 50% { transform: rotate(20deg) translateX(-30px) translateY(0); } 75% { transform: rotate(5deg) translateX(-45px) translateY(-4px); } 100% { transform: rotate(15deg) translateX(-60px) translateY(0); } }
@keyframes o2-tree { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }

.scn-maid-arrives {
  background: linear-gradient(180deg, #e8d8b8 0%, #b88a5a 60%, #4a3020 100%),
              radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 50%);
}
.scn-maid-arrives .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #c8a87a 0%, #e8d8b8 50%, #c8a87a 100%);
}
.scn-maid-arrives .window {
  position: absolute; top: 10%; right: 15%; width: 120px; height: 160px;
  background: radial-gradient(ellipse at center, #fff8e0 0%, #ffd8a0 70%);
  border: 8px solid #6a4a3a; border-radius: 4px;
  box-shadow: 0 0 60px rgba(255,248,224,0.6);
  animation: ma1-flicker 6s ease-in-out infinite;
}
.scn-maid-arrives .light-beam {
  position: absolute; top: 15%; right: 25%; width: 200px; height: 400px;
  background: linear-gradient(135deg, rgba(255,248,224,0.4) 0%, transparent 70%);
  transform: rotate(15deg); transform-origin: top right;
  animation: ma1-sway 8s ease-in-out infinite alternate;
}
.scn-maid-arrives .lady-seated {
  position: absolute; bottom: 25%; left: 30%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -10px 0 20px rgba(0,0,0,0.5);
  animation: ma1-breathe 4s ease-in-out infinite;
}
.scn-maid-arrives .maid-bowing {
  position: absolute; bottom: 22%; right: 20%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center; transform: rotate(10deg);
  animation: ma1-bow 5s ease-in-out infinite;
}
.scn-maid-arrives .floor-shadow {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 40px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.6) 40%, transparent 100%);
  filter: blur(8px);
  animation: ma1-shadow-shift 10s ease-in-out infinite alternate;
}
.scn-maid-arrives .dust {
  position: absolute; top: 30%; left: 50%; width: 4px; height: 4px;
  background: #fff; border-radius: 50%;
  box-shadow: 20px 40px 6px 2px rgba(255,248,224,0.6), -30px 80px 4px 1px rgba(255,248,224,0.4), 50px 150px 8px 3px rgba(255,248,224,0.5);
  animation: ma1-dust 15s linear infinite;
}

@keyframes ma1-flicker { 0%, 100% { opacity: 0.9; box-shadow: 0 0 50px rgba(255,248,224,0.5); } 30% { opacity: 1; box-shadow: 0 0 80px rgba(255,248,224,0.8); } 60% { opacity: 0.8; box-shadow: 0 0 30px rgba(255,248,224,0.3); } }
@keyframes ma1-sway { 0% { transform: rotate(12deg) scaleX(1); } 100% { transform: rotate(18deg) scaleX(0.95); } }
@keyframes ma1-breathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-2px); } }
@keyframes ma1-bow { 0%, 100% { transform: rotate(8deg); } 50% { transform: rotate(15deg); } }
@keyframes ma1-shadow-shift { 0% { transform: scaleX(1); opacity: 0.8; } 100% { transform: scaleX(1.2); opacity: 1; } }
@keyframes ma1-dust { 0% { transform: translateY(0) translateX(0); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translateY(200px) translateX(-40px); opacity: 0; } }

.scn-maid-weeps {
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 60%, #0a1a2a 100%),
              radial-gradient(ellipse at 50% 100%, #3a5a6a 0%, transparent 60%);
}
.scn-maid-weeps .bg-arch {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 0%, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% / 30% 30% 0 0;
  animation: mw2-arch-pulse 12s ease-in-out infinite alternate;
}
.scn-maid-weeps .weeper-left {
  position: absolute; bottom: 25%; left: 25%; width: 55px; height: 110px;
  background: linear-gradient(180deg, #5a6a7a 0%, #2a3a4a 100%);
  border-radius: 45% 55% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw2-weep 5s ease-in-out infinite;
}
.scn-maid-weeps .comforter-right {
  position: absolute; bottom: 22%; right: 25%; width: 60px; height: 115px;
  background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%);
  border-radius: 55% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw2-comfort 6s ease-in-out infinite;
}
.scn-maid-weeps .basin {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a5a6a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 -4px 10px rgba(100,150,200,0.3);
}
.scn-maid-weeps .droplet-1 {
  position: absolute; bottom: 40%; left: 30%; width: 4px; height: 8px;
  background: radial-gradient(circle, #a0c8e8 0%, transparent 100%);
  border-radius: 50%;
  animation: mw2-drop-1 4s ease-in infinite;
}
.scn-maid-weeps .droplet-2 {
  position: absolute; bottom: 40%; right: 35%; width: 4px; height: 8px;
  background: radial-gradient(circle, #a0c8e8 0%, transparent 100%);
  border-radius: 50%;
  animation: mw2-drop-2 5s ease-in infinite 2s;
}
.scn-maid-weeps .ripple {
  position: absolute; bottom: 18%; left: 50%; width: 10px; height: 10px;
  transform: translateX(-50%);
  background: transparent; border: 1px solid rgba(160,200,232,0.6); border-radius: 50%;
  animation: mw2-ripple 6s ease-out infinite 1s;
}

@keyframes mw2-arch-pulse { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes mw2-weep { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes mw2-comfort { 0%, 100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-1deg); } }
@keyframes mw2-drop-1 { 0% { transform: translateY(0); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translateY(60px); opacity: 0; } }
@keyframes mw2-drop-2 { 0% { transform: translateY(0); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translateY(70px); opacity: 0; } }
@keyframes mw2-ripple { 0% { transform: translateX(-50%) scale(1); opacity: 1; } 100% { transform: translateX(-50%) scale(10); opacity: 0; } }

.scn-women-victims {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 50%, #0a0a10 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a3a 0%, transparent 60%);
}
.scn-women-victims .bg-cave {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a10 0%, #1a101a 50%, #0a0a10 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  animation: wv3-cave-pulse 20s ease-in-out infinite alternate;
}
.scn-women-victims .skin-ground {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #c8b8a8 0%, #8a7a6a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-women-victims .worm-creep-1 {
  position: absolute; bottom: 35%; left: 20%; width: 30px; height: 6px;
  background: linear-gradient(90deg, #4a3a2a, #6a4a3a, #4a3a2a);
  border-radius: 50%; filter: blur(1px);
  animation: wv3-worm-1 7s linear infinite;
}
.scn-women-victims .worm-creep-2 {
  position: absolute; bottom: 30%; right: 25%; width: 25px; height: 5px;
  background: linear-gradient(90deg, #3a4a3a, #5a6a4a, #3a4a3a);
  border-radius: 50%; filter: blur(1px);
  animation: wv3-worm-2 9s linear infinite -3s;
}
.scn-women-victims .evil-eyes {
  position: absolute; top: 20%; left: 50%; width: 40px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 30% 50%, #8a7a3a 0%, transparent 30%),
              radial-gradient(circle at 70% 50%, #8a7a3a 0%, transparent 30%);
  animation: wv3-blink 6s ease-in-out infinite;
}
.scn-women-victims .evil-mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(20,30,20,0.4) 100%);
  animation: wv3-mist 15s ease-in-out infinite alternate;
}
.scn-women-victims .veil {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 50%;
  background: linear-gradient(180deg, rgba(200,180,160,0.15) 0%, rgba(200,180,160,0.05) 100%);
  clip-path: polygon(20% 0%, 80% 0%, 70% 100%, 30% 100%);
  filter: blur(4px);
  animation: wv3-veil-drift 18s ease-in-out infinite alternate;
}

@keyframes wv3-cave-pulse { 0% { transform: scale(1); } 100% { transform: scale(1.02); } }
@keyframes wv3-worm-1 { 0% { transform: translateX(0) rotate(0deg); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translateX(-80px) rotate(15deg); opacity: 0; } }
@keyframes wv3-worm-2 { 0% { transform: translateX(0) rotate(0deg); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translateX(80px) rotate(-15deg); opacity: 0; } }
@keyframes wv3-blink { 0%, 90%, 100% { transform: translateX(-50%) scaleY(1); opacity: 0.6; } 95% { transform: translateX(-50%) scaleY(0.1); opacity: 0.2; } }
@keyframes wv3-mist { 0% { opacity: 0.3; } 100% { opacity: 0.8; } }
@keyframes wv3-veil-drift { 0% { transform: translateX(-5%) skewX(2deg); } 100% { transform: translateX(5%) skewX(-2deg); } }

.scn-lucrece-speaks-to-maid {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 50%, #5a3a2a 0%, transparent 70%);
}
.scn-lucrece-speaks-to-maid .bg-room {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, #1a0a00 100%);
  animation: ls4-shadow-slow 20s ease-in-out infinite alternate;
}
.scn-lucrece-speaks-to-maid .candle {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8d8b8 0%, #c8a87a 40%, #8a6a4a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 60px 20px rgba(200,168,122,0.6), 0 0 120px 40px rgba(200,168,122,0.3);
  animation: ls4-candle-glow 4s ease-in-out infinite alternate;
}
.scn-lucrece-speaks-to-maid .lucrece {
  position: absolute; bottom: 20%; left: 25%; width: 70px; height: 130px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 40%;
  transform-origin: bottom center;
  animation: ls4-lean 6s ease-in-out infinite alternate;
}
.scn-lucrece-speaks-to-maid .maid {
  position: absolute; bottom: 20%; right: 25%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 40% 50%;
  transform-origin: bottom center;
  animation: ls4-listen 8s ease-in-out infinite alternate;
}
.scn-lucrece-speaks-to-maid .tear-glow-1 {
  position: absolute; bottom: 40%; right: 35%; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffd8a0 0%, transparent 100%);
  border-radius: 50%;
  animation: ls4-tear-1 5s ease-in infinite;
}
.scn-lucrece-speaks-to-maid .tear-glow-2 {
  position: absolute; bottom: 35%; right: 28%; width: 4px; height: 8px;
  background: radial-gradient(circle, #ffd8a0 0%, transparent 100%);
  border-radius: 50%;
  animation: ls4-tear-2 6s ease-in infinite 1.5s;
}
.scn-lucrece-speaks-to-maid .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 15px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 20px rgba(0,0,0,0.6);
}

@keyframes ls4-shadow-slow { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes ls4-candle-glow { 0% { box-shadow: 0 0 50px 15px rgba(200,168,122,0.5), 0 0 100px 30px rgba(200,168,122,0.2); } 50% { box-shadow: 0 0 70px 25px rgba(200,168,122,0.7), 0 0 140px 50px rgba(200,168,122,0.4); } 100% { box-shadow: 0 0 60px 20px rgba(200,168,122,0.6), 0 0 120px 40px rgba(200,168,122,0.3); } }
@keyframes ls4-lean { 0% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(-5px) rotate(3deg); } }
@keyframes ls4-listen { 0% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes ls4-tear-1 { 0% { transform: translateY(0); opacity: 0; } 10% { opacity: 0.8; } 90% { opacity: 0.8; } 100% { transform: translateY(40px); opacity: 0; } }
@keyframes ls4-tear-2 { 0% { transform: translateY(0); opacity: 0; } 10% { opacity: 0.8; } 90% { opacity: 0.8; } 100% { transform: translateY(50px); opacity: 0; } }

.scn-painting-greek-commanders {
  background: linear-gradient(180deg, #2a1a0e 0%, #3d2a1a 40%, #4d3724 100%), radial-gradient(ellipse at 50% 0%, #6b4a2a 0%, transparent 70%);
}
.scn-painting-greek-commanders .wall-gc {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1e130a 0%, #2a1a0e 50%, #3a2514 100%);
  animation: gc-wall 20s ease-in-out infinite alternate;
}
.scn-painting-greek-commanders .floor-gc {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a0e08 0%, #2a1a0e 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.6);
}
.scn-painting-greek-commanders .table-gc {
  position: absolute; bottom: 28%; left: 50%; width: 40%; height: 16%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #4a3522 0%, #3a2514 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-painting-greek-commanders .commander-gc {
  position: absolute; bottom: 32%; left: 35%; width: 12%; height: 40%;
  background: linear-gradient(90deg, #3d2a1a 0%, #5a3d2a 30%, #4a3522 70%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gc-commander 6s ease-in-out infinite alternate;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
}
.scn-painting-greek-commanders .coward-gc {
  position: absolute; bottom: 30%; left: 58%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: gc-coward 8s ease-in-out infinite alternate;
  box-shadow: 4px 0 6px rgba(0,0,0,0.4);
}
.scn-painting-greek-commanders .brazier-gc {
  position: absolute; bottom: 30%; left: 48%; width: 6%; height: 10%;
  background: radial-gradient(circle, #c88a40 0%, #a06020 40%, #5a3010 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 0 20px 10px rgba(200,138,64,0.6), 0 0 40px 20px rgba(200,138,64,0.3);
  animation: gc-brazier 4s ease-in-out infinite alternate;
}
.scn-painting-greek-commanders .smoke-gc {
  position: absolute; bottom: 38%; width: 8%; height: 8%;
  background: rgba(180,160,140,0.15);
  border-radius: 50%;
  filter: blur(8px);
}
.scn-painting-greek-commanders .smoke-gc-a {
  left: 50%; animation: gc-smoke-a 12s ease-in-out infinite;
}
.scn-painting-greek-commanders .smoke-gc-b {
  left: 55%; animation: gc-smoke-b 14s ease-in-out infinite 2s;
}
@keyframes gc-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes gc-commander {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gc-coward {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-3px) scaleY(0.95); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes gc-brazier {
  0% { box-shadow: 0 0 15px 8px rgba(200,138,64,0.5), 0 0 30px 15px rgba(200,138,64,0.2); }
  50% { box-shadow: 0 0 25px 14px rgba(200,138,64,0.7), 0 0 50px 25px rgba(200,138,64,0.35); }
  100% { box-shadow: 0 0 18px 10px rgba(200,138,64,0.55), 0 0 35px 18px rgba(200,138,64,0.25); }
}
@keyframes gc-smoke-a {
  0% { transform: translate(0,0) scale(1); opacity: 0.3; }
  50% { transform: translate(10px,-20px) scale(1.5); opacity: 0.1; }
  100% { transform: translate(20px,-40px) scale(2); opacity: 0; }
}
@keyframes gc-smoke-b {
  0% { transform: translate(0,0) scale(1); opacity: 0.3; }
  50% { transform: translate(-8px,-15px) scale(1.3); opacity: 0.15; }
  100% { transform: translate(-15px,-30px) scale(1.8); opacity: 0; }
}

.scn-painting-ajax-ulysses {
  background: linear-gradient(180deg, #1e140e 0%, #2a1e14 40%, #3d2a1a 100%), radial-gradient(ellipse at 50% 20%, #4a3522 0%, transparent 60%);
}
.scn-painting-ajax-ulysses .backdrop-au {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a120c 0%, #2a1e14 50%, #3a2a1a 100%);
  animation: au-backdrop 25s ease-in-out infinite alternate;
}
.scn-painting-ajax-ulysses .floor-au {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #140a06 0%, #2a1a0e 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-painting-ajax-ulysses .column-au {
  position: absolute; bottom: 30%; left: 50%; width: 6%; height: 70%;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4030 30%, #4a3522 70%, #2a1a0e 100%);
  border-radius: 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-painting-ajax-ulysses .ajax-au {
  position: absolute; bottom: 30%; left: 25%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #3d2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: au-ajax 7s ease-in-out infinite alternate;
  box-shadow: inset -2px 0 6px rgba(0,0,0,0.3);
}
.scn-painting-ajax-ulysses .ulysses-au {
  position: absolute; bottom: 30%; left: 55%; width: 18%; height: 52%;
  background: linear-gradient(180deg, #4a3522 0%, #2a1a0e 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: au-ulysses 9s ease-in-out infinite alternate;
  box-shadow: inset 2px 0 6px rgba(0,0,0,0.2);
}
.scn-painting-ajax-ulysses .candle-au {
  position: absolute; bottom: 36%; left: 48%; width: 2%; height: 4%;
  background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 0 0 12px 6px rgba(192,128,64,0.6), 0 0 24px 12px rgba(192,128,64,0.3);
  animation: au-candle 5s ease-in-out infinite alternate;
}
.scn-painting-ajax-ulysses .ray-au {
  position: absolute; bottom: 38%; height: 2%;
  background: rgba(200,160,100,0.08);
  filter: blur(4px);
  animation: au-ray 10s linear infinite;
}
.scn-painting-ajax-ulysses .ray-au-a {
  left: 45%; width: 8%; transform: rotate(10deg);
}
.scn-painting-ajax-ulysses .ray-au-b {
  left: 50%; width: 6%; transform: rotate(-8deg);
  animation-delay: 5s;
}
@keyframes au-backdrop {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes au-ajax {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes au-ulysses {
  0% { transform: translateX(0) rotate(-1deg) scaleX(1); }
  50% { transform: translateX(2px) rotate(0deg) scaleX(0.98); }
  100% { transform: translateX(0) rotate(1deg) scaleX(1); }
}
@keyframes au-candle {
  0% { box-shadow: 0 0 10px 4px rgba(192,128,64,0.5), 0 0 20px 10px rgba(192,128,64,0.2); }
  50% { box-shadow: 0 0 16px 8px rgba(192,128,64,0.7), 0 0 32px 16px rgba(192,128,64,0.35); }
  100% { box-shadow: 0 0 12px 5px rgba(192,128,64,0.55), 0 0 24px 12px rgba(192,128,64,0.25); }
}
@keyframes au-ray {
  0% { opacity: 0; transform: translateY(0) scaleY(1); }
  50% { opacity: 0.2; transform: translateY(20px) scaleY(2); }
  100% { opacity: 0; transform: translateY(40px) scaleY(3); }
}

/* painting-lamentable-objects */
.scn-painting-lamentable-objects {
  background: 
    linear-gradient(180deg, #1a1210 0%, #2c1e1a 40%, #3d2a22 70%, #1e1410 100%),
    radial-gradient(ellipse at 50% 60%, #3d2a22 0%, #1a1210 80%);
}
.scn-painting-lamentable-objects .bg {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0f0a08 0%, #2a1e18 100%);
  animation: plo-bg 20s ease-in-out infinite alternate;
}
.scn-painting-lamentable-objects .table {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #4a3528 0%, #2c1a10 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,.6);
  animation: plo-table 8s ease-in-out infinite;
}
.scn-painting-lamentable-objects .bowl {
  position: absolute; bottom: 33%; left: 38%; width: 14%; height: 10%;
  background: radial-gradient(circle at 40% 40%, #5e3a2a 0%, #3a2015 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 4px 6px rgba(0,0,0,.5);
  animation: plo-bowl 6s ease-in-out infinite;
}
.scn-painting-lamentable-objects .candle {
  position: absolute; bottom: 36%; left: 55%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #f0d080 0%, #c08a40 60%, #6a4020 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 0 20px 8px #d09040, 0 0 40px 16px rgba(208,144,64,.3);
  transform-origin: bottom center;
  animation: plo-candle 3s ease-in-out infinite alternate;
}
.scn-painting-lamentable-objects .woman {
  position: absolute; bottom: 25%; right: 28%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: scaleX(-1);
  animation: plo-woman 9s ease-in-out infinite;
}
.scn-painting-lamentable-objects .tear {
  position: absolute; bottom: 58%; right: 34%; width: 2%; height: 8%;
  background: radial-gradient(circle, rgba(180,220,255,.6) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40%;
  filter: blur(1px);
  animation: plo-tear 4s ease-in-out infinite;
}
.scn-painting-lamentable-objects .blood {
  position: absolute; bottom: 25%; left: 42%; width: 10%; height: 5%;
  background: radial-gradient(circle, #803020 0%, #4a1a0a 70%, transparent 100%);
  border-radius: 40% 60% 30% 50%;
  animation: plo-blood 12s ease-in-out infinite alternate;
}
@keyframes plo-bg { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes plo-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes plo-bowl { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } }
@keyframes plo-candle { 0% { transform: scaleY(1) rotate(-1deg); opacity: .9; } 50% { transform: scaleY(1.02) rotate(1deg); opacity: 1; } 100% { transform: scaleY(1) rotate(0deg); opacity: .85; } }
@keyframes plo-woman { 0% { transform: scaleX(-1) translateY(0) rotate(0deg); } 50% { transform: scaleX(-1) translateY(-3px) rotate(-2deg); } 100% { transform: scaleX(-1) translateY(0) rotate(0deg); } }
@keyframes plo-tear { 0% { transform: translateY(0) scale(1); opacity: .6; } 50% { transform: translateY(10px) scale(0.8); opacity: 1; } 100% { transform: translateY(20px) scale(0.5); opacity: 0; } }
@keyframes plo-blood { 0% { transform: scale(1) rotate(0deg); opacity: .7; } 50% { transform: scale(1.1) rotate(3deg); opacity: 1; } 100% { transform: scale(0.95) rotate(0deg); opacity: .8; } }

/* painting-trojan-towers */
.scn-painting-trojan-towers {
  background: 
    linear-gradient(180deg, #121010 0%, #1a1512 50%, #0f0b08 100%),
    radial-gradient(ellipse at 50% 80%, #1a1512 0%, #0a0806 100%);
}
.scn-painting-trojan-towers .bg-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #1a1a1a 0%, #0f0b08 70%, transparent 100%);
  animation: ptt-sky 30s ease-in-out infinite alternate;
}
.scn-painting-trojan-towers .tower-left {
  position: absolute; bottom: 25%; left: 8%; width: 22%; height: 55%;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%);
  border-radius: 8% 8% 4% 4% / 20% 20% 4% 4%;
  box-shadow: inset -2px 0 6px rgba(0,0,0,.8), 2px 0 4px rgba(0,0,0,.5);
  animation: ptt-tower-left 20s ease-in-out infinite;
}
.scn-painting-trojan-towers .tower-right {
  position: absolute; bottom: 25%; right: 8%; width: 22%; height: 45%;
  background: linear-gradient(180deg, #34281e 0%, #1a120c 100%);
  border-radius: 8% 8% 4% 4% / 20% 20% 4% 4%;
  box-shadow: inset 2px 0 6px rgba(0,0,0,.8), -2px 0 4px rgba(0,0,0,.5);
  animation: ptt-tower-right 25s ease-in-out infinite;
}
.scn-painting-trojan-towers .wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a201a 0%, #1a100c 100%);
  border-radius: 4% 4% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.7);
  animation: ptt-wall 15s ease-in-out infinite alternate;
}
.scn-painting-trojan-towers .loophole {
  position: absolute; bottom: 20%; left: 44%; width: 12%; height: 6%;
  background: radial-gradient(ellipse, #2a221c 0%, #0f0b08 100%);
  border: 2px solid #1a120c;
  border-radius: 50%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.9);
  animation: ptt-loophole 5s ease-in-out infinite alternate;
}
.scn-painting-trojan-towers .figure {
  position: absolute; bottom: 19%; left: 45%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ptt-figure 7s ease-in-out infinite;
}
.scn-painting-trojan-towers .dust {
  position: absolute; top: 15%; left: 30%; width: 5%; height: 5%;
  background: radial-gradient(circle, rgba(120,100,80,.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ptt-dust 40s linear infinite;
}
.scn-painting-trojan-towers .dust::after {
  content: '';
  position: absolute; top: 60%; left: -50%; width: 120%; height: 120%;
  background: radial-gradient(circle, rgba(120,100,80,.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ptt-dust 50s linear infinite reverse;
  animation-delay: -15s;
}
@keyframes ptt-sky { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .5; } }
@keyframes ptt-tower-left { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes ptt-tower-right { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes ptt-wall { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.02); } }
@keyframes ptt-loophole { 0% { transform: scaleX(1); opacity: .8; } 50% { transform: scaleX(1.1); opacity: 1; } 100% { transform: scaleX(1); opacity: .9; } }
@keyframes ptt-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ptt-dust { 0% { transform: translate(0,0) scale(1); opacity: 0; } 20% { opacity: 1; } 100% { transform: translate(60px, -40px) scale(2); opacity: 0; } }

.scn-tarquin-dotes-on-sight {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 40%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 100%, #6a3a1a 0%, transparent 70%);
}

.scn-tarquin-dotes-on-sight .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}

.scn-tarquin-dotes-on-sight .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a0a00 0%, #2a1a0a 100%);
  box-shadow: inset 0 -4px 12px rgba(0,0,0,.5);
}

.scn-tarquin-dotes-on-sight .fire {
  position: absolute; bottom: 35%; left: 20%; width: 40px; height: 60px;
  background: radial-gradient(circle at 50% 100%, #ff8020 0%, #b04010 40%, #2a0a00 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 12px #b04010, 0 0 60px 24px rgba(180,64,16,.4);
  animation: tq1-fire 2s ease-in-out infinite alternate;
}

.scn-tarquin-dotes-on-sight .bed {
  position: absolute; bottom: 20%; left: 45%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.7);
}

.scn-tarquin-dotes-on-sight .sleeping-figure {
  position: absolute; bottom: 23%; left: 48%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #d8c8b8 0%, #b8a090 100%);
  border-radius: 50% 30% 40% 50% / 50% 40% 40% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: tq1-breath 4s ease-in-out infinite;
}

.scn-tarquin-dotes-on-sight .tarquin-silhouette {
  position: absolute; bottom: 20%; left: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 70%, #2a1a0a 100%);
  border-radius: 50% 40% 20% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: tq1-gaze 6s ease-in-out infinite;
}

.scn-tarquin-dotes-on-sight .candle {
  position: absolute; bottom: 32%; right: 30%; width: 6px; height: 14px;
  background: linear-gradient(0deg, #d0a080 0%, #f0d0a0 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 12px 4px #f0d0a0;
  animation: tq1-flicker 1.5s ease-in-out infinite alternate;
}

@keyframes tq1-fire {
  0% { transform: scaleY(1) translateY(0); opacity: .9; }
  50% { transform: scaleY(1.1) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(0); opacity: .8; }
}

@keyframes tq1-breath {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}

@keyframes tq1-gaze {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

@keyframes tq1-flicker {
  0% { opacity: .6; transform: scaleY(1); }
  100% { opacity: 1; transform: scaleY(1.1); }
}

.scn-grim-lion-fawns {
  background:
    linear-gradient(180deg, #1a0505 0%, #3a1010 40%, #0a0000 100%),
    radial-gradient(ellipse at 50% 80%, #5e1a1d 0%, transparent 60%);
}

.scn-grim-lion-fawns .bg-void {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 60%, #2a0a0a 0%, transparent 60%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.8);
}

.scn-grim-lion-fawns .firepit {
  position: absolute; bottom: 30%; left: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle at 50% 100%, #c04010 0%, #701010 40%, #2a0505 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #a03010, 0 0 80px 40px rgba(160,48,16,.4);
  animation: glf-fire 1.8s ease-in-out infinite alternate;
}

.scn-grim-lion-fawns .bed {
  position: absolute; bottom: 15%; left: 40%; width: 130px; height: 45px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 6% 6% 3% 3%;
  box-shadow: 0 6px 14px rgba(0,0,0,.7);
}

.scn-grim-lion-fawns .sleeping-form {
  position: absolute; bottom: 18%; left: 43%; width: 55px; height: 35px;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89080 100%);
  border-radius: 50% 40% 40% 50% / 50% 45% 45% 50%;
  box-shadow: inset 0 -2px 8px rgba(0,0,0,.4);
  animation: glf-breath 4.5s ease-in-out infinite;
}

.scn-grim-lion-fawns .lion-shadow {
  position: absolute; bottom: 25%; right: 15%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, #1a0a0a 0%, #0a0000 70%);
  border-radius: 40% 30% 20% 50% / 50% 40% 30% 40%;
  filter: blur(4px);
  clip-path: polygon(30% 0%, 70% 0%, 100% 50%, 80% 100%, 20% 100%, 0% 50%);
  animation: glf-lion 8s ease-in-out infinite;
}

.scn-grim-lion-fawns .tarquin-figure {
  position: absolute; bottom: 10%; left: 25%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #0a0505 0%, #151010 70%, #201010 100%);
  border-radius: 40% 30% 20% 20% / 60% 50% 30% 40%;
  transform-origin: bottom center;
  animation: glf-stance 6s ease-in-out infinite;
}

.scn-grim-lion-fawns .ember {
  position: absolute; bottom: 35%; left: 20%; width: 4px; height: 4px;
  background: #ff8020;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ff6020;
  animation: glf-ember 3s ease-in-out infinite;
}

@keyframes glf-fire {
  0% { transform: scale(1) translateY(0); opacity: .85; }
  50% { transform: scale(1.15) translateY(-3px); opacity: 1; }
  100% { transform: scale(0.9) translateY(0); opacity: .75; }
}

@keyframes glf-breath {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1.5px) scale(1.03); }
  100% { transform: translateY(0) scale(1); }
}

@keyframes glf-lion {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}

@keyframes glf-stance {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(1px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

@keyframes glf-ember {
  0% { transform: translate(0, 0) scale(1); opacity: .6; }
  50% { transform: translate(2px, -4px) scale(1.2); opacity: 1; }
  100% { transform: translate(-2px, -8px) scale(0.8); opacity: 0; }
}

/* straggling-slaves-pillaging */
.scn-straggling-slaves-pillaging { background: linear-gradient(180deg,#2a1a0a,#4a2a1a 50%,#1a0a0a), radial-gradient(ellipse at 30% 60%,#8a3a1a 0%,transparent 60%); }
.scn-straggling-slaves-pillaging .smoke-bg { position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,rgba(200,100,50,.3)0%,transparent 70%);animation:sp-smoke 20s ease-in-out infinite; }
.scn-straggling-slaves-pillaging .fire-glow { position:absolute;bottom:20%;left:30%;width:100px;height:100px;background:radial-gradient(circle,#d08020 0%,#a04010 30%,transparent 70%);animation:sp-fire 2s ease-in-out infinite alternate; }
.scn-straggling-slaves-pillaging .warrior-left { position:absolute;bottom:25%;left:20%;width:30px;height:60px;background:linear-gradient(180deg,#0a0a0a,#1a1a1a);border-radius:40% 40% 30% 30%/60% 60% 40% 40%;transform-origin:bottom center;animation:sp-fight 4s ease-in-out infinite; }
.scn-straggling-slaves-pillaging .warrior-right { position:absolute;bottom:25%;right:20%;width:30px;height:60px;background:linear-gradient(180deg,#0a0a0a,#1a1a1a);border-radius:40% 40% 30% 30%/60% 60% 40% 40%;transform-origin:bottom center;animation:sp-fight-rev 4s ease-in-out infinite; }
.scn-straggling-slaves-pillaging .spear { position:absolute;bottom:45%;left:38%;width:4px;height:50px;background:linear-gradient(180deg,#5a3a1a,#3a2a0a);transform-origin:bottom;animation:sp-spear 3s ease-in-out infinite; }
.scn-straggling-slaves-pillaging .ground { position:absolute;bottom:0;left:0;right:0;height:25%;background:linear-gradient(0deg,#1a0a0a,#2a1a0a);border-radius:0 100% 0 0/0 50% 0 0; }
@keyframes sp-smoke { 0%{opacity:.8;transform:translateX(0)} 50%{opacity:1;transform:translateX(-10px) scale(1.1)} 100%{opacity:.7;transform:translateX(5px)} }
@keyframes sp-fire { 0%{transform:scale(1) rotate(0);box-shadow:0 0 30px 10px #d08020} 50%{transform:scale(1.1) rotate(3deg);box-shadow:0 0 50px 20px #e09030} 100%{transform:scale(.95) rotate(-2deg);box-shadow:0 0 20px 5px #b06010} }
@keyframes sp-fight { 0%{transform:translateX(0) rotate(0)} 25%{transform:translateX(5px) rotate(10deg)} 50%{transform:translateX(0) rotate(-5deg)} 75%{transform:translateX(-5px) rotate(5deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes sp-fight-rev { 0%{transform:translateX(0) rotate(0)} 25%{transform:translateX(-5px) rotate(-10deg)} 50%{transform:translateX(0) rotate(5deg)} 75%{transform:translateX(5px) rotate(-5deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes sp-spear { 0%{transform:translateY(0) rotate(-5deg)} 30%{transform:translateY(-10px) rotate(0)} 60%{transform:translateY(5px) rotate(5deg)} 100%{transform:translateY(0) rotate(-5deg)} }

/* drumming-heart-cheers */
.scn-drumming-heart-cheers { background: linear-gradient(135deg,#1a0a0a 0%,#2a1510 50%,#3a1a10 100%), radial-gradient(ellipse at 50% 60%,#8a4030 0%,transparent 70%); }
.scn-drumming-heart-cheers .chest { position:absolute;bottom:30%;left:50%;width:150px;height:120px;transform:translateX(-50%);background:linear-gradient(180deg,#4a2a1a,#2a1510);border-radius:30% 30% 20% 20%/40% 40% 30% 30%; }
.scn-drumming-heart-cheers .heart { position:absolute;bottom:40%;left:50%;width:40px;height:40px;transform:translateX(-50%);background:radial-gradient(circle,#6a3a2a,#3a1a0a);border-radius:50% 50% 50% 50% / 40% 40% 60% 60%;animation:dhc-heart 1s ease-in-out infinite; }
.scn-drumming-heart-cheers .hand { position:absolute;bottom:50%;left:20%;width:50px;height:80px;background:linear-gradient(180deg,#1a1a1a,#0a0a0a);border-radius:40% 40% 30% 30% / 60% 60% 40% 40%;transform-origin:bottom left;animation:dhc-hand 6s ease-in-out infinite; }
.scn-drumming-heart-cheers .vein { position:absolute;bottom:38%;left:45%;width:2px;height:60px;background:linear-gradient(0deg,#335a6a,#2a4a5a);border-radius:50%;transform:rotate(-15deg);animation:dhc-vein 2s ease-in-out infinite; }
.scn-drumming-heart-cheers .glow { position:absolute;bottom:40%;left:50%;width:80px;height:80px;transform:translateX(-50%);background:radial-gradient(circle,rgba(200,100,50,.4)0%,transparent 70%);animation:dhc-glow 2s ease-in-out infinite alternate; }
.scn-drumming-heart-cheers .spark { position:absolute;bottom:60%;left:45%;width:6px;height:6px;background:radial-gradient(circle,#d08020,transparent);border-radius:50%;animation:dhc-spark 4s linear infinite; }
@keyframes dhc-heart { 0%{transform:translateX(-50%) scale(1);opacity:.9} 50%{transform:translateX(-50%) scale(1.2);opacity:1} 100%{transform:translateX(-50%) scale(1);opacity:.85} }
@keyframes dhc-hand { 0%{transform:translateX(0) translateY(0) rotate(5deg)} 25%{transform:translateX(20px) translateY(-5px) rotate(0)} 50%{transform:translateX(40px) translateY(0) rotate(-5deg)} 75%{transform:translateX(60px) translateY(-3px) rotate(2deg)} 100%{transform:translateX(80px) translateY(0) rotate(5deg)} }
@keyframes dhc-vein { 0%{opacity:.6;transform:rotate(-15deg) scaleY(1)} 50%{opacity:1;transform:rotate(-15deg) scaleY(1.2)} 100%{opacity:.6;transform:rotate(-15deg) scaleY(1)} }
@keyframes dhc-glow { 0%{opacity:.6;transform:translateX(-50%) scale(1)} 50%{opacity:1;transform:translateX(-50%) scale(1.3)} 100%{opacity:.5;transform:translateX(-50%) scale(1)} }
@keyframes dhc-spark { 0%{transform:translateY(0) rotate(0);opacity:0} 10%{opacity:1} 30%{transform:translateY(-20px) rotate(90deg);opacity:1} 50%{transform:translateY(-40px) rotate(180deg);opacity:.5} 100%{transform:translateY(-80px) rotate(360deg);opacity:0} }

.scn-painting-lamentable-objects {
  background: 
    linear-gradient(180deg, #1a1110 0%, #0f0808 50%, #0a0505 100%),
    radial-gradient(ellipse at 50% 90%, #1a1010 0%, transparent 70%);
}
.scn-painting-lamentable-objects .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(160deg, rgba(30,18,18,.4) 0%, transparent 60%);
  animation: plo-shadow 12s ease-in-out infinite alternate;
}
.scn-painting-lamentable-objects .table {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.7);
}
.scn-painting-lamentable-objects .skull {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 70px;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 60%, #1a0e08 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6), inset 0 -10px 30px rgba(0,0,0,.4);
  animation: plo-skull 6s ease-in-out infinite;
}
.scn-painting-lamentable-objects .eye {
  position: absolute; bottom: 35%; width: 8px; height: 6px;
  background: radial-gradient(circle, #c8553d 0%, #5e1a1d 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(200,85,61,.3);
  animation: plo-eye 4s ease-in-out infinite alternate;
}
.scn-painting-lamentable-objects .eye.left  { left: 44%; }
.scn-painting-lamentable-objects .eye.right { left: 51%; }
.scn-painting-lamentable-objects .tear {
  position: absolute; width: 6px; height: 9px;
  background: linear-gradient(180deg, rgba(200,200,220,.6) 0%, rgba(150,150,180,.2) 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  opacity: .6;
  animation: plo-tear 5s ease-in-out infinite;
}
.scn-painting-lamentable-objects .tear-1 { bottom: 28%; left: 43%; animation-delay: 0s; }
.scn-painting-lamentable-objects .tear-2 { bottom: 25%; left: 53%; animation-delay: 1.5s; }
.scn-painting-lamentable-objects .candle {
  position: absolute; bottom: 14%; left: 38%;
  width: 10px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.3);
}
.scn-painting-lamentable-objects .flame {
  position: absolute; bottom: 37%; left: 38.5%;
  width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #ffe080 0%, #d09040 40%, #a05020 70%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(200,100,40,.5);
  animation: plo-flame 2s ease-in-out infinite alternate;
}

@keyframes plo-shadow { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .3 } }
@keyframes plo-skull { 0%,100% { transform: translateX(-50%) scale(1) rotate(0deg) } 50% { transform: translateX(-50%) scale(1.02) rotate(0.5deg) } }
@keyframes plo-eye { 0% { opacity: .4; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.2) } 100% { opacity: .6; transform: scaleY(.9) } }
@keyframes plo-tear { 0% { transform: translateY(0) scaleY(1); opacity: .6 } 50% { transform: translateY(8px) scaleY(0.6); opacity: .2 } 100% { transform: translateY(16px) scaleY(0.4); opacity: 0 } }
@keyframes plo-flame { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 15px 6px rgba(200,100,40,.4); } 50% { transform: scaleY(1.15) translateY(-2px); box-shadow: 0 0 25px 10px rgba(220,120,50,.6); } 100% { transform: scaleY(0.9) translateY(1px); box-shadow: 0 0 12px 4px rgba(180,80,30,.3); } }

.scn-straggling-slaves-pillaging {
  background: linear-gradient(180deg, #1a0f0f 0%, #2b1414 30%, #3d1a1a 60%, #1f0d0d 100%),
              radial-gradient(ellipse at 60% 70%, #7a2a1a 0%, transparent 70%),
              radial-gradient(ellipse at 30% 60%, #b54a2a 0%, transparent 50%);
}
.scn-straggling-slaves-pillaging .sky {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0f0808 0%, #2a1414 40%, #3d1a0d 100%);
  animation: sp-sky 15s ease-in-out infinite alternate;
}
.scn-straggling-slaves-pillaging .fire-glow {
  position: absolute;
  bottom: 20%;
  left: 25%;
  width: 60%;
  height: 50%;
  background: radial-gradient(ellipse at 50% 100%, #ff7a30 0%, #c84a20 30%, transparent 70%);
  filter: blur(20px);
  opacity: 0.8;
  animation: sp-firepulse 4s ease-in-out infinite alternate;
}
.scn-straggling-slaves-pillaging .building-bg {
  position: absolute;
  bottom: 30%;
  left: 10%;
  width: 40%;
  height: 40%;
  background: linear-gradient(180deg, #2a1515 0%, #1a0a0a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 -10px 20px #3a1a1a;
  animation: sp-burn 6s ease-in-out infinite alternate;
}
.scn-straggling-slaves-pillaging .building-fore {
  position: absolute;
  bottom: 25%;
  left: 55%;
  width: 50%;
  height: 50%;
  background: linear-gradient(180deg, #1f0e0e 0%, #0f0505 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 -8px 16px #2a1212;
  animation: sp-burn 8s ease-in-out infinite alternate-reverse;
}
.scn-straggling-slaves-pillaging .figure-left {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #0a0505 0%, #000000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(200, 80, 30, 0.6);
  animation: sp-fight 1.5s ease-in-out infinite;
}
.scn-straggling-slaves-pillaging .figure-right {
  position: absolute;
  bottom: 20%;
  right: 25%;
  width: 22px;
  height: 45px;
  background: linear-gradient(180deg, #0a0505 0%, #000000 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(200, 80, 30, 0.6);
  animation: sp-fight 1.8s ease-in-out infinite 0.3s;
}
.scn-straggling-slaves-pillaging .spear {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 4px;
  height: 50px;
  background: linear-gradient(0deg, #4a2a1a 0%, #6a3a2a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  box-shadow: 0 0 4px #8a4a2a;
  animation: sp-spear 2s ease-in-out infinite;
}
.scn-straggling-slaves-pillaging .smoke-1 {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 80px;
  height: 30px;
  background: rgba(40, 20, 10, 0.3);
  border-radius: 50%;
  filter: blur(12px);
  animation: sp-smoke 20s linear infinite;
}
.scn-straggling-slaves-pillaging .smoke-2 {
  position: absolute;
  top: 15%;
  right: 30%;
  width: 60px;
  height: 25px;
  background: rgba(40, 20, 10, 0.25);
  border-radius: 50%;
  filter: blur(10px);
  animation: sp-smoke 25s linear infinite 5s;
}
@keyframes sp-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes sp-firepulse {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 0.9; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes sp-burn {
  0% { filter: brightness(0.8); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.9); }
}
@keyframes sp-fight {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(5deg); }
  50% { transform: translateX(0) rotate(-3deg); }
  75% { transform: translateX(-4px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sp-spear {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-3px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes sp-smoke {
  0% { transform: translateX(0) translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(30px) translateY(-20px) scale(1.5); opacity: 0.1; }
  100% { transform: translateX(60px) translateY(-40px) scale(2); opacity: 0; }
}

.scn-tarquin-dotes-on-sight {
  background:
    linear-gradient(180deg, #1a0c08 0%, #2a1410 30%, #3a1c14 60%, #1a0c08 100%),
    radial-gradient(ellipse at 60% 40%, #6a3a20 0%, transparent 70%);
}
.scn-tarquin-dotes-on-sight .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(60,20,10,0.9) 0%, rgba(20,10,5,0.95) 50%, rgba(10,5,2,1) 100%);
  animation: tar-bg 10s ease-in-out infinite alternate;
}
.scn-tarquin-dotes-on-sight .fireglow {
  position: absolute; left: 55%; top: 30%; width: 120px; height: 140px;
  background: radial-gradient(circle, rgba(200,120,50,0.6) 0%, rgba(180,80,30,0.3) 40%, transparent 80%);
  border-radius: 50%;
  filter: blur(30px);
  animation: tar-fireglow 3s ease-in-out infinite;
}
.scn-tarquin-dotes-on-sight .figure {
  position: absolute; right: 25%; bottom: 18%; width: 180px; height: 260px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0d0705 100%);
  border-radius: 40% 60% 50% 50% / 60% 50% 50% 40%;
  box-shadow: -10px 0 30px rgba(200,100,40,0.3);
  transform-origin: bottom center;
  animation: tar-figure 6s ease-in-out infinite;
}
.scn-tarquin-dotes-on-sight .eye {
  position: absolute; right: 28%; top: 30%; width: 18px; height: 10px;
  background: radial-gradient(ellipse, #c8a060 0%, #6a3a1a 60%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,120,60,0.5);
  transform: rotate(-20deg);
  animation: tar-eye 4s ease-in-out infinite;
}
.scn-tarquin-dotes-on-sight .lip {
  position: absolute; right: 32%; top: 40%; width: 28px; height: 12px;
  background: linear-gradient(180deg, #b8553d 0%, #8a3a2a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 8px rgba(180,60,30,0.4);
  animation: tar-lip 2s ease-in-out infinite alternate;
}
.scn-tarquin-dotes-on-sight .vein {
  position: absolute; right: 27%; top: 34%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #5a7a8a 0%, #3a5a6a 50%, transparent 100%);
  border-radius: 40%;
  transform: rotate(15deg);
  opacity: 0.5;
  animation: tar-vein 8s ease-in-out infinite;
}
.scn-tarquin-dotes-on-sight .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(10,5,2,1) 0%, transparent 100%);
  animation: tar-shadow 5s ease-in-out infinite alternate;
}

@keyframes tar-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes tar-fireglow {
  0% { transform: scale(0.95) translate(0, 0); opacity: 0.7; }
  30% { transform: scale(1.05) translate(4px, -2px); opacity: 1; }
  60% { transform: scale(0.98) translate(-2px, 1px); opacity: 0.8; }
  100% { transform: scale(1.02) translate(2px, -1px); opacity: 0.9; }
}
@keyframes tar-figure {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(-3px) rotate(1deg) scaleY(1.02); }
  50% { transform: translateX(0) rotate(0deg) scaleY(0.98); }
  75% { transform: translateX(2px) rotate(-1deg) scaleY(1); }
  100% { transform: translateX(-1px) rotate(1deg) scaleY(1.01); }
}
@keyframes tar-eye {
  0% { transform: rotate(-20deg) scaleX(1); opacity: 0.8; }
  25% { transform: rotate(-18deg) scaleX(1.1); opacity: 1; }
  50% { transform: rotate(-22deg) scaleX(0.9); opacity: 0.9; }
  75% { transform: rotate(-19deg) scaleX(1.05); opacity: 1; }
  100% { transform: rotate(-21deg) scaleX(1); opacity: 0.85; }
}
@keyframes tar-lip {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.15) translateY(-1px); }
  100% { transform: scaleY(0.9) translateY(1px); }
}
@keyframes tar-vein {
  0% { opacity: 0.3; transform: rotate(15deg) scaleY(1); }
  25% { opacity: 0.6; transform: rotate(16deg) scaleY(1.05); }
  50% { opacity: 0.4; transform: rotate(14deg) scaleY(0.95); }
  75% { opacity: 0.7; transform: rotate(17deg) scaleY(1.02); }
  100% { opacity: 0.5; transform: rotate(15deg) scaleY(1); }
}
@keyframes tar-shadow {
  0% { transform: translateY(0); opacity: 0.9; }
  50% { transform: translateY(5px); opacity: 1; }
  100% { transform: translateY(-3px); opacity: 0.85; }
}

.scn-painting-greek-commanders { background: linear-gradient(180deg, #2a1a1a 0%, #3a2a1a 40%, #1a1a1a 100%), radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 60%); }

.scn-painting-greek-commanders .bg-wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.7); }

.scn-painting-greek-commanders .bg-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #1a100a 0%, #0e0804 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }

.scn-painting-greek-commanders .drapery-left { position: absolute; top: 0; left: 0; width: 20%; height: 85%; background: linear-gradient(135deg, #5a2a2a 0%, #3a1a1a 60%, #1a0a0a 100%); border-radius: 0 40% 40% 0 / 0 60% 60% 0; filter: blur(2px); transform-origin: top center; animation: pgc-drape-l 10s ease-in-out infinite alternate; }

.scn-painting-greek-commanders .drapery-right { position: absolute; top: 0; right: 0; width: 20%; height: 85%; background: linear-gradient(225deg, #5a2a2a 0%, #3a1a1a 60%, #1a0a0a 100%); border-radius: 40% 0 0 40% / 60% 0 0 60%; filter: blur(2px); transform-origin: top center; animation: pgc-drape-r 12s ease-in-out infinite alternate; }

.scn-painting-greek-commanders .throne { position: absolute; bottom: 28%; left: 50%; width: 80px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.6); }

.scn-painting-greek-commanders .figure-chief { position: absolute; bottom: 30%; left: 50%; width: 20px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 60%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: pgc-fig-chief 6s ease-in-out infinite; }

.scn-painting-greek-commanders .figure-soldier-a { position: absolute; bottom: 30%; left: 36%; width: 16px; height: 40px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: pgc-fig-soldier 8s ease-in-out infinite; }

.scn-painting-greek-commanders .figure-soldier-b { position: absolute; bottom: 30%; right: 36%; width: 16px; height: 40px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: pgc-fig-soldier 8s ease-in-out infinite 2s; }

.scn-painting-greek-commanders .glow-light { position: absolute; bottom: 40%; left: 50%; width: 40px; height: 40px; transform: translateX(-50%); background: radial-gradient(circle, #c08040 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(192,128,64,.3), 0 0 60px 30px rgba(192,128,64,.1); animation: pgc-glow 4s ease-in-out infinite alternate; }

@keyframes pgc-drape-l { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) translateX(-2px) } 100% { transform: scaleX(1) } }

@keyframes pgc-drape-r { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) translateX(2px) } 100% { transform: scaleX(1) } }

@keyframes pgc-fig-chief { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } }

@keyframes pgc-fig-soldier { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } }

@keyframes pgc-glow { 0% { opacity: 0.6; box-shadow: 0 0 20px 10px rgba(192,128,64,.2), 0 0 40px 20px rgba(192,128,64,.05); } 50% { opacity: 1; box-shadow: 0 0 40px 20px rgba(192,128,64,.4), 0 0 80px 40px rgba(192,128,64,.1); } 100% { opacity: 0.7; box-shadow: 0 0 25px 12px rgba(192,128,64,.25), 0 0 50px 25px rgba(192,128,64,.08); } }

.scn-grim-lion-fawns { background: linear-gradient(180deg, #1a0a00 0%, #3a1a00 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 60%, #7a3a00 0%, transparent 60%); }

.scn-grim-lion-fawns .bg-fire { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a2200 0%, #2b0d00 100%); box-shadow: inset 0 0 120px #1a0a00; }

.scn-grim-lion-fawns .bg-wall { position:absolute; bottom:0; left:0; right:0; height:70%; background: linear-gradient(0deg, #0d0500 0%, #2b0d00 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; transform: scaleX(1.1); }

.scn-grim-lion-fawns .fire { position:absolute; bottom:38%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: radial-gradient(circle at 50% 100%, #e87a2a 0%, #c85a1a 40%, transparent 70%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 40px 20px #c85a1a, 0 0 80px 40px rgba(200,90,26,0.4); animation: glf-fire 2s ease-in-out infinite alternate; }

.scn-grim-lion-fawns .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 45%, rgba(200,90,26,0.15) 0%, transparent 60%); animation: glf-glow 4s ease-in-out infinite alternate; }

.scn-grim-lion-fawns .shadow-lion { position:absolute; bottom:35%; left:28%; width:100px; height:120px; background: linear-gradient(180deg, #1a0a05 0%, #2a1410 50%, #0d0500 100%); border-radius: 60% 40% 50% 50% / 70% 60% 40% 30%; transform-origin: bottom center; box-shadow: -20px 0 30px rgba(10,5,0,0.8); animation: glf-lion 4s ease-in-out infinite; }

.scn-grim-lion-fawns .shadow-prey { position:absolute; bottom:30%; left:55%; width:70px; height:50px; background: linear-gradient(180deg, #0d0500 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); box-shadow: 10px 0 20px rgba(0,0,0,0.6); }

.scn-grim-lion-fawns .ember1 { position:absolute; bottom:45%; left:45%; width:6px; height:6px; background: radial-gradient(circle, #ff8c42, #c85a1a); border-radius:50%; box-shadow: 0 0 8px 2px #c85a1a; animation: glf-ember1 6s linear infinite; }

.scn-grim-lion-fawns .ember2 { position:absolute; bottom:48%; left:52%; width:4px; height:4px; background: radial-gradient(circle, #ff8c42, #c85a1a); border-radius:50%; box-shadow: 0 0 6px 1px #c85a1a; animation: glf-ember2 6s linear infinite; animation-delay: 2.5s; }

@keyframes glf-fire {
  0% { transform: translateX(-50%) scale(0.95); opacity:0.8; box-shadow: 0 0 30px 15px #c85a1a, 0 0 60px 30px rgba(200,90,26,0.3); }
  50% { transform: translateX(-50%) scale(1.08); opacity:1; box-shadow: 0 0 50px 25px #e87a2a, 0 0 100px 50px rgba(232,122,42,0.5); }
  100% { transform: translateX(-50%) scale(1.02); opacity:0.9; box-shadow: 0 0 40px 20px #c85a1a, 0 0 80px 40px rgba(200,90,26,0.4); }
}

@keyframes glf-glow {
  0% { opacity:0.6; }
  50% { opacity:0.9; }
  100% { opacity:0.7; }
}

@keyframes glf-lion {
  0% { transform: translateY(0) translateX(0) rotate(0deg); }
  50% { transform: translateY(-3px) translateX(2px) rotate(1deg); }
  100% { transform: translateY(0) translateX(0) rotate(0deg); }
}

@keyframes glf-ember1 {
  0% { transform: translate(0,0) rotate(0deg) scale(1); opacity:0; }
  10% { opacity:0.9; }
  50% { transform: translate(40px,-50px) rotate(180deg) scale(0.6); }
  90% { opacity:0.8; }
  100% { transform: translate(80px,-100px) rotate(360deg) scale(0.2); opacity:0; }
}

@keyframes glf-ember2 {
  0% { transform: translate(0,0) rotate(0deg) scale(1); opacity:0; }
  10% { opacity:0.8; }
  50% { transform: translate(-30px,-40px) rotate(-180deg) scale(0.5); }
  90% { opacity:0.7; }
  100% { transform: translate(-60px,-90px) rotate(-360deg) scale(0.1); opacity:0; }
}

.scn-drumming-heart-cheers { background: radial-gradient(ellipse at 50% 70%, #ff7f00 0%, #8b3a00 40%, #1a0a00 100%), linear-gradient(180deg, #1a0a00 0%, #0d0500 100%); }
.scn-drumming-heart-cheers .fire-bg    { position:absolute; inset:0; background:radial-gradient(circle at 50% 80%, rgba(255,140,0,0.6) 0%, rgba(255,60,0,0.1) 50%, transparent 100%); animation:dhc-fire 4s ease-in-out infinite alternate; }
.scn-drumming-heart-cheers .torso       { position:absolute; bottom:10%; left:50%; width:120px; height:160px; transform:translateX(-50%); background:linear-gradient(180deg, #2a1a0a 0%, #140a00 100%); border-radius:30% 30% 50% 50% / 40% 40% 60% 60%; box-shadow:inset 0 0 40px rgba(0,0,0,.8); }
.scn-drumming-heart-cheers .hand        { position:absolute; bottom:40%; left:35%; width:40px; height:60px; background:#1a0a00; border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform:rotate(-30deg); animation:dhc-hand 2s ease-in-out infinite; }
.scn-drumming-heart-cheers .heart-glow  { position:absolute; bottom:20%; left:50%; width:30px; height:30px; transform:translateX(-50%); background:radial-gradient(circle, #ff7f00 0%, #cc4f00 50%, transparent 100%); border-radius:50%; box-shadow:0 0 40px 10px #ff7f00; animation:dhc-pulse 1.5s ease-in-out infinite; }
.scn-drumming-heart-cheers .veins       { position:absolute; bottom:15%; left:40%; width:80px; height:100px; background:radial-gradient(circle at 20% 30%, #4a6a9a 0%, transparent 50%), radial-gradient(circle at 80% 50%, #4a6a9a 0%, transparent 50%); filter:blur(2px); opacity:.6; animation:dhc-veins 5s ease-in-out infinite; }
.scn-drumming-heart-cheers .burning-eye { position:absolute; top:25%; left:55%; width:12px; height:8px; background:#ff6600; border-radius:50%; box-shadow:0 0 20px 5px #ff6600; animation:dhc-eye 3s ease-in-out infinite; }
@keyframes dhc-fire  { 0% { opacity:.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:.8; transform:scale(.95); } }
@keyframes dhc-hand  { 0% { transform:translateX(0) rotate(-30deg); } 50% { transform:translateX(5px) rotate(-25deg); } 100% { transform:translateX(0) rotate(-30deg); } }
@keyframes dhc-pulse { 0% { transform:translateX(-50%) scale(.9); box-shadow:0 0 20px 5px #ff7f00; } 50% { transform:translateX(-50%) scale(1.2); box-shadow:0 0 60px 20px #ff7f00; } 100% { transform:translateX(-50%) scale(.9); box-shadow:0 0 20px 5px #ff7f00; } }
@keyframes dhc-veins { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.4; } }
@keyframes dhc-eye   { 0% { transform:scale(1); opacity:.8; } 50% { transform:scale(1.3); opacity:1; } 100% { transform:scale(1); opacity:.8; } }

.scn-painting-ajax-ulysses { background: linear-gradient(145deg, #1c1410 0%, #2b1e1a 60%, #1a1210 100%), radial-gradient(ellipse at 50% 50%, #3a2a24 0%, transparent 70%); }
.scn-painting-ajax-ulysses .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); }
.scn-painting-ajax-ulysses .frame { position:absolute; inset:8%; border:4px solid #4a3a32; border-radius:4px; background:transparent; box-shadow:inset 0 0 20px rgba(0,0,0,.6), 0 0 30px rgba(0,0,0,.4); z-index:10; }
.scn-painting-ajax-ulysses .ajax { position:absolute; bottom:20%; left:20%; width:60px; height:100px; background: linear-gradient(180deg, #3a2a24 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pau-ajax 6s ease-in-out infinite alternate; }
.scn-painting-ajax-ulysses .ulysses { position:absolute; bottom:25%; right:25%; width:45px; height:80px; background: linear-gradient(180deg, #2b1e1a 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pau-ulysses 8s ease-in-out infinite alternate; }
.scn-painting-ajax-ulysses .candle { position:absolute; bottom:30%; left:50%; width:4px; height:16px; background: linear-gradient(0deg, #8a6a4a 0%, #c0a070 60%, #e0c080 100%); border-radius:2px 2px 1px 1px; transform:translateX(-50%); animation: pau-candle 2s ease-in-out infinite; }
.scn-painting-ajax-ulysses .glow { position:absolute; bottom:28%; left:50%; width:80px; height:80px; transform:translate(-50%,0); background: radial-gradient(circle, rgba(200,160,100,.4) 0%, transparent 70%); border-radius:50%; animation: pau-glow 4s ease-in-out infinite alternate; }
.scn-painting-ajax-ulysses .shadow { position:absolute; bottom:5%; left:10%; right:10%; height:10%; background: linear-gradient(0deg, rgba(0,0,0,.5) 0%, transparent 100%); border-radius:50%; animation: pau-shadow 12s ease-in-out infinite alternate; }
@keyframes pau-ajax { 0% { transform:scaleY(1) rotate(-2deg); } 50% { transform:scaleY(1.02) rotate(0); } 100% { transform:scaleY(1) rotate(2deg); } }
@keyframes pau-ulysses { 0% { transform:scaleY(1) rotate(1deg); } 50% { transform:scaleY(0.98) rotate(-1deg); } 100% { transform:scaleY(1) rotate(0); } }
@keyframes pau-candle { 0% { height:16px; opacity:1; } 25% { height:18px; opacity:0.9; } 50% { height:16px; opacity:1; } 75% { height:15px; opacity:0.95; } 100% { height:16px; opacity:1; } }
@keyframes pau-glow { 0% { opacity:0.6; transform:translate(-50%,0) scale(1); } 50% { opacity:0.9; transform:translate(-50%,0) scale(1.1); } 100% { opacity:0.7; transform:translate(-50%,0) scale(0.95); } }
@keyframes pau-shadow { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(4px) scale(0.9); } 100% { transform:translateY(0) scale(1.05); } }

.scn-painting-trojan-towers {
  background: linear-gradient(180deg, #2a1f1a 0%, #0d0a07 100%),
              radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-painting-trojan-towers .window-opening {
  position: absolute;
  top: 10%;
  left: 15%;
  width: 70%;
  height: 55%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border: 6px solid #1a1410;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
  overflow: hidden;
}
.scn-painting-trojan-towers .tower-1 {
  position: absolute;
  bottom: 0;
  left: 10%;
  width: 15%;
  height: 80%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.6);
  animation: ps-tower 10s ease-in-out infinite alternate;
}
.scn-painting-trojan-towers .tower-2 {
  position: absolute;
  bottom: 0;
  right: 10%;
  width: 15%;
  height: 75%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.6);
  animation: ps-tower 12s ease-in-out infinite alternate;
}
.scn-painting-trojan-towers .eye-a {
  position: absolute;
  top: 30%;
  left: 12%;
  width: 8px;
  height: 6px;
  background: radial-gradient(circle, #e8c080 0%, #a07040 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(232,192,128,0.5);
  animation: ps-gaze 4s ease-in-out infinite;
}
.scn-painting-trojan-towers .eye-b {
  position: absolute;
  top: 50%;
  left: 14%;
  width: 8px;
  height: 6px;
  background: radial-gradient(circle, #e8c080 0%, #a07040 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(232,192,128,0.5);
  animation: ps-gaze 5s ease-in-out infinite alternate;
}
.scn-painting-trojan-towers .pioneer {
  position: absolute;
  bottom: 8%;
  left: 35%;
  width: 20%;
  height: 30%;
  background: linear-gradient(180deg, #1a120e 0%, #0d0906 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ps-dig 3s ease-in-out infinite;
}
.scn-painting-trojan-towers .shovel {
  position: absolute;
  bottom: 13%;
  left: 38%;
  width: 4%;
  height: 18%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2px 2px 10px 10px;
  transform-origin: bottom center;
  transform: rotate(10deg);
  animation: ps-shovel 3s ease-in-out infinite;
}
.scn-painting-trojan-towers .lantern {
  position: absolute;
  bottom: 15%;
  left: 25%;
  width: 3%;
  height: 4%;
  background: radial-gradient(circle, #e8b050 0%, #804020 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(232,176,80,0.5), 0 0 60px 20px rgba(232,176,80,0.2);
  animation: ps-flicker 2s ease-in-out infinite alternate;
}
.scn-painting-trojan-towers .dust {
  position: absolute;
  top: 60%;
  left: 20%;
  width: 10px;
  height: 10px;
  background: radial-gradient(circle, rgba(200,180,160,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ps-drift 15s linear infinite;
}
@keyframes ps-tower {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes ps-gaze {
  0% { transform: translate(0, 0) scale(1); opacity: 0.7; }
  50% { transform: translate(2px, -1px) scale(1.2); opacity: 1; }
  100% { transform: translate(-1px, 1px) scale(0.9); opacity: 0.8; }
}
@keyframes ps-dig {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-5px) rotate(-2deg); }
  50% { transform: translateY(2px) rotate(0deg); }
  75% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ps-shovel {
  0% { transform: rotate(10deg) translateY(0); }
  25% { transform: rotate(15deg) translateY(-3px); }
  50% { transform: rotate(5deg) translateY(1px); }
  75% { transform: rotate(12deg) translateY(-2px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes ps-flicker {
  0% { transform: scale(1) translateY(0); opacity: 0.8; box-shadow: 0 0 20px 8px rgba(232,176,80,0.5); }
  50% { transform: scale(1.1) translateY(-1px); opacity: 1; box-shadow: 0 0 40px 15px rgba(232,176,80,0.7); }
  100% { transform: scale(0.95) translateY(1px); opacity: 0.9; box-shadow: 0 0 25px 10px rgba(232,176,80,0.4); }
}
@keyframes ps-drift {
  0% { transform: translate(0, 0); opacity: 0; }
  10% { opacity: 0.6; }
  90% { opacity: 0.4; }
  100% { transform: translate(30px, -20px); opacity: 0; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.bar { position: absolute; pointer-events: none; }
.cloud-nf { position: absolute; pointer-events: none; }
.flame-trd { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.shadow-trd { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-sable-night {
  background: linear-gradient(180deg, #1b1430 0%, #2a1b2e 30%, #3a2426 60%, #4a2e24 100%),
              radial-gradient(ellipse at 60% 100%, #4a2e24 30%, transparent 70%);
}
.scn-sable-night .room-walls {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1228 0%, #2a1a2a 50%, #3a2020 100%); animation: sb-walls 20s ease-in-out infinite alternate;
}
.scn-sable-night .window-frame {
  position: absolute; top: 10%; left: 30%; width: 120px; height: 160px; background: #2a1a1a; border: 4px solid #1a0e0e; border-radius: 4px; transform: perspective(400px) rotateY(2deg); box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-sable-night .window-glow {
  position: absolute; top: 12%; left: 32%; width: 100px; height: 140px; background: radial-gradient(circle at 50% 30%, #f0d090 0%, #d0a070 30%, #402020 70%); border-radius: 4px; animation: sb-glow 8s ease-in-out infinite alternate; filter: blur(2px);
}
.scn-sable-night .bed-posts {
  position: absolute; bottom: 20%; left: 28%; width: 180px; height: 60px; background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%); border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.8); 
}
.scn-sable-night .curtains {
  position: absolute; top: 8%; width: 60px; height: 200px; background: linear-gradient(180deg, #4a2a22 0%, #2a1a1a 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; animation: sb-curtain 14s ease-in-out infinite alternate;
}
.scn-sable-night .curtain-l { left: 28%; transform-origin: left center; }
.scn-sable-night .curtain-r { right: 28%; transform-origin: right center; }
.scn-sable-night .figure-sleeping {
  position: absolute; bottom: 18%; left: 45%; width: 50px; height: 80px; background: radial-gradient(ellipse 40% 60% at 50% 30%, #5a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: sb-sleep 6s ease-in-out infinite; 
}
.scn-sable-night .ember {
  position: absolute; bottom: 15%; right: 20%; width: 6px; height: 6px; background: #ff8040; border-radius: 50%; box-shadow: 0 0 12px 4px #ff6040, 0 0 20px 8px rgba(255,96,64,0.4); animation: sb-ember 3s ease-in-out infinite alternate; 
}
@keyframes sb-walls { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sb-glow { 0% { opacity: .6; transform: scale(1); } 50% { opacity: .9; transform: scale(1.05); } 100% { opacity: .7; transform: scale(.98); } }
@keyframes sb-curtain { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes sb-sleep { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(4px); } }
@keyframes sb-ember { 0% { opacity: .5; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: .6; transform: scale(.9); } }

.scn-revolving-dangers {
  background: linear-gradient(135deg, #0a0a1a 0%, #1a1220 40%, #2a1a2a 70%, #1a0a0a 100%),
              radial-gradient(circle at 40% 30%, #2a1a2a 0%, transparent 60%);
}
.scn-revolving-dangers .bg-abyss {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a18 0%, #1a1220 50%, #0a0a18 100%); animation: rd-abyss 15s ease-in-out infinite;
}
.scn-revolving-dangers .spinner-wheel {
  position: absolute; top: 50%; left: 50%; width: 200px; height: 200px; margin: -100px; background: radial-gradient(circle, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50%; border: 6px solid #5a3a3a; animation: rd-spin 4s linear infinite; box-shadow: 0 0 30px rgba(180,60,40,0.3);
}
.scn-revolving-dangers .spoke {
  position: absolute; top: 50%; left: 50%; width: 180px; height: 4px; margin: -2px 0 0 -90px; background: linear-gradient(90deg, transparent, #8a4030, transparent); border-radius: 2px; animation: rd-spoke 2s ease-in-out infinite;
}
.scn-revolving-dangers .spoke-1 { transform: rotate(0deg); animation-delay: 0s; }
.scn-revolving-dangers .spoke-2 { transform: rotate(60deg); animation-delay: 0.3s; }
.scn-revolving-dangers .spoke-3 { transform: rotate(120deg); animation-delay: 0.6s; }
.scn-revolving-dangers .danger-glint {
  position: absolute; top: 45%; left: 55%; width: 20px; height: 20px; background: radial-gradient(circle, #c86040 0%, #8a3020 60%, transparent 100%); border-radius: 50%; animation: rd-glint 0.8s infinite alternate; filter: blur(2px);
}
.scn-revolving-dangers .silhouette-figure {
  position: absolute; bottom: 15%; left: 20%; width: 60px; height: 120px; background: linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(10deg); animation: rd-figure 6s ease-in-out infinite;
}
@keyframes rd-abyss { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes rd-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes rd-spoke { 0% { opacity: .3; } 50% { opacity: .8; } 100% { opacity: .3; } }
@keyframes rd-glint { 0% { transform: scale(.5); opacity: .2; } 100% { transform: scale(1.5); opacity: .9; } }
@keyframes rd-figure { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(8px); } }

.scn-surfeit-grief {
  background: linear-gradient(180deg, #4a4a52 0%, #3a3a42 40%, #5a5a62 70%, #2a2a32 100%),
              radial-gradient(ellipse at 50% 0%, #6a6a72 0%, transparent 60%);
}
.scn-surfeit-grief .overcast-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #5a5a5a 0%, #6a6a6a 30%, #4a4a4a 70%, #3a3a3a 100%); animation: sg-sky 30s ease-in-out infinite alternate;
}
.scn-surfeit-grief .grey-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; animation: sg-sea 20s ease-in-out infinite alternate; box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-surfeit-grief .shore-line {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%; background: linear-gradient(180deg, #7a7a6a 0%, #5a5a4a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: sg-shore 25s ease-in-out infinite;
}
.scn-surfeit-grief .bent-figure {
  position: absolute; bottom: 10%; left: 35%; width: 40px; height: 70px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: sg-bent 8s ease-in-out infinite; transform-origin: bottom center;
}
.scn-surfeit-grief .staff {
  position: absolute; bottom: 10%; left: 38%; width: 6px; height: 80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 2px; transform: rotate(20deg); transform-origin: bottom center; animation: sg-staff 8s ease-in-out infinite;
}
.scn-surfeit-grief .fallen-leaves {
  position: absolute; bottom: 5%; width: 12px; height: 6px; background: #5a4a3a; border-radius: 50% 0 50% 0; animation: sg-leaf 10s ease-in-out infinite;
}
.scn-surfeit-grief .leaf-1 { left: 20%; animation-delay: 0s; }
.scn-surfeit-grief .leaf-2 { left: 60%; animation-delay: 4s; }
@keyframes sg-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .6; } }
@keyframes sg-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-10px) scaleY(1.02); } 100% { transform: translateY(5px) scaleY(.98); } }
@keyframes sg-shore { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes sg-bent { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-5px); } }
@keyframes sg-staff { 0%,100% { transform: rotate(20deg); } 50% { transform: rotate(15deg); } }
@keyframes sg-leaf { 0% { transform: translate(0,0) rotate(0deg) scale(1); } 50% { transform: translate(10px, -15px) rotate(45deg) scale(1.1); opacity: .8; } 100% { transform: translate(20px, 0) rotate(90deg) scale(.9); opacity: .4; } }

.scn-ambition-foul {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 30%, #1a1a4a 60%, #0a0a2a 100%),
              radial-gradient(ellipse at 50% 0%, #2a2a5a 0%, transparent 70%);
}
.scn-ambition-foul .moon-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 50%, #0a0a2a 100%); animation: af-sky 25s ease-in-out infinite alternate;
}
.scn-ambition-foul .moon {
  position: absolute; top: 8%; right: 20%; width: 60px; height: 60px; background: radial-gradient(circle, #d0d8f0 0%, #a0a8c0 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(160,168,192,0.5), 0 0 80px 20px rgba(100,108,140,0.3); animation: af-moon 12s ease-in-out infinite alternate;
}
.scn-ambition-foul .dark-tower {
  position: absolute; bottom: 10%; left: 35%; width: 100px; height: 200px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 30%, #1a1a2a 100%); border-radius: 10% 10% 0 0 / 5% 5% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); animation: af-tower 20s ease-in-out infinite alternate;
}
.scn-ambition-foul .tower-window {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 30px; background: radial-gradient(circle, #d0d8f0 0%, #8090b0 30%, #202040 70%); border-radius: 4px; box-shadow: 0 0 20px 4px #8090b0; animation: af-window-glow 6s ease-in-out infinite alternate; filter: blur(1px);
}
.scn-ambition-foul .reaching-hand {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 60px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(30deg); animation: af-hand 4s ease-in-out infinite; transform-origin: bottom left;
}
.scn-ambition-foul .shadow-wisp {
  position: absolute; bottom: 35%; left: 30%; width: 40px; height: 40px; background: radial-gradient(circle, rgba(20,20,40,0.6) 0%, transparent 100%); filter: blur(8px); animation: af-wisp 10s ease-in-out infinite alternate;
}
@keyframes af-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .6; } }
@keyframes af-moon { 0% { transform: scale(1); opacity: .8; box-shadow: 0 0 40px 10px rgba(160,168,192,0.5); } 50% { transform: scale(1.03); opacity: 1; box-shadow: 0 0 60px 15px rgba(160,168,192,0.7); } 100% { transform: scale(.97); opacity: .75; box-shadow: 0 0 30px 8px rgba(160,168,192,0.4); } }
@keyframes af-tower { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(.98); } }
@keyframes af-window-glow { 0% { opacity: .5; box-shadow: 0 0 20px 4px #8090b0; } 50% { opacity: .9; box-shadow: 0 0 40px 10px #a0b0d0; } 100% { opacity: .6; box-shadow: 0 0 20px 4px #8090b0; } }
@keyframes af-hand { 0%,100% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(40deg) translateY(-8px); } }
@keyframes af-wisp { 0% { transform: translate(0,0) scale(1); opacity: .2; } 50% { transform: translate(-10px, -20px) scale(1.3); opacity: .5; } 100% { transform: translate(5px, -10px) scale(.9); opacity: .3; } }

.scn-niggard-prodigal {
  background: linear-gradient(180deg, #0b0b2a 0%, #15154a 40%, #1a1a3a 100%), radial-gradient(ellipse at 30% 70%, #2a2a5a 0%, transparent 70%);
}
.scn-niggard-prodigal .sky-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0a20 0%, transparent 100%); animation: np-sky 14s ease-in-out infinite alternate; }
.scn-niggard-prodigal .moon { position:absolute; top:12%; left:65%; width:60px; height:60px; background: radial-gradient(circle, #e0e0ff 0%, #c0c0e0 70%, #a0a0c0 100%); border-radius:50%; box-shadow: 0 0 80px 20px rgba(200,200,255,0.3); animation: np-moon 20s ease-in-out infinite; }
.scn-niggard-prodigal .cloud-1 { position:absolute; top:18%; left:10%; width:120px; height:20px; background: linear-gradient(180deg, rgba(180,180,220,0.5) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: np-cloud1 40s linear infinite; }
.scn-niggard-prodigal .cloud-2 { position:absolute; top:25%; left:40%; width:80px; height:15px; background: linear-gradient(180deg, rgba(160,160,200,0.4) 0%, transparent 100%); border-radius:50%; filter: blur(6px); animation: np-cloud2 50s linear reverse infinite; }
.scn-niggard-prodigal .tower { position:absolute; bottom:30%; left:20%; width:50px; height:120px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 4% 4%; box-shadow: -4px 0 10px rgba(0,0,0,0.6); animation: np-tower 12s ease-in-out infinite alternate; }
.scn-niggard-prodigal .figure { position:absolute; bottom:33%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: np-figure 6s ease-in-out infinite; }
.scn-niggard-prodigal .glint { position:absolute; bottom:35%; left:42%; width:4px; height:4px; background: #c0c0ff; border-radius:50%; box-shadow: 0 0 10px 3px rgba(200,200,255,0.8); animation: np-glint 3s ease-in-out infinite alternate; }

@keyframes np-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes np-moon { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } }
@keyframes np-cloud1 { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes np-cloud2 { 0% { transform: translateX(0) } 100% { transform: translateX(-90vw) } }
@keyframes np-tower { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes np-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(6px) translateY(0) rotate(-2deg) } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes np-glint { 0% { opacity:0.3; transform: scale(0.8) } 100% { opacity:1; transform: scale(1.4) } }

.scn-guileless-hostess {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 30%, #5a4a3a 60%, #3a2a1a 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-guileless-hostess .room-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); animation: gh-wall 20s ease-in-out infinite alternate; }
.scn-guileless-hostess .fireplace { position:absolute; bottom:35%; left:50%; width:100px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%); border-radius: 20% 20% 8% 8% / 30% 30% 8% 8%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.7); }
.scn-guileless-hostess .fire-glow { position:absolute; bottom:38%; left:50%; width:60px; height:70px; transform:translateX(-50%); background: radial-gradient(ellipse, #ff8030 0%, #ff6030 30%, #ff4010 60%, transparent 100%); border-radius:50%; filter: blur(10px); animation: gh-fire 2s ease-in-out infinite alternate; }
.scn-guileless-hostess .table { position:absolute; bottom:30%; left:30%; width:120px; height:20px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius:4px; transform:skewX(10deg); }
.scn-guileless-hostess .hostess { position:absolute; bottom:26%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gh-hostess 5s ease-in-out infinite; }
.scn-guileless-hostess .guest { position:absolute; bottom:26%; left:55%; width:28px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gh-guest 6s ease-in-out infinite; }
.scn-guileless-hostess .mug { position:absolute; bottom:35%; left:38%; width:12px; height:16px; background: #6a4a2a; border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: gh-mug 4s ease-in-out infinite; }

@keyframes gh-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes gh-fire { 0% { opacity:0.6; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.7; transform: scale(0.98) } }
@keyframes gh-hostess { 0%,100% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-2px) rotate(1deg) } }
@keyframes gh-guest { 0%,100% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-1px) rotate(-1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(1px) rotate(-1deg) } }
@keyframes gh-mug { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

.scn-innocent-gaze {
  background: linear-gradient(180deg, #1a1815 0%, #2a251f 40%, #1e1a16 100%), radial-gradient(ellipse at 30% 50%, #2a251f 0%, transparent 70%);
}
.scn-innocent-gaze .deep-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #12100e 0%, #1a1815 100%); animation: ig-wall 15s ease-in-out infinite alternate; }
.scn-innocent-gaze .chair { position:absolute; bottom:20%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-innocent-gaze .book-open { position:absolute; bottom:22%; left:32%; width:30px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; transform: rotate(-10deg); animation: ig-book 8s ease-in-out infinite; }
.scn-innocent-gaze .figure-seated { position:absolute; bottom:16%; left:18%; width:28px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ig-figure 6s ease-in-out infinite; }
.scn-innocent-gaze .candle { position:absolute; bottom:20%; left:58%; width:6px; height:16px; background: linear-gradient(180deg, #b08860 0%, #806040 100%); border-radius: 2px; }
.scn-innocent-gaze .candle-glow { position:absolute; bottom:24%; left:58%; width:20px; height:20px; transform:translate(-50%, -50%); background: radial-gradient(circle, #ffd080 0%, #ffb060 40%, transparent 100%); border-radius:50%; filter: blur(4px); animation: ig-candle 3s ease-in-out infinite alternate; }
.scn-innocent-gaze .dust-mote { position:absolute; top:30%; left:40%; width:2px; height:2px; background: rgba(200,180,160,0.6); border-radius:50%; box-shadow: 0 0 8px 2px rgba(200,180,160,0.2); animation: ig-dust 20s linear infinite; }

@keyframes ig-wall { 0%,100% { opacity:0.7 } 50% { opacity:0.9 } }
@keyframes ig-book { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-14deg) translateY(-2px) } }
@keyframes ig-figure { 0%,100% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(1deg) } }
@keyframes ig-candle { 0% { opacity:0.5; transform: scale(0.9) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.6; transform: scale(0.95) } }
@keyframes ig-dust { 0% { transform: translateY(0) translateX(0) } 25% { transform: translateY(-10px) translateX(5px) } 50% { transform: translateY(-20px) translateX(-3px) } 75% { transform: translateY(-30px) translateX(8px) } 100% { transform: translateY(-40px) translateX(0) } }

.scn-joyful-heaven {
  background: linear-gradient(180deg, #f0d8a0 0%, #e0c080 30%, #d0b060 60%, #c0a050 100%), radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 60%);
}
.scn-joyful-heaven .wall-light { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8d0a0 0%, #d0b880 100%); animation: jh-wall 20s ease-in-out infinite alternate; }
.scn-joyful-heaven .window-arch { position:absolute; top:10%; left:50%; width:120px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a860 0%, #a08840 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3); }
.scn-joyful-heaven .window-glass { position:absolute; top:12%; left:50%; width:100px; height:130px; transform:translateX(-50%); background: linear-gradient(180deg, #ffd080 0%, #f0c060 50%, #e0b050 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; box-shadow: inset 0 0 30px rgba(255,200,100,0.5); animation: jh-glass 6s ease-in-out infinite alternate; }
.scn-joyful-heaven .light-ray { position:absolute; top:20%; left:45%; width:60px; height:200px; background: linear-gradient(180deg, rgba(255,220,120,0.5) 0%, transparent 100%); transform: rotate(-15deg) scaleY(0.8); filter: blur(15px); animation: jh-ray 10s ease-in-out infinite; }
.scn-joyful-heaven .ray-b { left:55%; width:70px; transform: rotate(15deg) scaleY(0.9); animation-delay: -3s; }
.scn-joyful-heaven .figure-woman { position:absolute; bottom:30%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jh-figure 7s ease-in-out infinite; }
.scn-joyful-heaven .upraised-hand { position:absolute; bottom:48%; left:42%; width:8px; height:14px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom left; animation: jh-hand 4s ease-in-out infinite; }
.scn-joyful-heaven .wreath { position:absolute; bottom:42%; left:43%; width:18px; height:10px; background: radial-gradient(ellipse, #3a6a2a 0%, #2a5a1a 100%); border-radius:50%; box-shadow: 0 0 10px 2px rgba(200,200,100,0.4); animation: jh-wreath 8s ease-in-out infinite; }

@keyframes jh-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes jh-glass { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.03) } 100% { opacity:0.85; transform: scaleY(0.98) } }
@keyframes jh-ray { 0% { opacity:0.2; transform: rotate(-15deg) scaleY(0.8) } 50% { opacity:0.6; transform: rotate(-17deg) scaleY(1) } 100% { opacity:0.3; transform: rotate(-13deg) scaleY(0.85) } }
@keyframes jh-figure { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes jh-hand { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-2px) } }
@keyframes jh-wreath { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(10deg) } 100% { transform: translateX(0) rotate(0) } }

/* tarquin-leaves-ardea – dark, sunset */
.scn-tarquin-leaves-ardea {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #6a3a2a 60%, #8a4a3a 100%),
    radial-gradient(ellipse at 60% 20%, #b85a3a 0%, #2a1a0a 80%);
}
.scn-tarquin-leaves-ardea .sky-glow {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #f0a060 0%, #d07030 40%, #1a0a0a 100%);
  opacity:0.6; animation: tla-sky 15s ease-in-out infinite alternate;
}
.scn-tarquin-leaves-ardea .city-wall {
  position:absolute; bottom:35%; left:10%; right:10%; height:25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -6px 20px rgba(0,0,0,0.6);
  animation: tla-wall 20s ease-in-out infinite;
}
.scn-tarquin-leaves-ardea .road {
  position:absolute; bottom:15%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: tla-road 12s ease-in-out infinite alternate;
}
.scn-tarquin-leaves-ardea .figure-horse {
  position:absolute; bottom:18%; left:35%; width:40px; height:60px;
  background: #1a0a0a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tla-ride 6s ease-in-out infinite;
}
.scn-tarquin-leaves-ardea .lantern-glow {
  position:absolute; bottom:22%; left:38%; width:8px; height:8px;
  background: radial-gradient(circle, #ff8040 0%, transparent 70%);
  box-shadow: 0 0 25px 10px rgba(255,128,64,0.5);
  animation: tla-lantern 3s ease-in-out infinite alternate;
}
.scn-tarquin-leaves-ardea .dust {
  position:absolute; bottom:16%; left:42%; width:60px; height:20px;
  background: radial-gradient(ellipse, rgba(80,60,40,0.3) 0%, transparent 80%);
  filter: blur(4px);
  animation: tla-dust 8s linear infinite;
}
.scn-tarquin-leaves-ardea .cloud-tl-a {
  position:absolute; top:10%; left:-10%; width:120px; height:25px;
  background: rgba(200,150,100,0.2);
  border-radius:50%; filter: blur(8px);
  animation: tla-drift-a 40s linear infinite;
}
.scn-tarquin-leaves-ardea .cloud-tl-b {
  position:absolute; top:18%; left:60%; width:90px; height:18px;
  background: rgba(180,120,80,0.15);
  border-radius:50%; filter: blur(6px);
  animation: tla-drift-b 55s linear infinite reverse;
}
@keyframes tla-sky { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes tla-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }
@keyframes tla-road { 0% { transform: scaleY(1); } 100% { transform: scaleY(0.95); } }
@keyframes tla-ride { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes tla-lantern { 0% { opacity:0.6; box-shadow:0 0 15px 5px rgba(255,128,64,0.3); } 50% { opacity:1; box-shadow:0 0 35px 15px rgba(255,128,64,0.7); } 100% { opacity:0.8; box-shadow:0 0 20px 8px rgba(255,128,64,0.4); } }
@keyframes tla-dust { 0% { transform: translateX(0) scale(1); opacity:0.4; } 50% { transform: translateX(30px) scale(1.2); opacity:0.1; } 100% { transform: translateX(60px) scale(1); opacity:0.3; } }
@keyframes tla-drift-a { 0% { transform: translateX(-120px); } 100% { transform: translateX(100vw); } }
@keyframes tla-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* collatine-boast – tense, moonlit */
.scn-collatine-boast {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4a 100%),
    radial-gradient(ellipse at 50% 20%, #3a4a6a 0%, #0a0a1a 70%);
}
.scn-collatine-boast .moon {
  position:absolute; top:8%; left:70%; width:40px; height:40px;
  background: radial-gradient(circle, #c0d0e0 0%, #8090b0 60%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 60px 30px rgba(192,208,224,0.3), 0 0 120px 60px rgba(192,208,224,0.1);
  animation: cob-moon 20s ease-in-out infinite alternate;
}
.scn-collatine-boast .window-frame {
  position:absolute; inset:5% 15% 30% 15%;
  border: 4px solid #2a2a3a;
  border-radius: 4px;
  background: transparent;
  box-shadow: inset 0 0 30px rgba(192,208,224,0.05);
}
.scn-collatine-boast .table {
  position:absolute; bottom:20%; left:20%; right:20%; height:20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-collatine-boast .goblet {
  position:absolute; bottom:30%; left:35%; width:16px; height:30px;
  background: linear-gradient(180deg, #5a5a6a 0%, #2a2a3a 100%);
  border-radius: 4px 4px 3px 3px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: cob-goblet 4s ease-in-out infinite;
}
.scn-collatine-boast .figure-collatine {
  position:absolute; bottom:28%; left:45%; width:30px; height:70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cob-figure 9s ease-in-out infinite;
}
.scn-collatine-boast .dagger {
  position:absolute; bottom:35%; left:52%; width:6px; height:18px;
  background: linear-gradient(180deg, #a0a0b0 0%, #505060 100%);
  border-radius: 3px;
  transform: rotate(20deg);
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: cob-dagger 7s ease-in-out infinite alternate;
}
.scn-collatine-boast .candle.flicker {
  position:absolute; bottom:20%; left:28%; width:8px; height:22px;
  background: linear-gradient(180deg, #e0d0a0 0%, #604020 100%);
  border-radius: 2px 2px 1px 1px;
}
.scn-collatine-boast .candle::after {
  content: '';
  position:absolute; top:-6px; left:-2px; width:12px; height:12px;
  background: radial-gradient(circle, #f0e060 0%, #d08020 60%, transparent 100%);
  border-radius: 50%;
  animation: cob-candle 2s ease-in-out infinite alternate;
}
@keyframes cob-moon { 0% { opacity:0.6; transform: scale(0.95); } 50% { opacity:0.9; transform: scale(1.02); } 100% { opacity:0.7; transform: scale(0.98); } }
@keyframes cob-goblet { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cob-figure { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-1px) rotate(0deg); } }
@keyframes cob-dagger { 0% { transform: rotate(15deg); opacity:0.7; } 50% { transform: rotate(30deg); opacity:1; } 100% { transform: rotate(20deg); opacity:0.8; } }
@keyframes cob-candle { 0% { filter: blur(1px); opacity:0.8; } 50% { filter: blur(0px); opacity:1; transform: scale(1.1); } 100% { filter: blur(1px); opacity:0.85; } }

/* reckoning-fortune – warm, dim-interior */
.scn-reckoning-fortune {
  background:
    linear-gradient(180deg, #1a0a0a 0%, #3a2a1a 40%, #5a3a2a 100%),
    radial-gradient(ellipse at 50% 80%, #6a4a3a 0%, #1a0a0a 70%);
}
.scn-reckoning-fortune .bg-wall {
  position:absolute; inset:0;
  background: repeating-linear-gradient(90deg, #2a1a1a 0px, #2a1a1a 2px, transparent 2px, transparent 8px);
  opacity:0.2;
}
.scn-reckoning-fortune .desk {
  position:absolute; bottom:15%; left:10%; right:10%; height:35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-reckoning-fortune .candle-flame {
  position:absolute; bottom:45%; left:25%; width:14px; height:30px;
  background: radial-gradient(ellipse at 50% 90%, #f0c060 0%, #d08020 40%, transparent 70%);
  border-radius: 50% 50% 30% 30%;
  animation: rfo-flame 3s ease-in-out infinite alternate;
}
.scn-reckoning-fortune .coin-pile {
  position:absolute; bottom:28%; left:45%; width:40px; height:20px;
  background: radial-gradient(ellipse, #a08050 0%, #705030 100%);
  border-radius: 50%;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.3);
  animation: rfo-coin 6s ease-in-out infinite;
}
.scn-reckoning-fortune .figure-reckon {
  position:absolute; bottom:30%; left:55%; width:28px; height:75px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: rfo-figure 10s ease-in-out infinite;
}
.scn-reckoning-fortune .window-night {
  position:absolute; top:10%; right:10%; width:30%; height:40%;
  border: 3px solid #2a2a2a;
  border-radius: 4px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-reckoning-fortune .curtain {
  position:absolute; top:8%; right:10%; width:10%; height:44%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 4px 4px 0;
  animation: rfo-curtain 15s ease-in-out infinite alternate;
}
@keyframes rfo-flame { 0% { transform: scaleY(0.8) translateY(0); opacity:0.7; } 50% { transform: scaleY(1.1) translateY(-4px); opacity:1; } 100% { transform: scaleY(0.9) translateY(-2px); opacity:0.8; } }
@keyframes rfo-coin { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(3deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes rfo-figure { 0% { transform: translateY(0) rotate(-1deg); } 40% { transform: translateY(-2px) rotate(1deg); } 70% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-1px) rotate(0deg); } }
@keyframes rfo-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }

/* beauty-itself – calm, bright-interior */
.scn-beauty-itself {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #e0d4b8 50%, #c8b898 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0 0%, #d8c8a8 80%);
}
.scn-beauty-itself .bg-light {
  position:absolute; inset:0;
  background: linear-gradient(135deg, rgba(255,250,240,0.3) 0%, transparent 60%);
}
.scn-beauty-itself .mirror-oval {
  position:absolute; top:10%; left:30%; width:40%; height:60%;
  border: 4px solid #b0a090;
  border-radius: 50%;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b898 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.05), 0 4px 20px rgba(0,0,0,0.1);
  animation: bei-mirror 20s ease-in-out infinite alternate;
}
.scn-beauty-itself .figure-lady {
  position:absolute; bottom:15%; left:45%; width:30px; height:80px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: bei-lady 12s ease-in-out infinite;
}
.scn-beauty-itself .lace-collar {
  position:absolute; bottom:60%; left:42%; width:36px; height:8px;
  background: repeating-linear-gradient(90deg, #f0e8d0 0px, #f0e8d0 3px, transparent 3px, transparent 6px);
  border-radius: 2px;
  animation: bei-lace 8s ease-in-out infinite alternate;
}
.scn-beauty-itself .jewel-pendant {
  position:absolute; bottom:50%; left:48%; width:10px; height:10px;
  background: radial-gradient(circle, #80c0e0 0%, #4080a0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px rgba(128,192,224,0.3);
  animation: bei-jewel 5s ease-in-out infinite;
}
.scn-beauty-itself .drapery {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #c8b898 0%, #a09080 100%);
  border-radius: 40% 60% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
  animation: bei-drape 25s ease-in-out infinite alternate;
}
.scn-beauty-itself .candle-soft {
  position:absolute; bottom:18%; left:20%; width:10px; height:30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a880 100%);
  border-radius: 2px;
}
.scn-beauty-itself .candle-soft::after {
  content: '';
  position:absolute; top:-8px; left:-3px; width:16px; height:16px;
  background: radial-gradient(circle, #fff0c0 0%, #f0d080 50%, transparent 100%);
  border-radius: 50%;
  animation: bei-candle 4s ease-in-out infinite alternate;
}
.scn-beauty-itself .rose-petal {
  position:absolute; bottom:22%; left:25%; width:12px; height:6px;
  background: radial-gradient(ellipse, #b87878 0%, #906060 100%);
  border-radius: 50% 0 50% 0;
  transform: rotate(30deg);
  animation: bei-petal 15s linear infinite;
}
@keyframes bei-mirror { 0% { opacity:0.8; transform: scale(0.98); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:0.9; transform: scale(0.99); } }
@keyframes bei-lady { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes bei-lace { 0% { opacity:0.6; } 100% { opacity:1; } }
@keyframes bei-jewel { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(0.98); } }
@keyframes bei-drape { 0% { transform: translateY(0); } 100% { transform: translateY(-5px); } }
@keyframes bei-candle { 0% { filter: blur(1px); opacity:0.8; } 50% { filter: blur(0px); opacity:1; transform: scale(1.15); } 100% { filter: blur(0.5px); opacity:0.9; } }
@keyframes bei-petal { 0% { transform: rotate(30deg) translateX(0); opacity:0; } 10% { opacity:0.6; } 90% { opacity:0.6; } 100% { transform: rotate(60deg) translateX(20px); opacity:0; } }

/* Scene 1: envy-stings */
.scn-envy-stings { background: linear-gradient(180deg, #4a4a5e 0%, #2e2e3e 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 100%, #3a3a4e 0%, transparent 70%); }
.scn-envy-stings .sky-overcast { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5a5a6e 0%, #3e3e4e 50%, #2a2a3a 100%); animation: es-sky 20s ease-in-out infinite alternate; }
.scn-envy-stings .ground-mottled { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: es-ground 15s ease-in-out infinite alternate; }
.scn-envy-stings .figure-envy { position:absolute; bottom:30%; left:50%; width:40px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: es-figure 6s ease-in-out infinite; }
.scn-envy-stings .sting-glint { position:absolute; bottom:45%; left:62%; width:8px; height:8px; background: radial-gradient(circle, #c0c0c0 0%, #808080 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 12px 6px #a0a0a0, 0 0 24px 12px rgba(160,160,160,.4); animation: es-sting 3s ease-in-out infinite alternate; }
.scn-envy-stings .cloud-veil-a { position:absolute; top:10%; left:10%; width:120px; height:20px; background: linear-gradient(180deg, rgba(180,180,200,.6) 0%, rgba(180,180,200,.1) 100%); border-radius:50%; filter: blur(8px); animation: es-drift-a 35s linear infinite; }
.scn-envy-stings .cloud-veil-b { position:absolute; top:20%; right:5%; width:80px; height:15px; background: linear-gradient(180deg, rgba(180,180,200,.4) 0%, rgba(180,180,200,.05) 100%); border-radius:50%; filter: blur(6px); animation: es-drift-b 50s linear infinite reverse; }
.scn-envy-stings .shadow-pool { position:absolute; bottom:0; left:40%; width:60px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); transform:translateX(-50%); animation: es-shadow 8s ease-in-out infinite alternate; }
@keyframes es-sky { 0% { opacity:.7; transform:translateY(0) } 50% { opacity:.9; transform:translateY(-4px) } 100% { opacity:.8; transform:translateY(2px) } }
@keyframes es-ground { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(2px) scaleY(1.02) } 100% { transform:translateY(-1px) scaleY(.98) } }
@keyframes es-figure { 0% { transform:translateX(-50%) rotate(0deg) } 25% { transform:translateX(-45%) rotate(-2deg) } 50% { transform:translateX(-50%) rotate(1deg) } 75% { transform:translateX(-55%) rotate(-1deg) } 100% { transform:translateX(-50%) rotate(0deg) } }
@keyframes es-sting { 0% { opacity:.6; transform:scale(.8) } 50% { opacity:1; transform:scale(1.2) } 100% { opacity:.7; transform:scale(.9) } }
@keyframes es-drift-a { 0% { transform:translateX(-30px) } 100% { transform:translateX(120vw) } }
@keyframes es-drift-b { 0% { transform:translateX(0) } 100% { transform:translateX(-100vw) } }
@keyframes es-shadow { 0% { opacity:.5; transform:scaleX(1) } 50% { opacity:.7; transform:scaleX(1.1) } 100% { opacity:.6; transform:scaleX(.95) } }

/* Scene 2: arrival-collatium */
.scn-arrival-collatium { background: linear-gradient(180deg, #e8d4b8 0%, #d4bfa0 40%, #b8a080 100%), radial-gradient(ellipse at 60% 20%, #f0e0c8 0%, transparent 60%); }
.scn-arrival-collatium .wall-warm { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #d4b898 0%, #b8a080 100%); box-shadow: inset 0 -10px 20px rgba(0,0,0,.1); }
.scn-arrival-collatium .window-frame { position:absolute; top:10%; left:60%; width:120px; height:150px; border: 8px solid #6a5030; background: transparent; border-radius: 4% 4% 8% 8%; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-arrival-collatium .window-glass { position:absolute; top:11.5%; left:62%; width:100px; height:130px; background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%); border-radius: 2% 2% 6% 6%; box-shadow: inset 0 0 20px rgba(255,255,200,.4); animation: ac-glass 12s ease-in-out infinite alternate; }
.scn-arrival-collatium .light-beam { position:absolute; top:5%; left:62%; width:100px; height:200%; background: linear-gradient(180deg, rgba(255,255,200,.15) 0%, rgba(255,255,200,.05) 100%); transform: skewX(-5deg); filter: blur(10px); opacity:.6; animation: ac-beam 8s ease-in-out infinite alternate; }
.scn-arrival-collatium .figure-lucrece { position:absolute; bottom:25%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: ac-figure 5s ease-in-out infinite; }
.scn-arrival-collatium .figure-tarquin { position:absolute; bottom:25%; left:65%; width:34px; height:65px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: ac-figure 5s ease-in-out infinite reverse; }
.scn-arrival-collatium .floor-marble { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #c8b898 0%, #a89070 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 8px 16px rgba(0,0,0,.2); }
.scn-arrival-collatium .shadow-figures { position:absolute; bottom:0; left:40%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); transform:translateX(-10px); animation: ac-shadow 5s ease-in-out infinite; }
@keyframes ac-glass { 0%{ opacity:.7; background-position:0 0 } 50%{ opacity:.9; background-position:0 10px } 100%{ opacity:.8; background-position:0 5px } }
@keyframes ac-beam { 0%{ opacity:.4; transform:skewX(-5deg) translateY(0) } 50%{ opacity:.7; transform:skewX(-5deg) translateY(10px) } 100%{ opacity:.5; transform:skewX(-5deg) translateY(5px) } }
@keyframes ac-figure { 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 ac-shadow { 0%{ opacity:.4; transform:scaleX(1) } 50%{ opacity:.6; transform:scaleX(1.1) } 100%{ opacity:.5; transform:scaleX(.95) } }

/* Scene 3: heraldry-face */
.scn-heraldry-face { background: linear-gradient(135deg, #ffdd99 0%, #ffcc66 50%, #e6b800 100%), radial-gradient(ellipse at 30% 40%, #ffebaa 0%, transparent 50%); }
.scn-heraldry-face .sun-burst { position:absolute; top:0; left:20%; width:200px; height:200px; background: radial-gradient(circle, #ffdd88 0%, #ffcc44 40%, transparent 70%); border-radius:50%; opacity:.5; animation: hf-sun 15s ease-in-out infinite alternate; }
.scn-heraldry-face .face-profile { position:absolute; bottom:20%; left:20%; width:120px; height:160px; background: linear-gradient(135deg, #f0d8b0 0%, #d4b898 100%); border-radius: 40% 60% 60% 40% / 50% 50% 50% 50%; box-shadow: inset 0 0 30px rgba(0,0,0,.15); }
.scn-heraldry-face .red-field { position:absolute; bottom:20%; left:20%; width:60px; height:160px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 40% 0 0 40% / 50% 0 0 50%; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); /* half face */ }
.scn-heraldry-face .white-field { position:absolute; bottom:20%; left:80%; width:60px; height:160px; background: linear-gradient(180deg, #f5e6d0 0%, #e0d0b8 100%); border-radius: 0 60% 40% 0 / 0 50% 50% 0%; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
.scn-heraldry-face .rose-symbol { position:absolute; bottom:35%; left:35%; width:20px; height:20px; background: radial-gradient(circle, #c8553d 0%, #802d1a 100%); border-radius:50%; box-shadow: 0 0 10px 4px rgba(200,85,61,.4); animation: hf-rose 6s ease-in-out infinite alternate; }
.scn-heraldry-face .lily-symbol { position:absolute; bottom:30%; left:70%; width:18px; height:24px; background: radial-gradient(circle, #f0e6d0 0%, #c0b090 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 8px 3px rgba(240,230,208,.5); animation: hf-lily 8s ease-in-out infinite alternate; }
.scn-heraldry-face .shield-outline { position:absolute; bottom:18%; left:18%; width:124px; height:164px; border: 3px solid #8a6a3a; border-radius: 40% 60% 60% 40% / 50% 50% 50% 50%; background: transparent; box-shadow: 0 0 0 2px #a08050; pointer-events: none; }
@keyframes hf-sun { 0%{ opacity:.4; transform:scale(1) } 50%{ opacity:.7; transform:scale(1.05) } 100%{ opacity:.5; transform:scale(.95) } }
@keyframes hf-rose { 0%{ transform:scale(.8) rotate(0deg); opacity:.8 } 50%{ transform:scale(1.1) rotate(15deg); opacity:1 } 100%{ transform:scale(.9) rotate(5deg); opacity:.9 } }
@keyframes hf-lily { 0%{ transform:scale(.9) rotate(-5deg); opacity:.7 } 50%{ transform:scale(1.05) rotate(0deg); opacity:.9 } 100%{ transform:scale(.95) rotate(3deg); opacity:.8 } }

/* Scene 4: silent-war */
.scn-silent-war { background: linear-gradient(180deg, #2a2020 0%, #1a1212 50%, #0a0808 100%), radial-gradient(ellipse at 50% 30%, #3a2828 0%, transparent 60%); }
.scn-silent-war .bg-dim { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #3a3030 0%, #1a1414 70%); animation: sw-bg 20s ease-in-out infinite alternate; }
.scn-silent-war .face-oval { position:absolute; top:20%; left:30%; width:160px; height:200px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1e1e 100%); border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%; box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-silent-war .rose-side { position:absolute; top:25%; left:32%; width:60px; height:150px; background: linear-gradient(180deg, #702243 0%, #4a152a 100%); border-radius: 50% 20% 20% 50% / 50% 30% 30% 50%; clip-path: inset(0 50% 0 0); /* left half */ }
.scn-silent-war .lily-side { position:absolute; top:25%; left:68%; width:60px; height:150px; background: linear-gradient(180deg, #b0a0a0 0%, #807070 100%); border-radius: 20% 50% 50% 20% / 30% 50% 50% 30%; clip-path: inset(0 0 0 50%); }
.scn-silent-war .eye-left { position:absolute; top:40%; left:42%; width:18px; height:12px; background: radial-gradient(circle, #f0e0d0 0%, #806060 70%); border-radius:50%; box-shadow: 0 0 8px 4px rgba(240,224,208,.3); animation: sw-eye 4s ease-in-out infinite alternate; }
.scn-silent-war .eye-right { position:absolute; top:40%; left:58%; width:18px; height:12px; background: radial-gradient(circle, #f0e0d0 0%, #806060 70%); border-radius:50%; box-shadow: 0 0 8px 4px rgba(240,224,208,.3); animation: sw-eye 4s ease-in-out infinite alternate-reverse; }
.scn-silent-war .war-lines { position:absolute; top:30%; left:50%; width:2px; height:100px; background: rgba(150,100,100,.3); transform: translateX(-50%); box-shadow: 0 0 6px 2px rgba(150,100,100,.2); animation: sw-lines 7s ease-in-out infinite; }
.scn-silent-war .pulse-overlay { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, rgba(80,40,50,.15) 0%, transparent 60%); pointer-events: none; animation: sw-pulse 5s ease-in-out infinite alternate; }
@keyframes sw-bg { 0%{ opacity:.7; filter:brightness(.9) } 50%{ opacity:.9; filter:brightness(1) } 100%{ opacity:.8; filter:brightness(.95) } }
@keyframes sw-eye { 0%{ transform:scaleY(1) scaleX(1); opacity:.6 } 50%{ transform:scaleY(1.2) scaleX(.9); opacity:.9 } 100%{ transform:scaleY(1) scaleX(1); opacity:.7 } }
@keyframes sw-lines { 0%{ transform:translateX(-50%) scaleY(1); opacity:.3 } 50%{ transform:translateX(-50%) scaleY(1.3); opacity:.5 } 100%{ transform:translateX(-50%) scaleY(1); opacity:.4 } }
@keyframes sw-pulse { 0%{ opacity:.3; filter:brightness(.8) } 50%{ opacity:.6; filter:brightness(1.1) } 100%{ opacity:.4; filter:brightness(.9) } }

.scn-self-confounds { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0d0d1a 100%), radial-gradient(ellipse at 50% 30%, #10102a 0%, transparent 80%); }
.scn-self-confounds .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #161628 60%, #080814 100%); animation: sc-deep 20s ease-in-out infinite alternate; }
.scn-self-confounds .floor { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #1a1a0a 0%, #0f0f05 100%); border-top:2px solid #2a2a1a; }
.scn-self-confounds .wall { position:absolute; top:0; left:0; right:0; bottom:22%; background: linear-gradient(180deg, #14142a 0%, #1a1a30 100%); }
.scn-self-confounds .window-frame { position:absolute; top:12%; right:10%; width:28%; height:45%; background: transparent; border:4px solid #2a2a3a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.7); animation: sc-window 12s ease-in-out infinite; }
.scn-self-confounds .bed { position:absolute; bottom:20%; left:15%; width:55%; height:18%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0f 100%); border-radius: 6px 6px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-self-confounds .figure { position:absolute; bottom:28%; left:35%; width:18%; height:28%; background: linear-gradient(135deg, #1a1a22 0%, #0a0a0f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-figure 6s ease-in-out infinite; }
.scn-self-confounds .candle { position:absolute; bottom:32%; right:25%; width:4px; height:12px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:2px; }
.scn-self-confounds .candle::before { content:''; position:absolute; top:-8px; left:-4px; width:12px; height:12px; background: radial-gradient(circle, #ffd080 0%, #c08030 60%, transparent 100%); border-radius:50%; animation: sc-candle 2s ease-in-out infinite alternate; box-shadow: 0 0 20px 8px #c08030, 0 0 40px 12px rgba(192,128,48,.3); }
.scn-self-confounds .mist { position:absolute; top:40%; left:-10%; width:120%; height:30%; background: linear-gradient(90deg, transparent 0%, rgba(200,200,220,.05) 50%, transparent 100%); filter: blur(12px); animation: sc-mist 30s linear infinite; }
@keyframes sc-deep { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sc-window { 0%,100% { box-shadow: inset 0 0 20px rgba(0,0,0,.7); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,.9); } }
@keyframes sc-figure { 0% { transform: translateY(0) rotate(-2deg) scale(1); } 50% { transform: translateY(-3px) rotate(2deg) scale(1.01); } 100% { transform: translateY(0) rotate(-1deg) scale(1); } }
@keyframes sc-candle { 0% { opacity:.7; box-shadow: 0 0 12px 4px #c08030; } 50% { opacity:1; box-shadow: 0 0 24px 10px #ffd080, 0 0 48px 16px rgba(255,208,128,.4); } 100% { opacity:.8; box-shadow: 0 0 16px 6px #c08030; } }
@keyframes sc-mist { 0% { transform: translateX(20px); } 50% { transform: translateX(-10px); } 100% { transform: translateX(20px); } }

.scn-lustful-lord-leaps { background: linear-gradient(180deg, #0d0d0a 0%, #1a1410 40%, #0a0806 100%), radial-gradient(ellipse at 30% 40%, #2a1a14 0%, transparent 70%); }
.scn-lustful-lord-leaps .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0a0808 0%, #1a1210 60%, #080606 100%); animation: ll-bg 15s ease-in-out infinite alternate; }
.scn-lustful-lord-leaps .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1210 0%, #0f0c0a 100%); border-top:2px solid #2a1a14; }
.scn-lustful-lord-leaps .wall { position:absolute; top:0; left:0; right:0; bottom:20%; background: linear-gradient(180deg, #14100c 0%, #1a1412 100%); }
.scn-lustful-lord-leaps .bed { position:absolute; bottom:18%; left:5%; width:30%; height:40%; background: linear-gradient(180deg, #2a1a14 0%, #1a0f0c 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.6); transform: rotate(-5deg); }
.scn-lustful-lord-leaps .figure { position:absolute; bottom:22%; left:45%; width:20%; height:45%; background: linear-gradient(135deg, #1a1412 0%, #0d0a08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ll-figure 1.5s ease-in-out infinite; }
.scn-lustful-lord-leaps .cloak { position:absolute; bottom:28%; left:40%; width:30%; height:35%; background: linear-gradient(135deg, #2a1a14 0%, #1a0f0a 100%); clip-path: polygon(0 100%, 30% 0, 70% 0, 100% 100%); transform-origin: bottom center; animation: ll-cloak 1.5s ease-in-out infinite; }
.scn-lustful-lord-leaps .shadow-wall { position:absolute; top:20%; right:8%; width:25%; height:60%; background: rgba(0,0,0,.6); filter: blur(8px); border-radius:10%; transform-origin: bottom center; animation: ll-shadow 2s ease-in-out infinite alternate; }
.scn-lustful-lord-leaps .lamp { position:absolute; top:25%; left:70%; width:6px; height:14px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:3px; transform-origin: top center; animation: ll-lamp 2s ease-in-out infinite; }
.scn-lustful-lord-leaps .lamp::before { content:''; position:absolute; top:-6px; left:-4px; width:14px; height:14px; background: radial-gradient(circle, #d09050 0%, #a06020 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 24px 8px #a06020, 0 0 48px 12px rgba(160,96,32,.3); animation: ll-lampglow 2s ease-in-out infinite alternate; }
@keyframes ll-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ll-figure { 0% { transform: translateY(0) rotate(-10deg) scaleX(1); } 30% { transform: translateY(-15px) rotate(15deg) scaleX(1.1); } 50% { transform: translateY(-20px) rotate(0deg) scaleX(1.2); } 70% { transform: translateY(-10px) rotate(-10deg) scaleX(1.1); } 100% { transform: translateY(0) rotate(-5deg) scaleX(1); } }
@keyframes ll-cloak { 0% { transform: translateX(0) rotate(-5deg) scaleY(1); } 30% { transform: translateX(10px) rotate(20deg) scaleY(1.15); } 50% { transform: translateX(15px) rotate(25deg) scaleY(1.2); } 70% { transform: translateX(8px) rotate(10deg) scaleY(1.1); } 100% { transform: translateX(0) rotate(-5deg) scaleY(1); } }
@keyframes ll-shadow { 0% { transform: scaleY(.8); opacity:.4; } 50% { transform: scaleY(1.2); opacity:.7; } 100% { transform: scaleY(.9); opacity:.5; } }
@keyframes ll-lamp { 0% { transform: rotate(-15deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-10deg); } }
@keyframes ll-lampglow { 0% { opacity:.6; box-shadow: 0 0 12px 4px #a06020; } 50% { opacity:1; box-shadow: 0 0 28px 12px #d09050, 0 0 48px 16px rgba(208,144,80,.4); } 100% { opacity:.7; box-shadow: 0 0 18px 6px #a06020; } }

/* sable-night */
.scn-sable-night {
  background: linear-gradient(180deg, #0b0e1a 0%, #1a1f3a 40%, #2a1e2e 70%, #1a1218 100%),
              radial-gradient(ellipse at 20% 80%, #3a2a2a 0%, transparent 60%);
}
.scn-sable-night .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #1a121a 0%, #0e0a16 100%);
  animation: sn-wall 20s ease-in-out infinite alternate;
}
.scn-sable-night .window-frame {
  position: absolute; top: 12%; left: 60%; width: 30%; height: 40%;
  background: #1a1a2a;
  border: 4px solid #2a2a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-sable-night .sky {
  position: absolute; top: 12%; left: 60.5%; width: 29%; height: 38%;
  background: linear-gradient(180deg, #0a1020 0%, #1a1e30 70%, #2a1a2a 100%);
  border-radius: 2px;
  animation: sn-sky 12s ease-in-out infinite alternate;
}
.scn-sable-night .moon {
  position: absolute; top: 18%; left: 72%; width: 8%; height: 12%;
  background: radial-gradient(circle, #d0c0a0 0%, #b0a080 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(176,160,128,0.3);
  animation: sn-moon 18s ease-in-out infinite;
}
.scn-sable-night .clouds {
  position: absolute; top: 16%; left: 55%; width: 40%; height: 10%;
  background: linear-gradient(90deg, transparent, rgba(200,180,160,0.15) 30%, rgba(200,180,160,0.25) 70%, transparent);
  filter: blur(8px);
  animation: sn-clouds 30s linear infinite;
}
.scn-sable-night .candle-stand {
  position: absolute; bottom: 22%; left: 30%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
}
.scn-sable-night .candle-flame {
  position: absolute; bottom: 40%; left: 31.5%; width: 3%; height: 6%;
  background: radial-gradient(circle at 50% 40%, #ffd080 0%, #f0a040 50%, transparent 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 15px rgba(240,160,64,0.6), 0 0 60px 30px rgba(240,160,64,0.3);
  animation: sn-candle 0.8s ease-in-out infinite alternate;
}
.scn-sable-night .bed {
  position: absolute; bottom: 0; left: 10%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1210 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -10px 40px rgba(0,0,0,0.6);
  animation: sn-bed 8s ease-in-out infinite;
}
.scn-sable-night .figure {
  position: absolute; bottom: 8%; left: 28%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sn-figure 6s ease-in-out infinite;
}
.scn-sable-night .dust {
  position: absolute; top: 20%; left: 0; width: 100%; height: 80%;
  background: radial-gradient(circle at 30% 40%, rgba(255,200,150,0.05) 0%, transparent 60%);
  filter: blur(4px);
  animation: sn-dust 20s linear infinite;
}
@keyframes sn-wall { 0% { opacity: 1; } 50% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes sn-sky { 0% { background-position: 0 0; } 50% { background-position: 0 5%; } 100% { background-position: 0 0; } }
@keyframes sn-moon { 0% { transform: translateY(0) scale(1); } 33% { transform: translateY(-2px) scale(1.02); } 66% { transform: translateY(1px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes sn-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(30%); } }
@keyframes sn-candle { 0% { transform: scaleY(1) rotate(-2deg); opacity: 0.9; box-shadow: 0 0 30px 15px rgba(240,160,64,0.6); } 50% { transform: scaleY(1.1) rotate(2deg); opacity: 1; box-shadow: 0 0 40px 20px rgba(255,180,80,0.8); } 100% { transform: scaleY(0.95) rotate(-1deg); opacity: 0.85; box-shadow: 0 0 20px 10px rgba(230,140,50,0.5); } }
@keyframes sn-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes sn-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-0.5px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(0.5px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sn-dust { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.3; transform: scale(1); } }

/* revolving-dangers */
.scn-revolving-dangers {
  background: linear-gradient(135deg, #0a0a14 0%, #1a1020 50%, #0a0a14 100%),
              radial-gradient(ellipse at 50% 50%, #2a2030 0%, transparent 70%);
}
.scn-revolving-dangers .void {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 50%, #1a1a2a 0%, #0a0a12 100%);
  animation: rd-void 10s ease-in-out infinite alternate;
}
.scn-revolving-dangers .vortex {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 80%;
  background: conic-gradient(from 0deg, #2a1a2a, #1a0a1a, #2a2030, #1a0a1a, #2a1a2a);
  border-radius: 50%;
  mask: radial-gradient(circle, transparent 30%, black 40%, black 70%, transparent 80%);
  -webkit-mask: radial-gradient(circle, transparent 30%, black 40%, black 70%, transparent 80%);
  animation: rd-vortex 15s linear infinite;
}
.scn-revolving-dangers .shard {
  position: absolute; width: 6%; height: 12%;
  background: linear-gradient(180deg, #5a3a3a 0%, #2a1a1a 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  border-radius: 2px;
}
.scn-revolving-dangers .shard-a { top: 20%; left: 30%; animation: rd-shard 4s ease-in-out infinite; }
.scn-revolving-dangers .shard-b { top: 60%; left: 60%; animation: rd-shard 5s ease-in-out infinite 1s; }
.scn-revolving-dangers .shard-c { top: 50%; left: 20%; animation: rd-shard 6s ease-in-out infinite 2s; }
.scn-revolving-dangers .figure {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: center bottom;
  animation: rd-figure 2s ease-in-out infinite alternate;
}
.scn-revolving-dangers .glow {
  position: absolute; bottom: 30%; left: 42%; width: 16%; height: 20%;
  background: radial-gradient(circle, rgba(200,180,160,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: rd-glow 3s ease-in-out infinite alternate;
}
.scn-revolving-dangers .chain {
  position: absolute; bottom: 5%; width: 8%; height: 15%;
  background: repeating-linear-gradient(0deg, #3a2a2a 0px, #3a2a2a 6px, #1a1212 6px, #1a1212 12px);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: rd-chain 1.5s ease-in-out infinite alternate;
}
.scn-revolving-dangers .chain-left { left: 35%; }
.scn-revolving-dangers .chain-right { right: 35%; animation-delay: 0.5s; }
@keyframes rd-void { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes rd-vortex { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(0.9); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes rd-shard { 0% { transform: translateY(0) rotate(0deg) scale(1); opacity: 0.8; } 25% { transform: translateY(-10px) rotate(15deg) scale(1.2); opacity: 1; } 50% { transform: translateY(5px) rotate(-10deg) scale(0.9); opacity: 0.9; } 75% { transform: translateY(-5px) rotate(5deg) scale(1.1); opacity: 0.7; } 100% { transform: translateY(0) rotate(0deg) scale(1); opacity: 0.8; } }
@keyframes rd-figure { 0% { transform: scale(1) rotate(0deg); } 33% { transform: scale(1.02) rotate(1deg); } 66% { transform: scale(0.98) rotate(-1deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes rd-glow { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.5); opacity: 0.8; } 100% { transform: scale(1); opacity: 0.5; } }
@keyframes rd-chain { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* surfeit-grief – overcast, dark mood */
.scn-surfeit-grief {
  background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 30%, #5a5a6a 60%, #4a4a5a 100%), radial-gradient(ellipse at 50% 100%, #6a6a7a 0%, transparent 70%);
}
.scn-surfeit-grief .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, rgba(200,200,210,0.3) 0%, transparent 100%);
  animation: sg-sky 20s ease-in-out infinite alternate;
}
.scn-surfeit-grief .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: sg-hills 25s ease-in-out infinite alternate;
}
.scn-surfeit-grief .tree {
  position: absolute; bottom: 45%; left: 30%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10px 10px 50% 50% / 10px 10px 20% 20%;
  transform-origin: bottom center;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: sg-tree 10s ease-in-out infinite;
}
.scn-surfeit-grief .figure {
  position: absolute; bottom: 35%; right: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sg-figure 6s ease-in-out infinite;
}
.scn-surfeit-grief .lantern {
  position: absolute; bottom: 38%; right: 38%; width: 8px; height: 8px;
  background: radial-gradient(circle, #a08040 0%, #604020 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(160,128,64,0.5), 0 0 40px 12px rgba(160,128,64,0.2);
  animation: sg-lantern 4s ease-in-out infinite alternate;
}
.scn-surfeit-grief .cloud-a, .scn-surfeit-grief .cloud-b {
  position: absolute; top: 15%; width: 100px; height: 20px;
  background: linear-gradient(90deg, transparent, rgba(200,200,210,0.2), transparent);
  border-radius: 50%;
  filter: blur(8px);
}
.scn-surfeit-grief .cloud-a {
  left: -120px;
  animation: sg-drift-a 50s linear infinite;
}
.scn-surfeit-grief .cloud-b {
  right: -120px; top: 25%;
  animation: sg-drift-b 60s linear infinite reverse;
}
@keyframes sg-sky {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(0.98); }
  100% { opacity: 0.8; transform: scaleY(1.02); }
}
@keyframes sg-hills {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes sg-tree {
  0%, 100% { transform: rotate(-2deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.02); }
}
@keyframes sg-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  70% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes sg-lantern {
  0% { box-shadow: 0 0 15px 4px rgba(160,128,64,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 8px rgba(160,128,64,0.7); opacity: 1; }
  100% { box-shadow: 0 0 20px 5px rgba(160,128,64,0.5); opacity: 0.9; }
}
@keyframes sg-drift-a {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(60vw) translateY(-3px); }
  100% { transform: translateX(120vw) translateY(0); }
}
@keyframes sg-drift-b {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-60vw) translateY(2px); }
  100% { transform: translateX(-120vw) translateY(0); }
}

/* ambition-foul – moonlit, dark mood */
.scn-ambition-foul {
  background: linear-gradient(180deg, #0a0a2a 0%, #151540 40%, #0d0d2a 100%), radial-gradient(ellipse at 50% 100%, #20205a 0%, transparent 70%);
}
.scn-ambition-foul .moon {
  position: absolute; top: 30%; left: 50%; width: 60px; height: 60px;
  margin-left: -30px;
  background: radial-gradient(circle, #e0e8f0 0%, #c0c8d8 60%, #9098a8 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,210,240,0.3);
  animation: af-moon 12s ease-in-out infinite alternate;
}
.scn-ambition-foul .moon-glow {
  position: absolute; top: 25%; left: 45%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,210,240,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: af-moonglow 8s ease-in-out infinite alternate;
}
.scn-ambition-foul .hill {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 60% 40% 0 0 / 90% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
  animation: af-hill 30s ease-in-out infinite alternate;
}
.scn-ambition-foul .castle {
  position: absolute; bottom: 18%; left: 42%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: af-castle 15s ease-in-out infinite;
}
.scn-ambition-foul .figure {
  position: absolute; bottom: 20%; left: 47%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000005 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: af-figure 5s ease-in-out infinite;
}
.scn-ambition-foul .star-field {
  position: absolute; top: 5%; left: 0; right: 0; height: 40%;
  background: transparent;
  box-shadow: 
    10px 20px 0 1px rgba(255,255,255,0.6),
    30px 60px 0 0 rgba(255,255,255,0.4),
    60px 90px 0 0 rgba(255,255,255,0.5),
    100px 30px 0 1px rgba(255,255,255,0.3),
    140px 70px 0 0 rgba(255,255,255,0.6),
    180px 50px 0 1px rgba(255,255,255,0.4),
    220px 80px 0 0 rgba(255,255,255,0.5),
    260px 20px 0 0 rgba(255,255,255,0.6),
    300px 100px 0 1px rgba(255,255,255,0.3);
  animation: af-stars 6s ease-in-out infinite alternate;
}
.scn-ambition-foul .cloud {
  position: absolute; top: 20%; left: -150px; width: 120px; height: 30px;
  background: linear-gradient(90deg, transparent, rgba(200,210,240,0.1), transparent);
  border-radius: 50%;
  filter: blur(10px);
  animation: af-cloud 90s linear infinite;
}
@keyframes af-moon {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.02); }
  100% { transform: translateY(0) scale(0.98); }
}
@keyframes af-moonglow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.6; transform: scale(1); }
}
@keyframes af-hill {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.01); }
  100% { transform: translateY(0) scale(0.99); }
}
@keyframes af-castle {
  0% { transform: translateY(0) skewX(0); }
  50% { transform: translateY(-2px) skewX(-1deg); }
  100% { transform: translateY(0) skewX(0); }
}
@keyframes af-figure {
  0% { transform: translateY(0) rotate(0) scaleY(1); }
  30% { transform: translateY(-3px) rotate(-5deg) scaleY(1.05); }
  60% { transform: translateY(-2px) rotate(2deg) scaleY(0.95); }
  100% { transform: translateY(0) rotate(0) scaleY(1); }
}
@keyframes af-stars {
  0% { opacity: 0.7; }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes af-cloud {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(60vw) translateY(5px); }
  100% { transform: translateX(120vw) translateY(0); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.motes { position: absolute; pointer-events: none; }
.shrub-1 { position: absolute; pointer-events: none; }
.spike-1 { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* Scene: item-knife */
.scn-item-knife {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 60%);
}
.scn-item-knife .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 50%, #2a2a3e 100%);
  border-bottom: 2px solid #4a3a2a;
}
.scn-item-knife .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
}
.scn-item-knife .light {
  position: absolute; top: 20%; left: 35%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0c060 0%, rgba(240,192,96,0.3) 60%, transparent 90%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(240,192,96,0.4), 0 0 80px 30px rgba(240,192,96,0.2);
  animation: ik-flicker 3s ease-in-out infinite alternate;
}
.scn-item-knife .body-silhouette {
  position: absolute; bottom: 25%; left: 30%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ik-body 6s ease-in-out infinite;
}
.scn-item-knife .father-silhouette {
  position: absolute; bottom: 24%; left: 22%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-10deg) translateY(5px);
  animation: ik-father 8s ease-in-out infinite;
}
.scn-item-knife .brutus-silhouette {
  position: absolute; bottom: 24%; right: 25%; width: 45px; height: 75px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%);
  border-radius: 30% 40% 30% 30% / 50% 60% 30% 30%;
  transform: scaleX(-1);
  animation: ik-brutus 5s ease-in-out infinite;
}
.scn-item-knife .knife {
  position: absolute; bottom: 42%; right: 30%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #b0a8a0 0%, #706860 100%);
  border-radius: 2px 2px 10% 10%;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: ik-knife 4s ease-in-out infinite;
}
.scn-item-knife .blood-drip {
  position: absolute; bottom: 40%; left: 35%; width: 3px; height: 15px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0e0f 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ik-blood 2s ease-in-out infinite;
}
@keyframes ik-flicker { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.98); } }
@keyframes ik-body { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ik-father { 0% { transform: rotate(-10deg) translateY(5px); } 50% { transform: rotate(-12deg) translateY(3px); } 100% { transform: rotate(-10deg) translateY(5px); } }
@keyframes ik-brutus { 0% { transform: scaleX(-1) rotate(0deg); } 50% { transform: scaleX(-1) rotate(2deg); } 100% { transform: scaleX(-1) rotate(0deg); } }
@keyframes ik-knife { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes ik-blood { 0% { transform: translateY(0) scaleY(1); opacity: 0.8; } 50% { transform: translateY(-5px) scaleY(1.2); opacity: 1; } 100% { transform: translateY(0) scaleY(1); opacity: 0.6; } }

/* Scene: brutus-urges */
.scn-brutus-urges {
  background: 
    linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 40%, #2a2a3e 100%),
    radial-gradient(ellipse at 70% 40%, #5a4a3a 0%, transparent 70%);
}
.scn-brutus-urges .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 60%, #1a1a2e 100%);
  opacity: 0.9;
}
.scn-brutus-urges .floor-mid {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
}
.scn-brutus-urges .wall-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.4);
}
.scn-brutus-urges .torch {
  position: absolute; top: 30%; left: 60%; width: 20px; height: 30px;
  background: radial-gradient(circle, #f0a060 0%, rgba(240,160,96,0.5) 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,160,96,0.4);
  animation: bu-torch 2s ease-in-out infinite alternate;
}
.scn-brutus-urges .collatine-silhouette {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg) translateY(5px);
  animation: bu-collatine 7s ease-in-out infinite;
}
.scn-brutus-urges .lucretius-silhouette {
  position: absolute; bottom: 22%; left: 35%; width: 45px; height: 70px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-8deg) translateY(3px);
  animation: bu-lucretius 9s ease-in-out infinite;
}
.scn-brutus-urges .brutus-silhouette-fore {
  position: absolute; bottom: 18%; right: 30%; width: 55px; height: 90px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%);
  border-radius: 30% 40% 30% 30% / 50% 60% 30% 30%;
  transform: scaleX(-1) rotate(-3deg);
  animation: bu-brutus 4s ease-in-out infinite;
}
.scn-brutus-urges .shadow-sharp {
  position: absolute; bottom: 10%; left: 40%; width: 80px; height: 10px;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(2px);
  animation: bu-shadow 6s ease-in-out infinite;
}
@keyframes bu-torch { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.9); } }
@keyframes bu-collatine { 0% { transform: rotate(5deg) translateY(5px); } 50% { transform: rotate(3deg) translateY(0); } 100% { transform: rotate(5deg) translateY(5px); } }
@keyframes bu-lucretius { 0% { transform: rotate(-8deg) translateY(3px); } 50% { transform: rotate(-10deg) translateY(0); } 100% { transform: rotate(-8deg) translateY(3px); } }
@keyframes bu-brutus { 0% { transform: scaleX(-1) rotate(-3deg) translateX(0); } 50% { transform: scaleX(-1) rotate(0deg) translateX(5px); } 100% { transform: scaleX(-1) rotate(-3deg) translateX(0); } }
@keyframes bu-shadow { 0% { transform: scaleX(1); opacity: 0.7; } 50% { transform: scaleX(1.2); opacity: 0.9; } 100% { transform: scaleX(1); opacity: 0.7; } }

/* scene 1: hecuba-painted */
.scn-hecuba-painted {
  background: linear-gradient(180deg, #e8d5c0 0%, #c8b098 40%, #a88a70 100%), radial-gradient(ellipse at 60% 40%, #fff0e0 0%, transparent 60%);
}
.scn-hecuba-painted .wall { position:absolute; inset:0; background: linear-gradient(135deg, #d4c0aa 0%, #b8a48e 100%); }
.scn-hecuba-painted .frame { position:absolute; top:8%; left:15%; width:70%; height:80%; border: 12px solid #7a6040; border-radius:4px; box-shadow: 0 0 30px rgba(0,0,0,0.4); background: transparent; }
.scn-hecuba-painted .painting-bg { position:absolute; top:12%; left:18%; width:64%; height:72%; background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:2px; }
.scn-hecuba-painted .hecuba-figure { position:absolute; bottom:18%; left:38%; width:80px; height:140px; background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%); border-radius: 60% 40% 50% 50% / 80% 70% 40% 30%; transform: rotate(-8deg); box-shadow: -10px 5px 15px rgba(0,0,0,0.5); animation: hp-wince 4s ease-in-out infinite; }
.scn-hecuba-painted .hero-shadow { position:absolute; bottom:14%; left:42%; width:70px; height:30px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 70%); animation: hp-shadow 4s ease-in-out infinite; }
.scn-hecuba-painted .candle-glow { position:absolute; top:5%; right:10%; width:40px; height:40px; background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%); animation: hp-flicker 2s ease-in-out infinite alternate; }
.scn-hecuba-painted .tear { position:absolute; bottom:22%; left:35%; width:6px; height:12px; background: radial-gradient(ellipse, #a0c4ff 0%, #6080c0 100%); border-radius:50%; box-shadow: 0 0 8px rgba(96,128,192,0.6); animation: hp-tear 3s ease-in-out infinite; }
@keyframes hp-wince { 0%,100% { transform: rotate(-8deg) scale(1); } 25% { transform: rotate(-10deg) scale(1.02); } 50% { transform: rotate(-6deg) scale(0.98); } 75% { transform: rotate(-12deg) scale(1.01); } }
@keyframes hp-shadow { 0%,100% { transform: scaleX(1); opacity:0.7; } 50% { transform: scaleX(1.1); opacity:0.5; } }
@keyframes hp-flicker { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(0.9); } }
@keyframes hp-tear { 0% { transform: translateY(0) scaleY(1); opacity:1; } 50% { transform: translateY(20px) scaleY(1.2); opacity:0.8; } 100% { transform: translateY(40px) scaleY(0.5); opacity:0; } }

/* scene 2: sinon-recognized */
.scn-sinon-recognized {
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 50%, #7a6a58 100%), radial-gradient(ellipse at 40% 30%, #ffe0c0 0%, transparent 70%);
}
.scn-sinon-recognized .wall { position:absolute; inset:0; background: linear-gradient(135deg, #b8a490 0%, #9a8470 100%); }
.scn-sinon-recognized .painting-fragment { position:absolute; top:10%; left:20%; width:60%; height:70%; background: linear-gradient(135deg, #5a3a2a 0%, #3a2a1a 100%); border:8px solid #6a4a30; border-radius:4px; transform: rotate(2deg); box-shadow: 0 0 40px rgba(0,0,0,0.5); }
.scn-sinon-recognized .sinon-head { position:absolute; top:28%; left:38%; width:60px; height:80px; background: linear-gradient(180deg, #d4a07a 0%, #b87858 100%); border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%; transform: rotate(10deg); box-shadow: -8px 8px 10px rgba(0,0,0,0.4); animation: sr-turn 6s ease-in-out infinite; }
.scn-sinon-recognized .sinon-eye { position:absolute; top:35%; left:42%; width:12px; height:8px; background: #1a1a2a; border-radius:50%; box-shadow: 0 0 6px rgba(255,255,255,0.3); animation: sr-blink 3s ease-in-out infinite; }
.scn-sinon-recognized .hand-tear { position:absolute; bottom:20%; left:32%; width:24px; height:40px; background: linear-gradient(180deg, #d4a07a 0%, #b07050 100%); border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%; transform: rotate(-30deg); transform-origin: top left; animation: sr-tear 4s ease-in-out infinite; }
.scn-sinon-recognized .shadow-swoop { position:absolute; bottom:12%; left:30%; width:100px; height:80px; background: radial-gradient(ellipse at 40% 60%, rgba(0,0,0,0.5) 0%, transparent 70%); animation: sr-shadow 5s ease-in-out infinite; }
.scn-sinon-recognized .light-shaft { position:absolute; top:0; left:20%; width:4px; height:100%; background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%); transform: rotate(15deg); transform-origin: top; animation: sr-light 8s ease-in-out infinite; }
@keyframes sr-turn { 0%,100% { transform: rotate(10deg) scale(1); } 25% { transform: rotate(15deg) scale(1.02); } 50% { transform: rotate(5deg) scale(0.98); } 75% { transform: rotate(12deg) scale(1.01); } }
@keyframes sr-blink { 0%,90%,100% { transform: scaleY(1); } 95% { transform: scaleY(0.1); } }
@keyframes sr-tear { 0% { transform: rotate(-30deg) translate(0,0); } 50% { transform: rotate(-20deg) translate(10px,30px); } 100% { transform: rotate(-30deg) translate(0,0); } }
@keyframes sr-shadow { 0%,100% { opacity:0.6; } 50% { opacity:0.3; transform: scale(1.1); } }
@keyframes sr-light { 0%,100% { opacity:0.3; transform: rotate(15deg); } 50% { opacity:0.8; transform: rotate(18deg); } }

/* scene 3: collatine-arrives */
.scn-collatine-arrives {
  background: linear-gradient(180deg, #e0d0c0 0%, #c0b0a0 50%, #a09080 100%), radial-gradient(ellipse at 50% 80%, #f0e0d0 0%, transparent 60%);
}
.scn-collatine-arrives .room-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a09080 0%, #7a6a58 100%); }
.scn-collatine-arrives .doorway { position:absolute; bottom:20%; left:15%; width:30%; height:60%; background: #5a4a3a; border:6px solid #6a5a48; border-radius:4px 4px 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.3); }
.scn-collatine-arrives .collatine-figure { position:absolute; bottom:22%; left:20%; width:50px; height:120px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50% 40% 40% 40% / 70% 60% 50% 50%; transform: rotate(-5deg); animation: ca-enter 5s ease-in-out infinite; }
.scn-collatine-arrives .lucrece-figure { position:absolute; bottom:24%; right:20%; width:48px; height:110px; background: linear-gradient(180deg, #b87858 0%, #8a5a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(3deg); box-shadow: -5px 0 15px rgba(0,0,0,0.4); animation: ca-sorrow 6s ease-in-out infinite; }
.scn-collatine-arrives .lucrece-hair { position:absolute; top:24%; right:18%; width:60px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 70% 50% 40% 40% / 80% 60% 60% 60%; transform: rotate(10deg); animation: ca-hair 7s ease-in-out infinite; }
.scn-collatine-arrives .sad-eye { position:absolute; top:30%; right:24%; width:10px; height:6px; background: #1a1a2a; border-radius:50%; box-shadow: 0 0 8px rgba(255,200,150,0.5); animation: ca-blink 3s ease-in-out infinite; }
.scn-collatine-arrives .tear-stream { position:absolute; bottom:30%; right:23%; width:4px; height:30px; background: linear-gradient(180deg, #c0d0ff 0%, #a0b8e0 100%); border-radius:50%; opacity:0.6; animation: ca-tear 4s ease-in-out infinite; }
@keyframes ca-enter { 0% { transform: rotate(-5deg) translateX(-20px); opacity:0; } 20% { opacity:1; } 100% { transform: rotate(-5deg) translateX(0); opacity:1; } }
@keyframes ca-sorrow { 0%,100% { transform: rotate(3deg) scale(1); } 50% { transform: rotate(6deg) scale(0.97); } }
@keyframes ca-hair { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-3px); } }
@keyframes ca-blink { 0%,90%,100% { transform: scaleY(1); } 95% { transform: scaleY(0.1); } }
@keyframes ca-tear { 0% { transform: translateY(0) scaleY(1); opacity:0.6; } 50% { transform: translateY(20px) scaleY(1.3); opacity:0.8; } 100% { transform: translateY(40px) scaleY(0.6); opacity:0; } }

/* scene 4: lucrece-stabs-herself */
.scn-lucrece-stabs-herself {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 70%, #c08040 0%, transparent 60%);
}
.scn-lucrece-stabs-herself .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); }
.scn-lucrece-stabs-herself .wall-shadow { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 60%); }
.scn-lucrece-stabs-herself .lucrece-silhouette { position:absolute; bottom:20%; left:50%; width:70px; height:140px; transform:translateX(-50%); background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 70% 60% 40% 30%; box-shadow: -10px 0 20px rgba(0,0,0,0.5); animation: ls-stand 5s ease-in-out infinite; }
.scn-lucrece-stabs-herself .arm { position:absolute; bottom:35%; left:50%; width:16px; height:60px; transform-origin: top center; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(30deg) translateX(-20px); animation: ls-arm 4s ease-in-out infinite; }
.scn-lucrece-stabs-herself .knife { position:absolute; bottom:50%; left:44%; width:4px; height:30px; background: silver; box-shadow: 0 0 10px rgba(200,200,200,0.8); transform: rotate(30deg); animation: ls-knife 4s ease-in-out infinite; }
.scn-lucrece-stabs-herself .blood-drop { position:absolute; bottom:40%; left:46%; width:8px; height:10px; background: radial-gradient(ellipse, #a0461a 0%, #5c2010 100%); border-radius:50%; animation: ls-blood 3s ease-in-out infinite; }
.scn-lucrece-stabs-herself .light-rim { position:absolute; top:10%; left:30%; width:40%; height:60%; border:2px solid rgba(255,200,100,0.15); border-radius:50%; filter: blur(10px); animation: ls-rim 8s ease-in-out infinite alternate; }
@keyframes ls-stand { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) rotate(2deg); } }
@keyframes ls-arm { 0%,100% { transform: rotate(30deg) translateX(-20px); } 25% { transform: rotate(40deg) translateX(-15px); } 50% { transform: rotate(30deg) translateX(-20px); } 75% { transform: rotate(20deg) translateX(-25px); } }
@keyframes ls-knife { 0%,100% { transform: rotate(30deg) translate(0,0); opacity:1; } 50% { transform: rotate(30deg) translate(0,-10px); opacity:0.8; } }
@keyframes ls-blood { 0% { transform: translateY(0) scale(1); opacity:0; } 10% { opacity:0.8; } 50% { transform: translateY(20px) scale(1.5); opacity:0.6; } 100% { transform: translateY(40px) scale(2); opacity:0; } }
@keyframes ls-rim { 0% { opacity:0.2; } 100% { opacity:0.6; } }

.scn-tarquin-pauses { background: linear-gradient(180deg, #1e120e 0%, #2a1c14 40%, #3a2a1e 100%), radial-gradient(ellipse at 50% 30%, #4a3222 0%, transparent 70%); }
.scn-tarquin-pauses .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a0f0a 0%, #2e1c12 100%); }
.scn-tarquin-pauses .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1e 0%, #1e120e 100%); border-radius: 60% 60% 0 0 / 20% 20% 0 0; }
.scn-tarquin-pauses .curtain-l { position:absolute; top:0; left:0; bottom:30%; width:25%; background: linear-gradient(90deg, #4a3020 0%, #2e1c12 100%); border-radius: 0 30% 30% 0; box-shadow: 4px 0 12px rgba(0,0,0,.5); animation: tp-curtain 12s ease-in-out infinite alternate; }
.scn-tarquin-pauses .curtain-r { position:absolute; top:0; right:0; bottom:30%; width:25%; background: linear-gradient(270deg, #4a3020 0%, #2e1c12 100%); border-radius: 30% 0 0 30%; box-shadow: -4px 0 12px rgba(0,0,0,.5); animation: tp-curtain 12s ease-in-out infinite alternate-reverse; }
.scn-tarquin-pauses .candle { position:absolute; bottom:40%; left:30%; width:8px; height:20px; background: linear-gradient(180deg, #e8c080 0%, #a06020 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px #d09030, 0 0 40px 12px rgba(200,140,40,.3); animation: tp-candle 4s ease-in-out infinite; }
.scn-tarquin-pauses .tp-figure { position:absolute; bottom:30%; left:55%; width:24px; height:50px; background: linear-gradient(90deg, #0a0504 0%, #1a0f0a 100%); border-radius: 50% 40% 40% 40% / 60% 40% 40% 40%; transform-origin: bottom center; animation: tp-tarquin 5s ease-in-out infinite; }
.scn-tarquin-pauses .lc-figure { position:absolute; bottom:30%; left:10%; width:22px; height:40px; background: linear-gradient(180deg, #2e1c12 0%, #1a0f0a 100%); border-radius: 40% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tp-lucrece 6s ease-in-out infinite; }
@keyframes tp-curtain { 0% { opacity:.8; transform:scaleX(1) } 50% { opacity:1; transform:scaleX(1.05) } 100% { opacity:.85; transform:scaleX(.98) } }
@keyframes tp-candle { 0% { transform:scaleY(1) translateY(0); opacity:.9 } 50% { transform:scaleY(1.08) translateY(-2px); opacity:1 } 100% { transform:scaleY(.96) translateY(0); opacity:.85 } }
@keyframes tp-tarquin { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(2px) rotate(1deg) } 50% { transform:translateX(0) rotate(0deg) } 75% { transform:translateX(-2px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes tp-lucrece { 0% { transform:translateY(0) rotate(0deg) } 33% { transform:translateY(-1px) rotate(2deg) } 66% { transform:translateY(0) rotate(-1deg) } 100% { transform:translateY(0) rotate(0deg) } }

.scn-lucrece-plea { background: linear-gradient(180deg, #1a0f0a 0%, #2e1c12 40%, #3a2a1e 100%), radial-gradient(ellipse at 50% 20%, #4a3222 0%, transparent 70%); }
.scn-lucrece-plea .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #140a06 0%, #2a1c12 100%); }
.scn-lucrece-plea .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a1e 0%, #1a0f0a 100%); border-radius: 50% 50% 0 0 / 10% 10% 0 0; }
.scn-lucrece-plea .candle { position:absolute; bottom:35%; right:35%; width:8px; height:18px; background: linear-gradient(180deg, #e0b070 0%, #a05818 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 16px 4px #c08030, 0 0 32px 8px rgba(180,100,30,.3); animation: lp-candle 5s ease-in-out infinite; }
.scn-lucrece-plea .lp-figure { position:absolute; bottom:25%; left:20%; width:20px; height:38px; background: linear-gradient(180deg, #3a2a1e 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 70% 60% 40% 40%; transform-origin: bottom center; animation: lp-kneel 4s ease-in-out infinite; }
.scn-lucrece-plea .tq-figure { position:absolute; bottom:25%; left:55%; width:26px; height:55px; background: linear-gradient(90deg, #0a0504 0%, #1a0f0a 100%); border-radius: 40% 50% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom center; animation: lp-stand 6s ease-in-out infinite; }
.scn-lucrece-plea .shadow { position:absolute; bottom:25%; left:20%; width:30px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); filter: blur(4px); animation: lp-shadow 4s ease-in-out infinite; }
.scn-lucrece-plea .light-spot { position:absolute; bottom:30%; left:35%; width:60px; height:80px; background: radial-gradient(ellipse, rgba(200,140,40,.15) 0%, transparent 100%); animation: lp-spot 8s ease-in-out infinite alternate; }
@keyframes lp-candle { 0% { transform:scaleY(1); opacity:.85 } 50% { transform:scaleY(1.1) translateY(-2px); opacity:1 } 100% { transform:scaleY(.95); opacity:.8 } }
@keyframes lp-kneel { 0% { transform:translateY(0) rotate(0deg) } 30% { transform:translateY(-2px) rotate(2deg) } 60% { transform:translateY(0) rotate(-1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes lp-stand { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(-3px) rotate(1deg) } 50% { transform:translateX(0) rotate(-1deg) } 75% { transform:translateX(3px) rotate(1deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes lp-shadow { 0% { transform:translateX(0) scale(1); opacity:.5 } 50% { transform:translateX(2px) scale(1.1); opacity:.7 } 100% { transform:translateX(-1px) scale(.9); opacity:.4 } }
@keyframes lp-spot { 0% { opacity:.3; transform:translateY(0) } 50% { opacity:.6; transform:translateY(-5px) } 100% { opacity:.4; transform:translateY(0) } }

.scn-item-nightly-linen { background: linear-gradient(180deg, #0e0806 0%, #1a0f0a 40%, #2e1c12 100%), radial-gradient(ellipse at 50% 40%, #3a2216 0%, transparent 70%); }
.scn-item-nightly-linen .bg-bed { position:absolute; inset:0; background: linear-gradient(180deg, #0a0604 0%, #1a0f0a 100%); }
.scn-item-nightly-linen .pillow { position:absolute; bottom:25%; left:25%; width:40px; height:20px; background: radial-gradient(ellipse at 50% 40%, #4a3828 0%, #2e1c12 100%); border-radius: 50%; animation: nl-pillow 9s ease-in-out infinite; }
.scn-item-nightly-linen .linen { position:absolute; bottom:30%; left:20%; right:30%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%); border-radius: 10% 10% 40% 40%; opacity:.8; animation: nl-linen 6s ease-in-out infinite alternate; }
.scn-item-nightly-linen .lc-hand { position:absolute; bottom:30%; left:35%; width:10px; height:14px; background: linear-gradient(180deg, #3a2a1e 0%, #1a0f0a 100%); border-radius: 40% 40% 20% 20%; animation: nl-hand 4s ease-in-out infinite; }
.scn-item-nightly-linen .tq-face { position:absolute; bottom:45%; right:30%; width:18px; height:22px; background: linear-gradient(180deg, #0a0504 0%, #1a0f0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: nl-face 5s ease-in-out infinite; }
.scn-item-nightly-linen .candle { position:absolute; bottom:35%; left:10%; width:6px; height:15px; background: linear-gradient(180deg, #d0a060 0%, #a05818 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 12px 3px #c08030, 0 0 24px 6px rgba(180,100,30,.3); animation: nl-candle 5s ease-in-out infinite; }
.scn-item-nightly-linen .shadow { position:absolute; bottom:25%; right:20%; width:50px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); filter: blur(6px); animation: nl-shadow 8s ease-in-out infinite alternate; }
@keyframes nl-pillow { 0% { transform:scaleY(1) translateY(0) } 50% { transform:scaleY(1.05) translateY(-2px) } 100% { transform:scaleY(1) translateY(0) } }
@keyframes nl-linen { 0% { opacity:.7; transform:translateY(0) } 50% { opacity:.9; transform:translateY(3px) } 100% { opacity:.75; transform:translateY(-2px) } }
@keyframes nl-hand { 0% { transform:translateX(0) rotate(0deg) } 33% { transform:translateX(3px) rotate(5deg) } 66% { transform:translateX(0) rotate(-3deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes nl-face { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(-2px) rotate(3deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes nl-candle { 0% { transform:scaleY(1); opacity:.8 } 50% { transform:scaleY(1.12) translateY(-3px); opacity:1 } 100% { transform:scaleY(.95); opacity:.75 } }
@keyframes nl-shadow { 0% { opacity:.4; transform:scale(1) } 50% { opacity:.7; transform:scale(1.1) } 100% { opacity:.5; transform:scale(.95) } }

.scn-tarquin-surfeit { background: linear-gradient(180deg, #0a0604 0%, #1a0f0a 40%, #2e1c12 100%), radial-gradient(ellipse at 50% 30%, #3a2216 0%, transparent 70%); }
.scn-tarquin-surfeit .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #080402 0%, #1a0f0a 100%); }
.scn-tarquin-surfeit .bed { position:absolute; bottom:0; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #3a2a1e 0%, #1a0f0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: ts-bed 8s ease-in-out infinite; }
.scn-tarquin-surfeit .lc-figure { position:absolute; bottom:20%; left:30%; width:22px; height:36px; background: linear-gradient(180deg, #2e1c12 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: ts-lucrece 5s ease-in-out infinite; }
.scn-tarquin-surfeit .tq-figure { position:absolute; bottom:30%; right:15%; width:24px; height:50px; background: linear-gradient(90deg, #0a0504 0%, #1a0f0a 100%); border-radius: 40% 50% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom center; animation: ts-tarquin 7s ease-in-out infinite; }
.scn-tarquin-surfeit .candle { position:absolute; bottom:35%; left:15%; width:6px; height:14px; background: linear-gradient(180deg, #d0a060 0%, #905018 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 10px 2px #b07028, 0 0 20px 5px rgba(160,80,20,.3); animation: ts-candle 4s ease-in-out infinite; }
.scn-tarquin-surfeit .tear { position:absolute; bottom:30%; left:30%; width:4px; height:6px; background: radial-gradient(circle, #c0a080 0%, #806050 100%); border-radius: 50%; animation: ts-tear 3s ease-in-out infinite; }
.scn-tarquin-surfeit .shadow { position:absolute; bottom:0; left:40%; right:5%; height:20%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.5) 50%, transparent 100%); filter: blur(5px); animation: ts-shadow 10s ease-in-out infinite alternate; }
.scn-tarquin-surfeit .darkness { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, transparent 0%, rgba(0,0,0,.4) 100%); animation: ts-darkness 12s ease-in-out infinite alternate; }
@keyframes ts-bed { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(2px) scaleY(1.02) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes ts-lucrece { 0% { transform:translateY(0) rotate(0deg) } 33% { transform:translateY(-3px) rotate(4deg) } 66% { transform:translateY(0) rotate(-2deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes ts-tarquin { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(4px) rotate(2deg) } 50% { transform:translateX(0) rotate(0deg) } 75% { transform:translateX(-3px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes ts-candle { 0% { transform:scaleY(1); opacity:.8 } 50% { transform:scaleY(1.08) translateY(-2px); opacity:1 } 100% { transform:scaleY(.95); opacity:.7 } }
@keyframes ts-tear { 0% { transform:scale(1); opacity:.6 } 50% { transform:scale(1.2) translateY(-4px); opacity:1 } 100% { transform:scale(1); opacity:.5 } }
@keyframes ts-shadow { 0% { opacity:.4; transform:scaleX(1) } 50% { opacity:.7; transform:scaleX(1.1) } 100% { opacity:.5; transform:scaleX(.9) } }
@keyframes ts-darkness { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }

.scn-tarquin-prayer {
  background: linear-gradient(180deg, #0d0a1a 0%, #1a1530 40%, #2a1f3a 100%),
              radial-gradient(ellipse at 50% 30%, #2a1f3a 0%, transparent 60%);
}
.scn-tarquin-prayer .curtain-left {
  position: absolute; left: 0; top: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 0 20% 20% 0 / 0 30% 30% 0;
  animation: tp-curtain 12s ease-in-out infinite alternate;
}
.scn-tarquin-prayer .curtain-right {
  position: absolute; right: 0; top: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 20% 0 0 20% / 30% 0 0 30%;
  animation: tp-curtain 12s ease-in-out infinite alternate-reverse;
}
.scn-tarquin-prayer .bed {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
}
.scn-tarquin-prayer .lucrece-fig {
  position: absolute; bottom: 30%; left: 32%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09078 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tp-breathe 4s ease-in-out infinite;
}
.scn-tarquin-prayer .hair {
  position: absolute; bottom: 48%; left: 30%; width: 16%; height: 8%;
  background: radial-gradient(ellipse, #2a1a0a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: tp-hair 6s ease-in-out infinite;
}
.scn-tarquin-prayer .tarquin-sil {
  position: absolute; bottom: 10%; left: 10%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  opacity: 0.8;
  animation: tp-tarquin 8s ease-in-out infinite;
}
.scn-tarquin-prayer .glow-bond {
  position: absolute; bottom: 35%; left: 38%; width: 4%; height: 4%;
  background: radial-gradient(circle, #ffd080 0%, #c89040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,144,64,0.5);
  animation: tp-glow 3s ease-in-out infinite alternate;
}
@keyframes tp-curtain {
  0% { opacity: 0.7; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(2%); }
  100% { opacity: 0.8; transform: translateX(0); }
}
@keyframes tp-breathe {
  0%, 100% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
}
@keyframes tp-hair {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes tp-tarquin {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-3px) scaleX(0.98); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes tp-glow {
  0% { box-shadow: 0 0 15px 3px rgba(200,144,64,0.4); opacity: 0.7; }
  50% { box-shadow: 0 0 30px 10px rgba(255,208,128,0.6); opacity: 1; }
  100% { box-shadow: 0 0 20px 5px rgba(200,144,64,0.5); opacity: 0.8; }
}

.scn-lucrece-lying-sleeping {
  background: linear-gradient(180deg, #0c0c1a 0%, #14142a 40%, #1a1840 100%),
              radial-gradient(ellipse at 50% 60%, #1a1840 0%, transparent 60%);
}
.scn-lucrece-lying-sleeping .bg-chamber {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0c0a18 0%, #16112a 100%);
  opacity: 0.6;
}
.scn-lucrece-lying-sleeping .bed-lls {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 0 0 8% 8%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
}
.scn-lucrece-lying-sleeping .lucrece-sleep {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09078 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: lls-sleep 6s ease-in-out infinite;
}
.scn-lucrece-lying-sleeping .candle {
  position: absolute; bottom: 30%; left: 10%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #e0c080 0%, #8a6030 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-lucrece-lying-sleeping .candle-light {
  position: absolute; bottom: 38%; left: 8%; width: 8%; height: 12%;
  background: radial-gradient(ellipse, #ffd080 0%, rgba(255,200,100,0.3) 50%, transparent 100%);
  filter: blur(4px);
  animation: lls-flicker 2s ease-in-out infinite alternate;
}
.scn-lucrece-lying-sleeping .breath-mist {
  position: absolute; bottom: 40%; left: 38%; width: 10%; height: 4%;
  background: radial-gradient(ellipse, rgba(200,200,220,0.2) 0%, transparent 100%);
  filter: blur(3px);
  animation: lls-breath 4s ease-in-out infinite;
}
@keyframes lls-sleep {
  0%, 100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.01); }
}
@keyframes lls-flicker {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes lls-breath {
  0% { opacity: 0.1; transform: translateY(0) scaleX(1); }
  50% { opacity: 0.3; transform: translateY(-3px) scaleX(1.2); }
  100% { opacity: 0.1; transform: translateY(0) scaleX(1); }
}

.scn-passions-swell {
  background: linear-gradient(180deg, #1a1018 0%, #2a1a20 40%, #3a2020 100%),
              radial-gradient(ellipse at 50% 20%, #3a2020 0%, transparent 70%);
}
.scn-passions-swell .bg-parley {
  position: absolute; inset: 0;
  background: linear-gradient(45deg, #1a0a0a 0%, #2a1414 100%);
  opacity: 0.5;
}
.scn-passions-swell .tarquin-tower {
  position: absolute; bottom: 10%; left: 20%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 50%, #0a0a0a 100%);
  border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%;
  animation: ps-tower 5s ease-in-out infinite;
}
.scn-passions-swell .lucrece-peers {
  position: absolute; bottom: 25%; left: 55%; width: 14%; height: 22%;
  background: linear-gradient(180deg, #c8b0a0 0%, #8a7060 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: ps-peer 3s ease-in-out infinite alternate;
}
.scn-passions-swell .sheet-wave {
  position: absolute; bottom: 30%; left: 50%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #d0c0b0 0%, #b0a090 100%);
  border-radius: 40% 60% 20% 40% / 60% 40% 40% 60%;
  animation: ps-sheet 4s ease-in-out infinite;
}
.scn-passions-swell .shadow-hand {
  position: absolute; bottom: 40%; left: 30%; width: 12%; height: 6%;
  background: radial-gradient(ellipse, #1a0a0a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ps-hand 3s ease-in-out infinite alternate;
}
.scn-passions-swell .parley-breath {
  position: absolute; bottom: 45%; left: 48%; width: 8%; height: 4%;
  background: radial-gradient(ellipse, rgba(200,100,50,0.2) 0%, transparent 100%);
  filter: blur(3px);
  animation: ps-breath 2s ease-in-out infinite;
}
@keyframes ps-tower {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes ps-peer {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes ps-sheet {
  0%, 100% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(5px) scaleX(1.1); }
}
@keyframes ps-hand {
  0% { opacity: 0.3; transform: translateX(0); }
  100% { opacity: 0.6; transform: translateX(8px); }
}
@keyframes ps-breath {
  0% { opacity: 0.1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(1.3); }
  100% { opacity: 0.1; transform: scale(1); }
}

.scn-tarquin-parley {
  background: linear-gradient(180deg, #0a0a12 0%, #14101a 50%, #1a1420 100%),
              radial-gradient(ellipse at 50% 30%, #1a1420 0%, transparent 60%);
}
.scn-tarquin-parley .bg-void {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 30%, #1a1420 0%, #0a0a12 100%);
}
.scn-tarquin-parley .tarquin-head {
  position: absolute; top: 20%; left: 35%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tpar-head 8s ease-in-out infinite;
}
.scn-tarquin-parley .eye-glare {
  position: absolute; top: 28%; left: 38%; width: 8%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #c89040 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 25px 8px rgba(200,144,64,0.6);
  animation: tpar-eye 3s ease-in-out infinite alternate;
}
.scn-tarquin-parley .lucrece-hind {
  position: absolute; bottom: 25%; left: 25%; width: 16%; height: 26%;
  background: linear-gradient(180deg, #c8c0b8 0%, #a09890 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: tpar-hind 5s ease-in-out infinite;
}
.scn-tarquin-parley .gripe-talon {
  position: absolute; bottom: 30%; left: 30%; width: 12%; height: 8%;
  background: radial-gradient(ellipse, #1a0a0a 0%, transparent 100%);
  filter: blur(3px);
  animation: tpar-talon 4s ease-in-out infinite alternate;
}
.scn-tarquin-parley .plea-tear {
  position: absolute; bottom: 38%; left: 32%; width: 2%; height: 3%;
  background: radial-gradient(circle, #c0c0d0 0%, transparent 100%);
  border-radius: 50%;
  animation: tpar-tear 6s ease-in-out infinite;
}
@keyframes tpar-head {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tpar-eye {
  0% { opacity: 0.5; box-shadow: 0 0 15px 3px rgba(200,144,64,0.4); }
  50% { opacity: 1; box-shadow: 0 0 35px 12px rgba(255,208,128,0.7); }
  100% { opacity: 0.6; box-shadow: 0 0 20px 5px rgba(200,144,64,0.5); }
}
@keyframes tpar-hind {
  0%, 100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.02); }
}
@keyframes tpar-talon {
  0% { opacity: 0.2; transform: translateX(0) scale(1); }
  100% { opacity: 0.5; transform: translateX(10px) scale(1.1); }
}
@keyframes tpar-tear {
  0% { transform: translateY(0) scale(1); }
  25% { transform: translateY(-2px) scale(1.2); }
  50% { transform: translateY(0) scale(1); }
  75% { transform: translateY(1px) scale(0.9); }
  100% { transform: translateY(0) scale(1); }
}

.scn-lucrece-curse {
  background: linear-gradient(180deg, #0b0b1a 0%, #1a1a30 40%, #2a1a3a 100%), radial-gradient(ellipse at 50% 100%, #2a1a3a 0%, transparent 70%);
}
.scn-lucrece-curse .curse-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0d0d22 0%, transparent 60%);
  animation: lc-sky 12s ease-in-out infinite alternate;
}
.scn-lucrece-curse .curse-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1222 0%, #0f0a18 100%);
  animation: lc-ground 8s ease-in-out infinite alternate;
}
.scn-lucrece-curse .curse-figure {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lc-figure 6s ease-in-out infinite;
}
.scn-lucrece-curse .curse-hand {
  position: absolute; bottom: 48%; left: 58%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(20deg);
  animation: lc-hand 3s ease-in-out infinite alternate;
}
.scn-lucrece-curse .curse-tear {
  position: absolute; bottom: 35%; left: 48%; width: 4px; height: 8px;
  background: radial-gradient(circle, #6080b0 0%, transparent 100%);
  border-radius: 50%;
  animation: lc-tear 4s ease-in-out infinite;
}
.scn-lucrece-curse .curse-glow {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(120,80,160,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: lc-glow 5s ease-in-out infinite alternate;
}
.scn-lucrece-curse .curse-shadow {
  position: absolute; bottom: 18%; left: 40%; width: 70px; height: 14px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(8px);
  animation: lc-shadow 6s ease-in-out infinite;
}
@keyframes lc-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes lc-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes lc-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 25% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(2deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes lc-hand { 0% { transform: rotate(15deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(20deg) } }
@keyframes lc-tear { 0% { transform: translateY(0) scaleY(1); opacity: 0.8 } 50% { transform: translateY(10px) scaleY(1.5); opacity: 0.4 } 100% { transform: translateY(20px) scaleY(0); opacity: 0 } }
@keyframes lc-glow { 0% { transform: scale(1); opacity: 0.3 } 50% { transform: scale(1.5); opacity: 0.6 } 100% { transform: scale(1.2); opacity: 0.4 } }
@keyframes lc-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

.scn-lucrece-addresses-hand {
  background: linear-gradient(180deg, #0a0a18 0%, #151528 40%, #1a1a30 100%), radial-gradient(ellipse at 50% 60%, #1a1a30 0%, transparent 70%);
}
.scn-lucrece-addresses-hand .add-hand-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0c0c1e 0%, transparent 50%);
  animation: lah-bg 18s ease-in-out infinite alternate;
}
.scn-lucrece-addresses-hand .add-hand-torso {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lah-torso 7s ease-in-out infinite;
}
.scn-lucrece-addresses-hand .add-hand-arm {
  position: absolute; bottom: 55%; left: 58%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40%;
  transform-origin: bottom center;
  transform: rotate(-40deg);
  animation: lah-arm 4s ease-in-out infinite alternate;
}
.scn-lucrece-addresses-hand .add-hand-palm {
  position: absolute; bottom: 72%; left: 61%; width: 20px; height: 18px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform: rotate(-10deg);
  animation: lah-palm 3s ease-in-out infinite alternate;
}
.scn-lucrece-addresses-hand .add-hand-stream-1 {
  position: absolute; bottom: 40%; left: 54%; width: 3px; height: 30px;
  background: linear-gradient(180deg, #6080b0 0%, transparent 100%);
  border-radius: 50%;
  animation: lah-stream 5s ease-in-out infinite;
}
.scn-lucrece-addresses-hand .add-hand-stream-2 {
  position: absolute; bottom: 38%; left: 56%; width: 2px; height: 20px;
  background: linear-gradient(180deg, #406090 0%, transparent 100%);
  border-radius: 50%;
  animation: lah-stream2 6s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-lucrece-addresses-hand .add-hand-drip {
  position: absolute; bottom: 35%; left: 55%; width: 4px; height: 4px;
  background: radial-gradient(circle, #6080b0 0%, transparent 100%);
  border-radius: 50%;
  animation: lah-drip 2s ease-in-out infinite;
}
@keyframes lah-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes lah-torso { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(0) } 100% { transform: translateX(-50%) translateY(0) rotate(1deg) } }
@keyframes lah-arm { 0% { transform: rotate(-35deg) } 50% { transform: rotate(-45deg) } 100% { transform: rotate(-40deg) } }
@keyframes lah-palm { 0% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(-5deg) scale(1.05) } 100% { transform: rotate(-10deg) scale(1) } }
@keyframes lah-stream { 0% { transform: translateY(0) scaleY(1); opacity: 0.7 } 50% { transform: translateY(10px) scaleY(1.3); opacity: 0.4 } 100% { transform: translateY(20px) scaleY(0.5); opacity: 0 } }
@keyframes lah-stream2 { 0% { transform: translateY(0) scaleY(1); opacity: 0.5 } 50% { transform: translateY(8px) scaleY(1.5); opacity: 0.3 } 100% { transform: translateY(16px) scaleY(0.8); opacity: 0 } }
@keyframes lah-drip { 0% { transform: translateY(0) scale(1); opacity: 0.8 } 100% { transform: translateY(6px) scale(0); opacity: 0 } }

.scn-lucrece-morning {
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4a 30%, #6a4a3a 60%, #8a6a3a 100%), radial-gradient(ellipse at 50% 0%, #6a4a3a 0%, transparent 60%);
}
.scn-lucrece-morning .morning-sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a2a4e 0%, #5a4a5a 50%, #8a6a4a 100%);
  animation: lm-sky 15s ease-in-out infinite alternate;
}
.scn-lucrece-morning .morning-sun {
  position: absolute; top: 20%; right: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d0a060 0%, #b08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(208,160,96,0.4);
  animation: lm-sun 20s ease-in-out infinite alternate;
}
.scn-lucrece-morning .morning-branch {
  position: absolute; top: 10%; left: 20%; width: 120px; height: 4px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40%;
  transform: rotate(-30deg);
  animation: lm-branch 8s ease-in-out infinite alternate;
}
.scn-lucrece-morning .morning-bird {
  position: absolute; top: 25%; left: 50%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: lm-bird 5s ease-in-out infinite;
}
.scn-lucrece-morning .morning-figure {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lm-figure 7s ease-in-out infinite;
}
.scn-lucrece-morning .morning-tear {
  position: absolute; bottom: 35%; left: 48%; width: 3px; height: 6px;
  background: linear-gradient(180deg, #b08060 0%, transparent 100%);
  border-radius: 50%;
  animation: lm-tear 4s ease-in-out infinite;
}
.scn-lucrece-morning .morning-glow {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(208,160,96,0.2) 0%, transparent 70%);
  filter: blur(6px);
  animation: lm-glow 6s ease-in-out infinite alternate;
}
@keyframes lm-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes lm-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-10px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes lm-branch { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(-30deg) } }
@keyframes lm-bird { 0% { transform: rotate(5deg) translateX(0) } 25% { transform: rotate(15deg) translateX(5px) } 50% { transform: rotate(10deg) translateX(10px) } 75% { transform: rotate(5deg) translateX(5px) } 100% { transform: rotate(10deg) translateX(0) } }
@keyframes lm-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 25% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(2deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes lm-tear { 0% { transform: translateY(0) scaleY(1); opacity: 0.7 } 50% { transform: translateY(8px) scaleY(1.2); opacity: 0.4 } 100% { transform: translateY(16px) scaleY(0.8); opacity: 0 } }
@keyframes lm-glow { 0% { transform: scale(1); opacity: 0.3 } 50% { transform: scale(1.3); opacity: 0.6 } 100% { transform: scale(1.1); opacity: 0.4 } }

.scn-lucrece-desert {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #6a3a1a 60%, #8a5a2a 100%), radial-gradient(ellipse at 50% 0%, #6a3a1a 0%, transparent 60%);
}
.scn-lucrece-desert .desert-bg {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 50%, #8a5a2a 100%);
  animation: ld-bg 14s ease-in-out infinite alternate;
}
.scn-lucrece-desert .desert-dune-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a3a1a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: ld-dune-back 18s ease-in-out infinite alternate;
}
.scn-lucrece-desert .desert-dune-front {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #5a3a1a 100%);
  border-radius: 40% 60% 0 0 / 90% 70% 0 0;
  animation: ld-dune-front 12s ease-in-out infinite alternate;
}
.scn-lucrece-desert .desert-fort {
  position: absolute; bottom: 32%; left: 60%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ld-fort 20s ease-in-out infinite alternate;
}
.scn-lucrece-desert .desert-figure {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0a0a 0%, #0a000a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ld-figure 6s ease-in-out infinite;
}
.scn-lucrece-desert .desert-bird {
  position: absolute; top: 30%; left: 30%; width: 18px; height: 10px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: ld-bird 8s ease-in-out infinite;
}
.scn-lucrece-desert .desert-star {
  position: absolute; top: 15%; left: 20%; width: 4px; height: 4px;
  background: radial-gradient(circle, #d0a060 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(208,160,96,0.6);
  animation: ld-star 5s ease-in-out infinite alternate;
  animation-delay: -1s;
}
@keyframes ld-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ld-dune-back { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-4px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes ld-dune-front { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ld-fort { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ld-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 25% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(2deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes ld-bird { 0% { transform: rotate(-10deg) translateX(0) } 25% { transform: rotate(-5deg) translateX(8px) } 50% { transform: rotate(-10deg) translateX(16px) } 75% { transform: rotate(-15deg) translateX(8px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes ld-star { 0% { transform: scale(1); opacity: 0.5 } 50% { transform: scale(1.5); opacity: 1 } 100% { transform: scale(1.2); opacity: 0.6 } }

/* Scene 1: lucrece-addresses-night */
.scn-lucrece-addresses-night {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #2a2a5a 60%, #1a1a3a 100%), radial-gradient(ellipse at 50% 100%, #2a2a5a 0%, transparent 70%);
}
.scn-lucrece-addresses-night .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 70%);
  animation: lcr1-sky 15s ease-in-out infinite alternate;
}
.scn-lucrece-addresses-night .moon {
  position: absolute; top: 10%; right: 20%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #c0c8d0 0%, #5a5a7a 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(192,200,208,0.3);
  animation: lcr1-moon 20s ease-in-out infinite alternate;
}
.scn-lucrece-addresses-night .mist {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, rgba(20,20,40,0.8) 0%, transparent 100%);
  filter: blur(8px);
  animation: lcr1-mist 12s ease-in-out infinite alternate;
}
.scn-lucrece-addresses-night .figure-seated {
  position: absolute; bottom: 15%; left: 50%;
  width: 24px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: lcr1-figure 8s ease-in-out infinite;
}
.scn-lucrece-addresses-night .tears {
  position: absolute; bottom: 22%; left: 50%;
  width: 4px; height: 6px;
  background: rgba(200,210,230,0.6);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,210,230,0.3);
  animation: lcr1-tears 4s ease-in-out infinite;
}
.scn-lucrece-addresses-night .window-frame {
  position: absolute; top: 20%; right: 10%;
  width: 60px; height: 80px;
  border: 2px solid #2a2a3a;
  background: transparent;
  border-radius: 4px;
  animation: lcr1-window 10s ease-in-out infinite alternate;
}
.scn-lucrece-addresses-night .shadow-pool {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #0a0a1a 0%, transparent 100%);
  animation: lcr1-pool 6s ease-in-out infinite alternate;
}
@keyframes lcr1-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes lcr1-moon { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(-5px); } }
@keyframes lcr1-mist { 0% { opacity: 0.6; transform: translateY(0); } 50% { opacity: 0.9; transform: translateY(-5px); } 100% { opacity: 0.5; transform: translateY(3px); } }
@keyframes lcr1-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 33% { transform: translateX(-50%) translateY(-2px) rotate(-2deg); } 66% { transform: translateX(-50%) translateY(0) rotate(2deg); } 100% { transform: translateX(-50%) translateY(-1px) rotate(0); } }
@keyframes lcr1-tears { 0% { transform: translateY(0) scale(1); opacity: 0.7; } 25% { transform: translateY(-2px) scale(1.1); opacity: 1; } 50% { transform: translateY(4px) scale(0.9); opacity: 0.5; } 75% { transform: translateY(0) scale(1); opacity: 0.8; } 100% { transform: translateY(-1px) scale(1.05); opacity: 0.6; } }
@keyframes lcr1-window { 0% { box-shadow: inset 0 0 10px 5px rgba(20,20,40,0.5); } 50% { box-shadow: inset 0 0 20px 10px rgba(40,40,60,0.7); } 100% { box-shadow: inset 0 0 5px 2px rgba(10,10,20,0.3); } }
@keyframes lcr1-pool { 0% { opacity: 0.5; } 50% { opacity: 0.9; } 100% { opacity: 0.4; } }

/* Scene 2: lucrece-prays-to-collatine */
.scn-lucrece-prays-to-collatine {
  background: linear-gradient(180deg, #1a1428 0%, #2a1a3a 40%, #3a2a4a 100%), radial-gradient(ellipse at 50% 60%, #3a2a4a 0%, transparent 80%);
}
.scn-lucrece-prays-to-collatine .hive-body {
  position: absolute; bottom: 30%; left: 20%;
  width: 70px; height: 50px;
  background: linear-gradient(135deg, #5a3a2a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6), 0 6px 12px rgba(0,0,0,0.4);
  animation: lcr2-hive 12s ease-in-out infinite alternate;
}
.scn-lucrece-prays-to-collatine .honeycomb {
  position: absolute; bottom: 33%; left: 22%;
  width: 20px; height: 15px;
  background: radial-gradient(circle, #c8a050 0%, #a08030 100%);
  border-radius: 20%;
  box-shadow: 0 0 8px 2px #c8a050;
  animation: lcr2-honey 6s ease-in-out infinite alternate;
}
.scn-lucrece-prays-to-collatine .wasp {
  position: absolute; bottom: 38%; left: 30%;
  width: 12px; height: 8px;
  background: linear-gradient(90deg, #1a1a1a 50%, #c8a050 50%);
  border-radius: 50%;
  transform-origin: center;
  animation: lcr2-wasp 4s ease-in-out infinite;
}
.scn-lucrece-prays-to-collatine .figure-kneeling {
  position: absolute; bottom: 5%; left: 50%;
  width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: lcr2-kneel 9s ease-in-out infinite;
}
.scn-lucrece-prays-to-collatine .prayer-hands {
  position: absolute; bottom: 28%; left: 50%;
  width: 8px; height: 12px;
  background: #3a2a4a;
  border-radius: 40% 40% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: lcr2-hands 4s ease-in-out infinite alternate;
}
.scn-lucrece-prays-to-collatine .light-ray {
  position: absolute; top: 0; left: 40%; right: 40%; bottom: 60%;
  background: linear-gradient(180deg, rgba(200,180,150,0.15) 0%, transparent 100%);
  clip-path: polygon(30% 0, 70% 0, 90% 100%, 10% 100%);
  animation: lcr2-light 8s ease-in-out infinite alternate;
}
.scn-lucrece-prays-to-collatine .shadow-veil {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 30%, rgba(0,0,0,0.4) 100%);
  pointer-events: none;
  animation: lcr2-veil 14s ease-in-out infinite alternate;
}
@keyframes lcr2-hive { 0% { transform: scale(1); } 50% { transform: scale(1.03); } 100% { transform: scale(0.98); } }
@keyframes lcr2-honey { 0% { opacity: 0.7; box-shadow: 0 0 6px 1px #c8a050; } 50% { opacity: 1; box-shadow: 0 0 12px 4px #c8a050; } 100% { opacity: 0.8; box-shadow: 0 0 8px 2px #a08030; } }
@keyframes lcr2-wasp { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(10deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-8px) rotate(-10deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lcr2-kneel { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes lcr2-hands { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(0); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes lcr2-light { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.3; } }
@keyframes lcr2-veil { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }

/* Scene 3: lucrece-opportunity */
.scn-lucrece-opportunity {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a0a0a 30%, #1a0a0a 100%), radial-gradient(ellipse at 50% 30%, #3a1a1a 0%, transparent 70%);
}
.scn-lucrece-opportunity .opportunity-figure {
  position: absolute; bottom: 10%; left: 50%;
  width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: lcr3-opp 7s ease-in-out infinite;
}
.scn-lucrece-opportunity .mask {
  position: absolute; bottom: 50%; left: 50%;
  width: 28px; height: 22px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #5a2a2a 0%, #3a1a1a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: lcr3-mask 5s ease-in-out infinite alternate;
}
.scn-lucrece-opportunity .dagger {
  position: absolute; bottom: 30%; left: 38%;
  width: 6px; height: 24px;
  background: linear-gradient(180deg, #8a4a4a 0%, #4a1a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px 1px #8a4a4a;
  transform-origin: bottom center;
  animation: lcr3-dagger 3s ease-in-out infinite alternate;
}
.scn-lucrece-opportunity .serpent {
  position: absolute; bottom: 22%; left: 55%;
  width: 10px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lcr3-serpent 6s ease-in-out infinite;
}
.scn-lucrece-opportunity .flame-flicker {
  position: absolute; bottom: 60%; left: 30%;
  width: 12px; height: 16px;
  background: radial-gradient(circle, #a05a3a 0%, #4a1a1a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px #a05a3a;
  animation: lcr3-flame 0.8s ease-in-out infinite alternate;
}
.scn-lucrece-opportunity .accusing-eyes {
  position: absolute; bottom: 50%; left: 50%;
  width: 20px; height: 8px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #8a4a4a 2px, transparent 2px) 0 0 / 10px 8px;
  box-shadow: 0 0 8px 2px #8a4a4a;
  animation: lcr3-eyes 10s ease-in-out infinite alternate;
}
.scn-lucrece-opportunity .cracked-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(0deg, #1a0a0a 0%, transparent 100%);
  clip-path: polygon(0 20%, 10% 0, 20% 30%, 30% 10%, 40% 40%, 50% 0, 60% 20%, 70% 5%, 80% 35%, 90% 0, 100% 25%, 100% 100%, 0 100%);
  animation: lcr3-ground 8s ease-in-out infinite alternate;
}
@keyframes lcr3-opp { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } }
@keyframes lcr3-mask { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes lcr3-dagger { 0% { transform: rotate(0); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-15deg); } }
@keyframes lcr3-serpent { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(10deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-10deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lcr3-flame { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.7; } }
@keyframes lcr3-eyes { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes lcr3-ground { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* Scene 4: opportunity-guilty */
.scn-opportunity-guilty {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a2a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 20%, #1a1a2a 0%, transparent 80%);
}
.scn-opportunity-guilty .storm-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  animation: opp1-sky 12s ease-in-out infinite alternate;
}
.scn-opportunity-guilty .lightning {
  position: absolute; top: 10%; left: 30%; right: 30%; bottom: 50%;
  background: linear-gradient(135deg, rgba(200,200,220,0.4) 0%, transparent 70%);
  clip-path: polygon(40% 0, 60% 0, 55% 30%, 65% 30%, 45% 60%, 55% 60%, 40% 100%, 35% 60%, 25% 30%, 35% 30%);
  animation: opp1-lightning 3s ease-in-out infinite;
}
.scn-opportunity-guilty .restless-figure {
  position: absolute; bottom: 15%; left: 50%;
  width: 28px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: opp1-figure 8s ease-in-out infinite;
}
.scn-opportunity-guilty .temporal-swirl {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 20%;
  background: conic-gradient(from 0deg, rgba(50,50,80,0.3), rgba(30,30,60,0.2), rgba(50,50,80,0.3), rgba(70,70,100,0.4), rgba(50,50,80,0.3));
  border-radius: 50%;
  filter: blur(10px);
  animation: opp1-swirl 20s linear infinite;
}
.scn-opportunity-guilty .broken-chain {
  position: absolute; bottom: 25%; left: 40%; right: 40%; height: 10px;
  background: repeating-linear-gradient(90deg, #4a4a5a 0px 4px, transparent 4px 8px);
  border-radius: 2px;
  animation: opp1-chain 6s ease-in-out infinite alternate;
}
.scn-opportunity-guilty .tear-stream {
  position: absolute; bottom: 22%; left: 50%;
  width: 4px; height: 30px;
  background: linear-gradient(180deg, rgba(180,180,200,0.6) 0%, transparent 100%);
  border-radius: 2px;
  animation: opp1-tears 5s ease-in-out infinite;
}
.scn-opportunity-guilty .hourglass {
  position: absolute; bottom: 5%; left: 15%;
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%);
  border-radius: 30% 30% 30% 30% / 40% 40% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: opp1-glass 16s linear infinite;
}
@keyframes opp1-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes opp1-lightning { 0% { opacity: 0; } 10% { opacity: 0.8; } 15% { opacity: 0; } 30% { opacity: 0.5; } 35% { opacity: 0; } 100% { opacity: 0; } }
@keyframes opp1-figure { 0%,100% { transform: translateX(-50%) translateY(0); } 25% { transform: translateX(-50%) translateY(-2px) rotate(-3deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0); } 75% { transform: translateX(-50%) translateY(-1px) rotate(3deg); } }
@keyframes opp1-swirl { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes opp1-chain { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.1); } 100% { opacity: 0.6; transform: scaleX(0.9); } }
@keyframes opp1-tears { 0% { transform: translateY(0); opacity: 0.6; } 25% { transform: translateY(-3px); opacity: 1; } 50% { transform: translateY(6px); opacity: 0.4; } 75% { transform: translateY(0); opacity: 0.8; } 100% { transform: translateY(-1px); opacity: 0.5; } }
@keyframes opp1-glass { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }

/* Scene 1: lucrece-will – dark mood, dawn lighting */
.scn-lucrece-will {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #3a3a5e 70%, #4a3a3e 100%), radial-gradient(ellipse at 60% 100%, #4a3a3e 0%, transparent 70%);
}
.scn-lucrece-will .lw-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2e2e42 0%, #1e1e2e 100%); }
.scn-lucrece-will .lw-window { position:absolute; top:12%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #ffd6a0 0%, #c08040 60%, #3a2a1a 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(192,128,64,.5); animation: lw-dawn 8s ease-in-out infinite alternate; }
.scn-lucrece-will .lw-table { position:absolute; bottom:20%; left:15%; width:70%; height:6%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 8px 8px; box-shadow: 0 -4px 10px rgba(0,0,0,.4); }
.scn-lucrece-will .lw-figure { position:absolute; bottom:26%; left:40%; width:18%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lw-sway 5s ease-in-out infinite; }
.scn-lucrece-will .lw-knife { position:absolute; bottom:30%; left:52%; width:2%; height:12%; background: linear-gradient(180deg, #c0a060 0%, #806040 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; transform: rotate(15deg); animation: lw-glint 4s ease-in-out infinite; }
.scn-lucrece-will .lw-paper { position:absolute; bottom:24%; left:45%; width:12%; height:8%; background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: lw-tremor 3s ease-in-out infinite; }
.scn-lucrece-will .lw-maid { position:absolute; bottom:26%; right:30%; width:14%; height:34%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lw-weep 6s ease-in-out infinite; }
.scn-lucrece-will .lw-candle { position:absolute; bottom:28%; left:60%; width:2%; height:10%; background: linear-gradient(180deg, #e0c080 0%, #806040 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 16px 4px rgba(224,192,128,.6); animation: lw-flicker 2s ease-in-out infinite alternate; }
@keyframes lw-dawn { 0% { opacity:.7; box-shadow: inset 0 0 10px rgba(192,128,64,.3); } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(255,200,100,.6); } 100% { opacity:.8; box-shadow: inset 0 0 15px rgba(192,128,64,.4); } }
@keyframes lw-sway { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2%) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2%) rotate(1deg); } }
@keyframes lw-glint { 0%,100% { opacity:.6; box-shadow: 0 0 4px rgba(192,160,96,.4); } 50% { opacity:1; box-shadow: 0 0 12px 2px rgba(192,160,96,.8); } }
@keyframes lw-tremor { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2%); } }
@keyframes lw-weep { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(1%) rotate(1deg); } 50% { transform: translateY(2%) rotate(-1deg); } 75% { transform: translateY(1%) rotate(2deg); } }
@keyframes lw-flicker { 0% { opacity:.7; box-shadow: 0 0 10px 2px rgba(224,192,128,.5); } 50% { opacity:1; box-shadow: 0 0 20px 6px rgba(255,200,100,.8); } 100% { opacity:.8; box-shadow: 0 0 12px 3px rgba(224,192,128,.6); } }

/* Scene 2: item-letter – tense mood, dawn lighting */
.scn-item-letter {
  background: linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 40%, #4a4a5e 70%, #5a4a3e 100%), radial-gradient(ellipse at 30% 80%, #5a4a3e 0%, transparent 60%);
}
.scn-item-letter .il-desk { position:absolute; bottom:10%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 -6px 12px rgba(0,0,0,.5); }
.scn-item-letter .il-paper { position:absolute; bottom:22%; left:35%; width:25%; height:12%; background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: il-flutter 4s ease-in-out infinite; }
.scn-item-letter .il-hand { position:absolute; bottom:30%; left:42%; width:10%; height:16%; background: linear-gradient(180deg, #d0b080 0%, #a08060 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: 50% 100%; animation: il-write 3s ease-in-out infinite; }
.scn-item-letter .il-quill { position:absolute; bottom:36%; left:44%; width:1.5%; height:10%; background: linear-gradient(180deg, #e0e0e0 0%, #a0a0a0 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-20deg); animation: il-scribble 2s ease-in-out infinite; }
.scn-item-letter .il-inkwell { position:absolute; bottom:20%; left:30%; width:6%; height:6%; background: radial-gradient(circle, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.6); }
.scn-item-letter .il-candle { position:absolute; bottom:32%; left:60%; width:2%; height:14%; background: linear-gradient(180deg, #e0c080 0%, #806040 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 4px rgba(224,192,128,.7); animation: il-flicker 2s ease-in-out infinite alternate; }
.scn-item-letter .il-shadow { position:absolute; bottom:18%; left:25%; width:40%; height:4%; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(4px); animation: il-shift 6s ease-in-out infinite; }
@keyframes il-flutter { 0%,100% { transform: rotate(-2deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(1.02); } }
@keyframes il-write { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2%) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1%) rotate(1deg); } }
@keyframes il-scribble { 0%,100% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2%); } }
@keyframes il-flicker { 0% { opacity:.7; box-shadow: 0 0 10px 2px rgba(224,192,128,.5); } 50% { opacity:1; box-shadow: 0 0 24px 6px rgba(255,200,100,.9); } 100% { opacity:.8; box-shadow: 0 0 14px 3px rgba(224,192,128,.6); } }
@keyframes il-shift { 0%,100% { transform: translateX(0); } 50% { transform: translateX(5%); } }

/* Scene 3: messenger-sent – tense mood, bright interior */
.scn-messenger-sent {
  background: linear-gradient(180deg, #f0e8d0 0%, #e8dcc0 40%, #d8c8a0 70%, #c8b890 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-messenger-sent .ms-wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc0 0%, #c8b890 100%); }
.scn-messenger-sent .ms-door { position:absolute; top:10%; left:5%; width:20%; height:80%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.2); animation: ms-creak 6s ease-in-out infinite; }
.scn-messenger-sent .ms-messenger { position:absolute; bottom:20%; left:25%; width:12%; height:40%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-tremble 3s ease-in-out infinite; }
.scn-messenger-sent .ms-lucrece { position:absolute; bottom:20%; right:20%; width:16%; height:44%; background: linear-gradient(180deg, #c8a880 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-gesture 5s ease-in-out infinite; }
.scn-messenger-sent .ms-throne { position:absolute; bottom:10%; right:18%; width:20%; height:10%; background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.3); }
.scn-messenger-sent .ms-bloom { position:absolute; top:15%; left:40%; width:8%; height:8%; background: radial-gradient(circle, #ffd080 0%, #ffb040 60%, transparent 80%); border-radius: 50%; animation: ms-glow 4s ease-in-out infinite alternate; }
@keyframes ms-creak { 0%,100% { transform: rotate(0); } 50% { transform: rotate(1deg); } }
@keyframes ms-tremble { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(2%) rotate(-1deg); } 50% { transform: translateY(1%) rotate(1deg); } 75% { transform: translateY(-1%) rotate(-1deg); } }
@keyframes ms-gesture { 0%,100% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-3%) rotate(-2deg); } 66% { transform: translateY(0) rotate(1deg); } }
@keyframes ms-glow { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:.8; transform: scale(1.1); } }

/* Scene 4: item-painting-troy – calm mood, bright interior */
.scn-item-painting-troy {
  background: linear-gradient(180deg, #e8e0d0 0%, #d8d0c0 40%, #c8c0b0 70%, #b8b0a0 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-item-painting-troy .pt-wall { position:absolute; inset:0; background: linear-gradient(180deg, #d8d0c0 0%, #b8b0a0 100%); }
.scn-item-painting-troy .pt-frame { position:absolute; top:10%; left:20%; width:60%; height:70%; background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius: 4px; box-shadow: 0 4px 20px rgba(0,0,0,.3); }
.scn-item-painting-troy .pt-canvas { position:absolute; top:12%; left:22%; width:56%; height:66%; background: linear-gradient(180deg, #c8a880 0%, #a08060 100%); border-radius: 2px; }
.scn-item-painting-troy .pt-ajax { position:absolute; bottom:30%; left:30%; width:8%; height:20%; background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pt-breathe 8s ease-in-out infinite; }
.scn-item-painting-troy .pt-ulysses { position:absolute; bottom:30%; right:30%; width:8%; height:20%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pt-breathe 8s ease-in-out infinite 2s; }
.scn-item-painting-troy .pt-spear { position:absolute; bottom:25%; left:45%; width:1.5%; height:25%; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; transform: rotate(10deg); animation: pt-spear-drift 12s ease-in-out infinite; }
.scn-item-painting-troy .pt-crowd { position:absolute; top:20%; left:25%; width:50%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(128,96,64,.4) 0%, transparent 70%); border-radius: 50%; animation: pt-crowd-murmur 10s ease-in-out infinite; }
.scn-item-painting-troy .pt-mermaid { position:absolute; top:15%; left:45%; width:4%; height:8%; background: linear-gradient(180deg, #80a0c0 0%, #6080a0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pt-mermaid-sway 15s ease-in-out infinite; }
@keyframes pt-breathe { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } }
@keyframes pt-spear-drift { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2%); } }
@keyframes pt-crowd-murmur { 0%,100% { opacity:.4; transform: scale(1); } 50% { opacity:.6; transform: scale(1.02); } }
@keyframes pt-mermaid-sway { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3%) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2%) rotate(2deg); } }

/* scn-collatine-boast */
.scn-collatine-boast {
  background: linear-gradient(180deg, #ffd9b3 0%, #ffb066 40%, #9966cc 100%),
              radial-gradient(ellipse at 70% 20%, #ffd580 0%, transparent 50%);
}
.scn-collatine-boast .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #ffd9b3 100%);
  animation: cb-sky 12s ease-in-out infinite alternate;
}
.scn-collatine-boast .sun {
  position: absolute; top: 12%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff5cc 0%, #ffd700 40%, transparent 70%);
  border-radius: 50%;
  animation: cb-sun 8s ease-in-out infinite alternate;
}
.scn-collatine-boast .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a6741 0%, #2d4a26 100%);
  border-radius: 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: cb-hills 15s ease-in-out infinite alternate;
}
.scn-collatine-boast .figure {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cb-figure 4s ease-in-out infinite;
}
.scn-collatine-boast .figure::after {
  content: ''; position: absolute; top: 10%; right: -5px;
  width: 20px; height: 8px; background: #1a1a2a;
  border-radius: 50% 50% 0 0;
  transform-origin: left center;
  animation: cb-arm 4s ease-in-out infinite;
}
.scn-collatine-boast .shadow {
  position: absolute; bottom: 23%; left: 38%; width: 50px; height: 10px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: cb-shadow 6s ease-in-out infinite;
}
.scn-collatine-boast .dew {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #fff 0%, #cce0ff 60%);
  border-radius: 50%;
  animation: cb-dew 4s ease-in infinite;
}
.scn-collatine-boast .dew-a { top: 60%; left: 20%; animation-delay: 0s; }
.scn-collatine-boast .dew-b { top: 65%; left: 50%; animation-delay: 1s; }
.scn-collatine-boast .dew-c { top: 55%; left: 75%; animation-delay: 2s; }
@keyframes cb-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cb-sun { 0% { transform:scale(1) } 50% { transform:scale(1.05) } 100% { transform:scale(.95) } }
@keyframes cb-hills { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes cb-figure { 0% { transform:rotate(-2deg) } 25% { transform:rotate(2deg) } 50% { transform:rotate(-1deg) } 75% { transform:rotate(3deg) } 100% { transform:rotate(-2deg) } }
@keyframes cb-arm { 0% { transform:rotate(30deg) } 25% { transform:rotate(45deg) } 50% { transform:rotate(20deg) } 75% { transform:rotate(50deg) } 100% { transform:rotate(30deg) } }
@keyframes cb-shadow { 0% { transform:translateX(0) scaleX(1) } 50% { transform:translateX(5px) scaleX(1.1) } 100% { transform:translateX(0) scaleX(1) } }
@keyframes cb-dew { 0% { transform:translateY(0); opacity:1 } 50% { transform:translateY(30px); opacity:.7 } 100% { transform:translateY(60px); opacity:0 } }

/* scn-lucrece-welcome */
.scn-lucrece-welcome {
  background: linear-gradient(180deg, #ffe6cc 0%, #ffcc99 60%, #996633 100%),
              radial-gradient(ellipse at 50% 30%, #ffebd8 0%, transparent 60%);
}
.scn-lucrece-welcome .window-frame {
  position: absolute; inset: 10% 15% 15% 15%;
  border: 4px solid #5c3a21;
  border-radius: 4px;
  background: transparent;
}
.scn-lucrece-welcome .curtain-l {
  position: absolute; top: 10%; left: 15%; width: 20%; height: 75%;
  background: linear-gradient(180deg, #c89090 0%, #b87878 100%);
  border-radius: 0 20% 20% 0;
  transform-origin: left center;
  animation: lw-curtain 6s ease-in-out infinite alternate;
}
.scn-lucrece-welcome .curtain-r {
  position: absolute; top: 10%; right: 15%; width: 20%; height: 75%;
  background: linear-gradient(180deg, #c89090 0%, #b87878 100%);
  border-radius: 20% 0 0 20%;
  transform-origin: right center;
  animation: lw-curtain 6s ease-in-out infinite alternate-reverse;
}
.scn-lucrece-welcome .figure {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 90px;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a0f0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: lw-figure 5s ease-in-out infinite;
}
.scn-lucrece-welcome .figure::after {
  content: ''; position: absolute; top: 20%; right: -8px; width: 10px; height: 6px;
  background: #1a0f0a; border-radius: 50%;
  transform-origin: left center;
  animation: lw-head 5s ease-in-out infinite;
}
.scn-lucrece-welcome .hand {
  position: absolute; bottom: 40%; left: 42%; width: 12px; height: 20px;
  background: #2a1f1a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lw-hand 4s ease-in-out infinite;
}
.scn-lucrece-welcome .light-beam {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 90%;
  background: linear-gradient(180deg, rgba(255,235,200,.4) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  animation: lw-light 8s ease-in-out infinite alternate;
}
.scn-lucrece-welcome .rose {
  position: absolute; bottom: 18%; left: 35%; width: 14px; height: 14px;
  background: radial-gradient(circle at 40% 40%, #d4698b 0%, #a3455c 100%);
  border-radius: 50%;
  animation: lw-rose 5s ease-in-out infinite;
}
@keyframes lw-curtain { 0% { transform:scaleX(1) } 50% { transform:scaleX(.9) } 100% { transform:scaleX(1) } }
@keyframes lw-figure { 0% { transform:translateX(-50%) rotate(0deg) } 50% { transform:translateX(-50%) rotate(2deg) } 100% { transform:translateX(-50%) rotate(0deg) } }
@keyframes lw-head { 0% { transform:rotate(0deg) } 50% { transform:rotate(-5deg) } 100% { transform:rotate(0deg) } }
@keyframes lw-hand { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-5px) rotate(10deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes lw-light { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes lw-rose { 0% { transform:scale(1) } 50% { transform:scale(1.2) } 100% { transform:scale(1) } }

/* scn-tarquin-deception */
.scn-tarquin-deception {
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 60%, #0a0a00 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a1a 0%, transparent 70%);
}
.scn-tarquin-deception .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: td-table 10s ease-in-out infinite;
}
.scn-tarquin-deception .candle {
  position: absolute; bottom: 25%; left: 50%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0e0d0 0%, #c8b8a0 100%);
  transform: translateX(-50%);
  animation: td-candle 4s ease-in-out infinite;
}
.scn-tarquin-deception .flame {
  position: absolute; bottom: 42%; left: 50%; width: 12px; height: 16px;
  background: radial-gradient(circle at 50% 30%, #ffcc66 0%, #ff9933 50%, transparent 100%);
  transform: translateX(-50%);
  animation: td-flame 2s ease-in-out infinite;
}
.scn-tarquin-deception .tarquin {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: td-tarquin 6s ease-in-out infinite;
}
.scn-tarquin-deception .tarquin::after {
  content: ''; position: absolute; top: 25%; left: -10px; width: 12px; height: 8px;
  background: #1a1a2a; border-radius: 50%;
  transform-origin: right center;
  animation: td-tarquin-arm 6s ease-in-out infinite;
}
.scn-tarquin-deception .lucrece-hand {
  position: absolute; bottom: 25%; left: 58%; width: 10px; height: 25px;
  background: #1a1a2a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: td-hand 7s ease-in-out infinite;
}
.scn-tarquin-deception .shadow-1 {
  position: absolute; bottom: 10%; left: 25%; width: 80px; height: 20px;
  background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(4px);
  animation: td-shadow1 8s ease-in-out infinite;
}
.scn-tarquin-deception .shadow-2 {
  position: absolute; bottom: 12%; right: 25%; width: 60px; height: 15px;
  background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(3px);
  animation: td-shadow2 8s ease-in-out infinite;
}
@keyframes td-table { 0% { transform:translateY(0) } 50% { transform:translateY(1px) } 100% { transform:translateY(0) } }
@keyframes td-candle { 0% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-50%) scaleY(.95) } 100% { transform:translateX(-50%) scaleY(1) } }
@keyframes td-flame { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.15) } 100% { transform:translateX(-50%) scale(1) } }
@keyframes td-tarquin { 0% { transform:rotate(0deg) } 50% { transform:rotate(3deg) translateX(2px) } 100% { transform:rotate(0deg) } }
@keyframes td-tarquin-arm { 0% { transform:rotate(0deg) } 50% { transform:rotate(-20deg) } 100% { transform:rotate(0deg) } }
@keyframes td-hand { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-3px) rotate(-5deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes td-shadow1 { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.2) } 100% { transform:scaleX(1) } }
@keyframes td-shadow2 { 0% { transform:scaleX(1) } 50% { transform:scaleX(.8) } 100% { transform:scaleX(1) } }

/* scn-night-approaches */
.scn-night-approaches {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4a 100%),
              radial-gradient(ellipse at 50% 60%, #2a2a5a 0%, transparent 80%);
}
.scn-night-approaches .sky {
  position: absolute; inset: 0 0 50% 0;
  background: transparent;
}
.scn-night-approaches .sky::before {
  content: ''; position: absolute; top: 10%; left: 20%; width: 3px; height: 3px;
  background: #fff; border-radius: 50%;
  box-shadow: 40px 20px #fff, 80px 50px #fff, 120px 30px #fff, 160px 60px #fff, 200px 10px #fff;
  animation: na-stars 6s ease-in-out infinite alternate;
}
.scn-night-approaches .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-night-approaches .torch {
  position: absolute; bottom: 30%; left: 60%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  transform-origin: bottom center;
  animation: na-torch 5s ease-in-out infinite;
}
.scn-night-approaches .flame {
  position: absolute; bottom: 58%; left: 60%; width: 20px; height: 24px;
  background: radial-gradient(circle at 50% 40%, #ffcc33 0%, #ff6600 60%, transparent 100%);
  transform: translateX(-50%);
  animation: na-flame 1s ease-in-out infinite;
}
.scn-night-approaches .flint {
  position: absolute; bottom: 32%; left: 65%; width: 12px; height: 8px;
  background: #4a4a5a; border-radius: 20%;
  animation: na-flint 2s ease-in-out infinite;
}
.scn-night-approaches .figure {
  position: absolute; bottom: 20%; left: 55%; width: 35px; height: 100px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: na-figure 3s ease-in-out infinite;
}
.scn-night-approaches .figure::after {
  content: ''; position: absolute; top: 30%; right: -12px; width: 14px; height: 10px;
  background: #000; border-radius: 50%;
  transform-origin: left center;
  animation: na-arm 3s ease-in-out infinite;
}
.scn-night-approaches .spark {
  position: absolute; bottom: 38%; left: 62%; width: 4px; height: 4px;
  background: #ffdd66; border-radius: 50%;
  animation: na-spark 2s ease-out infinite;
}
@keyframes na-stars { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.3 } }
@keyframes na-torch { 0% { transform:rotate(-1deg) } 50% { transform:rotate(1deg) } 100% { transform:rotate(-1deg) } }
@keyframes na-flame { 0% { transform:translateX(-50%) scale(1) } 30% { transform:translateX(-50%) scale(1.2) translateY(-2px) } 60% { transform:translateX(-50%) scale(.9) translateY(1px) } 100% { transform:translateX(-50%) scale(1) } }
@keyframes na-flint { 0% { transform:translateX(0) } 50% { transform:translateX(-3px) } 100% { transform:translateX(0) } }
@keyframes na-figure { 0% { transform:rotate(0deg) } 30% { transform:rotate(2deg) } 60% { transform:rotate(-1deg) } 100% { transform:rotate(0deg) } }
@keyframes na-arm { 0% { transform:rotate(0deg) } 10% { transform:rotate(-40deg) } 20% { transform:rotate(0deg) } 100% { transform:rotate(0deg) } }
@keyframes na-spark { 0% { transform:translate(0,0) scale(1); opacity:1 } 50% { transform:translate(5px,-10px) scale(.5); opacity:.8 } 100% { transform:translate(10px,-20px) scale(0); opacity:0 } }

/* Scene: item-torch (firelit, tense close-up) */
.scn-item-torch {
  background: linear-gradient(180deg, #0a0514 0%, #1a0b0f 50%, #0a0514 100%), radial-gradient(circle at 50% 40%, #4a1a0a 0%, transparent 60%);
}
.scn-item-torch .torch-handle { position:absolute; bottom:0; left:50%; width:8%; height:50%; transform:translateX(-50%); background: linear-gradient(90deg, #2a1a0a 0%, #4a3a2a 30%, #1a0a00 70%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 20px #000; }
.scn-item-torch .torch-head { position:absolute; bottom:50%; left:50%; width:14%; height:10%; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 6px 6px 4px 4px; box-shadow: 0 4px 12px #000; }
.scn-item-torch .flame-core { position:absolute; bottom:58%; left:50%; width:6%; height:18%; transform:translateX(-50%); background: radial-gradient(ellipse, #fff8e0 0%, #ffd700 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; animation: flicker-core-it 0.8s infinite alternate; }
.scn-item-torch .flame-mid { position:absolute; bottom:56%; left:50%; width:10%; height:28%; transform:translateX(-50%); background: radial-gradient(ellipse, #ffb347 0%, #ff7b00 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; filter: blur(2px); animation: flicker-mid-it 1.2s infinite alternate; }
.scn-item-torch .flame-outer { position:absolute; bottom:54%; left:50%; width:16%; height:38%; transform:translateX(-50%); background: radial-gradient(ellipse, #c8553d 0%, transparent 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; filter: blur(6px); opacity: 0.7; animation: flicker-outer-it 1.8s infinite alternate; }
.scn-item-torch .glow-radial { position:absolute; inset:0; background: radial-gradient(circle at 50% 50%, #ffb347 0%, transparent 70%); opacity:0.15; animation: pulse-glow-it 3s infinite alternate; }
.scn-item-torch .sparks { position:absolute; bottom:60%; left:50%; width:4px; height:4px; background:#ffd700; border-radius:50%; box-shadow: 12px -20px #ffb347, -8px -40px #ffd700, 4px -60px #ff7b00, -16px -80px #ffb347; animation: rise-sparks-it 4s infinite linear; }
.scn-item-torch .shadow-figure { position:absolute; bottom:0; right:-5%; width:30%; height:80%; background: linear-gradient(180deg, transparent 0%, #0a0514 30%, #000 100%); border-radius: 60% 0 0 80% / 80% 0 0 60%; transform: skewX(-10deg); animation: reach-figure-it 5s infinite ease-in-out; }
@keyframes flicker-core-it { 0% { transform: translateX(-50%) scale(1); opacity: 0.9; } 50% { transform: translateX(-50%) scale(1.1); opacity: 1; } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.8; } }
@keyframes flicker-mid-it { 0% { transform: translateX(-50%) scale(1) rotate(-2deg); } 50% { transform: translateX(-50%) scale(1.15) rotate(0deg); } 100% { transform: translateX(-50%) scale(0.9) rotate(2deg); } }
@keyframes flicker-outer-it { 0% { transform: translateX(-50%) scale(1); opacity: 0.5; } 50% { transform: translateX(-50%) scale(1.2); opacity: 0.9; } 100% { transform: translateX(-50%) scale(0.8); opacity: 0.4; } }
@keyframes pulse-glow-it { 0% { opacity: 0.1; transform: scale(0.95); } 50% { opacity: 0.2; transform: scale(1.05); } 100% { opacity: 0.12; transform: scale(0.95); } }
@keyframes rise-sparks-it { 0% { transform: translateY(0) rotate(0deg); opacity: 1; } 50% { transform: translateY(-50px) rotate(180deg); opacity: 0.8; } 100% { transform: translateY(-100px) rotate(360deg); opacity: 0; } }

/* Scene: tarquin-inner-conflict (dim-interior, tense abstract) */
.scn-tarquin-inner-conflict {
  background: linear-gradient(90deg, #0a0b14 0%, #161822 50%, #0a0b14 100%), radial-gradient(circle at 50% 50%, #2a2e40 0%, transparent 70%);
}
.scn-tarquin-inner-conflict .shadow-left { position:absolute; bottom:0; left:-10%; width:55%; height:90%; background: linear-gradient(90deg, #000 0%, #0a0b14 100%); border-radius: 0 60% 0 0 / 0 80% 0 0; transform: skewX(5deg); animation: creep-l-tic 8s infinite alternate; }
.scn-tarquin-inner-conflict .shadow-right { position:absolute; bottom:0; right:-10%; width:55%; height:90%; background: linear-gradient(270deg, #000 0%, #0a0b14 100%); border-radius: 60% 0 0 0 / 80% 0 0 0; transform: skewX(-5deg); animation: creep-r-tic 8s infinite alternate; }
.scn-tarquin-inner-conflict .figure-center { position:absolute; bottom:20%; left:50%; width:20%; height:55%; transform:translateX(-50%); background: linear-gradient(180deg, #181a24 0%, #0a0b14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 20px 30px #000; animation: wrestle-figure-tic 4s infinite ease-in-out; }
.scn-tarquin-inner-conflict .conscience-light { position:absolute; top:-10%; left:50%; width:30%; height:40%; transform:translateX(-50%); background: radial-gradient(ellipse, #4a8cff 0%, transparent 100%); opacity: 0.3; animation: pierce-light-tic 6s infinite alternate; }
.scn-tarquin-inner-conflict .will-fire { position:absolute; bottom:-5%; left:50%; width:25%; height:30%; transform:translateX(-50%); background: radial-gradient(ellipse, #a0461a 0%, transparent 100%); opacity: 0.6; animation: blaze-fire-tic 5s infinite alternate; }
.scn-tarquin-inner-conflict .debris-particles { position:absolute; inset:0; background-image: radial-gradient(circle at 20% 30%, #fff 1px, transparent 1px), radial-gradient(circle at 80% 70%, #fff 1px, transparent 1px), radial-gradient(circle at 40% 80%, #fff 1px, transparent 1px), radial-gradient(circle at 70% 20%, #fff 1px, transparent 1px); background-size: 200px 200px; background-repeat: no-repeat; animation: float-debris-tic 12s infinite linear; }
@keyframes creep-l-tic { 0% { transform: skewX(5deg) translateX(0); } 50% { transform: skewX(8deg) translateX(10px); } 100% { transform: skewX(5deg) translateX(0); } }
@keyframes creep-r-tic { 0% { transform: skewX(-5deg) translateX(0); } 50% { transform: skewX(-8deg) translateX(-10px); } 100% { transform: skewX(-5deg) translateX(0); } }
@keyframes wrestle-figure-tic { 0% { transform: translateX(-50%) rotate(-3deg); } 25% { transform: translateX(-50%) rotate(2deg) scale(1.02); } 50% { transform: translateX(-50%) rotate(-2deg); } 75% { transform: translateX(-50%) rotate(4deg) scale(0.98); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes pierce-light-tic { 0% { opacity: 0.1; transform: translateX(-50%) scale(0.8); } 50% { opacity: 0.4; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.15; transform: translateX(-50%) scale(0.9); } }
@keyframes blaze-fire-tic { 0% { opacity: 0.4; transform: translateX(-50%) scale(0.9) rotate(-5deg); } 50% { opacity: 0.8; transform: translateX(-50%) scale(1.1) rotate(0deg); } 100% { opacity: 0.5; transform: translateX(-50%) scale(0.95) rotate(5deg); } }
@keyframes float-debris-tic { 0% { transform: translateY(0) rotate(0deg); opacity: 0.6; } 50% { transform: translateY(-30px) rotate(180deg); opacity: 1; } 100% { transform: translateY(-60px) rotate(360deg); opacity: 0.3; } }

/* Scene: tarquin-recollection (dim-interior, tense framed) */
.scn-tarquin-recollection {
  background: linear-gradient(180deg, #0c0f1a 0%, #1a1f2e 100%), radial-gradient(ellipse at 30% 50%, #2a3b5c 0%, transparent 70%);
}
.scn-tarquin-recollection .arch { position:absolute; top:0; left:10%; width:80%; height:100%; background: linear-gradient(180deg, #151a2e 0%, transparent 30%, transparent 70%, #151a2e 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 0 60px #000; animation: breathe-arch-tr 10s infinite alternate; }
.scn-tarquin-recollection .door-lock { position:absolute; top:45%; left:48%; width:6%; height:8%; background: linear-gradient(180deg, #6a6a7a 0%, #2a2a3a 100%); border-radius: 4px; box-shadow: 0 0 20px #000; animation: rattle-lock-tr 3s infinite; }
.scn-tarquin-recollection .threshold-grate { position:absolute; bottom:10%; left:15%; width:70%; height:4%; background: repeating-linear-gradient(90deg, #2a2a3a 0px, #2a2a3a 10px, #0a0a14 10px, #0a0a14 20px); border-radius: 4px; opacity: 0.6; animation: shift-grate-tr 8s infinite linear; }
.scn-tarquin-recollection .weasel-shadow { position:absolute; bottom:25%; left:-10%; width:15%; height:6%; background: #000; border-radius: 30%; filter: blur(8px); opacity: 0.5; animation: scurry-weasel-tr 4s infinite linear; }
.scn-tarquin-recollection .figure-memory { position:absolute; bottom:20%; left:50%; width:18%; height:50%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #a8b8d8 0%, #2a3b5c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: 0.5; box-shadow: 0 0 40px #4a6b8c; animation: glow-memory-tr 6s infinite alternate; }
.scn-tarquin-recollection .light-beam { position:absolute; top:-10%; left:20%; width:10%; height:120%; background: linear-gradient(180deg, rgba(200,220,255,0.4) 0%, transparent 100%); transform: rotate(15deg); filter: blur(4px); animation: sweep-beam-tr 8s infinite alternate; }
.scn-tarquin-recollection .dust-motifs { position:absolute; inset:0; background-image: radial-gradient(circle at 25% 40%, #fff 1px, transparent 1px), radial-gradient(circle at 75% 60%, #fff 1px, transparent 1px), radial-gradient(circle at 50% 80%, #fff 1px, transparent 1px); background-size: 150px 150px; animation: drift-dust-tr 20s infinite linear; }
@keyframes breathe-arch-tr { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.02); opacity: 0.8; } 100% { transform: scale(0.98); opacity: 0.6; } }
@keyframes rattle-lock-tr { 0%, 100% { transform: translateX(0) rotate(0deg); } 10% { transform: translateX(-2px) rotate(-2deg); } 20% { transform: translateX(3px) rotate(2deg); } 30% { transform: translateX(-1px) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } }
@keyframes shift-grate-tr { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(0); } }
@keyframes scurry-weasel-tr { 0% { left: -15%; opacity: 0; } 10% { opacity: 0.6; } 90% { opacity: 0.6; } 100% { left: 110%; opacity: 0; } }
@keyframes glow-memory-tr { 0% { opacity: 0.3; transform: translateX(-50%) scale(0.95); box-shadow: 0 0 20px #2a3b5c; } 50% { opacity: 0.7; transform: translateX(-50%) scale(1.05); box-shadow: 0 0 60px #4a6b8c; } 100% { opacity: 0.4; transform: translateX(-50%) scale(0.98); box-shadow: 0 0 30px #2a3b5c; } }
@keyframes sweep-beam-tr { 0% { transform: rotate(10deg) translateX(0); opacity: 0.2; } 50% { transform: rotate(15deg) translateX(20px); opacity: 0.6; } 100% { transform: rotate(10deg) translateX(0); opacity: 0.3; } }
@keyframes drift-dust-tr { 0% { transform: translateY(0) rotate(0deg); opacity: 0.3; } 50% { transform: translateY(-40px) rotate(180deg); opacity: 0.8; } 100% { transform: translateY(-80px) rotate(360deg); opacity: 0.2; } }

/* Scene: item-glove (dim-interior, tense still life) */
.scn-item-glove {
  background: linear-gradient(180deg, #05070a 0%, #111520 100%), radial-gradient(circle at 70% 60%, #1a2a3a 0%, transparent 60%);
}
.scn-item-glove .pillow { position:absolute; bottom:0; left:10%; width:80%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 -20px 60px #000; animation: settle-pillow-ig 12s infinite ease-in-out; }
.scn-item-glove .glove-sleeve { position:absolute; bottom:20%; left:50%; width:18%; height:45%; transform:translateX(-50%); background: linear-gradient(180deg, #b8a8a0 0%, #7a6a60 50%, #4a3a30 100%); border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%; box-shadow: inset 0 10px 30px #000; animation: drape-sleeve-ig 8s infinite alternate; }
.scn-item-glove .glove-fingers { position:absolute; bottom:40%; left:50%; width:20%; height:20%; transform:translateX(-50%); background: linear-gradient(180deg, #c8b8b0 0%, #8a7a70 100%); border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%; box-shadow: inset 0 0 20px #000; animation: rest-fingers-ig 6s infinite alternate; }
.scn-item-glove .pearl-button { position:absolute; bottom:48%; left:50%; width:4%; height:4%; transform:translateX(-50%); background: radial-gradient(circle at 40% 40%, #ffffff 0%, #b0b8c0 100%); border-radius: 50%; box-shadow: 0 0 20px #fff, 0 0 40px rgba(255,255,255,0.4); animation: gleam-pearl-ig 4s infinite alternate; }
.scn-item-glove .moonbeam { position:absolute; top:0; left:40%; width:8%; height:100%; background: linear-gradient(180deg, rgba(200,220,255,0.3) 0%, rgba(200,220,255,0.1) 40%, transparent 100%); transform: skewX(-15deg); filter: blur(4px); animation: sweep-beam-ig 15s infinite linear; }
.scn-item-glove .shadow-hand { position:absolute; bottom:15%; right:5%; width:25%; height:50%; background: linear-gradient(270deg, #000 0%, #05070a 100%); border-radius: 60% 0 0 60% / 80% 0 0 80%; transform: translateX(10px); animation: hover-hand-ig 7s infinite ease-in-out; }
.scn-item-glove .dust-sparkles { position:absolute; inset:0; background-image: radial-gradient(circle at 30% 50%, #fff 1px, transparent 1px), radial-gradient(circle at 70% 40%, #fff 1px, transparent 1px), radial-gradient(circle at 50% 70%, #fff 1px, transparent 1px); background-size: 100px 100px; opacity: 0.6; animation: twinkle-sparkles-ig 5s infinite alternate; }
@keyframes settle-pillow-ig { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes drape-sleeve-ig { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(1deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes rest-fingers-ig { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.03) translateY(-2px); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes gleam-pearl-ig { 0% { box-shadow: 0 0 10px #fff, 0 0 20px rgba(255,255,255,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 40px #fff, 0 0 80px rgba(255,255,255,0.6); opacity: 1; } 100% { box-shadow: 0 0 15px #fff, 0 0 30px rgba(255,255,255,0.3); opacity: 0.9; } }
@keyframes sweep-beam-ig { 0% { transform: skewX(-15deg) translateX(0); opacity: 0.2; } 50% { transform: skewX(-15deg) translateX(30px); opacity: 0.6; } 100% { transform: skewX(-15deg) translateX(0); opacity: 0.3; } }
@keyframes hover-hand-ig { 0% { transform: translateX(10px) translateY(0) rotate(-2deg); } 50% { transform: translateX(5px) translateY(-8px) rotate(2deg); } 100% { transform: translateX(10px) translateY(0) rotate(-2deg); } }
@keyframes twinkle-sparkles-ig { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.95); } }
/* end per-scene blocks */
