/* style.css -- merged from per-tier scene CSS by wizard2.stages.build_deploy */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
/* Scene: maid-knew-beguiling */
.scn-maid-knew-beguiling { background: linear-gradient(180deg, #f2c94c 0%, #d4a017 30%, #7a5c1e 60%, #2a2a1e 100%), radial-gradient(ellipse at 30% 20%, #ffd54f 0%, transparent 60%); }
.scn-maid-knew-beguiling .sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8ec5fc 0%, #f2c94c 70%); animation: mkb-sky 15s ease-in-out infinite alternate; }
.scn-maid-knew-beguiling .sun    { position:absolute; top:12%; left:25%; width:60px; height:60px; background: radial-gradient(circle, #fff3b0 0%, #f2c94c 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(242,201,76,0.3); animation: mkb-sun 8s ease-in-out infinite alternate; }
.scn-maid-knew-beguiling .city-wall { position:absolute; bottom:30%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #bf8f4a 0%, #8b5e3c 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: mkb-wall 20s ease-in-out infinite; }
.scn-maid-knew-beguiling .balcony { position:absolute; bottom:40%; left:50%; width:80px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #d4a017 0%, #8b5e3c 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); }
.scn-maid-knew-beguiling .maid   { position:absolute; bottom:42%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mkb-maid 4s ease-in-out infinite; }
.scn-maid-knew-beguiling .shadow { position:absolute; bottom:38%; left:45%; width:30px; height:10px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(4px); }
.scn-maid-knew-beguiling .cloud.c-a { position:absolute; top:20%; left:-10%; width:90px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(5px); animation: mkb-drift-a 40s linear infinite; }
.scn-maid-knew-beguiling .cloud.c-b { position:absolute; top:15%; right:-10%; width:70px; height:14px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%); border-radius:50%; filter: blur(4px); animation: mkb-drift-b 55s linear infinite reverse; }
@keyframes mkb-sky    { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mkb-sun    { 0% { transform: scale(1) translate(0, 0); box-shadow: 0 0 40px 20px rgba(242,201,76,0.3) } 50% { transform: scale(1.05) translate(5px, -5px); box-shadow: 0 0 60px 30px rgba(255,211,96,0.5) } 100% { transform: scale(0.95) translate(-3px, 3px); box-shadow: 0 0 35px 15px rgba(242,201,76,0.2) } }
@keyframes mkb-wall   { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes mkb-maid   { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 25% { transform: translateX(-50%) translateY(-3px) rotate(2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes mkb-drift-a{ 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }
@keyframes mkb-drift-b{ 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

/* Scene: lover-besieges-maid */
.scn-lover-besieges-maid { background: linear-gradient(180deg, #b8860b 0%, #8b6914 30%, #5c4010 60%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #ffd700 0%, transparent 70%); }
.scn-lover-besieges-maid .gate   { position:absolute; bottom:20%; left:50%; width:100px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5c1e 0%, #3a2a0a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,0.6); animation: lbm-gate 6s ease-in-out infinite; }
.scn-lover-besieges-maid .hand   { position:absolute; bottom:35%; left:40%; width:30px; height:40px; background: linear-gradient(180deg, #8b5e3c 0%, #5c3a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lbm-hand 3s ease-in-out infinite alternate; }
.scn-lover-besieges-maid .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #6b4a1a 0%, #2a1a0a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-lover-besieges-maid .sun-ray{ position:absolute; top:0; left:30%; width:40%; height:80%; background: linear-gradient(180deg, rgba(255,215,0,0.15) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation: lbm-ray 8s ease-in-out infinite alternate; }
.scn-lover-besieges-maid .dust.d-a { position:absolute; bottom:30%; left:20%; width:4px; height:4px; background: #ffd700; border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,215,0,0.4); animation: lbm-dust 4s ease-in-out infinite; }
.scn-lover-besieges-maid .dust.d-b { position:absolute; bottom:25%; right:30%; width:3px; height:3px; background: #ffd700; border-radius:50%; box-shadow: 0 0 4px 1px rgba(255,215,0,0.3); animation: lbm-dust 5s ease-in-out infinite 1s; }
.scn-lover-besieges-maid .shadow.figure-shadow { position:absolute; bottom:28%; left:35%; width:40px; height:8px; background: rgba(0,0,0,0.4); border-radius:50%; filter: blur(6px); animation: lbm-shadow 3s ease-in-out infinite alternate; }
@keyframes lbm-gate   { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(0.98) } }
@keyframes lbm-hand   { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(10px) rotate(5deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes lbm-ray    { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes lbm-dust   { 0% { transform: translate(0,0) scale(1); opacity:0.8 } 50% { transform: translate(15px,-10px) scale(1.5); opacity:1 } 100% { transform: translate(30px,-20px) scale(0.5); opacity:0 } }
@keyframes lbm-shadow { 0% { transform: scale(1) } 100% { transform: scale(1.2) } }

/* Scene: lover-errors-blood */
.scn-lover-errors-blood { background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 30%, #4a1a0a 60%, #1a0a00 100%), radial-gradient(ellipse at 70% 20%, #ff7b54 0%, transparent 60%); }
.scn-lover-errors-blood .flame   { position:absolute; bottom:50%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: radial-gradient(circle at 50% 30%, #ffd54f 0%, #ff7b54 50%, transparent 100%); border-radius: 40% 60% 20% 20% / 60% 80% 20% 20%; box-shadow: 0 0 30px 15px rgba(200,85,61,0.6); animation: leb-flame 2s ease-in-out infinite alternate; }
.scn-lover-errors-blood .table   { position:absolute; bottom:30%; left:50%; width:120px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #5c3a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-lover-errors-blood .lover   { position:absolute; bottom:30%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: leb-lover 5s ease-in-out infinite; }
.scn-lover-errors-blood .window  { position:absolute; top:15%; right:20%; width:60px; height:80px; border: 4px solid #5c3a1a; background: radial-gradient(circle, #ffd54f 0%, #ff7b54 60%, transparent 100%); border-radius: 8px; box-shadow: inset 0 0 20px 5px rgba(200,85,61,0.3); animation: leb-window 6s ease-in-out infinite alternate; }
.scn-lover-errors-blood .shadow.blood-shadow { position:absolute; bottom:28%; left:25%; width:50px; height:12px; background: rgba(100,30,10,0.5); border-radius:50%; filter: blur(8px); animation: leb-blood-shadow 4s ease-in-out infinite; }
.scn-lover-errors-blood .glow    { position:absolute; top:45%; left:40%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,123,84,0.15) 0%, transparent 100%); border-radius:50%; animation: leb-glow 3s ease-in-out infinite alternate; }
@keyframes leb-flame  { 0% { transform: translateX(-50%) scale(1) rotate(-3deg) } 50% { transform: translateX(-50%) scale(1.1) rotate(3deg) } 100% { transform: translateX(-50%) scale(0.95) rotate(0) } }
@keyframes leb-lover  { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(-5px) translateY(-2px) } 50% { transform: translateX(0) translateY(0) } 75% { transform: translateX(5px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes leb-window { 0% { opacity:0.7; box-shadow: inset 0 0 10px 2px rgba(200,85,61,0.2) } 50% { opacity:1; box-shadow: inset 0 0 30px 10px rgba(255,123,84,0.4) } 100% { opacity:0.8; box-shadow: inset 0 0 15px 5px rgba(200,85,61,0.3) } }
@keyframes leb-blood-shadow { 0% { transform: scale(1) } 50% { transform: scale(1.2) } 100% { transform: scale(1) } }
@keyframes leb-glow   { 0% { transform: scale(1); opacity:0.5 } 100% { transform: scale(2); opacity:0.1 } }

/* Scene: maid-final-woe */
.scn-maid-final-woe { background: linear-gradient(180deg, #5c3a1a 0%, #3a2a1a 30%, #1a120a 60%, #0a0805 100%), radial-gradient(ellipse at 50% 80%, #8b5e3c 0%, transparent 70%); }
.scn-maid-final-woe .cage   { position:absolute; bottom:30%; left:50%; width:120px; height:100px; transform:translateX(-50%); border: 4px solid #8b5e3c; background: transparent; border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); animation: mfw-cage 10s ease-in-out infinite alternate; }
.scn-maid-final-woe .heart  { position:absolute; bottom:40%; left:50%; width:30px; height:28px; transform:translateX(-50%); background: radial-gradient(circle at 50% 40%, #b87878 0%, #702243 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; clip-path: polygon(0 30%, 50% 0, 100% 30%, 80% 100%, 50% 80%, 20% 100%); animation: mfw-heart 3s ease-in-out infinite; }
.scn-maid-final-woe .floor  { position:absolute; bottom:20%; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0805 100%); box-shadow: inset 0 8px 15px rgba(0,0,0,0.6); }
.scn-maid-final-woe .light-beam { position:absolute; top:0; left:35%; width:30%; height:100%; background: linear-gradient(180deg, rgba(242,201,76,0.08) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: mfw-beam 7s ease-in-out infinite alternate; }
.scn-maid-final-woe .shadow.cage-shadow { position:absolute; bottom:18%; left:40%; width:120px; height:20px; background: rgba(0,0,0,0.5); border-radius:50%; filter: blur(10px); animation: mfw-cage-shadow 12s ease-in-out infinite; }
.scn-maid-final-woe .kingly-throne { position:absolute; bottom:0; left:40%; width:80px; height:30px; background: linear-gradient(180deg, #8b5e3c 0%, #5c3a1a 100%); border-radius: 40% 40% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.4); animation: mfw-throne 8s ease-in-out infinite; }
@keyframes mfw-cage  { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(0.98) } }
@keyframes mfw-heart { 0% { transform: translateX(-50%) scale(1) rotate(0deg) } 25% { transform: translateX(-50%) scale(1.1) rotate(-2deg) } 50% { transform: translateX(-50%) scale(0.95) rotate(2deg) } 75% { transform: translateX(-50%) scale(1.05) rotate(-1deg) } 100% { transform: translateX(-50%) scale(1) rotate(0deg) } }
@keyframes mfw-beam  { 0% { opacity:0.3 } 50% { opacity:1 } 100% { opacity:0.4 } }
@keyframes mfw-cage-shadow { 0% { transform: scale(1); opacity:0.6 } 50% { transform: scale(1.1); opacity:0.8 } 100% { transform: scale(0.95); opacity:0.5 } }
@keyframes mfw-throne { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }

/* lover-nun scene */
.scn-lover-nun {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 70%);
}
.scn-lover-nun .ln-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; }
.scn-lover-nun .ln-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-lover-nun .ln-window { position:absolute; top:10%; left:50%; width:60px; height:80px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #806040 0%, #4a3a2a 70%); border: 4px solid #5a4a3a; border-radius: 10% 10% 8% 8%; animation: ln-window 8s ease-in-out infinite alternate; }
.scn-lover-nun .ln-nun { position:absolute; bottom:28%; left:50%; width:40px; height:90px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ln-nun 6s ease-in-out infinite; }
.scn-lover-nun .ln-candle { position:absolute; bottom:30%; left:45%; width:6px; height:20px; background: linear-gradient(180deg, #f0c060 0%, #c08040 100%); border-radius: 2px 2px 4px 4px; animation: ln-candle 2s ease-in-out infinite alternate; }
.scn-lover-nun .ln-cross { position:absolute; top:12%; left:40%; width:4px; height:50px; background: #5a4a3a; transform: rotate(15deg); box-shadow: 2px 0 0 #5a4a3a, 4px 0 0 #5a4a3a; animation: ln-cross 10s ease-in-out infinite; }
.scn-lover-nun .ln-glow { position:absolute; bottom:32%; left:44%; width:20px; height:20px; background: radial-gradient(circle, #f0d080 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(240,208,128,0.3); animation: ln-glow 3s ease-in-out infinite alternate; }
@keyframes ln-window {
  0% { opacity:0.8; transform: translateX(-50%) scale(1); }
  50% { opacity:1; transform: translateX(-50%) scale(1.02); }
  100% { opacity:0.85; transform: translateX(-50%) scale(0.98); }
}
@keyframes ln-nun {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  33% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  66% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes ln-candle {
  0% { height:18px; opacity:0.9; }
  50% { height:22px; opacity:1; }
  100% { height:19px; opacity:0.85; }
}
@keyframes ln-cross {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(17deg) translateY(-2px); }
  100% { transform: rotate(13deg) translateY(1px); }
}
@keyframes ln-glow {
  0% { opacity:0.6; transform: scale(0.9); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.7; transform: scale(0.95); }
}

/* lover-temptation scene */
.scn-lover-temptation {
  background:
    linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 50%, #0a000a 100%),
    radial-gradient(ellipse at 50% 40%, #4a2a3a 0%, transparent 60%);
}
.scn-lover-temptation .lt-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(30,20,30,0.8) 0%, rgba(10,5,10,0.9) 100%); }
.scn-lover-temptation .lt-figure { position:absolute; bottom:20%; left:50%; width:40px; height:80px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 60%, #0a000a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: lt-figure 5s ease-in-out infinite; }
.scn-lover-temptation .lt-chain { position:absolute; bottom:25%; left:45%; width:50px; height:4px; background: linear-gradient(90deg, #5a4a4a 0%, #3a2a2a 100%); border-radius: 2px; transform-origin: left center; animation: lt-chain 4s ease-in-out infinite; }
.scn-lover-temptation .lt-apple { position:absolute; bottom:35%; left:55%; width:16px; height:16px; background: radial-gradient(circle at 40% 40%, #c06550 0%, #8a3a2a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: lt-apple 3s ease-in-out infinite; }
.scn-lover-temptation .lt-shadow { position:absolute; bottom:18%; left:50%; width:60px; height:10px; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%); animation: lt-shadow 5s ease-in-out infinite alternate; }
.scn-lover-temptation .lt-halo { position:absolute; top:10%; left:40%; width:30px; height:30px; background: radial-gradient(circle, rgba(180,160,140,0.3) 0%, transparent 70%); border-radius: 50%; animation: lt-halo 8s ease-in-out infinite alternate; }
@keyframes lt-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0); }
  25% { transform: translateX(-50%) translateY(-3px) rotate(3deg); }
  50% { transform: translateX(-50%) translateY(-1px) rotate(-2deg); }
  75% { transform: translateX(-50%) translateY(-4px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes lt-chain {
  0% { transform: rotate(-10deg) scaleX(1); }
  50% { transform: rotate(10deg) scaleX(1.05); }
  100% { transform: rotate(-5deg) scaleX(0.95); }
}
@keyframes lt-apple {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-5px) rotate(20deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes lt-shadow {
  0% { opacity:0.5; transform: translateX(-50%) scaleX(1); }
  50% { opacity:0.8; transform: translateX(-50%) scaleX(1.2); }
  100% { opacity:0.6; transform: translateX(-50%) scaleX(0.9); }
}
@keyframes lt-halo {
  0% { opacity:0.3; transform: scale(0.8); }
  50% { opacity:0.6; transform: scale(1.2); }
  100% { opacity:0.4; transform: scale(0.9); }
}

/* lover-boast scene */
.scn-lover-boast {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 20%, #6a5a4a 0%, transparent 70%);
}
.scn-lover-boast .lb-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(50,40,30,0.8) 0%, rgba(30,20,10,0.9) 100%); }
.scn-lover-boast .lb-window { position:absolute; top:5%; left:50%; width:80px; height:100px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #7a6a5a 0%, #4a3a2a 70%); border: 6px solid #5a4a3a; border-radius: 8% 8% 6% 6%; animation: lb-window 12s ease-in-out infinite alternate; }
.scn-lover-boast .lb-cross { position:absolute; top:8%; left:35%; width:4px; height:60px; background: #4a3a2a; transform: rotate(-10deg); box-shadow: 3px 0 0 #4a3a2a; animation: lb-cross 9s ease-in-out infinite; }
.scn-lover-boast .lb-cage { position:absolute; bottom:25%; left:50%; width:60px; height:50px; transform: translateX(-50%); background: none; border: 3px solid #5a4a3a; border-radius: 10% 10% 8% 8%; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); animation: lb-cage 7s ease-in-out infinite; }
.scn-lover-boast .lb-bird { position:absolute; bottom:30%; left:50%; width:20px; height:14px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40%; animation: lb-bird 2s ease-in-out infinite; }
.scn-lover-boast .lb-light { position:absolute; top:5%; left:45%; width:40px; height:40px; background: radial-gradient(circle, rgba(240,200,160,0.4) 0%, transparent 70%); border-radius: 50%; animation: lb-light 6s ease-in-out infinite alternate; }
@keyframes lb-window {
  0% { opacity:0.8; transform: translateX(-50%) scale(1); }
  50% { opacity:1; transform: translateX(-50%) scale(1.03); }
  100% { opacity:0.85; transform: translateX(-50%) scale(0.97); }
}
@keyframes lb-cross {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-12deg) translateY(2px); }
}
@keyframes lb-cage {
  0% { transform: translateX(-50%) scale(1); border-color: #5a4a3a; }
  50% { transform: translateX(-50%) scale(1.02); border-color: #7a6a5a; }
  100% { transform: translateX(-50%) scale(0.98); border-color: #4a3a2a; }
}
@keyframes lb-bird {
  0% { transform: translateX(-50%) translateY(0) rotate(0); }
  25% { transform: translateX(-50%) translateY(-4px) rotate(-5deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(5deg); }
  75% { transform: translateX(-50%) translateY(-3px) rotate(-3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes lb-light {
  0% { opacity:0.3; transform: scale(0.8); }
  50% { opacity:0.7; transform: scale(1.3); }
  100% { opacity:0.4; transform: scale(0.9); }
}

/* lover-victory scene */
.scn-lover-victory {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #00000a 100%),
    radial-gradient(ellipse at 50% 40%, #2a1a3a 0%, transparent 60%);
}
.scn-lover-victory .lv-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,15,30,0.8) 0%, rgba(5,5,15,0.9) 100%); }
.scn-lover-victory .lv-well { position:absolute; bottom:10%; left:50%; width:70px; height:40px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #3a2a4a 0%, #1a0a2a 100%); border-radius: 50% 50% 10% 10%; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); animation: lv-well 8s ease-in-out infinite alternate; }
.scn-lover-victory .lv-figure { position:absolute; bottom:30%; left:50%; width:40px; height:100px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 60%, #0a001a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: lv-figure 7s ease-in-out infinite; }
.scn-lover-victory .lv-hearts { position:absolute; top:10%; left:20%; width:16px; height:12px; background: radial-gradient(ellipse at 40% 40%, #a0461a 0%, #5e1a1d 100%); clip-path: polygon(50% 15%, 100% 40%, 80% 100%, 50% 70%, 20% 100%, 0% 40%); animation: lv-hearts 5s ease-in-out infinite; }
.scn-lover-victory .lv-water { position:absolute; bottom:12%; left:50%; width:60px; height:6px; transform: translateX(-50%); background: linear-gradient(90deg, transparent, #5a4a6a 20%, #3a2a4a 80%, transparent); border-radius: 50%; animation: lv-water 4s ease-in-out infinite alternate; }
.scn-lover-victory .lv-crown { position:absolute; top:5%; left:45%; width:30px; height:20px; background: radial-gradient(ellipse at 50% 30%, #c0a060 0%, #806040 100%); border-radius: 10% 10% 50% 50%; box-shadow: 0 0 10px rgba(192,160,96,0.4); animation: lv-crown 9s ease-in-out infinite; }
@keyframes lv-well {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes lv-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0); }
  20% { transform: translateX(-50%) translateY(-4px) rotate(5deg); }
  40% { transform: translateX(-50%) translateY(-2px) rotate(-3deg); }
  60% { transform: translateX(-50%) translateY(-6px) rotate(2deg); }
  80% { transform: translateX(-50%) translateY(-3px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes lv-hearts {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-15px) rotate(20deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes lv-water {
  0% { opacity:0.6; transform: translateX(-50%) scaleX(1); }
  50% { opacity:0.9; transform: translateX(-50%) scaleX(1.1); }
  100% { opacity:0.7; transform: translateX(-50%) scaleX(0.9); }
}
@keyframes lv-crown {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-5px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

.scn-reverend-man-approaches {
  background: linear-gradient(180deg, #b8d4e8 0%, #e6c8a0 40%, #c8a070 100%), radial-gradient(ellipse at 30% 60%, #f0e0c0 0%, transparent 70%);
}
.scn-reverend-man-approaches .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8ec6e0 0%, #d4e8f0 100%);
  animation: rma-sky 12s ease-in-out infinite alternate;
}
.scn-reverend-man-approaches .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a9a5a 0%, #4a6a3a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: rma-hills 18s ease-in-out infinite alternate;
}
.scn-reverend-man-approaches .meadow {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #9ab860 0%, #6a8a40 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-reverend-man-approaches .path {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #c8a870 0%, #a08050 100%);
  border-radius: 0 0 50% 50%;
  transform: perspective(200px) rotateX(10deg);
  animation: rma-path 8s ease-in-out infinite alternate;
}
.scn-reverend-man-approaches .tree {
  position: absolute; bottom: 30%; left: 65%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: rma-tree 10s ease-in-out infinite;
}
.scn-reverend-man-approaches .figure {
  position: absolute; bottom: 17%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rma-figure 6s ease-in-out infinite;
}
.scn-reverend-man-approaches .staff {
  position: absolute; bottom: 17%; left: 32%; width: 3px; height: 60px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom;
  animation: rma-staff 6s ease-in-out infinite;
}
.scn-reverend-man-approaches .shadow {
  position: absolute; bottom: 15%; left: 28%; width: 40px; height: 8px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: rma-shadow 6s ease-in-out infinite;
}
@keyframes rma-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes rma-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes rma-path { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rma-tree { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes rma-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(8px) rotate(-2deg) } 50% { transform: translateX(16px) rotate(0) } 75% { transform: translateX(24px) rotate(2deg) } 100% { transform: translateX(32px) rotate(0) } }
@keyframes rma-staff { 0% { transform: rotate(15deg) translateX(0) } 25% { transform: rotate(12deg) translateX(2px) } 50% { transform: rotate(15deg) translateX(0) } 75% { transform: rotate(18deg) translateX(-2px) } 100% { transform: rotate(15deg) translateX(0) } }
@keyframes rma-shadow { 0% { width:40px; opacity:0.3 } 25% { width:45px; opacity:0.4 } 50% { width:40px; opacity:0.3 } 75% { width:35px; opacity:0.2 } 100% { width:40px; opacity:0.3 } }

.scn-reverend-sits-and-asks {
  background: linear-gradient(135deg, #d8c8a0 0%, #a08060 100%), radial-gradient(circle at 30% 40%, #efe0c0 0%, transparent 60%);
}
.scn-reverend-sits-and-asks .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a3a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
}
.scn-reverend-sits-and-asks .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #c8b898 0%, #a89078 100%);
}
.scn-reverend-sits-and-asks .window {
  position: absolute; bottom: 45%; left: 60%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #b0d4e8 0%, #d0e8f0 100%);
  border: 6px solid #5a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: rsa-window 10s ease-in-out infinite alternate;
}
.scn-reverend-sits-and-asks .chair-left {
  position: absolute; bottom: 28%; left: 25%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: rsa-chair 8s ease-in-out infinite;
}
.scn-reverend-sits-and-asks .chair-right {
  position: absolute; bottom: 28%; right: 25%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: rsa-chair 8s ease-in-out infinite reverse;
}
.scn-reverend-sits-and-asks .figure-sitting {
  position: absolute; bottom: 24%; left: 28%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rsa-sit 6s ease-in-out infinite;
}
.scn-reverend-sits-and-asks .figure-standing {
  position: absolute; bottom: 24%; right: 28%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rsa-stand 4s ease-in-out infinite alternate;
}
.scn-reverend-sits-and-asks .light-shaft {
  position: absolute; bottom: 30%; left: 55%; width: 50px; height: 200px;
  background: linear-gradient(180deg, rgba(255,255,230,0.5) 0%, transparent 100%);
  transform: skewX(-5deg);
  filter: blur(8px);
  animation: rsa-light 10s ease-in-out infinite alternate;
}
@keyframes rsa-window { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes rsa-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes rsa-sit { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes rsa-stand { 0% { transform: translateY(0) translateX(0) } 50% { transform: translateY(-3px) translateX(2px) } 100% { transform: translateY(0) translateX(0) } }
@keyframes rsa-light { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

.scn-maid-begins-complaint {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 50%, #3a3a6e 100%), radial-gradient(ellipse at 50% 30%, #4a4a7e 0%, transparent 60%);
}
.scn-maid-begins-complaint .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 100%);
  animation: mbc-night 15s ease-in-out infinite alternate;
}
.scn-maid-begins-complaint .moon {
  position: absolute; top: 8%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0e8c0 0%, #c8b080 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,232,192,0.4);
  animation: mbc-moon 8s ease-in-out infinite alternate;
}
.scn-maid-begins-complaint .window-frame {
  position: absolute; bottom: 35%; left: 30%; width: 120px; height: 140px;
  border: 8px solid #2a1a1a;
  border-radius: 6px;
  background: linear-gradient(180deg, rgba(200,200,220,0.3) 0%, transparent 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: mbc-frame 12s ease-in-out infinite;
}
.scn-maid-begins-complaint .maid-silhouette {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mbc-maid 6s ease-in-out infinite;
}
.scn-maid-begins-complaint .hand-gesture {
  position: absolute; bottom: 45%; left: 48%; width: 12px; height: 18px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mbc-hand 4s ease-in-out infinite alternate;
}
.scn-maid-begins-complaint .tear-glint {
  position: absolute; bottom: 55%; left: 46%; width: 4px; height: 6px;
  background: radial-gradient(circle, #c0d0f0 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: mbc-tear 3s ease-in-out infinite;
}
.scn-maid-begins-complaint .shadow-pool {
  position: absolute; bottom: 28%; left: 40%; width: 60px; height: 12px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(6px);
  animation: mbc-pool 8s ease-in-out infinite alternate;
}
@keyframes mbc-night { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes mbc-moon { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(0) } }
@keyframes mbc-frame { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes mbc-maid { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(-1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mbc-hand { 0% { transform: translate(0,0) rotate(0) } 50% { transform: translate(8px, -4px) rotate(15deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes mbc-tear { 0% { opacity:0; transform: translateY(0) } 50% { opacity:1; transform: translateY(10px) } 100% { opacity:0; transform: translateY(20px) } }
@keyframes mbc-pool { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

.scn-youthful-suit-commended {
  background: linear-gradient(135deg, #f0d8a0 0%, #e0b870 100%), radial-gradient(ellipse at 50% 40%, #ffe8c0 0%, transparent 70%);
}
.scn-youthful-suit-commended .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #f0d8a0 0%, #d0b080 100%);
  animation: ysc-bg 14s ease-in-out infinite alternate;
}
.scn-youthful-suit-commended .halo {
  position: absolute; top: 25%; left: 50%; width: 120px; height: 120px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,230,180,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: ysc-halo 10s ease-in-out infinite alternate;
}
.scn-youthful-suit-commended .head-profile {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d0b090 0%, #a08060 100%);
  border-radius: 60% 40% 40% 40% / 60% 50% 50% 50%;
  box-shadow: inset 0 0 10px rgba(80,50,30,0.3);
  animation: ysc-head 6s ease-in-out infinite;
}
.scn-youthful-suit-commended .curl-1 {
  position: absolute; bottom: 55%; left: 47%; width: 18px; height: 12px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: ysc-curl1 4s ease-in-out infinite alternate;
}
.scn-youthful-suit-commended .curl-2 {
  position: absolute; bottom: 58%; left: 55%; width: 16px; height: 10px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: ysc-curl2 5s ease-in-out infinite alternate;
}
.scn-youthful-suit-commended .eye {
  position: absolute; bottom: 42%; left: 48%; width: 6px; height: 4px;
  background: radial-gradient(circle, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(200,160,120,0.5);
  animation: ysc-eye 3s ease-in-out infinite alternate;
}
.scn-youthful-suit-commended .lip {
  position: absolute; bottom: 34%; left: 46%; width: 10px; height: 4px;
  background: linear-gradient(180deg, #b87878 0%, #906060 100%);
  border-radius: 50%;
  animation: ysc-lip 4s ease-in-out infinite;
}
.scn-youthful-suit-commended .light-dot {
  position: absolute; bottom: 36%; left: 52%; width: 4px; height: 4px;
  background: radial-gradient(circle, #fff0d0 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ysc-dot 5s ease-in-out infinite alternate;
}
@keyframes ysc-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ysc-halo { 0% { transform: translate(-50%, -50%) scale(0.95); opacity:0.3 } 50% { transform: translate(-50%, -50%) scale(1.1); opacity:0.6 } 100% { transform: translate(-50%, -50%) scale(0.95); opacity:0.4 } }
@keyframes ysc-head { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) translateY(1px) } }
@keyframes ysc-curl1 { 0% { transform: rotate(20deg) scaleX(1) } 50% { transform: rotate(25deg) scaleX(1.1) } 100% { transform: rotate(20deg) scaleX(1) } }
@keyframes ysc-curl2 { 0% { transform: rotate(-15deg) scaleX(1) } 50% { transform: rotate(-10deg) scaleX(1.15) } 100% { transform: rotate(-15deg) scaleX(1) } }
@keyframes ysc-eye { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.2) } 100% { transform: scaleY(1) } }
@keyframes ysc-lip { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes ysc-dot { 0% { opacity:0.4 } 50% { opacity:1 } 100% { opacity:0.5 } }

.scn-lover-real-habitude {
  background:
    linear-gradient(180deg, #f9e6c8 0%, #f5d5a0 30%, #eac78a 60%, #d4b87a 100%),
    radial-gradient(ellipse at 50% 100%, #fce3b0 0%, transparent 60%);
}
.scn-lover-real-habitude .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #a0c8e0 0%, #c4e0f0 40%, #f0e8c8 100%);
  animation: lrh-sky 12s ease-in-out infinite alternate;
}
.scn-lover-real-habitude .sun {
  position: absolute; top: 12%; right: 18%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff0c0 0%, #f0d080 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(240,208,128,0.5);
  animation: lrh-sun 8s ease-in-out infinite alternate;
}
.scn-lover-real-habitude .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8ba86a 0%, #6a8a4a 50%, #4a6a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: lrh-hills 15s ease-in-out infinite alternate;
}
.scn-lover-real-habitude .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #c0b070 0%, #a09050 40%, #706030 100%);
  border-radius: 30% 50% 0 0 / 60% 70% 0 0;
  animation: lrh-field 10s ease-in-out infinite alternate;
}
.scn-lover-real-habitude .figure {
  position: absolute; bottom: 26%; left: 50%;
  width: 30px; height: 65px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4a080 0%, #b08060 50%, #805040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: lrh-figure 6s ease-in-out infinite;
}
.scn-lover-real-habitude .flowers {
  position: absolute; bottom: 20%; left: 10%;
  width: 120px; height: 25px;
  background: 
    radial-gradient(circle at 10% 50%, #e8a060 4px, transparent 4px),
    radial-gradient(circle at 28% 40%, #d08040 5px, transparent 5px),
    radial-gradient(circle at 45% 60%, #f0c080 4px, transparent 4px),
    radial-gradient(circle at 62% 35%, #d09050 6px, transparent 6px),
    radial-gradient(circle at 78% 55%, #e8b070 5px, transparent 5px),
    radial-gradient(circle at 90% 45%, #c87840 4px, transparent 4px);
  filter: blur(1px);
  animation: lrh-flowers 9s ease-in-out infinite alternate;
}
.scn-lover-real-habitude .rays {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(135deg, rgba(255,240,200,0.2) 0%, transparent 30%, rgba(255,240,200,0.15) 60%, transparent 100%);
  background-size: 200% 200%;
  animation: lrh-rays 20s linear infinite alternate;
}
@keyframes lrh-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes lrh-sun { 0% { transform: scale(0.9); box-shadow:0 0 60px 30px rgba(240,208,128,0.4) } 50% { transform: scale(1.1); box-shadow:0 0 100px 50px rgba(240,208,128,0.6) } 100% { transform: scale(1); box-shadow:0 0 80px 40px rgba(240,208,128,0.5) } }
@keyframes lrh-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes lrh-field { 0% { transform: scaleY(1); opacity:0.9 } 50% { transform: scaleY(1.02); opacity:1 } 100% { transform: scaleY(0.98); opacity:0.92 } }
@keyframes lrh-figure { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-40%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(-1deg) } 75% { transform: translateX(-60%) rotate(3deg) } }
@keyframes lrh-flowers { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes lrh-rays { 0% { background-position:0% 0% } 100% { background-position:100% 100% } }

.scn-lover-subduing-tongue {
  background:
    linear-gradient(180deg, #f7dba0 0%, #ecc880 40%, #d4a860 80%, #b89050 100%),
    radial-gradient(ellipse at 30% 40%, #ffe0a0 0%, transparent 60%);
}
.scn-lover-subduing-tongue .bg-ambient {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #ffeac0 0%, transparent 40%, #f0d0a0 60%, transparent 100%);
  background-size: 200% 200%;
  animation: lst-ambient 18s ease-in-out infinite alternate;
}
.scn-lover-subduing-tongue .head {
  position: absolute; bottom: 25%; left: 50%;
  width: 80px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4a080 0%, #b08060 60%, #906050 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: lst-head 5s ease-in-out infinite;
}
.scn-lover-subduing-tongue .eye {
  position: absolute; bottom: 35%; left: 50%;
  width: 12px; height: 14px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(255,200,150,0.3);
  animation: lst-eye 7s ease-in-out infinite alternate;
}
.scn-lover-subduing-tongue .mouth-wave {
  position: absolute; bottom: 19%; left: 50%;
  width: 40px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c88060 0%, #a06050 100%);
  border-radius: 40%/60% 60% 40% 40%;
  animation: lst-mouth 4s ease-in-out infinite;
}
.scn-lover-subduing-tongue .glow-wave {
  position: absolute; bottom: 18%; left: 50%;
  width: 100px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, rgba(255,220,160,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: lst-glow 6s ease-in-out infinite alternate;
}
.scn-lover-subduing-tongue .particles {
  position: absolute; inset: 0;
  background:
    radial-gradient(circle at 20% 30%, #fff0c0 2px, transparent 2px),
    radial-gradient(circle at 70% 50%, #ffe8a0 3px, transparent 3px),
    radial-gradient(circle at 40% 70%, #ffd080 2px, transparent 2px),
    radial-gradient(circle at 85% 25%, #ffe0b0 2px, transparent 2px);
  background-size: 60px 60px;
  opacity: 0.5;
  animation: lst-particles 12s linear infinite;
}
@keyframes lst-ambient { 0% { background-position:0% 0% } 100% { background-position:100% 100% } }
@keyframes lst-head { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-45%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(-1deg) } 75% { transform: translateX(-55%) rotate(3deg) } }
@keyframes lst-eye { 0% { transform: translate(-50%, -50%) scaleX(1) } 50% { transform: translate(-50%, -50%) scaleX(1.4) } 100% { transform: translate(-50%, -50%) scaleX(0.9) } }
@keyframes lst-mouth { 0% { transform: translateX(-50%) scaleY(1) } 25% { transform: translateX(-50%) scaleY(1.3) } 50% { transform: translateX(-50%) scaleY(0.8) } 75% { transform: translateX(-50%) scaleY(1.2) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes lst-glow { 0% { opacity: 0.3; transform: translateX(-50%) scale(0.8) } 50% { opacity: 0.7; transform: translateX(-50%) scale(1.2) } 100% { opacity: 0.4; transform: translateX(-50%) scale(1) } }
@keyframes lst-particles { 0% { transform: translateY(0) } 50% { transform: translateY(-30px) } 100% { transform: translateY(5px) } }

.scn-lover-bosom-reign {
  background:
    linear-gradient(180deg, #c8b090 0%, #b09878 30%, #907860 60%, #685040 100%),
    radial-gradient(ellipse at 30% 70%, #d0b898 0%, transparent 50%);
}
.scn-lover-bosom-reign .wall {
  position: absolute; inset: 30% 10% 0 10%;
  background: linear-gradient(180deg, #b09070 0%, #a08060 50%, #806040 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
  animation: lbr-wall 10s ease-in-out infinite alternate;
}
.scn-lover-bosom-reign .balcony {
  position: absolute; bottom: 40%; left: 25%; right: 25%; height: 18%;
  background: linear-gradient(180deg, #a08868 0%, #806850 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
}
.scn-lover-bosom-reign .figure-center {
  position: absolute; bottom: 42%; left: 50%;
  width: 28px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4a080 0%, #b08060 60%, #906050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: lbr-figure 8s ease-in-out infinite alternate;
}
.scn-lover-bosom-reign .crowd-left {
  position: absolute; bottom: 42%; left: 10%; width: 15%; height: 45px;
  background: 
    radial-gradient(ellipse at 30% 50%, #403020 30px, transparent 40px),
    radial-gradient(ellipse at 70% 30%, #503830 20px, transparent 30px),
    radial-gradient(ellipse at 50% 70%, #604030 25px, transparent 35px);
  opacity: 0.7;
  animation: lbr-crowd-left 12s ease-in-out infinite alternate;
}
.scn-lover-bosom-reign .crowd-right {
  position: absolute; bottom: 42%; right: 10%; width: 15%; height: 45px;
  background: 
    radial-gradient(ellipse at 40% 40%, #403020 28px, transparent 38px),
    radial-gradient(ellipse at 60% 60%, #503830 22px, transparent 32px),
    radial-gradient(ellipse at 50% 30%, #604030 26px, transparent 36px);
  opacity: 0.7;
  animation: lbr-crowd-right 14s ease-in-out infinite alternate;
}
.scn-lover-bosom-reign .banner {
  position: absolute; top: 32%; left: 50%;
  width: 20px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c08050 0%, #a06030 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: lbr-banner 6s ease-in-out infinite alternate;
}
@keyframes lbr-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lbr-figure { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(2deg) translateY(-5px) } 50% { transform: translateX(-50%) rotate(-1deg) translateY(0) } 75% { transform: translateX(-50%) rotate(3deg) translateY(-3px) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes lbr-crowd-left { 0% { transform: translateX(0) opacity(0.6) } 50% { transform: translateX(-5px) opacity(0.8) } 100% { transform: translateX(3px) opacity(0.7) } }
@keyframes lbr-crowd-right { 0% { transform: translateX(0) opacity(0.6) } 50% { transform: translateX(5px) opacity(0.8) } 100% { transform: translateX(-3px) opacity(0.7) } }
@keyframes lbr-banner { 0% { transform: translateX(-50%) rotate(-3deg) } 50% { transform: translateX(-50%) rotate(3deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }

.scn-lover-picture-fools {
  background:
    linear-gradient(180deg, #d0c0a0 0%, #c0b090 30%, #a89878 60%, #887860 100%),
    radial-gradient(ellipse at 60% 40%, #e0d0b0 0%, transparent 60%);
}
.scn-lover-picture-fools .floor {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #a89078 0%, #907860 50%, #786050 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  animation: lpf-floor 12s ease-in-out infinite alternate;
}
.scn-lover-picture-fools .frame {
  position: absolute; top: 15%; left: 30%; right: 30%; height: 45%;
  background: linear-gradient(180deg, #c8a880 0%, #a88860 50%, #907050 100%);
  border-radius: 10% / 15%;
  box-shadow: 0 12px 24px rgba(0,0,0,0.4), inset 0 0 0 8px #b89870;
  animation: lpf-frame 9s ease-in-out infinite alternate;
}
.scn-lover-picture-fools .portrait {
  position: absolute; top: 20%; left: 35%; right: 35%; height: 35%;
  background: linear-gradient(180deg, #d0a880 0%, #b08868 40%, #906050 100%);
  border-radius: 20% / 30%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
  animation: lpf-portrait 7s ease-in-out infinite alternate;
}
.scn-lover-picture-fools .admirer-1 {
  position: absolute; bottom: 28%; left: 12%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #605040 0%, #403020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9);
  animation: lpf-admirer1 5s ease-in-out infinite;
}
.scn-lover-picture-fools .admirer-2 {
  position: absolute; bottom: 28%; left: 65%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #605040 0%, #403020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9);
  animation: lpf-admirer2 6s ease-in-out infinite 0.5s;
}
.scn-lover-picture-fools .admirer-3 {
  position: absolute; bottom: 24%; left: 40%;
  width: 20px; height: 45px;
  background: linear-gradient(180deg, #605040 0%, #403020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.85);
  animation: lpf-admirer3 7s ease-in-out infinite 1s;
}
.scn-lover-picture-fools .glare {
  position: absolute; top: 18%; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, transparent 50%, rgba(255,240,200,0.1) 100%);
  filter: blur(10px);
  animation: lpf-glare 4s ease-in-out infinite alternate;
}
@keyframes lpf-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes lpf-frame { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes lpf-portrait { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes lpf-admirer1 { 0%,100% { transform: scale(0.9) translate(0,0) rotate(0deg) } 25% { transform: scale(0.93) translate(2px,-2px) rotate(2deg) } 50% { transform: scale(0.9) translate(0,0) rotate(-1deg) } 75% { transform: scale(0.88) translate(-2px,-1px) rotate(1deg) } }
@keyframes lpf-admirer2 { 0%,100% { transform: scale(0.9) translate(0,0) rotate(0deg) } 25% { transform: scale(0.92) translate(-2px,-2px) rotate(-2deg) } 50% { transform: scale(0.9) translate(0,0) rotate(1deg) } 75% { transform: scale(0.88) translate(2px,-1px) rotate(-1deg) } }
@keyframes lpf-admirer3 { 0%,100% { transform: scale(0.85) translate(0,0) rotate(0deg) } 25% { transform: scale(0.87) translate(0,-3px) rotate(1deg) } 50% { transform: scale(0.85) translate(0,0) rotate(-1deg) } 75% { transform: scale(0.83) translate(-1px,-1px) rotate(0deg) } }
@keyframes lpf-glare { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }

/* hair-formal-plat – silhouette of a woman in profile with braided hair and sheaved hat */
.scn-hair-formal-plat {
  background: 
    linear-gradient(180deg, #c9b89a 0%, #a48d70 40%, #6b5940 100%),
    radial-gradient(ellipse at 50% 30%, #d4c4a0 0%, transparent 70%);
}
.scn-hair-formal-plat .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #d4c4a0 0%, #8a7a5e 100%); opacity:0.4; }
.scn-hair-formal-plat .head {
  position:absolute; bottom:30%; left:35%; width:80px; height:90px;
  background: linear-gradient(135deg, #2c2a1e 0%, #1a1810 100%);
  border-radius: 50% 45% 40% 50% / 60% 55% 45% 50%;
  transform-origin: bottom center;
  animation: hfp-head 6s ease-in-out infinite alternate;
}
.scn-hair-formal-plat .hat {
  position:absolute; bottom:65%; left:30%; width:100px; height:40px;
  background: linear-gradient(135deg, #4a3e2e 0%, #2d2418 100%);
  border-radius: 60% 40% 20% 20% / 80% 70% 20% 20%;
  transform: rotate(-10deg);
  animation: hfp-hat 8s ease-in-out infinite;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.4);
}
.scn-hair-formal-plat .fillet {
  position:absolute; bottom:60%; left:32%; width:90px; height:6px;
  background: linear-gradient(90deg, #8a7050, #b09070, #8a7050);
  border-radius: 3px;
  transform: rotate(-8deg);
  animation: hfp-fillet 5s ease-in-out infinite alternate;
}
.scn-hair-formal-plat .braid {
  position:absolute; bottom:25%; left:58%; width:16px; height:60px;
  background: linear-gradient(180deg, #1e1c14 0%, #0e0c08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: top center;
  animation: hfp-braid 4s ease-in-out infinite;
}
.scn-hair-formal-plat .shoulder {
  position:absolute; bottom:18%; left:28%; width:120px; height:50px;
  background: linear-gradient(180deg, #2a2818 0%, #1a1810 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(5deg);
}
@keyframes hfp-head { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes hfp-hat { 0%,100% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(3px); } }
@keyframes hfp-fillet { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes hfp-braid { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(0.95); } 100% { transform: rotate(-3deg) scaleY(1); } }

/* item-favours-thrown-into-river – riverside with throwing hand, falling gems, splashes */
.scn-item-favours-thrown-into-river {
  background: 
    linear-gradient(180deg, #5c7c8a 0%, #8aa3a8 30%, #b0b8a0 60%, #6a7a5e 100%),
    radial-gradient(ellipse at 50% 20%, #b0c0b0 0%, transparent 50%);
}
.scn-item-favours-thrown-into-river .bg { position:absolute; inset:0; background: linear-gradient(180deg, #7a9380 0%, #4a5a4e 100%); }
.scn-item-favours-thrown-into-river .river {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #2a3a3e 0%, #1a282a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: ift-river 12s ease-in-out infinite alternate;
}
.scn-item-favours-thrown-into-river .bank {
  position:absolute; bottom:45%; left:0; right:20%; height:15%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 0 60% 40% 0 / 0 80% 60% 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
}
.scn-item-favours-thrown-into-river .hand {
  position:absolute; bottom:50%; left:20%; width:30px; height:50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  transform-origin: 70% 80%;
  animation: ift-throw 3s ease-in-out infinite;
}
.scn-item-favours-thrown-into-river .gem {
  position:absolute; bottom:55%; left:35%; width:14px; height:14px;
  background: radial-gradient(circle, #c8a040 0%, #806020 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(200,160,64,0.5);
  animation: ift-gem 4s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-item-favours-thrown-into-river .splash {
  position:absolute; bottom:38%; left:40%; width:30px; height:18px;
  background: radial-gradient(ellipse at 50% 30%, rgba(180,210,200,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: ift-splash 2s ease-out infinite;
  animation-delay: 2s;
}
@keyframes ift-river { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(0.98) translateY(2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ift-throw { 0% { transform: rotate(-20deg) translate(0,0); } 25% { transform: rotate(-40deg) translate(-5px,-10px); } 50% { transform: rotate(10deg) translate(15px,5px); } 75% { transform: rotate(0deg) translate(20px,8px); } 100% { transform: rotate(-20deg) translate(0,0); } }
@keyframes ift-gem { 0% { transform: translate(0,0) rotate(0deg) scale(1); opacity:1; } 25% { transform: translate(-10px,-20px) rotate(90deg) scale(0.9); } 50% { transform: translate(-20px,-5px) rotate(180deg) scale(1.1); } 75% { transform: translate(-30px,20px) rotate(270deg) scale(1); opacity:0.6; } 100% { transform: translate(-40px,50px) rotate(360deg) scale(0.8); opacity:0; } }
@keyframes ift-splash { 0% { transform: scale(1); opacity:1; } 50% { transform: scale(2); opacity:0.4; } 100% { transform: scale(3); opacity:0; } }

/* item-folded-schedules-rings – close-up of hands tearing papers, rings falling, table surface */
.scn-item-folded-schedules-rings {
  background: 
    linear-gradient(180deg, #4a3e2e 0%, #2d2418 50%, #1a1410 100%),
    radial-gradient(ellipse at 50% 70%, #5a4e3a 0%, transparent 70%);
}
.scn-item-folded-schedules-rings .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #5a4e3a 0%, #1a1410 100%); }
.scn-item-folded-schedules-rings .table {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #3a2e1e 0%, #1a1410 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-item-folded-schedules-rings .hand {
  position:absolute; bottom:30%; left:50%; width:50px; height:70px;
  background: linear-gradient(180deg, #5a3e2e 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(15deg);
  transform-origin: 50% 80%;
  animation: ifs-hand 5s ease-in-out infinite;
}
.scn-item-folded-schedules-rings .letter {
  position:absolute; bottom:25%; left:30%; width:80px; height:60px;
  background: linear-gradient(135deg, #e0d0b0 0%, #c0a880 100%);
  border-radius: 4px;
  transform: rotate(-10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ifs-letter 4s ease-in-out infinite alternate;
}
.scn-item-folded-schedules-rings .ring1 {
  position:absolute; bottom:15%; left:45%; width:12px; height:12px;
  background: radial-gradient(circle, #c8a040 0%, #806020 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,160,64,0.5);
  animation: ifs-ring1 3s ease-in-out infinite;
}
.scn-item-folded-schedules-rings .ring2 {
  position:absolute; bottom:12%; left:55%; width:10px; height:10px;
  background: radial-gradient(circle, #a0a0a0 0%, #606060 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(160,160,160,0.5);
  animation: ifs-ring2 4s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-item-folded-schedules-rings .scroll {
  position:absolute; bottom:35%; left:60%; width:30px; height:40px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(20deg);
  animation: ifs-scroll 6s ease-in-out infinite;
}
@keyframes ifs-hand { 0% { transform: translateX(-50%) rotate(15deg) scaleX(1); } 50% { transform: translateX(-50%) rotate(40deg) scaleX(0.9); } 100% { transform: translateX(-50%) rotate(15deg) scaleX(1); } }
@keyframes ifs-letter { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ifs-ring1 { 0% { transform: translateY(0) rotate(0deg); opacity:0.9; } 50% { transform: translateY(5px) rotate(180deg); opacity:1; } 100% { transform: translateY(10px) rotate(360deg); opacity:0.6; } }
@keyframes ifs-ring2 { 0% { transform: translateY(0) rotate(0deg); opacity:0.7; } 50% { transform: translateY(8px) rotate(-180deg); opacity:1; } 100% { transform: translateY(15px) rotate(-360deg); opacity:0.5; } }
@keyframes ifs-scroll { 0% { transform: rotate(20deg) scaleY(1); } 50% { transform: rotate(25deg) scaleY(0.95); } 100% { transform: rotate(20deg) scaleY(1); } }

/* item-letters-fluxive-tears – partial face/tears, hands clutching letter, ink droplets */
.scn-item-letters-fluxive-tears {
  background: 
    linear-gradient(180deg, #6a5a4a 0%, #4a3a2e 40%, #2a1e1a 100%),
    radial-gradient(ellipse at 50% 40%, #7a6a5a 0%, transparent 70%);
}
.scn-item-letters-fluxive-tears .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #7a6a5a 0%, #2a1e1a 100%); }
.scn-item-letters-fluxive-tears .hand-left {
  position:absolute; bottom:20%; left:25%; width:40px; height:60px;
  background: linear-gradient(180deg, #5a3e2e 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: ilf-handl 4s ease-in-out infinite alternate;
}
.scn-item-letters-fluxive-tears .hand-right {
  position:absolute; bottom:20%; right:25%; width:40px; height:60px;
  background: linear-gradient(180deg, #5a3e2e 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: ilf-handr 4s ease-in-out infinite alternate;
}
.scn-item-letters-fluxive-tears .letter {
  position:absolute; bottom:30%; left:50%; width:100px; height:70px;
  background: linear-gradient(135deg, #e0d0b0 0%, #c0a880 100%);
  transform: translateX(-50%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: ilf-letter 3s ease-in-out infinite;
}
.scn-item-letters-fluxive-tears .tear1 {
  position:absolute; bottom:45%; left:48%; width:6px; height:10px;
  background: radial-gradient(circle, rgba(220,210,200,0.8) 0%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: ilf-tear1 2s ease-in infinite;
  animation-delay: 0.5s;
}
.scn-item-letters-fluxive-tears .tear2 {
  position:absolute; bottom:42%; left:52%; width:5px; height:8px;
  background: radial-gradient(circle, rgba(220,210,200,0.7) 0%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: ilf-tear2 2.5s ease-in infinite;
  animation-delay: 1.2s;
}
.scn-item-letters-fluxive-tears .ink {
  position:absolute; bottom:18%; left:50%; width:20px; height:20px;
  background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 70%);
  border-radius: 50%;
  transform: translateX(-50%) scale(0.8);
  animation: ilf-ink 6s ease-in-out infinite;
  box-shadow: 0 0 8px 2px rgba(0,0,0,0.5);
}
@keyframes ilf-handl { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(10deg) translateX(-5px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes ilf-handr { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(5px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes ilf-letter { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ilf-tear1 { 0% { transform: translateY(0); opacity:0.9; } 50% { transform: translateY(10px); opacity:0.5; } 100% { transform: translateY(20px); opacity:0; } }
@keyframes ilf-tear2 { 0% { transform: translateY(0); opacity:0.8; } 50% { transform: translateY(8px); opacity:0.4; } 100% { transform: translateY(16px); opacity:0; } }
@keyframes ilf-ink { 0% { transform: translateX(-50%) scale(0.8); opacity:0.5; } 50% { transform: translateX(-50%) scale(1.2); opacity:1; } 100% { transform: translateX(-50%) scale(0.8); opacity:0.5; } }

.scn-hill-rewording-plaint { background: linear-gradient(180deg, #4a5a6a 0%, #b8a898 70%), radial-gradient(ellipse at 50% 100%, #7a6a5a 0%, transparent 80%); }
.scn-hill-rewording-plaint .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c8d8e8 0%, #a8b8c8 100%); animation: hrp-sky 20s ease-in-out infinite alternate; }
.scn-hill-rewording-plaint .hill { position:absolute; bottom:25%; left:-10%; right:-10%; height:40%; background: radial-gradient(ellipse at 50% 100%, #6a7a5a 0%, #3a4a2a 80%); border-radius: 50% 50% 0 0 / 120% 120% 0 0; box-shadow: inset 0 -30px 40px rgba(0,0,0,.4); animation: hrp-hill 16s ease-in-out infinite alternate; }
.scn-hill-rewording-plaint .figure-shadow { position:absolute; bottom:28%; left:35%; width:40px; height:20px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(8px); animation: hrp-shdw 6s ease-in-out infinite; }
.scn-hill-rewording-plaint .maid-silhouette { position:absolute; bottom:30%; left:40%; width:20px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 50%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: hrp-maid 8s ease-in-out infinite alternate; }
.scn-hill-rewording-plaint .paper { position:absolute; bottom:42%; width:18px; height:24px; background: #f0e8d0; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
.scn-hill-rewording-plaint .paper-a { left:48%; animation: hrp-paper-a 4s ease-in-out infinite; animation-delay: 0.3s; }
.scn-hill-rewording-plaint .paper-b { left:52%; animation: hrp-paper-b 4.5s ease-in-out infinite; animation-delay: 1.2s; }
.scn-hill-rewording-plaint .ring { position:absolute; bottom:48%; left:50%; width:10px; height:10px; border: 2px solid #d0b080; border-radius: 50%; background: transparent; transform: translateX(-50%); animation: hrp-ring 6s ease-in-out infinite alternate; }
.scn-hill-rewording-plaint .tear { position:absolute; bottom:36%; left:38%; width:4px; height:6px; background: radial-gradient(circle, #c0d0e8 0%, transparent 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; filter: blur(1px); animation: hrp-tear 3s ease-in-out infinite; }
@keyframes hrp-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hrp-hill { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes hrp-shdw { 0%,100% { transform: scale(1) translateX(0) } 50% { transform: scale(1.2) translateX(5px) } }
@keyframes hrp-maid { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes hrp-paper-a { 0% { transform: translate(0,0) rotate(0) } 25% { transform: translate(8px,-15px) rotate(15deg) } 50% { transform: translate(16px,-5px) rotate(-5deg) } 75% { transform: translate(24px,-20px) rotate(10deg) } 100% { transform: translate(30px,0) rotate(20deg) opacity:0 } }
@keyframes hrp-paper-b { 0% { transform: translate(0,0) rotate(0) } 30% { transform: translate(-6px,-12px) rotate(-10deg) } 60% { transform: translate(-12px,-4px) rotate(5deg) } 100% { transform: translate(-20px,0) rotate(15deg) opacity:0 } }
@keyframes hrp-ring { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.3) rotate(30deg) } 100% { transform: translateX(-50%) scale(0.9) rotate(-10deg) } }
@keyframes hrp-tear { 0%,100% { transform: translateY(0) scale(1) opacity:0.7 } 50% { transform: translateY(-8px) scale(1.5) opacity:1 } }

.scn-maiden-hive-of-straw { background: linear-gradient(180deg, #c8b898 0%, #e8d8c8 60%), radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 70%); }
.scn-maiden-hive-of-straw .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f0e8d0 0%, #d8d0b8 100%); animation: mhs-sky 12s ease-in-out infinite alternate; }
.scn-maiden-hive-of-straw .sun { position:absolute; top:8%; left:75%; width:50px; height:50px; background: radial-gradient(circle, #ffe888 0%, #f0c060 40%, transparent 70%); border-radius: 50%; filter: blur(4px); box-shadow: 0 0 60px 20px rgba(240,192,96,.5); animation: mhs-sun 8s ease-in-out infinite alternate; }
.scn-maiden-hive-of-straw .straw-hat { position:absolute; top:15%; left:38%; width:80px; height:35px; background: linear-gradient(180deg, #d0b888 0%, #b09868 100%); border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; box-shadow: 0 8px 12px rgba(0,0,0,.3); transform: rotate(-5deg); animation: mhs-hat 10s ease-in-out infinite; }
.scn-maiden-hive-of-straw .face-profile { position:absolute; top:25%; left:40%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 40% 40% 50% / 60% 40% 40% 60%; transform: rotate(-10deg); animation: mhs-face 6s ease-in-out infinite alternate; }
.scn-maiden-hive-of-straw .collar { position:absolute; top:48%; left:44%; width:40px; height:20px; background: #5a4a3a; border-radius: 0 0 20px 20px; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-maiden-hive-of-straw .fallen-petal { position:absolute; top:60%; left:55%; width:8px; height:6px; background: #d8a088; border-radius: 50% 50% 0 0; transform: rotate(30deg); animation: mhs-petal 7s ease-in-out infinite alternate; animation-delay: 2s; }
.scn-maiden-hive-of-straw .shadow-stripe { position:absolute; top:0; left:45%; width:2px; height:100%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.1) 30%, rgba(0,0,0,.3) 50%, transparent 100%); animation: mhs-stripe 4s ease-in-out infinite alternate; }
@keyframes mhs-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mhs-sun { 0% { opacity:0.7; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(0.98) } }
@keyframes mhs-hat { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } }
@keyframes mhs-face { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(1px) } 100% { transform: rotate(-12deg) translateX(-1px) } }
@keyframes mhs-petal { 0% { transform: rotate(30deg) translate(0,0) opacity:0.7 } 50% { transform: rotate(20deg) translate(5px,-10px) opacity:1 } 100% { transform: rotate(40deg) translate(-2px,2px) opacity:0.6 } }
@keyframes mhs-stripe { 0% { transform: scaleY(0.8) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(0.9) } }

.scn-napkin-tears-conceited { background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%), radial-gradient(ellipse at 50% 30%, #8a7a6a 0%, transparent 80%); }
.scn-napkin-tears-conceited .bg-skin { position:absolute; inset:0; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); }
.scn-napkin-tears-conceited .napkin { position:absolute; top:30%; left:30%; width:120px; height:100px; background: linear-gradient(135deg, #d8c8b0 0%, #c0b098 100%); border-radius: 10% 20% 30% 5%; box-shadow: 0 8px 20px rgba(0,0,0,.4); transform: rotate(5deg); animation: ntc-napkin 12s ease-in-out infinite; }
.scn-napkin-tears-conceited .characters { position:absolute; top:35%; left:35%; width:90px; height:70px; background: repeating-linear-gradient(45deg, #8a7a5a 0px, #8a7a5a 2px, transparent 2px, transparent 6px), repeating-linear-gradient(-45deg, #8a7a5a 0px, #8a7a5a 2px, transparent 2px, transparent 6px); opacity:0.5; animation: ntc-char 20s linear infinite; }
.scn-napkin-tears-conceited .tear-drop { position:absolute; width:8px; height:12px; background: radial-gradient(circle at 50% 30%, #c0d8e0 0%, #8098a8 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; filter: blur(1px); }
.scn-napkin-tears-conceited .tear-1 { top:45%; left:35%; animation: ntc-tear1 3s ease-in-out infinite alternate; }
.scn-napkin-tears-conceited .tear-2 { top:50%; left:38%; animation: ntc-tear2 3.5s ease-in-out infinite alternate; animation-delay: 0.8s; }
.scn-napkin-tears-conceited .hand { position:absolute; top:22%; left:28%; width:30px; height:45px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 40% 50% 30% 50% / 60% 50% 40% 50%; transform: rotate(-20deg); animation: ntc-hand 8s ease-in-out infinite alternate; }
.scn-napkin-tears-conceited .eye { position:absolute; top:15%; left:40%; width:20px; height:14px; background: radial-gradient(circle, #1a1a2a 40%, #6a5a4a 60%, transparent 80%); border-radius: 50% 50% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ntc-eye 5s ease-in-out infinite; }
.scn-napkin-tears-conceited .lip { position:absolute; top:20%; left:26%; width:24px; height:8px; background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%); border-radius: 0 0 50% 50%; transform: rotate(-5deg); animation: ntc-lip 6s ease-in-out infinite alternate; }
@keyframes ntc-napkin { 0%,100% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(3deg) translateX(2px) } }
@keyframes ntc-char { 0% { background-position: 0 0 } 100% { background-position: 50px 50px } }
@keyframes ntc-tear1 { 0% { transform: translateY(0) scale(1) opacity:0.8 } 50% { transform: translateY(-10px) scale(1.2) opacity:1 } 100% { transform: translateY(0) scale(0.9) opacity:0.6 } }
@keyframes ntc-tear2 { 0% { transform: translateY(0) scale(1) opacity:0.6 } 50% { transform: translateY(-8px) scale(1.1) opacity:1 } 100% { transform: translateY(0) scale(0.8) opacity:0.5 } }
@keyframes ntc-hand { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(3px) } 100% { transform: rotate(-22deg) translateX(-1px) } }
@keyframes ntc-eye { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.85) } 100% { transform: scaleX(1) } }
@keyframes ntc-lip { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(-3deg) scaleY(0.8) } 100% { transform: rotate(-7deg) scaleY(1) } }

.scn-item-maidens-distracted-gaze { background: linear-gradient(180deg, #2a3a4a 0%, #5a6a7a 50%, #8a9aaa 100%), radial-gradient(ellipse at 50% 30%, #4a5a6a 0%, transparent 80%); }
.scn-item-maidens-distracted-gaze .sky-deep { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a4a5a 0%, #6a7a8a 100%); animation: imgd-sky 15s ease-in-out infinite alternate; }
.scn-item-maidens-distracted-gaze .sphere { position:absolute; width:30px; height:30px; background: radial-gradient(circle at 40% 35%, #a0b8c8 0%, #506070 80%); border-radius: 50%; box-shadow: 0 0 20px 5px rgba(80,96,112,.4); }
.scn-item-maidens-distracted-gaze .sphere-1 { top:12%; left:20%; animation: imgd-sph1 10s ease-in-out infinite alternate; }
.scn-item-maidens-distracted-gaze .sphere-2 { top:18%; left:70%; animation: imgd-sph2 12s ease-in-out infinite alternate-reverse; }
.scn-item-maidens-distracted-gaze .gaze-line { position:absolute; height:2px; background: linear-gradient(90deg, transparent 0%, #8a9aaa 30%, #aabac8 60%, transparent 100%); }
.scn-item-maidens-distracted-gaze .gaze-a { top:30%; left:15%; width:120px; transform: rotate(35deg); animation: imgd-gaze-a 6s ease-in-out infinite alternate; }
.scn-item-maidens-distracted-gaze .gaze-b { top:32%; left:45%; width:80px; transform: rotate(-25deg); animation: imgd-gaze-b 5s ease-in-out infinite alternate; animation-delay: 1s; }
.scn-item-maidens-distracted-gaze .figure-body { position:absolute; bottom:20%; left:40%; width:50px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: imgd-body 10s ease-in-out infinite alternate; }
.scn-item-maidens-distracted-gaze .eye-ball { position:absolute; top:22%; left:42%; width:18px; height:18px; background: radial-gradient(circle, #1a1a2a 35%, #c0d0e0 55%, transparent 80%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(192,208,224,.3); animation: imgd-eye 7s ease-in-out infinite alternate; }
.scn-item-maidens-distracted-gaze .earth-arc { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.3); animation: imgd-earth 20s ease-in-out infinite alternate; }
@keyframes imgd-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes imgd-sph1 { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(10px,-5px) scale(1.1) } 100% { transform: translate(-5px,3px) scale(0.95) } }
@keyframes imgd-sph2 { 0% { transform: translate(0,0) scale(0.9) } 50% { transform: translate(-8px,4px) scale(1.05) } 100% { transform: translate(5px,-2px) scale(0.85) } }
@keyframes imgd-gaze-a { 0% { width:120px; opacity:0.3 } 50% { width:160px; opacity:0.7 } 100% { width:100px; opacity:0.4 } }
@keyframes imgd-gaze-b { 0% { width:80px; opacity:0.2 } 50% { width:110px; opacity:0.6 } 100% { width:70px; opacity:0.3 } }
@keyframes imgd-body { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes imgd-eye { 0% { transform: translate(0,0) scale(1) } 30% { transform: translate(4px,-2px) scale(1.1) } 70% { transform: translate(-3px,1px) scale(1) } 100% { transform: translate(2px,3px) scale(0.95) } }
@keyframes imgd-earth { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }

.scn-maid-seduction {
  background: linear-gradient(180deg, #1a0f0a 0%, #2a1a12 40%, #3a2218 70%, #1a0f0a 100%),
              radial-gradient(ellipse at 50% 60%, #3a2218 0%, transparent 70%);
}
.scn-maid-seduction .curtain-left {
  position: absolute; top: 0; left: 0; width: 40%; height: 100%;
  background: linear-gradient(135deg, #5e1a1d 0%, #3a0f0a 60%, #1a0505 100%);
  border-radius: 0 40% 0 0; filter: drop-shadow(6px 0 12px rgba(0,0,0,0.6));
  animation: ms-curtain 8s ease-in-out infinite alternate;
}
.scn-maid-seduction .curtain-right {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(225deg, #5e1a1d 0%, #3a0f0a 60%, #1a0505 100%);
  border-radius: 40% 0 0 0; filter: drop-shadow(-6px 0 12px rgba(0,0,0,0.6));
  animation: ms-curtain 8s ease-in-out infinite alternate-reverse;
}
.scn-maid-seduction .figure-silhouette {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1210 0%, #1a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 45% 45%;
  animation: ms-figure 5s ease-in-out infinite alternate;
}
.scn-maid-seduction .hand-reaching {
  position: absolute; bottom: 25%; left: 48%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #3a1a10 0%, #1a0808 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom left;
  animation: ms-hand 4s ease-in-out infinite;
}
.scn-maid-seduction .poison-drop {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 10px;
  background: radial-gradient(circle, #5e1a1d 0%, #3a0f0a 100%);
  border-radius: 50%; box-shadow: 0 0 8px 2px rgba(94,26,29,0.6);
  animation: ms-drop 3s ease-in-out infinite;
}
.scn-maid-seduction .bed-shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #1a0808 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 20px #0a0404;
  animation: ms-bed 6s ease-in-out infinite alternate;
}
.scn-maid-seduction .candle-glow {
  position: absolute; top: 30%; left: 30%; width: 14px; height: 24px;
  background: radial-gradient(circle at 50% 100%, #ffd080 0%, #b06020 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,208,128,0.4), 0 0 60px 20px rgba(176,96,32,0.2);
  animation: ms-candle 2s ease-in-out infinite alternate;
}

@keyframes ms-curtain {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(2deg); }
  100% { transform: translateX(-4px) rotate(-1deg); }
}
@keyframes ms-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-6px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(2px) rotate(-1deg); }
}
@keyframes ms-hand {
  0% { transform: translate(0,0) scaleY(1) rotate(0deg); }
  25% { transform: translate(8px,-4px) scaleY(0.95) rotate(15deg); }
  50% { transform: translate(14px,-2px) scaleY(1) rotate(10deg); }
  75% { transform: translate(6px,-6px) scaleY(0.98) rotate(5deg); }
  100% { transform: translate(0,0) scaleY(1) rotate(0deg); }
}
@keyframes ms-drop {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  50% { transform: translateY(12px) scale(0.9); opacity: 0.8; }
  100% { transform: translateY(0) scale(1); opacity: 1; }
}
@keyframes ms-bed {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.97); }
  100% { transform: scaleY(1); }
}
@keyframes ms-candle {
  0% { transform: scaleY(1) rotate(-2deg); opacity: 0.9; }
  50% { transform: scaleY(1.1) rotate(0deg); opacity: 1; }
  100% { transform: scaleY(0.95) rotate(2deg); opacity: 0.85; }
}

.scn-maid-veiled-fiend {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a233a 40%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 30%, #2a233a 0%, transparent 60%);
}
.scn-maid-veiled-fiend .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0a0a15 0%, transparent 70%);
  animation: mv-bg 10s ease-in-out infinite alternate;
}
.scn-maid-veiled-fiend .veil {
  position: absolute; top: 0; left: 30%; width: 40%; height: 120%;
  background: linear-gradient(180deg, rgba(200,180,200,0.15) 0%, rgba(150,130,160,0.08) 100%);
  border-radius: 50% 50% 0 0; filter: blur(4px);
  animation: mv-veil 6s ease-in-out infinite alternate;
}
.scn-maid-veiled-fiend .face-profile {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%);
  border-radius: 40% 60% 50% 50% / 50% 40% 50% 50%;
  transform: translateX(-50%); box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: mv-face 4s ease-in-out infinite alternate;
}
.scn-maid-veiled-fiend .mask {
  position: absolute; bottom: 28%; left: 42%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #5e2e3e 0%, #3a1a2a 100%);
  border-radius: 30% 30% 40% 40% / 20% 20% 50% 50%;
  transform: rotate(-10deg); animation: mv-mask 3s ease-in-out infinite;
}
.scn-maid-veiled-fiend .eyeball {
  position: absolute; bottom: 32%; left: 42%; width: 6px; height: 8px;
  background: radial-gradient(circle, #e0d0e0 0%, #a080a0 70%);
  border-radius: 50%; box-shadow: 0 0 6px 2px rgba(200,180,200,0.4);
  animation: mv-eye 2s ease-in-out infinite alternate;
}
.scn-maid-veiled-fiend .mirror {
  position: absolute; top: 20%; right: 15%; width: 50px; height: 70px;
  background: linear-gradient(135deg, rgba(200,200,220,0.2) 0%, rgba(100,100,140,0.1) 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 0 20px 4px rgba(200,200,220,0.1);
  animation: mv-mirror 8s ease-in-out infinite alternate;
}
.scn-maid-veiled-fiend .shadow-hand {
  position: absolute; bottom: 20%; right: 30%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #1a1020 0%, #0a0810 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom right; animation: mv-hand 5s ease-in-out infinite;
}

@keyframes mv-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes mv-veil {
  0% { transform: translateY(-10px) rotate(-3deg); opacity: 0.5; }
  50% { transform: translateY(0) rotate(0deg); opacity: 0.8; }
  100% { transform: translateY(5px) rotate(2deg); opacity: 0.6; }
}
@keyframes mv-face {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-4px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(2px) rotate(-1deg); }
}
@keyframes mv-mask {
  0% { transform: rotate(-10deg) translateX(0); }
  30% { transform: rotate(5deg) translateX(4px); }
  60% { transform: rotate(-5deg) translateX(-3px); }
  100% { transform: rotate(-10deg) translateX(0); }
}
@keyframes mv-eye {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.5); }
  100% { transform: scaleY(1); }
}
@keyframes mv-mirror {
  0% { transform: scaleX(1) rotate(0deg); opacity: 0.3; }
  50% { transform: scaleX(0.9) rotate(2deg); opacity: 0.6; }
  100% { transform: scaleX(1) rotate(-1deg); opacity: 0.4; }
}
@keyframes mv-hand {
  0% { transform: translate(0,0) rotate(0deg) scale(1); }
  25% { transform: translate(-10px,-6px) rotate(20deg) scale(0.95); }
  50% { transform: translate(-18px,-2px) rotate(10deg) scale(1); }
  75% { transform: translate(-6px,-10px) rotate(5deg) scale(0.98); }
  100% { transform: translate(0,0) rotate(0deg) scale(1); }
}

.scn-maid-fall {
  background: linear-gradient(180deg, #1a0f12 0%, #2a1a20 30%, #1a0f12 70%, #0a0508 100%),
              radial-gradient(ellipse at 50% 80%, #2a1a20 0%, transparent 80%);
}
.scn-maid-fall .bg-shadows {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, #0a0508 100%);
  animation: mf-bg 12s ease-in-out infinite alternate;
}
.scn-maid-fall .descent-figure {
  position: absolute; top: 10%; left: 50%; width: 50px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2028 0%, #1a0a10 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 45% 45%;
  animation: mf-fall 6s ease-in-out infinite;
}
.scn-maid-fall .falling-mask {
  position: absolute; top: 25%; left: 45%; width: 28px; height: 24px;
  background: linear-gradient(135deg, #5e2a3a 0%, #3a1a22 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  transform: rotate(15deg); animation: mf-mask 4s ease-in-out infinite alternate;
}
.scn-maid-fall .halo-dimming {
  position: absolute; top: 5%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 70%);
  border-radius: 50%; animation: mf-halo 5s ease-in-out infinite alternate;
}
.scn-maid-fall .fabric-ribbon {
  position: absolute; top: 15%; left: 30%; width: 60px; height: 6px;
  background: linear-gradient(90deg, #5e2a3a 0%, #3a1a22 50%, #5e2a3a 100%);
  border-radius: 50%; filter: blur(2px);
  animation: mf-ribbon 8s ease-in-out infinite alternate;
}
.scn-maid-fall .ground-rush {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #1a0a10 60%, #0a0508 100%);
  border-radius: 60% 60% 0 0; animation: mf-ground 10s ease-in-out infinite alternate;
}

@keyframes mf-bg {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}
@keyframes mf-fall {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-50%) translateY(80px) rotate(5deg); }
  60% { transform: translateX(-50%) translateY(160px) rotate(-3deg); }
  100% { transform: translateX(-50%) translateY(250px) rotate(1deg); }
}
@keyframes mf-mask {
  0% { transform: translateY(0) rotate(15deg) scale(1); }
  50% { transform: translateY(40px) rotate(-5deg) scale(0.9); }
  100% { transform: translateY(80px) rotate(20deg) scale(0.8); }
}
@keyframes mf-halo {
  0% { transform: translateX(-50%) scale(1); opacity: 0.6; }
  50% { transform: translateX(-50%) scale(0.7); opacity: 0.3; }
  100% { transform: translateX(-50%) scale(1.1); opacity: 0.5; }
}
@keyframes mf-ribbon {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(20px) translateY(30px) rotate(10deg); }
  100% { transform: translateX(-150px) translateY(60px) rotate(-5deg); }
}
@keyframes mf-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(0.98); }
}

.scn-maid-reconciliation {
  background: linear-gradient(135deg, #1a121a 0%, #2a1f2a 50%, #1a121a 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a3a 0%, transparent 70%);
}
.scn-maid-reconciliation .fireplace-glow {
  position: absolute; bottom: 10%; left: 20%; width: 120px; height: 90px;
  background: radial-gradient(ellipse at 50% 100%, #fcb060 0%, #c08040 40%, transparent 70%);
  border-radius: 50%; filter: blur(8px); animation: mr-fireplace 4s ease-in-out infinite alternate;
}
.scn-maid-reconciliation .flame {
  position: absolute; bottom: 18%; left: 30%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #ffd080 0%, #c06020 60%, #802010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: mr-flame 1s ease-in-out infinite alternate;
}
.scn-maid-reconciliation .figure-left {
  position: absolute; bottom: 12%; left: 20%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #2a1820 0%, #1a0a12 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 45% 45%;
  transform: translateX(-50%); animation: mr-figure-l 5s ease-in-out infinite alternate;
}
.scn-maid-reconciliation .figure-right {
  position: absolute; bottom: 12%; right: 10%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #2a2028 0%, #1a1018 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 45% 45%;
  transform: translateX(50%); animation: mr-figure-r 5s ease-in-out infinite alternate;
}
.scn-maid-reconciliation .hand-clasp {
  position: absolute; bottom: 18%; left: 50%; width: 20px; height: 18px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #3a2028 0%, #1a0a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: mr-clasp 3s ease-in-out infinite;
}
.scn-maid-reconciliation .tear-drop {
  position: absolute; top: 30%; left: 45%; width: 6px; height: 8px;
  background: radial-gradient(circle, #a0a0c0 0%, #606080 100%);
  border-radius: 50%; box-shadow: 0 0 4px 1px rgba(160,160,200,0.3);
  animation: mr-tear 4s ease-in-out infinite alternate;
}
.scn-maid-reconciliation .shadow-embrace {
  position: absolute; bottom: 5%; left: 15%; width: 70%; height: 15%;
  background: linear-gradient(180deg, transparent 0%, #0a0408 100%);
  border-radius: 40% 40% 0 0; animation: mr-embrace 6s ease-in-out infinite alternate;
}

@keyframes mr-fireplace {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.05) translateY(-3px); opacity: 1; }
  100% { transform: scaleY(0.98) translateY(2px); opacity: 0.7; }
}
@keyframes mr-flame {
  0% { transform: scaleY(1) rotate(-3deg); opacity: 0.9; }
  50% { transform: scaleY(1.15) rotate(0deg); opacity: 1; }
  100% { transform: scaleY(0.95) rotate(2deg); opacity: 0.85; }
}
@keyframes mr-figure-l {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-4px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(2px) rotate(-1deg); }
}
@keyframes mr-figure-r {
  0% { transform: translateX(50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(50%) translateY(-3px) rotate(-2deg); }
  100% { transform: translateX(50%) translateY(1px) rotate(1deg); }
}
@keyframes mr-clasp {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); }
  30% { transform: translateX(-50%) scale(1.05) rotate(5deg); }
  60% { transform: translateX(-50%) scale(0.95) rotate(-3deg); }
  100% { transform: translateX(-50%) scale(1) rotate(0deg); }
}
@keyframes mr-tear {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(15px) scale(0.9); opacity: 0.8; }
  100% { transform: translateY(30px) scale(0.8); opacity: 0.3; }
}
@keyframes mr-embrace {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1.02); }
}

/* lover-tributes */
.scn-lover-tributes {
  background: linear-gradient(180deg, #2a1a0e 0%, #4a2a1a 40%, #1a0e08 100%), radial-gradient(ellipse at 50% 70%, #5a3a2a 0%, transparent 60%);
}
.scn-lover-tributes .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, #0d0504 100%); }
.scn-lover-tributes .arch { position:absolute; top:5%; left:20%; right:20%; height:55%; border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 40px rgba(255,180,80,0.15); background: linear-gradient(135deg, #3a2010 0%, transparent 50%, #2a1a0e 100%); animation: lt-arch-pulse 8s ease-in-out infinite alternate; }
.scn-lover-tributes .table-top { position:absolute; bottom:5%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-lover-tributes .vase { position:absolute; bottom:28%; left:50%; width:40px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0e 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,0.5); animation: lt-vase-sway 6s ease-in-out infinite; }
.scn-lover-tributes .pearls { position:absolute; bottom:26%; left:44%; width:12px; height:12px; background: radial-gradient(circle at 30% 30%, #f0e8d0, #b09878); border-radius:50%; box-shadow: 0 0 8px 2px rgba(240,232,208,0.3); animation: lt-pearls 5s ease-in-out infinite alternate; }
.scn-lover-tributes .rubies { position:absolute; bottom:24%; left:52%; width:10px; height:10px; background: radial-gradient(circle at 30% 30%, #c8553d, #8a3020); border-radius:50%; box-shadow: 0 0 10px 3px rgba(200,85,61,0.4); animation: lt-rubies 4s ease-in-out infinite alternate-reverse; }
.scn-lover-tributes .candle { position:absolute; bottom:30%; left:35%; width:8px; height:30px; background: linear-gradient(180deg, #d8a060 0%, #8a6030 100%); border-radius: 4px; animation: lt-candle-flicker 0.3s steps(2) infinite; }
.scn-lover-tributes .candle-glow { position:absolute; bottom:36%; left:35%; width:20px; height:20px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius:50%; animation: lt-glow-pulse 3s ease-in-out infinite alternate; }
@keyframes lt-arch-pulse { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes lt-vase-sway { 0%,100% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(-1deg); } }
@keyframes lt-pearls { 0% { transform:translate(0,0) scale(1); opacity:0.8; } 50% { transform:translate(2px,-1px) scale(1.1); opacity:1; } 100% { transform:translate(-1px,1px) scale(0.95); opacity:0.7; } }
@keyframes lt-rubies { 0% { transform:translate(0,0) scale(1); box-shadow:0 0 6px 2px rgba(200,85,61,0.3); } 50% { transform:translate(-2px,0) scale(1.2); box-shadow:0 0 18px 6px rgba(200,85,61,0.6); } 100% { transform:translate(1px,-1px) scale(0.9); box-shadow:0 0 4px 1px rgba(200,85,61,0.2); } }
@keyframes lt-candle-flicker { 0% { height:30px; opacity:0.9; } 100% { height:26px; opacity:1; } }
@keyframes lt-glow-pulse { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.5; transform:scale(0.9); } }

/* lover-gifts */
.scn-lover-gifts {
  background: linear-gradient(180deg, #1e1410 0%, #3a2a1a 50%, #120a06 100%), radial-gradient(ellipse at 50% 80%, #4a3020 0%, transparent 60%);
}
.scn-lover-gifts .bg-shadow { position:absolute; inset:0; background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.6) 100%); }
.scn-lover-gifts .box-base { position:absolute; bottom:10%; left:30%; right:30%; height:40%; background: linear-gradient(135deg, #5a3a2a 0%, #2a1a0e 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,0.7); animation: lg-box-sway 12s ease-in-out infinite; }
.scn-lover-gifts .box-lid { position:absolute; bottom:48%; left:30%; right:30%; height:18%; background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 2% 2%; transform-origin: bottom left; animation: lg-lid-open 6s ease-in-out infinite; }
.scn-lover-gifts .lock-hair { position:absolute; bottom:38%; left:48%; width:2px; height:40px; background: linear-gradient(180deg, #a08060 0%, #6a5040 100%); border-radius: 50%; box-shadow: 0 0 4px 1px rgba(160,128,96,0.3); animation: lg-hair-wave 8s ease-in-out infinite alternate; }
.scn-lover-gifts .metal-ring { position:absolute; bottom:35%; left:44%; width:24px; height:24px; border: 2px solid #b09878; border-radius:50%; background: transparent; box-shadow: 0 0 8px 2px rgba(176,152,120,0.3); animation: lg-metal-spin 15s linear infinite; }
.scn-lover-gifts .gem-group { position:absolute; bottom:30%; left:40%; width:16px; height:16px; background: radial-gradient(circle at 30% 30%, #d08060, #8a5030); border-radius:50%; box-shadow: 0 0 12px 3px rgba(208,128,96,0.4); animation: lg-gems-twinkle 4s ease-in-out infinite alternate; }
.scn-lover-gifts .scrolled-paper { position:absolute; bottom:20%; left:34%; width:30px; height:8px; background: linear-gradient(180deg, #c8ad8a 0%, #a08060 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: lg-scroll-curl 10s ease-in-out infinite alternate; }
@keyframes lg-box-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } }
@keyframes lg-lid-open { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(-1deg); } 75% { transform: rotate(2deg); } }
@keyframes lg-hair-wave { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-3deg); } }
@keyframes lg-metal-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes lg-gems-twinkle { 0% { opacity:0.6; transform:scale(0.8); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.5; transform:scale(0.9); } }
@keyframes lg-scroll-curl { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(0.95); } 100% { transform: rotate(-7deg) scaleX(1.05); } }

/* item-diamond */
.scn-item-diamond {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #0a0a14 100%), radial-gradient(ellipse at 50% 20%, #2a2a3e 0%, transparent 80%);
}
.scn-item-diamond .bg-tent { position:absolute; inset:0; background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,0.8) 100%); }
.scn-item-diamond .spotlight { position:absolute; top:0; left:35%; right:35%; height:60%; background: linear-gradient(180deg, rgba(200,200,240,0.15) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: it-spotlight-fall 5s ease-in-out infinite alternate; }
.scn-item-diamond .diamond-stone { position:absolute; top:40%; left:50%; width:60px; height:50px; transform:translate(-50%, -50%) rotate(20deg); clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); background: linear-gradient(135deg, #c0d0e0 0%, #8090a0 40%, #e0e8f0 70%, #708090 100%); box-shadow: 0 0 30px 10px rgba(192,208,224,0.3); animation: it-diamond-spin 20s linear infinite; }
.scn-item-diamond .emerald-gem { position:absolute; top:28%; left:38%; width:14px; height:14px; clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); background: linear-gradient(135deg, #3a7a4a 0%, #1a4a2a 100%); box-shadow: 0 0 10px 3px rgba(58,122,74,0.4); animation: it-gem-flicker 2s ease-in-out infinite alternate; }
.scn-item-diamond .sapphire-gem { position:absolute; top:55%; left:60%; width:12px; height:12px; clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); background: linear-gradient(135deg, #4a5a8a 0%, #202a5a 100%); box-shadow: 0 0 8px 2px rgba(74,90,138,0.4); animation: it-gem-flicker 2.5s ease-in-out infinite alternate-reverse; }
.scn-item-diamond .opal-gem { position:absolute; top:50%; left:30%; width:16px; height:16px; clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); background: linear-gradient(135deg, #a0b0c0 0%, #708090 30%, #d0d8e0 60%, #8098a8 100%); box-shadow: 0 0 14px 4px rgba(160,176,192,0.3); animation: it-gem-flicker 1.8s ease-in-out infinite alternate; }
.scn-item-diamond .shadow-hand { position:absolute; bottom:8%; left:40%; width:70px; height:80px; background: radial-gradient(ellipse at 50% 30%, #0a0a12 0%, transparent 70%); border-radius: 40% 40% 20% 20%; filter: blur(3px); animation: it-shadow-tremble 0.5s steps(2) infinite; }
@keyframes it-spotlight-fall { 0% { opacity:0.4; transform:scaleY(0.9); } 50% { opacity:0.8; transform:scaleY(1.2); } 100% { opacity:0.3; transform:scaleY(1); } }
@keyframes it-diamond-spin { 0% { transform:translate(-50%, -50%) rotate(20deg) scale(1); } 50% { transform:translate(-50%, -50%) rotate(200deg) scale(1.05); } 100% { transform:translate(-50%, -50%) rotate(380deg) scale(1); } }
@keyframes it-gem-flicker { 0% { opacity:0.5; transform:scale(0.9); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.4; transform:scale(0.8); } }
@keyframes it-shadow-tremble { 0% { opacity:0.3; transform:translateX(0); } 100% { opacity:0.6; transform:translateX(2px); } }

/* lover-oblation */
.scn-lover-oblation {
  background: linear-gradient(180deg, #120a10 0%, #2a1a22 40%, #080406 100%), radial-gradient(ellipse at 50% 50%, #2a1a22 0%, transparent 70%);
}
.scn-lover-oblation .bg-void { position:absolute; inset:0; background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,0.7) 100%); }
.scn-lover-oblation .offering-hand { position:absolute; bottom:10%; left:34%; width:70px; height:90px; background: linear-gradient(180deg, #2a1a12 0%, #0e0604 100%); border-radius: 40% 40% 20% 20%; transform: rotate(5deg); box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: ob-hand-tremor 0.8s ease-in-out infinite alternate; }
.scn-lover-oblation .balance-arm { position:absolute; bottom:38%; left:50%; width:80px; height:6px; transform:translateX(-50%); background: linear-gradient(90deg, #5a4a3a 0%, #8a7060 50%, #5a4a3a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: ob-scale-pivot 3s ease-in-out infinite; }
.scn-lover-oblation .pan-left { position:absolute; bottom:40%; left:38%; width:30px; height:16px; background: linear-gradient(135deg, #6a5a4a 0%, #3a2a20 100%); border-radius: 0 0 30% 30%; transform: rotate(2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: ob-pan-tilt 3s ease-in-out infinite alternate; }
.scn-lover-oblation .pan-right { position:absolute; bottom:40%; left:54%; width:30px; height:16px; background: linear-gradient(135deg, #6a5a4a 0%, #3a2a20 100%); border-radius: 0 0 30% 30%; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: ob-pan-tilt 3s ease-in-out infinite alternate-reverse; }
.scn-lover-oblation .smoke-wisp { position:absolute; bottom:50%; width:20px; height:40px; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,160,0.2) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); }
.scn-lover-oblation .smoke-wisp.s1 { left:46%; animation: ob-smoke-rise 8s ease-out infinite; }
.scn-lover-oblation .smoke-wisp.s2 { left:52%; animation: ob-smoke-rise 10s ease-out infinite 2s; }
@keyframes ob-hand-tremor { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(4deg) translateY(-1px); } 50% { transform: rotate(6deg) translateY(1px); } 100% { transform: rotate(4.5deg) translateY(0); } }
@keyframes ob-scale-pivot { 0% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(1deg); } 100% { transform:translateX(-50%) rotate(-0.5deg); } }
@keyframes ob-pan-tilt { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-1px); } 100% { transform: rotate(4deg) translateY(1px); } }
@keyframes ob-smoke-rise { 0% { transform: translateY(0) scale(1); opacity:0.3; } 50% { transform: translateY(-30px) scale(1.5); opacity:0.6; } 100% { transform: translateY(-80px) scale(2); opacity:0; } }

/* -- SCENE: maid-threw-affections -- */
.scn-maid-threw-affections {
  background: 
    linear-gradient(180deg, #f9d7a0 0%, #e3b470 40%, #b87a4a 70%, #5a3a2a 100%),
    radial-gradient(ellipse at 40% 30%, #ffe699 0%, transparent 60%);
}

.scn-maid-threw-affections .sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fce4b8 0%, #cba872 100%);
  animation: mta-sky 15s ease-in-out infinite alternate;
}

.scn-maid-threw-affections .sun {
  position: absolute;
  top: 15%;
  right: 25%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #fff8d0 0%, #f5c542 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(245,197,66,0.3);
  animation: mta-sun 8s ease-in-out infinite alternate;
}

.scn-maid-threw-affections .flower-stalk {
  position: absolute;
  bottom: 25%;
  left: 38%;
  width: 8px;
  height: 120px;
  background: linear-gradient(180deg, #4a7a3a 0%, #2a5a1a 100%);
  border-radius: 4px;
  transform-origin: bottom;
  animation: mta-stalk 6s ease-in-out infinite;
}

.scn-maid-threw-affections .flower {
  position: absolute;
  bottom: calc(25% + 120px - 20px);
  left: calc(38% - 20px);
  width: 48px;
  height: 48px;
  background: radial-gradient(circle at 50% 60%, #e8a058 0%, #c07030 50%, #8a4a1a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(200,112,48,0.4);
  animation: mta-flower 4s ease-in-out infinite alternate;
}

.scn-maid-threw-affections .maid-figure {
  position: absolute;
  bottom: 20%;
  right: 30%;
  width: 30px;
  height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom;
  animation: mta-maid 5s ease-in-out infinite;
}

.scn-maid-threw-affections .petal {
  position: absolute;
  bottom: 60%;
  left: 42%;
  width: 12px;
  height: 14px;
  background: radial-gradient(ellipse, #e8a058 0%, #c07030 100%);
  border-radius: 50% 50% 0 0;
  animation: mta-petal 4s linear infinite;
}

@keyframes mta-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

@keyframes mta-sun {
  0% { transform: scale(0.95) translateY(0); box-shadow: 0 0 30px 15px rgba(245,197,66,0.2); }
  50% { transform: scale(1.05) translateY(-3px); box-shadow: 0 0 50px 25px rgba(245,197,66,0.5); }
  100% { transform: scale(1) translateY(0); box-shadow: 0 0 40px 20px rgba(245,197,66,0.35); }
}

@keyframes mta-stalk {
  0% { transform: rotate(-2deg); }
  30% { transform: rotate(2deg); }
  60% { transform: rotate(-1deg); }
  100% { transform: rotate(0deg); }
}

@keyframes mta-flower {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(-3deg) scale(0.98); }
}

@keyframes mta-maid {
  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 mta-petal {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.8; }
  50% { transform: translateY(40px) rotate(60deg); opacity: 0.5; }
  100% { transform: translateY(80px) rotate(120deg); opacity: 0; }
}

/* -- SCENE: maid-honour-shielded -- */
.scn-maid-honour-shielded {
  background:
    linear-gradient(180deg, #fdf4d8 0%, #f0d8a0 35%, #c8a86a 70%, #8a6a3a 100%),
    radial-gradient(ellipse at 70% 20%, #fff0c0 0%, transparent 50%);
}

.scn-maid-honour-shielded .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fef8e0 0%, #d8c88a 100%);
  animation: mhs-sky 12s ease-in-out infinite alternate;
}

.scn-maid-honour-shielded .sun {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, #fffbe0 0%, #fceb8a 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(252,235,138,0.4);
  animation: mhs-sun 6s ease-in-out infinite alternate;
}

.scn-maid-honour-shielded .castle {
  position: absolute;
  bottom: 25%;
  left: 20%;
  width: 120px;
  height: 100px;
  background: linear-gradient(180deg, #b89a5a 0%, #8a6e3a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: -4px 4px 12px rgba(0,0,0,0.4);
  animation: mhs-castle 9s ease-in-out infinite;
}

.scn-maid-honour-shielded .bulwark {
  position: absolute;
  bottom: 25%;
  left: 10%;
  width: 40px;
  height: 80px;
  background: linear-gradient(180deg, #a08040 0%, #6a5020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset -2px 0 6px rgba(0,0,0,0.5);
  animation: mhs-bulwark 15s ease-in-out infinite alternate;
}

.scn-maid-honour-shielded .maid-figure {
  position: absolute;
  bottom: 30%;
  right: 25%;
  width: 28px;
  height: 70px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom;
  animation: mhs-maid 4s ease-in-out infinite;
}

.scn-maid-honour-shielded .shield {
  position: absolute;
  bottom: 35%;
  right: 28%;
  width: 34px;
  height: 44px;
  background: radial-gradient(ellipse at 50% 30%, #c0b060 0%, #8a7a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  animation: mhs-shield 5s ease-in-out infinite alternate;
}

.scn-maid-honour-shielded .flag {
  position: absolute;
  bottom: 35%;
  left: 20%;
  width: 24px;
  height: 32px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 4px 4px 0 0;
  clip-path: polygon(0 0, 100% 0, 100% 70%, 60% 100%, 0 70%);
  animation: mhs-flag 3s ease-in-out infinite alternate;
}

@keyframes mhs-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}

@keyframes mhs-sun {
  0% { transform: scale(0.95) translateX(0); }
  50% { transform: scale(1.1) translateX(10px); }
  100% { transform: scale(1) translateX(0); }
}

@keyframes mhs-castle {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}

@keyframes mhs-bulwark {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(1); }
}

@keyframes mhs-maid {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(-4px) rotate(-2deg); }
  66% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes mhs-shield {
  0% { transform: rotate(-3deg) scale(1); box-shadow: 2px 2px 8px rgba(0,0,0,0.3); }
  50% { transform: rotate(3deg) scale(1.03); box-shadow: 4px 4px 12px rgba(0,0,0,0.5); }
  100% { transform: rotate(-2deg) scale(0.98); box-shadow: 1px 1px 6px rgba(0,0,0,0.2); }
}

@keyframes mhs-flag {
  0% { transform: skewX(-5deg) translateY(0); }
  50% { transform: skewX(5deg) translateY(-2px); }
  100% { transform: skewX(-4deg) translateY(0); }
}

/* -- SCENE: maid-reason-rebukes -- */
.scn-maid-reason-rebukes {
  background:
    linear-gradient(180deg, #f8e4c0 0%, #d8b880 35%, #a88850 70%, #7a6838 100%),
    radial-gradient(ellipse at 50% 40%, #ffe8b0 0%, transparent 60%);
}

.scn-maid-reason-rebukes .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fcecd0 0%, #c8b080 100%);
  animation: mrr-sky 14s ease-in-out infinite alternate;
}

.scn-maid-reason-rebukes .sun {
  position: absolute;
  top: 18%;
  right: 15%;
  width: 45px;
  height: 45px;
  background: radial-gradient(circle, #fff5d0 0%, #f0c860 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(240,200,96,0.3);
  animation: mrr-sun 7s ease-in-out infinite alternate;
}

.scn-maid-reason-rebukes .reason-figure {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 40px;
  height: 110px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom;
  animation: mrr-reason 6s ease-in-out infinite;
}

.scn-maid-reason-rebukes .maid-figure {
  position: absolute;
  bottom: 22%;
  right: 25%;
  width: 25px;
  height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: mrr-maid 4s ease-in-out infinite;
}

.scn-maid-reason-rebukes .pointing-hand {
  position: absolute;
  bottom: 55%;
  left: 32%;
  width: 30px;
  height: 12px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a4a2a 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(-20deg);
  transform-origin: left center;
  animation: mrr-hand 3s ease-in-out infinite alternate;
}

.scn-maid-reason-rebukes .shadow-bar {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: repeating-linear-gradient(
    90deg,
    transparent 0%,
    transparent 8%,
    rgba(0,0,0,0.08) 8%,
    rgba(0,0,0,0.08) 12%,
    transparent 12%
  );
  pointer-events: none;
  animation: mrr-shadow 10s ease-in-out infinite alternate;
}

.scn-maid-reason-rebukes .light-beam {
  position: absolute;
  top: 20%;
  left: 35%;
  width: 80px;
  height: 200px;
  background: linear-gradient(180deg, rgba(255,240,180,0.3) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: mrr-beam 6s ease-in-out infinite alternate;
}

@keyframes mrr-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

@keyframes mrr-sun {
  0% { transform: scale(0.95) translateY(0); box-shadow: 0 0 25px 10px rgba(240,200,96,0.2); }
  50% { transform: scale(1.08) translateY(-5px); box-shadow: 0 0 40px 20px rgba(240,200,96,0.5); }
  100% { transform: scale(1) translateY(0); box-shadow: 0 0 30px 12px rgba(240,200,96,0.3); }
}

@keyframes mrr-reason {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-3deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes mrr-maid {
  0% { transform: translateX(0) scaleY(1); }
  33% { transform: translateX(5px) scaleY(0.98); }
  66% { transform: translateX(-2px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}

@keyframes mrr-hand {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-3px); }
  100% { transform: rotate(-22deg) translateY(0); }
}

@keyframes mrr-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}

@keyframes mrr-beam {
  0% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(1.05); }
  100% { opacity: 0.3; transform: scaleY(0.98); }
}

/* -- SCENE: maid-o-appetite -- */
.scn-maid-o-appetite {
  background:
    linear-gradient(180deg, #f2dab0 0%, #d4b47a 30%, #a88850 60%, #7a6838 100%),
    radial-gradient(ellipse at 50% 50%, #ffe8b0 0%, transparent 60%);
}

.scn-maid-o-appetite .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 40%, #9a7a4a 40%, #6a4a2a 100%);
  animation: moa-bg 12s ease-in-out infinite alternate;
}

.scn-maid-o-appetite .fruit-bowl {
  position: absolute;
  bottom: 15%;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 40px;
  background: linear-gradient(180deg, #b09060 0%, #8a6a3a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: moa-bowl 7s ease-in-out infinite;
}

.scn-maid-o-appetite .fruit {
  position: absolute;
  bottom: calc(15% + 30px);
  left: 50%;
  transform: translateX(-50%);
  width: 30px;
  height: 32px;
  background: radial-gradient(circle at 40% 30%, #e8a058 0%, #c07030 70%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: moa-fruit 3s ease-in-out infinite alternate;
}

.scn-maid-o-appetite .hand-reaching {
  position: absolute;
  bottom: 30%;
  left: 40%;
  width: 50px;
  height: 20px;
  background: linear-gradient(90deg, #5a3a1a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(30deg);
  transform-origin: left center;
  animation: moa-hand 4s ease-in-out infinite alternate;
}

.scn-maid-o-appetite .reason-figure {
  position: absolute;
  bottom: 20%;
  right: 15%;
  width: 35px;
  height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom;
  animation: moa-reason 5s ease-in-out infinite;
}

.scn-maid-o-appetite .tear {
  position: absolute;
  bottom: 55%;
  right: 22%;
  width: 6px;
  height: 10px;
  background: radial-gradient(ellipse, #b8c8d8 0%, #6a8a9a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: moa-tear 3s linear infinite;
}

.scn-maid-o-appetite .spotlight {
  position: absolute;
  top: 10%;
  left: 35%;
  width: 120px;
  height: 200px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,235,180,0.3) 0%, transparent 70%);
  pointer-events: none;
  animation: moa-spot 8s ease-in-out infinite alternate;
}

@keyframes moa-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}

@keyframes moa-bowl {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}

@keyframes moa-fruit {
  0% { transform: translateX(-50%) rotate(-10deg) scale(1); }
  50% { transform: translateX(-50%) rotate(10deg) scale(1.03); }
  100% { transform: translateX(-50%) rotate(-5deg) scale(0.98); }
}

@keyframes moa-hand {
  0% { transform: rotate(30deg) translateX(0); }
  50% { transform: rotate(20deg) translateX(8px); }
  100% { transform: rotate(30deg) translateX(0); }
}

@keyframes moa-reason {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(-4px) rotate(-3deg); }
  66% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes moa-tear {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(20px) scale(0.8); opacity: 0.4; }
  100% { transform: translateY(40px) scale(0.5); opacity: 0; }
}

@keyframes moa-spot {
  0% { opacity: 0.2; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.05); }
  100% { opacity: 0.3; transform: scaleY(0.98); }
}

/* lover-all-things – warm dim interior with candle, figure, floating heart */
.scn-lover-all-things {
  background: 
    linear-gradient(180deg, #1a1210 0%, #2a1a15 40%, #3d2a22 70%, #2a1a15 100%),
    radial-gradient(ellipse at 30% 40%, #c0804030 0%, transparent 60%);
}
.scn-lover-all-things .room-bg {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 70% 60%, #4a352a 0%, #1a1210 80%);
  animation: laa-room 12s ease-in-out infinite alternate;
}
.scn-lover-all-things .window-glow {
  position: absolute; top: 10%; right: 10%; width: 25%; height: 40%;
  background: linear-gradient(135deg, #f0c060 0%, transparent 60%);
  border-radius: 10% 10% 50% 50% / 20% 30% 60% 60%;
  filter: blur(10px);
  animation: laa-glow 5s ease-in-out infinite alternate;
}
.scn-lover-all-things .candle {
  position: absolute; bottom: 28%; left: 20%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0d080 20%, #c8a060 60%, #5a3a20 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 15px #f0c060;
  animation: laa-candle 4s ease-in-out infinite;
}
.scn-lover-all-things .flame {
  position: absolute; bottom: calc(28% + 42px); left: calc(20% + 2px);
  width: 10px; height: 18px;
  background: radial-gradient(circle, #ffd080 20%, #f08830 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: laa-flame 0.8s ease-in-out infinite alternate;
}
.scn-lover-all-things .figure-silhouette {
  position: absolute; bottom: 20%; left: 35%; width: 45px; height: 70px;
  background: linear-gradient(180deg, #2a1a15 0%, #1a100e 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: laa-figure 6s ease-in-out infinite;
}
.scn-lover-all-things .orb-heart {
  position: absolute; top: 40%; left: 65%; width: 24px; height: 23px;
  background: radial-gradient(circle, #ffb080 0%, #c06030 80%);
  border-radius: 50% 50% 50% 50% / 50% 50% 40% 60%;
  box-shadow: 0 0 25px 8px #c0603060, 0 0 50px 15px #c0603030;
  animation: laa-heart 8s ease-in-out infinite alternate;
}
.scn-lover-all-things .dust-particles {
  position: absolute; inset: 0;
  background: radial-gradient(1px 1px at 20% 30%, #fff 50%, transparent 100%),
              radial-gradient(1px 1px at 40% 70%, #ffd080 50%, transparent 100%),
              radial-gradient(1px 1px at 60% 20%, #ffc0a0 50%, transparent 100%),
              radial-gradient(1px 1px at 80% 50%, #fff 50%, transparent 100%);
  background-size: 200px 200px;
  animation: laa-dust 50s linear infinite;
}
@keyframes laa-room {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.01); }
  100% { opacity: 0.95; transform: scale(0.99); }
}
@keyframes laa-glow {
  0% { opacity: 0.6; transform: scaleX(0.9) scaleY(0.85); }
  50% { opacity: 0.85; transform: scaleX(1.1) scaleY(1); }
  100% { opacity: 0.7; transform: scaleX(0.95) scaleY(0.9); }
}
@keyframes laa-candle {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.05); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.85; }
}
@keyframes laa-flame {
  0% { transform: translateY(0) scaleY(1) rotate(-2deg); opacity: 0.8; }
  50% { transform: translateY(-2px) scaleY(1.2) rotate(3deg); opacity: 1; }
  100% { transform: translateY(1px) scaleY(0.9) rotate(-1deg); opacity: 0.9; }
}
@keyframes laa-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(-1px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(3px) translateY(-1px) rotate(0.5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes laa-heart {
  0% { transform: scale(0.95) translateY(0); filter: brightness(0.9); }
  50% { transform: scale(1.08) translateY(-5px); filter: brightness(1.2); }
  100% { transform: scale(1) translateY(0); filter: brightness(1); }
}
@keyframes laa-dust {
  0% { background-position: 0 0; }
  100% { background-position: 200px 100px; }
}

/* lover-hearts-pine – tense dim interior with figure, hearts, light shaft */
.scn-lover-hearts-pine {
  background: 
    linear-gradient(180deg, #0e0a08 0%, #1a1412 40%, #2a201a 70%, #1a1412 100%),
    radial-gradient(ellipse at 50% 20%, #2a201a 0%, transparent 70%);
}
.scn-lover-hearts-pine .dark-bg {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 40%, #2a1e18 0%, #0e0a08 90%);
  animation: lhp-bg 6s ease-in-out infinite alternate;
}
.scn-lover-hearts-pine .light-shaft {
  position: absolute; top: 0; left: 50%; width: 15%; height: 100%;
  background: linear-gradient(180deg, rgba(255,220,170,0.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: lhp-shaft 4s ease-in-out infinite alternate;
}
.scn-lover-hearts-pine .figure-profile {
  position: absolute; bottom: 15%; left: 30%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: lhp-figure 3.5s ease-in-out infinite;
}
.scn-lover-hearts-pine .heart-big {
  position: absolute; top: 30%; left: 55%; width: 30px; height: 28px;
  background: radial-gradient(circle at 50% 30%, #c8553d 0%, #8a3020 80%);
  border-radius: 50% 50% 50% 50% / 50% 50% 40% 60%;
  box-shadow: 0 0 20px 6px #8a302060;
  animation: lhp-heart-b 2s ease-in-out infinite alternate;
}
.scn-lover-hearts-pine .heart-small {
  position: absolute; top: 45%; left: 70%; width: 16px; height: 15px;
  background: radial-gradient(circle at 50% 30%, #a0461a 0%, #6a2510 80%);
  border-radius: 50% 50% 50% 50% / 50% 50% 40% 60%;
  box-shadow: 0 0 12px 4px #6a251050;
  animation: lhp-heart-s 2.5s ease-in-out infinite alternate;
  animation-delay: -0.8s;
}
.scn-lover-hearts-pine .ground-shadow {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 8%;
  background: radial-gradient(ellipse at 50% 100%, #1a100e 0%, transparent 70%);
  filter: blur(4px);
  animation: lhp-shadow 3s ease-in-out infinite alternate;
}
.scn-lover-hearts-pine .flicker-overlay {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #00000010 0px, #00000020 5px, transparent 5px, transparent 20px);
  mix-blend-mode: multiply;
  animation: lhp-flicker 0.3s linear infinite alternate;
}
@keyframes lhp-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes lhp-shaft {
  0% { transform: translateX(-5%) scaleX(0.9); opacity: 0.4; }
  50% { transform: translateX(2%) scaleX(1.1); opacity: 0.7; }
  100% { transform: translateX(5%) scaleX(1); opacity: 0.5; }
}
@keyframes lhp-figure {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(1px) rotate(1deg) scaleY(1.01); }
  50% { transform: translateX(0) rotate(-1deg) scaleY(0.99); }
  75% { transform: translateX(-1px) rotate(0.5deg) scaleY(1); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes lhp-heart-b {
  0% { transform: scale(0.9) translateY(0); filter: brightness(0.8); }
  50% { transform: scale(1.15) translateY(-8px); filter: brightness(1.3); }
  100% { transform: scale(0.95) translateY(0); filter: brightness(0.9); }
}
@keyframes lhp-heart-s {
  0% { transform: scale(0.85) translateY(0); filter: brightness(0.7); }
  50% { transform: scale(1.2) translateY(-10px); filter: brightness(1.4); }
  100% { transform: scale(0.9) translateY(2px); filter: brightness(0.8); }
}
@keyframes lhp-shadow {
  0% { transform: scaleX(0.9); opacity: 0.6; }
  50% { transform: scaleX(1.1); opacity: 0.8; }
  100% { transform: scaleX(0.95); opacity: 0.5; }
}
@keyframes lhp-flicker {
  0% { opacity: 0.3; }
  100% { opacity: 0.5; }
}

/* item-tear – dark close-up of cheek, tear stream, falling drops */
.scn-item-tear {
  background: 
    linear-gradient(180deg, #0a0608 0%, #12101a 30%, #1a181e 60%, #12101a 100%),
    radial-gradient(ellipse at 60% 40%, #2a2230 0%, transparent 70%);
}
.scn-item-tear .abyss-bg {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 40% 50%, #1a1420 0%, #0a0608 90%);
  animation: ite-bg 15s ease-in-out infinite alternate;
}
.scn-item-tear .cheek-silhouette {
  position: absolute; bottom: 10%; left: 20%; width: 45%; height: 70%;
  background: linear-gradient(180deg, #2a2028 0%, #1a1218 50%, #12101a 100%);
  border-radius: 60% 40% 50% 50% / 70% 50% 60% 50%;
  filter: blur(2px);
  animation: ite-cheek 5s ease-in-out infinite alternate;
}
.scn-item-tear .tear-stream {
  position: absolute; top: 30%; left: 48%; width: 4px; height: 50%;
  background: linear-gradient(180deg, rgba(100,180,220,0) 0%, #64b4dc 20%, #4a98c0 60%, rgba(100,180,220,0) 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ite-stream 3s ease-in-out infinite;
}
.scn-item-tear .tear-drop {
  position: absolute; width: 6px; height: 8px;
  background: radial-gradient(circle at 30% 30%, #80c8f0 0%, #4a98c0 80%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(0.5px);
}
.scn-item-tear .drop-1 {
  top: 50%; left: 48%;
  animation: ite-drop1 2.2s ease-in infinite;
}
.scn-item-tear .drop-2 {
  top: 60%; left: 48%;
  animation: ite-drop2 2.8s ease-in infinite;
  animation-delay: -1.2s;
}
.scn-item-tear .tear-glow {
  position: absolute; top: 28%; left: 47%; width: 12px; height: 12px;
  background: radial-gradient(circle, #80c8f0 10%, transparent 70%);
  filter: blur(4px);
  animation: ite-glow 4s ease-in-out infinite alternate;
}
.scn-item-tear .mote {
  position: absolute; top: 20%; left: 60%; width: 2px; height: 2px;
  background: #a0c0e0; border-radius: 50%;
  filter: blur(1px);
  animation: ite-mote 20s linear infinite;
}
@keyframes ite-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ite-cheek {
  0% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(1.02) scaleY(1.02); }
  100% { transform: scaleX(0.98) scaleY(0.98); }
}
@keyframes ite-stream {
  0% { transform: scaleY(0.9) scaleX(0.8); opacity: 0.6; }
  50% { transform: scaleY(1.1) scaleX(1); opacity: 1; }
  100% { transform: scaleY(0.95) scaleX(0.9); opacity: 0.7; }
}
@keyframes ite-drop1 {
  0% { transform: translateY(0) opacity(0); }
  10% { opacity: 1; }
  50% { transform: translateY(30px) opacity(0.8); }
  100% { transform: translateY(60px) opacity(0); }
}
@keyframes ite-drop2 {
  0% { transform: translateY(0) opacity(0); }
  10% { opacity: 1; }
  50% { transform: translateY(40px) opacity(0.7); }
  100% { transform: translateY(70px) opacity(0); }
}
@keyframes ite-glow {
  0% { transform: scale(0.8); opacity: 0.5; }
  50% { transform: scale(1.3); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.6; }
}
@keyframes ite-mote {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  10% { opacity: 0.8; }
  100% { transform: translateY(-80px) translateX(20px); opacity: 0; }
}

/* maid-tear-effect – tense split: warm left, cool right, central figure */
.scn-maid-tear-effect {
  background: 
    linear-gradient(135deg, #2a1a10 0%, #1a1820 50%, #101520 100%),
    radial-gradient(ellipse at 30% 50%, #4a302050 0%, transparent 60%);
}
.scn-maid-tear-effect .split-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a1a10 0%, #1a1820 50%, #101520 100%);
  animation: mte-split 5s ease-in-out infinite alternate;
}
.scn-maid-tear-effect .warm-side {
  position: absolute; top: 0; left: 0; width: 50%; height: 100%;
  background: radial-gradient(circle at 30% 50%, #c8603020 0%, transparent 70%);
  filter: blur(6px);
  animation: mte-warm 2s ease-in-out infinite alternate;
}
.scn-maid-tear-effect .cool-side {
  position: absolute; top: 0; right: 0; width: 50%; height: 100%;
  background: radial-gradient(circle at 70% 50%, #2a6a9030 0%, transparent 70%);
  filter: blur(6px);
  animation: mte-cool 2.5s ease-in-out infinite alternate;
}
.scn-maid-tear-effect .central-figure {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 90px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  animation: mte-figure 3s ease-in-out infinite;
}
.scn-maid-tear-effect .heart-core {
  position: absolute; top: 35%; left: 50%; transform: translateX(-50%);
  width: 18px; height: 16px;
  background: radial-gradient(circle at 50% 40%, #c8553d 0%, #8a3020 80%);
  border-radius: 50% 50% 50% 50% / 50% 50% 40% 60%;
  box-shadow: 0 0 25px 8px #8a302060, 0 0 50px 15px #8a302030;
  animation: mte-heart 1.5s ease-in-out infinite alternate;
}
.scn-maid-tear-effect .tear-drops {
  position: absolute; top: 40%; right: 25%; width: 100%; height: 100%;
  background: radial-gradient(2px 3px at 60% 50%, #4a98c0 50%, transparent 100%),
              radial-gradient(2px 3px at 70% 60%, #64b4dc 50%, transparent 100%),
              radial-gradient(2px 3px at 65% 35%, #80c8f0 50%, transparent 100%);
  background-size: 40px 40px;
  animation: mte-tears 4s ease-in-out infinite;
}
.scn-maid-tear-effect .flame-whisps {
  position: absolute; top: 30%; left: 20%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffa060 20%, transparent 70%);
  filter: blur(3px);
  animation: mte-flame 1.2s ease-in-out infinite alternate;
}
.scn-maid-tear-effect .balance-line {
  position: absolute; top: 0; left: 50%; width: 2px; height: 100%;
  background: linear-gradient(180deg, #f0d08010, #f0d08030, #f0d08010);
  filter: blur(1px);
  animation: mte-line 3s ease-in-out infinite alternate;
}
@keyframes mte-split {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes mte-warm {
  0% { opacity: 0.4; transform: scaleX(1.1); }
  50% { opacity: 0.8; transform: scaleX(0.9); }
  100% { opacity: 0.5; transform: scaleX(1); }
}
@keyframes mte-cool {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
@keyframes mte-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(0.5deg); }
  50% { transform: translateX(-50%) translateY(1px) rotate(-0.5deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(0.3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes mte-heart {
  0% { transform: translateX(-50%) scale(0.9) brightness(0.8); }
  50% { transform: translateX(-50%) scale(1.2) brightness(1.3); }
  100% { transform: translateX(-50%) scale(1) brightness(1); }
}
@keyframes mte-tears {
  0% { background-position: 0 0; opacity: 0.6; }
  50% { background-position: -10px 10px; opacity: 1; }
  100% { background-position: 20px -5px; opacity: 0.7; }
}
@keyframes mte-flame {
  0% { transform: translateY(0) scaleY(1) rotate(0deg); }
  50% { transform: translateY(-3px) scaleY(1.2) rotate(10deg); }
  100% { transform: translateY(0) scaleY(0.9) rotate(-5deg); }
}
@keyframes mte-line {
  0% { opacity: 0.2; filter: blur(2px); }
  50% { opacity: 0.6; filter: blur(0px); }
  100% { opacity: 0.3; filter: blur(1px); }
}

.scn-lover-browny-locks {
  background: linear-gradient(135deg, #fdf5e6 0%, #f5deb3 30%, #d2b48c 60%, #a0522d 100%), radial-gradient(circle at 25% 40%, #fff8dc 0%, transparent 50%);
}
.scn-lover-browny-locks .sun-burst {
  position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(255,223,150,.4) 0%, transparent 50%);
  animation: si1-sun-pulse 6s ease-in-out infinite alternate;
}
.scn-lover-browny-locks .head-silhouette {
  position:absolute; bottom:15%; left:18%; width:22%; height:60%; background: #3a2a1a;
  border-radius: 40% 60% 50% 40% / 60% 50% 40% 50%; box-shadow: inset -8px 0 12px rgba(90,50,30,.6);
}
.scn-lover-browny-locks .hair-a {
  position:absolute; bottom:55%; left:15%; width:14%; height:18%; background: radial-gradient(ellipse at 50% 30%, #a0522d 0%, #5a3010 100%);
  border-radius: 50%; transform: rotate(-15deg); animation: si1-hair-sway 5s ease-in-out infinite;
}
.scn-lover-browny-locks .hair-b {
  position:absolute; bottom:65%; left:22%; width:16%; height:22%; background: radial-gradient(ellipse at 30% 40%, #8b4513 0%, #3a1a0a 100%);
  border-radius: 50%; transform: rotate(10deg); animation: si1-hair-sway 6s ease-in-out infinite reverse;
}
.scn-lover-browny-locks .hair-c {
  position:absolute; bottom:50%; left:28%; width:10%; height:14%; background: radial-gradient(ellipse at 50% 50%, #c07030 0%, #7a3a10 100%);
  border-radius: 50%; transform: rotate(25deg); animation: si1-hair-sway 4.5s ease-in-out infinite alternate;
}
.scn-lover-browny-locks .chin-fuzz {
  position:absolute; bottom:22%; left:25%; width:10%; height:8%; background: radial-gradient(ellipse, rgba(255,213,162,.8) 0%, transparent 70%);
  border-radius: 50%; filter: blur(5px); animation: si1-fuzz-pulse 3.5s ease-in-out infinite;
}
.scn-lover-browny-locks .dust {
  position:absolute; top:20%; left:10%; width:4px; height:4px; background: #ffdab9; border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,218,185,.6); animation: si1-dust-float 12s linear infinite;
}
@keyframes si1-sun-pulse { 0% { opacity:.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:.7; transform:scale(.98); } }
@keyframes si1-hair-sway { 0% { transform: rotate(var(--r, -15deg)) translateY(0); } 50% { transform: rotate(var(--r2, 5deg)) translateY(-4px); } 100% { transform: rotate(var(--r, -15deg)) translateY(0); } }
@keyframes si1-fuzz-pulse { 0% { opacity:.2; transform:scaleY(1); } 50% { opacity:.8; transform:scaleY(1.6); } 100% { opacity:.3; transform:scaleY(1); } }
@keyframes si1-dust-float { 0% { transform: translateX(0) translateY(0) scale(0); opacity:0; } 20% { opacity:.7; } 80% { opacity:.4; } 100% { transform: translateX(80px) translateY(-60px) scale(2); opacity:0; } }

.scn-lover-phoenix-down {
  background: linear-gradient(180deg, #f5deb3 0%, #deb887 50%, #a0522d 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 60%);
}
.scn-lover-phoenix-down .bg-warm {
  position:absolute; inset:0; background: radial-gradient(circle at 50% 30%, rgba(255,235,200,.3) 0%, transparent 50%);
}
.scn-lover-phoenix-down .doublet {
  position:absolute; bottom:8%; left:15%; width:70%; height:45%; background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%; box-shadow: inset 0 12px 20px rgba(0,0,0,.4), 0 8px 16px rgba(0,0,0,.3);
}
.scn-lover-phoenix-down .collar-left {
  position:absolute; bottom:38%; left:22%; width:18%; height:25%; background: linear-gradient(135deg, #fdf5e6 0%, #eaddcf 100%);
  border-radius: 40% 20% 20% 40%; transform: rotate(-20deg); box-shadow: -4px 0 8px rgba(0,0,0,.2);
  animation: si2-collar-sway 7s ease-in-out infinite;
}
.scn-lover-phoenix-down .collar-right {
  position:absolute; bottom:38%; right:22%; width:18%; height:25%; background: linear-gradient(225deg, #fdf5e6 0%, #eaddcf 100%);
  border-radius: 20% 40% 40% 20%; transform: rotate(20deg); box-shadow: 4px 0 8px rgba(0,0,0,.2);
  animation: si2-collar-sway 7s ease-in-out infinite reverse;
}
.scn-lover-phoenix-down .neck-skin {
  position:absolute; bottom:30%; left:35%; width:30%; height:32%; background: radial-gradient(ellipse at 50% 40%, #d4a373 0%, #b08050 100%);
  border-radius: 50%; box-shadow: inset -6px -4px 10px rgba(60,30,10,.3);
}
.scn-lover-phoenix-down .fuzz-glow {
  position:absolute; bottom:48%; left:38%; width:24%; height:10%; background: radial-gradient(ellipse, rgba(255,223,186,.9) 0%, transparent 70%);
  filter: blur(6px); animation: si2-glow-pulse 4s ease-in-out infinite alternate;
}
.scn-lover-phoenix-down .shadow-depth {
  position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(30,15,5,.6) 100%);
  animation: si2-shadow-deep 6s ease-in-out infinite;
}
@keyframes si2-collar-sway { 0% { transform: rotate(var(--r, -20deg)) translateX(0); } 50% { transform: rotate(var(--r2, -15deg)) translateX(4px); } 100% { transform: rotate(var(--r, -20deg)) translateX(0); } }
@keyframes si2-glow-pulse { 0% { opacity:.3; transform:scaleY(1); } 50% { opacity:.9; transform:scaleY(1.8); } 100% { opacity:.4; transform:scaleY(1); } }
@keyframes si2-shadow-deep { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.5; } }

.scn-lover-maiden-tongued {
  background: linear-gradient(90deg, #fff5ee 0%, #fdf5e6 30%, #f5deb3 80%, #eaddcf 100%), radial-gradient(ellipse at 80% 50%, #ffefd5 0%, transparent 50%);
}
.scn-lover-maiden-tongued .bg-spring {
  position:absolute; inset:0; background: radial-gradient(circle at 70% 50%, rgba(255,235,210,.3) 0%, transparent 50%);
  animation: si3-spring-light 12s ease-in-out infinite alternate;
}
.scn-lover-maiden-tongued .profile-silhouette {
  position:absolute; bottom:12%; left:12%; width:20%; height:65%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 50% 40% 50% 40% / 50% 40% 50% 40%; box-shadow: inset -6px 0 10px rgba(90,50,30,.5);
  animation: si3-breathe 4s ease-in-out infinite;
}
.scn-lover-maiden-tongued .lips-highlight {
  position:absolute; bottom:30%; left:26%; width:6%; height:4%; background: radial-gradient(ellipse, #d4a373 0%, transparent 70%);
  border-radius: 50%; transform: rotate(-10deg); opacity:.8;
}
.scn-lover-maiden-tongued .breath-a {
  position:absolute; bottom:45%; left:35%; width:20%; height:8%; background: linear-gradient(90deg, rgba(255,235,210,.8) 0%, rgba(255,235,210,.1) 100%);
  border-radius: 50%; filter: blur(8px); transform: rotate(-5deg);
  animation: si3-breath 5s ease-in-out infinite;
}
.scn-lover-maiden-tongued .breath-b {
  position:absolute; bottom:55%; left:38%; width:15%; height:6%; background: linear-gradient(90deg, rgba(255,245,230,.6) 0%, rgba(255,245,230,.05) 100%);
  border-radius: 50%; filter: blur(6px); transform: rotate(5deg);
  animation: si3-breath 6s ease-in-out infinite reverse;
}
.scn-lover-maiden-tongued .petal-a {
  position:absolute; bottom:50%; left:45%; width:8px; height:8px; background: #b87878; border-radius: 50%;
  box-shadow: 0 0 6px rgba(184,120,120,.5); animation: si3-petal-drift 8s linear infinite;
}
.scn-lover-maiden-tongued .petal-b {
  position:absolute; bottom:40%; left:50%; width:6px; height:6px; background: #e0a0a0; border-radius: 50%;
  box-shadow: 0 0 4px rgba(224,160,160,.5); animation: si3-petal-drift 10s linear infinite reverse;
}
@keyframes si3-spring-light { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes si3-breathe { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes si3-breath { 0% { transform: translateX(0) scale(.6); opacity:.7; } 50% { transform: translateX(40px) scale(1.4); opacity:.3; } 100% { transform: translateX(80px) scale(2); opacity:0; } }
@keyframes si3-petal-drift { 0% { transform: translateY(0) rotate(0deg) scale(1); opacity:1; } 50% { transform: translateY(-25px) rotate(180deg) scale(1.3); opacity:.6; } 100% { transform: translateY(-50px) rotate(360deg) scale(0); opacity:0; } }

.scn-lover-horsemanship {
  background: linear-gradient(180deg, #ffd700 0%, #ff8c00 30%, #c8553d 60%, #4a1a0a 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 50%);
}
.scn-lover-horsemanship .sky-sunset {
  position:absolute; inset:0; background: radial-gradient(circle at 60% 20%, rgba(255,215,0,.4) 0%, transparent 40%);
  animation: si4-sky-glow 8s ease-in-out infinite alternate;
}
.scn-lover-horsemanship .ground-track {
  position:absolute; bottom:18%; left:0; right:0; height:22%; background: linear-gradient(180deg, #5a2a1a 0%, #2a100a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.5);
}
.scn-lover-horsemanship .horse-body {
  position:absolute; bottom:20%; left:15%; width:35%; height:25%; background: linear-gradient(135deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 60% 20% 40% 50% / 70% 20% 40% 50%; box-shadow: inset -8px 0 12px rgba(60,30,10,.4);
  animation: si4-gallop-b .6s ease-in-out infinite alternate;
}
.scn-lover-horsemanship .horse-neck-head {
  position:absolute; bottom:32%; left:38%; width:10%; height:28%; background: linear-gradient(135deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 30% 30% 40% 40% / 50% 40% 40% 30%; transform: rotate(15deg);
  animation: si4-gallop-n .5s ease-in-out infinite alternate;
}
.scn-lover-horsemanship .rider-torso {
  position:absolute; bottom:42%; left:32%; width:8%; height:20%; background: #1a0a0a;
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform: rotate(-15deg);
  animation: si4-rider-bob .5s ease-in-out infinite alternate;
}
.scn-lover-horsemanship .rider-legs {
  position:absolute; bottom:30%; left:33%; width:6%; height:18%; background: #1a0a0a;
  border-radius: 20% 20% 40% 40%; transform: rotate(10deg);
  animation: si4-rider-bob .5s ease-in-out infinite alternate-reverse;
}
.scn-lover-horsemanship .dust-a {
  position:absolute; bottom:15%; left:10%; width:20px; height:12px; background: radial-gradient(ellipse, rgba(210,180,140,.7) 0%, transparent 70%);
  border-radius: 50%; filter: blur(6px); animation: si4-dust 1.2s ease-in-out infinite;
}
.scn-lover-horsemanship .dust-b {
  position:absolute; bottom:18%; right:20%; width:30px; height:16px; background: radial-gradient(ellipse, rgba(210,180,140,.5) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px); animation: si4-dust 1.8s ease-in-out infinite reverse;
}
.scn-lover-horsemanship .speed-line {
  position:absolute; top:30%; right:5%; width:40%; height:2px; background: linear-gradient(90deg, transparent 0%, rgba(255,255,200,.6) 50%, transparent 100%);
  filter: blur(1px); animation: si4-speed 1s linear infinite;
}
@keyframes si4-sky-glow { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes si4-gallop-b { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-6px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes si4-gallop-n { 0% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-4px); } 100% { transform: rotate(12deg) translateY(0); } }
@keyframes si4-rider-bob { 0% { transform: rotate(-12deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-3px); } 100% { transform: rotate(-12deg) translateY(0); } }
@keyframes si4-dust { 0% { transform: translateX(0) scale(1); opacity:.5; } 50% { transform: translateX(-20px) scale(1.6); opacity:.9; } 100% { transform: translateX(-40px) scale(2.5); opacity:0; } }
@keyframes si4-speed { 0% { transform: translateX(0); opacity:0; } 50% { opacity:1; } 100% { transform: translateX(-80px); opacity:0; } }
/* end per-scene blocks */

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-aim-and-hail { background: linear-gradient(180deg, #1c1f2e 0%, #2a2c3a 40%, #1e1a24 100%), radial-gradient(ellipse at 50% 80%, #2f3545 0%, transparent 70%); }
.scn-aim-and-hail .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #23263b 0%, #3a3d4d 30%, transparent 100%); animation: sc1-sky 10s ease-in-out infinite alternate; }
.scn-aim-and-hail .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1b1a1f 0%, #111015 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.6); }
.scn-aim-and-hail .figure { position:absolute; bottom:28%; left:15%; width:24px; height:60px; background: linear-gradient(180deg, #0e0d12 0%, #1a181e 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc1-figure 6s ease-in-out infinite; }
.scn-aim-and-hail .arrow { position:absolute; top:20%; width:4px; height:40px; background: linear-gradient(180deg, #8c7c6c 0%, #4a3e32 100%); border-radius: 2px; transform-origin: top center; animation: sc1-arrow 2.5s ease-in infinite; }
.scn-aim-and-hail .arrow-a { left:40%; animation-delay: 0s; animation-duration: 2.5s; }
.scn-aim-and-hail .arrow-b { left:55%; animation-delay: 1.2s; animation-duration: 2.5s; }
.scn-aim-and-hail .arrow-c { left:70%; animation-delay: 2s; animation-duration: 2.5s; }
.scn-aim-and-hail .hail { position:absolute; top:10%; width:6px; height:6px; background: #b0a898; border-radius:50%; opacity:0.8; animation: sc1-hail 1.2s ease-in infinite; }
.scn-aim-and-hail .hail-a { left:25%; animation-delay: 0.3s; }
.scn-aim-and-hail .hail-b { left:80%; animation-delay: 0.8s; }
@keyframes sc1-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes sc1-figure { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } }
@keyframes sc1-arrow { 0% { transform: translateY(-30px) scaleY(1) opacity:1 } 30% { opacity:1 } 60% { opacity:0.7 } 100% { transform: translateY(calc(70vh)) scaleY(0.6) opacity:0 } }
@keyframes sc1-hail { 0% { transform: translateY(-20px) scale(0.5); opacity:0 } 20% { opacity:0.9 } 100% { transform: translateY(calc(60vh)) scale(1.2); opacity:0 } }

.scn-garment-of-a-grace { background: linear-gradient(180deg, #1a1620 0%, #2b242e 40%, #1a141c 100%), radial-gradient(ellipse at 50% 30%, #3f3545 0%, transparent 60%); }
.scn-garment-of-a-grace .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1620 0%, #2a2230 50%, #150e1a 100%); animation: sc2-bg 12s ease-in-out infinite alternate; }
.scn-garment-of-a-grace .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #211c28 0%, #14101a 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.5); }
.scn-garment-of-a-grace .wall-left { position:absolute; left:0; top:0; bottom:20%; width:12%; background: linear-gradient(180deg, #2a2230 0%, #1a1420 100%); border-radius: 0 8% 8% 0; box-shadow: inset -8px 0 15px rgba(0,0,0,.4); }
.scn-garment-of-a-grace .wall-right { position:absolute; right:0; top:0; bottom:20%; width:12%; background: linear-gradient(180deg, #2a2230 0%, #1a1420 100%); border-radius: 8% 0 0 8%; box-shadow: inset 8px 0 15px rgba(0,0,0,.4); }
.scn-garment-of-a-grace .figure { position:absolute; bottom:20%; left:50%; width:28px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #15101c 0%, #0c0814 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: sc2-figure 8s ease-in-out infinite; }
.scn-garment-of-a-grace .cloak { position:absolute; bottom:18%; left:44%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2038 0%, #1c1428 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; box-shadow: inset 0 0 15px rgba(0,0,0,.7); transform-origin: top center; animation: sc2-cloak 4s ease-in-out infinite alternate; }
.scn-garment-of-a-grace .shadow { position:absolute; bottom:18%; left:50%; width:60px; height:10px; transform:translateX(-50%); background: radial-gradient(ellipse, #000 0%, transparent 70%); opacity:0.6; animation: sc2-shadow 8s ease-in-out infinite; }
@keyframes sc2-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sc2-figure { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) translateY(-2px) } }
@keyframes sc2-cloak { 0% { transform: translateX(-50%) rotate(-3deg) scaleX(0.95) } 50% { transform: translateX(-50%) rotate(2deg) scaleX(1) } 100% { transform: translateX(-50%) rotate(-1deg) scaleX(0.97) } }
@keyframes sc2-shadow { 0%,100% { opacity:0.6; transform: translateX(-50%) scaleX(1) } 50% { opacity:0.8; transform: translateX(-50%) scaleX(1.1) } }

.scn-infected-moisture-again-betray { background: linear-gradient(180deg, #1a1820 0%, #2c2830 40%, #1c1820 100%), radial-gradient(circle at 50% 40%, #3f354a 0%, transparent 60%); }
.scn-infected-moisture-again-betray .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1820 0%, #2a2630 50%, #14101a 100%); animation: sc3-bg 9s ease-in-out infinite alternate; }
.scn-infected-moisture-again-betray .face { position:absolute; bottom:28%; left:50%; width:50px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #0e0c12 0%, #1a1820 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: sc3-face 7s ease-in-out infinite; }
.scn-infected-moisture-again-betray .eye { position:absolute; bottom:55%; left:55%; width:8px; height:10px; background: radial-gradient(circle, #403040 0%, #1a1020 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(100,60,100,.5); animation: sc3-eye 4s ease-in-out infinite alternate; }
.scn-infected-moisture-again-betray .tear { position:absolute; bottom:44%; left:56%; width:4px; height:12px; background: linear-gradient(180deg, #8a7a8a 0%, #5a4a5a 100%); border-radius: 50%; opacity:0.7; transform-origin: top center; animation: sc3-tear 2s ease-in-out infinite; }
.scn-infected-moisture-again-betray .cheek-glow { position:absolute; bottom:42%; left:48%; width:18px; height:18px; background: radial-gradient(circle, #b098a0 0%, #7a6070 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(180,140,160,.4); animation: sc3-glow 5s ease-in-out infinite alternate; }
.scn-infected-moisture-again-betray .shadow-deep { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, #100e14 100%); pointer-events: none; }
@keyframes sc3-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes sc3-face { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.01) translateY(-1px) } }
@keyframes sc3-eye { 0% { transform: scaleY(1); opacity:0.7 } 50% { transform: scaleY(0.4); opacity:1 } 100% { transform: scaleY(1); opacity:0.8 } }
@keyframes sc3-tear { 0% { transform: translateY(0) scaleY(1) rotate(0); opacity:0.7 } 50% { transform: translateY(8px) scaleY(1.2) rotate(5deg); opacity:1 } 100% { transform: translateY(16px) scaleY(0) rotate(10deg); opacity:0 } }
@keyframes sc3-glow { 0% { opacity:0.4; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.6; transform: scale(0.9) } }

/* maid-swept-away */
.scn-maid-swept-away {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 120%, #2a2a3a 0%, transparent 60%);
}
.scn-maid-swept-away .figure {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 24px;
  height: 60px;
  background: linear-gradient(180deg, #2c2c3c 0%, #1c1c2c 100%);
  border-radius: 35% 35% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ms-figure 3s ease-in-out infinite alternate;
}
.scn-maid-swept-away .wind-swirl {
  position: absolute;
  top: 20%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(90deg, transparent 0%, rgba(180,200,220,0.15) 30%, rgba(180,200,220,0.2) 50%, transparent 80%);
  filter: blur(8px);
  animation: ms-wind 6s ease-in-out infinite;
}
.scn-maid-swept-away .leaf {
  position: absolute;
  width: 10px;
  height: 6px;
  background: #5a5a4a;
  border-radius: 50% 50% 50% 0;
  filter: blur(1px);
  animation: ms-leaf linear infinite;
}
.scn-maid-swept-away .leaf-1 {
  top: 45%;
  left: 10%;
  animation-duration: 4s;
  animation-delay: 0s;
}
.scn-maid-swept-away .leaf-2 {
  top: 55%;
  left: 80%;
  width: 8px;
  height: 5px;
  background: #6a6a4a;
  animation-duration: 5s;
  animation-delay: 1s;
}
.scn-maid-swept-away .leaf-3 {
  top: 35%;
  left: 30%;
  width: 12px;
  height: 7px;
  background: #4a4a3a;
  animation-duration: 6s;
  animation-delay: 2s;
}
.scn-maid-swept-away .ground-mist {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(0deg, rgba(40,40,50,0.6) 0%, transparent 100%);
  animation: ms-mist 8s ease-in-out infinite alternate;
}
.scn-maid-swept-away .sky-veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(60,60,80,0.3) 0%, transparent 50%);
  animation: ms-veil 10s ease-in-out infinite alternate;
}
@keyframes ms-figure {
  0% { transform: translateX(-10px) rotate(-5deg); }
  50% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(-10px) rotate(-5deg); }
}
@keyframes ms-wind {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.2); }
  100% { opacity: 0.3; transform: scaleX(1); }
}
@keyframes ms-leaf {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 0; }
  20% { opacity: 0.8; }
  80% { opacity: 0.6; }
  100% { transform: translate(80px, -40px) rotate(360deg); opacity: 0; }
}
@keyframes ms-mist {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes ms-veil {
  0% { opacity: 0.2; }
  100% { opacity: 0.5; }
}

/* honour-shielded */
.scn-honour-shielded {
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 50%, #5a6a7a 0%, transparent 70%);
}
.scn-honour-shielded .shield {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 70px;
  height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 30% 30% 25% 25% / 40% 40% 35% 35%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4), 0 8px 20px rgba(0,0,0,0.3);
  animation: hs-shield 12s ease-in-out infinite alternate;
}
.scn-honour-shielded .shield-crest {
  position: absolute;
  bottom: 35%;
  left: 50%;
  width: 20px;
  height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a9aaa 0%, #5a6a7a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  box-shadow: 0 0 10px 2px rgba(255,255,255,0.1);
  animation: hs-crest 8s ease-in-out infinite;
}
.scn-honour-shielded .light-rays {
  position: absolute;
  top: -10%;
  left: 30%;
  width: 40%;
  height: 60%;
  background: conic-gradient(from 0deg at 50% 100%, rgba(200,220,255,0.15) 0deg, transparent 60deg, rgba(200,220,255,0.1) 120deg, transparent 180deg, rgba(200,220,255,0.05) 240deg, transparent 300deg);
  filter: blur(6px);
  animation: hs-rays 20s ease-in-out infinite alternate;
}
.scn-honour-shielded .pedestal {
  position: absolute;
  bottom: 10%;
  left: 50%;
  width: 100px;
  height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.5);
}
.scn-honour-shielded .guardian {
  position: absolute;
  bottom: 28%;
  left: 60%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 35% 35% 30% 30% / 50% 50% 40% 40%;
  animation: hs-guardian 6s ease-in-out infinite alternate;
}
.scn-honour-shielded .halo-glow {
  position: absolute;
  top: 25%;
  left: 50%;
  width: 100px;
  height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(200,220,255,0.2) 0%, transparent 70%);
  filter: blur(15px);
  animation: hs-halo 15s ease-in-out infinite alternate;
}
.scn-honour-shielded .dust-motes {
  position: absolute;
  width: 4px;
  height: 4px;
  background: rgba(255,255,255,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: hs-motes linear infinite;
}
.scn-honour-shielded .motes-a {
  top: 20%;
  left: 10%;
  animation-duration: 12s;
  animation-delay: 0s;
}
.scn-honour-shielded .motes-b {
  top: 40%;
  left: 80%;
  animation-duration: 15s;
  animation-delay: 3s;
  width:6px;
  height:6px;
}
@keyframes hs-shield {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes hs-crest {
  0% { opacity: 0.6; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.6; transform: translateX(-50%) scale(1); }
}
@keyframes hs-rays {
  0% { opacity: 0.2; transform: rotate(-5deg); }
  50% { opacity: 0.5; transform: rotate(5deg); }
  100% { opacity: 0.2; transform: rotate(-5deg); }
}
@keyframes hs-guardian {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes hs-halo {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes hs-motes {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 0; }
  20% { opacity: 0.8; }
  80% { opacity: 0.6; }
  100% { transform: translate(30px, -40px) rotate(180deg); opacity: 0; }
}

/* shunned-precedent */
.scn-shunned-precedent {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
}
.scn-shunned-precedent .path {
  position: absolute;
  bottom: 20%;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(90deg, transparent 0%, #2a2a3a 30%, #3a3a4a 50%, #2a2a3a 70%, transparent 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: sp-path 15s ease-in-out infinite alternate;
}
.scn-shunned-precedent .figure-back {
  position: absolute;
  bottom: 30%;
  left: 40%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%;
  animation: sp-figure 4s ease-in-out infinite alternate;
}
.scn-shunned-precedent .signpost {
  position: absolute;
  bottom: 35%;
  left: 55%;
  width: 6px;
  height: 40px;
  background: #2a2a3a;
  animation: sp-sign 8s ease-in-out infinite;
}
.scn-shunned-precedent .signpost::before {
  content: '';
  position: absolute;
  top: -8px;
  left: -8px;
  width: 22px;
  height: 12px;
  background: #3a3a4a;
  border-radius: 10% 10% 0 0;
}
.scn-shunned-precedent .fog {
  position: absolute;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(90deg, transparent 0%, rgba(60,60,80,0.2) 30%, rgba(80,80,100,0.3) 50%, rgba(60,60,80,0.2) 70%, transparent 100%);
  filter: blur(10px);
  animation: sp-fog linear infinite;
}
.scn-shunned-precedent .fog-front {
  bottom: 15%;
  animation-duration: 20s;
  animation-delay: 0s;
}
.scn-shunned-precedent .fog-mid {
  bottom: 30%;
  height: 25%;
  animation-duration: 25s;
  animation-delay: 5s;
  opacity: 0.7;
}
.scn-shunned-precedent .fog-back {
  bottom: 50%;
  height: 20%;
  animation-duration: 30s;
  animation-delay: 10s;
  opacity: 0.5;
}
.scn-shunned-precedent .shadow-pool {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 40%;
  height: 15%;
  background: radial-gradient(ellipse, #0a0a1a 0%, transparent 70%);
  animation: sp-shadow 6s ease-in-out infinite alternate;
}
@keyframes sp-path {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes sp-figure {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-5px) translateY(-2px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes sp-sign {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes sp-fog {
  0% { transform: translateX(-20px); }
  50% { transform: translateX(20px); }
  100% { transform: translateX(-20px); }
}
@keyframes sp-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

/* appetite-versus-judgment */
.scn-appetite-versus-judgment {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1e 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 60%);
}
.scn-appetite-versus-judgment .table {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 120px;
  height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.6);
  animation: aj-table 10s ease-in-out infinite alternate;
}
.scn-appetite-versus-judgment .fruit {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 14px;
  height: 14px;
  background: radial-gradient(circle at 30% 30%, #7a5a4a 0%, #5a3a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(90,58,42,0.5);
  animation: aj-fruit 4s ease-in-out infinite;
}
.scn-appetite-versus-judgment .hand-reach {
  position: absolute;
  bottom: 32%;
  left: 50%;
  width: 16px;
  height: 30px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: aj-hand 5s ease-in-out infinite alternate;
}
.scn-appetite-versus-judgment .weeping-figure {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 18px;
  height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%);
  border-radius: 35% 35% 30% 30% / 50% 50% 40% 40%;
  animation: aj-weep 6s ease-in-out infinite;
}
.scn-appetite-versus-judgment .weeping-figure::before {
  content: '';
  position: absolute;
  top: -8px;
  left: 6px;
  width: 6px;
  height: 6px;
  background: #2a2a3a;
  border-radius: 50%;
  box-shadow: 8px 0 0 #2a2a3a;
}
.scn-appetite-versus-judgment .scale-tilt {
  position: absolute;
  bottom: 35%;
  left: 55%;
  width: 30px;
  height: 10px;
  background: #3a3a4a;
  border-radius: 10%;
  transform-origin: center left;
  animation: aj-scale 12s ease-in-out infinite alternate;
}
.scn-appetite-versus-judgment .scale-tilt::after {
  content: '';
  position: absolute;
  top: -20px;
  left: 0;
  width: 4px;
  height: 25px;
  background: #2a2a3a;
}
.scn-appetite-versus-judgment .reason-tear {
  position: absolute;
  bottom: 25%;
  left: 28%;
  width: 4px;
  height: 8px;
  background: rgba(100,130,180,0.5);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: aj-tear 3s ease-in-out infinite;
}
.scn-appetite-versus-judgment .shadow-veil {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,0.4) 100%);
  animation: aj-veil 12s ease-in-out infinite alternate;
}
.scn-appetite-versus-judgment .glow-spot {
  position: absolute;
  top: 25%;
  left: 50%;
  width: 60px;
  height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(120,140,200,0.2) 0%, transparent 70%);
  filter: blur(12px);
  animation: aj-glow 8s ease-in-out infinite alternate;
}
@keyframes aj-table {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes aj-fruit {
  0% { transform: scale(1); }
  50% { transform: scale(1.1); }
  100% { transform: scale(1); }
}
@keyframes aj-hand {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes aj-weep {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes aj-scale {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(0deg); }
}
@keyframes aj-tear {
  0% { opacity: 0; transform: translateY(0); }
  50% { opacity: 0.8; transform: translateY(10px); }
  100% { opacity: 0; transform: translateY(20px); }
}
@keyframes aj-veil {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes aj-glow {
  0% { opacity: 0.2; transform: translateX(-50%) scale(1); }
  50% { opacity: 0.5; transform: translateX(-50%) scale(1.2); }
  100% { opacity: 0.2; transform: translateX(-50%) scale(1); }
}

.scn-young-man-looks {
  background: linear-gradient(180deg, #b8a08a 0%, #9a7d6a 40%, #7e6354 100%), radial-gradient(ellipse at 50% 30%, #c9b09a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-young-man-looks .sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(180,160,140,0.3) 0%, transparent 60%); animation: yml-sky 8s ease-in-out infinite alternate;
}
.scn-young-man-looks .glow {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 40%; background: radial-gradient(circle, rgba(220,200,170,0.5) 0%, transparent 70%); border-radius: 50%; animation: yml-glow 6s ease-in-out infinite alternate;
}
.scn-young-man-looks .head {
  position: absolute; bottom: 22%; left: 42%; width: 100px; height: 140px; background: linear-gradient(150deg, #d6bca3 0%, #a78a72 100%); border-radius: 45% 40% 50% 40% / 55% 50% 45% 50%; transform-origin: bottom center; animation: yml-head 4s ease-in-out infinite;
}
.scn-young-man-looks .hair {
  position: absolute; bottom: 60%; left: 38%; width: 130px; height: 100px; background: radial-gradient(ellipse at 40% 30%, #6a4d3a 0%, #3d2a1e 70%); border-radius: 60% 70% 40% 50% / 70% 60% 40% 50%; filter: blur(2px); animation: yml-hair 7s ease-in-out infinite alternate;
}
.scn-young-man-looks .eye {
  position: absolute; bottom: 42%; left: 48%; width: 10px; height: 8px; background: #2a1f1a; border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,255,240,0.4); animation: yml-eye 3s ease-in-out infinite alternate;
}
.scn-young-man-looks .neck {
  position: absolute; bottom: 8%; left: 43%; width: 40px; height: 50px; background: linear-gradient(180deg, #c5a88f 0%, #9c7b64 100%); border-radius: 30% 30% 40% 40%; animation: yml-neck 5s ease-in-out infinite;
}
.scn-young-man-looks .shoulder {
  position: absolute; bottom: -5%; left: 20%; width: 200px; height: 80px; background: radial-gradient(ellipse at 50% 0%, #a2846e 0%, #6b5443 100%); border-radius: 50% 50% 0 0; transform: scaleX(1.2); animation: yml-shoulder 8s ease-in-out infinite alternate;
}

@keyframes yml-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes yml-glow { 0% { transform: scale(0.95); opacity:0.4 } 50% { transform: scale(1.05); opacity:0.7 } 100% { transform: scale(0.98); opacity:0.5 } }
@keyframes yml-head { 0%,100% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } }
@keyframes yml-hair { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(4px) rotate(-1deg) } 100% { transform: translateX(-2px) rotate(3deg) } }
@keyframes yml-eye { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:0.8; transform: scaleY(1) } }
@keyframes yml-neck { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes yml-shoulder { 0% { transform: translateY(0) scaleX(1.2) } 50% { transform: translateY(2px) scaleX(1.15) } 100% { transform: translateY(0) scaleX(1.2) } }

.scn-chin-velvet-down {
  background: linear-gradient(180deg, #b0937e 0%, #8c7260 40%, #6b5546 100%), radial-gradient(ellipse at 50% 40%, #b8a08a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-chin-velvet-down .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(180,160,140,0.2) 0%, transparent 50%); animation: cvd-bg 10s ease-in-out infinite alternate;
}
.scn-chin-velvet-down .jawline {
  position: absolute; bottom: 35%; left: 38%; width: 120px; height: 60px; background: linear-gradient(180deg, #d4bca5 0%, #b1957e 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cvd-jaw 6s ease-in-out infinite;
}
.scn-chin-velvet-down .chin {
  position: absolute; bottom: 25%; left: 42%; width: 70px; height: 50px; background: linear-gradient(180deg, #dcc8b5 0%, #c2a991 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cvd-chin 5s ease-in-out infinite;
}
.scn-chin-velvet-down .down {
  position: absolute; bottom: 30%; left: 44%; width: 50px; height: 25px; background: radial-gradient(ellipse at 50% 20%, rgba(230,210,195,0.6) 0%, transparent 80%); border-radius: 50%; filter: blur(6px); animation: cvd-down 4s ease-in-out infinite alternate;
}
.scn-chin-velvet-down .neck {
  position: absolute; bottom: 5%; left: 35%; width: 130px; height: 100px; background: linear-gradient(180deg, #bb9f88 0%, #8b705c 100%); border-radius: 30% 30% 40% 40%; transform-origin: top center; animation: cvd-neck 7s ease-in-out infinite;
}
.scn-chin-velvet-down .collar {
  position: absolute; bottom: 10%; left: 30%; width: 160px; height: 30px; background: linear-gradient(180deg, #7a614e 0%, #5a4536 100%); border-radius: 20% 20% 0 0; transform: scaleX(1.1); animation: cvd-collar 8s ease-in-out infinite alternate;
}
.scn-chin-velvet-down .shadow {
  position: absolute; top: 20%; left: 20%; width: 200px; height: 200px; background: radial-gradient(ellipse at 30% 80%, rgba(60,40,30,0.3) 0%, transparent 70%); border-radius: 50%; animation: cvd-shadow 12s ease-in-out infinite alternate;
}

@keyframes cvd-bg { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes cvd-jaw { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes cvd-chin { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes cvd-down { 0% { opacity:0.5; filter: blur(4px) } 50% { opacity:0.8; filter: blur(8px) } 100% { opacity:0.5; filter: blur(4px) } }
@keyframes cvd-neck { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes cvd-collar { 0% { transform: translateY(0) scaleX(1.1) } 50% { transform: translateY(2px) scaleX(1.08) } 100% { transform: translateY(0) scaleX(1.1) } }
@keyframes cvd-shadow { 0% { transform: scale(0.98); opacity:0.3 } 50% { transform: scale(1.02); opacity:0.5 } 100% { transform: scale(0.98); opacity:0.3 } }

.scn-qualities-beauteous {
  background: linear-gradient(180deg, #b8a38d 0%, #9b8470 40%, #7d6b59 100%), radial-gradient(ellipse at 30% 50%, #c5b099 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-qualities-beauteous .sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(190,175,160,0.4) 0%, transparent 60%); animation: qb-sky 12s ease-in-out infinite alternate;
}
.scn-qualities-beauteous .figure {
  position: absolute; bottom: 20%; left: 35%; width: 100px; height: 180px; background: linear-gradient(150deg, #4a3d34 0%, #2c221c 100%); border-radius: 40% 35% 30% 35% / 50% 45% 40% 45%; transform-origin: bottom center; animation: qb-figure 5s ease-in-out infinite;
}
.scn-qualities-beauteous .hair {
  position: absolute; bottom: 70%; left: 32%; width: 120px; height: 80px; background: radial-gradient(ellipse at 40% 40%, #3b2b20 0%, #1a100a 70%); border-radius: 50% 60% 30% 40% / 60% 50% 40% 50%; filter: blur(2px); animation: qb-hair 6s ease-in-out infinite alternate;
}
.scn-qualities-beauteous .arm {
  position: absolute; bottom: 30%; left: 25%; width: 50px; height: 100px; background: linear-gradient(180deg, #4a3d34 0%, #2c221c 100%); border-radius: 40% 40% 30% 30%; transform-origin: top right; animation: qb-arm 4s ease-in-out infinite alternate;
}
.scn-qualities-beauteous .leaf1 {
  position: absolute; top: 30%; left: 50%; width: 20px; height: 10px; background: radial-gradient(ellipse at 50% 50%, #7a6b55 0%, #4a3d34 100%); border-radius: 50% 50% 30% 30%; animation: qb-leaf1 8s linear infinite;
}
.scn-qualities-beauteous .leaf2 {
  position: absolute; top: 50%; left: 60%; width: 15px; height: 8px; background: radial-gradient(ellipse at 50% 50%, #7a6b55 0%, #4a3d34 100%); border-radius: 50% 50% 30% 30%; animation: qb-leaf2 7s linear infinite reverse;
}
.scn-qualities-beauteous .wind {
  position: absolute; top: 20%; left: 0; width: 100%; height: 60%; background: repeating-linear-gradient(90deg, transparent, transparent 80px, rgba(200,185,170,0.15) 80px, rgba(200,185,170,0.15) 160px); animation: qb-wind 6s linear infinite;
}

@keyframes qb-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes qb-figure { 0%,100% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-4px) } }
@keyframes qb-hair { 0% { transform: translateX(0) rotate(3deg) } 50% { transform: translateX(6px) rotate(-2deg) } 100% { transform: translateX(-3px) rotate(4deg) } }
@keyframes qb-arm { 0% { transform: rotate(10deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(8deg) } }
@keyframes qb-leaf1 { 0% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(60px) rotate(360deg) } }
@keyframes qb-leaf2 { 0% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(-40px) rotate(-360deg) } }
@keyframes qb-wind { 0% { background-position: 0 0 } 100% { background-position: 160px 0 } }

.scn-riding-skill {
  background: linear-gradient(180deg, #b8a58d 0%, #9c8872 40%, #7f6e5b 100%), radial-gradient(ellipse at 50% 80%, #c1ad96 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-riding-skill .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #7a6b55 0%, #5a4e3d 100%); border-radius: 70% 30% 0 0 / 40% 20% 0 0; animation: rs-ground 6s ease-in-out infinite alternate;
}
.scn-riding-skill .sky {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, rgba(190,175,160,0.4) 0%, transparent 70%); animation: rs-sky 10s ease-in-out infinite alternate;
}
.scn-riding-skill .horse-body {
  position: absolute; bottom: 15%; left: 30%; width: 180px; height: 100px; background: linear-gradient(180deg, #4a3d34 0%, #2c221c 100%); border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%; transform-origin: bottom center; animation: rs-horse 0.6s ease-in-out infinite;
}
.scn-riding-skill .horse-legs {
  position: absolute; bottom: 2%; left: 30%; width: 180px; height: 60px; background: radial-gradient(ellipse at 20% 50%, #2c221c 0%, transparent 80%); filter: blur(2px); animation: rs-legs 0.6s ease-in-out infinite alternate;
}
.scn-riding-skill .rider {
  position: absolute; bottom: 55%; left: 38%; width: 60px; height: 100px; background: linear-gradient(180deg, #3b2e26 0%, #1f1813 100%); border-radius: 40% 35% 30% 40% / 50% 45% 40% 45%; transform-origin: bottom center; animation: rs-rider 0.6s ease-in-out infinite;
}
.scn-riding-skill .mane {
  position: absolute; bottom: 60%; left: 25%; width: 50px; height: 40px; background: radial-gradient(ellipse at 50% 50%, #2c221c 0%, #1a100a 100%); border-radius: 60% 40% 50% 50%; filter: blur(2px); animation: rs-mane 0.8s ease-in-out infinite alternate;
}
.scn-riding-skill .tail {
  position: absolute; bottom: 25%; left: 70%; width: 40px; height: 60px; background: radial-gradient(ellipse at 50% 50%, #2c221c 0%, #1a100a 100%); border-radius: 40% 60% 50% 50%; filter: blur(2px); animation: rs-tail 0.8s ease-in-out infinite alternate;
}
.scn-riding-skill .dust {
  position: absolute; bottom: 5%; left: 20%; width: 40px; height: 20px; background: radial-gradient(ellipse at 50% 50%, rgba(120,100,80,0.6) 0%, transparent 100%); border-radius: 50%; animation: rs-dust 1.2s ease-in-out infinite;
}

@keyframes rs-sky { 0% { opacity:0.7 } 100% { opacity:0.9 } }
@keyframes rs-ground { 0% { transform: translateY(0) } 100% { transform: translateY(2px) } }
@keyframes rs-horse { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) translateY(-1px) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(0deg) } }
@keyframes rs-legs { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(0.9) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes rs-rider { 0% { transform: rotate(0deg) } 25% { transform: rotate(1deg) translateY(-2px) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(0deg) } }
@keyframes rs-mane { 0% { transform: translateX(0) rotate(-2deg) } 100% { transform: translateX(3px) rotate(2deg) } }
@keyframes rs-tail { 0% { transform: translateX(0) rotate(2deg) } 100% { transform: translateX(-3px) rotate(-2deg) } }
@keyframes rs-dust { 0% { transform: translateY(0) scale(1); opacity:0.7 } 50% { transform: translateY(-8px) scale(1.5); opacity:0.3 } 100% { transform: translateY(0) scale(1); opacity:0.7 } }

.scn-hair-and-hat {
  background:
    linear-gradient(180deg, #2a2e3a 0%, #1b1e2a 40%, #141720 70%, #0e1018 100%),
    radial-gradient(ellipse at 50% 30%, #3a3e4a 0%, transparent 60%);
}
.scn-hair-and-hat .bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, #2a2e3a 0%, transparent 70%);
  animation: hh-bg 12s ease-in-out infinite alternate;
}
.scn-hair-and-hat .silhouette {
  position: absolute; bottom: 20%; left: 25%; width: 30%; height: 55%;
  background: linear-gradient(160deg, #1a1c24 0%, #0d0f15 100%);
  border-radius: 45% 40% 50% 50% / 60% 45% 40% 50%;
  transform: rotate(5deg);
  animation: hh-silhouette 8s ease-in-out infinite;
}
.scn-hair-and-hat .hat {
  position: absolute; bottom: 65%; left: 22%; width: 38%; height: 18%;
  background: linear-gradient(180deg, #2a2a30 0%, #1a1a20 100%);
  border-radius: 70% 60% 40% 40% / 80% 80% 40% 40%;
  clip-path: ellipse(50% 50% at 50% 50%);
  transform: rotate(-3deg);
  animation: hh-hat 15s ease-in-out infinite alternate;
}
.scn-hair-and-hat .hair-strand {
  position: absolute; width: 4%; height: 30%; background: linear-gradient(180deg, #2a2c34 0%, #161820 100%); border-radius: 50%; filter: blur(1px);
}
.scn-hair-and-hat .hair-a { bottom: 40%; left: 38%; transform: rotate(12deg); animation: hh-strand-a 6s ease-in-out infinite; }
.scn-hair-and-hat .hair-b { bottom: 35%; left: 42%; transform: rotate(-8deg); animation: hh-strand-b 7s ease-in-out infinite; }
.scn-hair-and-hat .hair-c { bottom: 38%; left: 48%; transform: rotate(3deg); animation: hh-strand-c 9s ease-in-out infinite; }
.scn-hair-and-hat .cheek-light {
  position: absolute; bottom: 35%; left: 30%; width: 8%; height: 6%;
  background: radial-gradient(circle, #5a5c66 0%, transparent 70%);
  border-radius: 50%; filter: blur(4px);
  animation: hh-cheek 4s ease-in-out infinite alternate;
}
.scn-hair-and-hat .fillet {
  position: absolute; bottom: 62%; left: 25%; width: 30%; height: 2%;
  background: linear-gradient(90deg, #3a3a44 0%, #4a4a54 50%, #3a3a44 100%);
  border-radius: 50%; filter: blur(1px);
  animation: hh-fillet 10s ease-in-out infinite;
}
@keyframes hh-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hh-silhouette { 0% { transform: rotate(4deg) scale(1); } 50% { transform: rotate(6deg) scale(1.01); } 100% { transform: rotate(4deg) scale(1); } }
@keyframes hh-hat { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes hh-strand-a { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(14deg) translateX(3px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes hh-strand-b { 0% { transform: rotate(-6deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(-2px); } 100% { transform: rotate(-6deg) translateX(0); } }
@keyframes hh-strand-c { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(5deg) translateY(2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes hh-cheek { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes hh-fillet { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

.scn-item-favours-thrown {
  background:
    linear-gradient(180deg, #161a26 0%, #1c2030 40%, #141820 100%),
    radial-gradient(ellipse at 50% 70%, #0e121c 0%, transparent 60%);
}
.scn-item-favours-thrown .bg { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 90%, #1c2030 0%, transparent 50%); animation: fav-bg 20s ease-in-out infinite; }
.scn-item-favours-thrown .river { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #0e1a24 0%, #060810 100%); border-radius: 50% 50% 0 0; animation: fav-river 15s ease-in-out infinite alternate; }
.scn-item-favours-thrown .river-bank { position: absolute; bottom: 35%; left: 10%; right: 60%; height: 10%; background: linear-gradient(180deg, #1a1e28 0%, #0e121c 100%); border-radius: 30% 70% 30% 30%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
.scn-item-favours-thrown .figure-sit { position: absolute; bottom: 30%; left: 15%; width: 20%; height: 35%; background: linear-gradient(180deg, #1e222e 0%, #0e121c 100%); border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%; transform: rotate(-5deg); animation: fav-figure 12s ease-in-out infinite; }
.scn-item-favours-thrown .hand { position: absolute; bottom: 50%; left: 30%; width: 8%; height: 10%; background: linear-gradient(180deg, #2a2e3a 0%, #1a1e2a 100%); border-radius: 50% 50% 30% 30%; transform: rotate(20deg); animation: fav-hand 6s ease-in-out infinite; }
.scn-item-favours-thrown .favour { position: absolute; border-radius: 50%; filter: blur(1px); }
.scn-item-favours-thrown .amber { bottom: 45%; left: 40%; width: 3%; height: 3%; background: radial-gradient(circle, #b88a44 0%, #7a5a2a 100%); box-shadow: 0 0 6px 2px rgba(184,138,68,0.5); animation: fav-fall-a 4s ease-in-out infinite; }
.scn-item-favours-thrown .crystal { bottom: 40%; left: 50%; width: 2.5%; height: 2.5%; background: radial-gradient(circle, #c0c8d0 0%, #808890 100%); box-shadow: 0 0 4px 1px rgba(192,200,208,0.4); animation: fav-fall-b 5s ease-in-out infinite 1s; }
.scn-item-favours-thrown .beads { bottom: 50%; left: 45%; width: 2%; height: 2%; background: radial-gradient(circle, #2a2a3a 0%, #0e0e1a 100%); box-shadow: 0 0 3px 1px rgba(42,42,58,0.6); animation: fav-fall-c 4.5s ease-in-out infinite 0.5s; }
.scn-item-favours-thrown .ripple { position: absolute; bottom: 10%; left: 40%; width: 12%; height: 3%; background: radial-gradient(ellipse at 50% 50%, rgba(100,140,180,0.3) 0%, transparent 70%); border-radius: 50%; animation: fav-ripple 3s ease-out infinite; }
@keyframes fav-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes fav-river { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes fav-figure { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes fav-hand { 0% { transform: rotate(18deg) translateX(0); } 50% { transform: rotate(22deg) translateX(4px); } 100% { transform: rotate(18deg) translateX(0); } }
@keyframes fav-fall-a { 0% { transform: translate(0, 0) scale(1); opacity: 1; } 50% { transform: translate(10px, -20px) scale(0.8); opacity: 0.8; } 100% { transform: translate(20px, 0) scale(1); opacity: 1; } }
@keyframes fav-fall-b { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(-8px, -15px) rotate(45deg); } 100% { transform: translate(-16px, 0) rotate(0deg); } }
@keyframes fav-fall-c { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(5px, -25px) scale(0.9); } 100% { transform: translate(10px, 0) scale(1); } }
@keyframes fav-ripple { 0% { transform: scale(0.5); opacity: 0.6; } 100% { transform: scale(1.5); opacity: 0; } }

.scn-folded-schedules-torn {
  background:
    linear-gradient(180deg, #121624 0%, #1a1e2c 40%, #0e121c 100%),
    radial-gradient(ellipse at 50% 90%, #0a0e16 0%, transparent 60%);
}
.scn-folded-schedules-torn .bg { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 80%, #1c2030 0%, transparent 50%); animation: sch-bg 15s ease-in-out infinite; }
.scn-folded-schedules-torn .water { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #060c14 0%, #0e1620 100%); border-radius: 30% 70% 0 0; animation: sch-water 10s ease-in-out infinite alternate; }
.scn-folded-schedules-torn .tablet { position: absolute; bottom: 25%; left: 20%; width: 15%; height: 20%; background: linear-gradient(180deg, #2a2e3c 0%, #1a1e2a 100%); border-radius: 5%; transform: rotate(10deg); box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-folded-schedules-torn .tear { position: absolute; bottom: 30%; left: 30%; width: 8%; height: 6%; background: #4a4e5a; clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%); animation: sch-tear 8s ease-in-out infinite; }
.scn-folded-schedules-torn .schedule { position: absolute; width: 12%; height: 16%; background: linear-gradient(180deg, #3a3e4a 0%, #2a2e3a 100%); border-radius: 2%; filter: drop-shadow(2px 2px 4px rgba(0,0,0,0.5)); }
.scn-folded-schedules-torn .schedule-1 { bottom: 25%; left: 45%; transform: rotate(-15deg); animation: sch-paper-a 6s ease-in-out infinite; }
.scn-folded-schedules-torn .schedule-2 { bottom: 20%; left: 55%; transform: rotate(20deg); animation: sch-paper-b 7s ease-in-out infinite 1s; }
.scn-folded-schedules-torn .ring { position: absolute; border-radius: 50%; border: 2px solid #888; width: 4%; height: 4%; background: transparent; }
.scn-folded-schedules-torn .ring-gold { bottom: 35%; left: 35%; border-color: #b89050; box-shadow: 0 0 4px 1px rgba(184,144,80,0.4); animation: sch-ring 9s ease-in-out infinite; }
.scn-folded-schedules-torn .ring-bone { bottom: 30%; left: 40%; border-color: #8a8e96; box-shadow: 0 0 4px 1px rgba(138,142,150,0.3); animation: sch-ring 9s ease-in-out infinite 2s; }
.scn-folded-schedules-torn .hand-torn { position: absolute; bottom: 40%; left: 25%; width: 10%; height: 8%; background: linear-gradient(180deg, #2a2e3c 0%, #1a1e2a 100%); border-radius: 50% 50% 30% 30%; transform: rotate(30deg); animation: sch-hand 5s ease-in-out infinite; }
@keyframes sch-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sch-water { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sch-tear { 0% { clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%); } 50% { clip-path: polygon(0 0, 100% 0, 70% 100%, 0% 100%); } 100% { clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%); } }
@keyframes sch-paper-a { 0% { transform: rotate(-13deg) translate(0,0); } 50% { transform: rotate(-17deg) translate(4px,-2px); } 100% { transform: rotate(-13deg) translate(0,0); } }
@keyframes sch-paper-b { 0% { transform: rotate(18deg) translate(0,0); } 50% { transform: rotate(22deg) translate(-3px,1px); } 100% { transform: rotate(18deg) translate(0,0); } }
@keyframes sch-ring { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(15deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes sch-hand { 0% { transform: rotate(28deg) scale(1); } 50% { transform: rotate(32deg) scale(1.02); } 100% { transform: rotate(28deg) scale(1); } }

.scn-tears-on-letters {
  background:
    linear-gradient(180deg, #141826 0%, #1a1e2c 50%, #0e121c 100%),
    radial-gradient(ellipse at 50% 20%, #202438 0%, transparent 60%);
}
.scn-tears-on-letters .bg { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, #1a1e30 0%, transparent 50%); animation: trl-bg 18s ease-in-out infinite; }
.scn-tears-on-letters .letter { position: absolute; bottom: 20%; left: 30%; width: 40%; height: 50%; background: linear-gradient(160deg, #3a3e4c 0%, #2a2e3a 100%); border-radius: 2% 4% 4% 2%; transform: rotate(-5deg); box-shadow: 0 6px 12px rgba(0,0,0,0.6); animation: trl-letter 10s ease-in-out infinite; }
.scn-tears-on-letters .letter-fold { position: absolute; bottom: 45%; left: 35%; width: 30%; height: 15%; background: linear-gradient(180deg, #4a4e5c 0%, #3a3e4a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(3deg); animation: trl-fold 8s ease-in-out infinite alternate; }
.scn-tears-on-letters .tear-drop { position: absolute; width: 3%; height: 4%; background: radial-gradient(circle, #8a9aaa 0%, #4a5a6a 70%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; filter: blur(1px); }
.scn-tears-on-letters .tear-a { bottom: 35%; left: 40%; animation: trl-tear-a 3s ease-in-out infinite; }
.scn-tears-on-letters .tear-b { bottom: 30%; left: 50%; animation: trl-tear-b 4s ease-in-out infinite 0.5s; }
.scn-tears-on-letters .tear-c { bottom: 25%; left: 45%; animation: trl-tear-c 3.5s ease-in-out infinite 1s; }
.scn-tears-on-letters .eye-close { position: absolute; bottom: 60%; left: 45%; width: 12%; height: 8%; background: linear-gradient(180deg, #1a1e2a 0%, #0e121c 100%); border-radius: 50% 50% 40% 40%; transform: rotate(-10deg); animation: trl-eye 6s ease-in-out infinite; }
.scn-tears-on-letters .eyelash { position: absolute; bottom: 63%; left: 46%; width: 8%; height: 2%; background: #2a2e3a; border-radius: 50%; transform: rotate(-15deg); animation: trl-lash 6s ease-in-out infinite alternate; }
@keyframes trl-bg { 0% { opacity: 0.75; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes trl-letter { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-4px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes trl-fold { 0% { transform: rotate(2deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.05); } 100% { transform: rotate(2deg) scaleY(1); } }
@keyframes trl-tear-a { 0% { transform: translate(0) scale(1); opacity: 0.8; } 50% { transform: translate(4px, -6px) scale(1.2); opacity: 1; } 100% { transform: translate(8px, -12px) scale(0.9); opacity: 0.5; } }
@keyframes trl-tear-b { 0% { transform: translate(0) scale(1); opacity: 0.7; } 50% { transform: translate(-3px, -5px) scale(1.1); opacity: 1; } 100% { transform: translate(-6px, -10px) scale(0.8); opacity: 0.4; } }
@keyframes trl-tear-c { 0% { transform: translate(0) scale(1); opacity: 0.6; } 50% { transform: translate(2px, -4px) scale(1.15); opacity: 0.9; } 100% { transform: translate(4px, -8px) scale(0.85); opacity: 0.3; } }
@keyframes trl-eye { 0% { transform: rotate(-8deg) scaleY(1); } 50% { transform: rotate(-12deg) scaleY(1.1); } 100% { transform: rotate(-8deg) scaleY(1); } }
@keyframes trl-lash { 0% { transform: rotate(-13deg) scaleX(1); } 50% { transform: rotate(-17deg) scaleX(1.2); } 100% { transform: rotate(-13deg) scaleX(1); } }

/* reverend-man-approaches */
.scn-reverend-man-approaches {
  background: linear-gradient(180deg, #b8bfc8 0%, #8c949c 50%, #6a7278 100%),
              radial-gradient(ellipse at 50% 100%, #5a6268 0%, transparent 70%);
}
.scn-reverend-man-approaches .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8d0d8 0%, transparent 100%);
  animation: rm-sky 12s ease-in-out infinite alternate;
}
.scn-reverend-man-approaches .field-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a8a7a 0%, #4a5a4a 100%);
  border-radius: 30% 70% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,.3);
  animation: rm-field 20s ease-in-out infinite alternate;
}
.scn-reverend-man-approaches .field-mid {
  position: absolute; bottom: 10%; left: -5%; right: -5%; height: 25%;
  background: linear-gradient(180deg, #6a7a6a 0%, #3a4a3a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.2);
  animation: rm-field 25s ease-in-out infinite alternate-reverse;
}
.scn-reverend-man-approaches .tree-left {
  position: absolute; bottom: 35%; left: 10%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rm-tree 15s ease-in-out infinite;
}
.scn-reverend-man-approaches .tree-right {
  position: absolute; bottom: 32%; right: 18%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rm-tree 18s ease-in-out infinite reverse;
}
.scn-reverend-man-approaches .figure.reverend {
  position: absolute; bottom: 22%; left: 50%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rm-walk 6s ease-in-out infinite;
}
.scn-reverend-man-approaches .cattle-a {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  animation: rm-graze 8s ease-in-out infinite;
}
.scn-reverend-man-approaches .cattle-b {
  position: absolute; bottom: 30%; left: 42%; width: 28px; height: 16px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  animation: rm-graze 9s ease-in-out infinite 2s;
}
.scn-reverend-man-approaches .mist {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 80%, rgba(200,210,220,.2) 0%, transparent 60%);
  filter: blur(40px); animation: rm-mist 30s ease-in-out infinite alternate;
}
@keyframes rm-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .75 } }
@keyframes rm-field { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.005) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes rm-tree { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1.5deg) } 100% { transform: rotate(-1deg) } }
@keyframes rm-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes rm-graze { 0% { transform: translateY(0) scaleX(1) } 30% { transform: translateY(-2px) scaleX(0.95) } 60% { transform: translateY(0) scaleX(1) } 100% { transform: translateY(-1px) scaleX(1) } }
@keyframes rm-mist { 0% { opacity: .2; transform: scale(1) } 50% { opacity: .45; transform: scale(1.05) } 100% { opacity: .25; transform: scale(0.95) } }

/* man-asks-grievance */
.scn-man-asks-grievance {
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 40%, #0a1a0a 100%),
              radial-gradient(ellipse at 50% 60%, #2a3a2a 0%, transparent 60%);
}
.scn-man-asks-grievance .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,.5);
}
.scn-man-asks-grievance .tree-trunk {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  animation: mg-trunk 20s ease-in-out infinite alternate;
}
.scn-man-asks-grievance .tree-canopy {
  position: absolute; bottom: 65%; left: 35%; right: 35%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, #3a5a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  filter: blur(3px);
  animation: mg-canopy 15s ease-in-out infinite alternate;
}
.scn-man-asks-grievance .figure.man-sitting {
  position: absolute; bottom: 22%; left: 44%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mg-sit-man 6s ease-in-out infinite;
}
.scn-man-asks-grievance .figure.woman-sitting {
  position: absolute; bottom: 20%; left: 52%; width: 16px; height: 26px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mg-sit-woman 7s ease-in-out infinite;
}
.scn-man-asks-grievance .leaf-drift.leaf-a {
  position: absolute; top: 30%; left: 20%; width: 10px; height: 10px;
  background: #5a6a4a; border-radius: 50% 0 50% 0;
  animation: mg-leaf 25s linear infinite;
}
.scn-man-asks-grievance .leaf-drift.leaf-b {
  position: absolute; top: 40%; right: 30%; width: 8px; height: 8px;
  background: #4a5a3a; border-radius: 50% 0 50% 0;
  animation: mg-leaf 30s linear infinite 5s;
}
.scn-man-asks-grievance .light-shaft {
  position: absolute; top: 0; left: 40%; right: 40%; bottom: 0;
  background: linear-gradient(180deg, rgba(180,200,180,.1) 0%, transparent 70%);
  filter: blur(10px);
  animation: mg-shaft 12s ease-in-out infinite alternate;
}
@keyframes mg-trunk { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.01) } 100% { transform: translateX(-50%) scaleY(0.99) } }
@keyframes mg-canopy { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.02) translateY(-2px) } 100% { transform: scale(0.98) translateY(0) } }
@keyframes mg-sit-man { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-1px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-1px) rotate(0) } }
@keyframes mg-sit-woman { 0% { transform: translateY(0) rotate(1deg) } 35% { transform: translateY(-1px) rotate(-1deg) } 65% { transform: translateY(0) rotate(0) } 100% { transform: translateY(-1px) rotate(1deg) } }
@keyframes mg-leaf { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(20px, 40px) rotate(90deg) } 50% { transform: translate(40px, 80px) rotate(180deg) } 75% { transform: translate(60px, 120px) rotate(270deg) } 100% { transform: translate(80px, 160px) rotate(360deg); opacity: 0 } }
@keyframes mg-shaft { 0% { opacity: .2 } 50% { opacity: .5 } 100% { opacity: .3 } }

/* maid-speaks-age-sorrow */
.scn-maid-speaks-age-sorrow {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #050510 100%),
              radial-gradient(ellipse at 50% 80%, #1a1a2a 0%, transparent 70%);
}
.scn-maid-speaks-age-sorrow .wall-left {
  position: absolute; left: 0; top: 0; bottom: 0; width: 30%;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset -8px 0 20px rgba(0,0,0,.6);
  transform: perspective(400px) rotateY(5deg);
}
.scn-maid-speaks-age-sorrow .wall-right {
  position: absolute; right: 0; top: 0; bottom: 0; width: 30%;
  background: linear-gradient(225deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 8px 0 20px rgba(0,0,0,.6);
  transform: perspective(400px) rotateY(-5deg);
}
.scn-maid-speaks-age-sorrow .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
  transform: perspective(400px) rotateX(5deg);
}
.scn-maid-speaks-age-sorrow .figure.maid {
  position: absolute; bottom: 20%; left: 40%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms-maid 8s ease-in-out infinite;
}
.scn-maid-speaks-age-sorrow .figure.father-sitting {
  position: absolute; bottom: 18%; left: 55%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms-father 10s ease-in-out infinite;
}
.scn-maid-speaks-age-sorrow .candle {
  position: absolute; bottom: 35%; left: 20%; width: 6px; height: 10px;
  background: linear-gradient(180deg, #d0a050 0%, #a08030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 15px 5px rgba(208,160,80,.4), 0 0 30px 10px rgba(208,160,80,.2);
  animation: ms-candle 4s ease-in-out infinite alternate;
}
.scn-maid-speaks-age-sorrow .shadow {
  position: absolute; bottom: 0; left: 35%; right: 35%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: ms-shadow 12s ease-in-out infinite alternate;
}
.scn-maid-speaks-age-sorrow .dust.motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 50%, rgba(200,200,200,.03) 0%, transparent 50%);
  filter: blur(2px);
  animation: ms-dust 20s linear infinite;
}
@keyframes ms-maid { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(1px) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ms-father { 0% { transform: translateY(0) rotate(1deg) } 33% { transform: translateY(-1px) rotate(-1deg) } 66% { transform: translateY(1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ms-candle { 0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 15px 5px rgba(208,160,80,.4), 0 0 30px 10px rgba(208,160,80,.2); } 50% { transform: scaleY(1.05) scaleX(1.02); box-shadow: 0 0 20px 8px rgba(208,160,80,.5), 0 0 40px 15px rgba(208,160,80,.3); } 100% { transform: scaleY(0.95) scaleX(0.98); box-shadow: 0 0 12px 3px rgba(208,160,80,.35), 0 0 25px 8px rgba(208,160,80,.15); } }
@keyframes ms-shadow { 0% { opacity: .4; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(1.1) } 100% { opacity: .35; transform: scaleX(0.9) } }
@keyframes ms-dust { 0% { background-position: 0% 0%; } 50% { background-position: 20% 30%; } 100% { background-position: 40% 60%; } }

/* youthful-suit-remembered */
.scn-youthful-suit-remembered {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 60%, #0a0a1e 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 50%);
}
.scn-youthful-suit-remembered .sky-evening {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3a5e 0%, #1a1a3a 100%);
  animation: ys-sky 15s ease-in-out infinite alternate;
}
.scn-youthful-suit-remembered .horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: 0 -4px 15px rgba(0,0,0,.3);
}
.scn-youthful-suit-remembered .figure.youth-silhouette {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ys-youth 9s ease-in-out infinite;
}
.scn-youthful-suit-remembered .figure.maid-memory {
  position: absolute; bottom: 28%; left: 52%; width: 16px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ys-maid 11s ease-in-out infinite 2s;
  opacity: .6;
}
.scn-youthful-suit-remembered .rose-petal.petal-a {
  position: absolute; top: 20%; left: 30%; width: 12px; height: 12px;
  background: #b87878; border-radius: 50% 0 50% 0;
  animation: ys-petal 30s linear infinite;
}
.scn-youthful-suit-remembered .rose-petal.petal-b {
  position: absolute; top: 15%; left: 50%; width: 10px; height: 10px;
  background: #a06868; border-radius: 50% 0 50% 0;
  animation: ys-petal 35s linear infinite 5s;
}
.scn-youthful-suit-remembered .rose-petal.petal-c {
  position: absolute; top: 25%; right: 25%; width: 14px; height: 14px;
  background: #c08888; border-radius: 50% 0 50% 0;
  animation: ys-petal 40s linear infinite 10s;
}
.scn-youthful-suit-remembered .fade-line {
  position: absolute; top: 0; left: 0; right: 0; height: 5%;
  background: linear-gradient(180deg, rgba(10,10,30,.8) 0%, transparent 100%);
  animation: ys-fade 8s ease-in-out infinite alternate;
}
@keyframes ys-sky { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes ys-youth { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(1px) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ys-maid { 0% { transform: translateY(0) rotate(1deg) } 30% { transform: translateY(-2px) rotate(-2deg) } 60% { transform: translateY(1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ys-petal { 0% { transform: translate(0,0) rotate(0deg); opacity: .8 } 25% { transform: translate(-20px, 40px) rotate(90deg); opacity: .6 } 50% { transform: translate(-40px, 80px) rotate(180deg); opacity: .4 } 75% { transform: translate(-60px, 120px) rotate(270deg); opacity: .2 } 100% { transform: translate(-80px, 160px) rotate(360deg); opacity: 0 } }
@keyframes ys-fade { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }

/* YOUNG-MAN-TEARS */
.scn-Young-man-tears {
  background:
    linear-gradient(180deg, #2a2a2a 0%, #3a3a3a 50%, #4a4a4a 100%),
    radial-gradient(ellipse at 50% 40%, #4a4a4a 0%, transparent 70%);
}
.scn-Young-man-tears .head-silhouette {
  position:absolute; top:10%; left:25%; width:40%; height:55%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  animation: yt-head 10s ease-in-out infinite alternate;
}
.scn-Young-man-tears .eye-socket {
  position:absolute; top:28%; left:50%; width:12%; height:8%;
  background: #0a0a0a; border-radius:50%;
  transform: translate(-50%, -50%);
  box-shadow: inset 0 2px 4px #333;
  animation: yt-eye 6s ease-in-out infinite;
}
.scn-Young-man-tears .tear-stream {
  position:absolute; top:36%; left:50%; width:4%; height:30%;
  background: linear-gradient(180deg, rgba(180,200,230,0.8) 0%, rgba(180,200,230,0.2) 100%);
  border-radius: 50px;
  transform: translateX(-50%);
  animation: yt-stream 4s ease-in-out infinite;
}
.scn-Young-man-tears .tear-drop {
  position:absolute; width:3%; height:6%;
  background: radial-gradient(circle, #b0c8f0 0%, #8098c0 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: yt-drop 2.5s ease-in-out infinite;
}
.scn-Young-man-tears .drop-1 { top:45%; left:49%; }
.scn-Young-man-tears .drop-2 { top:55%; left:51%; animation-delay:1.2s; }
.scn-Young-man-tears .rose-petal {
  position:absolute; bottom:22%; left:60%; width:8%; height:5%;
  background: radial-gradient(circle, #c87878 0%, #a04848 100%);
  border-radius: 50% 0 50% 0;
  transform: rotate(-20deg);
  filter: blur(1px);
  animation: yt-petal 8s linear infinite;
}
.scn-Young-man-tears .mote {
  position:absolute; top:15%; right:20%; width:2%; height:2%;
  background: rgba(200,220,240,0.4);
  border-radius:50%;
  filter: blur(3px);
  animation: yt-mote 15s ease-in-out infinite;
}
@keyframes yt-head { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes yt-eye { 0%,100%{opacity:1} 50%{opacity:0.7} }
@keyframes yt-stream { 0%{height:30%;opacity:0.8} 50%{height:35%;opacity:1} 100%{height:30%;opacity:0.8} }
@keyframes yt-drop { 0%{transform:translateY(0) scale(1);opacity:1} 50%{transform:translateY(15px) scale(1.2);opacity:0.8} 100%{transform:translateY(30px) scale(0.8);opacity:0.2} }
@keyframes yt-petal { 0%{transform:translateX(0) rotate(-20deg)} 100%{transform:translateX(30vw) rotate(30deg)} }
@keyframes yt-mote { 0%,100%{opacity:0.3;transform:translateY(0)} 50%{opacity:0.6;transform:translateY(-10px)} }

/* HELL-OF-WITCHCRAFT-IN-TEAR */
.scn-Hell-of-witchcraft-in-tear {
  background:
    linear-gradient(180deg, #10101a 0%, #1a1a2e 40%, #2a2a3e 100%),
    radial-gradient(ellipse at 50% 50%, #3a3a5e 0%, transparent 70%);
}
.scn-Hell-of-witchcraft-in-tear .tear-orb {
  position:absolute; top:25%; left:50%; width:30%; height:40%;
  background: radial-gradient(circle at 40% 40%, #4a5a7a 0%, #1a2a4a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translate(-50%, -10%);
  box-shadow: 0 0 60px rgba(30,60,100,0.6);
  animation: witch-orb 12s ease-in-out infinite alternate;
}
.scn-Hell-of-witchcraft-in-tear .orb-swirl {
  position:absolute; top:30%; left:50%; width:25%; height:30%;
  background: conic-gradient(from 0deg, #2a3a5a, #4a5a7a, #2a3a5a);
  border-radius:50%;
  transform: translate(-50%, -10%) scale(0.8);
  filter: blur(6px);
  mix-blend-mode: overlay;
  animation: witch-swirl 20s linear infinite;
}
.scn-Hell-of-witchcraft-in-tear .rocky-heart {
  position:absolute; bottom:32%; left:40%; width:20%; height:20%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1a0a 100%);
  clip-path: polygon(50% 0%, 80% 20%, 100% 60%, 70% 90%, 30% 90%, 0% 60%, 20% 20%);
  transform: rotate(25deg);
  animation: witch-heart 8s ease-in-out infinite;
}
.scn-Hell-of-witchcraft-in-tear .heart-fire {
  position:absolute; bottom:36%; left:45%; width:8%; height:12%;
  background: radial-gradient(circle, #ff8040 0%, #c04020 70%);
  border-radius: 50 50 20 20;
  filter: blur(3px);
  animation: witch-fire 2s ease-in-out infinite alternate;
}
.scn-Hell-of-witchcraft-in-tear .wicked-spark {
  position:absolute; top:30%; right:30%; width:2%; height:2%;
  background: #ffaa60;
  border-radius:50%;
  box-shadow: 0 0 8px #ff8040;
  animation: witch-spark 1.5s ease-in-out infinite;
}
.scn-Hell-of-witchcraft-in-tear .small-orb {
  position:absolute; top:20%; left:30%; width:10%; height:12%;
  background: radial-gradient(circle, #5a6a8a 0%, #2a3a5a 100%);
  border-radius:50%;
  filter: blur(2px);
  animation: witch-small 15s ease-in-out infinite alternate;
}
@keyframes witch-orb { 0%{transform:translate(-50%, -10%) scale(1)} 50%{transform:translate(-50%, -12%) scale(1.05)} 100%{transform:translate(-50%, -8%) scale(0.95)} }
@keyframes witch-swirl { 0%{transform:translate(-50%, -10%) rotate(0deg)} 100%{transform:translate(-50%, -10%) rotate(360deg)} }
@keyframes witch-heart { 0%{transform:rotate(25deg) scale(1)} 50%{transform:rotate(35deg) scale(1.1)} 100%{transform:rotate(25deg) scale(1)} }
@keyframes witch-fire { 0%{height:12%;opacity:0.8} 50%{height:16%;opacity:1} 100%{height:10%;opacity:0.6} }
@keyframes witch-spark { 0%{opacity:0} 50%{opacity:1} 100%{opacity:0} }
@keyframes witch-small { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-10px) scale(1.2)} 100%{transform:translateY(0) scale(1)} }

/* PASSION-CRAFT-RESOLVED */
.scn-Passion-craft-resolved {
  background:
    linear-gradient(180deg, #2a2a2a 0%, #3a3a3a 40%, #4a4a4a 100%),
    radial-gradient(ellipse at 50% 20%, #4a4a4a 0%, transparent 70%);
}
.scn-Passion-craft-resolved .figure-torso {
  position:absolute; bottom:25%; left:40%; width:20%; height:40%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  animation: pcr-torso 10s ease-in-out infinite alternate;
}
.scn-Passion-craft-resolved .figure-head {
  position:absolute; top:30%; left:43%; width:14%; height:18%;
  background: #1a1a1a;
  border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%;
  transform: rotate(-5deg);
  animation: pcr-head 6s ease-in-out infinite;
}
.scn-Passion-craft-resolved .white-stole {
  position:absolute; top:20%; left:30%; width:40%; height:50%;
  background: linear-gradient(135deg, rgba(255,255,255,0.8) 0%, rgba(200,200,200,0.3) 100%);
  border-radius: 30% 70% 50% 50% / 30% 60% 40% 70%;
  clip-path: polygon(20% 0, 80% 10%, 90% 60%, 60% 90%, 10% 70%);
  transform: rotate(-15deg) scale(0.9);
  animation: pcr-stole 10s ease-in-out infinite;
}
.scn-Passion-craft-resolved .stole-fold {
  position:absolute; top:30%; left:35%; width:15%; height:8%;
  background: rgba(255,255,255,0.4);
  border-radius:50%;
  filter: blur(2px);
  animation: pcr-fold 7s ease-in-out infinite alternate;
}
.scn-Passion-craft-resolved .melting-drop {
  position:absolute; bottom:30%; left:45%; width:6%; height:8%;
  background: radial-gradient(circle, #b0c8f0 0%, #7080a0 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: pcr-melt 3s ease-in-out infinite;
}
.scn-Passion-craft-resolved .tear-remnant {
  position:absolute; bottom:20%; left:42%; width:4%; height:5%;
  background: radial-gradient(circle, #a0b8e0 0%, #7080a0 100%);
  border-radius:50%;
  filter: blur(1px);
  animation: pcr-remnant 5s ease-in-out infinite alternate;
}
@keyframes pcr-torso { 0%{transform:translateX(0)} 50%{transform:translateX(3px)} 100%{transform:translateX(-2px)} }
@keyframes pcr-head { 0%{transform:rotate(-5deg)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-5deg)} }
@keyframes pcr-stole { 0%{transform:rotate(-15deg) scale(0.9)} 50%{transform:rotate(-25deg) scale(0.95)} 100%{transform:rotate(-15deg) scale(0.9)} }
@keyframes pcr-fold { 0%{opacity:0.4;transform:scaleY(1)} 50%{opacity:0.6;transform:scaleY(0.5)} 100%{opacity:0.4;transform:scaleY(1)} }
@keyframes pcr-melt { 0%{transform:translateY(0) scale(1);opacity:1} 50%{transform:translateY(20px) scale(1.1);opacity:0.7} 100%{transform:translateY(40px) scale(0.5);opacity:0} }
@keyframes pcr-remnant { 0%{opacity:0.2;transform:translateY(0)} 50%{opacity:0.6;transform:translateY(-5px)} 100%{opacity:0.2;transform:translateY(0)} }

/* SUBTLE-MATTER-CAUTELS */
.scn-Subtle-matter-cautels {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 50%, #3a3a3a 100%),
    radial-gradient(ellipse at 50% 50%, #3a3a3a 0%, transparent 60%);
}
.scn-Subtle-matter-cautels .mask-blush {
  position:absolute; top:20%; left:30%; width:40%; height:45%;
  background: radial-gradient(circle at 50% 60%, #c8553d 0%, #a04020 60%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.5;
  mix-blend-mode: multiply;
  animation: smc-blush 4s ease-in-out infinite alternate;
}
.scn-Subtle-matter-cautels .mask-pale {
  position:absolute; top:20%; left:30%; width:40%; height:45%;
  background: radial-gradient(circle at 50% 60%, #d0d0d0 0%, #a0a0a0 60%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.3;
  mix-blend-mode: screen;
  animation: smc-pale 6s ease-in-out infinite alternate;
}
.scn-Subtle-matter-cautels .mask-weep {
  position:absolute; top:20%; left:30%; width:40%; height:45%;
  background: radial-gradient(circle at 50% 60%, #6a8aba 0%, #4a6a9a 60%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.4;
  mix-blend-mode: overlay;
  animation: smc-weep 5s ease-in-out infinite alternate;
}
.scn-Subtle-matter-cautels .eye-left {
  position:absolute; top:30%; left:40%; width:6%; height:8%;
  background: #0a0a0a;
  border-radius: 50%;
  transform: rotate(10deg);
  animation: smc-eyeleft 3s ease-in-out infinite;
}
.scn-Subtle-matter-cautels .eye-right {
  position:absolute; top:30%; right:40%; width:6%; height:8%;
  background: #0a0a0a;
  border-radius: 50%;
  transform: rotate(-10deg);
  animation: smceyeright 3s ease-in-out infinite;
}
.scn-Subtle-matter-cautels .mouth-zone {
  position:absolute; top:46%; left:42%; width:16%; height:4%;
  background: #1a1a1a;
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  animation: smc-mouth 2s ease-in-out infinite alternate;
}
.scn-Subtle-matter-cautels .cheek-flash {
  position:absolute; top:38%; left:50%; width:20%; height:10%;
  background: radial-gradient(circle, rgba(200,80,60,0.3), transparent);
  border-radius:50%;
  filter: blur(8px);
  animation: smc-flash 8s ease-in-out infinite;
}
@keyframes smc-blush { 0%{opacity:0.3;transform:scale(0.95)} 50%{opacity:0.6;transform:scale(1.05)} 100%{opacity:0.2;transform:scale(0.95)} }
@keyframes smc-pale { 0%{opacity:0.2;transform:scale(1)} 50%{opacity:0.5;transform:scale(1.02)} 100%{opacity:0.2;transform:scale(1)} }
@keyframes smc-weep { 0%{opacity:0.3;transform:translateY(0)} 50%{opacity:0.6;transform:translateY(-5px)} 100%{opacity:0.3;transform:translateY(0)} }
@keyframes smc-eyeleft { 0%{transform:rotate(10deg) scale(1)} 50%{transform:rotate(5deg) scale(0.8)} 100%{transform:rotate(10deg) scale(1)} }
@keyframes smceyeright { 0%{transform:rotate(-10deg) scale(1)} 50%{transform:rotate(-5deg) scale(0.8)} 100%{transform:rotate(-10deg) scale(1)} }
@keyframes smc-mouth { 0%{height:4%;opacity:0.8} 50%{height:6%;opacity:1} 100%{height:3%;opacity:0.6} }
@keyframes smc-flash { 0%{opacity:0;transform:scale(0.5)} 50%{opacity:0.4;transform:scale(1.2)} 100%{opacity:0;transform:scale(0.5)} }

.scn-item-tributes-wounded {
  background:
    linear-gradient(180deg, #4a3b2c 0%, #6b5540 30%, #7d654c 60%, #5a4534 100%),
    radial-gradient(ellipse at 50% 80%, #3d2b1e 0%, transparent 70%);
}

.scn-item-tributes-wounded .bg-cloth {
  position: absolute; inset: 10% 5% 20% 5%; background: linear-gradient(135deg, #5a3e2b, #3d2b1e 60%);
  border-radius: 30% 70% 60% 40% / 40% 50% 50% 60%; box-shadow: inset 0 0 40px rgba(0,0,0,.6);
  animation: tw-cloth 12s ease-in-out infinite alternate;
}
.scn-item-tributes-wounded .pile-pearls {
  position: absolute; bottom: 25%; left: 30%; width: 100px; height: 60px;
  background: radial-gradient(circle at 40% 40%, #f5f0e8 0%, #d4c9b8 40%, #a89a87 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 50%; box-shadow: 0 4px 12px rgba(0,0,0,.3), inset 0 0 10px rgba(255,255,200,.2);
  animation: tw-pearls 8s ease-in-out infinite;
}
.scn-item-tributes-wounded .ruby-cluster {
  position: absolute; bottom: 28%; left: 45%; width: 50px; height: 35px;
  background: radial-gradient(circle at 30% 30%, #c8553d 0%, #a0361a 60%, #6a1a0a 100%);
  border-radius: 40% 60% 50% 50% / 50% 40% 60% 50%; box-shadow: 0 2px 8px rgba(100,30,10,.5), inset 0 0 12px #ff6a4a;
  animation: tw-ruby 5s ease-in-out infinite alternate;
}
.scn-item-tributes-wounded .shadow-hand {
  position: absolute; bottom: 22%; right: 25%; width: 35px; height: 60px;
  background: linear-gradient(180deg, rgba(20,15,10,.8) 0%, rgba(10,8,5,.9) 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; filter: blur(2px);
  animation: tw-hand 10s ease-in-out infinite;
}
.scn-item-tributes-wounded .gleam {
  position: absolute; top: 35%; left: 40%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(255,230,180,.6) 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px); animation: tw-gleam 6s ease-in-out infinite;
}
.scn-item-tributes-wounded .vignette {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(20,15,10,.5) 80%, rgba(10,8,5,.8) 100%);
  pointer-events: none;
}

@keyframes tw-cloth { 0%,100% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } }
@keyframes tw-pearls { 0%,100% { transform: translateY(0) scale(1); opacity:.9; } 50% { transform: translateY(-5px) scale(1.05); opacity:1; } }
@keyframes tw-ruby { 0% { transform: scale(1) rotate(-5deg); } 50% { transform: scale(1.1) rotate(3deg); } 100% { transform: scale(.95) rotate(0); } }
@keyframes tw-hand { 0% { transform: translateY(0) rotate(-15deg); } 50% { transform: translateY(-10px) rotate(-10deg); } 100% { transform: translateY(4px) rotate(-20deg); } }
@keyframes tw-gleam { 0%,100% { opacity:.3; transform: scale(1); } 50% { opacity:.8; transform: scale(1.5); } }

/* ---- item-talents-of-hair ---- */
.scn-item-talents-of-hair {
  background:
    linear-gradient(180deg, #4e3d2f 0%, #6b5540 40%, #7a624b 70%, #5a4534 100%),
    radial-gradient(ellipse at 50% 30%, #6b5540 0%, transparent 60%);
}
.scn-item-talents-of-hair .table-top {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #5a3e2b 0%, #3d2b1e 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 25px rgba(0,0,0,.6);
  animation: th-table 15s ease-in-out infinite alternate;
}
.scn-item-talents-of-hair .lock-hair {
  position: absolute; width: 12px; height: 50px; bottom: 30%;
  background: linear-gradient(180deg, #8a6e4a 0%, #5a3e2b 70%, #2b1a0e 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 20% 20%; transform-origin: bottom center;
  filter: blur(0.5px);
}
.scn-item-talents-of-hair .lock-hair.a { left: 25%; animation: th-hair-a 8s ease-in-out infinite; }
.scn-item-talents-of-hair .lock-hair.b { left: 38%; animation: th-hair-b 10s ease-in-out infinite; }
.scn-item-talents-of-hair .lock-hair.c { left: 52%; animation: th-hair-c 7s ease-in-out infinite; }
.scn-item-talents-of-hair .metal-thread {
  position: absolute; bottom: 38%; left: 30%; width: 60px; height: 4px;
  background: linear-gradient(90deg, transparent, #b89870 20%, #d4b89a 50%, #b89870 80%, transparent);
  border-radius: 2px; filter: blur(1px);
  animation: th-thread 20s linear infinite;
}
.scn-item-talents-of-hair .gem-drop {
  position: absolute; bottom: 40%; left: 35%; width: 10px; height: 10px;
  background: radial-gradient(circle, #c8a040 0%, #8a6e20 100%); border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,160,64,.5);
  animation: th-gem 6s ease-in-out infinite alternate;
}
.scn-item-talents-of-hair .sonnet-roll {
  position: absolute; bottom: 22%; right: 20%; width: 40px; height: 25px;
  background: linear-gradient(180deg, #d4c8b0 0%, #b8a88a 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: th-roll 12s ease-in-out infinite;
}
@keyframes th-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes th-hair-a { 0%,100% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.05); } }
@keyframes th-hair-b { 0%,100% { transform: rotate(2deg) scaleY(1); } 50% { transform: rotate(-8deg) scaleY(1.1); } }
@keyframes th-hair-c { 0%,100% { transform: rotate(0) scaleY(1); } 50% { transform: rotate(10deg) scaleY(0.95); } }
@keyframes th-thread { 0% { transform: translateX(-20px); opacity:.6; } 50% { transform: translateX(20px); opacity:1; } 100% { transform: translateX(-20px); opacity:.6; } }
@keyframes th-gem { 0% { transform: scale(1) rotate(0deg); } 100% { transform: scale(1.3) rotate(30deg); } }
@keyframes th-roll { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } }

/* ---- items-diamond-emerald ---- */
.scn-items-diamond-emerald {
  background:
    linear-gradient(180deg, #4a3e35 0%, #5c4a3a 30%, #6e5a48 60%, #4a3e35 100%),
    radial-gradient(ellipse at 50% 20%, #5c4a3a 0%, transparent 60%);
}
.scn-items-diamond-emerald .velvet-tray {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 35%;
  background: linear-gradient(180deg, #3d2b1e 0%, #2a1a0e 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
  animation: de-tray 20s ease-in-out infinite alternate;
}
.scn-items-diamond-emerald .diamond {
  position: absolute; bottom: 25%; left: 25%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #f0f4f8 0%, #c8d0d8 40%, #a0a8b0 100%);
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); 
  filter: blur(0.5px) drop-shadow(0 0 6px rgba(200,220,255,.3));
  animation: de-diamond 6s ease-in-out infinite;
}
.scn-items-diamond-emerald .emerald {
  position: absolute; bottom: 28%; left: 38%; width: 25px; height: 18px;
  background: radial-gradient(circle at 30% 30%, #3a6b3a 0%, #1a3a1a 100%);
  border-radius: 40% 60% 40% 60% / 50% 40% 60% 50%; box-shadow: 0 0 8px rgba(40,80,40,.4);
  animation: de-emerald 8s ease-in-out infinite alternate;
}
.scn-items-diamond-emerald .sapphire {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 15px;
  background: linear-gradient(135deg, #4a6a8a 0%, #2a4a6a 100%);
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  filter: drop-shadow(0 0 4px rgba(60,80,120,.5));
  animation: de-sapphire 7s ease-in-out infinite;
}
.scn-items-diamond-emerald .opal {
  position: absolute; bottom: 24%; left: 62%; width: 22px; height: 16px;
  background: radial-gradient(circle, #f0e8d8 0%, #c8b8a0 40%, #a08a70 100%);
  border-radius: 50% 40% 50% 40% / 60% 50% 40% 50%; 
  box-shadow: 0 0 10px rgba(200,180,150,.3);
  animation: de-opal 9s ease-in-out infinite alternate;
}
.scn-items-diamond-emerald .tiny-sparkle {
  position: absolute; top: 20%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(255,255,240,.8) 0%, transparent 80%);
  border-radius: 50%; filter: blur(1px);
  animation: de-sparkle 3s ease-in-out infinite;
}
.scn-items-diamond-emerald .glass-loupe {
  position: absolute; bottom: 15%; right: 15%; width: 40px; height: 50px;
  background: linear-gradient(135deg, rgba(200,210,220,.4) 0%, rgba(160,170,180,.2) 100%);
  border: 2px solid #8a7a6a; border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 8px rgba(255,255,255,.2);
  animation: de-loupe 15s ease-in-out infinite;
}
@keyframes de-tray { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } }
@keyframes de-diamond { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } }
@keyframes de-emerald { 0% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(-4px) rotate(3deg); } }
@keyframes de-sapphire { 0%,100% { transform: rotate(0) scale(1); opacity:.8; } 50% { transform: rotate(15deg) scale(1.15); opacity:1; } }
@keyframes de-opal { 0% { transform: scale(1) rotate(5deg); } 100% { transform: scale(1.1) rotate(-5deg); } }
@keyframes de-sparkle { 0%,100% { opacity:.2; transform: scale(1); } 50% { opacity:1; transform: scale(2); } }
@keyframes de-loupe { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(5deg) translateX(-8px); } 100% { transform: rotate(0deg) translateX(0); } }

/* ---- treasured-trophies-offered ---- */
.scn-treasured-trophies-offered {
  background:
    linear-gradient(180deg, #4a3828 0%, #5c4834 30%, #6e5840 60%, #5a4530 100%),
    radial-gradient(ellipse at 50% 20%, #6e5840 0%, transparent 60%);
}
.scn-treasured-trophies-offered .altar-stone {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.7);
  animation: to-altar 20s ease-in-out infinite alternate;
}
.scn-treasured-trophies-offered .golden-crown {
  position: absolute; bottom: 25%; left: 25%; width: 50px; height: 35px;
  background: linear-gradient(135deg, #d4b040 0%, #b89020 50%, #8a6a10 100%);
  clip-path: polygon(20% 100%, 35% 30%, 50% 0%, 65% 30%, 80% 100%);
  filter: drop-shadow(0 2px 6px rgba(180,140,30,.4));
  animation: to-crown 10s ease-in-out infinite;
}
.scn-treasured-trophies-offered .silver-cup {
  position: absolute; bottom: 22%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #d0d4d8 0%, #a0a8b0 50%, #808890 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%; 
  box-shadow: inset 0 -4px 6px rgba(255,255,255,.3);
  animation: to-cup 8s ease-in-out infinite alternate;
}
.scn-treasured-trophies-offered .heart-offering {
  position: absolute; bottom: 28%; left: 60%; width: 28px; height: 24px;
  background: linear-gradient(135deg, #b87878 0%, #8a5050 100%);
  clip-path: polygon(50% 15%, 65% 0%, 85% 15%, 100% 35%, 50% 100%, 0% 35%, 15% 15%, 35% 0%);
  filter: drop-shadow(0 0 4px rgba(184,120,120,.3));
  animation: to-heart 6s ease-in-out infinite;
}
.scn-treasured-trophies-offered .ribbon-coil {
  position: absolute; bottom: 20%; left: 35%; width: 45px; height: 8px;
  background: linear-gradient(90deg, #8a6a40, #c8a060, #8a6a40);
  border-radius: 4px; filter: blur(1px);
  animation: to-ribbon 12s linear infinite;
}
.scn-treasured-trophies-offered .flame-flicker {
  position: absolute; top: 15%; left: 50%; width: 14px; height: 25px;
  background: radial-gradient(ellipse at 50% 80%, #ffc060 0%, #d08030 60%, transparent 100%);
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  animation: to-flame 3s ease-in-out infinite alternate;
}
.scn-treasured-trophies-offered .shadow-veil {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 70%, transparent 30%, rgba(20,15,10,.6) 80%, rgba(10,8,5,.9) 100%);
  pointer-events: none;
}
@keyframes to-altar { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.01); } }
@keyframes to-crown { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.05); } }
@keyframes to-cup { 0% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(-5px) rotate(3deg); } }
@keyframes to-heart { 0%,100% { transform: scale(1) rotate(0); } 50% { transform: scale(1.1) rotate(5deg); } }
@keyframes to-ribbon { 0% { transform: translateX(-20px) rotate(0); opacity:.7; } 50% { transform: translateX(20px) rotate(10deg); opacity:1; } 100% { transform: translateX(-20px) rotate(0); opacity:.7; } }
@keyframes to-flame { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-8px) scaleX(1.2); } 100% { transform: translateY(2px) scaleX(.9); } }
/* end */

/* knew-his-beguiling – dark overcast, betrayal */
.scn-knew-his-beguiling { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0e0e1a 100%), radial-gradient(ellipse at 50% 20%, #3a3a5a 0%, transparent 70%); }
.scn-knew-his-beguiling .figure { position:absolute; bottom:15%; left:50%; width:50px; height:80px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a15 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: khb-figure 6s ease-in-out infinite; }
.scn-knew-his-beguiling .vines { position:absolute; bottom:20%; left:10%; width:80%; height:60%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 15px, #2a3a1a 15px, #1a2a0a 20px); border-radius: 50%; filter: blur(2px) drop-shadow(0 0 4px #1a3a1a); animation: khb-vines 12s linear infinite; }
.scn-knew-his-beguiling .mask { position:absolute; bottom:45%; left:30%; width:22px; height:28px; background: radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40%; transform: rotate(10deg); box-shadow: 0 2px 8px rgba(0,0,0,.6); animation: khb-mask 4s ease-in-out infinite; }
.scn-knew-his-beguiling .eye { position:absolute; bottom:50%; left:35%; width:6px; height:6px; background: radial-gradient(circle, #b0a070 0%, #504030 80%); border-radius: 50%; box-shadow: 0 0 12px 3px #604030; animation: khb-eye 3s ease-in-out infinite alternate; }
.scn-knew-his-beguiling .mist-a { position:absolute; top:10%; left:0; width:120px; height:30px; background: linear-gradient(90deg, transparent, rgba(200,200,220,0.15), transparent); border-radius: 50%; filter: blur(10px); animation: khb-mist-a 20s linear infinite; }
.scn-knew-his-beguiling .mist-b { position:absolute; top:60%; right:-20px; width:100px; height:20px; background: linear-gradient(90deg, transparent, rgba(180,180,200,0.1), transparent); border-radius: 50%; filter: blur(8px); animation: khb-mist-b 25s linear infinite reverse; }
@keyframes khb-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes khb-vines { 0% { transform: translateX(0) scale(1); opacity:.6; } 50% { transform: translateX(10px) scale(1.05); opacity:.8; } 100% { transform: translateX(0) scale(1); opacity:.6; } }
@keyframes khb-mask { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes khb-eye { 0% { opacity:.7; box-shadow: 0 0 8px 2px #604030; } 100% { opacity:1; box-shadow: 0 0 16px 6px #806040; } }
@keyframes khb-mist-a { 0% { transform: translateX(0); opacity:.5; } 50% { transform: translateX(80vw); opacity:.8; } 100% { transform: translateX(0); opacity:.5; } }
@keyframes khb-mist-b { 0% { transform: translateX(0); opacity:.3; } 50% { transform: translateX(-60vw); opacity:.6; } 100% { transform: translateX(0); opacity:.3; } }

/* siege-of-the-city – dark overcast, siege */
.scn-siege-of-the-city { background: linear-gradient(180deg, #2d2d40 0%, #1a1a2e 50%, #0f0f1f 100%), radial-gradient(ellipse at 50% 80%, #3a3a4e 0%, transparent 60%); }
.scn-siege-of-the-city .wall { position:absolute; bottom:25%; left:10%; width:80%; height:30%; background: linear-gradient(90deg, #4a4a5a 0%, #3a3a4a 50%, #2a2a3a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); animation: soc-wall 3s ease-in-out infinite alternate; }
.scn-siege-of-the-city .tower { position:absolute; bottom:25%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 10px rgba(0,0,0,.6); animation: soc-tower 2s ease-in-out infinite; }
.scn-siege-of-the-city .ram { position:absolute; bottom:18%; left:65%; width:80px; height:12px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 100%); border-radius: 0 6px 6px 0; transform-origin: left center; animation: soc-ram 4s ease-in-out infinite; }
.scn-siege-of-the-city .figure { position:absolute; bottom:45%; left:45%; width:14px; height:24px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a15 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: soc-figure 5s ease-in-out infinite; }
.scn-siege-of-the-city .flag { position:absolute; bottom:52%; left:44%; width:8px; height:16px; background: linear-gradient(180deg, #7a3a2a 0%, #5a2a1a 100%); border-radius: 0 2px 2px 0; animation: soc-flag 2s ease-in-out infinite; }
.scn-siege-of-the-city .smoke-a { position:absolute; top:15%; left:50%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, rgba(200,200,220,0.2), transparent); border-radius: 50%; filter: blur(6px); animation: soc-smoke-a 7s ease-in-out infinite; }
.scn-siege-of-the-city .smoke-b { position:absolute; top:10%; left:30%; width:20px; height:50px; background: radial-gradient(ellipse at 50% 100%, rgba(180,180,200,0.15), transparent); border-radius: 50%; filter: blur(8px); animation: soc-smoke-b 9s ease-in-out infinite reverse; }
@keyframes soc-wall { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes soc-tower { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes soc-ram { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-8px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes soc-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes soc-flag { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }
@keyframes soc-smoke-a { 0% { transform: translateY(0) scale(1); opacity:.3; } 50% { transform: translateY(-30px) scale(1.3); opacity:.6; } 100% { transform: translateY(0) scale(1); opacity:.3; } }
@keyframes soc-smoke-b { 0% { transform: translateY(0) scaleX(1); opacity:.2; } 50% { transform: translateY(-20px) scaleX(1.5); opacity:.5; } 100% { transform: translateY(0) scaleX(1); opacity:.2; } }

/* young-man-errors-blood – warm overcast, passion */
.scn-young-man-errors-blood { background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 40%, #2a1a10 100%), radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%); }
.scn-young-man-errors-blood .figure { position:absolute; bottom:20%; left:50%; width:40px; height:70px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%) scaleX(0.9); animation: yeb-figure 8s ease-in-out infinite; }
.scn-young-man-errors-blood .heart { position:absolute; bottom:35%; left:55%; width:16px; height:14px; background: radial-gradient(ellipse at 50% 50%, #c8553d 0%, #8a2a1a 70%); border-radius: 50% 50% 0 0 / 60% 60% 40% 40%; transform: rotate(45deg); box-shadow: 0 0 18px 6px #a04030; animation: yeb-heart 2s ease-in-out infinite; }
.scn-young-man-errors-blood .veins { position:absolute; bottom:15%; left:0; width:100%; height:50%; background: repeating-linear-gradient(0deg, transparent 0px, transparent 10px, #7a4a3a 10px, #5a2a1a 12px), repeating-linear-gradient(90deg, transparent 0px, transparent 20px, #6a3a2a 20px, #4a1a0a 22px); border-radius: 20%; opacity:.6; animation: yeb-veins 15s linear infinite; }
.scn-young-man-errors-blood .petal-a { position:absolute; top:10%; left:20%; width:10px; height:14px; background: linear-gradient(180deg, #b87858 0%, #8a5030 100%); border-radius: 50% 0 50% 0; transform: rotate(20deg); animation: yeb-petal 6s ease-in-out infinite; }
.scn-young-man-errors-blood .petal-b { position:absolute; top:20%; left:60%; width:12px; height:16px; background: linear-gradient(180deg, #c86848 0%, #9a3820 100%); border-radius: 50% 0 50% 0; transform: rotate(-30deg); animation: yeb-petal-b 7s ease-in-out infinite; }
.scn-young-man-errors-blood .ground { position:absolute; bottom:0; left:0; width:100%; height:20%; background: linear-gradient(180deg, #3a2a1e 0%, #1a100e 100%); border-radius: 40% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
@keyframes yeb-figure { 0% { transform: translateX(-50%) scaleX(0.9) translateY(0); } 50% { transform: translateX(-50%) scaleX(0.9) translateY(-2px); } 100% { transform: translateX(-50%) scaleX(0.9) translateY(0); } }
@keyframes yeb-heart { 0% { transform: rotate(45deg) scale(1); opacity:.9; box-shadow: 0 0 12px 4px #a04030; } 50% { transform: rotate(45deg) scale(1.1); opacity:1; box-shadow: 0 0 24px 10px #c06040; } 100% { transform: rotate(45deg) scale(1); opacity:.9; box-shadow: 0 0 12px 4px #a04030; } }
@keyframes yeb-veins { 0% { transform: translateY(0) scaleY(1); opacity:.5; } 50% { transform: translateY(-4px) scaleY(1.05); opacity:.7; } 100% { transform: translateY(0) scaleY(1); opacity:.5; } }
@keyframes yeb-petal { 0% { transform: rotate(20deg) translateY(0); opacity:.6; } 50% { transform: rotate(15deg) translateY(-10px); opacity:1; } 100% { transform: rotate(20deg) translateY(0); opacity:.6; } }
@keyframes yeb-petal-b { 0% { transform: rotate(-30deg) translateY(0); opacity:.5; } 50% { transform: rotate(-20deg) translateY(-12px); opacity:1; } 100% { transform: rotate(-30deg) translateY(0); opacity:.5; } }

/* young-man-heart-free – warm overcast, freedom */
.scn-young-man-heart-free { background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%), radial-gradient(ellipse at 70% 20%, #6a5a4a 0%, transparent 60%); }
.scn-young-man-heart-free .hill { position:absolute; bottom:0; left:0; width:100%; height:40%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 60% 40% 0 0 / 60% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-young-man-heart-free .figure { position:absolute; bottom:30%; left:50%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: yhf-figure 7s ease-in-out infinite; }
.scn-young-man-heart-free .kite { position:absolute; top:10%; left:60%; width:30px; height:40px; background: linear-gradient(135deg, #b87858 0%, #8a5030 50%, #5a3018 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: yhf-kite 5s ease-in-out infinite alternate; }
.scn-young-man-heart-free .string { position:absolute; top:20%; left:55%; width:2px; height:200px; background: linear-gradient(180deg, transparent 0%, #5a4a3a 20%, #3a2a1a 100%); transform-origin: top center; animation: yhf-string 5s ease-in-out infinite alternate; }
.scn-young-man-heart-free .cloud-a { position:absolute; top:8%; left:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(220,210,200,0.4), rgba(200,190,180,0.1)); border-radius: 50%; filter: blur(6px); animation: yhf-cloud-a 30s linear infinite; }
.scn-young-man-heart-free .cloud-b { position:absolute; top:15%; right:10%; width:60px; height:15px; background: linear-gradient(180deg, rgba(210,200,190,0.3), rgba(190,180,170,0.05)); border-radius: 50%; filter: blur(5px); animation: yhf-cloud-b 40s linear infinite reverse; }
.scn-young-man-heart-free .sun { position:absolute; top:5%; left:30%; width:50px; height:50px; background: radial-gradient(circle, #e8c8a0 0%, #c8a070 30%, #8a6a4a 60%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(200,160,100,0.3); animation: yhf-sun 12s ease-in-out infinite alternate; }
@keyframes yhf-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes yhf-kite { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-8px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes yhf-string { 0% { transform: rotate(-5deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-5deg); } }
@keyframes yhf-cloud-a { 0% { transform: translateX(-30px); opacity:.5; } 50% { transform: translateX(100vw); opacity:.8; } 100% { transform: translateX(-30px); opacity:.5; } }
@keyframes yhf-cloud-b { 0% { transform: translateX(0); opacity:.4; } 50% { transform: translateX(-80vw); opacity:.7; } 100% { transform: translateX(0); opacity:.4; } }
@keyframes yhf-sun { 0% { transform: scale(0.95); opacity:.8; box-shadow: 0 0 30px 15px rgba(200,160,100,0.2); } 100% { transform: scale(1.05); opacity:1; box-shadow: 0 0 50px 25px rgba(200,160,100,0.4); } }

/* hill-listening-narrator */
.scn-hill-listening-narrator { background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 30%, #5a5a5a 60%, #3a3a3a 100%), radial-gradient(ellipse at 50% 0%, #5a5a6a 0%, transparent 60%); }
.scn-hill-listening-narrator .sky-overcast { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #4a4a5a 0%, #6a6a7a 40%, #5a5a6a 100%); animation: hl-pulse 14s ease-in-out infinite alternate; }
.scn-hill-listening-narrator .hill-womb { position:absolute; bottom:28%; left:10%; right:20%; height:40%; background: linear-gradient(160deg, #4a5a4a 0%, #2a3a2a 50%, #1a2a1a 100%); border-radius: 20% 20% 0 0 / 60% 40% 0 0; clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); box-shadow: inset 0 -20px 30px rgba(0,0,0,.6); transform-origin: bottom center; animation: hl-breathe 20s ease-in-out infinite; }
.scn-hill-listening-narrator .vale-distant { position:absolute; bottom:20%; right:5%; width:35%; height:22%; background: linear-gradient(160deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; opacity:.7; transform: scale(.85); box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); }
.scn-hill-listening-narrator .figure-laid { position:absolute; bottom:45%; left:30%; width:40px; height:14px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%; transform: rotate(3deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: hl-listen 5s ease-in-out infinite alternate; }
.scn-hill-listening-narrator .ground-dark { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 0 0 0; }
.scn-hill-listening-narrator .mist-drift { position:absolute; bottom:30%; left:0; right:0; height:12%; background: linear-gradient(90deg, transparent 0%, rgba(90,90,100,.15) 20%, rgba(80,80,90,.1) 80%, transparent 100%); filter: blur(12px); animation: hl-mist 30s linear infinite; }
@keyframes hl-pulse { 0% { opacity:.7; } 50% { opacity:.95; } 100% { opacity:.75; } }
@keyframes hl-breathe { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.015) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes hl-listen { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(2px); } 100% { transform: rotate(3deg) translateX(-1px); } }
@keyframes hl-mist { 0% { transform: translateX(-20%); opacity:.3; } 50% { transform: translateX(10%); opacity:.6; } 100% { transform: translateX(-20%); opacity:.3; } }

/* maid-appearance */
.scn-maid-appearance { background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 40%, #5a4a5a 70%, #3a3a3a 100%), radial-gradient(ellipse at 50% 30%, #6a5a6a 0%, transparent 70%); }
.scn-maid-appearance .sky-maid { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a4a5a 0%, #6a5a6a 50%, #5a4a5a 100%); animation: ma-sky 16s ease-in-out infinite alternate; }
.scn-maid-appearance .maid-torso { position:absolute; bottom:18%; left:50%; width:50px; height:70px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 60%, #1a1a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: -4px 0 8px rgba(0,0,0,.5); animation: ma-sway 7s ease-in-out infinite; }
.scn-maid-appearance .straw-hive { position:absolute; bottom:66%; left:50%; width:56px; height:32px; transform: translateX(-50%); background: linear-gradient(160deg, #6a5a3a 0%, #5a4a2a 40%, #4a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.6), inset 0 -6px 10px rgba(0,0,0,.4); animation: ma-hive 5s ease-in-out infinite alternate; }
.scn-maid-appearance .face-shadow { position:absolute; bottom:52%; left:50%; width:24px; height:28px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.5); animation: ma-face 9s ease-in-out infinite; }
.scn-maid-appearance .beauty-wreck { position:absolute; bottom:50%; left:50%; width:20px; height:10px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 50%, rgba(180,140,160,.2) 0%, rgba(120,80,100,.05) 70%); border-radius: 50%; filter: blur(4px); animation: ma-ghost 8s ease-in-out infinite alternate; }
.scn-maid-appearance .ground-maid { position:absolute; bottom:0; left:0; right:0; height:16%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 0 0 0; }
@keyframes ma-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes ma-sway { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes ma-hive { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.03) rotate(1deg); } 100% { transform: translateX(-50%) scaleX(.98) rotate(-1deg); } }
@keyframes ma-face { 0%,100% { transform: translateX(-50%); } 50% { transform: translateX(-48%) translateY(-1px); } }
@keyframes ma-ghost { 0% { opacity:.1; transform: translateX(-50%) scale(1); } 50% { opacity:.4; transform: translateX(-50%) scale(1.3); } 100% { opacity:.15; transform: translateX(-50%) scale(.9); } }

/* weeping-and-papers */
.scn-weeping-and-papers { background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 30%, #4a3a3a 60%, #2a2a2a 100%), radial-gradient(ellipse at 50% 40%, #4a3a3a 0%, transparent 70%); }
.scn-weeping-and-papers .bg-weep { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a3a4a 0%, #5a4a4a 60%, #4a3a3a 100%); animation: wp-gloom 18s ease-in-out infinite alternate; }
.scn-weeping-and-papers .weep-figure { position:absolute; bottom:10%; left:50%; width:60px; height:90px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 50%, #1a1a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: wp-shake 4s ease-in-out infinite; }
.scn-weeping-and-papers .napkin-wring { position:absolute; bottom:45%; left:60%; width:20px; height:16px; background: linear-gradient(160deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20%; transform: rotate(20deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: wp-wring 3s ease-in-out infinite alternate; }
.scn-weeping-and-papers .paper-tear { position:absolute; bottom:30%; left:30%; width:18px; height:24px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 30% 20% 10%; transform: rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: wp-tear 5s ease-in-out infinite; }
.scn-weeping-and-papers .rings-snap { position:absolute; bottom:35%; left:48%; width:12px; height:12px; border: 2px solid #8a7a5a; border-radius: 50%; box-shadow: 0 0 4px rgba(0,0,0,.4); animation: wp-ring 6s ease-in-out infinite alternate; }
.scn-weeping-and-papers .tear-pellet { position:absolute; bottom:20%; left:55%; width:4px; height:4px; background: radial-gradient(circle, rgba(160,180,200,.5) 0%, rgba(100,120,140,.2) 100%); border-radius: 50%; filter: blur(1px); animation: wp-drop 2.5s ease-in infinite; }
.scn-weeping-and-papers .shriek-ripple { position:absolute; top:20%; left:40%; width:80px; height:40px; background: radial-gradient(ellipse at 50% 50%, rgba(100,80,80,.1) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: wp-shriek 8s ease-in-out infinite; }
@keyframes wp-gloom { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes wp-shake { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(3deg) translateY(-1px); } 75% { transform: translateX(-50%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes wp-wring { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(30deg) scale(1.1); } 100% { transform: rotate(10deg) scale(.95); } }
@keyframes wp-tear { 0%,100% { transform: rotate(-15deg) translate(0,0); } 50% { transform: rotate(-20deg) translate(2px,-1px); } }
@keyframes wp-ring { 0% { transform: scale(1) rotate(0deg); opacity:.8; } 50% { transform: scale(1.15) rotate(180deg); opacity:1; } 100% { transform: scale(.9) rotate(360deg); opacity:.7; } }
@keyframes wp-drop { 0% { transform: translateY(0); opacity:.8; } 70% { transform: translateY(12px); opacity:.3; } 100% { transform: translateY(14px); opacity:0; } }
@keyframes wp-shriek { 0% { transform: scale(1); opacity:.1; } 50% { transform: scale(1.5); opacity:.25; } 100% { transform: scale(1); opacity:.1; } }

/* eyes-mind-distracted */
.scn-eyes-mind-distracted { background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 40%, #3a3a3a 80%, #1a1a1a 100%), radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 60%); }
.scn-eyes-mind-distracted .bg-mind { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a3a4a 0%, #5a5a6a 50%, #4a4a5a 100%); animation: em-sky 20s ease-in-out infinite alternate; }
.scn-eyes-mind-distracted .head-still { position:absolute; bottom:30%; left:50%; width:40px; height:48px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 14px rgba(0,0,0,.5); animation: em-still 12s ease-in-out infinite; }
.scn-eyes-mind-distracted .eye-left-orb { position:absolute; bottom:48%; left:47%; width:10px; height:10px; background: radial-gradient(circle, #6a6a7a 0%, #3a3a4a 70%); border-radius: 50%; box-shadow: 0 0 6px rgba(0,0,0,.3); animation: em-roll-l 3.5s ease-in-out infinite alternate; }
.scn-eyes-mind-distracted .eye-right-orb { position:absolute; bottom:48%; right:47%; width:10px; height:10px; background: radial-gradient(circle, #6a6a7a 0%, #3a3a4a 70%); border-radius: 50%; box-shadow: 0 0 6px rgba(0,0,0,.3); animation: em-roll-r 3.7s ease-in-out infinite alternate; }
.scn-eyes-mind-distracted .eye-beam-a { position:absolute; bottom:50%; left:50%; width:2px; height:60px; background: linear-gradient(180deg, rgba(120,120,140,.3) 0%, transparent 100%); transform-origin: bottom center; transform: translateX(-50%) rotate(-30deg); animation: em-beam-a 6s ease-in-out infinite alternate; }
.scn-eyes-mind-distracted .eye-beam-b { position:absolute; bottom:50%; left:50%; width:2px; height:60px; background: linear-gradient(180deg, rgba(120,120,140,.3) 0%, transparent 100%); transform-origin: bottom center; transform: translateX(-50%) rotate(20deg); animation: em-beam-b 7s ease-in-out infinite alternate; }
.scn-eyes-mind-distracted .earth-below { position:absolute; bottom:5%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); transform: scale(.95); animation: em-earth 25s ease-in-out infinite alternate; }
.scn-eyes-mind-distracted .mind-waver { position:absolute; top:15%; left:20%; right:20%; height:8px; background: radial-gradient(ellipse at 50% 50%, rgba(100,100,120,.15) 0%, transparent 70%); filter: blur(8px); animation: em-waver 10s ease-in-out infinite; }
@keyframes em-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes em-still { 0%,100% { transform: translateX(-50%); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes em-roll-l { 0% { transform: translate(0,0); } 30% { transform: translate(-4px,-2px); } 60% { transform: translate(2px,-4px); } 100% { transform: translate(-3px,1px); } }
@keyframes em-roll-r { 0% { transform: translate(0,0); } 30% { transform: translate(3px,-3px); } 60% { transform: translate(-2px,-1px); } 100% { transform: translate(4px,2px); } }
@keyframes em-beam-a { 0% { transform: translateX(-50%) rotate(-30deg); opacity:.3; } 50% { transform: translateX(-50%) rotate(-10deg); opacity:.6; } 100% { transform: translateX(-50%) rotate(-40deg); opacity:.2; } }
@keyframes em-beam-b { 0% { transform: translateX(-50%) rotate(20deg); opacity:.2; } 50% { transform: translateX(-50%) rotate(40deg); opacity:.5; } 100% { transform: translateX(-50%) rotate(10deg); opacity:.3; } }
@keyframes em-earth { 0% { transform: scale(.95) translateY(0); } 50% { transform: scale(.97) translateY(-3px); } 100% { transform: scale(.94) translateY(2px); } }
@keyframes em-waver { 0% { transform: scaleX(1); opacity:.2; } 50% { transform: scaleX(1.4); opacity:.4; } 100% { transform: scaleX(1); opacity:.15; } }

/* hand-and-sighs */
.scn-hand-and-sighs {
  background: 
    linear-gradient(180deg, #7a7a6a 0%, #5a5a4a 40%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 30%, #9a8a7a 0%, transparent 60%);
}
.scn-hand-and-sighs .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #8a8a7a 0%, #6a6a5a 70%, transparent 100%);
  animation: hs-sky 14s ease-in-out infinite alternate;
}
.scn-hand-and-sighs .hills {
  position:absolute; bottom:30%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 70% 30% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,.3);
  animation: hs-hills 20s ease-in-out infinite;
}
.scn-hand-and-sighs .arm {
  position:absolute; bottom:20%; left:42%; width:50px; height:100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs-arm 6s ease-in-out infinite;
}
.scn-hand-and-sighs .hand {
  position:absolute; bottom:55%; left:46%; width:70px; height:60px;
  background: radial-gradient(ellipse at 40% 50%, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 60% / 70% 80% 30% 40%;
  transform-origin: bottom center;
  animation: hs-hand 6s ease-in-out infinite;
}
.scn-hand-and-sighs .sigh-1 {
  position:absolute; bottom:60%; left:20%; width:120px; height:30px;
  background: radial-gradient(ellipse, rgba(200,180,160,.4) 0%, transparent 70%);
  filter: blur(8px);
  border-radius: 50%;
  animation: hs-sigh 12s ease-in-out infinite;
}
.scn-hand-and-sighs .sigh-2 {
  position:absolute; bottom:70%; left:55%; width:100px; height:20px;
  background: radial-gradient(ellipse, rgba(200,180,160,.3) 0%, transparent 70%);
  filter: blur(6px);
  border-radius: 50%;
  animation: hs-sigh 15s ease-in-out infinite reverse;
}
.scn-hand-and-sighs .sigh-3 {
  position:absolute; bottom:80%; left:35%; width:80px; height:15px;
  background: radial-gradient(ellipse, rgba(200,180,160,.2) 0%, transparent 70%);
  filter: blur(5px);
  border-radius: 50%;
  animation: hs-sigh 18s ease-in-out infinite 2s;
}
.scn-hand-and-sighs .glow {
  position:absolute; bottom:45%; left:40%; width:120px; height:100px;
  background: radial-gradient(circle, rgba(220,200,180,.25) 0%, transparent 60%);
  filter: blur(15px);
  animation: hs-glow 8s ease-in-out infinite alternate;
}

@keyframes hs-sky { 0%,100% { opacity: .8; } 50% { opacity: 1; } }
@keyframes hs-hills { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes hs-arm { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }
@keyframes hs-hand { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } }
@keyframes hs-sigh { 0%,100% { transform: translateX(-20px) scaleY(1); opacity: .3; } 50% { transform: translateX(20px) scaleY(1.5); opacity: .6; } }
@keyframes hs-glow { 0%,100% { opacity: .3; } 50% { opacity: .7; } }

/* item-nun-device */
.scn-item-nun-device {
  background: 
    linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 50%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 80%, #8a7a6a 0%, transparent 40%);
}
.scn-item-nun-device .bg-wall {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
}
.scn-item-nun-device .table {
  position:absolute; bottom:20%; left:10%; right:10%; height:15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5px;
  box-shadow: 0 -4px 10px rgba(0,0,0,.3);
}
.scn-item-nun-device .letter {
  position:absolute; bottom:28%; left:38%; width:100px; height:70px;
  background: linear-gradient(135deg, #c8b8a8 0%, #a89888 50%, #887868 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 8px rgba(0,0,0,.4);
  transform: rotate(-3deg);
  animation: nd-letter 14s ease-in-out infinite;
}
.scn-item-nun-device .seal {
  position:absolute; bottom:35%; left:52%; width:20px; height:20px;
  background: radial-gradient(circle, #b87868 0%, #8a5848 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(138,88,72,.6);
  animation: nd-seal 10s ease-in-out infinite alternate;
}
.scn-item-nun-device .cross {
  position:absolute; bottom:35%; left:60%; width:12px; height:50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 1px 1px 4px rgba(0,0,0,.3);
  animation: nd-cross 18s ease-in-out infinite;
}
.scn-item-nun-device .cross::before {
  content: ''; position:absolute; top:10px; left:-12px; width:36px; height:10px;
  background: inherit;
  border-radius: 2px;
}
.scn-item-nun-device .bead-1 {
  position:absolute; bottom:32%; left:30%; width:10px; height:10px;
  background: radial-gradient(circle, #c8b8a8 0%, #a89888 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,.2);
  animation: nd-bead 8s ease-in-out infinite;
}
.scn-item-nun-device .bead-2 {
  position:absolute; bottom:30%; left:26%; width:10px; height:10px;
  background: radial-gradient(circle, #b8a898 0%, #988878 100%);
  border-radius: 50%;
  animation: nd-bead 8s ease-in-out infinite 2s;
}
.scn-item-nun-device .bead-3 {
  position:absolute; bottom:28%; left:22%; width:10px; height:10px;
  background: radial-gradient(circle, #a89888 0%, #887868 100%);
  border-radius: 50%;
  animation: nd-bead 8s ease-in-out infinite 4s;
}
.scn-item-nun-device .shadow {
  position:absolute; bottom:20%; left:30%; right:40%; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(5px);
  animation: nd-shadow 12s ease-in-out infinite;
}

@keyframes nd-letter { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-3px); } }
@keyframes nd-seal { 0%,100% { opacity: .7; } 50% { opacity: 1; } }
@keyframes nd-cross { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes nd-bead { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes nd-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } }

/* flight-and-scars */
.scn-flight-and-scars {
  background: 
    linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 40%, #3a3a2a 100%),
    radial-gradient(ellipse at 50% 20%, #8a8a7a 0%, transparent 60%);
}
.scn-flight-and-scars .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #7a7a6a 0%, #5a5a4a 70%, transparent 100%);
  animation: fs-sky 16s ease-in-out infinite alternate;
}
.scn-flight-and-scars .clouds-back {
  position:absolute; top:10%; left:0; right:0; height:30%;
  background: radial-gradient(ellipse at 20% 30%, rgba(200,190,180,.4) 0%, transparent 50%),
              radial-gradient(ellipse at 80% 60%, rgba(200,190,180,.3) 0%, transparent 40%);
  filter: blur(12px);
  animation: fs-clouds-back 40s linear infinite;
}
.scn-flight-and-scars .clouds-front {
  position:absolute; top:20%; left:0; right:0; height:25%;
  background: radial-gradient(ellipse at 30% 50%, rgba(210,200,190,.3) 0%, transparent 40%),
              radial-gradient(ellipse at 70% 40%, rgba(210,200,190,.2) 0%, transparent 35%);
  filter: blur(8px);
  animation: fs-clouds-front 50s linear infinite reverse;
}
.scn-flight-and-scars .figure-body {
  position:absolute; bottom:30%; left:45%; width:40px; height:80px;
  background: linear-gradient(160deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  animation: fs-figure 6s ease-in-out infinite;
}
.scn-flight-and-scars .wing-left {
  position:absolute; bottom:50%; left:32%; width:70px; height:16px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 90% 10% 50% 50% / 90% 10% 60% 60%;
  transform-origin: right center;
  animation: fs-wing-left 5s ease-in-out infinite;
}
.scn-flight-and-scars .wing-right {
  position:absolute; bottom:50%; left:56%; width:70px; height:16px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 10% 90% 50% 50% / 10% 90% 60% 60%;
  transform-origin: left center;
  animation: fs-wing-right 5s ease-in-out infinite 0.5s;
}
.scn-flight-and-scars .scar-1 {
  position:absolute; bottom:40%; left:48%; width:30px; height:3px;
  background: linear-gradient(90deg, #8a7a6a 0%, transparent 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  animation: fs-scar 8s ease-in-out infinite;
}
.scn-flight-and-scars .scar-2 {
  position:absolute; bottom:35%; left:46%; width:25px; height:2px;
  background: linear-gradient(90deg, #9a8a7a 0%, transparent 100%);
  border-radius: 2px;
  transform: rotate(30deg);
  animation: fs-scar 8s ease-in-out infinite 3s;
}
.scn-flight-and-scars .glow {
  position:absolute; bottom:35%; left:35%; width:130px; height:110px;
  background: radial-gradient(circle, rgba(220,210,200,.2) 0%, transparent 60%);
  filter: blur(20px);
  animation: fs-glow 9s ease-in-out infinite alternate;
}

@keyframes fs-sky { 0%,100% { opacity: .75; } 50% { opacity: 1; } }
@keyframes fs-clouds-back { 0% { transform: translateX(0); } 100% { transform: translateX(60px); } }
@keyframes fs-clouds-front { 0% { transform: translateX(0); } 100% { transform: translateX(-80px); } }
@keyframes fs-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-10px) rotate(2deg); } }
@keyframes fs-wing-left { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-10deg) scaleY(1.1); } }
@keyframes fs-wing-right { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.1); } }
@keyframes fs-scar { 0%,100% { opacity: .2; } 50% { opacity: .8; } }
@keyframes fs-glow { 0%,100% { opacity: .2; } 50% { opacity: .5; } }

/* nun-subdued */
.scn-nun-subdued {
  background: 
    linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 40% 50%, #6a5a4a 0%, transparent 60%);
}
.scn-nun-subdued .bg-wall {
  position:absolute; inset:0;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #4a3a2a 100%);
  background-size: 20px 100%;
  animation: ns-wall 30s linear infinite;
}
.scn-nun-subdued .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-nun-subdued .window {
  position:absolute; top:20%; left:35%; width:120px; height:160px;
  border: 8px solid #3a2a1a;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 60% 60% 10% 10% / 80% 80% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  overflow: hidden;
}
.scn-nun-subdued .window::after {
  content: ''; position:absolute; inset:0;
  background: repeating-linear-gradient(0deg, transparent, transparent 20px, #2a1a0a 20px, #2a1a0a 22px);
}
.scn-nun-subdued .light-outside {
  position:absolute; top:25%; left:40%; width:80px; height:100px;
  background: radial-gradient(circle, rgba(220,200,180,.4) 0%, rgba(220,200,180,.05) 50%, transparent 70%);
  filter: blur(12px);
  animation: ns-light 8s ease-in-out infinite alternate;
}
.scn-nun-subdued .nun {
  position:absolute; bottom:10%; left:40%; width:60px; height:130px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ns-nun 10s ease-in-out infinite;
}
.scn-nun-subdued .nun::before {
  content: ''; position:absolute; top:-20px; left:5px; width:50px; height:30px;
  background: #2a1a0a;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.scn-nun-subdued .tempter {
  position:absolute; bottom:18%; left:55%; width:40px; height:80px;
  background: radial-gradient(ellipse at 50% 40%, rgba(200,180,160,.2) 0%, transparent 70%);
  filter: blur(6px);
  border-radius: 50%;
  animation: ns-tempter 12s ease-in-out infinite;
}
.scn-nun-subdued .book {
  position:absolute; bottom:8%; left:30%; width:30px; height:40px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 1px 1px 4px rgba(0,0,0,.4);
  transform: rotate(-5deg);
  animation: ns-book 14s ease-in-out infinite;
}
.scn-nun-subdued .nun-shadow {
  position:absolute; bottom:0; left:30%; width:80px; height:30px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: ns-shadow 10s ease-in-out infinite;
}

@keyframes ns-wall { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }
@keyframes ns-light { 0%,100% { opacity: .3; } 50% { opacity: .8; } }
@keyframes ns-nun { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ns-tempter { 0%,100% { opacity: .1; transform: scale(1); } 50% { opacity: .4; transform: scale(1.1); } }
@keyframes ns-book { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(-2deg); } }
@keyframes ns-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } }

.scn-might-and-broken-bosoms {
  background: linear-gradient(180deg, #cbb9ae 0%, #a49489 50%, #8c7c72 100%), radial-gradient(ellipse at 50% 100%, #b3a49b 0%, transparent 70%);
}
.scn-might-and-broken-bosoms .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #d2c3b8 0%, #b8a89d 100%);
  animation: bb-sky 14s ease-in-out infinite alternate;
}
.scn-might-and-broken-bosoms .hills-back {
  position: absolute; bottom: 38%; left: -5%; right: -5%; height: 22%;
  background: linear-gradient(180deg, #8a7b72 0%, #6b5c53 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.3);
  transform: scaleX(1.05);
  animation: bb-hills 20s ease-in-out infinite alternate;
}
.scn-might-and-broken-bosoms .hills-front {
  position: absolute; bottom: 30%; left: -2%; right: -2%; height: 18%;
  background: linear-gradient(180deg, #7a6b62 0%, #5c4e45 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 6px 18px rgba(0,0,0,0.4);
  animation: bb-hills 24s ease-in-out infinite alternate-reverse;
}
.scn-might-and-broken-bosoms .well {
  position: absolute; bottom: 28%; left: 50%; width: 50px; height: 40px;
  margin-left: -25px;
  background: linear-gradient(180deg, #6b5a52 0%, #4a3c34 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: bb-well 10s ease-in-out infinite;
}
.scn-might-and-broken-bosoms .water-pool {
  position: absolute; bottom: 24%; left: 50%; width: 40px; height: 10px;
  margin-left: -20px;
  background: linear-gradient(180deg, #a09188 0%, #8c7c72 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 2px rgba(160,145,136,0.5);
  animation: bb-water 4s ease-in-out infinite alternate;
}
.scn-might-and-broken-bosoms .figure-pouring {
  position: absolute; bottom: 24%; left: 42%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a2f2a 0%, #1f1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bb-figure 6s ease-in-out infinite;
}
.scn-might-and-broken-bosoms .cloud-a,
.scn-might-and-broken-bosoms .cloud-b {
  position: absolute; width: 70px; height: 18px;
  background: rgba(210,195,184,0.6);
  border-radius: 50%;
  filter: blur(6px);
  animation: bb-drift 40s linear infinite;
}
.scn-might-and-broken-bosoms .cloud-a { top: 12%; left: -10%; }
.scn-might-and-broken-bosoms .cloud-b { top: 20%; left: -15%; width: 50px; height: 12px; animation-delay: -12s; }
@keyframes bb-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes bb-hills { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes bb-well { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } }
@keyframes bb-water { 0% { transform: scaleX(1) translateY(0); opacity: 0.8 } 50% { transform: scaleX(1.1) translateY(-1px); opacity: 1 } 100% { transform: scaleX(1) translateY(0); opacity: 0.85 } }
@keyframes bb-figure { 0% { transform: rotate(-2deg) translateX(0) } 25% { transform: rotate(2deg) translateX(4px) } 50% { transform: rotate(-2deg) translateX(8px) } 75% { transform: rotate(2deg) translateX(4px) } 100% { transform: rotate(-2deg) translateX(0) } }
@keyframes bb-drift { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

.scn-sacred-nun-charmed {
  background: linear-gradient(180deg, #b3a49a 0%, #9c8c82 30%, #7a6b62 100%), radial-gradient(circle at 50% 30%, #d4c4ba 0%, transparent 60%);
}
.scn-sacred-nun-charmed .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #8c7c72 0%, #6b5a52 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
}
.scn-sacred-nun-charmed .window {
  position: absolute; top: 14%; left: 35%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #d4c4ba 0%, #b3a49a 100%);
  border-radius: 4% 4% 2% 2% / 8% 8% 4% 4%;
  box-shadow: 0 0 20px 8px rgba(180,160,140,0.5);
  animation: nc-window 8s ease-in-out infinite alternate;
}
.scn-sacred-nun-charmed .altar {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 30px;
  margin-left: -30px;
  background: linear-gradient(180deg, #5c4e45 0%, #3a2f2a 100%);
  border-radius: 2% 2% 4% 4% / 4% 4% 8% 8%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-sacred-nun-charmed .candle {
  position: absolute; bottom: 28%; left: 48%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f5e4d0 0%, #c8a880 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 0 16px 6px rgba(200,168,128,0.6);
  animation: nc-candle 3s ease-in-out infinite alternate;
}
.scn-sacred-nun-charmed .nun {
  position: absolute; bottom: 12%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1f1814 0%, #0d0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: nc-nun 10s ease-in-out infinite;
}
.scn-sacred-nun-charmed .cross {
  position: absolute; bottom: 30%; left: 55%; width: 4px; height: 28px;
  background: #4a3c34;
  box-shadow: 0 0 6px 2px rgba(100,80,70,0.3);
  animation: nc-cross 12s ease-in-out infinite;
}
.scn-sacred-nun-charmed .glow {
  position: absolute; bottom: 26%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(240,220,200,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: nc-glow 4s ease-in-out infinite alternate;
}
@keyframes nc-window { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.02) } 100% { opacity: 0.75; transform: scale(0.98) } }
@keyframes nc-candle { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 12px 4px rgba(200,168,128,0.5) } 50% { transform: scaleY(1.05) translateY(-2px); box-shadow: 0 0 20px 8px rgba(200,168,128,0.7) } 100% { transform: scaleY(1) translateY(0); box-shadow: 0 0 14px 5px rgba(200,168,128,0.6) } }
@keyframes nc-nun { 0% { transform: rotate(0) translateX(0) } 25% { transform: rotate(1deg) translateX(3px) } 50% { transform: rotate(0) translateX(0) } 75% { transform: rotate(-1deg) translateX(-3px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes nc-cross { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes nc-glow { 0% { opacity: 0.6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.3) } 100% { opacity: 0.7; transform: scale(1.1) } }

.scn-love\'s-arms-against-convention {
  background: linear-gradient(180deg, #c4b4a8 0%, #a09084 50%, #7a6c60 100%), radial-gradient(ellipse at 50% 30%, #d0c0b4 0%, transparent 70%);
}
.scn-love\'s-arms-against-convention .sky-glow {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #e0d0c4 0%, #c4b4a8 100%);
  animation: la-sky 18s ease-in-out infinite alternate;
}
.scn-love\'s-arms-against-convention .ground {
  position: absolute; bottom: 0; left: -5%; right: -5%; height: 35%;
  background: linear-gradient(180deg, #6b5c52 0%, #4a3c34 100%);
  border-radius: 30% 70% 0 0 / 40% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  transform: scaleX(1.1);
}
.scn-love\'s-arms-against-convention .figure-left,
.scn-love\'s-arms-against-convention .figure-right {
  position: absolute; bottom: 22%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: la-figures 8s ease-in-out infinite;
}
.scn-love\'s-arms-against-convention .figure-left { left: 42%; }
.scn-love\'s-arms-against-convention .figure-right { left: 52%; animation-delay: -2s; }
.scn-love\'s-arms-against-convention .embrace {
  position: absolute; bottom: 30%; left: 46%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c4a884 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(196,168,132,0.5);
  animation: la-embrace 6s ease-in-out infinite alternate;
}
.scn-love\'s-arms-against-convention .barrier {
  position: absolute; bottom: 18%; left: 30%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #4a3a32 0%, #2a1e18 100%);
  box-shadow: 0 0 8px 2px rgba(0,0,0,0.3);
  transform: rotate(10deg);
  animation: la-barrier 14s ease-in-out infinite;
}
.scn-love\'s-arms-against-convention .cloud-c,
.scn-love\'s-arms-against-convention .cloud-d {
  position: absolute; width: 80px; height: 16px;
  background: rgba(200,185,170,0.5);
  border-radius: 50%;
  filter: blur(8px);
  animation: la-drift 50s linear infinite;
}
.scn-love\'s-arms-against-convention .cloud-c { top: 10%; left: -10%; }
.scn-love\'s-arms-against-convention .cloud-d { top: 18%; left: -20%; width: 60px; height: 12px; animation-delay: -15s; }
@keyframes la-sky { 0% { opacity: 0.75; transform: scale(1) } 50% { opacity: 1; transform: scale(1.01) } 100% { opacity: 0.8; transform: scale(0.99) } }
@keyframes la-figures { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes la-embrace { 0% { transform: scale(0.9); opacity: 0.7 } 50% { transform: scale(1.2); opacity: 1 } 100% { transform: scale(1); opacity: 0.8 } }
@keyframes la-barrier { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-3px) } 100% { transform: rotate(8deg) translateY(0) } }
@keyframes la-drift { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

.scn-hearts-dependent-on-young-man {
  background: linear-gradient(180deg, #9c8a7e 0%, #7a6a5e 30%, #5c4e44 100%), radial-gradient(ellipse at 50% 40%, #b0a094 0%, transparent 60%);
}
.scn-hearts-dependent-on-young-man .bg-grad {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(74,60,52,0.4) 0%, transparent 100%);
  animation: hd-bg 20s ease-in-out infinite alternate;
}
.scn-hearts-dependent-on-young-man .large-heart {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 45px;
  margin-left: -25px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(200,85,61,0.5);
  transform: rotate(-20deg);
  animation: hd-beat 4s ease-in-out infinite;
}
.scn-hearts-dependent-on-young-man .small-heart-1,
.scn-hearts-dependent-on-young-man .small-heart-2 {
  position: absolute; width: 18px; height: 16px;
  background: linear-gradient(180deg, #702243 0%, #5e1a1d 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: hd-small 5s ease-in-out infinite;
}
.scn-hearts-dependent-on-young-man .small-heart-1 { bottom: 35%; left: 28%; }
.scn-hearts-dependent-on-young-man .small-heart-2 { bottom: 40%; left: 55%; animation-delay: -1.5s; }
.scn-hearts-dependent-on-young-man .chain {
  position: absolute; bottom: 30%; left: 50%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #8a7a6e 0%, #6a5a4e 100%);
  border-radius: 20%;
  transform: translateX(-2px);
  animation: hd-chain 6s ease-in-out infinite alternate;
}
.scn-hearts-dependent-on-young-man .young-man {
  position: absolute; bottom: 8%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hd-man 8s ease-in-out infinite;
}
.scn-hearts-dependent-on-young-man .glow-mist {
  position: absolute; bottom: 25%; left: 30%; width: 60px; height: 40px;
  background: radial-gradient(circle, rgba(200,85,61,0.3) 0%, transparent 60%);
  filter: blur(12px);
  animation: hd-mist 7s ease-in-out infinite alternate;
}
@keyframes hd-bg { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes hd-beat { 0% { transform: rotate(-20deg) scale(1); box-shadow: 0 0 16px 6px rgba(200,85,61,0.4) } 50% { transform: rotate(-20deg) scale(1.08); box-shadow: 0 0 24px 10px rgba(200,85,61,0.7) } 100% { transform: rotate(-20deg) scale(1); box-shadow: 0 0 18px 7px rgba(200,85,61,0.5) } }
@keyframes hd-small { 0% { transform: scale(1) rotate(0) translateY(0) } 50% { transform: scale(1.15) rotate(15deg) translateY(-3px) } 100% { transform: scale(1) rotate(0) translateY(0) } }
@keyframes hd-chain { 0% { transform: translateX(-2px) scaleY(1) } 50% { transform: translateX(-2px) scaleY(1.1) } 100% { transform: translateX(-2px) scaleY(1) } }
@keyframes hd-man { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hd-mist { 0% { transform: translateX(0) scale(1); opacity: 0.5 } 50% { transform: translateX(5px) scale(1.2); opacity: 0.8 } 100% { transform: translateX(-3px) scale(0.95); opacity: 0.6 } }

.scn-grace-in-ornament {
  background: linear-gradient(180deg, #8b7b6c 0%, #a09384 40%, #736758 100%),
              radial-gradient(ellipse at 30% 20%, #d4b88a 0%, transparent 60%);
}
.scn-grace-in-ornament .arch {
  position: absolute;
  top: 10%; left: 15%; right: 15%; height: 50%;
  background: linear-gradient(180deg, #a59988 0%, #8c7f6e 100%);
  border-radius: 50% / 80% 80% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.3);
  animation: gro-arch 8s ease-in-out infinite alternate;
}
.scn-grace-in-ornament .column-left {
  position: absolute;
  bottom: 0; left: 15%; width: 20px; height: 60%;
  background: linear-gradient(90deg, #7a6b5b 0%, #9b8b7a 50%, #7a6b5b 100%);
  border-radius: 10px;
  animation: gro-column 12s ease-in-out infinite;
}
.scn-grace-in-ornament .column-right {
  position: absolute;
  bottom: 0; right: 15%; width: 20px; height: 60%;
  background: linear-gradient(90deg, #7a6b5b 0%, #9b8b7a 50%, #7a6b5b 100%);
  border-radius: 10px;
  animation: gro-column 12s ease-in-out infinite reverse;
}
.scn-grace-in-ornament .figure {
  position: absolute;
  bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 100px;
  background: linear-gradient(180deg, #3a3129 0%, #504438 50%, #2f2820 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: gro-figure 6s ease-in-out infinite;
}
.scn-grace-in-ornament .ornament {
  position: absolute;
  top: 20%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 30px;
  background: radial-gradient(circle at 50% 50%, #b88c5a 0%, #8c6d44 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px rgba(184,140,90,0.5);
  animation: gro-ornament 5s ease-in-out infinite alternate;
}
.scn-grace-in-ornament .light {
  position: absolute;
  top: 5%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(212,184,138,0.3) 0%, transparent 60%);
  animation: gro-light 10s ease-in-out infinite alternate;
}
@keyframes gro-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes gro-column { 0% { opacity: 0.8; } 50% { opacity: 1; box-shadow: 0 0 10px rgba(0,0,0,0.2); } 100% { opacity: 0.8; } }
@keyframes gro-figure { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes gro-ornament { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 15px 5px rgba(184,140,90,0.5); } 50% { transform: translateX(-50%) scale(1.1); box-shadow: 0 0 25px 10px rgba(184,140,90,0.7); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes gro-light { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

.scn-subduing-tongue {
  background: linear-gradient(180deg, #6b5d53 0%, #8a7c70 40%, #584e44 100%),
              radial-gradient(ellipse at 50% 30%, #b09884 0%, transparent 60%);
}
.scn-subduing-tongue .stage {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a4038 0%, #3b332c 100%);
  border-radius: 20% 20% 0 0;
  animation: sdu-stage 10s ease-in-out infinite alternate;
}
.scn-subduing-tongue .speaker {
  position: absolute;
  bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 110px;
  background: linear-gradient(180deg, #2a231e 0%, #423831 50%, #1f1a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sdu-speaker 7s ease-in-out infinite;
}
.scn-subduing-tongue .hand {
  position: absolute;
  bottom: 35%; left: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #423831 0%, #2a231e 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sdu-hand 4s ease-in-out infinite alternate;
}
.scn-subduing-tongue .audience {
  position: absolute;
  bottom: 5%; left: 0; right: 0; height: 20%;
  background: radial-gradient(circle at 10% 90%, rgba(70,60,50,0.8) 0%, transparent 30%),
              radial-gradient(circle at 30% 85%, rgba(70,60,50,0.6) 0%, transparent 20%),
              radial-gradient(circle at 50% 80%, rgba(70,60,50,0.7) 0%, transparent 25%),
              radial-gradient(circle at 70% 85%, rgba(70,60,50,0.6) 0%, transparent 20%),
              radial-gradient(circle at 90% 90%, rgba(70,60,50,0.8) 0%, transparent 30%);
  animation: sdu-audience 15s ease-in-out infinite alternate;
}
.scn-subduing-tongue .glow {
  position: absolute;
  top: 10%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(176,152,132,0.4) 0%, transparent 70%);
  animation: sdu-glow 8s ease-in-out infinite alternate;
}
.scn-subduing-tongue .mic-stand {
  position: absolute;
  bottom: 28%; left: 45%; width: 4px; height: 30px;
  background: #3b332c;
  border-radius: 2px;
  animation: sdu-stand 6s ease-in-out infinite;
}
@keyframes sdu-stage { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes sdu-speaker { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes sdu-hand { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-5px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes sdu-audience { 0% { opacity: 0.7; background-size: 110% 110%; } 50% { opacity: 0.9; background-size: 100% 100%; } 100% { opacity: 0.7; background-size: 110% 110%; } }
@keyframes sdu-glow { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }
@keyframes sdu-stand { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

.scn-reigns-in-general-bosom {
  background: linear-gradient(180deg, #7a6f63 0%, #9a8c7f 40%, #635a50 100%),
              radial-gradient(ellipse at 50% 60%, #bfa78f 0%, transparent 60%);
}
.scn-reigns-in-general-bosom .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8a7d70 0%, #a69789 100%);
  animation: rgn-sky 20s ease-in-out infinite alternate;
}
.scn-reigns-in-general-bosom .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a5047 0%, #4a423a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: rgn-ground 15s ease-in-out infinite alternate;
}
.scn-reigns-in-general-bosom .tree-left {
  position: absolute; bottom: 30%; left: 5%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3b3025 100%);
  border-radius: 10px 10px 0 0;
  animation: rgn-tree 12s ease-in-out infinite alternate;
}
.scn-reigns-in-general-bosom .tree-right {
  position: absolute; bottom: 30%; right: 5%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3b3025 100%);
  border-radius: 10px 10px 0 0;
  animation: rgn-tree 12s ease-in-out infinite alternate-reverse;
}
.scn-reigns-in-general-bosom .crowd {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 20%;
  background: radial-gradient(circle at 10% 50%, rgba(60,50,40,0.6) 0%, transparent 8%),
              radial-gradient(circle at 20% 40%, rgba(60,50,40,0.5) 0%, transparent 8%),
              radial-gradient(circle at 30% 60%, rgba(60,50,40,0.6) 0%, transparent 8%),
              radial-gradient(circle at 40% 45%, rgba(60,50,40,0.5) 0%, transparent 8%),
              radial-gradient(circle at 50% 55%, rgba(60,50,40,0.7) 0%, transparent 8%),
              radial-gradient(circle at 60% 40%, rgba(60,50,40,0.5) 0%, transparent 8%),
              radial-gradient(circle at 70% 60%, rgba(60,50,40,0.6) 0%, transparent 8%),
              radial-gradient(circle at 80% 45%, rgba(60,50,40,0.5) 0%, transparent 8%),
              radial-gradient(circle at 90% 50%, rgba(60,50,40,0.6) 0%, transparent 8%);
  animation: rgn-crowd 20s ease-in-out infinite alternate;
}
.scn-reigns-in-general-bosom .front-figure {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 90px;
  background: linear-gradient(180deg, #2f2820 0%, #4a3e34 50%, #1f1a16 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: rgn-figure 8s ease-in-out infinite;
}
@keyframes rgn-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes rgn-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes rgn-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes rgn-crowd { 0% { opacity: 0.7; background-size: 100% 100%; } 50% { opacity: 1; background-size: 105% 105%; } 100% { opacity: 0.7; background-size: 100% 100%; } }
@keyframes rgn-figure { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }

.scn-item-picture-pursuit {
  background: linear-gradient(180deg, #6b5e53 0%, #8a7b6e 40%, #594d44 100%),
              radial-gradient(ellipse at 50% 20%, #c4a98a 0%, transparent 60%);
}
.scn-item-picture-pursuit .wall {
  position: absolute; top: 10%; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(180deg, #7a6b5e 0%, #5e5247 100%);
  border-radius: 5px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: itm-wall 15s ease-in-out infinite alternate;
}
.scn-item-picture-pursuit .frame {
  position: absolute; top: 20%; height: 30%;
  background: linear-gradient(180deg, #8c7a68 0%, #6b5d4f 100%);
  border: 3px solid #4a4038;
  box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
}
.scn-item-picture-pursuit .frame-1 {
  left: 15%; width: 20%;
  animation: itm-frame1 12s ease-in-out infinite alternate;
}
.scn-item-picture-pursuit .frame-2 {
  left: 40%; width: 20%;
  animation: itm-frame2 14s ease-in-out infinite alternate-reverse;
}
.scn-item-picture-pursuit .frame-3 {
  left: 65%; width: 20%;
  animation: itm-frame3 16s ease-in-out infinite alternate;
}
.scn-item-picture-pursuit .viewer {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 45px; height: 90px;
  background: linear-gradient(180deg, #3a3129 0%, #504438 50%, #2f2820 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: itm-viewer 7s ease-in-out infinite;
}
.scn-item-picture-pursuit .light {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(196,169,138,0.4) 0%, transparent 70%);
  animation: itm-light 9s ease-in-out infinite alternate;
}
@keyframes itm-wall { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.2); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.3); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.2); } }
@keyframes itm-frame1 { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg); box-shadow: 3px 3px 8px rgba(0,0,0,0.3); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes itm-frame2 { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.01) rotate(-1deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.3); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes itm-frame3 { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.03) rotate(0.5deg); box-shadow: 4px 4px 10px rgba(0,0,0,0.3); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes itm-viewer { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes itm-light { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

.scn-young-man-looks {
  background: linear-gradient(180deg, #b8c4c8 0%, #9aa8ae 50%, #7a8a90 100%), radial-gradient(ellipse at 50% 30%, #c8d4d8 0%, transparent 60%);
}
.scn-young-man-looks .bg-overcast {
  position: absolute; inset: 0; background: linear-gradient(135deg, #c0ccd0 0%, #a0acb0 50%, #808c90 100%); opacity: 0.6; animation: ym-fade 8s ease-in-out infinite alternate;
}
.scn-young-man-looks .head {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 150px; background: radial-gradient(ellipse at 40% 30%, #d4b8a0 0%, #b89878 50%, #8a7060 100%); border-radius: 50% 40% 60% 50% / 60% 50% 70% 50%; transform: rotate(-5deg); box-shadow: inset -10px -10px 20px rgba(0,0,0,0.3); animation: ym-breathe 5s ease-in-out infinite;
}
.scn-young-man-looks .hair-curl {
  position: absolute; border-radius: 50%; background: radial-gradient(circle, #6b4a3a 0%, #4d3025 100%); box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
}
.scn-young-man-looks .hair-curl-a {
  width: 40px; height: 30px; bottom: 60%; left: 25%; transform: rotate(-20deg); animation: ym-curl-a 4s ease-in-out infinite alternate;
}
.scn-young-man-looks .hair-curl-b {
  width: 50px; height: 35px; bottom: 55%; left: 35%; transform: rotate(10deg); animation: ym-curl-b 5s ease-in-out infinite alternate;
}
.scn-young-man-looks .hair-curl-c {
  width: 35px; height: 25px; bottom: 65%; left: 20%; transform: rotate(-40deg); animation: ym-curl-c 3.5s ease-in-out infinite alternate;
}
.scn-young-man-looks .wind-line {
  position: absolute; height: 2px; background: linear-gradient(90deg, transparent, rgba(200,220,230,0.6), transparent); border-radius: 50%; filter: blur(1px);
}
.scn-young-man-looks .wind-line-1 {
  width: 150px; top: 30%; left: -20%; transform: rotate(-15deg); animation: ym-wind-1 6s ease-in-out infinite;
}
.scn-young-man-looks .wind-line-2 {
  width: 120px; top: 45%; left: -10%; transform: rotate(5deg); animation: ym-wind-2 7s ease-in-out infinite 1s;
}
.scn-young-man-looks .lips {
  position: absolute; bottom: 32%; left: 38%; width: 18px; height: 8px; background: #b06050; border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: ym-lip-move 3s ease-in-out infinite alternate;
}
@keyframes ym-fade {
  0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.6; }
}
@keyframes ym-breathe {
  0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.01); } 100% { transform: rotate(-5deg) scale(1); }
}
@keyframes ym-curl-a {
  0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-3px); } 100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes ym-curl-b {
  0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(15deg) translateX(4px); } 100% { transform: rotate(10deg) translateX(0); }
}
@keyframes ym-curl-c {
  0% { transform: rotate(-40deg) scale(1); } 50% { transform: rotate(-45deg) scale(0.95); } 100% { transform: rotate(-40deg) scale(1); }
}
@keyframes ym-wind-1 {
  0% { left: -20%; opacity: 0; } 30% { opacity: 0.7; } 60% { opacity: 0.7; } 100% { left: 120%; opacity: 0; }
}
@keyframes ym-wind-2 {
  0% { left: -10%; opacity: 0; } 30% { opacity: 0.5; } 70% { opacity: 0.5; } 100% { left: 110%; opacity: 0; }
}
@keyframes ym-lip-move {
  0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(-8deg) scaleY(1.1); } 100% { transform: rotate(-10deg) scaleY(1); }
}

.scn-love's-arms-against-convention {
  background: linear-gradient(180deg, #c89478 0%, #b07a60 50%, #8a5e48 100%), radial-gradient(ellipse at 50% 70%, #d0a088 0%, transparent 80%);
}
.scn-love's-arms-against-convention .bg-warm {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d4a890 0%, #b88a70 50%, #9c6e58 100%); opacity: 0.5; animation: la-glow 10s ease-in-out infinite alternate;
}
.scn-love's-arms-against-convention .figure {
  position: absolute; bottom: 10%; width: 80px; height: 160px; background: radial-gradient(ellipse at 50% 30%, #604038 0%, #3a2820 100%); border-radius: 40% 40% 50% 50% / 50% 50% 60% 60%; box-shadow: inset -8px -8px 15px rgba(0,0,0,0.5); animation: la-figure 6s ease-in-out infinite;
}
.scn-love's-arms-against-convention .figure-left {
  left: 25%; transform: rotate(5deg); animation: la-figure-left 6s ease-in-out infinite;
}
.scn-love's-arms-against-convention .figure-right {
  right: 25%; transform: rotate(-5deg); animation: la-figure-right 6s ease-in-out infinite;
}
.scn-love's-arms-against-convention .arm {
  position: absolute; width: 100px; height: 30px; background: linear-gradient(180deg, #604038 0%, #4a3028 100%); border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-love's-arms-against-convention .arm-left {
  bottom: 40%; left: 10%; transform: rotate(20deg); transform-origin: right center; animation: la-arm-left 5s ease-in-out infinite alternate;
}
.scn-love's-arms-against-convention .arm-right {
  bottom: 40%; right: 10%; transform: rotate(-20deg); transform-origin: left center; animation: la-arm-right 5s ease-in-out infinite alternate;
}
.scn-love's-arms-against-convention .embrace-core {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%); width: 60px; height: 80px; background: radial-gradient(ellipse, #8a6050 0%, #604038 60%, #3a2820 100%); border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%; opacity: 0.8; animation: la-core 4s ease-in-out infinite;
}
.scn-love's-arms-against-convention .glow-pulse {
  position: absolute; top: 20%; left: 50%; transform: translateX(-50%); width: 120px; height: 120px; background: radial-gradient(circle, rgba(255,200,150,0.4) 0%, transparent 70%); border-radius: 50%; animation: la-pulse 3s ease-in-out infinite;
}
@keyframes la-glow {
  0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.5; }
}
@keyframes la-figure {
  0%, 100% { transform: rotate(5deg); } 50% { transform: rotate(5deg) translateY(-2px); }
}
@keyframes la-figure-left {
  0% { transform: rotate(5deg); } 50% { transform: rotate(3deg) scale(1.01); } 100% { transform: rotate(5deg); }
}
@keyframes la-figure-right {
  0% { transform: rotate(-5deg); } 50% { transform: rotate(-3deg) scale(1.01); } 100% { transform: rotate(-5deg); }
}
@keyframes la-arm-left {
  0% { transform: rotate(20deg); } 50% { transform: rotate(15deg) scaleX(0.95); } 100% { transform: rotate(20deg); }
}
@keyframes la-arm-right {
  0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg) scaleX(0.95); } 100% { transform: rotate(-20deg); }
}
@keyframes la-core {
  0%, 100% { transform: translateX(-50%) scale(1); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; }
}
@keyframes la-pulse {
  0% { transform: translateX(-50%) scale(0.9); opacity: 0.3; } 50% { transform: translateX(-50%) scale(1.2); opacity: 0.6; } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.3; }
}

.scn-passion-craft-resolved {
  background: linear-gradient(180deg, #1f2a38 0%, #2c3a4a 40%, #34474f 100%), radial-gradient(ellipse at 50% 60%, rgba(60,80,90,0.6) 0%, transparent 70%);
}

.scn-passion-craft-resolved .overcast-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a5b65 0%, #3a4b55 50%, #2a3a45 100%);
  animation: pcr-sky 15s ease-in-out infinite alternate;
}

.scn-passion-craft-resolved .distant-mist {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(70,90,100,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: pcr-mist 20s ease-in-out infinite;
}

.scn-passion-craft-resolved .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #1e2a2f 0%, #25323a 50%, #2c3a42 100%);
  border-radius: 70% 30% 0 0 / 40% 20% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
  animation: pcr-ground 12s ease-in-out infinite alternate;
}

.scn-passion-craft-resolved .figure-shadow {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #111a1f 0%, #0a1114 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.8);
  animation: pcr-figure 8s ease-in-out infinite;
}

.scn-passion-craft-resolved .discarded-stole {
  position: absolute; bottom: 18%; left: 30%; width: 60px; height: 20px;
  transform: rotate(-20deg);
  background: linear-gradient(135deg, #d5dbe0 0%, #a8b2b8 100%);
  border-radius: 0 50% 50% 0 / 0 80% 80% 0;
  filter: drop-shadow(0 5px 8px rgba(0,0,0,0.3));
  animation: pcr-stole 10s ease-in-out infinite;
}

.scn-passion-craft-resolved .tear-drop {
  position: absolute; bottom: 35%; left: 45%; width: 6px; height: 10px;
  background: radial-gradient(circle at 30% 30%, #7a9aaa 0%, #4a6b7a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px rgba(70,110,130,0.5);
  animation: pcr-tear 4s ease-in-out infinite;
}

.scn-passion-craft-resolved .poison-veil {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 40%, rgba(30,60,70,0.3) 0%, transparent 60%);
  mix-blend-mode: multiply;
  animation: pcr-veil 6s ease-in-out infinite alternate;
}

@keyframes pcr-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

@keyframes pcr-mist {
  0% { transform: translateX(0); opacity: 0.5; }
  50% { transform: translateX(-10px); opacity: 0.8; }
  100% { transform: translateX(0); opacity: 0.5; }
}

@keyframes pcr-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}

@keyframes pcr-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-4px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-5px) rotate(3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}

@keyframes pcr-stole {
  0% { transform: rotate(-20deg) translateX(0); opacity: 0.9; }
  50% { transform: rotate(-15deg) translateX(8px); opacity: 0.7; }
  100% { transform: rotate(-20deg) translateX(0); opacity: 0.9; }
}

@keyframes pcr-tear {
  0% { transform: translateY(0) scaleY(1); opacity: 0.8; }
  50% { transform: translateY(12px) scaleY(1.2); opacity: 1; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.8; }
}

@keyframes pcr-veil {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.4; }
}

/* --- Scene 2: subtle-matter-cautels --- */

.scn-subtle-matter-cautels {
  background: linear-gradient(180deg, #1d222b 0%, #2a323d 50%, #3a4450 100%), radial-gradient(ellipse at 50% 80%, rgba(50,60,70,0.5) 0%, transparent 60%);
}

.scn-subtle-matter-cautels .bg-void {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #2a3440 0%, #151a20 100%);
  animation: smc-void 10s ease-in-out infinite alternate;
}

.scn-subtle-matter-cautels .mist-layer {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(0deg, rgba(40,55,65,0.6) 0%, transparent 100%);
  filter: blur(12px);
  animation: smc-mist 18s ease-in-out infinite;
}

.scn-subtle-matter-cautels .figure-silhouette {
  position: absolute; bottom: 15%; left: 50%; width: 50px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0e1419 0%, #080b0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 15px 25px rgba(0,0,0,0.8);
  animation: smc-figure 6s ease-in-out infinite;
}

.scn-subtle-matter-cautels .orb-blush {
  position: absolute; bottom: 45%; left: 35%; width: 16px; height: 16px;
  background: radial-gradient(circle at 30% 30%, #c8553d 0%, #8a2b1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 18px 4px rgba(200,85,61,0.3);
  animation: smc-orb-blush 5s ease-in-out infinite;
}

.scn-subtle-matter-cautels .orb-weep {
  position: absolute; bottom: 60%; left: 55%; width: 14px; height: 14px;
  background: radial-gradient(circle at 40% 40%, #5a8a9a 0%, #2a4a5a 100%);
  border-radius: 50%;
  box-shadow: 0 0 14px 3px rgba(50,110,130,0.4);
  animation: smc-orb-weep 7s ease-in-out infinite alternate;
}

.scn-subtle-matter-cautels .orb-pale {
  position: absolute; bottom: 35%; left: 65%; width: 12px; height: 12px;
  background: radial-gradient(circle at 30% 30%, #b0b8c0 0%, #7a828a 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(180,190,200,0.3);
  animation: smc-orb-pale 9s ease-in-out infinite alternate;
}

.scn-subtle-matter-cautels .cautel-thread {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, #4a5a65, transparent);
  filter: blur(1px);
  animation: smc-thread 12s linear infinite;
}

.scn-subtle-matter-cautels .cautel-thread-2 {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, #5a6a75, transparent);
  filter: blur(1px);
  animation: smc-thread-2 15s linear infinite reverse;
}

@keyframes smc-void {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

@keyframes smc-mist {
  0% { transform: translateY(0); opacity: 0.6; }
  50% { transform: translateY(-8px); opacity: 0.9; }
  100% { transform: translateY(0); opacity: 0.6; }
}

@keyframes smc-figure {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  25% { transform: translateX(-50%) translateY(-6px) scale(1.02); }
  50% { transform: translateX(-50%) translateY(-3px) scale(0.98); }
  75% { transform: translateX(-50%) translateY(-8px) scale(1.01); }
  100% { transform: translateX(-50%) translateY(0) scale(1); }
}

@keyframes smc-orb-blush {
  0% { transform: translate(0, 0) scale(1); opacity: 0.7; }
  33% { transform: translate(8px, -4px) scale(1.1); opacity: 1; }
  66% { transform: translate(-4px, 6px) scale(0.9); opacity: 0.8; }
  100% { transform: translate(0, 0) scale(1); opacity: 0.7; }
}

@keyframes smc-orb-weep {
  0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 14px 3px rgba(50,110,130,0.4); }
  50% { transform: translate(10px, -10px) scale(1.2); box-shadow: 0 0 24px 6px rgba(50,110,130,0.6); }
  100% { transform: translate(0, 0) scale(1); box-shadow: 0 0 14px 3px rgba(50,110,130,0.4); }
}

@keyframes smc-orb-pale {
  0% { transform: translate(0, 0) scale(1); opacity: 0.6; }
  50% { transform: translate(-8px, 8px) scale(0.8); opacity: 1; }
  100% { transform: translate(0, 0) scale(1); opacity: 0.6; }
}

@keyframes smc-thread {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

@keyframes smc-thread-2 {
  0% { transform: translateX(100%); }
  100% { transform: translateX(-100%); }
}

/* Scene: young-man-tears */
.scn-Young-man-tears {
  background: 
    linear-gradient(180deg, #1f2535 0%, #141a28 50%, #0a0f1a 100%),
    radial-gradient(ellipse at 50% 40%, #2a3445 0%, transparent 70%);
  overflow: hidden;
}
.scn-Young-man-tears .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 0%, #3a4558 0%, transparent 60%);
  opacity: 0.3;
  animation: ymt-bg 12s ease-in-out infinite alternate;
}
.scn-Young-man-tears .silhouette {
  position: absolute; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 130px; height: 180px;
  background: linear-gradient(180deg, #1a1f2a 0%, #0a0d14 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
  animation: ymt-sway 6s ease-in-out infinite;
}
.scn-Young-man-tears .cheek-glow {
  position: absolute; bottom: 40px; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: radial-gradient(circle, rgba(180,200,230,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: ymt-cheek 4s ease-in-out infinite alternate;
}
.scn-Young-man-tears .tear-track-left {
  position: absolute; bottom: 70px; left: calc(50% - 18px);
  width: 3px; height: 60px;
  background: linear-gradient(180deg, rgba(200,220,255,0.7) 0%, rgba(200,220,255,0.2) 100%);
  border-radius: 2px;
  animation: ymt-trackL 3s ease-in-out infinite;
}
.scn-Young-man-tears .tear-track-right {
  position: absolute; bottom: 70px; left: calc(50% + 14px);
  width: 3px; height: 55px;
  background: linear-gradient(180deg, rgba(200,220,255,0.6) 0%, rgba(200,220,255,0.1) 100%);
  border-radius: 2px;
  animation: ymt-trackR 3.5s ease-in-out infinite 0.5s;
}
.scn-Young-man-tears .tear-drop1 {
  position: absolute; bottom: 30px; left: calc(50% - 6px);
  width: 8px; height: 12px;
  background: radial-gradient(circle, #b0ccee 0%, #7090b0 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(150,180,220,0.5);
  animation: ymt-drop1 4s ease-in-out infinite;
}
.scn-Young-man-tears .tear-drop2 {
  position: absolute; bottom: 18px; left: calc(50% + 22px);
  width: 6px; height: 10px;
  background: radial-gradient(circle, #a0bce0 0%, #6080a0 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px 3px rgba(130,160,200,0.4);
  animation: ymt-drop2 5s ease-in-out infinite 1s;
}
.scn-Young-man-tears .haze {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, rgba(100,130,180,0.15) 0%, transparent 70%);
  animation: ymt-haze 8s ease-in-out infinite alternate;
}
@keyframes ymt-bg { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }
@keyframes ymt-sway { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(-1deg) translateY(0); } }
@keyframes ymt-cheek { 0% { transform: translateX(-50%) scale(1); opacity: 0.4; } 50% { transform: translateX(-50%) scale(1.1); opacity: 0.7; } 100% { transform: translateX(-50%) scale(0.95); opacity: 0.3; } }
@keyframes ymt-trackL { 0% { height: 60px; opacity: 0.8; } 50% { height: 70px; opacity: 1; } 100% { height: 50px; opacity: 0.5; } }
@keyframes ymt-trackR { 0% { height: 55px; opacity: 0.6; } 50% { height: 65px; opacity: 0.9; } 100% { height: 45px; opacity: 0.4; } }
@keyframes ymt-drop1 { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(-8px) scale(1.1); opacity: 1; } 100% { transform: translateY(4px) scale(0.9); opacity: 0.5; } }
@keyframes ymt-drop2 { 0% { transform: translateY(0) rotate(10deg); opacity: 0.6; } 50% { transform: translateY(-6px) rotate(-5deg) scale(1.05); opacity: 0.9; } 100% { transform: translateY(5px) rotate(15deg) scale(0.95); opacity: 0.4; } }
@keyframes ymt-haze { 0% { opacity: 0.1; } 50% { opacity: 0.25; } 100% { opacity: 0.05; } }

/* Scene: hell-of-witchcraft-in-tear */
.scn-Hell-of-witchcraft-in-tear {
  background: 
    linear-gradient(180deg, #1a1525 0%, #120e1e 50%, #080610 100%),
    radial-gradient(ellipse at 50% 60%, #2a1f3a 0%, transparent 70%);
  overflow: hidden;
}
.scn-Hell-of-witchcraft-in-tear .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 40%, #3a2a4a 0%, transparent 60%);
  opacity: 0.3;
  animation: hwt-bg 15s ease-in-out infinite alternate;
}
.scn-Hell-of-witchcraft-in-tear .orb {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 120px; height: 120px;
  background: radial-gradient(circle at 40% 40%, #3a4a6a 0%, #1a2035 50%, #0a0e1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(60,80,120,0.4);
  animation: hwt-orb 4s ease-in-out infinite alternate;
}
.scn-Hell-of-witchcraft-in-tear .orb-fire {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 80px; height: 80px;
  background: radial-gradient(circle at 60% 50%, #c8703a 0%, #9a4a1a 40%, transparent 70%);
  border-radius: 50%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: hwt-fire 3s ease-in-out infinite alternate;
}
.scn-Hell-of-witchcraft-in-tear .orb-ice {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 70px; height: 70px;
  background: radial-gradient(circle at 30% 60%, #80a0d0 0%, #305080 50%, transparent 80%);
  border-radius: 50%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: hwt-ice 4s ease-in-out infinite alternate 0.5s;
}
.scn-Hell-of-witchcraft-in-tear .orb-glow {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 140px; height: 140px;
  background: radial-gradient(circle, rgba(180,180,220,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: hwt-glow 6s ease-in-out infinite alternate;
}
.scn-Hell-of-witchcraft-in-tear .particle {
  position: absolute;
  width: 4px; height: 4px;
  background: radial-gradient(circle, #b0c0e0 0%, #6070a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(150,170,220,0.5);
}
.scn-Hell-of-witchcraft-in-tear .p1 {
  top: 30%; left: 30%;
  animation: hwt-particle1 8s linear infinite;
}
.scn-Hell-of-witchcraft-in-tear .p2 {
  top: 60%; left: 20%;
  width: 3px; height: 3px;
  animation: hwt-particle2 10s linear infinite 1s;
}
.scn-Hell-of-witchcraft-in-tear .p3 {
  top: 25%; left: 70%;
  width: 5px; height: 5px;
  background: radial-gradient(circle, #c08060 0%, #804030 100%);
  box-shadow: 0 0 8px 3px rgba(200,128,96,0.4);
  animation: hwt-particle3 7s linear infinite 2s;
}
.scn-Hell-of-witchcraft-in-tear .crack {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(45deg);
  width: 2px; height: 30px;
  background: rgba(200,220,255,0.3);
  border-radius: 1px;
  animation: hwt-crack 5s ease-in-out infinite;
}
@keyframes hwt-bg { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }
@keyframes hwt-orb { 0% { transform: translate(-50%, -50%) scale(1) rotate(0deg); } 50% { transform: translate(-50%, -50%) scale(1.05) rotate(5deg); } 100% { transform: translate(-50%, -50%) scale(0.95) rotate(-5deg); } }
@keyframes hwt-fire { 0% { opacity: 0.6; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); } 50% { opacity: 1; clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); } 100% { opacity: 0.7; clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%); } }
@keyframes hwt-ice { 0% { opacity: 0.4; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); } 50% { opacity: 0.8; clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); } 100% { opacity: 0.5; clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); } }
@keyframes hwt-glow { 0% { transform: translate(-50%, -50%) scale(1); opacity: 0.2; } 50% { transform: translate(-50%, -50%) scale(1.15); opacity: 0.4; } 100% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.1; } }
@keyframes hwt-particle1 { 0% { transform: translate(0,0) scale(1); opacity: 0.8; } 25% { transform: translate(30px, -20px) scale(1.2); opacity: 1; } 50% { transform: translate(60px, -40px) scale(0.8); opacity: 0.5; } 75% { transform: translate(90px, -20px) scale(1.1); opacity: 0.9; } 100% { transform: translate(120px, 0) scale(1); opacity: 0.6; } }
@keyframes hwt-particle2 { 0% { transform: translate(0,0) rotate(0deg); opacity: 0.7; } 25% { transform: translate(40px, 30px) rotate(45deg); opacity: 0.9; } 50% { transform: translate(80px, 60px) rotate(90deg); opacity: 0.4; } 75% { transform: translate(120px, 30px) rotate(135deg); opacity: 0.8; } 100% { transform: translate(160px, 0) rotate(180deg); opacity: 0.5; } }
@keyframes hwt-particle3 { 0% { transform: translate(0,0) scale(1); opacity: 0.5; } 25% { transform: translate(-30px, -10px) scale(1.3); opacity: 0.8; } 50% { transform: translate(-60px, -20px) scale(0.7); opacity: 0.6; } 75% { transform: translate(-90px, -10px) scale(1.1); opacity: 0.9; } 100% { transform: translate(-120px, 0) scale(1); opacity: 0.4; } }
@keyframes hwt-crack { 0% { height: 30px; opacity: 0.3; } 50% { height: 50px; opacity: 0.7; } 100% { height: 20px; opacity: 0.1; } }

.scn-hell-of-witchcraft-in-tear {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #2f2f4a 70%, #141420 100%),
              radial-gradient(ellipse at 50% 80%, #3a3a5c 0%, transparent 60%);
  overflow: hidden;
}
.scn-hell-of-witchcraft-in-tear .bg-clouds {
  position: absolute; inset: 0 0 60% 0;
  background: repeating-linear-gradient(90deg, rgba(120,120,160,0.1) 0px, rgba(120,120,160,0.2) 40px, transparent 80px);
  filter: blur(15px);
  animation: wit-clouds 40s linear infinite;
}
.scn-hell-of-witchcraft-in-tear .silhouette-head {
  position: absolute; bottom: 25%; left: 38%; width: 80px; height: 100px;
  background: radial-gradient(ellipse 60% 70% at 40% 60%, #0f0f1a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: inset -10px 0 15px rgba(0,0,0,0.8);
  transform: rotate(-5deg);
  animation: wit-head 6s ease-in-out infinite alternate;
}
.scn-hell-of-witchcraft-in-tear .tear-orb {
  position: absolute; bottom: 38%; left: 48%; width: 55px; height: 65px;
  background: radial-gradient(circle at 40% 30%, #5fa8d0 0%, #2c6b8a 50%, #1a3a4a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 8px rgba(80,180,220,0.4), inset 0 -10px 20px rgba(0,20,40,0.6);
  animation: wit-tear 3s ease-in-out infinite;
}
.scn-hell-of-witchcraft-in-tear .swirl-a {
  position: absolute; bottom: 42%; left: 49%; width: 30px; height: 30px;
  background: conic-gradient(from 0deg, #6a3f8c, #2f8c5f, #4a6f9a, #6a3f8c);
  border-radius: 50%;
  filter: blur(6px);
  opacity: 0.6;
  animation: wit-swirl1 8s linear infinite;
}
.scn-hell-of-witchcraft-in-tear .swirl-b {
  position: absolute; bottom: 42%; left: 49%; width: 20px; height: 20px;
  background: conic-gradient(from 90deg, #8c4f7a, #2f8c5f, #5a7f8c, #8c4f7a);
  border-radius: 50%;
  filter: blur(4px);
  opacity: 0.5;
  animation: wit-swirl2 6s linear infinite reverse;
}
.scn-hell-of-witchcraft-in-tear .eye-glint {
  position: absolute; bottom: 46%; left: 45.5%; width: 8px; height: 6px;
  background: radial-gradient(circle, rgba(255,255,240,0.9) 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,220,255,0.4);
  animation: wit-glint 4s ease-in-out infinite alternate;
}
.scn-hell-of-witchcraft-in-tear .ground-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #0a0a12 100%);
  filter: blur(3px);
}
.scn-hell-of-witchcraft-in-tear .atmo-mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 70%, rgba(100,130,180,0.15) 0%, transparent 70%);
  animation: wit-mist 15s ease-in-out infinite alternate;
}
@keyframes wit-clouds {
  0% { transform: translateX(0); }
  100% { transform: translateX(-80px); }
}
@keyframes wit-head {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-3px); }
  100% { transform: rotate(-6deg) translateY(2px); }
}
@keyframes wit-tear {
  0% { transform: scale(1) rotate(2deg); opacity: 0.9; }
  30% { transform: scale(1.02) rotate(-1deg); opacity: 1; box-shadow: 0 0 40px 12px rgba(80,180,220,0.6); }
  60% { transform: scale(0.98) rotate(1deg); opacity: 0.85; box-shadow: 0 0 20px 5px rgba(80,180,220,0.3); }
  100% { transform: scale(1) rotate(0deg); opacity: 0.9; }
}
@keyframes wit-swirl1 {
  0% { transform: translate(-50%, -50%) rotate(0deg) scale(1); }
  50% { transform: translate(-45%, -55%) rotate(180deg) scale(1.2); opacity: 0.7; }
  100% { transform: translate(-50%, -50%) rotate(360deg) scale(1); }
}
@keyframes wit-swirl2 {
  0% { transform: translate(-50%, -50%) rotate(0deg) scale(1); }
  50% { transform: translate(-55%, -45%) rotate(-180deg) scale(0.8); opacity: 0.6; }
  100% { transform: translate(-50%, -50%) rotate(-360deg) scale(1); }
}
@keyframes wit-glint {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
@keyframes wit-mist {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}

.scn-young-man-tears {
  background: linear-gradient(180deg, #3a3e4a 0%, #2a2e3a 40%, #1a1e2a 100%),
              radial-gradient(ellipse at 30% 20%, #4a5060 0%, transparent 60%);
}
.scn-young-man-tears .sky {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #4a5060 0%, #2a2e3a 50%, #1a1e2a 100%);
  opacity: 0.6;
  animation: ymt-sky 12s ease-in-out infinite alternate;
}
.scn-young-man-tears .face {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 100px;
  height: 140px;
  background: linear-gradient(180deg, #2a2e3a 0%, #0a0e1a 100%);
  border-radius: 60% 30% 50% 40% / 50% 60% 50% 40%;
  transform-origin: bottom center;
  animation: ymt-face 6s ease-in-out infinite;
}
.scn-young-man-tears .hair {
  position: absolute;
  bottom: 82%;
  left: 28%;
  width: 110px;
  height: 50px;
  background: linear-gradient(180deg, #1a1e2a 0%, #0a0e1a 100%);
  border-radius: 70% 60% 30% 40% / 80% 70% 20% 30%;
  animation: ymt-hair 8s ease-in-out infinite;
}
.scn-young-man-tears .eye {
  position: absolute;
  bottom: 57%;
  left: 37%;
  width: 14px;
  height: 6px;
  background: #1a1e2a;
  border-radius: 50% / 20%;
  animation: ymt-eye 4s ease-in-out infinite alternate;
}
.scn-young-man-tears .tear-a {
  position: absolute;
  bottom: 56%;
  left: 39%;
  width: 8px;
  height: 12px;
  background: radial-gradient(circle, #8a9aaa 0%, #4a5060 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.8;
  animation: ymt-tear 3s ease-in-out infinite;
  animation-delay: 0s;
}
.scn-young-man-tears .tear-b {
  position: absolute;
  bottom: 56%;
  left: 40%;
  width: 7px;
  height: 10px;
  background: radial-gradient(circle, #8a9aaa 0%, #4a5060 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.6;
  animation: ymt-tear 3s ease-in-out infinite;
  animation-delay: 0.8s;
}
.scn-young-man-tears .tear-c {
  position: absolute;
  bottom: 56%;
  left: 38%;
  width: 6px;
  height: 14px;
  background: radial-gradient(circle, #8a9aaa 0%, #4a5060 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.5;
  animation: ymt-tear 3s ease-in-out infinite;
  animation-delay: 1.6s;
}
.scn-young-man-tears .shimmer {
  position: absolute;
  bottom: 45%;
  left: 34%;
  width: 20px;
  height: 40px;
  background: radial-gradient(circle at 50% 30%, rgba(140,160,180,0.3) 0%, transparent 70%);
  border-radius: 40% 40% 50% 50% / 30% 30% 60% 60%;
  animation: ymt-shimmer 5s ease-in-out infinite alternate;
  opacity: 0.4;
}
@keyframes ymt-sky {
  0% { opacity: 0.5; background-position: 0% 0%; }
  50% { opacity: 0.7; background-position: 10% 5%; }
  100% { opacity: 0.4; background-position: 0% 10%; }
}
@keyframes ymt-face {
  0% { transform: translateY(0) rotate(-0.5deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes ymt-hair {
  0% { transform: translate(0, 0) rotate(-1deg); }
  50% { transform: translate(1px, -2px) rotate(1deg); }
  100% { transform: translate(0, 0) rotate(-1deg); }
}
@keyframes ymt-eye {
  0% { height: 6px; opacity: 0.9; }
  50% { height: 4px; opacity: 0.7; }
  100% { height: 6px; opacity: 0.9; }
}
@keyframes ymt-tear {
  0% { transform: translate(0, 0) scale(1); opacity: 0.8; }
  50% { transform: translate(-2px, 20px) scale(0.9); opacity: 0.5; }
  100% { transform: translate(0, 40px) scale(0.7); opacity: 0; }
}
@keyframes ymt-shimmer {
  0% { opacity: 0.2; transform: scale(1) rotate(-2deg); }
  50% { opacity: 0.5; transform: scale(1.1) rotate(2deg); }
  100% { opacity: 0.2; transform: scale(1) rotate(-2deg); }
}

.scn-love\'s-arms-against-convention {
  background: linear-gradient(180deg, #a7a7a7 0%, #d4c4a8 60%, #c8b898 100%),
              radial-gradient(ellipse at 50% 60%, rgba(212,196,168,0.6) 0%, transparent 80%);
}

.scn-love\'s-arms-against-convention .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b8b0a0 0%, transparent 100%);
  animation: lac-sky 14s ease-in-out infinite alternate;
}

.scn-love\'s-arms-against-convention .clouds-1,
.scn-love\'s-arms-against-convention .clouds-2 {
  position: absolute; top: 12%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.08) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: lac-clouds 40s linear infinite;
}

.scn-love\'s-arms-against-convention .clouds-2 {
  left: 20%; animation-delay: -20s; animation-duration: 50s;
}

.scn-love\'s-arms-against-convention .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #8b7d6b 0%, #6b5d4b 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 6px 14px rgba(0,0,0,0.3);
  animation: lac-hills 20s ease-in-out infinite alternate;
}

.scn-love\'s-arms-against-convention .glow {
  position: absolute; bottom: 34%; left: 50%; width: 100px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d4a86a 0%, rgba(212,168,106,0.2) 60%, transparent 80%);
  border-radius: 50%;
  animation: lac-glow 5s ease-in-out infinite alternate;
}

.scn-love\'s-arms-against-convention .tree-canopy {
  position: absolute; bottom: 34%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle at 40% 40%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50%;
  animation: lac-tree 8s ease-in-out infinite;
}

.scn-love\'s-arms-against-convention .tree-trunk {
  position: absolute; bottom: 20%; left: 33%; width: 10px; height: 40px;
  background: #2a1a0a;
  border-radius: 4px;
  animation: lac-tree 8s ease-in-out infinite;
}

.scn-love\'s-arms-against-convention .figure-left,
.scn-love\'s-arms-against-convention .figure-right {
  position: absolute; bottom: 22%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}

.scn-love\'s-arms-against-convention .figure-left {
  left: 44%; width: 22px; height: 50px;
  animation: lac-figure-left 4s ease-in-out infinite;
}

.scn-love\'s-arms-against-convention .figure-right {
  left: 50%; width: 20px; height: 44px;
  animation: lac-figure-right 4s ease-in-out infinite;
  animation-delay: -2s;
}

@keyframes lac-sky {
  0% { opacity: 0.75; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

@keyframes lac-clouds {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}

@keyframes lac-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}

@keyframes lac-glow {
  0% { opacity: 0.6; transform: translateX(-50%) scale(0.95); }
  50% { opacity: 0.9; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.65; transform: translateX(-50%) scale(0.98); }
}

@keyframes lac-tree {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}

@keyframes lac-figure-left {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(0) translateY(-1px) rotate(2deg); }
  75% { transform: translateX(-3px) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}

@keyframes lac-figure-right {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  25% { transform: translateX(-3px) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(0) translateY(-1px) rotate(-2deg); }
  75% { transform: translateX(3px) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(2deg); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.cattle { position: absolute; pointer-events: none; }
.curl { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-suitor-oath-tears { background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 40%, #1a1a30 70%, #0a0a14 100%), radial-gradient(ellipse at 50% 0%, #2a2a4e 0%, transparent 70%); }
.scn-suitor-oath-tears .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent, #0a0a14 70%); animation: sot-bg 20s ease-in-out infinite alternate; }
.scn-suitor-oath-tears .figure { position:absolute; bottom:20%; left:45%; width:40px; height:60px; background: linear-gradient(135deg, #2a2a3e 0%, #0d0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sot-fig 4s ease-in-out infinite; }
.scn-suitor-oath-tears .arm { position:absolute; bottom:55%; left:48%; width:8px; height:30px; background: #1a1a2e; border-radius:40% 40% 20% 20%; transform-origin: bottom center; animation: sot-arm 3s ease-in-out infinite; }
.scn-suitor-oath-tears .tear-a { position:absolute; bottom:30%; left:42%; width:4px; height:6px; background: radial-gradient(circle, rgba(180,200,220,.6) 0%, transparent 70%); border-radius:50%; animation: sot-tear 2s ease-in-out infinite; }
.scn-suitor-oath-tears .tear-b { position:absolute; bottom:35%; left:46%; width:3px; height:5px; background: radial-gradient(circle, rgba(180,200,220,.4) 0%, transparent 70%); border-radius:50%; animation: sot-tear 2.5s ease-in-out infinite 0.5s; }
.scn-suitor-oath-tears .knot { position:absolute; bottom:45%; left:55%; width:12px; height:12px; border:2px solid #3a3a5e; border-radius:50%; background: radial-gradient(circle, #3a3a5e 0%, transparent 60%); animation: sot-knot 6s ease-in-out infinite; }
.scn-suitor-oath-tears .shadow { position:absolute; bottom:0; left:30%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 100%); animation: sot-shadow 4s ease-in-out infinite; }
@keyframes sot-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sot-fig { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sot-arm { 0% { transform: rotate(-20deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-20deg) } }
@keyframes sot-tear { 0% { transform: translateY(0) scale(1); opacity:.6 } 50% { transform: translateY(12px) scale(.5); opacity:.3 } 100% { transform: translateY(24px) scale(.2); opacity:0 } }
@keyframes sot-knot { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.2) rotate(180deg) } 100% { transform: scale(1) rotate(360deg) } }
@keyframes sot-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }

.scn-maid-fall-chastity { background: linear-gradient(180deg, #232340 0%, #141430 40%, #1a1a38 70%, #0e0e20 100%), radial-gradient(ellipse at 50% 0%, #3a3a6e 0%, transparent 60%); }
.scn-maid-fall-chastity .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a50 0%, transparent 100%); animation: mfc-sky 12s ease-in-out infinite alternate; }
.scn-maid-fall-chastity .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a30 0%, #0a0a1a 100%); border-radius:60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: mfc-ground 18s ease-in-out infinite alternate; }
.scn-maid-fall-chastity .maid { position:absolute; bottom:30%; left:40%; width:40px; height:70px; background: linear-gradient(180deg, #2a2a4e 0%, #101028 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mfc-maid 5s ease-in-out infinite; }
.scn-maid-fall-chastity .stole { position:absolute; bottom:20%; left:35%; width:30px; height:8px; background: linear-gradient(180deg, #b0b0c0 0%, #808090 100%); border-radius:20%; opacity:.8; transform: rotate(15deg); animation: mfc-stole 6s ease-in-out infinite; }
.scn-maid-fall-chastity .tear-a { position:absolute; bottom:35%; left:38%; width:4px; height:6px; background: radial-gradient(circle, rgba(200,210,230,.5) 0%, transparent 70%); border-radius:50%; animation: mfc-tear 2.2s ease-in-out infinite; }
.scn-maid-fall-chastity .tear-b { position:absolute; bottom:40%; left:44%; width:3px; height:5px; background: radial-gradient(circle, rgba(200,210,230,.3) 0%, transparent 70%); border-radius:50%; animation: mfc-tear 2.8s ease-in-out infinite 0.6s; }
.scn-maid-fall-chastity .shadow { position:absolute; bottom:0; left:20%; width:60%; height:15%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 100%); animation: mfc-shadow 5s ease-in-out infinite; }
@keyframes mfc-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes mfc-ground { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes mfc-maid { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-4px) rotate(-2deg) } 70% { transform: translateY(2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mfc-stole { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(25deg) translateY(-8px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes mfc-tear { 0% { transform: translateY(0) scale(1); opacity:.5 } 50% { transform: translateY(15px) scale(.6); opacity:.3 } 100% { transform: translateY(30px) scale(.2); opacity:0 } }
@keyframes mfc-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.5 } }

.scn-item-tokens-from-maund { background: linear-gradient(180deg, #1e1e38 0%, #12122a 40%, #1a1a34 70%, #0a0a18 100%), radial-gradient(ellipse at 50% 0%, #2e2e52 0%, transparent 60%); }
.scn-item-tokens-from-maund .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent, #0a0a18 60%); animation: itm-bg 15s ease-in-out infinite alternate; }
.scn-item-tokens-from-maund .head { position:absolute; bottom:35%; left:40%; width:50px; height:55px; background: linear-gradient(180deg, #2a2a46 0%, #14142a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: itm-head 8s ease-in-out infinite; }
.scn-item-tokens-from-maund .hat { position:absolute; bottom:68%; left:37%; width:60px; height:20px; background: linear-gradient(180deg, #3a3a5e 0%, #1e1e38 100%); border-radius: 30% 30% 10% 10%; border-bottom:2px solid #2a2a4e; animation: itm-hat 10s ease-in-out infinite; }
.scn-item-tokens-from-maund .lattice { position:absolute; bottom:40%; left:38%; width:44px; height:20px; border:1px solid rgba(180,180,200,.3); background: repeating-linear-gradient(90deg, rgba(180,180,200,.2) 0px, rgba(180,180,200,.2) 2px, transparent 2px, transparent 8px); animation: itm-lattice 6s ease-in-out infinite; }
.scn-item-tokens-from-maund .napkin { position:absolute; bottom:25%; left:36%; width:30px; height:18px; background: linear-gradient(135deg, #8080a0 0%, #5a5a78 100%); border-radius:10% 10% 50% 50%; transform: rotate(-10deg); opacity:.7; animation: itm-napkin 4s ease-in-out infinite; }
.scn-item-tokens-from-maund .eye-l { position:absolute; bottom:50%; left:43%; width:6px; height:4px; background: radial-gradient(circle, #c0c0d0 0%, #606080 70%); border-radius:50%; animation: itm-eye 3s ease-in-out infinite; }
.scn-item-tokens-from-maund .eye-r { position:absolute; bottom:50%; left:52%; width:6px; height:4px; background: radial-gradient(circle, #c0c0d0 0%, #606080 70%); border-radius:50%; animation: itm-eye 3.2s ease-in-out infinite 0.4s; }
.scn-item-tokens-from-maund .tear { position:absolute; bottom:35%; left:50%; width:3px; height:5px; background: radial-gradient(circle, rgba(180,190,210,.5) 0%, transparent 70%); border-radius:50%; animation: itm-tear 2.5s ease-in-out infinite; }
@keyframes itm-bg { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes itm-head { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes itm-hat { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes itm-lattice { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes itm-napkin { 0% { transform: rotate(-10deg) translate(0,0) } 50% { transform: rotate(-5deg) translate(2px,-2px) } 100% { transform: rotate(-10deg) translate(0,0) } }
@keyframes itm-eye { 0% { transform: scaleY(1) } 50% { transform: scaleY(.2) } 100% { transform: scaleY(1) } }
@keyframes itm-tear { 0% { transform: translateY(0) scale(1); opacity:.4 } 50% { transform: translateY(10px) scale(.5); opacity:.2 } 100% { transform: translateY(20px) scale(.2); opacity:0 } }

.scn-maid-recounts-betrayal { background: linear-gradient(180deg, #1c1c36 0%, #101028 40%, #181832 70%, #0a0a18 100%), radial-gradient(ellipse at 50% 0%, #30305a 0%, transparent 60%); }
.scn-maid-recounts-betrayal .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent, #0a0a18 50%); animation: mrb-bg 18s ease-in-out infinite alternate; }
.scn-maid-recounts-betrayal .maid { position:absolute; bottom:25%; left:35%; width:40px; height:65px; background: linear-gradient(180deg, #2a2a4c 0%, #12122a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mrb-maid 6s ease-in-out infinite; }
.scn-maid-recounts-betrayal .hand { position:absolute; bottom:50%; left:38%; width:8px; height:20px; background: #1a1a32; border-radius:40% 40% 20% 20%; transform-origin: bottom center; animation: mrb-hand 4s ease-in-out infinite; }
.scn-maid-recounts-betrayal .flower { position:absolute; bottom:55%; left:32%; width:10px; height:10px; background: radial-gradient(circle, #b87878 0%, #5e1a1d 60%, #1a1a32 100%); border-radius:50%; box-shadow: 0 0 6px #5e1a1d; animation: mrb-flower 3s ease-in-out infinite; }
.scn-maid-recounts-betrayal .suitor-shadow { position:absolute; bottom:20%; right:30%; width:45px; height:85px; background: linear-gradient(180deg, #0d0d1a 0%, #05050e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:.5; animation: mrb-shadow 8s ease-in-out infinite; }
.scn-maid-recounts-betrayal .tear { position:absolute; bottom:32%; left:33%; width:3px; height:5px; background: radial-gradient(circle, rgba(190,200,220,.4) 0%, transparent 70%); border-radius:50%; animation: mrb-tear 2.8s ease-in-out infinite; }
.scn-maid-recounts-betrayal .petal-a { position:absolute; bottom:45%; left:28%; width:6px; height:4px; background: #702243; border-radius:50%; animation: mrb-petal 5s ease-in-out infinite; }
.scn-maid-recounts-betrayal .petal-b { position:absolute; bottom:40%; left:26%; width:5px; height:3px; background: #702243; border-radius:50%; animation: mrb-petal 4.5s ease-in-out infinite 1s; }
@keyframes mrb-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mrb-maid { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mrb-hand { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes mrb-flower { 0% { transform: scale(1) } 50% { transform: scale(1.3) } 100% { transform: scale(1) } }
@keyframes mrb-shadow { 0% { transform: translateY(0) scale(1); opacity:.4 } 50% { transform: translateY(-2px) scale(1.02); opacity:.6 } 100% { transform: translateY(0) scale(1); opacity:.4 } }
@keyframes mrb-tear { 0% { transform: translateY(0) scale(1); opacity:.5 } 50% { transform: translateY(12px) scale(.5); opacity:.2 } 100% { transform: translateY(24px) scale(.2); opacity:0 } }
@keyframes mrb-petal { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-10px) rotate(180deg) } 100% { transform: translateY(0) rotate(360deg) } }

.scn-item-papers-and-rings {
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 50%, #2a2a3a 100%), radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 60%);
}
.scn-item-papers-and-rings .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a6a7a 0%, transparent 100%); animation: ipr-sky 10s ease-in-out infinite alternate; }
.scn-item-papers-and-rings .hill { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: ipr-hill 15s ease-in-out infinite alternate; }
.scn-item-papers-and-rings .maid { position:absolute; bottom:30%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ipr-maid 2s ease-in-out infinite; }
.scn-item-papers-and-rings .papers { position:absolute; bottom:32%; left:40%; width:10px; height:14px; background: #c0c0c0; border-radius: 2px; box-shadow: 12px 0 #b0b0b0, 24px -2px #a0a0a0; animation: ipr-papers 1.5s ease-in-out infinite; }
.scn-item-papers-and-rings .rings { position:absolute; bottom:30%; left:50%; width:12px; height:12px; background: transparent; border: 2px solid #8a8a8a; border-radius:50%; box-shadow: 18px -10px 0 0 #8a8a8a; animation: ipr-rings 2s ease-in-out infinite; }
.scn-item-papers-and-rings .reverend { position:absolute; bottom:30%; right:25%; width:30px; height:55px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ipr-reverend 3s ease-in-out infinite; }
.scn-item-papers-and-rings .haze { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 40%, rgba(150,150,160,.3) 0%, transparent 70%); filter: blur(12px); animation: ipr-haze 8s ease-in-out infinite alternate; }
@keyframes ipr-sky { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes ipr-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ipr-maid { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ipr-papers { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(10deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ipr-rings { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes ipr-reverend { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ipr-haze { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-suitor-enchanting-visage {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 50%, #2a2a3a 100%), radial-gradient(ellipse at 50% 30%, #5a5a6a 0%, transparent 60%);
}
.scn-suitor-enchanting-visage .bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a5a6a 0%, transparent 100%); animation: sev-bg 12s ease-in-out infinite alternate; }
.scn-suitor-enchanting-visage .mirror { position:absolute; top:20%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(135deg, #6a6a7a 0%, #4a4a5a 100%); border-radius:10% 10% 5% 5% / 20% 20% 5% 5%; border: 2px solid #7a7a8a; box-shadow: 0 0 30px rgba(100,100,110,.3); animation: sev-mirror 8s ease-in-out infinite alternate; }
.scn-suitor-enchanting-visage .silhouette { position:absolute; top:30%; left:50%; width:30px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: sev-silhouette 4s ease-in-out infinite; }
.scn-suitor-enchanting-visage .locks { position:absolute; top:22%; left:43%; width:20px; height:20px; background: transparent; border: 3px solid #5a5a4a; border-radius:50% 0 50% 0; transform: rotate(45deg); box-shadow: 10px 10px 0 0 #5a5a4a; animation: sev-locks 3s ease-in-out infinite; }
.scn-suitor-enchanting-visage .shadows { position:absolute; bottom:0; left:0; right:0; height:50%; background: radial-gradient(ellipse at 50% 0%, #1a1a2a 0%, transparent 70%); animation: sev-shadows 10s ease-in-out infinite alternate; }
.scn-suitor-enchanting-visage .aura { position:absolute; top:25%; left:45%; width:60px; height:60px; background: radial-gradient(circle, rgba(200,200,210,.2) 0%, transparent 70%); filter: blur(10px); animation: sev-aura 5s ease-in-out infinite alternate; }
@keyframes sev-bg { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes sev-mirror { 0% { filter: brightness(1) } 50% { filter: brightness(1.2) } 100% { filter: brightness(0.9) } }
@keyframes sev-silhouette { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes sev-locks { 0% { transform: rotate(45deg) scale(1) } 50% { transform: rotate(55deg) scale(1.1) } 100% { transform: rotate(45deg) scale(1) } }
@keyframes sev-shadows { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes sev-aura { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-suitor-besieges-maid {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 80%, #4a4a5a 0%, transparent 60%);
}
.scn-suitor-besieges-maid .bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a4a5a 0%, transparent 100%); animation: sbm-bg 14s ease-in-out infinite alternate; }
.scn-suitor-besieges-maid .maid { position:absolute; bottom:30%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sbm-maid 2.5s ease-in-out infinite; }
.scn-suitor-besieges-maid .shield { position:absolute; bottom:32%; left:48%; width:16px; height:20px; background: #4a4a5a; border-radius: 30% 30% 20% 20%; border: 1px solid #6a6a7a; transform: rotate(20deg); animation: sbm-shield 3s ease-in-out infinite; }
.scn-suitor-besieges-maid .suitor { position:absolute; bottom:30%; right:20%; width:25px; height:50px; transform:translateX(0); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sbm-suitor 4s ease-in-out infinite; }
.scn-suitor-besieges-maid .pictures { position:absolute; top:10%; left:10%; width:30px; height:40px; background: #4a4a5a; border-radius: 5px; box-shadow: 80px 20px 0 0 #4a4a5a, 160px 0 0 0 #4a4a5a, 40px 60px 0 0 #4a4a5a; animation: sbm-pictures 6s ease-in-out infinite; }
.scn-suitor-besieges-maid .bars { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 10px, rgba(0,0,0,.1) 10px, rgba(0,0,0,.1) 12px); animation: sbm-bars 1s linear infinite; }
@keyframes sbm-bg { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes sbm-maid { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-48%) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0) } 75% { transform: translateX(-52%) translateY(-1px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes sbm-shield { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(25deg) translateY(-2px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes sbm-suitor { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes sbm-pictures { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes sbm-bars { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }

.scn-suitor-trophies-prestige {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 50%, #2a2a3a 100%), radial-gradient(ellipse at 50% 100%, #5a5a6a 0%, transparent 60%);
}
.scn-suitor-trophies-prestige .bg { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a5a6a 0%, transparent 100%); animation: stp-bg 18s ease-in-out infinite alternate; }
.scn-suitor-trophies-prestige .table { position:absolute; bottom:20%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: stp-table 20s ease-in-out infinite alternate; }
.scn-suitor-trophies-prestige .pearls { position:absolute; bottom:45%; left:20%; width:8px; height:8px; background: radial-gradient(circle, #e0e0e0 0%, #a0a0a0 100%); border-radius:50%; box-shadow: 20px 0 0 0 #e0e0e0, 40px 5px 0 0 #d0d0d0, 60px -2px 0 0 #c0c0c0; animation: stp-pearls 3s ease-in-out infinite; }
.scn-suitor-trophies-prestige .rubies { position:absolute; bottom:42%; left:30%; width:10px; height:10px; background: radial-gradient(circle, #a0443a 0%, #6a1a1a 100%); border-radius:30% 70% 50% 50% / 60% 40% 60% 40%; box-shadow: 30px -10px 0 0 #903a30, 60px 5px 0 0 #802a20; animation: stp-rubies 4s ease-in-out infinite; }
.scn-suitor-trophies-prestige .hairs { position:absolute; bottom:40%; left:50%; width:2px; height:30px; background: #4a4a3a; border-radius: 50%; transform: rotate(30deg); box-shadow: 5px -5px 0 0 #4a4a3a, -5px -8px 0 0 #4a4a3a; animation: stp-hairs 5s ease-in-out infinite; }
.scn-suitor-trophies-prestige .scrolls { position:absolute; bottom:38%; left:60%; width:12px; height:20px; background: #a0a090; border-radius: 20% 20% 10% 10%; box-shadow: 20px 10px 0 0 #b0b0a0, -20px -5px 0 0 #909080; animation: stp-scrolls 6s ease-in-out infinite; }
@keyframes stp-bg { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes stp-table { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes stp-pearls { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes stp-rubies { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(10deg) scale(1.1) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes stp-hairs { 0% { transform: rotate(30deg) translateY(0) } 50% { transform: rotate(35deg) translateY(-2px) } 100% { transform: rotate(30deg) translateY(0) } }
@keyframes stp-scrolls { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
/* end per-scene blocks */
